linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] ibmvscsi parameter cleanup
@ 2015-11-09 13:53 Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 1/3] ibmvscsi: make parameters max_id and max_channel read-only Laurent Vivier
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Laurent Vivier @ 2015-11-09 13:53 UTC (permalink / raw)
  To: martin.petersen; +Cc: hare, brking, tyreld, linux-scsi, linux-kernel, lvivier

v3 checks that max_lun is less or equal to 31

v2 of this series only fix the format type of max_lun:

drivers/scsi/ibmvscsi/ibmvscsi.c:2298:4:
warning: format '%d' expects argument of type 'int',
but argument 4 has type 'u64 {aka long long unsigned int}' [-Wformat=]
       "Maximum ID: %d Maximum LUN: %d Maximum Channel: %d\n",

Laurent Vivier (3):
  ibmvscsi: make parameters max_id and max_channel read-only
  ibmvscsi: display default value for max_id, max_lun and max_channel.
  ibmvscsi: Allow to configure maximum LUN

 drivers/scsi/ibmvscsi/ibmvscsi.c | 21 ++++++++++++++++-----
 drivers/scsi/ibmvscsi/ibmvscsi.h |  1 +
 2 files changed, 17 insertions(+), 5 deletions(-)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3 1/3] ibmvscsi: make parameters max_id and max_channel read-only
  2015-11-09 13:53 [PATCH v3 0/3] ibmvscsi parameter cleanup Laurent Vivier
@ 2015-11-09 13:53 ` Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 2/3] ibmvscsi: display default value for max_id, max_lun and max_channel Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN Laurent Vivier
  2 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2015-11-09 13:53 UTC (permalink / raw)
  To: martin.petersen; +Cc: hare, brking, tyreld, linux-scsi, linux-kernel, lvivier

The value of the parameter is never re-read by the driver,
so a new value is ignored. Let know the user he
can't modify it by removing writable attribute.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
 drivers/scsi/ibmvscsi/ibmvscsi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index 6a41c36..3e76490 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -105,9 +105,9 @@ MODULE_AUTHOR("Dave Boutcher");
 MODULE_LICENSE("GPL");
 MODULE_VERSION(IBMVSCSI_VERSION);
 
-module_param_named(max_id, max_id, int, S_IRUGO | S_IWUSR);
+module_param_named(max_id, max_id, int, S_IRUGO);
 MODULE_PARM_DESC(max_id, "Largest ID value for each channel");
-module_param_named(max_channel, max_channel, int, S_IRUGO | S_IWUSR);
+module_param_named(max_channel, max_channel, int, S_IRUGO);
 MODULE_PARM_DESC(max_channel, "Largest channel value");
 module_param_named(init_timeout, init_timeout, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(init_timeout, "Initialization timeout in seconds");
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 2/3] ibmvscsi: display default value for max_id, max_lun and max_channel.
  2015-11-09 13:53 [PATCH v3 0/3] ibmvscsi parameter cleanup Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 1/3] ibmvscsi: make parameters max_id and max_channel read-only Laurent Vivier
@ 2015-11-09 13:53 ` Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN Laurent Vivier
  2 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2015-11-09 13:53 UTC (permalink / raw)
  To: martin.petersen; +Cc: hare, brking, tyreld, linux-scsi, linux-kernel, lvivier

As devices with values greater than that are silently ignored,
this gives some hints to the sys admin to know why he doesn't see
his devices...

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
 drivers/scsi/ibmvscsi/ibmvscsi.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index 3e76490..04de287 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -106,9 +106,9 @@ MODULE_LICENSE("GPL");
 MODULE_VERSION(IBMVSCSI_VERSION);
 
 module_param_named(max_id, max_id, int, S_IRUGO);
-MODULE_PARM_DESC(max_id, "Largest ID value for each channel");
+MODULE_PARM_DESC(max_id, "Largest ID value for each channel [Default=64]");
 module_param_named(max_channel, max_channel, int, S_IRUGO);
-MODULE_PARM_DESC(max_channel, "Largest channel value");
+MODULE_PARM_DESC(max_channel, "Largest channel value [Default=3]");
 module_param_named(init_timeout, init_timeout, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(init_timeout, "Initialization timeout in seconds");
 module_param_named(max_requests, max_requests, int, S_IRUGO);
@@ -2294,6 +2294,10 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id)
 	host->max_channel = max_channel;
 	host->max_cmd_len = 16;
 
+	dev_info(dev,
+		 "Maximum ID: %d Maximum LUN: %llu Maximum Channel: %d\n",
+		 host->max_id, host->max_lun, host->max_channel);
+
 	if (scsi_add_host(hostdata->host, hostdata->dev))
 		goto add_host_failed;
 
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN
  2015-11-09 13:53 [PATCH v3 0/3] ibmvscsi parameter cleanup Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 1/3] ibmvscsi: make parameters max_id and max_channel read-only Laurent Vivier
  2015-11-09 13:53 ` [PATCH v3 2/3] ibmvscsi: display default value for max_id, max_lun and max_channel Laurent Vivier
@ 2015-11-09 13:53 ` Laurent Vivier
  2015-11-09 14:04   ` Hannes Reinecke
  2 siblings, 1 reply; 6+ messages in thread
From: Laurent Vivier @ 2015-11-09 13:53 UTC (permalink / raw)
  To: martin.petersen; +Cc: hare, brking, tyreld, linux-scsi, linux-kernel, lvivier

QEMU allows until 32 LUNs.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
 drivers/scsi/ibmvscsi/ibmvscsi.c | 9 ++++++++-
 drivers/scsi/ibmvscsi/ibmvscsi.h | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index 04de287..56a9a28 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -84,6 +84,7 @@
  */
 static int max_id = 64;
 static int max_channel = 3;
+static int max_lun = 8;
 static int init_timeout = 300;
 static int login_timeout = 60;
 static int info_timeout = 30;
@@ -117,6 +118,9 @@ module_param_named(fast_fail, fast_fail, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(fast_fail, "Enable fast fail. [Default=1]");
 module_param_named(client_reserve, client_reserve, int, S_IRUGO );
 MODULE_PARM_DESC(client_reserve, "Attempt client managed reserve/release");
+module_param(max_lun, int, S_IRUGO);
+MODULE_PARM_DESC(max_lun, "Maximum LUN value "
+                          "[Default=8,Max="__stringify(IBMVSCSI_MAX_LUN)"]");
 
 static void ibmvscsi_handle_crq(struct viosrp_crq *crq,
 				struct ibmvscsi_host_data *hostdata);
@@ -2289,7 +2293,7 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id)
 		goto init_pool_failed;
 	}
 
-	host->max_lun = 8;
+	host->max_lun = max_lun;
 	host->max_id = max_id;
 	host->max_channel = max_channel;
 	host->max_cmd_len = 16;
@@ -2414,6 +2418,9 @@ int __init ibmvscsi_module_init(void)
 {
 	int ret;
 
+	if (max_lun > IBMVSCSI_MAX_LUN)
+		return -EINVAL;
+
 	/* Ensure we have two requests to do error recovery */
 	driver_template.can_queue = max_requests;
 	max_events = max_requests + 2;
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.h b/drivers/scsi/ibmvscsi/ibmvscsi.h
index 7d64867..12141fb 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.h
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.h
@@ -48,6 +48,7 @@ struct Scsi_Host;
 #define IBMVSCSI_CMDS_PER_LUN_DEFAULT 16
 #define IBMVSCSI_MAX_SECTORS_DEFAULT 256 /* 32 * 8 = default max I/O 32 pages */
 #define IBMVSCSI_MAX_CMDS_PER_LUN 64
+#define IBMVSCSI_MAX_LUN 31
 
 /* ------------------------------------------------------------
  * Data Structures
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN
  2015-11-09 13:53 ` [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN Laurent Vivier
@ 2015-11-09 14:04   ` Hannes Reinecke
  2015-11-09 14:26     ` Laurent Vivier
  0 siblings, 1 reply; 6+ messages in thread
From: Hannes Reinecke @ 2015-11-09 14:04 UTC (permalink / raw)
  To: Laurent Vivier, martin.petersen; +Cc: brking, tyreld, linux-scsi, linux-kernel

On 11/09/2015 02:53 PM, Laurent Vivier wrote:
> QEMU allows until 32 LUNs.
> 
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
>  drivers/scsi/ibmvscsi/ibmvscsi.c | 9 ++++++++-
>  drivers/scsi/ibmvscsi/ibmvscsi.h | 1 +
>  2 files changed, 9 insertions(+), 1 deletion(-)
> 
Nothing to do with QEMU; this is a driver limitation.
Please fixup the description.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		               zSeries & Storage
hare@suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN
  2015-11-09 14:04   ` Hannes Reinecke
@ 2015-11-09 14:26     ` Laurent Vivier
  0 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2015-11-09 14:26 UTC (permalink / raw)
  To: Hannes Reinecke, martin.petersen; +Cc: brking, tyreld, linux-scsi, linux-kernel



On 09/11/2015 15:04, Hannes Reinecke wrote:
> On 11/09/2015 02:53 PM, Laurent Vivier wrote:
>> QEMU allows until 32 LUNs.
>>
>> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
>> ---
>>  drivers/scsi/ibmvscsi/ibmvscsi.c | 9 ++++++++-
>>  drivers/scsi/ibmvscsi/ibmvscsi.h | 1 +
>>  2 files changed, 9 insertions(+), 1 deletion(-)
>>
> Nothing to do with QEMU; this is a driver limitation.
> Please fixup the description.

Yes, you're right, and I think I didn't define correctly the maximum
value, I use 31 instead of 32 as explained in include/scsi/scsi_host.h:

        /*
         * These three parameters can be used to allow for wide scsi,
         * and for host adapters that support multiple busses
         * The last two should be set to 1 more than the actual max id
         * or lun (e.g. 8 for SCSI parallel systems).
         */
        unsigned int max_channel;
        unsigned int max_id;
        u64 max_lun;

Laurent

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-11-09 14:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-09 13:53 [PATCH v3 0/3] ibmvscsi parameter cleanup Laurent Vivier
2015-11-09 13:53 ` [PATCH v3 1/3] ibmvscsi: make parameters max_id and max_channel read-only Laurent Vivier
2015-11-09 13:53 ` [PATCH v3 2/3] ibmvscsi: display default value for max_id, max_lun and max_channel Laurent Vivier
2015-11-09 13:53 ` [PATCH v3 3/3] ibmvscsi: Allow to configure maximum LUN Laurent Vivier
2015-11-09 14:04   ` Hannes Reinecke
2015-11-09 14:26     ` Laurent Vivier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).