mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
42ec15ceae
gcc -O3 warns that some local variables are not properly initialized:
drivers/scsi/fnic/vnic_dev.c: In function 'fnic_dev_hang_notify':
drivers/scsi/fnic/vnic_dev.c:511:16: error: 'a0' is used uninitialized in this function [-Werror=uninitialized]
vdev->args[0] = *a0;
~~~~~~~~~~~~~~^~~~~
drivers/scsi/fnic/vnic_dev.c:691:6: note: 'a0' was declared here
u64 a0, a1;
^~
drivers/scsi/fnic/vnic_dev.c:512:16: error: 'a1' is used uninitialized in this function [-Werror=uninitialized]
vdev->args[1] = *a1;
~~~~~~~~~~~~~~^~~~~
drivers/scsi/fnic/vnic_dev.c:691:10: note: 'a1' was declared here
u64 a0, a1;
^~
drivers/scsi/fnic/vnic_dev.c: In function 'fnic_dev_mac_addr':
drivers/scsi/fnic/vnic_dev.c:512:16: error: 'a1' is used uninitialized in this function [-Werror=uninitialized]
vdev->args[1] = *a1;
~~~~~~~~~~~~~~^~~~~
drivers/scsi/fnic/vnic_dev.c:698:10: note: 'a1' was declared here
u64 a0, a1;
^~
Apparently the code relies on the local variables occupying adjacent memory
locations in the same order, but this is of course not guaranteed.
Use an array of two u64 variables where needed to make it work correctly.
I suspect there is also an endianness bug here, but have not digged in deep
enough to be sure.
Fixes:
|
||
---|---|---|
.. | ||
cq_desc.h | ||
cq_enet_desc.h | ||
cq_exch_desc.h | ||
fcpio.h | ||
fnic_attrs.c | ||
fnic_debugfs.c | ||
fnic_fcs.c | ||
fnic_fip.h | ||
fnic_io.h | ||
fnic_isr.c | ||
fnic_main.c | ||
fnic_res.c | ||
fnic_res.h | ||
fnic_scsi.c | ||
fnic_stats.h | ||
fnic_trace.c | ||
fnic_trace.h | ||
fnic.h | ||
Makefile | ||
rq_enet_desc.h | ||
vnic_cq_copy.h | ||
vnic_cq.c | ||
vnic_cq.h | ||
vnic_dev.c | ||
vnic_dev.h | ||
vnic_devcmd.h | ||
vnic_intr.c | ||
vnic_intr.h | ||
vnic_nic.h | ||
vnic_resource.h | ||
vnic_rq.c | ||
vnic_rq.h | ||
vnic_scsi.h | ||
vnic_stats.h | ||
vnic_wq_copy.c | ||
vnic_wq_copy.h | ||
vnic_wq.c | ||
vnic_wq.h | ||
wq_enet_desc.h |