Re: [Intel-gfx] [PATCH] Revert "drm/i915: use localized __diag_ignore_all() instead of per file"

2023-07-13 Thread Jani Nikula
On Tue, 11 Jul 2023, Gustavo Sousa  wrote:
> Quoting Jani Nikula (2023-07-11 08:02:14-03:00)
>>This reverts commit 88e9664434c994e97a9f6f8cdd1535495c660cea.
>>
>>__diag_ignore_all() only works for GCC 8 or later.
>>
>>-Woverride-init (from -Wextra, enabled in i915 Makefile) combined with
>>CONFIG_WERROR=y or W=e breaks the build for older GCC.
>>
>>With i386_defconfig and x86_64_defconfig enabling CONFIG_WERROR=y by
>>default, we really need to roll back the change.
>>
>>An alternative would be to disable -Woverride-init in the Makefile for
>>GCC <8, but the revert seems like the safest bet now.
>
> Sounds good. We would keep it compatible with older compilers and still have 
> the
> warning enabled on newer environments.
>
> Another alternative I thought about was to have separate files only for
> initializations of that type (i.e. that would need the warning disabled), but 
> I
> guess we would need to expose a lot of symbols for that to work...
>
> Reviewed-by: Gustavo Sousa 

Thanks, pushed to drm-intel-next.

BR,
Jani.

>
>>
>>Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8768
>>Reported-by: John Garry 
>>References: 
>>https://lore.kernel.org/r/ad2601c0-84bb-c574-3702-a83ff8faf...@oracle.com
>>References: https://lore.kernel.org/r/87wmzezns4@intel.com
>>Fixes: 88e9664434c9 ("drm/i915: use localized __diag_ignore_all() instead of 
>>per file")
>>Cc: Gustavo Sousa 
>>Cc: Joonas Lahtinen 
>>Cc: Rodrigo Vivi 
>>Cc: Tvrtko Ursulin 
>>Signed-off-by: Jani Nikula 
>>---
>> drivers/gpu/drm/i915/Makefile   | 5 +
>> drivers/gpu/drm/i915/display/intel_display_device.c | 5 -
>> drivers/gpu/drm/i915/display/intel_fbdev.c  | 5 -
>> drivers/gpu/drm/i915/i915_pci.c | 5 -
>> 4 files changed, 5 insertions(+), 15 deletions(-)
>>
>>diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
>>index 2be9dd960540..c5fc91cd58e7 100644
>>--- a/drivers/gpu/drm/i915/Makefile
>>+++ b/drivers/gpu/drm/i915/Makefile
>>@@ -23,6 +23,11 @@ subdir-ccflags-y += $(call cc-option, 
>>-Wunused-but-set-variable)
>> subdir-ccflags-y += $(call cc-disable-warning, frame-address)
>> subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
>> 
>>+# Fine grained warnings disable
>>+CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
>>+CFLAGS_display/intel_display_device.o = $(call cc-disable-warning, 
>>override-init)
>>+CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
>>+
>> subdir-ccflags-y += -I$(srctree)/$(src)
>> 
>> # Please keep these build lists sorted!
>>diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c 
>>b/drivers/gpu/drm/i915/display/intel_display_device.c
>>index e4afa7334c82..8286e79522d1 100644
>>--- a/drivers/gpu/drm/i915/display/intel_display_device.c
>>+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
>>@@ -16,9 +16,6 @@
>> #include "intel_display_reg_defs.h"
>> #include "intel_fbc.h"
>> 
>>-__diag_push();
>>-__diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>>-
>> static const struct intel_display_device_info no_display = {};
>> 
>> #define PIPE_A_OFFSET0x7
>>@@ -727,8 +724,6 @@ static const struct intel_display_device_info 
>>xe_lpdp_display = {
>> BIT(PORT_TC1) | BIT(PORT_TC2) | BIT(PORT_TC3) | 
>> BIT(PORT_TC4),
>> };
>> 
>>-__diag_pop();
>>-
>> #undef INTEL_VGA_DEVICE
>> #undef INTEL_QUANTA_VGA_DEVICE
>> #define INTEL_VGA_DEVICE(id, info) { id, info }
>>diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c 
>>b/drivers/gpu/drm/i915/display/intel_fbdev.c
>>index 1cc0ddc6a310..80c3f88310db 100644
>>--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
>>+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
>>@@ -135,9 +135,6 @@ static int intel_fbdev_mmap(struct fb_info *info, struct 
>>vm_area_struct *vma)
>> return i915_gem_fb_mmap(obj, vma);
>> }
>> 
>>-__diag_push();
>>-__diag_ignore_all("-Woverride-init", "Allow overriding the default ops");
>>-
>> static const struct fb_ops intelfb_ops = {
>> .owner = THIS_MODULE,
>> __FB_DEFAULT_DEFERRED_OPS_RDWR(intel_fbdev),
>>@@ -149,8 +146,6 @@ static const struct fb_ops intelfb_ops = {
>> .fb_mmap = intel_fbdev_mmap,
>> };
>> 
>>-__diag_pop();
>>-
>> static int intelfb_alloc(struct drm_fb_helper *helper,
>>  struct drm_fb_helper_surface_size *sizes)
>> {
>>diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
>>index dea3609fc496..fcacdc21643c 100644
>>--- a/drivers/gpu/drm/i915/i915_pci.c
>>+++ b/drivers/gpu/drm/i915/i915_pci.c
>>@@ -38,9 +38,6 @@
>> #include "i915_reg.h"
>> #include "intel_pci_config.h"
>> 
>>-__diag_push();
>>-__diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>>-
>> #define PLATFORM(x) .platform = (x)
>> #define GEN(x) \
>> .__runtime.graphics.ip.ver = (x), \
>>@@ -846,8 +843,6 @@ static const struct intel_device_info mtl_info = {
>> 
>> #undef PLAT

Re: [Intel-gfx] [PATCH] Revert "drm/i915: use localized __diag_ignore_all() instead of per file"

2023-07-11 Thread John Garry

On 11/07/2023 12:02, Jani Nikula wrote:

This reverts commit 88e9664434c994e97a9f6f8cdd1535495c660cea.

__diag_ignore_all() only works for GCC 8 or later.

-Woverride-init (from -Wextra, enabled in i915 Makefile) combined with
CONFIG_WERROR=y or W=e breaks the build for older GCC.

With i386_defconfig and x86_64_defconfig enabling CONFIG_WERROR=y by
default, we really need to roll back the change.

An alternative would be to disable -Woverride-init in the Makefile for
GCC <8, but the revert seems like the safest bet now.

Closes:https://urldefense.com/v3/__https://gitlab.freedesktop.org/drm/intel/-/issues/8768__;!!ACWV5N9M2RV99hQ!IHKvxwtPYBXBj_pfrXmPg5H_6OVsPZaDRDgUUuYsj2IY_JpxM3APirbZR_0yg5UO61Gf2d79Ud7fgySHuVwhOPo$  
Reported-by: John Garry
References:https://urldefense.com/v3/__https://lore.kernel.org/r/ad2601c0-84bb-c574-3702-a83ff8faf98c@oracle.com__;!!ACWV5N9M2RV99hQ!IHKvxwtPYBXBj_pfrXmPg5H_6OVsPZaDRDgUUuYsj2IY_JpxM3APirbZR_0yg5UO61Gf2d79Ud7fgySH0A7kxf4$  
References:https://urldefense.com/v3/__https://lore.kernel.org/r/87wmzezns4.fsf@intel.com__;!!ACWV5N9M2RV99hQ!IHKvxwtPYBXBj_pfrXmPg5H_6OVsPZaDRDgUUuYsj2IY_JpxM3APirbZR_0yg5UO61Gf2d79Ud7fgySHAwJkTDk$  
Fixes: 88e9664434c9 ("drm/i915: use localized __diag_ignore_all() instead of per file")

Cc: Gustavo Sousa
Cc: Joonas Lahtinen
Cc: Rodrigo Vivi
Cc: Tvrtko Ursulin
Signed-off-by: Jani Nikula


I tested on next-20230711, as this does not apply to v6.5-rc1 (where I 
originally experienced the issue):


Tested-by: John Garry 

cheers


Re: [Intel-gfx] [PATCH] Revert "drm/i915: use localized __diag_ignore_all() instead of per file"

2023-07-11 Thread Gustavo Sousa
Quoting Jani Nikula (2023-07-11 08:02:14-03:00)
>This reverts commit 88e9664434c994e97a9f6f8cdd1535495c660cea.
>
>__diag_ignore_all() only works for GCC 8 or later.
>
>-Woverride-init (from -Wextra, enabled in i915 Makefile) combined with
>CONFIG_WERROR=y or W=e breaks the build for older GCC.
>
>With i386_defconfig and x86_64_defconfig enabling CONFIG_WERROR=y by
>default, we really need to roll back the change.
>
>An alternative would be to disable -Woverride-init in the Makefile for
>GCC <8, but the revert seems like the safest bet now.

Sounds good. We would keep it compatible with older compilers and still have the
warning enabled on newer environments.

Another alternative I thought about was to have separate files only for
initializations of that type (i.e. that would need the warning disabled), but I
guess we would need to expose a lot of symbols for that to work...

Reviewed-by: Gustavo Sousa 

>
>Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8768
>Reported-by: John Garry 
>References: 
>https://lore.kernel.org/r/ad2601c0-84bb-c574-3702-a83ff8faf...@oracle.com
>References: https://lore.kernel.org/r/87wmzezns4@intel.com
>Fixes: 88e9664434c9 ("drm/i915: use localized __diag_ignore_all() instead of 
>per file")
>Cc: Gustavo Sousa 
>Cc: Joonas Lahtinen 
>Cc: Rodrigo Vivi 
>Cc: Tvrtko Ursulin 
>Signed-off-by: Jani Nikula 
>---
> drivers/gpu/drm/i915/Makefile   | 5 +
> drivers/gpu/drm/i915/display/intel_display_device.c | 5 -
> drivers/gpu/drm/i915/display/intel_fbdev.c  | 5 -
> drivers/gpu/drm/i915/i915_pci.c | 5 -
> 4 files changed, 5 insertions(+), 15 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
>index 2be9dd960540..c5fc91cd58e7 100644
>--- a/drivers/gpu/drm/i915/Makefile
>+++ b/drivers/gpu/drm/i915/Makefile
>@@ -23,6 +23,11 @@ subdir-ccflags-y += $(call cc-option, 
>-Wunused-but-set-variable)
> subdir-ccflags-y += $(call cc-disable-warning, frame-address)
> subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
> 
>+# Fine grained warnings disable
>+CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
>+CFLAGS_display/intel_display_device.o = $(call cc-disable-warning, 
>override-init)
>+CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
>+
> subdir-ccflags-y += -I$(srctree)/$(src)
> 
> # Please keep these build lists sorted!
>diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c 
>b/drivers/gpu/drm/i915/display/intel_display_device.c
>index e4afa7334c82..8286e79522d1 100644
>--- a/drivers/gpu/drm/i915/display/intel_display_device.c
>+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
>@@ -16,9 +16,6 @@
> #include "intel_display_reg_defs.h"
> #include "intel_fbc.h"
> 
>-__diag_push();
>-__diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>-
> static const struct intel_display_device_info no_display = {};
> 
> #define PIPE_A_OFFSET0x7
>@@ -727,8 +724,6 @@ static const struct intel_display_device_info 
>xe_lpdp_display = {
> BIT(PORT_TC1) | BIT(PORT_TC2) | BIT(PORT_TC3) | BIT(PORT_TC4),
> };
> 
>-__diag_pop();
>-
> #undef INTEL_VGA_DEVICE
> #undef INTEL_QUANTA_VGA_DEVICE
> #define INTEL_VGA_DEVICE(id, info) { id, info }
>diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c 
>b/drivers/gpu/drm/i915/display/intel_fbdev.c
>index 1cc0ddc6a310..80c3f88310db 100644
>--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
>+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
>@@ -135,9 +135,6 @@ static int intel_fbdev_mmap(struct fb_info *info, struct 
>vm_area_struct *vma)
> return i915_gem_fb_mmap(obj, vma);
> }
> 
>-__diag_push();
>-__diag_ignore_all("-Woverride-init", "Allow overriding the default ops");
>-
> static const struct fb_ops intelfb_ops = {
> .owner = THIS_MODULE,
> __FB_DEFAULT_DEFERRED_OPS_RDWR(intel_fbdev),
>@@ -149,8 +146,6 @@ static const struct fb_ops intelfb_ops = {
> .fb_mmap = intel_fbdev_mmap,
> };
> 
>-__diag_pop();
>-
> static int intelfb_alloc(struct drm_fb_helper *helper,
>  struct drm_fb_helper_surface_size *sizes)
> {
>diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
>index dea3609fc496..fcacdc21643c 100644
>--- a/drivers/gpu/drm/i915/i915_pci.c
>+++ b/drivers/gpu/drm/i915/i915_pci.c
>@@ -38,9 +38,6 @@
> #include "i915_reg.h"
> #include "intel_pci_config.h"
> 
>-__diag_push();
>-__diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
>-
> #define PLATFORM(x) .platform = (x)
> #define GEN(x) \
> .__runtime.graphics.ip.ver = (x), \
>@@ -846,8 +843,6 @@ static const struct intel_device_info mtl_info = {
> 
> #undef PLATFORM
> 
>-__diag_pop();
>-
> /*
>  * Make sure any device matches here are from most specific to most
>  * general.  For example, since the Quanta match is based on the subsystem
>-- 
>2.39.2
>


[Intel-gfx] [PATCH] Revert "drm/i915: use localized __diag_ignore_all() instead of per file"

2023-07-11 Thread Jani Nikula
This reverts commit 88e9664434c994e97a9f6f8cdd1535495c660cea.

__diag_ignore_all() only works for GCC 8 or later.

-Woverride-init (from -Wextra, enabled in i915 Makefile) combined with
CONFIG_WERROR=y or W=e breaks the build for older GCC.

With i386_defconfig and x86_64_defconfig enabling CONFIG_WERROR=y by
default, we really need to roll back the change.

An alternative would be to disable -Woverride-init in the Makefile for
GCC <8, but the revert seems like the safest bet now.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8768
Reported-by: John Garry 
References: 
https://lore.kernel.org/r/ad2601c0-84bb-c574-3702-a83ff8faf...@oracle.com
References: https://lore.kernel.org/r/87wmzezns4@intel.com
Fixes: 88e9664434c9 ("drm/i915: use localized __diag_ignore_all() instead of 
per file")
Cc: Gustavo Sousa 
Cc: Joonas Lahtinen 
Cc: Rodrigo Vivi 
Cc: Tvrtko Ursulin 
Signed-off-by: Jani Nikula 
---
 drivers/gpu/drm/i915/Makefile   | 5 +
 drivers/gpu/drm/i915/display/intel_display_device.c | 5 -
 drivers/gpu/drm/i915/display/intel_fbdev.c  | 5 -
 drivers/gpu/drm/i915/i915_pci.c | 5 -
 4 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 2be9dd960540..c5fc91cd58e7 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -23,6 +23,11 @@ subdir-ccflags-y += $(call cc-option, 
-Wunused-but-set-variable)
 subdir-ccflags-y += $(call cc-disable-warning, frame-address)
 subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
 
+# Fine grained warnings disable
+CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
+CFLAGS_display/intel_display_device.o = $(call cc-disable-warning, 
override-init)
+CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
+
 subdir-ccflags-y += -I$(srctree)/$(src)
 
 # Please keep these build lists sorted!
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c 
b/drivers/gpu/drm/i915/display/intel_display_device.c
index e4afa7334c82..8286e79522d1 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.c
+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
@@ -16,9 +16,6 @@
 #include "intel_display_reg_defs.h"
 #include "intel_fbc.h"
 
-__diag_push();
-__diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
-
 static const struct intel_display_device_info no_display = {};
 
 #define PIPE_A_OFFSET  0x7
@@ -727,8 +724,6 @@ static const struct intel_display_device_info 
xe_lpdp_display = {
BIT(PORT_TC1) | BIT(PORT_TC2) | BIT(PORT_TC3) | BIT(PORT_TC4),
 };
 
-__diag_pop();
-
 #undef INTEL_VGA_DEVICE
 #undef INTEL_QUANTA_VGA_DEVICE
 #define INTEL_VGA_DEVICE(id, info) { id, info }
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c 
b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 1cc0ddc6a310..80c3f88310db 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -135,9 +135,6 @@ static int intel_fbdev_mmap(struct fb_info *info, struct 
vm_area_struct *vma)
return i915_gem_fb_mmap(obj, vma);
 }
 
-__diag_push();
-__diag_ignore_all("-Woverride-init", "Allow overriding the default ops");
-
 static const struct fb_ops intelfb_ops = {
.owner = THIS_MODULE,
__FB_DEFAULT_DEFERRED_OPS_RDWR(intel_fbdev),
@@ -149,8 +146,6 @@ static const struct fb_ops intelfb_ops = {
.fb_mmap = intel_fbdev_mmap,
 };
 
-__diag_pop();
-
 static int intelfb_alloc(struct drm_fb_helper *helper,
 struct drm_fb_helper_surface_size *sizes)
 {
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index dea3609fc496..fcacdc21643c 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -38,9 +38,6 @@
 #include "i915_reg.h"
 #include "intel_pci_config.h"
 
-__diag_push();
-__diag_ignore_all("-Woverride-init", "Allow overriding inherited members");
-
 #define PLATFORM(x) .platform = (x)
 #define GEN(x) \
.__runtime.graphics.ip.ver = (x), \
@@ -846,8 +843,6 @@ static const struct intel_device_info mtl_info = {
 
 #undef PLATFORM
 
-__diag_pop();
-
 /*
  * Make sure any device matches here are from most specific to most
  * general.  For example, since the Quanta match is based on the subsystem
-- 
2.39.2