]> git.proxmox.com Git - mirror_edk2.git/commit
Fixed a bug that the system hangs with an assert in DiskIo.c that is division overflo...
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 23 Jul 2009 01:30:16 +0000 (01:30 +0000)
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 23 Jul 2009 01:30:16 +0000 (01:30 +0000)
commit88e349f1feaa7a9963cc044e8e815db4eed198bf
tree08d40b7195ce2d7af4290b58e89f6d755d977733
parent409669d53e8327d364fdbe10b6d7e4b27713fef5
Fixed a bug that the system hangs with an assert in DiskIo.c that is division overflow due to block size == 0 when no flppy media is present in a specific type of USB floppy drive (NEC PC-VP-BU04)at power on.

Root cause is that Read Capacity command returns media not present error, then UsbMassStorage driver issues Sense Request command to get the sense data. However, the USB floppy drive still returns the previous error for the Sense Request command. UsbBootRequestSense() does not handle this case correctly and returns EFI_SUCCESS so that the block size of the Block IO protocol instance is set to be 0.

Solution is to fix the logic to handle the case and add protective logic to avoid setting block size to be 0.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8979 6f19259b-4bc3-4df7-8a09-765794883524
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c