WSL2-Linux-Kernel/drivers/ata
Arnd Bergmann 8d00b4e329 ata: ahci: fix enum constants for gcc-13
commit f07788079f upstream.

gcc-13 slightly changes the type of constant expressions that are defined
in an enum, which triggers a compile time sanity check in libata:

linux/drivers/ata/libahci.c: In function 'ahci_led_store':
linux/include/linux/compiler_types.h:357:45: error: call to '__compiletime_assert_302' declared with attribute error: BUILD_BUG_ON failed: sizeof(_s) > sizeof(long)
357 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)

The new behavior is that sizeof() returns the same value for the
constant as it does for the enum type, which is generally more sensible
and consistent.

The problem in libata is that it contains a single enum definition for
lots of unrelated constants, some of which are large positive (unsigned)
integers like 0xffffffff, while others like (1<<31) are interpreted as
negative integers, and this forces the enum type to become 64 bit wide
even though most constants would still fit into a signed 32-bit 'int'.

Fix this by changing the entire enum definition to use BIT(x) in place
of (1<<x), which results in all values being seen as 'unsigned' and
fitting into an unsigned 32-bit type.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107917
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
Reported-by: Luis Machado <luis.machado@arm.com>
Cc: linux-ide@vger.kernel.org
Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Cc: stable@vger.kernel.org
Cc: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Luis Machado <luis.machado@arm.com>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
[ Modified to account for slight differences in the enum contents in the 5.15.y tree. ]
Signed-off-by: Paul Barker <paul.barker@sancloud.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-06-14 11:12:59 +02:00
..
Kconfig ARM: SoC changes for 5.14 2021-07-10 09:22:44 -07:00
Makefile ata: start separating SATA specific code from libata-core.c 2020-03-26 10:28:19 -06:00
acard-ahci.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
ahci.c ata: ahci: Fix PCS quirk application for suspend 2023-01-12 11:58:43 +01:00
ahci.h ata: ahci: fix enum constants for gcc-13 2023-06-14 11:12:59 +02:00
ahci_brcm.c ata: ahci_brcm: Fix use of BCM7216 reset controller 2021-05-03 13:15:04 -05:00
ahci_ceva.c ata: ahci: ceva: Updated code by using dev_err_probe() 2021-04-06 09:25:01 -06:00
ahci_da850.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_dm816.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_imx.c ata: ahci-imx: Fix MODULE_ALIAS 2022-10-29 10:12:54 +02:00
ahci_mtk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
ahci_mvebu.c ata: ahci: mvebu: Make SATA PHY optional for Armada 3720 2020-10-09 12:47:56 -06:00
ahci_octeon.c
ahci_platform.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_qoriq.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
ahci_seattle.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235 2019-06-19 17:09:07 +02:00
ahci_st.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ahci_sunxi.c ata: ahci_sunxi: Disable DIPM 2021-06-14 08:26:54 -06:00
ahci_tegra.c ata: ahci_tegra: call tegra_powergate_power_off only when PM domain is not present 2021-04-11 20:35:08 -06:00
ahci_xgene.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
ata_generic.c ata: ata_generic: Fix misspelling of 'ata_generic_init_one()' 2021-03-30 20:21:26 -06:00
ata_piix.c ata_piix: remove open-coded dmi_match(DMI_OEM_STRING) 2019-11-06 20:34:25 -07:00
libahci.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
libahci_platform.c ata: libahci_platform: Sanity check the DT child nodes number 2022-10-26 12:35:48 +02:00
libata-acpi.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
libata-core.c ata: libata: Fix sata_down_spd_limit() when no link speed is reported 2023-02-09 11:26:37 +01:00
libata-eh.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
libata-pata-timings.c ata: separate PATA timings code from libata-core.c 2020-03-26 10:28:19 -06:00
libata-pmp.c ata: libata-pmp: Fix misspelling of 'val' 2021-03-12 07:28:30 -07:00
libata-sata.c ata: libata: fix NCQ autosense logic 2022-12-31 13:14:06 +01:00
libata-scsi.c ata: libata-scsi: Use correct device no in ata_find_dev() 2023-06-09 10:32:30 +02:00
libata-sff.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
libata-trace.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
libata-transport.c ata: libata-transport: fix error handling in ata_tdev_add() 2022-11-26 09:24:38 +01:00
libata-transport.h
libata-zpodd.c libata: zpodd: Fix small read overflow in zpodd_get_mech_type() 2019-07-29 16:00:14 -06:00
libata.h ata: make "libata.force" kernel parameter optional 2020-03-26 10:28:20 -06:00
pata_acpi.c ata: pata_acpi: Fix some incorrect function param descriptions 2021-03-30 20:21:26 -06:00
pata_ali.c ata: pata_ali: Supply description for 'ali_20_filter()'s 'mask' param 2021-03-12 07:28:30 -07:00
pata_amd.c ata: pata_amd: Fix incorrectly named function in the header 2021-03-12 07:28:30 -07:00
pata_arasan_cf.c pata_arasan_cf: fix IRQ check 2021-03-26 17:13:02 -06:00
pata_artop.c ata: pata_artop: Repair possible copy/paste issue in 'artop_6210_qc_defer()'s header 2021-03-12 07:28:30 -07:00
pata_atiixp.c ata: pata_atiixp: Avoid overwriting initialised field in 'atiixp_sht' 2021-06-16 06:50:25 -06:00
pata_atp867x.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pata_bk3710.c
pata_buddha.c ata/pata_buddha: Probe via modalias instead of initcall 2019-08-23 06:58:50 -06:00
pata_cmd64x.c pata_cmd64x: Use fallthrough pseudo-keyword 2020-10-02 17:51:30 -06:00
pata_cmd640.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_cs5520.c ata: pata_cs5520: Avoid overwriting initialised field in 'cs5520_sht' 2021-06-16 06:50:25 -06:00
pata_cs5530.c ata: pata_cs5530: Avoid overwriting initialised field in 'cs5530_sht' 2021-06-16 06:50:25 -06:00
pata_cs5535.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_cs5536.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_cypress.c pata_cypress: add a module option to disable BM-DMA 2021-06-16 08:52:38 -06:00
pata_efar.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ep93xx.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
pata_falcon.c scsi: ata: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
pata_ftide010.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_gayle.c
pata_hpt3x2n.c ata: pata_hpt3x2n: Fix possible doc-rotted function name 2021-03-12 07:28:31 -07:00
pata_hpt3x3.c libata: switch remaining drivers to use dma_set_mask_and_coherent 2019-08-26 13:58:59 -06:00
pata_hpt37x.c ata: pata_hpt37x: fix PCI clock detection 2022-03-08 19:12:33 +01:00
pata_hpt366.c ata: pata_hpt366: Provide missing description for 'hpt366_filter()'s 'mask' param 2021-03-12 07:28:30 -07:00
pata_icside.c ata: Avoid comma separated statements 2021-01-31 08:05:46 -07:00
pata_imx.c
pata_isapnp.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_it821x.c ata: pata_it821x: Fix possible doc-rotted function names 2021-03-30 20:21:25 -06:00
pata_it8213.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ixp4xx_cf.c ata: libata: move ata_{port,link,dev}_dbg to standard pr_XXX() macros 2022-12-31 13:14:06 +01:00
pata_jmicron.c ata: pata_jmicron: Fix incorrectly documented function parameter 2021-03-12 07:28:31 -07:00
pata_legacy.c ata: pata_legacy: fix pdc20230_set_piomode() 2022-11-10 18:15:28 +01:00
pata_macio.c ata: pata_macio: Avoid overwriting initialised field in 'pata_macio_sht' 2021-06-16 06:50:26 -06:00
pata_marvell.c ata: pata_marvell: Check the 'bmdma_addr' beforing reading 2022-04-27 14:38:58 +02:00
pata_mpc52xx.c
pata_mpiix.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_netcell.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ninja32.c libata: switch remaining drivers to use dma_set_mask_and_coherent 2019-08-26 13:58:59 -06:00
pata_ns87410.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_ns87415.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
pata_octeon_cf.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
pata_of_platform.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pata_oldpiix.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_opti.c ata: pata_opti: Fix spelling issue of 'val' in 'opti_write_reg()' 2021-03-30 20:21:26 -06:00
pata_optidma.c ata: pata_optidma: Fix a function misnaming, a formatting issue and a missing description 2021-03-12 07:28:31 -07:00
pata_palmld.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pata_pcmcia.c pata_pcmia: add SanDisk High (>8G) CF card to supported list 2020-01-29 20:54:51 -07:00
pata_pdc202xx_old.c ata: pata_pdc202xx_old: Fix some incorrectly named functions 2021-03-30 20:21:25 -06:00
pata_pdc2027x.c ata: pata_pdc2027x: Fix some incorrect function names and parameter docs 2021-03-12 07:28:31 -07:00
pata_piccolo.c ata: pata_piccolo: 'ata_tosh_init()' is misnamed in its header 2021-03-30 20:21:25 -06:00
pata_platform.c pata_platform: Document `pio_mask' module parameter 2021-04-06 09:27:30 -06:00
pata_pxa.c ata: make qc_prep return ata_completion_errors 2019-11-01 08:50:51 -06:00
pata_radisys.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_rb532_cf.c ata: rb532_cf: remove redundant codes 2021-06-24 18:49:01 -06:00
pata_rdc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_rz1000.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_samsung_cf.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
pata_sc1200.c ata: pata_sc1200: sc1200_sht'Avoid overwriting initialised field in ' 2021-06-16 06:50:25 -06:00
pata_sch.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 300 2019-06-05 17:37:00 +02:00
pata_serverworks.c ata: pata_serverworks: Avoid overwriting initialised field in 'serverworks_osb4_sht 2021-06-16 06:50:26 -06:00
pata_sil680.c ata: pata_sil680: Add some missing function parameter docs 2021-03-30 20:21:25 -06:00
pata_sis.c ata: pata_sis: Remove superfluous param description and supply another 2021-03-30 20:21:25 -06:00
pata_sl82c105.c ata: pata_sl82c105: Fix potential doc-rot 2021-03-30 20:21:25 -06:00
pata_triflex.c ata: pata_triflex: Repair some misnamed functions and fix some param descriptions 2021-03-30 20:21:25 -06:00
pata_via.c ata: pata_via: Fix a kernel-doc formatting issue 2021-03-30 20:21:25 -06:00
pdc_adma.c ata: make qc_prep return ata_completion_errors 2019-11-01 08:50:51 -06:00
sata_dwc_460ex.c ata: sata_dwc_460ex: Fix crash due to OOB write 2022-04-13 20:59:23 +02:00
sata_fsl.c sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl 2021-12-08 09:04:42 +01:00
sata_gemini.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sata_gemini.h
sata_highbank.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
sata_inic162x.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
sata_mv.c ata: sata_mv: Fix the error handling of mv_chip_id() 2021-10-25 08:53:04 +09:00
sata_nv.c ata: sata_nv: Do not over-write initialise fields in 'nv_adma_sht' and 'nv_swncq_sht' 2021-06-16 06:50:25 -06:00
sata_promise.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sata_promise.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_qstor.c ata: make qc_prep return ata_completion_errors 2019-11-01 08:50:51 -06:00
sata_rcar.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
sata_sil.c ata: make qc_prep return ata_completion_errors 2019-11-01 08:50:51 -06:00
sata_sil24.c ata: sata_sil24: Do not over-write initialise fields in 'sil24_sht' 2021-06-16 06:50:25 -06:00
sata_sis.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_svw.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
sata_sx4.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sata_uli.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_via.c libata: switch remaining drivers to use dma_set_mask_and_coherent 2019-08-26 13:58:59 -06:00
sata_vsc.c ata: add/use ata_taskfile::{error|status} fields 2022-12-31 13:14:06 +01:00
sis.h