OpenCloudOS-Kernel/include
Damien Le Moal c3752f4460 scsi: libsas: Introduce struct smp_disc_resp
When compiling with gcc 12, several warnings are thrown by gcc when
compiling drivers/scsi/libsas/sas_expander.c, e.g.:

In function ‘sas_get_phy_change_count’,
    inlined from ‘sas_find_bcast_phy.constprop’ at
drivers/scsi/libsas/sas_expander.c:1737:9:
drivers/scsi/libsas/sas_expander.c:1697:39: warning: array subscript
‘struct smp_resp[0]’ is partly outside array bounds of ‘unsigned
char[56]’ [-Warray-bounds]
 1697 |                 *pcc = disc_resp->disc.change_count;
      |                        ~~~~~~~~~~~~~~~^~~~~~~~~~~~~

This is due to the use of the struct smp_resp to aggregate all possible
response types using a union but allocating a response buffer with a size
exactly equal to the size of the response type needed. This leads to access
to fields of struct smp_resp from an allocated memory area that is smaller
than the size of struct smp_resp.

Fix this by defining struct smp_disc_resp for sas discovery operations.
Since this structure and the generic struct smp_resp are identical for
the little endian and big endian archs, move the definition of these
structures at the end of include/scsi/sas.h to avoid repeating their
definition.

Link: https://lore.kernel.org/r/20220609022456.409087-2-damien.lemoal@opensource.wdc.com
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2022-06-10 13:08:06 -04:00
..
acpi cxl for 5.19 2022-05-27 21:24:19 -07:00
asm-generic RISC-V Patches for the 5.19 Merge Window, Part 1 2022-05-31 14:10:54 -07:00
clocksource pwm: Changes for v5.19-rc1 2022-06-01 10:49:11 -07:00
crypto
drm LoongArch: Add writecombine support for drm 2022-06-03 20:09:27 +08:00
dt-bindings Char / Misc / Other smaller driver subsystem updates for 5.19-rc1 2022-06-03 11:36:34 -07:00
keys KEYS: trusted: Introduce support for NXP CAAM-based trusted keys 2022-05-23 18:47:50 +03:00
kunit kunit: take `kunit_assert` as `const` 2022-05-16 13:23:00 -06:00
kvm Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next 2022-05-16 17:48:36 +01:00
linux A single featurelet for delay accounting. Delayed a bit 2022-06-05 16:58:27 -07:00
math-emu
media media: h264: Sort p/b reflist using frame_num 2022-05-17 10:02:29 +02:00
memory
misc
net bluetooth: don't use bitmaps for random flag accesses 2022-06-05 16:28:41 -07:00
pcmcia
ras
rdma RDMA/core: Fix typo in comment 2022-05-24 11:24:58 -03:00
scsi scsi: libsas: Introduce struct smp_disc_resp 2022-06-10 13:08:06 -04:00
soc ARM: driver changes for 5.19 2022-05-26 10:32:47 -07:00
sound ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
target scsi: target: iscsi: Control authentication per ACL 2022-06-07 21:55:11 -04:00
trace Driver core changes for 5.19-rc1 2022-06-03 11:48:47 -07:00
uapi A single featurelet for delay accounting. Delayed a bit 2022-06-05 16:58:27 -07:00
ufs scsi: ufs: Split the drivers/scsi/ufs directory 2022-05-19 20:27:37 -04:00
vdso
video video: fbdev: radeon: Fix spelling typo in comment 2022-05-26 13:38:59 +02:00
xen xen: branch for v5.19-rc1b 2022-06-04 13:42:53 -07:00