]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg ScsiDiskDxe: Modify WriteBlocks(Ex)() to follow UEFI spec
authorHao Wu <hao.a.wu@intel.com>
Tue, 22 Dec 2015 13:54:47 +0000 (13:54 +0000)
committerhwu1225 <hwu1225@Edk2>
Tue, 22 Dec 2015 13:54:47 +0000 (13:54 +0000)
The functions ScsiDiskWriteBlocks(Ex) in ScsiDiskDxe/ScsiDisk.c do not
check whether the device is allow to be written originally.

This commit will add read-only check to follow the UEFI spec.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19445 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c

index a85cc94ae6479dad2b13d74dc756b470d1541864..3e19fad064117584be10701ba7a1d8c100ed3e7a 100644 (file)
@@ -692,6 +692,11 @@ ScsiDiskWriteBlocks (
     goto Done;\r
   }\r
 \r
+  if (Media->ReadOnly) {\r
+    Status = EFI_WRITE_PROTECTED;\r
+    goto Done;\r
+  }\r
+\r
   if (BufferSize == 0) {\r
     Status = EFI_SUCCESS;\r
     goto Done;\r
@@ -1048,6 +1053,11 @@ ScsiDiskWriteBlocksEx (
     goto Done;\r
   }\r
 \r
+  if (Media->ReadOnly) {\r
+    Status = EFI_WRITE_PROTECTED;\r
+    goto Done;\r
+  }\r
+\r
   if (BufferSize == 0) {\r
     if ((Token != NULL) && (Token->Event != NULL)) {\r
       Token->TransactionStatus = EFI_SUCCESS;\r