diff options
-rw-r--r-- | drivers/scsi/scsi_transport_fc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index 6cfffc88022a..55fe730a8606 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c | |||
@@ -834,7 +834,7 @@ static ssize_t | |||
834 | store_fc_rport_dev_loss_tmo(struct device *dev, struct device_attribute *attr, | 834 | store_fc_rport_dev_loss_tmo(struct device *dev, struct device_attribute *attr, |
835 | const char *buf, size_t count) | 835 | const char *buf, size_t count) |
836 | { | 836 | { |
837 | int val; | 837 | unsigned long val; |
838 | struct fc_rport *rport = transport_class_to_rport(dev); | 838 | struct fc_rport *rport = transport_class_to_rport(dev); |
839 | struct Scsi_Host *shost = rport_to_shost(rport); | 839 | struct Scsi_Host *shost = rport_to_shost(rport); |
840 | struct fc_internal *i = to_fc_internal(shost->transportt); | 840 | struct fc_internal *i = to_fc_internal(shost->transportt); |
@@ -848,6 +848,12 @@ store_fc_rport_dev_loss_tmo(struct device *dev, struct device_attribute *attr, | |||
848 | return -EINVAL; | 848 | return -EINVAL; |
849 | 849 | ||
850 | /* | 850 | /* |
851 | * Check for overflow; dev_loss_tmo is u32 | ||
852 | */ | ||
853 | if (val > UINT_MAX) | ||
854 | return -EINVAL; | ||
855 | |||
856 | /* | ||
851 | * If fast_io_fail is off we have to cap | 857 | * If fast_io_fail is off we have to cap |
852 | * dev_loss_tmo at SCSI_DEVICE_BLOCK_MAX_TIMEOUT | 858 | * dev_loss_tmo at SCSI_DEVICE_BLOCK_MAX_TIMEOUT |
853 | */ | 859 | */ |
@@ -2865,7 +2871,7 @@ void | |||
2865 | fc_remote_port_delete(struct fc_rport *rport) | 2871 | fc_remote_port_delete(struct fc_rport *rport) |
2866 | { | 2872 | { |
2867 | struct Scsi_Host *shost = rport_to_shost(rport); | 2873 | struct Scsi_Host *shost = rport_to_shost(rport); |
2868 | int timeout = rport->dev_loss_tmo; | 2874 | unsigned long timeout = rport->dev_loss_tmo; |
2869 | unsigned long flags; | 2875 | unsigned long flags; |
2870 | 2876 | ||
2871 | /* | 2877 | /* |