2015-11-09 16:49:16

by Laurent Vivier

[permalink] [raw]
Subject: [PATCH v5 0/2] ibmvscsi parameter cleanup

v5 set directly max_lun to 32
remove patch 1/3 "make parameters max_id and max_channel read-only"

v4 udpates 3/3 description
max_lun can be less or equal to 32

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 (2):
ibmvscsi: display default value for max_id, max_lun and max_channel.
ibmvscsi: set max_lun to 32

drivers/scsi/ibmvscsi/ibmvscsi.c | 10 +++++++---
drivers/scsi/ibmvscsi/ibmvscsi.h | 1 +
2 files changed, 8 insertions(+), 3 deletions(-)

--
2.1.0


2015-11-09 16:49:36

by Laurent Vivier

[permalink] [raw]
Subject: [PATCH v5 1/2] ibmvscsi: display default value for max_id, max_lun and max_channel.

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 <[email protected]>
---
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 6a41c36..b153150 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 | S_IWUSR);
-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 | S_IWUSR);
-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

2015-11-09 16:49:20

by Laurent Vivier

[permalink] [raw]
Subject: [PATCH v5 2/2] ibmvscsi: set max_lun to 32

As defined in 4.6.9 of SAM-4, the encoding of LUN is
on 5 bits (max_lun=32) and the current value is only 8.
Set max_lun to IBMVSCSI_MAX_LUN (32).

Signed-off-by: Laurent Vivier <[email protected]>
---
drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +-
drivers/scsi/ibmvscsi/ibmvscsi.h | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index b153150..adfef9d 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -2289,7 +2289,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 = IBMVSCSI_MAX_LUN;
host->max_id = max_id;
host->max_channel = max_channel;
host->max_cmd_len = 16;
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.h b/drivers/scsi/ibmvscsi/ibmvscsi.h
index 7d64867..1067367 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 32

/* ------------------------------------------------------------
* Data Structures
--
2.1.0

2015-11-12 02:01:53

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH v5 1/2] ibmvscsi: display default value for max_id, max_lun and max_channel.

>>>>> "Laurent" == Laurent Vivier <[email protected]> writes:

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

Applied both patches.

--
Martin K. Petersen Oracle Linux Engineering