All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o
       [not found] ` <493F1C96.5070400@bitmath.org>
@ 2008-12-12  3:05   ` Tetsuo Handa
  2008-12-12  4:25     ` Alexey Dobriyan
  0 siblings, 1 reply; 7+ messages in thread
From: Tetsuo Handa @ 2008-12-12  3:05 UTC (permalink / raw)
  To: rydberg
  Cc: torvalds, akpm, mjg, nicolas, rydberg, penguin-kernel, linux-kernel

Henrik Rydberg wrote:
> Umm... this does not work. At least the name change would have to be accompanied
> by a corresponding change in scripts/mod/file2alias.c, in order to generate the
> MODULE_ALIAS list in *.mod.c.
I see. Here is updated one.
----------
Subject: [2.6.28-rc8] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o

When compiling mbp_nvidia_bl.o and applesmc.o using gcc 3.3.5,
the below compilation error occurs.

  CC [M]  drivers/video/backlight/mbp_nvidia_bl.o
  drivers/video/backlight/mbp_nvidia_bl.c:114: error: storage size of `__mod_dmi_device_table' isn't known
  make[1]: *** [drivers/video/backlight/mbp_nvidia_bl.o] Error 1
  make: *** [drivers/video/backlight/mbp_nvidia_bl.o] Error 2

  CC [M]  drivers/hwmon/applesmc.o
  drivers/hwmon/applesmc.c:1567: error: storage size of `__mod_dmi_device_table' isn't known
  make[1]: *** [drivers/hwmon/applesmc.o] Error 1
  make: *** [drivers/hwmon/applesmc.o] Error 2

Diffs between 2.6.27.7 and 2.6.28-rc7 are shown below.

  # diff linux-2.6.27.7/drivers/video/backlight/mbp_nvidia_bl.c linux-2.6.28-rc7/drivers/video/backlight/mbp_nvidia_bl.c
  114,116c114
  < MODULE_ALIAS("svnAppleInc.:pnMacBookPro3,1");
  < MODULE_ALIAS("svnAppleInc.:pnMacBookPro3,2");
  < MODULE_ALIAS("svnAppleInc.:pnMacBookPro4,1");
  ---
  > MODULE_DEVICE_TABLE(dmi, mbp_device_table);

We can see that MODULE_ALIAS is replaced by MODULE_DEVICE_TABLE.

mbp_nvidia_bl.c and applesmc.c are using MODULE_DEVICE_TABLE(dmi, ...);
which will extracted to __mod_dmi_device_table, but it seems to me that
dmi does not define __mod_dmi_device_table.

I don't know why gcc 4.x doesn't trigger this compilation error.

I don't know whether mbp_nvidia_bl.o and applesmc.o compiled with this patch
work or not. Can somebody who has these hardwares try this patch?

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Henrik Rydberg <rydberg@bitmath.org>
---
 drivers/hwmon/applesmc.c                |    2 +-
 drivers/video/backlight/mbp_nvidia_bl.c |    2 +-
 include/linux/module.h                  |    2 ++
 scripts/mod/file2alias.c                |    2 +-
 4 files changed, 5 insertions(+), 3 deletions(-)

--- linux-2.6.28-rc8.orig/drivers/hwmon/applesmc.c
+++ linux-2.6.28-rc8/drivers/hwmon/applesmc.c
@@ -1564,4 +1564,4 @@ module_exit(applesmc_exit);
 MODULE_AUTHOR("Nicolas Boichat");
 MODULE_DESCRIPTION("Apple SMC");
 MODULE_LICENSE("GPL v2");
-MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
+MODULE_SYSTEM_TABLE(dmi, applesmc_whitelist);
--- linux-2.6.28-rc8.orig/drivers/video/backlight/mbp_nvidia_bl.c
+++ linux-2.6.28-rc8/drivers/video/backlight/mbp_nvidia_bl.c
@@ -111,4 +111,4 @@ module_exit(mbp_exit);
 MODULE_AUTHOR("Matthew Garrett <mjg@redhat.com>");
 MODULE_DESCRIPTION("Nvidia-based Macbook Pro Backlight Driver");
 MODULE_LICENSE("GPL");
-MODULE_DEVICE_TABLE(dmi, mbp_device_table);
+MODULE_SYSTEM_TABLE(dmi, mbp_device_table);
--- linux-2.6.28-rc8.orig/include/linux/module.h
+++ linux-2.6.28-rc8/include/linux/module.h
@@ -139,6 +139,8 @@ extern struct module __this_module;
 
 #define MODULE_DEVICE_TABLE(type,name)		\
   MODULE_GENERIC_TABLE(type##_device,name)
+#define MODULE_SYSTEM_TABLE(type,name)		\
+  MODULE_GENERIC_TABLE(type##_system,name)
 
 /* Version of form [<epoch>:]<version>[-<extra-version>].
    Or for CVS/RCS ID version, everything but the number is stripped.
--- linux-2.6.28-rc8.orig/scripts/mod/file2alias.c
+++ linux-2.6.28-rc8/scripts/mod/file2alias.c
@@ -831,7 +831,7 @@ void handle_moddevtable(struct module *m
 		do_table(symval, sym->st_size,
 			 sizeof(struct i2c_device_id), "i2c",
 			 do_i2c_entry, mod);
-	else if (sym_is(symname, "__mod_dmi_device_table"))
+	else if (sym_is(symname, "__mod_dmi_system_table"))
 		do_table(symval, sym->st_size,
 			 sizeof(struct dmi_system_id), "dmi",
 			 do_dmi_entry, mod);

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o
  2008-12-12  3:05   ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o Tetsuo Handa
@ 2008-12-12  4:25     ` Alexey Dobriyan
  2008-12-12 13:02       ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.oand applesmc.o Tetsuo Handa
  2009-01-27  6:59       ` Andrew Morton
  0 siblings, 2 replies; 7+ messages in thread
From: Alexey Dobriyan @ 2008-12-12  4:25 UTC (permalink / raw)
  To: Tetsuo Handa; +Cc: rydberg, torvalds, akpm, mjg, nicolas, rydberg, linux-kernel

> -MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
> +MODULE_SYSTEM_TABLE(dmi, applesmc_whitelist);

I sent patch which does "#define dmi_device_id dmi_system_id" and thus
avoids yet another wrapper.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.oand applesmc.o
  2008-12-12  4:25     ` Alexey Dobriyan
@ 2008-12-12 13:02       ` Tetsuo Handa
  2008-12-19 12:47         ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o Tetsuo Handa
  2009-01-27  6:59       ` Andrew Morton
  1 sibling, 1 reply; 7+ messages in thread
From: Tetsuo Handa @ 2008-12-12 13:02 UTC (permalink / raw)
  To: adobriyan
  Cc: rydberg, torvalds, akpm, mjg, nicolas, rydberg, linux-kernel,
	penguin-kernel

Alexey Dobriyan wrote:
> > -MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
> > +MODULE_SYSTEM_TABLE(dmi, applesmc_whitelist);
> 
> I sent patch which does "#define dmi_device_id dmi_system_id" and thus
> avoids yet another wrapper.
> 
I see. I'll try your patch after it is merged (2.6.28-rc8-gitX or 2.6.28-rc9 ?).

Thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o
  2008-12-12 13:02       ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.oand applesmc.o Tetsuo Handa
@ 2008-12-19 12:47         ` Tetsuo Handa
  0 siblings, 0 replies; 7+ messages in thread
From: Tetsuo Handa @ 2008-12-19 12:47 UTC (permalink / raw)
  To: adobriyan; +Cc: linux-kernel


Tetsuo Handa wrote:
> Alexey Dobriyan wrote:
> > > -MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
> > > +MODULE_SYSTEM_TABLE(dmi, applesmc_whitelist);
> > 
> > I sent patch which does "#define dmi_device_id dmi_system_id" and thus
> > avoids yet another wrapper.
> > 
> I see. I'll try your patch after it is merged (2.6.28-rc8-gitX or 2.6.28-rc9 ?).

It's 2.6.28-rc9 now, but your patch is not applied yet.
Did somebody catch the "#define dmi_device_id dmi_system_id" patch?

Thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o
  2008-12-12  4:25     ` Alexey Dobriyan
  2008-12-12 13:02       ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.oand applesmc.o Tetsuo Handa
@ 2009-01-27  6:59       ` Andrew Morton
  2009-01-27 18:11         ` Henrik Rydberg
  2009-01-27 18:48         ` [PATCH] include/linux/mod_devicetable.h: fix compilation problem induced by MODULE_DEVICE_TABLE(dmi, ...) Henrik Rydberg
  1 sibling, 2 replies; 7+ messages in thread
From: Andrew Morton @ 2009-01-27  6:59 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: Tetsuo Handa, rydberg, torvalds, mjg, nicolas, rydberg, linux-kernel

On Fri, 12 Dec 2008 07:25:03 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:

> > -MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
> > +MODULE_SYSTEM_TABLE(dmi, applesmc_whitelist);
> 
> I sent patch which does "#define dmi_device_id dmi_system_id" and thus
> avoids yet another wrapper.

What was the fate of this patch?

If it's still needed, please resend.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o
  2009-01-27  6:59       ` Andrew Morton
@ 2009-01-27 18:11         ` Henrik Rydberg
  2009-01-27 18:48         ` [PATCH] include/linux/mod_devicetable.h: fix compilation problem induced by MODULE_DEVICE_TABLE(dmi, ...) Henrik Rydberg
  1 sibling, 0 replies; 7+ messages in thread
From: Henrik Rydberg @ 2009-01-27 18:11 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Alexey Dobriyan, Tetsuo Handa, rydberg, torvalds, mjg, nicolas,
	linux-kernel

Andrew Morton wrote:
> On Fri, 12 Dec 2008 07:25:03 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> 
>>> -MODULE_DEVICE_TABLE(dmi, applesmc_whitelist);
>>> +MODULE_SYSTEM_TABLE(dmi, applesmc_whitelist);
>> I sent patch which does "#define dmi_device_id dmi_system_id" and thus
>> avoids yet another wrapper.
> 
> What was the fate of this patch?
> 
> If it's still needed, please resend.

I'll send David's minipatch to you shortly, for piece of mind.

Thanks,
Henrik

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] include/linux/mod_devicetable.h: fix compilation problem induced by MODULE_DEVICE_TABLE(dmi, ...)
  2009-01-27  6:59       ` Andrew Morton
  2009-01-27 18:11         ` Henrik Rydberg
@ 2009-01-27 18:48         ` Henrik Rydberg
  1 sibling, 0 replies; 7+ messages in thread
From: Henrik Rydberg @ 2009-01-27 18:48 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Alexey Dobriyan, Tetsuo Handa, torvalds, mjg, nicolas,
	linux-kernel, Henrik Rydberg

From: Alexey Dobriyan <adobriyan@gmail.com>

Bugzilla 12483:

Kernel build fails with gcc3 (not gcc4), because
MODULE_DEVICE_TABLE(dmi, ...) expands to extern const struct
dmi_device_id __mod_dmi_device_table, and struct dmi_device_id doesn't
exist.

Steps to reproduce:
Build kernel 2.6.28 or 2.6.29-rc2 on x86 with gcc 3.

This patch remedies the problem.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
---
 include/linux/mod_devicetable.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 97b91d1..aec76e6 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -443,6 +443,7 @@ struct dmi_system_id {
 	struct dmi_strmatch matches[4];
 	void *driver_data;
 };
+#define dmi_device_id dmi_system_id
 #endif
 
 #define DMI_MATCH(a, b)	{ a, b }
-- 
1.5.6.3


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-01-27 18:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <200812092114.mB9LETsI027215@imap1.linux-foundation.org>
     [not found] ` <493F1C96.5070400@bitmath.org>
2008-12-12  3:05   ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o Tetsuo Handa
2008-12-12  4:25     ` Alexey Dobriyan
2008-12-12 13:02       ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.oand applesmc.o Tetsuo Handa
2008-12-19 12:47         ` [patch 18/19] Define MODULE_SYSTEM_TABLE for mbp_nvidia_bl.o and applesmc.o Tetsuo Handa
2009-01-27  6:59       ` Andrew Morton
2009-01-27 18:11         ` Henrik Rydberg
2009-01-27 18:48         ` [PATCH] include/linux/mod_devicetable.h: fix compilation problem induced by MODULE_DEVICE_TABLE(dmi, ...) Henrik Rydberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.