Messages in this thread Patch in this message | | | Subject | mod_devicetable: Make dmi_strmatch.substr const char * | From | Joe Perches <> | Date | Mon, 18 May 2015 17:07:35 -0700 |
| |
Hey David, Rusty, Quentin
This commit: ------------------------------ commit d945b697d0eea5a811ec299c5f1a25889bb0242b From: David Woodhouse <dwmw2@infradead.org> Date: Tue, 16 Sep 2008 16:23:28 -0700 Subject: [PATCH] Automatic MODULE_ALIAS() for DMI match tables.
This makes modpost handle MODULE_DEVICE_TABLE(dmi, xxxx).
I had to change the string pointers in the match table to char arrays, and picked a size of 79 bytes almost at random -- do we need to make it bigger than that? I was a bit concerned about the 'bloat' this introduces into the match tables, but they should all be __initdata so it shouldn't matter too much.
(Actually, modpost does go through the relocations and look at most of them; it wouldn't be impossible to make it handle string pointers -- but doesn't seem to be worth the effort, since they're __initdata). ------------------------------ changed dmi_strmatch.substr from char * to char[79];
Changing it back to const char * would shrink an x86-64 defconfig more than 100KB.
$ size vmlinux.old vmlinux.new text data bss dec hex filename 11941725 1825624 1085440 14852789 e2a2b5 vmlinux.old 11921172 1730648 1085440 14737260 e0df6c vmlinux.new
modpost has changed a bit since 2008, is it's time to change it back?
--- include/linux/mod_devicetable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 7ab00d6..66c4309 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -462,7 +462,7 @@ enum dmi_field { struct dmi_strmatch { unsigned char slot:7; unsigned char exact_match:1; - char substr[79]; + const char *substr; }; struct dmi_system_id {
| |