Hi Franz,

Thanks for providing the patch.  We agree with the update and will check in 
your patch recently.
Could you please let us know which Linux iSCSI target triggers this error? We 
may add more test items in future.

Best Regards,
Ye Ting

-----Original Message-----
From: Tian, Feng [mailto:[email protected]] 
Sent: Monday, January 26, 2015 8:30 AM
To: Roy Franz; [email protected]; [email protected]
Subject: Re: [edk2] [PATCH] Don't require optional ISCSI negotiation responses.

Thanks, Franz

We are reviewing this patch and will get back to you if we have comments.

Thanks
Feng

-----Original Message-----
From: Roy Franz [mailto:[email protected]] 
Sent: Saturday, January 24, 2015 09:12
To: [email protected]; [email protected]; Tian, Feng
Cc: Roy Franz
Subject: [PATCH] Don't require optional ISCSI negotiation responses.

Some simple value negotiation responses are optional, in particular 
DataPDUInOrder and DataSequenceInOrder.
If we send "Yes", then the response from the target is optional, and the Linux 
target implementation does not return a response.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Roy Franz <[email protected]>
---
 MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c 
b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c
index cb1f79b..b8427ab 100644
--- a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c
+++ b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c
@@ -1290,9 +1290,11 @@ IScsiCheckOpParams (
 
   //
   // DataPDUInOrder, result function is OR.
+  // The response is optional if we sent "Yes".
+  // The AsciiStrCmp is not done if we sent "Yes", so it is OK for 
+ Value to be NULL
   //
   Value = IScsiGetValueByKeyFromList (KeyValueList, 
ISCSI_KEY_DATA_PDU_IN_ORDER);
-  if (Value == NULL) {
+  if (!Session->DataPDUInOrder && Value == NULL) {
     goto ON_ERROR;
   }
 
@@ -1300,9 +1302,11 @@ IScsiCheckOpParams (
 
   //
   // DataSequenceInorder, result function is OR.
+  // The response is optional if we sent "Yes".
+  // The AsciiStrCmp is not done if we sent "Yes", so it is OK for 
+ Value to be NULL
   //
   Value = IScsiGetValueByKeyFromList (KeyValueList, 
ISCSI_KEY_DATA_SEQUENCE_IN_ORDER);
-  if (Value == NULL) {
+  if (!Session->DataSequenceInOrder && Value == NULL) {
     goto ON_ERROR;
   }
 
--
1.9.1


------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to