Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp892926pxp; Wed, 16 Mar 2022 20:25:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzKpz3HubFP5vCHS3XS/RFrY8KHIca6+wFa6vm8mq5ApKV1CrF6dx3sK43kXAmEvF6GOnVx X-Received: by 2002:a17:90a:578f:b0:1bc:7122:f7f0 with SMTP id g15-20020a17090a578f00b001bc7122f7f0mr13532625pji.209.1647487500263; Wed, 16 Mar 2022 20:25:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647487500; cv=none; d=google.com; s=arc-20160816; b=i6liyWRqp93btOVJeVJfKqLYRRwsXVsS4WDs2H7Xh0FMsvgmU0KbwILojel9x5ygH2 Ezfj09JC8A6BpjshG/gZHtmzvAlvKgN8ebeEfpa0AumUL1FQ1taOpyOUW/bqlng/0ST4 h3q238yqoCNiASkQRJkOWWuvx6xIDzFL5ENtKCvKuGftNj5vQtEEVI7ZlNdxsj+xC5ge 1ZzGtg+GFe4joiK26kJA8eLTHUbT7O7iPVwGG0X5vcUh1kgH4XsB18LwTnvD/WHi+gm5 jw58DHQnDfmiuKCUDvF5AloxG005PznoWfq7pBEjQAogXTH/pHQjQNmO3ZFc+5+9mpo0 TcjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=D2eRtDhUiRlh6LC4tNmroWlfl0w9KefZzF7QC113Ymw=; b=IqjVxm6TbGlfpSFSPIky0kOSdZ3rOqPKodmIL6SRpEtWQXsXhH1rRPST6WhX0LVUtF Es0fuX7Mz/JXzwh16QLc1hp7jPiPoJ21eu1RQRL0JnFJyYlNpL+w2NyL0eAnLtOc/evg iqAcJCFPQr1TRlaCi3TosmRkIQhuweDEgzAw/fcmVhD/zCWdPQhJG9DBJtFG6sGlSJRR T2/v2EkTJIdFSl3kEXC/pn4le2x2pBlkL7ZcG9MATM5tXyCxC0Pvv/wrBbPC582oqt14 SLPRVwuLPQIoFPopr+xW2Mn6UXsYxifIoadaFcsyYEA9bSbMnprpwkVWnL4NeUveKePd uOIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=HWHhI+tJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id k190-20020a636fc7000000b003816043f0ccsi933255pgc.705.2022.03.16.20.24.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 20:25:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=HWHhI+tJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 386BC2E683; Wed, 16 Mar 2022 20:24:35 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351578AbiCQB63 (ORCPT + 99 others); Wed, 16 Mar 2022 21:58:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232966AbiCQB62 (ORCPT ); Wed, 16 Mar 2022 21:58:28 -0400 Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 891B11CB1B; Wed, 16 Mar 2022 18:57:13 -0700 (PDT) Received: by mail-lj1-x22e.google.com with SMTP id q5so5420913ljb.11; Wed, 16 Mar 2022 18:57:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=D2eRtDhUiRlh6LC4tNmroWlfl0w9KefZzF7QC113Ymw=; b=HWHhI+tJQb7NceqGVdfZf3qv6HHsoD0DK8KH+CJhB6W4ZWMx0h+SDyEEwnL25LMVQg zKpt0ilsFTJWMEn+YotbBv+CHmhm5wz9RJm+gBH3YhHI/sHYQXOCtql1zNHK16BwRv2P sGc0l127JfS/+cMODtL4iRAzr56VdQX3AYGKDR/BmEsAQPDNuYKFh+B1i0a2Px4TICyD OWROAcrc5KqNBGAXvwAhOqXYkRgxfVHMf+b+Z1cYZBFcpkRErF0rm1jhR9xPhKPFUnbW 0XJsyPajRCCHhkCPbcMA0M0GcAvaVRxYsfyiDLT9zqaKO3jUS9WTDeci37Hs2h244u1Z /FdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=D2eRtDhUiRlh6LC4tNmroWlfl0w9KefZzF7QC113Ymw=; b=PWlxqGLaegudeSlUyEronYsKHl3U0xDk79vXeZFovlK8kiB4MWeABDOT0C8DrB5za5 fQk9eODxH6cQyPeiOS2plK3kvWAe9c8m99O1wolgLRG/TLq8pzDuR1pMvh5O4ZPQ+vtl z4H3xTlMcudd3nhfJY9jTPvrKvfozLoNf7E53/D+V76sAT9/DkwZgRzVD1WxN2snq+mB fzszcb9RLugd0QFzmh0B1D5ZhPRbWCjg1BA/4JKZ4XjEU7x7sjRDhbPB9Ed1t2ip6rQo GNqtebi79d8AeLeizIOEdNf0gcT0RHU5zvVziQ88qoHUaybyhYWI3xbICUlhqbnx4B9r Fiog== X-Gm-Message-State: AOAM532f7KKR8TnCb7txfbfIDKaFwBuNZzwhEWHT+PUo+ftlOKarolbS qYwWNpaMYb1YEf3cDvb77BBkVSU5TLCopR+84L0= X-Received: by 2002:a2e:9d86:0:b0:247:da0e:7c59 with SMTP id c6-20020a2e9d86000000b00247da0e7c59mr1443340ljj.127.1647482231736; Wed, 16 Mar 2022 18:57:11 -0700 (PDT) MIME-Version: 1.0 References: <3c576edf-89c3-ccf3-a43f-4ce2c1ced18d@zhaoxin.com> In-Reply-To: <3c576edf-89c3-ccf3-a43f-4ce2c1ced18d@zhaoxin.com> From: Peter Chen Date: Thu, 17 Mar 2022 09:56:57 +0800 Message-ID: Subject: Re: [PATCH] USB: Fix xhci ERDP update issue To: "WeitaoWang-oc@zhaoxin.com" Cc: mathias.nyman@intel.com, Greg Kroah-Hartman , Alan Stern , USB list , lkml , CobeChen@zhaoxin.com, TimGuo@zhaoxin.com, tonywwang@zhaoxin.com, weitaowang@zhaoxin.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 17, 2022 at 1:30 AM WeitaoWang-oc@zhaoxin.com wrote: > > On some situations, software handles TRB events slower than adding TRBs, > xhci_irq will not exit until all events are handled. If xhci_irq just > handles 256 TRBs and exit, the temp variable(event_ring_deq) driver > records in xhci irq is equal to driver current dequeue pointer. It will > cause driver not update ERDP and software dequeue pointer lost sync with > ERDP. On the next xhci_irq, the event ring is full but driver will not > update ERDP as software dequeue pointer is equal to ERDP. > > [ 536.377115] xhci_hcd 0000:00:12.0: ERROR unknown event type 37 > [ 566.933173] sd 8:0:0:0: [sdb] tag#27 uas_eh_abort_handler 0 uas-tag 7 > inflight: CMD OUT > [ 566.933181] sd 8:0:0:0: [sdb] tag#27 CDB: Write(10) 2a 00 17 71 e6 78 > 00 00 08 00 > [ 572.041186] xhci_hcd On some situataions,the0000:00:12.0: xHCI host > not responding to stop endpoint command. > [ 572.057193] xhci_hcd 0000:00:12.0: Host halt failed, -110 > [ 572.057196] xhci_hcd 0000:00:12.0: xHCI host controller not > responding, assume dead > [ 572.057236] sd 8:0:0:0: [sdb] tag#26 uas_eh_abort_handler 0 uas-tag 6 > inflight: CMD > [ 572.057240] sd 8:0:0:0: [sdb] tag#26 CDB: Write(10) 2a 00 38 eb cc d8 > 00 00 08 00 > [ 572.057244] sd 8:0:0:0: [sdb] tag#25 uas_eh_abort_handler 0 uas-tag 5 > inflight: CMD > > Fixed this issue by update software record temp variable when handles > 128 TRB events. > > Signed-off-by: Weitao Wang Reviewed-by: Peter Chen > --- > drivers/usb/host/xhci-ring.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c > index d0b6806..f970799 100644 > --- a/drivers/usb/host/xhci-ring.c > +++ b/drivers/usb/host/xhci-ring.c > @@ -3141,6 +3141,7 @@ irqreturn_t xhci_irq(struct usb_hcd *hcd) > if (event_loop++ < TRBS_PER_SEGMENT / 2) > continue; > xhci_update_erst_dequeue(xhci, event_ring_deq); > + event_ring_deq = xhci->event_ring->dequeue; > > /* ring is half-full, force isoc trbs to interrupt more > often */ > if (xhci->isoc_bei_interval > AVOID_BEI_INTERVAL_MIN) > -- > 2.7.4