linux_dsm_epyc7002/drivers/scsi/qla2xxx
Bart Van Assche c02189e12c scsi: qla2xxx: Avoid triggering undefined behavior in qla2x00_mbx_completion()
A left shift must shift less than the bit width of the left argument.
Avoid triggering undefined behavior if ha->mbx_count == 32.

This patch avoids that UBSAN reports the following complaint:

UBSAN: Undefined behaviour in drivers/scsi/qla2xxx/qla_isr.c:275:14
shift exponent 32 is too large for 32-bit type 'int'
Call Trace:
 dump_stack+0x4e/0x6c
 ubsan_epilogue+0xd/0x3b
 __ubsan_handle_shift_out_of_bounds+0x112/0x14c
 qla2x00_mbx_completion+0x1c5/0x25d [qla2xxx]
 qla2300_intr_handler+0x1ea/0x3bb [qla2xxx]
 qla2x00_mailbox_command+0x77b/0x139a [qla2xxx]
 qla2x00_mbx_reg_test+0x83/0x114 [qla2xxx]
 qla2x00_chip_diag+0x354/0x45f [qla2xxx]
 qla2x00_initialize_adapter+0x2c2/0xa4e [qla2xxx]
 qla2x00_probe_one+0x1681/0x392e [qla2xxx]
 pci_device_probe+0x10b/0x1f1
 driver_probe_device+0x21f/0x3a4
 __driver_attach+0xa9/0xe1
 bus_for_each_dev+0x6e/0xb5
 driver_attach+0x22/0x3c
 bus_add_driver+0x1d1/0x2ae
 driver_register+0x78/0x130
 __pci_register_driver+0x75/0xa8
 qla2x00_module_init+0x21b/0x267 [qla2xxx]
 do_one_initcall+0x5a/0x1e2
 do_init_module+0x9d/0x285
 load_module+0x20db/0x38e3
 SYSC_finit_module+0xa8/0xbc
 SyS_finit_module+0x9/0xb
 do_syscall_64+0x77/0x271
 entry_SYSCALL64_slow_path+0x25/0x25

Reported-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Himanshu Madhani <himanshu.madhani@cavium.com>
Reviewed-by: Laurence Oberman <loberman@redhat.com>
Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-01-30 21:33:10 -05:00
..
Kconfig scsi: qla2xxx: avoid unused-function warning 2017-07-01 17:14:58 -04:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qla_attr.c scsi: qla2xxx: Use zeroing allocator rather than allocator/memset 2018-01-04 01:09:26 -05:00
qla_bsg.c scsi: qla2xxx: Use zeroing allocator rather than allocator/memset 2018-01-04 01:09:26 -05:00
qla_bsg.h qla2xxx: Add bsg interface to support statistics counter reset. 2016-07-15 15:35:37 -04:00
qla_dbg.c scsi: qla2xxx: Remove potential macro parameter side-effect in ql_dump_regs() 2017-08-24 22:29:28 -04:00
qla_dbg.h scsi: qla2xxx: Include Exchange offload/Extended Login into FW dump 2017-06-27 21:21:41 -04:00
qla_def.h scsi: qla2xxx: Fix queue ID for async abort with Multiqueue 2018-01-22 20:03:26 -05:00
qla_devtbl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qla_dfs.c scsi: qla2xxx: Add XCB counters to debugfs 2018-01-22 20:03:54 -05:00
qla_fw.h scsi: qla2xxx: Fix session cleanup for N2N 2018-01-03 23:41:06 -05:00
qla_gbl.h scsi: qla2xxx: Serialize session deletion by using work_lock 2018-01-03 23:41:08 -05:00
qla_gs.c scsi: qla2xxx: remove redundant assignment of d 2018-01-10 23:25:10 -05:00
qla_init.c scsi: qla2xxx: Fix queue ID for async abort with Multiqueue 2018-01-22 20:03:26 -05:00
qla_inline.h scsi: qla2xxx: Use IOCB path to submit Control VP MBX command 2018-01-03 23:41:04 -05:00
qla_iocb.c scsi: qla2xxx: Fix queue ID for async abort with Multiqueue 2018-01-22 20:03:26 -05:00
qla_isr.c scsi: qla2xxx: Avoid triggering undefined behavior in qla2x00_mbx_completion() 2018-01-30 21:33:10 -05:00
qla_mbx.c scsi: qla2xxx: Serialize session deletion by using work_lock 2018-01-03 23:41:08 -05:00
qla_mid.c scsi: qla2xxx: Reduce trace noise for Async Events 2018-01-03 23:41:06 -05:00
qla_mr.c scsi: qla2xxx: don't break the bsg-lib abstractions 2017-10-16 23:46:21 -04:00
qla_mr.h
qla_nvme.c qla2xxx: remove use of FC-specific error codes 2017-09-25 08:56:05 -06:00
qla_nvme.h scsi: qla2xxx: Move function prototype to correct header 2017-08-07 14:04:02 -04:00
qla_nx2.c scsi: qla2xxx: remove duplicate includes 2017-12-11 21:52:38 -05:00
qla_nx2.h qla2xxx: Move two arrays from header files to .c files 2017-01-17 11:26:41 -08:00
qla_nx.c scsi: qla2xxx: fix a bunch of typos and spelling mistakes 2017-07-01 17:12:31 -04:00
qla_nx.h scsi: qla2xxx: remove writeq/readq function definitions 2017-06-12 20:48:08 -04:00
qla_os.c scsi: qla2xxx: Fix memory corruption during hba reset test 2018-01-30 21:14:30 -05:00
qla_settings.h
qla_sup.c scsi: qla2xxx: Suppress gcc 7 fall-through warnings 2017-12-11 21:50:29 -05:00
qla_target.c scsi: qla2xxx: Fix logo flag for qlt_free_session_done() 2018-01-22 20:07:39 -05:00
qla_target.h scsi: qla2xxx: Migrate switch registration commands away from mailbox interface 2018-01-03 23:41:07 -05:00
qla_tmpl.c scsi: qla2xxx: Fix Firmware dump size for Extended login and Exchange Offload 2018-01-03 23:41:05 -05:00
qla_tmpl.h
qla_version.h scsi: qla2xxx: Update driver version to 10.00.00.05-k 2018-01-22 20:03:55 -05:00
tcm_qla2xxx.c scsi: qla2xxx: Use zeroing allocator rather than allocator/memset 2018-01-04 01:09:26 -05:00
tcm_qla2xxx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00