Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp3782099ybi; Mon, 29 Jul 2019 12:31:25 -0700 (PDT) X-Google-Smtp-Source: APXvYqxKMYpCeah4k5k3bZvDlJHjqL5PgmPVD2aElRk8ZyYdRNpLjRiHGx+ZklPbW6XUqFkyFjqx X-Received: by 2002:a17:90a:2567:: with SMTP id j94mr114123988pje.121.1564428685569; Mon, 29 Jul 2019 12:31:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564428685; cv=none; d=google.com; s=arc-20160816; b=IF9ZVgCAGh567Lr1u67FZps38aKU5fTT9zse6n8RwhFyXA8wAxrtnCrKEL8d3ZWBfc eYAsyOGQFa205VcTOQ/7P7kQMnyOz3dLKOLLX42yL9bMLm94CK8DX+8I4F/cT1T95a0X 0nzxdOLzNBxCVRBSXsqr3d2hngCMPu4mwwVCI3WJ/3ZQBKGSqJj/UbVzKmD3jVFpK9fd rYhpQFcws+OaXjw2pl+pcrwAQDmZf4iYh+PHNImOIbEeNqycoykbftnDui+DV6NmzN+f k3fLnmsCoCK60U/e8f0u8xJuuLi0Bm7rxV53HyvUEtSZToN4OVcQcwHC/cCaN7HFxmvy n/uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=tpTNef2J2++QNO/OkHVy/yBR1B5TUwAqqnweG/iXLyQ=; b=ORZ45YsD7cGovR+L/oBTdtdvKQXjmvUIpKwQmKX8lyLjJUgQZQerEfgT4gS2HCVyQr s6lpCEyd67+WKJUHSjYGWx2rCZpJVzINoIYg1SBJtzYBebb5pGZSolJIxXXWs0IW+1QP jWpZMDGQVjQAq6bFG4VdXwZw7e0TCwnAUMUKYU4qXxo7kXJnXMk+VlcO0PT/etKmcXOn KC7RVP5NVpVHS9PGBWSzAKWGEhuMttirzxSIjUf/N7/mVNMAi+JJTgvuJtsNGchH2RAo s4BxCavz0Q+cxsLa7OEz63BicJdxdaFmHabWipnxVZS77VZwm28O7I2+5+os4acmzGPD HW8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LZVoxJO0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 99si24922465plc.31.2019.07.29.12.31.10; Mon, 29 Jul 2019 12:31:25 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LZVoxJO0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388082AbfG2SeZ (ORCPT + 99 others); Mon, 29 Jul 2019 14:34:25 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:43827 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387925AbfG2SeZ (ORCPT ); Mon, 29 Jul 2019 14:34:25 -0400 Received: by mail-wr1-f67.google.com with SMTP id p13so62903973wru.10 for ; Mon, 29 Jul 2019 11:34:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tpTNef2J2++QNO/OkHVy/yBR1B5TUwAqqnweG/iXLyQ=; b=LZVoxJO0kBPqiF/uiAFqrbcV2bFOZTwsBdFA28Xc8nQJSw/oSIaMTOi0CJ/jTHW+kb kACkHaaTGZ5nbO7JbvxdhhGQC1iFHZEBGxy/Igms3FH3htza/94TRLm1nZBPT9nmcPIX v9S963ibaBpFPqm4rgg0MujYPEqxWeU/d6/97rEBTKPfdGMLcW6ZcrFefJNKbV1H0OS/ icvQypSExJN8HtE5YcyKj5QcOgKFTxA50dxbjFLH95maIKNImEPobXrcWyik2Buz5FQK BOw0crkgXtXYCvOdhJMxsFBd0H614pBW3ZAS7IpKS+PHXoMGpfRDC/MDTFeo/UccetOM Bv0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=tpTNef2J2++QNO/OkHVy/yBR1B5TUwAqqnweG/iXLyQ=; b=IAW1J+GHHLpRD8G/XIc4edVDafeuyy4YRmMGkr2BaaU5DtvobLkE7Efj9/zoXGXs7a DUB2Z45aQ8QTIvNO32YdnyWWaTmjS2PpVuOe6LOqc23CRe73VSAUt1I57KXzEk8GhtQI jv/OJ3XtRz7x5rCHWgOWELLSW2UjIf3r8O7gqy8SMi4R2IYOqKUeDD0CQ9jvWVLLb5c7 QZXfluXjujd239vUzKAOkW1qcV1oD1xMpUh+7+SGAPYxJepGAgJmkhg9oJAc4Z16NaHW 5EMVV/m3Ri8rLnfKriB2UBM+lSABlAOwg7td7SPGIsu2PWNEPWi9t7T02y+xeJF5CIE6 l2nA== X-Gm-Message-State: APjAAAWUvrqZcB/KIP6MO0Cub70CJWtIt/HzPIH3aQ0MfRwV7qjXf4Sx 1PSPxpJUTHS23Qu4SO+rHaOhyykBAqKiAke7lctWLdJW X-Received: by 2002:adf:b1cb:: with SMTP id r11mr114636138wra.328.1564425262685; Mon, 29 Jul 2019 11:34:22 -0700 (PDT) MIME-Version: 1.0 References: <20190723202735.113381-1-john.stultz@linaro.org> In-Reply-To: <20190723202735.113381-1-john.stultz@linaro.org> From: John Stultz Date: Mon, 29 Jul 2019 11:34:10 -0700 Message-ID: Subject: Re: [PATCH] usb: dwc3: Check for IOC/LST bit in both event->status and TRB->ctrl fields To: lkml Cc: Anurag Kumar Vulisha , Felipe Balbi , Fei Yang , Thinh Nguyen , Tejas Joglekar , Andrzej Pietrasiewicz , Greg KH , Linux USB List , stable Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 23, 2019 at 1:27 PM John Stultz wrote: > > From: Anurag Kumar Vulisha > > The present code in dwc3_gadget_ep_reclaim_completed_trb() will check > for IOC/LST bit in the event->status and returns if IOC/LST bit is > set. This logic doesn't work if multiple TRBs are queued per > request and the IOC/LST bit is set on the last TRB of that request. > Consider an example where a queued request has multiple queued TRBs > and IOC/LST bit is set only for the last TRB. In this case, the Core > generates XferComplete/XferInProgress events only for the last TRB > (since IOC/LST are set only for the last TRB). As per the logic in > dwc3_gadget_ep_reclaim_completed_trb() event->status is checked for > IOC/LST bit and returns on the first TRB. This makes the remaining > TRBs left unhandled. > To aviod this, changed the code to check for IOC/LST bits in both > event->status & TRB->ctrl. This patch does the same. > > At a practical level, this patch resolves USB transfer stalls seen > with adb on dwc3 based Android devices after functionfs gadget > added scatter-gather support around v4.20. > > Cc: Felipe Balbi > Cc: Fei Yang > Cc: Thinh Nguyen > Cc: Tejas Joglekar > Cc: Andrzej Pietrasiewicz > Cc: Greg KH > Cc: Linux USB List > Cc: stable > Tested-By: Tejas Joglekar > Reviewed-by: Thinh Nguyen > Signed-off-by: Anurag Kumar Vulisha > [jstultz: forward ported to mainline, added note to commit log] > Signed-off-by: John Stultz > --- > Just wanted to send this out so we're all looking at the same thing. > Not sure if its correct, but it seems to solve the adb stalls I've > been seeing for awhile. Felipe: Any thoughts on this patch? thanks -john