diff options
-rw-r--r-- | drivers/scsi/scsi_debug.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c index 7a2a3edcc723..2a388d06094a 100644 --- a/drivers/scsi/scsi_debug.c +++ b/drivers/scsi/scsi_debug.c | |||
@@ -2681,21 +2681,10 @@ static ssize_t sdebug_add_host_show(struct device_driver * ddp, char * buf) | |||
2681 | static ssize_t sdebug_add_host_store(struct device_driver * ddp, | 2681 | static ssize_t sdebug_add_host_store(struct device_driver * ddp, |
2682 | const char * buf, size_t count) | 2682 | const char * buf, size_t count) |
2683 | { | 2683 | { |
2684 | int delta_hosts; | 2684 | int delta_hosts; |
2685 | char work[20]; | ||
2686 | 2685 | ||
2687 | if (1 != sscanf(buf, "%10s", work)) | 2686 | if (sscanf(buf, "%d", &delta_hosts) != 1) |
2688 | return -EINVAL; | 2687 | return -EINVAL; |
2689 | { /* temporary hack around sscanf() problem with -ve nums */ | ||
2690 | int neg = 0; | ||
2691 | |||
2692 | if ('-' == *work) | ||
2693 | neg = 1; | ||
2694 | if (1 != sscanf(work + neg, "%d", &delta_hosts)) | ||
2695 | return -EINVAL; | ||
2696 | if (neg) | ||
2697 | delta_hosts = -delta_hosts; | ||
2698 | } | ||
2699 | if (delta_hosts > 0) { | 2688 | if (delta_hosts > 0) { |
2700 | do { | 2689 | do { |
2701 | sdebug_add_adapter(); | 2690 | sdebug_add_adapter(); |
@@ -2707,7 +2696,7 @@ static ssize_t sdebug_add_host_store(struct device_driver * ddp, | |||
2707 | } | 2696 | } |
2708 | return count; | 2697 | return count; |
2709 | } | 2698 | } |
2710 | DRIVER_ATTR(add_host, S_IRUGO | S_IWUSR, sdebug_add_host_show, | 2699 | DRIVER_ATTR(add_host, S_IRUGO | S_IWUSR, sdebug_add_host_show, |
2711 | sdebug_add_host_store); | 2700 | sdebug_add_host_store); |
2712 | 2701 | ||
2713 | static ssize_t sdebug_vpd_use_hostno_show(struct device_driver * ddp, | 2702 | static ssize_t sdebug_vpd_use_hostno_show(struct device_driver * ddp, |