Message ID | 20191021095322.137969-11-hare@suse.de (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | scsi: Revamp result values | expand |
On Mon, 21 Oct 2019, Hannes Reinecke wrote: > To be in-line with the other set_XX_byte() functions. > > Signed-off-by: Hannes Reinecke <hare@suse.de> > --- > include/scsi/scsi_cmnd.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h > index 91bd749a02f7..6932d91472d5 100644 > --- a/include/scsi/scsi_cmnd.h > +++ b/include/scsi/scsi_cmnd.h > @@ -307,6 +307,11 @@ static inline struct scsi_data_buffer *scsi_prot(struct scsi_cmnd *cmd) > #define scsi_for_each_prot_sg(cmd, sg, nseg, __i) \ > for_each_sg(scsi_prot_sglist(cmd), sg, nseg, __i) > > +static inline void set_status_byte(struct scsi_cmnd *cmd, char status) > +{ > + cmd->result = (cmd->result & 0xffffff00) | status; Is sign-extension desirable here? Do callers need it?
On 10/22/19 12:12 AM, Finn Thain wrote: > On Mon, 21 Oct 2019, Hannes Reinecke wrote: > >> To be in-line with the other set_XX_byte() functions. >> >> Signed-off-by: Hannes Reinecke <hare@suse.de> >> --- >> include/scsi/scsi_cmnd.h | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h >> index 91bd749a02f7..6932d91472d5 100644 >> --- a/include/scsi/scsi_cmnd.h >> +++ b/include/scsi/scsi_cmnd.h >> @@ -307,6 +307,11 @@ static inline struct scsi_data_buffer *scsi_prot(struct scsi_cmnd *cmd) >> #define scsi_for_each_prot_sg(cmd, sg, nseg, __i) \ >> for_each_sg(scsi_prot_sglist(cmd), sg, nseg, __i) >> >> +static inline void set_status_byte(struct scsi_cmnd *cmd, char status) >> +{ >> + cmd->result = (cmd->result & 0xffffff00) | status; > > Is sign-extension desirable here? Do callers need it? > It'll be a theoretical issue, as a status value with the top bit set would be invalid anyway. But for consistencies sake I'll make it an unsigned char in the next iteration. Cheers, Hannes
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 91bd749a02f7..6932d91472d5 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -307,6 +307,11 @@ static inline struct scsi_data_buffer *scsi_prot(struct scsi_cmnd *cmd) #define scsi_for_each_prot_sg(cmd, sg, nseg, __i) \ for_each_sg(scsi_prot_sglist(cmd), sg, nseg, __i) +static inline void set_status_byte(struct scsi_cmnd *cmd, char status) +{ + cmd->result = (cmd->result & 0xffffff00) | status; +} + static inline void set_msg_byte(struct scsi_cmnd *cmd, char status) { cmd->result = (cmd->result & 0xffff00ff) | (status << 8);
To be in-line with the other set_XX_byte() functions. Signed-off-by: Hannes Reinecke <hare@suse.de> --- include/scsi/scsi_cmnd.h | 5 +++++ 1 file changed, 5 insertions(+)