[3.19.y-ckt stable] Patch "scsi: fix host max depth checking for the 'queue_depth' sysfs interface" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Wed Aug 5 21:47:59 UTC 2015


This is a note to let you know that I have just added a patch titled

    scsi: fix host max depth checking for the 'queue_depth' sysfs interface

to the linux-3.19.y-queue branch of the 3.19.y-ckt extended stable tree 
which can be found at:

    http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.19.y-queue

This patch is scheduled to be released in version 3.19.8-ckt5.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.19.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

>From a46d9bcd8df64019ebfe168433b3e67f715917c8 Mon Sep 17 00:00:00 2001
From: Jens Axboe <axboe at fb.com>
Date: Mon, 13 Jul 2015 08:24:39 -0600
Subject: scsi: fix host max depth checking for the 'queue_depth' sysfs
 interface

commit 1278dd6809b11dc298e19d81ac0916275f7318c1 upstream.

Commit 1e6f2416044c0 changed the scsi sysfs 'queue_depth' code to
rejects depths higher than the scsi host template setting. But lots
of hosts set this to 1, and update the settings in the scsi host
when the controller/devices probing happens.

This breaks (at least) mpt2sas and mpt3sas runtime setting of queue
depth, returning EINVAL for all settings but '1'. And once it's set to
1, there's no way to go back up.

Fixes: 1e6f2416044c0 "scsi: don't allow setting of queue_depth bigger than can_queue"
Signed-off-by: Jens Axboe <axboe at fb.com>
Reviewed-by: Martin K. Petersen <martin.petersen at oracle.com>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: James Bottomley <JBottomley at Odin.com>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 drivers/scsi/scsi_sysfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 1ac38e7..9ad4116 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -859,7 +859,7 @@ sdev_store_queue_depth(struct device *dev, struct device_attribute *attr,

 	depth = simple_strtoul(buf, NULL, 0);

-	if (depth < 1 || depth > sht->can_queue)
+	if (depth < 1 || depth > sdev->host->can_queue)
 		return -EINVAL;

 	retval = sht->change_queue_depth(sdev, depth);
--
1.9.1





More information about the kernel-team mailing list