Re: [PATCH 01/20] ata: ahci_dm816: Ignore -Woverride-init

From: Arnd Bergmann
Date: Mon Feb 01 2021 - 06:07:52 EST


On Thu, Jan 28, 2021 at 7:32 PM Lee Jones <lee.jones@xxxxxxxxxx> wrote:
>
> On Thu, 28 Jan 2021, Christoph Hellwig wrote:
>
> > On Thu, Jan 28, 2021 at 06:02:20PM +0000, Lee Jones wrote:
> > > Some ATA drivers use the SCSI host template, a series of interwoven
> > > macros, to aid with initialisation. Some of these macros conflict,
> > > resulting in the over-writing of previously set values.
> >
> > Please just disable this warning globally. This is a sensible
> > patter and we should not sprinkle per-file options for something
> > that fundamental.
>
> Will do. Just as soon as I've figured out how. :)

I have a local patch series doing it like this

diff --git a/include/linux/libata.h b/include/linux/libata.h
index 5f550eb27f81..4e4cc14a289e 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1390,6 +1390,8 @@ extern struct device_attribute *ata_common_sdev_attrs[];
* edge driver's module reference, otherwise the driver can be unloaded
* even if the scsi_device is being accessed.
*/
+__diag_ignore(GCC, 8, "-Woverride-init", "intentional override")
+__diag_ignore(CLANG, 9, "-Winitializer-overrides", "intentional override")
#define __ATA_BASE_SHT(drv_name) \
.module = THIS_MODULE, \
.name = drv_name, \

I think this also requires a preparation patch to extend __diag_ignore to
additional compiler versions, not sure if that was already merged.

Arnd