From nobody Mon Dec 23 09:54:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1519991685715627.920271578225; Fri, 2 Mar 2018 03:54:45 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id C69BF2255D6DF; Fri, 2 Mar 2018 03:48:33 -0800 (PST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6297322546BBD for ; Fri, 2 Mar 2018 03:48:31 -0800 (PST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Mar 2018 03:54:40 -0800 Received: from unknown (HELO ray-dev.ccr.corp.intel.com) ([10.239.9.44]) by fmsmga002.fm.intel.com with ESMTP; 02 Mar 2018 03:54:40 -0800 X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,412,1515484800"; d="scan'208";a="24581952" From: Ruiyu Ni To: edk2-devel@lists.01.org Date: Fri, 2 Mar 2018 19:54:34 +0800 Message-Id: <20180302115437.140240-3-ruiyu.ni@intel.com> X-Mailer: git-send-email 2.16.1.windows.1 In-Reply-To: <20180302115437.140240-1-ruiyu.ni@intel.com> References: <20180302115437.140240-1-ruiyu.ni@intel.com> Subject: [edk2] [PATCH 2/5] MdeModulePkg/UsbMass: Revert "map -r" media change detection fix X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Star Zeng MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This reverts commit a662afb5b023a187ef638d3cb0e0c313ad39a7fc. * MdeModulePkg/UsbStorage: Fix "map -r" cannot detect media change The above commit fixed the following issue: When system boots to Shell without CDROM inside USB CDROM drive, and then user inserts the CDROM with Eltorito file system, "map -r" cannot show the new ELtorito file system. The commit caused EFI_MEDIA_CHANGED status returned from UsbBootDetectMedia(). But that fix exposes another issue: When issuing ReadCapacity command to certain USB key (Kingston DataTraveler G3 8GB) after it's hot-plugged, USB device returns STALL error and RequestSense command returns media changed sense data. (Most of the USB keys return SUCCESS for ReadCapacity command after hot-plug.) Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni Cc: Star Zeng --- MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c | 19 ++++------------= --- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c b/MdeModu= lePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c index 613008bde7..a8b6a1c5f1 100644 --- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c +++ b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c @@ -2,7 +2,7 @@ Implementation of the command set of USB Mass Storage Specification for Bootability, Revision 1.0. =20 -Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
+Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD = License which accompanies this distribution. The full text of the license may be = found at @@ -630,10 +630,8 @@ UsbBootGetParams ( { EFI_BLOCK_IO_MEDIA *Media; EFI_STATUS Status; - UINT8 CmdSet; =20 Media =3D &(UsbMass->BlockIoMedia); - CmdSet =3D ((EFI_USB_INTERFACE_DESCRIPTOR *) (UsbMass->Context))->Interf= aceSubClass; =20 Status =3D UsbBootInquiry (UsbMass); if (EFI_ERROR (Status)) { @@ -668,18 +666,9 @@ UsbBootGetParams ( Media->BlockSize =3D 0x0800; } =20 - if ((UsbMass->Pdt !=3D USB_PDT_CDROM) && (CmdSet =3D=3D USB_MASS_STORE_S= CSI)) { - // - // ModeSense is required for the device with PDT of 0x00/0x07/0x0E, - // which is from [MassStorageBootabilitySpec-Page7]. - // ModeSense(10) is useless here, while ModeSense(6) defined in SCSI - // could get the information of WriteProtected. - // Since not all device support this command, so skip if fail. - // - UsbScsiModeSense (UsbMass); - } + Status =3D UsbBootDetectMedia (UsbMass); =20 - return UsbBootReadCapacity (UsbMass); + return Status; } =20 =20 @@ -710,7 +699,7 @@ UsbBootDetectMedia ( CmdSet =3D ((EFI_USB_INTERFACE_DESCRIPTOR *) (UsbMass->Context))->Interf= aceSubClass; =20 Status =3D UsbBootIsUnitReady (UsbMass); - if (EFI_ERROR (Status)) { + if (EFI_ERROR (Status) && (Status !=3D EFI_MEDIA_CHANGED)) { goto ON_ERROR; } =20 --=20 2.16.1.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel