scsi: libosd: Remove VLA usage
PATCH 1/1 scsi: libosd: Remove VLA usage
On the quest to remove all VLAs from the kernel[1] this rearranges the code to avoid a VLA warning under -Wvla (gcc doesn't recognize "const" variables as not triggering VLA creation). Additionally cleans up variable naming to avoid 80 character column limit.
[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
--- drivers/scsi/osd/osd_initiator.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
drivers/scsi/osd/osd_initiator.c +8 -8
@@ -1842,14 +1842,14 @@ int osd_req_decode_sense_full(struct osd_request *or,case osd_sense_response_integrity_check: {struct osd_sense_response_integrity_check_descriptor - *osricd = cur_descriptor; -const unsigned len = -sizeof (osricd->integrity_check_value); -char key_dump[len*4 +2 ];/* 2nibbles+space+ASCII */ - -hex_dump_to_buffer (osricd->integrity_check_value, len, -32 ,1 , key_dump,sizeof (key_dump), true); -OSD_SENSE_PRINT2 ("response_integrity [%s]\n" , key_dump); + *d = cur_descriptor; +/* 2nibbles+space+ASCII */ +char dump[sizeof (d->integrity_check_value) *4 +2 ]; + +hex_dump_to_buffer (d->integrity_check_value, +sizeof (d->integrity_check_value), +32 ,1 , dump,sizeof (dump), true); +OSD_SENSE_PRINT2 ("response_integrity [%s]\n" , dump); }case osd_sense_attribute_identification: {
Signature · 6 lines
2.17.0 -- Kees Cook Pixel Security
Quoted 7 lines · Kees Cook
On the quest to remove all VLAs from the kernel[1] this rearranges the code to avoid a VLA warning under -Wvla (gcc doesn't recognize "const" variables as not triggering VLA creation). Additionally cleans up variable naming to avoid 80 character column limit.
[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
Quoted 33 lines
Signed-off-by Kees Cook <[email protected]>--- drivers/scsi/osd/osd_initiator.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)drivers/scsi/osd/osd_initiator.c +8
-8@@ -1842,14 +1842,14 @@ int osd_req_decode_sense_full(struct osd_request *or,case osd_sense_response_integrity_check: {struct osd_sense_response_integrity_check_descriptor - *osricd = cur_descriptor; -const unsigned len = -sizeof (osricd->integrity_check_value); -char key_dump[len*4 +2 ];/* 2nibbles+space+ASCII */ - -hex_dump_to_buffer (osricd->integrity_check_value, len, -32 ,1 , key_dump,sizeof (key_dump), true); -OSD_SENSE_PRINT2 ("response_integrity [%s]\n" , key_dump); + *d = cur_descriptor; +/* 2nibbles+space+ASCII */ +char dump[sizeof (d->integrity_check_value) *4 +2 ]; + +hex_dump_to_buffer (d->integrity_check_value, +sizeof (d->integrity_check_value), +32 ,1 , dump,sizeof (dump), true); +OSD_SENSE_PRINT2 ("response_integrity [%s]\n" , dump); }case osd_sense_attribute_identification: {
Martin K. Petersen
AppliedKees,
Quoted 4 lines
On the quest to remove all VLAs from the kernel[1] this rearranges the code to avoid a VLA warning under -Wvla (gcc doesn't recognize "const" variables as not triggering VLA creation). Additionally cleans up variable naming to avoid 80 character column limit.
Applied to 4.18/scsi-queue. Thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering