Commit 9237f04e authored by Damien Le Moal's avatar Damien Le Moal Committed by Martin K. Petersen

scsi: core: Fix scsi_get/set_resid() interface

struct scsi_cmnd cmd->req.resid_len which is returned and set respectively
by the helper functions scsi_get_resid() and scsi_set_resid() is an
unsigned int. Reflect this fact in the interface of these helper functions.

Also fix compilation errors due to min() and max() type mismatch introduced
by this change in scsi debug code, usb transport code and in the USB ENE
card reader driver.

Link: https://lore.kernel.org/r/20191030090847.25650-1-damien.lemoal@wdc.comSigned-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 61951a6d
...@@ -1025,7 +1025,7 @@ static int fill_from_dev_buffer(struct scsi_cmnd *scp, unsigned char *arr, ...@@ -1025,7 +1025,7 @@ static int fill_from_dev_buffer(struct scsi_cmnd *scp, unsigned char *arr,
static int p_fill_from_dev_buffer(struct scsi_cmnd *scp, const void *arr, static int p_fill_from_dev_buffer(struct scsi_cmnd *scp, const void *arr,
int arr_len, unsigned int off_dst) int arr_len, unsigned int off_dst)
{ {
int act_len, n; unsigned int act_len, n;
struct scsi_data_buffer *sdb = &scp->sdb; struct scsi_data_buffer *sdb = &scp->sdb;
off_t skip = off_dst; off_t skip = off_dst;
...@@ -1039,7 +1039,7 @@ static int p_fill_from_dev_buffer(struct scsi_cmnd *scp, const void *arr, ...@@ -1039,7 +1039,7 @@ static int p_fill_from_dev_buffer(struct scsi_cmnd *scp, const void *arr,
pr_debug("%s: off_dst=%u, scsi_bufflen=%u, act_len=%u, resid=%d\n", pr_debug("%s: off_dst=%u, scsi_bufflen=%u, act_len=%u, resid=%d\n",
__func__, off_dst, scsi_bufflen(scp), act_len, __func__, off_dst, scsi_bufflen(scp), act_len,
scsi_get_resid(scp)); scsi_get_resid(scp));
n = (int)scsi_bufflen(scp) - ((int)off_dst + act_len); n = scsi_bufflen(scp) - (off_dst + act_len);
scsi_set_resid(scp, min(scsi_get_resid(scp), n)); scsi_set_resid(scp, min(scsi_get_resid(scp), n));
return 0; return 0;
} }
......
...@@ -561,7 +561,7 @@ static int ene_send_scsi_cmd(struct us_data *us, u8 fDir, void *buf, int use_sg) ...@@ -561,7 +561,7 @@ static int ene_send_scsi_cmd(struct us_data *us, u8 fDir, void *buf, int use_sg)
residue = min(residue, transfer_length); residue = min(residue, transfer_length);
if (us->srb != NULL) if (us->srb != NULL)
scsi_set_resid(us->srb, max(scsi_get_resid(us->srb), scsi_set_resid(us->srb, max(scsi_get_resid(us->srb),
(int)residue)); residue));
} }
if (bcs->Status != US_BULK_STAT_OK) if (bcs->Status != US_BULK_STAT_OK)
......
...@@ -1284,8 +1284,7 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us) ...@@ -1284,8 +1284,7 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
} else { } else {
residue = min(residue, transfer_length); residue = min(residue, transfer_length);
scsi_set_resid(srb, max(scsi_get_resid(srb), scsi_set_resid(srb, max(scsi_get_resid(srb), residue));
(int) residue));
} }
} }
......
...@@ -191,12 +191,12 @@ static inline unsigned scsi_bufflen(struct scsi_cmnd *cmd) ...@@ -191,12 +191,12 @@ static inline unsigned scsi_bufflen(struct scsi_cmnd *cmd)
return cmd->sdb.length; return cmd->sdb.length;
} }
static inline void scsi_set_resid(struct scsi_cmnd *cmd, int resid) static inline void scsi_set_resid(struct scsi_cmnd *cmd, unsigned int resid)
{ {
cmd->req.resid_len = resid; cmd->req.resid_len = resid;
} }
static inline int scsi_get_resid(struct scsi_cmnd *cmd) static inline unsigned int scsi_get_resid(struct scsi_cmnd *cmd)
{ {
return cmd->req.resid_len; return cmd->req.resid_len;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment