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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Resubmitting as my previous post had format issues and did not go llinux-scsi.
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@xxxxxxxxxx>
---
--- 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 */


��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux