From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.9708.1602831880545898294 for ; Fri, 16 Oct 2020 00:04:41 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=SRZioIKF; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: hao.a.wu@intel.com) IronPort-SDR: zIpDEo7LnIU9Z0NaPAascfioxSBEpMQd2zUXiD/cNVjrxGsfrJn1BjJ6dDQh/zAe5u1eyD1tJl OLWxSXDEW0Kg== X-IronPort-AV: E=McAfee;i="6000,8403,9775"; a="228196509" X-IronPort-AV: E=Sophos;i="5.77,382,1596524400"; d="scan'208";a="228196509" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2020 00:04:38 -0700 IronPort-SDR: 64MzcysRSA6uEgToNYMxG5nx2EyaSGOcugmaKt+dklgiinHKh+pdzRTNpzl8zM/6GG8t3Gjtk9 SPJtWkLP7G+g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,382,1596524400"; d="scan'208";a="531606538" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga005.jf.intel.com with ESMTP; 16 Oct 2020 00:04:38 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 16 Oct 2020 00:04:38 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 16 Oct 2020 00:04:38 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 16 Oct 2020 00:04:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gVv9PrR9DecUHH7UBb3Djsw4/48JzqRtVWd1ocOWtqmZ/+9YENGDWycMPAndIK8+IaRV6kJrgImFa7rMENRRmBj+B0UV/MIhO+OdYN3vGL+MxYERQd4idg7fJ4+i3oXVFb15ymPc7MUM5EXjznoPZq94EouNfOFb8DeNeUvreIMlRvi+0FpiNTFUHCvdSbMHAcpmiIgcbHUAQDqi0eyDjMNImxgd1ReiF1F9GANDR6MIUNYJZRH+XPtzJ/hsYoK7TEPQnA13KN6h4+tt51RdXj0jgefIlBd0NKQ7r4JRSHiLPz8bPJEwXHKHCIkzEunSbxMZ7NKxCIyR+4EqhtG2nQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WUspfKofh38LapUquF3nys3zJpmj0VR6tLT7Fggu2l4=; b=QmHGBQ1ccm0Z6Bda8M1iBMSAMzXjz7KLoB0tannT1Udwf9kqNIAQee6SUJPKOu8Np8Gt7JJHTPGe6tfpl/yD7bz9a+PPXIdPAcMcDeMOUAb53eBWFY/kNhH0KkpsuIj0VuP677U2UIipPfztMIq+9OxE1Fq0PdfYTI8wstwzZb47W6EVEpYf/C91O4m8aqnKWDF2TwpKKQPe9BVN0FSh91dXdJhl5CMq9BvYzGCZjSKWhHCO7mG8VJT01Z+5mKO0/BYJPle1/+jXM6DQQvoaRAnArdtHOPzcLoW8z8D0Dk9qrPWKoeSS1PzVYdnKZW8xDJn9OSsO5bk2xx143GxnJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WUspfKofh38LapUquF3nys3zJpmj0VR6tLT7Fggu2l4=; b=SRZioIKFtbTZY1VPS5MACnLfRXEbX0M2XGQsW2XzDF+vaoVbxGFAyNwD8ls30X/DTDpg3ZtdcJw7BwsFFuUPY/JFX4bt/0dUVYNyzyfFinBgnyrqsB2MW/qTTeFb76UegGs0twt9VHzwBygdl4TW1/0hcHmFDnwApbS1irWiN9w= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR11MB3987.namprd11.prod.outlook.com (2603:10b6:405:78::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.26; Fri, 16 Oct 2020 07:04:36 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::c123:faac:1da3:f807]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::c123:faac:1da3:f807%5]) with mapi id 15.20.3477.020; Fri, 16 Oct 2020 07:04:35 +0000 From: "Wu, Hao A" To: "Luo, Heng" , "devel@edk2.groups.io" CC: "Ni, Ray" Subject: Re: [PATCH] XhciDxe: Clean up UsbDevContext if USB slot initialization is failed Thread-Topic: [PATCH] XhciDxe: Clean up UsbDevContext if USB slot initialization is failed Thread-Index: AQHWopWHnBe20E7vzEm142fMV0AReKmZzOzQ Date: Fri, 16 Oct 2020 07:04:35 +0000 Message-ID: References: <20201015014901.1154-1-heng.luo@intel.com> In-Reply-To: <20201015014901.1154-1-heng.luo@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 80d1b05f-5bc9-4d72-8369-08d871a1bd9f x-ms-traffictypediagnostic: BN6PR11MB3987: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wTMTz61BBTukp5jXLIVwx43nm4sV/dVrlUbGMEc+Fth01xyh8x60XA3hE6ydTWYRPvHukaydEbe7FzZM/Q1jZQsjYlwuNOEgWciXZbZfKHUCptMNcLoRkKOzUAFA1HnD67c3ct+fAHPtvymts0QNcD5Fu9+AdpvbMhN5otlcDPlrFHmBIdlyxPKbDuhSYrvNMoKaeeS9FRY0Hl+j/EwuKXrWqcSAD2NJvnnxhuqGFevarNrt97HGN3Ha48DuR0X0taeidhTWV3rAD3SrdPLTRxFCPTaaretOBFGJ3vR+tT5Jt8CdRxVSjHOSlC8ZDcT2Btk+GPQtOzJxAHoIMfw/yDNBcb0qhphgRSID9rjiMP8zSkT96vAB+37xPSMuyxcAUP3gautAWOj69YdTZgLM/g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(396003)(39860400002)(366004)(346002)(376002)(45080400002)(9686003)(86362001)(316002)(966005)(55016002)(478600001)(2906002)(110136005)(33656002)(186003)(83380400001)(107886003)(64756008)(4326008)(6506007)(66556008)(66476007)(66946007)(53546011)(7696005)(66446008)(71200400001)(19627235002)(5660300002)(8676002)(26005)(76116006)(52536014)(8936002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: OeBmPZCvRymIWyphiY5h7Qs0dIttwXW1lDKNVpYktWAx7oB8drWGBjvhB9Pqb0TlMBKiK/p9wpNFzgy2hVjwf2ZMz+Xmck5YBshuRk3ld+26442rLMC0CDHss11EQ3kWQpdYsii6SFB/ZtspUl330qIEORBpLOwNr3xgFYPpnBsgW3/6/W8T27hTwCfH85WhN5n5YmUoftXZRitgEMghbW2Nw21uF0bOOc8L9BJoFJr7mbSoJ1GbKRtjqX62wFF05ue5LS37f0JCXW4LGjFWAH095pdNAc4Ot/bqM5Tr5CDKHaoc2DGE4h0vojAuN7XOYHoS/6xmOXVB11nCSgq2OMSGy7Gfh7L3w/HNBLdGatL2USwpVuMMhYTNljiO5gGuSznsaLRe98oUm/7gBvC5FFCbkHF+6iscqj+lUR2D27p+ONKIbRIXxtzgFJvL2CzGkpUH46Ad5aCQoOvNCnjtYDji6jZOSErUf34jZ7nm+G879VtnTAhm98QU1ntGawCO3sxp8Vk8JNhp5aF2XR9NyRiiS5voBSmhdE2T15s7vWeNnaeaAXOL8UNIbDuz36T4HZcE6Bn9nLGyeh+Z6vNQRmeKnCdUmdn463ivbWNkV8+ha9YL6exws6XYI/ueiHg0+xL01cd8zk1UvEGRSjgMyw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80d1b05f-5bc9-4d72-8369-08d871a1bd9f X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2020 07:04:35.6027 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: x+SDLKFDPO771Y4NM9sFGFK79qBWzVMEr/1mDOco+RVVUKJtGePXXMS9rXra4xckgIRo5/FaZ3pQW+V72L+cPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3987 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: Luo, Heng > Sent: Thursday, October 15, 2020 9:49 AM > To: devel@edk2.groups.io > Cc: Ni, Ray ; Wu, Hao A > Subject: [PATCH] XhciDxe: Clean up UsbDevContext if USB slot initializati= on is > failed >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3007 Thanks for the patch Heng. After looking into the analysis at https://bugzilla.tianocore.org/show_bug.= cgi?id=3D3007#c1: |> Enable Slot Successfully, The Slot ID =3D 0x3 |> Address 3 assigned successfully |> UsbEnumerateNewDev: hub port 15 is reset |> UsbEnumerateNewDev: device is of 3 speed |> UsbEnumerateNewDev: device uses translator (0, 0) |> XhcControlTransfer: SlotId =3D=3D 2 DeviceAddress=3D0 The wrong 'SlotId' is used for the control transfer command, where SlotId 2= is for the device failed to be initialized. Heng, could you help to check whether it is possible for the next device to= use SlotId 2 again? Thanks in advance. Best Regards, Hao Wu >=20 > Currently UsbDevContext is not cleaned up if USB slot initialization is f= ailed, > the wrong context data will affect next USB devices and the USB devices c= an > not be enumerated. > Need to clean up UsbDevContext if USB slot initialization is failed. >=20 > Cc: Ray Ni > Cc: Hao A Wu > Signed-off-by: Heng Luo > --- > MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) >=20 > diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > index 9cb115363c..1e8430ac34 100644 > --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > @@ -2,7 +2,7 @@ > XHCI transfer scheduling routines. -Copyright (c) 2011 - 2018, Intel > Corporation. All rights reserved.
+Copyright (c) 2011 - 2020, Intel > Corporation. All rights reserved.
Copyright (c) Microsoft > Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent @@ -2279,6 > +2279,9 @@ XhcInitializeDeviceSlot ( > DeviceAddress =3D (UINT8) ((DEVICE_CONTEXT *) OutputContext)- > >Slot.DeviceAddress; DEBUG ((EFI_D_INFO, " Address %d assigned > successfully\n", DeviceAddress)); Xhc- > >UsbDevContext[SlotId].XhciDevAddr =3D DeviceAddress;+ } else {+ DEBU= G > ((DEBUG_INFO, " Address %d assigned unsuccessfully, clean up context > data.\n"));+ ZeroMem (&Xhc->UsbDevContext[SlotId], sizeof > (USB_DEV_CONTEXT)); } return Status;@@ -2489,7 +2492,11 @@ > XhcInitializeDeviceSlot64 ( > DeviceAddress =3D (UINT8) ((DEVICE_CONTEXT_64 *) OutputContext)- > >Slot.DeviceAddress; DEBUG ((EFI_D_INFO, " Address %d assigned > successfully\n", DeviceAddress)); Xhc- > >UsbDevContext[SlotId].XhciDevAddr =3D DeviceAddress;+ } else {+ DEB= UG > ((DEBUG_INFO, " Address %d assigned unsuccessfully, clean up context > data.\n"));+ ZeroMem (&Xhc->UsbDevContext[SlotId], sizeof > (USB_DEV_CONTEXT)); }+ return Status; } -- > 2.24.0.windows.2