Skip to content

Commit f5ace5e

Browse files
GustavoARSilvaaxboe
authored andcommitted
block: scsi_ioctl: Avoid the use of one-element arrays
One-element arrays are being deprecated[1]. Replace the one-element array with a simple object of type compat_caddr_t: 'compat_caddr_t unused'[2], once it seems this field is actually never used. Also, update struct cdrom_generic_command in UAPI by adding an anonimous union to avoid using the one-element array _reserved_. [1] https://www.kernel.org/doc/html/v5.9-rc1/process/deprecated.html#zero-length-and-one-element-arrays [2] KSPP#86 Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Link: https://lore.kernel.org/lkml/5f76f5d0.qJ4t%2FHWuRzSW7bTa%25lkp@intel.com/ Build-tested-by: kernel test robot <lkp@intel.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 99ba84c commit f5ace5e

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

block/scsi_ioctl.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ struct compat_cdrom_generic_command {
651651
unsigned char data_direction;
652652
compat_int_t quiet;
653653
compat_int_t timeout;
654-
compat_caddr_t reserved[1];
654+
compat_caddr_t unused;
655655
};
656656
#endif
657657

@@ -673,7 +673,7 @@ static int scsi_get_cdrom_generic_arg(struct cdrom_generic_command *cgc,
673673
.data_direction = cgc32.data_direction,
674674
.quiet = cgc32.quiet,
675675
.timeout = cgc32.timeout,
676-
.reserved[0] = compat_ptr(cgc32.reserved[0]),
676+
.unused = compat_ptr(cgc32.unused),
677677
};
678678
memcpy(&cgc->cmd, &cgc32.cmd, CDROM_PACKET_SIZE);
679679
return 0;
@@ -698,7 +698,7 @@ static int scsi_put_cdrom_generic_arg(const struct cdrom_generic_command *cgc,
698698
.data_direction = cgc->data_direction,
699699
.quiet = cgc->quiet,
700700
.timeout = cgc->timeout,
701-
.reserved[0] = (uintptr_t)(cgc->reserved[0]),
701+
.unused = (uintptr_t)(cgc->unused),
702702
};
703703
memcpy(&cgc32.cmd, &cgc->cmd, CDROM_PACKET_SIZE);
704704

include/uapi/linux/cdrom.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,10 @@ struct cdrom_generic_command
289289
unsigned char data_direction;
290290
int quiet;
291291
int timeout;
292-
void __user *reserved[1]; /* unused, actually */
292+
union {
293+
void __user *reserved[1]; /* unused, actually */
294+
void __user *unused;
295+
};
293296
};
294297

295298
/*

0 commit comments

Comments
 (0)