[PATCH] PCI/sysfs: hide boot_display definition when VIDEO=n

Randy Dunlap posted 1 patch 2 months, 2 weeks ago
drivers/pci/pci-sysfs.c |    3 +++
1 file changed, 3 insertions(+)
[PATCH] PCI/sysfs: hide boot_display definition when VIDEO=n
Posted by Randy Dunlap 2 months, 2 weeks ago
When CONFIG_VIDEO is not set, defining the 'boot_display' attribute
causes build errors/warnings, so hide the declaration as is done with
other code that uses this variable. Bracket unused code inside
#ifdef CONFIG_VIDEO/#endif to prevent other build warnings/errors.

include/linux/device.h:199:33: warning: 'dev_attr_boot_display' defined but not used [-Wunused-variable]
  199 |         struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
drivers/pci/pci-sysfs.c:688:8: note: in expansion of macro 'DEVICE_ATTR_RO'
  688 | static DEVICE_ATTR_RO(boot_display);

drivers/pci/pci-sysfs.c:683:16: warning: ‘boot_display_show’ defined but not used [-Wunused-function]
  683 | static ssize_t boot_display_show(struct device *dev,
      |                ^~~~~~~~~~~~~~~~~

Fixes: c4f2dc1e5293c ("PCI: Add a new 'boot_display' attribute")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org

Also, a question:
What does this do in pci-sysfs.c?
#ifndef ARCH_PCI_DEV_GROUPS
#define ARCH_PCI_DEV_GROUPS
#endif
Is there some hidden macro (probably using string concatenation)
that uses this define value? Thanks.

 drivers/pci/pci-sysfs.c |    3 +++
 1 file changed, 3 insertions(+)

--- linux-next-20250721.orig/drivers/pci/pci-sysfs.c
+++ linux-next-20250721/drivers/pci/pci-sysfs.c
@@ -680,12 +680,15 @@ const struct attribute_group *pcibus_gro
 	NULL,
 };
 
+#ifdef CONFIG_VIDEO
 static ssize_t boot_display_show(struct device *dev,
 				 struct device_attribute *attr, char *buf)
 {
 	return sysfs_emit(buf, "1\n");
 }
+
 static DEVICE_ATTR_RO(boot_display);
+#endif
 
 static ssize_t boot_vga_show(struct device *dev, struct device_attribute *attr,
 			     char *buf)
Re: [PATCH] PCI/sysfs: hide boot_display definition when VIDEO=n
Posted by Limonciello, Mario 2 months, 2 weeks ago
On 7/21/25 4:02 PM, Randy Dunlap wrote:
> When CONFIG_VIDEO is not set, defining the 'boot_display' attribute
> causes build errors/warnings, so hide the declaration as is done with
> other code that uses this variable. Bracket unused code inside
> #ifdef CONFIG_VIDEO/#endif to prevent other build warnings/errors.
> 
> include/linux/device.h:199:33: warning: 'dev_attr_boot_display' defined but not used [-Wunused-variable]
>    199 |         struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
> drivers/pci/pci-sysfs.c:688:8: note: in expansion of macro 'DEVICE_ATTR_RO'
>    688 | static DEVICE_ATTR_RO(boot_display);
> 
> drivers/pci/pci-sysfs.c:683:16: warning: ‘boot_display_show’ defined but not used [-Wunused-function]
>    683 | static ssize_t boot_display_show(struct device *dev,
>        |                ^~~~~~~~~~~~~~~~~
> 
> Fixes: c4f2dc1e5293c ("PCI: Add a new 'boot_display' attribute")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>

Hi Randy,

Thanks for the patch.  Stephen raised this last week too and it's 
brought up some other interesting topics as part of fixing it.

I have two other approaches on the mailing list right now waiting for 
review.

1) Make a static sysfs file.
https://lore.kernel.org/linux-pci/20250721023818.2410062-1-superm1@kernel.org/T/#u

2) Move out of PCI into DRM.
https://lore.kernel.org/linux-pci/20250721185726.1264909-1-superm1@kernel.org/T/#me4356b3a172cbdafe83393bedce10f17a86e0da7

Thanks,

> ---
> Cc: Mario Limonciello <mario.limonciello@amd.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: linux-pci@vger.kernel.org
> 
> Also, a question:
> What does this do in pci-sysfs.c?
> #ifndef ARCH_PCI_DEV_GROUPS
> #define ARCH_PCI_DEV_GROUPS
> #endif
> Is there some hidden macro (probably using string concatenation)
> that uses this define value? Thanks.
> 
>   drivers/pci/pci-sysfs.c |    3 +++
>   1 file changed, 3 insertions(+)
> 
> --- linux-next-20250721.orig/drivers/pci/pci-sysfs.c
> +++ linux-next-20250721/drivers/pci/pci-sysfs.c
> @@ -680,12 +680,15 @@ const struct attribute_group *pcibus_gro
>   	NULL,
>   };
>   
> +#ifdef CONFIG_VIDEO
>   static ssize_t boot_display_show(struct device *dev,
>   				 struct device_attribute *attr, char *buf)
>   {
>   	return sysfs_emit(buf, "1\n");
>   }
> +
>   static DEVICE_ATTR_RO(boot_display);
> +#endif
>   
>   static ssize_t boot_vga_show(struct device *dev, struct device_attribute *attr,
>   			     char *buf)

Re: [PATCH] PCI/sysfs: hide boot_display definition when VIDEO=n
Posted by Randy Dunlap 2 months, 2 weeks ago
Hi Mario,

On 7/21/25 2:05 PM, Limonciello, Mario wrote:
> On 7/21/25 4:02 PM, Randy Dunlap wrote:
>> When CONFIG_VIDEO is not set, defining the 'boot_display' attribute
>> causes build errors/warnings, so hide the declaration as is done with
>> other code that uses this variable. Bracket unused code inside
>> #ifdef CONFIG_VIDEO/#endif to prevent other build warnings/errors.
>>
>> include/linux/device.h:199:33: warning: 'dev_attr_boot_display' defined but not used [-Wunused-variable]
>>    199 |         struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
>> drivers/pci/pci-sysfs.c:688:8: note: in expansion of macro 'DEVICE_ATTR_RO'
>>    688 | static DEVICE_ATTR_RO(boot_display);
>>
>> drivers/pci/pci-sysfs.c:683:16: warning: ‘boot_display_show’ defined but not used [-Wunused-function]
>>    683 | static ssize_t boot_display_show(struct device *dev,
>>        |                ^~~~~~~~~~~~~~~~~
>>
>> Fixes: c4f2dc1e5293c ("PCI: Add a new 'boot_display' attribute")
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> 
> Hi Randy,
> 
> Thanks for the patch.  Stephen raised this last week too and it's 
> brought up some other interesting topics as part of fixing it.
> 
> I have two other approaches on the mailing list right now waiting for 
> review.
> 
> 1) Make a static sysfs file.
> https://lore.kernel.org/linux-pci/20250721023818.2410062-1-superm1@kernel.org/T/#u
> 
> 2) Move out of PCI into DRM.
> https://lore.kernel.org/linux-pci/20250721185726.1264909-1-superm1@kernel.org/T/#me4356b3a172cbdafe83393bedce10f17a86e0da7

Yes, I found the second one just after I sent the patch.
Anyway, my patch is not relevant now.

Thanks.

-- 
~Randy