mirror of https://gitee.com/openkylin/linux.git
[SCSI] scsi_debug: fix invalid value check for guard module parameter
In the module initialization, invalid value for guard module parameter is detected by the following check: if (scsi_debug_guard > 1) { printk(KERN_ERR "scsi_debug_init: guard must be 0 or 1\n"); return -EINVAL; } But this check isn't enough, because the type of scsi_debug_guard is 'int' and scsi_debug_guard could be a negative value. This fixes it by changing the type of scsi_debug_guard to 'unsigned int' instead of adding extra check for a negative value. Reported-by: Joe Perches <joe@perches.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
65f72f2a2f
commit
68aee7ba66
|
@ -169,7 +169,7 @@ static int scsi_debug_dix = DEF_DIX;
|
|||
static int scsi_debug_dsense = DEF_D_SENSE;
|
||||
static int scsi_debug_every_nth = DEF_EVERY_NTH;
|
||||
static int scsi_debug_fake_rw = DEF_FAKE_RW;
|
||||
static int scsi_debug_guard = DEF_GUARD;
|
||||
static unsigned int scsi_debug_guard = DEF_GUARD;
|
||||
static int scsi_debug_lowest_aligned = DEF_LOWEST_ALIGNED;
|
||||
static int scsi_debug_max_luns = DEF_MAX_LUNS;
|
||||
static int scsi_debug_max_queue = SCSI_DEBUG_CANQUEUE;
|
||||
|
@ -2754,7 +2754,7 @@ module_param_named(dix, scsi_debug_dix, int, S_IRUGO);
|
|||
module_param_named(dsense, scsi_debug_dsense, int, S_IRUGO | S_IWUSR);
|
||||
module_param_named(every_nth, scsi_debug_every_nth, int, S_IRUGO | S_IWUSR);
|
||||
module_param_named(fake_rw, scsi_debug_fake_rw, int, S_IRUGO | S_IWUSR);
|
||||
module_param_named(guard, scsi_debug_guard, int, S_IRUGO);
|
||||
module_param_named(guard, scsi_debug_guard, uint, S_IRUGO);
|
||||
module_param_named(lbpu, scsi_debug_lbpu, int, S_IRUGO);
|
||||
module_param_named(lbpws, scsi_debug_lbpws, int, S_IRUGO);
|
||||
module_param_named(lbpws10, scsi_debug_lbpws10, int, S_IRUGO);
|
||||
|
@ -3184,7 +3184,7 @@ DRIVER_ATTR(dif, S_IRUGO, sdebug_dif_show, NULL);
|
|||
|
||||
static ssize_t sdebug_guard_show(struct device_driver *ddp, char *buf)
|
||||
{
|
||||
return scnprintf(buf, PAGE_SIZE, "%d\n", scsi_debug_guard);
|
||||
return scnprintf(buf, PAGE_SIZE, "%u\n", scsi_debug_guard);
|
||||
}
|
||||
DRIVER_ATTR(guard, S_IRUGO, sdebug_guard_show, NULL);
|
||||
|
||||
|
|
Loading…
Reference in New Issue