2021-05-12 06:26:24

by Zou Wei

[permalink] [raw]
Subject: [PATCH -next] misc: eeprom: Add missing MODULE_DEVICE_TABLE

This patch adds missing MODULE_DEVICE_TABLE definition which generates
correct modalias for automatic loading of this driver when it is built
as an external module.

Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Zou Wei <[email protected]>
---
drivers/misc/eeprom/eeprom.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/misc/eeprom/eeprom.c b/drivers/misc/eeprom/eeprom.c
index 34fa385..3fefb70 100644
--- a/drivers/misc/eeprom/eeprom.c
+++ b/drivers/misc/eeprom/eeprom.c
@@ -194,6 +194,7 @@ static const struct i2c_device_id eeprom_id[] = {
{ "eeprom", 0 },
{ }
};
+MODULE_DEVICE_TABLE(i2c, eeprom_id);

static struct i2c_driver eeprom_driver = {
.driver = {
--
2.6.2


2021-05-12 13:13:41

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH -next] misc: eeprom: Add missing MODULE_DEVICE_TABLE

Hi Zou,

On Wed, 12 May 2021 14:41:48 +0800, Zou Wei wrote:
> This patch adds missing MODULE_DEVICE_TABLE definition which generates
> correct modalias for automatic loading of this driver when it is built
> as an external module.
>
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Zou Wei <[email protected]>
> ---
> drivers/misc/eeprom/eeprom.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/misc/eeprom/eeprom.c b/drivers/misc/eeprom/eeprom.c
> index 34fa385..3fefb70 100644
> --- a/drivers/misc/eeprom/eeprom.c
> +++ b/drivers/misc/eeprom/eeprom.c
> @@ -194,6 +194,7 @@ static const struct i2c_device_id eeprom_id[] = {
> { "eeprom", 0 },
> { }
> };
> +MODULE_DEVICE_TABLE(i2c, eeprom_id);
>
> static struct i2c_driver eeprom_driver = {
> .driver = {

Nack. The "eeprom" driver is a legacy driver that is being phased out and
replaced by the "at24" driver. We do NOT want the "eeprom" driver to be
loaded automatically, because it would then potentially steal the
devices which the "at24" driver should be dealing with.

Plus, the only driver which should instantiate "eeprom" i2c devices
is the "eeprom" driver itself. So I can't see how adding a
MODULE_DEVICE_TABLE() would change anything in practice anyway. If it
does change something for you then you are using the "eeprom" driver
when you shouldn't. Please move to the "at24" driver.

--
Jean Delvare
SUSE L3 Support