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