aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/scsi_transport_fc.c10
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
834store_fc_rport_dev_loss_tmo(struct device *dev, struct device_attribute *attr, 834store_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
2865fc_remote_port_delete(struct fc_rport *rport) 2871fc_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 /*