[dm-devel] [PATCH 1/2] scsi : Correctly setting the scsi host/msg/status bytes

Moger, Babu Babu.Moger at netapp.com
Mon Jan 23 18:43:25 UTC 2012


This patch changes the function to  set_msg_byte, set_host_byte and set_driver_byte to correctly

set the corresponding bytes appropriately.



It will reset the original setting and correctly set it to the new value.  The previous OR operation does

not always  set it back to new value. Look at patch 2/2 for an example.



Signed-off-by: Babu Moger <babu.moger at netapp.com>

---

--- linux-3.3-rc1-new/include/scsi/scsi_cmnd.h.orig   2012-01-23 11:30:46.000000000 -0600
+++ linux-3.3-rc1-new/include/scsi/scsi_cmnd.h  2012-01-23 11:38:30.000000000 -0600
@@ -289,17 +289,17 @@ static inline struct scsi_data_buffer *s

 static inline void set_msg_byte(struct scsi_cmnd *cmd, char status)
 {
-     cmd->result |= status << 8;
+     cmd->result = (cmd->result & 0xffff00ff) | (status << 8);
 }

 static inline void set_host_byte(struct scsi_cmnd *cmd, char status)
 {
-     cmd->result |= status << 16;
+     cmd->result = (cmd->result & 0xff00ffff) | (status << 16);
 }

 static inline void set_driver_byte(struct scsi_cmnd *cmd, char status)
 {
-     cmd->result |= status << 24;
+     cmd->result = (cmd->result & 0x00ffffff) | (status << 24);
 }

 #endif /* _SCSI_SCSI_CMND_H */



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20120123/115cfd16/attachment.htm>


More information about the dm-devel mailing list