On Tue, Jan 29, 2013 at 08:12:00AM +0100, Hannes Reinecke wrote:Ok, will be fixing it up.This patch adds a 'timeout' attibute to the DASD driver.
When set to non-zero, the blk_timeout function will
be enabled with the timeout specified in the attribute.
Setting 'timeout' to '0' will disable block timeouts.
Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
[...]
+static ssize_t
+dasd_timeout_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct dasd_device *device;
+ struct request_queue *q;
+ unsigned long val, flags;
+
+ device = dasd_device_from_cdev(to_ccwdev(dev));
+ if (IS_ERR(device))
+ return -ENODEV;
+
+ if ((strict_strtoul(buf, 10, &val) != 0) ||
+ val > ULONG_MAX / HZ) {
Probably this should be UINT_MAX instead of ULONG_MAX, otherwise it
might overflow since blk_queue_rq_timeout(...) expects only an
unsigned int.