linux-stable/drivers/ata
Arnd Bergmann a8db39338f 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>
[Backport to linux-4.14.y]
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-08 11:21:09 +01:00
..
acard-ahci.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
ahci.c ata: libata: disallow dev-initiated LPM transitions to unsupported states 2023-10-10 21:43:40 +02:00
ahci.h ata: ahci: fix enum constants for gcc-13 2023-11-08 11:21:09 +01:00
ahci_brcm.c ata: ahci_brcm: Add back regulators management 2021-03-03 18:22:43 +01:00
ahci_ceva.c
ahci_da850.c sata: ahci-da850: Fix some error handling paths in 'ahci_da850_probe()' 2017-08-16 07:38:27 -07:00
ahci_dm816.c ata: ahci: add support for DaVinci DM816 SATA controller 2017-03-24 11:40:03 -04:00
ahci_imx.c ata: ahci-imx: Fix MODULE_ALIAS 2022-11-03 23:50:50 +09:00
ahci_mtk.c ata: mediatek: add support for MediaTek SATA controller 2017-08-28 10:54:42 -07:00
ahci_mvebu.c ata: ahci: mvebu: override ahci_stop_engine for mvebu AHCI 2018-06-21 04:02:49 +09:00
ahci_octeon.c Delete redundant return value check of platform_get_resource() 2017-03-06 15:40:59 -05:00
ahci_platform.c ata: ahci_platform: Add shutdown handler 2017-08-04 13:34:14 -07:00
ahci_qoriq.c libahci: Allow drivers to override stop_engine 2018-06-21 04:02:49 +09:00
ahci_seattle.c ata: fix return value check in ahci_seattle_get_port_info() 2016-06-15 14:26:41 -04:00
ahci_st.c ahci: st: Add ports-implemented property in support 2016-08-10 12:16:49 -04:00
ahci_sunxi.c ata: ahci_sunxi: Disable DIPM 2021-07-20 16:17:46 +02:00
ahci_tegra.c
ahci_xgene.c ata: ahci: Drop pointless VPRINTK() calls and convert the remaining ones 2023-10-10 21:43:39 +02:00
ata_generic.c
ata_piix.c ata_piix: Add Fujitsu-Siemens Lifebook S6120 to short cable IDs 2017-09-18 20:32:02 -07:00
Kconfig ata: ahci_brcm: Allow using driver or DSL SoCs 2019-11-24 08:22:54 +01:00
libahci.c ata: libahci: clear pending interrupt status 2023-10-10 21:43:39 +02:00
libahci_platform.c ata: libahci_platform: fix IRQ check 2021-05-22 10:57:31 +02:00
libata-acpi.c
libata-core.c ata: libata: disallow dev-initiated LPM transitions to unsupported states 2023-10-10 21:43:40 +02:00
libata-eh.c ata: libata-eh: Fix compilation warning in ata_eh_link_report() 2023-10-25 11:13:32 +02:00
libata-pmp.c libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set 2020-04-24 08:00:45 +02:00
libata-scsi.c ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES 2023-10-10 21:43:40 +02:00
libata-sff.c libata: fix ata_pio_sector for CONFIG_HIGHMEM 2021-08-15 13:03:32 +02:00
libata-trace.c libata: NCQ encapsulation for ZAC MANAGEMENT OUT 2016-05-09 12:36:46 -04:00
libata-transport.c ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files 2022-06-14 16:54:01 +02:00
libata-transport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
libata-zpodd.c libata: zpodd: Fix small read overflow in zpodd_get_mech_type() 2019-08-25 10:50:12 +02:00
libata.h libata: move ata_read_log_page to libata-core.c 2017-06-05 15:29:21 -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
pata_acpi.c
pata_ali.c
pata_amd.c cs5536: add support for IDE controller variant 2017-08-11 10:35:07 -07:00
pata_arasan_cf.c pata_arasan_cf: fix IRQ check 2021-05-22 10:57:30 +02:00
pata_artop.c
pata_at32.c
pata_atiixp.c Revert "pata_atiixp: Don't use unconnected secondary port on SB600/SB700" 2017-03-27 13:52:00 -04:00
pata_atp867x.c
pata_bf54x.c ata: bf54x: cut drvdata assignment 2017-05-30 11:54:36 -04:00
pata_bk3710.c pata_bk3710: clear status bits of BMISP on chipset initialization 2017-03-30 16:13:04 +05:30
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c cs5536: add support for IDE controller variant 2017-08-11 10:35:07 -07:00
pata_cypress.c
pata_efar.c
pata_ep93xx.c pata_ep93xx: fix deferred probing 2021-07-20 16:17:34 +02:00
pata_falcon.c Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
pata_ftide010.c ata: pata_ftide010: Add missing MODULE_DESCRIPTION 2023-09-23 10:47:03 +02:00
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c ata: pata_hpt37x: fix PCI clock detection 2022-03-08 19:01:56 +01:00
pata_hpt366.c ata: hpt366: fix incorrect mask when checking at cmd_high_time 2016-07-12 11:02:05 -04:00
pata_icside.c scsi: rename SCSI_MAX_{SG, SG_CHAIN}_SEGMENTS 2016-04-15 16:53:14 -04:00
pata_imx.c pata: imx: support controller modes up to PIO4 2016-11-09 11:48:58 -05:00
pata_isapnp.c
pata_it821x.c
pata_it8213.c
pata_ixp4xx_cf.c pata_ipx4xx_cf: fix IRQ check 2021-05-22 10:57:30 +02:00
pata_jmicron.c
pata_legacy.c ata: pata_legacy: fix pdc20230_set_piomode() 2022-11-10 15:47:20 +01:00
pata_macio.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
pata_marvell.c ata: pata_marvell: Check the 'bmdma_addr' beforing reading 2022-04-27 13:15:30 +02:00
pata_mpc52xx.c ata: constify of_device_id structures 2017-03-06 15:18:01 -05:00
pata_mpiix.c
pata_netcell.c
pata_ninja32.c pata_ninja32: Avoid corrupting status flags 2016-08-30 11:59:47 -04:00
pata_ns87410.c
pata_ns87415.c ata: pata_ns87415: mark ns87560_tf_read static 2023-08-11 11:33:51 +02:00
pata_octeon_cf.c ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe 2022-06-14 16:53:58 +02:00
pata_of_platform.c ata: constify of_device_id structures 2017-03-06 15:18:01 -05:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c
pata_pcmcia.c ata: pass queued command to ->sff_data_xfer method 2017-01-10 11:11:17 -05:00
pata_pdc202xx_old.c
pata_pdc2027x.c ata: update references for libata documentation 2017-05-16 11:25:59 -04:00
pata_piccolo.c
pata_platform.c
pata_pxa.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
pata_radisys.c
pata_rb532_cf.c pata_rb532_cf: fix deferred probing 2021-07-20 16:17:34 +02:00
pata_rdc.c ata: declare ata_port_info structures as const 2017-06-12 14:06:34 -04:00
pata_rz1000.c
pata_samsung_cf.c ata: samsung_cf: cut drvdata assignment 2017-05-30 11:54:37 -04:00
pata_sc1200.c
pata_sch.c ata: declare ata_port_info structures as const 2017-06-12 14:06:34 -04:00
pata_serverworks.c
pata_sil680.c
pata_sis.c
pata_sl82c105.c
pata_triflex.c
pata_via.c
pdc_adma.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_dwc_460ex.c ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init() 2021-09-22 11:45:29 +02:00
sata_fsl.c sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl 2021-12-08 08:46:54 +01:00
sata_gemini.c ata: sata_gemini: Add missing MODULE_DESCRIPTION 2023-09-23 10:47:03 +02:00
sata_gemini.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sata_highbank.c sata_highbank: fix deferred probing 2021-07-20 16:17:34 +02:00
sata_inic162x.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_mv.c ata: sata_mv: Fix the error handling of mv_chip_id() 2021-11-02 18:25:11 +01:00
sata_nv.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_promise.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_promise.h ata: update references for libata documentation 2017-05-16 11:25:59 -04:00
sata_qstor.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_rcar.c ata: sata_rcar: Fix DMA boundary mask 2020-11-05 11:06:52 +01:00
sata_sil.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_sil24.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_sis.c ata: update references for libata documentation 2017-05-16 11:25:59 -04:00
sata_svw.c ata: Convert to using %pOF instead of full_name 2017-07-18 18:02:36 -04:00
sata_sx4.c ata: make qc_prep return ata_completion_errors 2020-10-01 13:12:52 +02:00
sata_uli.c ata: update references for libata documentation 2017-05-16 11:25:59 -04:00
sata_via.c sata_via: Enable optional hotplug on VT6420 2017-06-26 16:54:53 -04:00
sata_vsc.c ata: update references for libata documentation 2017-05-16 11:25:59 -04:00
sis.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00