]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c
Update the code not require optional parameters include DataPDUInOrder and DataSequen...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiProto.c
index cb1f79b16aa3e6dc11a33d8c88822da62cbdab99..b2bf9466c169386783515de6ad5caa3deaf26f20 100644 (file)
@@ -1291,22 +1291,26 @@ IScsiCheckOpParams (
   //\r
   // DataPDUInOrder, result function is OR.\r
   //\r
-  Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_PDU_IN_ORDER);\r
-  if (Value == NULL) {\r
-    goto ON_ERROR;\r
-  }\r
+  if (!Session->DataPDUInOrder) {\r
+    Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_PDU_IN_ORDER);\r
+    if (Value == NULL) {\r
+      goto ON_ERROR;\r
+    }\r
 \r
-  Session->DataPDUInOrder = (BOOLEAN) (Session->DataPDUInOrder || (AsciiStrCmp (Value, "Yes") == 0));\r
+    Session->DataPDUInOrder = (BOOLEAN) (AsciiStrCmp (Value, "Yes") == 0);\r
+  }\r
 \r
   //\r
   // DataSequenceInorder, result function is OR.\r
   //\r
-  Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);\r
-  if (Value == NULL) {\r
-    goto ON_ERROR;\r
-  }\r
+  if (!Session->DataSequenceInOrder) {\r
+    Value = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);\r
+    if (Value == NULL) {\r
+      goto ON_ERROR;\r
+    }\r
 \r
-  Session->DataSequenceInOrder = (BOOLEAN) (Session->DataSequenceInOrder || (AsciiStrCmp (Value, "Yes") == 0));\r
+    Session->DataSequenceInOrder = (BOOLEAN) (AsciiStrCmp (Value, "Yes") == 0);\r
+  }\r
 \r
   //\r
   // DefaultTime2Wait, result function is Maximum.\r
@@ -1361,6 +1365,11 @@ IScsiCheckOpParams (
   IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_SESSION_TYPE);\r
   IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_TARGET_ALIAS);\r
   IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_TARGET_PORTAL_GROUP_TAG);\r
+  //\r
+  // Remove the key-value that may not needed for result function is OR.\r
+  //\r
+  IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_PDU_IN_ORDER);\r
+  IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);\r
 \r
   if (IsListEmpty (KeyValueList)) {\r
     //\r