Commit 92eb5062 authored by Stephen Kitt's avatar Stephen Kitt Committed by Martin K. Petersen

scsi: device_handler: remove VLAs

In preparation to enabling -Wvla, remove VLAs and replace them with
fixed-length arrays instead.

scsi_dh_{alua,emc,rdac} use variable-length array declarations to store
command blocks, with the appropriate size as determined by
COMMAND_SIZE. This patch replaces these with fixed-sized arrays using
MAX_COMMAND_SIZE, so that the array size can be determined at compile
time.

This was prompted by https://lkml.org/lkml/2018/3/7/621Signed-off-by: default avatarStephen Kitt <steve@sk2.org>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent e32ec657
...@@ -138,12 +138,12 @@ static void release_port_group(struct kref *kref) ...@@ -138,12 +138,12 @@ static void release_port_group(struct kref *kref)
static int submit_rtpg(struct scsi_device *sdev, unsigned char *buff, static int submit_rtpg(struct scsi_device *sdev, unsigned char *buff,
int bufflen, struct scsi_sense_hdr *sshdr, int flags) int bufflen, struct scsi_sense_hdr *sshdr, int flags)
{ {
u8 cdb[COMMAND_SIZE(MAINTENANCE_IN)]; u8 cdb[MAX_COMMAND_SIZE];
int req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | int req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT |
REQ_FAILFAST_DRIVER; REQ_FAILFAST_DRIVER;
/* Prepare the command. */ /* Prepare the command. */
memset(cdb, 0x0, COMMAND_SIZE(MAINTENANCE_IN)); memset(cdb, 0x0, MAX_COMMAND_SIZE);
cdb[0] = MAINTENANCE_IN; cdb[0] = MAINTENANCE_IN;
if (!(flags & ALUA_RTPG_EXT_HDR_UNSUPP)) if (!(flags & ALUA_RTPG_EXT_HDR_UNSUPP))
cdb[1] = MI_REPORT_TARGET_PGS | MI_EXT_HDR_PARAM_FMT; cdb[1] = MI_REPORT_TARGET_PGS | MI_EXT_HDR_PARAM_FMT;
...@@ -166,7 +166,7 @@ static int submit_rtpg(struct scsi_device *sdev, unsigned char *buff, ...@@ -166,7 +166,7 @@ static int submit_rtpg(struct scsi_device *sdev, unsigned char *buff,
static int submit_stpg(struct scsi_device *sdev, int group_id, static int submit_stpg(struct scsi_device *sdev, int group_id,
struct scsi_sense_hdr *sshdr) struct scsi_sense_hdr *sshdr)
{ {
u8 cdb[COMMAND_SIZE(MAINTENANCE_OUT)]; u8 cdb[MAX_COMMAND_SIZE];
unsigned char stpg_data[8]; unsigned char stpg_data[8];
int stpg_len = 8; int stpg_len = 8;
int req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | int req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT |
...@@ -178,7 +178,7 @@ static int submit_stpg(struct scsi_device *sdev, int group_id, ...@@ -178,7 +178,7 @@ static int submit_stpg(struct scsi_device *sdev, int group_id,
put_unaligned_be16(group_id, &stpg_data[6]); put_unaligned_be16(group_id, &stpg_data[6]);
/* Prepare the command. */ /* Prepare the command. */
memset(cdb, 0x0, COMMAND_SIZE(MAINTENANCE_OUT)); memset(cdb, 0x0, MAX_COMMAND_SIZE);
cdb[0] = MAINTENANCE_OUT; cdb[0] = MAINTENANCE_OUT;
cdb[1] = MO_SET_TARGET_PGS; cdb[1] = MO_SET_TARGET_PGS;
put_unaligned_be32(stpg_len, &cdb[6]); put_unaligned_be32(stpg_len, &cdb[6]);
......
...@@ -249,7 +249,7 @@ static int send_trespass_cmd(struct scsi_device *sdev, ...@@ -249,7 +249,7 @@ static int send_trespass_cmd(struct scsi_device *sdev,
struct clariion_dh_data *csdev) struct clariion_dh_data *csdev)
{ {
unsigned char *page22; unsigned char *page22;
unsigned char cdb[COMMAND_SIZE(MODE_SELECT)]; unsigned char cdb[MAX_COMMAND_SIZE];
int err, res = SCSI_DH_OK, len; int err, res = SCSI_DH_OK, len;
struct scsi_sense_hdr sshdr; struct scsi_sense_hdr sshdr;
u64 req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | u64 req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT |
......
...@@ -533,7 +533,7 @@ static void send_mode_select(struct work_struct *work) ...@@ -533,7 +533,7 @@ static void send_mode_select(struct work_struct *work)
int err = SCSI_DH_OK, retry_cnt = RDAC_RETRY_COUNT; int err = SCSI_DH_OK, retry_cnt = RDAC_RETRY_COUNT;
struct rdac_queue_data *tmp, *qdata; struct rdac_queue_data *tmp, *qdata;
LIST_HEAD(list); LIST_HEAD(list);
unsigned char cdb[COMMAND_SIZE(MODE_SELECT_10)]; unsigned char cdb[MAX_COMMAND_SIZE];
struct scsi_sense_hdr sshdr; struct scsi_sense_hdr sshdr;
unsigned int data_size; unsigned int data_size;
u64 req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | u64 req_flags = REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment