2024-05-16 12:47:05

by Thomas Zimmermann

[permalink] [raw]
Subject: [PATCH] ACPI: video: Fix name collision with architecture's video.o

Commit 2fd001cd3600 ("arch: Rename fbdev header and source files")
renames the video source files under arch/ such that they does not
refer to fbdev any longer. The new files named video.o conflict with
ACPI's video.ko module. Modprobing the ACPI module can then fail with
warnings about missing symbols, as shown below.

(i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol acpi_video_unregister (err -2)
(i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol acpi_video_register_backlight (err -2)
(i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol __acpi_video_get_backlight_type (err -2)
(i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol acpi_video_register (err -2)

Fix this problem by renaming ACPI's video.ko to acpi_video.ko. Also
rename a related source file and clean up the Makefile.

Reported-by: Chaitanya Kumar Borah <[email protected]>
Closes: https://lore.kernel.org/intel-gfx/[email protected]/T/#t
Tested-by: Chaitanya Kumar Borah <[email protected]>
Signed-off-by: Thomas Zimmermann <[email protected]>
Fixes: 2fd001cd3600 ("arch: Rename fbdev header and source files")
Cc: Arnd Bergmann <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
---
drivers/acpi/Makefile | 5 +++--
drivers/acpi/{acpi_video.c => acpi_video_core.c} | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
rename drivers/acpi/{acpi_video.c => acpi_video_core.c} (99%)

diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index 8cc8c0d9c8732..fc9e11f7afbf7 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -84,7 +84,9 @@ obj-$(CONFIG_ACPI_FAN) += fan.o
fan-objs := fan_core.o
fan-objs += fan_attr.o

-obj-$(CONFIG_ACPI_VIDEO) += video.o
+obj-$(CONFIG_ACPI_VIDEO) += acpi_video.o
+acpi_video-objs += acpi_video_core.o video_detect.o
+
obj-$(CONFIG_ACPI_TAD) += acpi_tad.o
obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
@@ -124,7 +126,6 @@ obj-$(CONFIG_ACPI_CONFIGFS) += acpi_configfs.o

obj-y += pmic/

-video-objs += acpi_video.o video_detect.o
obj-y += dptf/

obj-$(CONFIG_ARM64) += arm64/
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video_core.c
similarity index 99%
rename from drivers/acpi/acpi_video.c
rename to drivers/acpi/acpi_video_core.c
index 1fda303882973..32bf81c5773a4 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video_core.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
- * video.c - ACPI Video Driver
+ * acpi_video_core.c - ACPI Video Driver
*
* Copyright (C) 2004 Luming Yu <[email protected]>
* Copyright (C) 2004 Bruno Ducrot <[email protected]>
--
2.45.0



2024-05-16 13:05:02

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] ACPI: video: Fix name collision with architecture's video.o

CC Hans who has been doing the majority of the ACPI video work.

On Thu, May 16, 2024 at 2:43 PM Thomas Zimmermann <tzimmermann@susede> wrote:
>
> Commit 2fd001cd3600 ("arch: Rename fbdev header and source files")
> renames the video source files under arch/ such that they does not
> refer to fbdev any longer. The new files named video.o conflict with
> ACPI's video.ko module.

And surely nobody knew or was unable to check upfront that there was a
video.ko already in the kernel.

> Modprobing the ACPI module can then fail with warnings about missing symbols, as shown below.
>
> (i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol acpi_video_unregister (err -2)
> (i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol acpi_video_register_backlight (err -2)
> (i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol __acpi_video_get_backlight_type (err -2)
> (i915_selftest:1107) igt_kmod-WARNING: i915: Unknown symbol acpi_video_register (err -2)
>
> Fix this problem by renaming ACPI's video.ko to acpi_video.ko. Also
> rename a related source file and clean up the Makefile.

If you insist on renaming, rename it to backlight.c (and
backlight_detect.c for consistency), because that's what it really is
about.

> Reported-by: Chaitanya Kumar Borah <[email protected]>
> Closes: https://lore.kernel.org/intel-gfx/[email protected]/T/#t
> Tested-by: Chaitanya Kumar Borah <[email protected]>
> Signed-off-by: Thomas Zimmermann <[email protected]>
> Fixes: 2fd001cd3600 ("arch: Rename fbdev header and source files")
> Cc: Arnd Bergmann <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> ---
> drivers/acpi/Makefile | 5 +++--
> drivers/acpi/{acpi_video.c => acpi_video_core.c} | 2 +-
> 2 files changed, 4 insertions(+), 3 deletions(-)
> rename drivers/acpi/{acpi_video.c => acpi_video_core.c} (99%)
>
> diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
> index 8cc8c0d9c8732..fc9e11f7afbf7 100644
> --- a/drivers/acpi/Makefile
> +++ b/drivers/acpi/Makefile
> @@ -84,7 +84,9 @@ obj-$(CONFIG_ACPI_FAN) += fan.o
> fan-objs := fan_core.o
> fan-objs += fan_attr.o
>
> -obj-$(CONFIG_ACPI_VIDEO) += video.o
> +obj-$(CONFIG_ACPI_VIDEO) += acpi_video.o
> +acpi_video-objs += acpi_video_core.o video_detect.o
> +
> obj-$(CONFIG_ACPI_TAD) += acpi_tad.o
> obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o
> obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
> @@ -124,7 +126,6 @@ obj-$(CONFIG_ACPI_CONFIGFS) += acpi_configfs.o
>
> obj-y += pmic/
>
> -video-objs += acpi_video.o video_detect.o
> obj-y += dptf/
>
> obj-$(CONFIG_ARM64) += arm64/
> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video_core.c
> similarity index 99%
> rename from drivers/acpi/acpi_video.c
> rename to drivers/acpi/acpi_video_core.c
> index 1fda303882973..32bf81c5773a4 100644
> --- a/drivers/acpi/acpi_video.c
> +++ b/drivers/acpi/acpi_video_core.c
> @@ -1,6 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0-or-later
> /*
> - * video.c - ACPI Video Driver
> + * acpi_video_core.c - ACPI Video Driver
> *
> * Copyright (C) 2004 Luming Yu <[email protected]>
> * Copyright (C) 2004 Bruno Ducrot <[email protected]>
> --
> 2.45.0
>
>

2024-05-16 15:06:35

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] ACPI: video: Fix name collision with architecture's video.o

Hi,

On 5/16/24 3:04 PM, Rafael J. Wysocki wrote:
> CC Hans who has been doing the majority of the ACPI video work.
>
> On Thu, May 16, 2024 at 2:43 PM Thomas Zimmermann <[email protected]> wrote:
>>
>> Commit 2fd001cd3600 ("arch: Rename fbdev header and source files")
>> renames the video source files under arch/ such that they does not
>> refer to fbdev any longer. The new files named video.o conflict with
>> ACPI's video.ko module.
>
> And surely nobody knew or was unable to check upfront that there was a
> video.ko already in the kernel.

Sorry, but nack for this change. I very deliberately kept the module-name
as video when renaming the actual .c file from video.c to acpi_video.c
because many people pass drivers/video/acpi_video.c module arguments
on the kernel commandline using video.param=val .

Try e.g. doing a duckduckgo search for 1 off:

"video.only_lcd"
"video.allow_duplicates"
"video.brightness_switch_enabled"

And you will find a lot of hits. The last one is even documented as
being "video.brightness_switch_enabled" in the main kernel-parameters.txt
as well as separately:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt#n39
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt#n7152
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/firmware-guide/acpi/video_extension.rst#n118

https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Carbon#Brightness_control

If you rename this module then peoples config will break for
a whole lot of users.

So lets not do that and lets rename the new module which is causing
the conflict in the first place instead.

Regards,

Hans


2024-05-16 15:11:38

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH] ACPI: video: Fix name collision with architecture's video.o

Hi

Am 16.05.24 um 17:03 schrieb Hans de Goede:
> Hi,
>
> On 5/16/24 3:04 PM, Rafael J. Wysocki wrote:
>> CC Hans who has been doing the majority of the ACPI video work.
>>
>> On Thu, May 16, 2024 at 2:43 PM Thomas Zimmermann <[email protected]> wrote:
>>> Commit 2fd001cd3600 ("arch: Rename fbdev header and source files")
>>> renames the video source files under arch/ such that they does not
>>> refer to fbdev any longer. The new files named video.o conflict with
>>> ACPI's video.ko module.
>> And surely nobody knew or was unable to check upfront that there was a
>> video.ko already in the kernel.
> Sorry, but nack for this change. I very deliberately kept the module-name
> as video when renaming the actual .c file from video.c to acpi_video.c
> because many people pass drivers/video/acpi_video.c module arguments
> on the kernel commandline using video.param=val .
>
> Try e.g. doing a duckduckgo search for 1 off:
>
> "video.only_lcd"
> "video.allow_duplicates"
> "video.brightness_switch_enabled"

Ok, that makes sense. I'll rename the other files.

Best regards
Thomas

>
> And you will find a lot of hits. The last one is even documented as
> being "video.brightness_switch_enabled" in the main kernel-parameters.txt
> as well as separately:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt#n39
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/kernel-parameters.txt#n7152
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/firmware-guide/acpi/video_extension.rst#n118
>
> https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Carbon#Brightness_control
>
> If you rename this module then peoples config will break for
> a whole lot of users.
>
> So lets not do that and lets rename the new module which is causing
> the conflict in the first place instead.
>
> Regards,
>
> Hans
>

--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)


2024-05-16 15:20:24

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] ACPI: video: Fix name collision with architecture's video.o

Hi,

On 5/16/24 5:11 PM, Thomas Zimmermann wrote:
> Hi
>
> Am 16.05.24 um 17:03 schrieb Hans de Goede:
>> Hi,
>>
>> On 5/16/24 3:04 PM, Rafael J. Wysocki wrote:
>>> CC Hans who has been doing the majority of the ACPI video work.
>>>
>>> On Thu, May 16, 2024 at 2:43 PM Thomas Zimmermann <[email protected]> wrote:
>>>> Commit 2fd001cd3600 ("arch: Rename fbdev header and source files")
>>>> renames the video source files under arch/ such that they does not
>>>> refer to fbdev any longer. The new files named video.o conflict with
>>>> ACPI's video.ko module.
>>> And surely nobody knew or was unable to check upfront that there was a
>>> video.ko already in the kernel.
>> Sorry, but nack for this change. I very deliberately kept the module-name
>> as video when renaming the actual .c file from video.c to acpi_video.c
>> because many people pass drivers/video/acpi_video.c module arguments
>> on the kernel commandline using video.param=val .
>>
>> Try e.g. doing a duckduckgo search for 1 off:
>>
>> "video.only_lcd"
>> "video.allow_duplicates"
>> "video.brightness_switch_enabled"
>
> Ok, that makes sense. I'll rename the other files.

Great, thank you.

Regards,

Hans