]> git.proxmox.com Git - mirror_edk2.git/commit
MdeModulePkg/UsbStorage: Fix "map -r" cannot detect media change
authorRuiyu Ni <ruiyu.ni@intel.com>
Fri, 19 Jan 2018 07:04:24 +0000 (15:04 +0800)
committerRuiyu Ni <ruiyu.ni@intel.com>
Mon, 22 Jan 2018 02:18:04 +0000 (10:18 +0800)
commita662afb5b023a187ef638d3cb0e0c313ad39a7fc
treeed5d07e8fbadc2727282201af11525739ad8d1c8
parenta676a24656546a7fc722868fb75cd178c003056a
MdeModulePkg/UsbStorage: Fix "map -r" cannot detect media change

When system boots to Shell without CDROM in the USB CDROM drive,
and then user inserts one CDROM with Eltorito file system,
"map -r" cannot show the the new Eltorito file system.

The root cause is when "map" command probes the media change
by calling dummy ReadBlockIo(), UsbMassStorage ReadBlockIo()
contains a bug that ignores the media change status:
UsbBootDetectMedia() ignores the EFI_MEDIA_CHANGED status
returned from UsbBootIsUnitReady(), in consequence, the
BlockIo protocol re-installation logic doesn't run.

By checking the code change history, below commit
SHA-1: 19bc85276559ae01996fa0918ec3f6495e7aaa69
* remove unnecessary retry logic from usb mass storage driver.
adds the code to skip EFI_MEDIA_CHANGED status.

Talking with the original committer Tian Feng, he said the
change was just a code cleanup, not for a special bug fix.
So I revert part of the patch, only keep the change that
removes unnecessary retry logic. It can fix this bug.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c