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

From: Lee Jones
Date: Mon Feb 01 2021 - 08:57:20 EST


On Mon, 01 Feb 2021, Arnd Bergmann wrote:

> 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

Can I leave this in your capable hands then?

I'll drop all my fixes for this if it can be replaced with just one.

> 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

--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog