Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers/firmware: const-ify DMI API and internals

Three main sets of changes:

1) dmi_get_system_info() return value should have been marked const,
since callers should not be changing that data.

2) const-ify DMI internals, since DMI firmware tables should,
whenever possible, be marked const to ensure we never ever write to
that data area.

3) const-ify DMI API, to enable marking tables const where possible
in low-level drivers.

And if we're really lucky, this might enable some additional
optimizations on the part of the compiler.

The bulk of the changes are #2 and #3, which are interrelated. #1 could
have been a separate patch, but it was so small compared to the others,
it was easier to roll it into this changeset.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

+103 -97
+4 -4
arch/i386/kernel/acpi/boot.c
··· 907 907 908 908 #ifdef __i386__ 909 909 910 - static int __init disable_acpi_irq(struct dmi_system_id *d) 910 + static int __init disable_acpi_irq(const struct dmi_system_id *d) 911 911 { 912 912 if (!acpi_force) { 913 913 printk(KERN_NOTICE "%s detected: force use of acpi=noirq\n", ··· 917 917 return 0; 918 918 } 919 919 920 - static int __init disable_acpi_pci(struct dmi_system_id *d) 920 + static int __init disable_acpi_pci(const struct dmi_system_id *d) 921 921 { 922 922 if (!acpi_force) { 923 923 printk(KERN_NOTICE "%s detected: force use of pci=noacpi\n", ··· 927 927 return 0; 928 928 } 929 929 930 - static int __init dmi_disable_acpi(struct dmi_system_id *d) 930 + static int __init dmi_disable_acpi(const struct dmi_system_id *d) 931 931 { 932 932 if (!acpi_force) { 933 933 printk(KERN_NOTICE "%s detected: acpi off\n", d->ident); ··· 942 942 /* 943 943 * Limit ACPI to CPU enumeration for HT 944 944 */ 945 - static int __init force_acpi_ht(struct dmi_system_id *d) 945 + static int __init force_acpi_ht(const struct dmi_system_id *d) 946 946 { 947 947 if (!acpi_force) { 948 948 printk(KERN_NOTICE "%s detected: force use of acpi=ht\n",
+1 -1
arch/i386/kernel/acpi/sleep.c
··· 84 84 85 85 /* Ouch, we want to delete this. We already have better version in userspace, in 86 86 s2ram from suspend.sf.net project */ 87 - static __init int reset_videomode_after_s3(struct dmi_system_id *d) 87 + static __init int reset_videomode_after_s3(const struct dmi_system_id *d) 88 88 { 89 89 acpi_realmode_flags |= 2; 90 90 return 0;
+9 -9
arch/i386/kernel/apm.c
··· 1869 1869 1870 1870 1871 1871 /* Simple "print if true" callback */ 1872 - static int __init print_if_true(struct dmi_system_id *d) 1872 + static int __init print_if_true(const struct dmi_system_id *d) 1873 1873 { 1874 1874 printk("%s\n", d->ident); 1875 1875 return 0; ··· 1879 1879 * Some Bioses enable the PS/2 mouse (touchpad) at resume, even if it was 1880 1880 * disabled before the suspend. Linux used to get terribly confused by that. 1881 1881 */ 1882 - static int __init broken_ps2_resume(struct dmi_system_id *d) 1882 + static int __init broken_ps2_resume(const struct dmi_system_id *d) 1883 1883 { 1884 1884 printk(KERN_INFO "%s machine detected. Mousepad Resume Bug workaround hopefully not needed.\n", d->ident); 1885 1885 return 0; 1886 1886 } 1887 1887 1888 1888 /* Some bioses have a broken protected mode poweroff and need to use realmode */ 1889 - static int __init set_realmode_power_off(struct dmi_system_id *d) 1889 + static int __init set_realmode_power_off(const struct dmi_system_id *d) 1890 1890 { 1891 1891 if (apm_info.realmode_power_off == 0) { 1892 1892 apm_info.realmode_power_off = 1; ··· 1896 1896 } 1897 1897 1898 1898 /* Some laptops require interrupts to be enabled during APM calls */ 1899 - static int __init set_apm_ints(struct dmi_system_id *d) 1899 + static int __init set_apm_ints(const struct dmi_system_id *d) 1900 1900 { 1901 1901 if (apm_info.allow_ints == 0) { 1902 1902 apm_info.allow_ints = 1; ··· 1906 1906 } 1907 1907 1908 1908 /* Some APM bioses corrupt memory or just plain do not work */ 1909 - static int __init apm_is_horked(struct dmi_system_id *d) 1909 + static int __init apm_is_horked(const struct dmi_system_id *d) 1910 1910 { 1911 1911 if (apm_info.disabled == 0) { 1912 1912 apm_info.disabled = 1; ··· 1915 1915 return 0; 1916 1916 } 1917 1917 1918 - static int __init apm_is_horked_d850md(struct dmi_system_id *d) 1918 + static int __init apm_is_horked_d850md(const struct dmi_system_id *d) 1919 1919 { 1920 1920 if (apm_info.disabled == 0) { 1921 1921 apm_info.disabled = 1; ··· 1927 1927 } 1928 1928 1929 1929 /* Some APM bioses hang on APM idle calls */ 1930 - static int __init apm_likes_to_melt(struct dmi_system_id *d) 1930 + static int __init apm_likes_to_melt(const struct dmi_system_id *d) 1931 1931 { 1932 1932 if (apm_info.forbid_idle == 0) { 1933 1933 apm_info.forbid_idle = 1; ··· 1951 1951 * Phoenix A04 08/24/2000 is known bad (Dell Inspiron 5000e) 1952 1952 * Phoenix A07 09/29/2000 is known good (Dell Inspiron 5000) 1953 1953 */ 1954 - static int __init broken_apm_power(struct dmi_system_id *d) 1954 + static int __init broken_apm_power(const struct dmi_system_id *d) 1955 1955 { 1956 1956 apm_info.get_power_status_broken = 1; 1957 1957 printk(KERN_WARNING "BIOS strings suggest APM bugs, disabling power status reporting.\n"); ··· 1962 1962 * This bios swaps the APM minute reporting bytes over (Many sony laptops 1963 1963 * have this problem). 1964 1964 */ 1965 - static int __init swab_apm_power_in_minutes(struct dmi_system_id *d) 1965 + static int __init swab_apm_power_in_minutes(const struct dmi_system_id *d) 1966 1966 { 1967 1967 apm_info.get_power_status_swabinminutes = 1; 1968 1968 printk(KERN_WARNING "BIOS strings suggest APM reports battery life in minutes and wrong byte order.\n");
+2 -2
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
··· 533 533 */ 534 534 static int bios_with_sw_any_bug; 535 535 536 - static int sw_any_bug_found(struct dmi_system_id *d) 536 + static int sw_any_bug_found(const struct dmi_system_id *d) 537 537 { 538 538 bios_with_sw_any_bug = 1; 539 539 return 0; 540 540 } 541 541 542 - static struct dmi_system_id sw_any_bug_dmi_table[] = { 542 + static const struct dmi_system_id sw_any_bug_dmi_table[] = { 543 543 { 544 544 .callback = sw_any_bug_found, 545 545 .ident = "Supermicro Server X6DLP",
+1 -1
arch/i386/kernel/reboot.c
··· 79 79 /* 80 80 * Some machines require the "reboot=b" commandline option, this quirk makes that automatic. 81 81 */ 82 - static int __init set_bios_reboot(struct dmi_system_id *d) 82 + static int __init set_bios_reboot(const struct dmi_system_id *d) 83 83 { 84 84 if (!reboot_thru_bios) { 85 85 reboot_thru_bios = 1;
+1 -1
arch/i386/kernel/tsc.c
··· 305 305 } 306 306 EXPORT_SYMBOL_GPL(mark_tsc_unstable); 307 307 308 - static int __init dmi_mark_tsc_unstable(struct dmi_system_id *d) 308 + static int __init dmi_mark_tsc_unstable(const struct dmi_system_id *d) 309 309 { 310 310 printk(KERN_NOTICE "%s detected: marking TSC unstable.\n", 311 311 d->ident);
+2 -2
arch/i386/mach-generic/bigsmp.c
··· 21 21 22 22 static int dmi_bigsmp; /* can be set by dmi scanners */ 23 23 24 - static int hp_ht_bigsmp(struct dmi_system_id *d) 24 + static int hp_ht_bigsmp(const struct dmi_system_id *d) 25 25 { 26 26 #ifdef CONFIG_X86_GENERICARCH 27 27 printk(KERN_NOTICE "%s detected: force use of apic=bigsmp\n", d->ident); ··· 31 31 } 32 32 33 33 34 - static struct dmi_system_id bigsmp_dmi_table[] = { 34 + static const struct dmi_system_id bigsmp_dmi_table[] = { 35 35 { hp_ht_bigsmp, "HP ProLiant DL760 G2", { 36 36 DMI_MATCH(DMI_BIOS_VENDOR, "HP"), 37 37 DMI_MATCH(DMI_BIOS_VERSION, "P44-"),
+2 -2
arch/i386/pci/common.c
··· 123 123 * on the kernel command line (which was parsed earlier). 124 124 */ 125 125 126 - static int __devinit set_bf_sort(struct dmi_system_id *d) 126 + static int __devinit set_bf_sort(const struct dmi_system_id *d) 127 127 { 128 128 if (pci_bf_sort == pci_bf_sort_default) { 129 129 pci_bf_sort = pci_dmi_bf; ··· 136 136 * Enable renumbering of PCI bus# ranges to reach all PCI busses (Cardbus) 137 137 */ 138 138 #ifdef __i386__ 139 - static int __devinit assign_all_busses(struct dmi_system_id *d) 139 + static int __devinit assign_all_busses(const struct dmi_system_id *d) 140 140 { 141 141 pci_probe |= PCI_ASSIGN_ALL_BUSSES; 142 142 printk(KERN_INFO "%s detected: enabling PCI bus# renumbering"
+2 -2
arch/i386/pci/irq.c
··· 1010 1010 * Work around broken HP Pavilion Notebooks which assign USB to 1011 1011 * IRQ 9 even though it is actually wired to IRQ 11 1012 1012 */ 1013 - static int __init fix_broken_hp_bios_irq9(struct dmi_system_id *d) 1013 + static int __init fix_broken_hp_bios_irq9(const struct dmi_system_id *d) 1014 1014 { 1015 1015 if (!broken_hp_bios_irq9) { 1016 1016 broken_hp_bios_irq9 = 1; ··· 1023 1023 * Work around broken Acer TravelMate 360 Notebooks which assign 1024 1024 * Cardbus to IRQ 11 even though it is actually wired to IRQ 10 1025 1025 */ 1026 - static int __init fix_acer_tm360_irqrouting(struct dmi_system_id *d) 1026 + static int __init fix_acer_tm360_irqrouting(const struct dmi_system_id *d) 1027 1027 { 1028 1028 if (!acer_tm360_irqrouting) { 1029 1029 acer_tm360_irqrouting = 1;
+1 -1
drivers/acpi/osl.c
··· 1214 1214 } 1215 1215 1216 1216 #ifdef CONFIG_DMI 1217 - static int dmi_osi_linux(struct dmi_system_id *d) 1217 + static int dmi_osi_linux(const struct dmi_system_id *d) 1218 1218 { 1219 1219 printk(KERN_NOTICE "%s detected: enabling _OSI(Linux)\n", d->ident); 1220 1220 enable_osi_linux(1);
+1 -1
drivers/acpi/processor_idle.c
··· 92 92 * 93 93 * To skip this limit, boot/load with a large max_cstate limit. 94 94 */ 95 - static int set_max_cstate(struct dmi_system_id *id) 95 + static int set_max_cstate(const struct dmi_system_id *id) 96 96 { 97 97 if (max_cstate > ACPI_PROCESSOR_MAX_POWER) 98 98 return 0;
+1 -1
drivers/acpi/sleep/main.c
··· 215 215 * Toshiba fails to preserve interrupts over S1, reinitialization 216 216 * of 8259 is needed after S1 resume. 217 217 */ 218 - static int __init init_ints_after_s1(struct dmi_system_id *d) 218 + static int __init init_ints_after_s1(const struct dmi_system_id *d) 219 219 { 220 220 printk(KERN_WARNING "%s with broken S1 detected.\n", d->ident); 221 221 init_8259A_after_S1 = 1;
+4 -4
drivers/acpi/thermal.c
··· 1360 1360 } 1361 1361 1362 1362 #ifdef CONFIG_DMI 1363 - static int thermal_act(struct dmi_system_id *d) { 1363 + static int thermal_act(const struct dmi_system_id *d) { 1364 1364 1365 1365 if (act == 0) { 1366 1366 printk(KERN_NOTICE "ACPI: %s detected: " ··· 1369 1369 } 1370 1370 return 0; 1371 1371 } 1372 - static int thermal_nocrt(struct dmi_system_id *d) { 1372 + static int thermal_nocrt(const struct dmi_system_id *d) { 1373 1373 1374 1374 printk(KERN_NOTICE "ACPI: %s detected: " 1375 1375 "disabling all critical thermal trip point actions.\n", d->ident); 1376 1376 nocrt = 1; 1377 1377 return 0; 1378 1378 } 1379 - static int thermal_tzp(struct dmi_system_id *d) { 1379 + static int thermal_tzp(const struct dmi_system_id *d) { 1380 1380 1381 1381 if (tzp == 0) { 1382 1382 printk(KERN_NOTICE "ACPI: %s detected: " ··· 1385 1385 } 1386 1386 return 0; 1387 1387 } 1388 - static int thermal_psv(struct dmi_system_id *d) { 1388 + static int thermal_psv(const struct dmi_system_id *d) { 1389 1389 1390 1390 if (psv == 0) { 1391 1391 printk(KERN_NOTICE "ACPI: %s detected: "
+2 -2
drivers/ata/ata_piix.c
··· 919 919 #ifdef CONFIG_PM 920 920 static int piix_broken_suspend(void) 921 921 { 922 - static struct dmi_system_id sysids[] = { 922 + static const struct dmi_system_id sysids[] = { 923 923 { 924 924 .ident = "TECRA M3", 925 925 .matches = { ··· 1183 1183 1184 1184 static void piix_iocfg_bit18_quirk(struct pci_dev *pdev) 1185 1185 { 1186 - static struct dmi_system_id sysids[] = { 1186 + static const struct dmi_system_id sysids[] = { 1187 1187 { 1188 1188 /* Clevo M570U sets IOCFG bit 18 if the cdrom 1189 1189 * isn't used to boot the system which
+1 -1
drivers/ata/pata_ali.c
··· 40 40 * Cable special cases 41 41 */ 42 42 43 - static struct dmi_system_id cable_dmi_table[] = { 43 + static const struct dmi_system_id cable_dmi_table[] = { 44 44 { 45 45 .ident = "HP Pavilion N5430", 46 46 .matches = {
+1 -1
drivers/ata/pata_cs5530.c
··· 214 214 .port_start = ata_port_start, 215 215 }; 216 216 217 - static struct dmi_system_id palmax_dmi_table[] = { 217 + static const struct dmi_system_id palmax_dmi_table[] = { 218 218 { 219 219 .ident = "Palmax PD1100", 220 220 .matches = {
+1 -1
drivers/ata/pata_via.c
··· 129 129 * Cable special cases 130 130 */ 131 131 132 - static struct dmi_system_id cable_dmi_table[] = { 132 + static const struct dmi_system_id cable_dmi_table[] = { 133 133 { 134 134 .ident = "Acer Ferrari 3400", 135 135 .matches = {
+2 -2
drivers/char/i8k.c
··· 98 98 unsigned int edi __attribute__ ((packed)); 99 99 }; 100 100 101 - static inline char *i8k_get_dmi_data(int field) 101 + static inline const char *i8k_get_dmi_data(int field) 102 102 { 103 - char *dmi_data = dmi_get_system_info(field); 103 + const char *dmi_data = dmi_get_system_info(field); 104 104 105 105 return dmi_data && *dmi_data ? dmi_data : "?"; 106 106 }
+5 -4
drivers/char/ipmi/ipmi_si_intf.c
··· 1965 1965 u8 slave_addr; 1966 1966 }; 1967 1967 1968 - static int __devinit decode_dmi(struct dmi_header *dm, 1968 + static int __devinit decode_dmi(const struct dmi_header *dm, 1969 1969 struct dmi_ipmi_data *dmi) 1970 1970 { 1971 - u8 *data = (u8 *)dm; 1971 + const u8 *data = (const u8 *)dm; 1972 1972 unsigned long base_addr; 1973 1973 u8 reg_spacing; 1974 1974 u8 len = dm->length; ··· 2091 2091 2092 2092 static void __devinit dmi_find_bmc(void) 2093 2093 { 2094 - struct dmi_device *dev = NULL; 2094 + const struct dmi_device *dev = NULL; 2095 2095 struct dmi_ipmi_data data; 2096 2096 int rv; 2097 2097 2098 2098 while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) { 2099 2099 memset(&data, 0, sizeof(data)); 2100 - rv = decode_dmi((struct dmi_header *) dev->device_data, &data); 2100 + rv = decode_dmi((const struct dmi_header *) dev->device_data, 2101 + &data); 2101 2102 if (!rv) 2102 2103 try_init_dmi(&data); 2103 2104 }
+31 -26
drivers/firmware/dmi_scan.c
··· 8 8 #include <linux/slab.h> 9 9 #include <asm/dmi.h> 10 10 11 - static char * __init dmi_string(struct dmi_header *dm, u8 s) 11 + static char * __init dmi_string(const struct dmi_header *dm, u8 s) 12 12 { 13 - u8 *bp = ((u8 *) dm) + dm->length; 13 + const u8 *bp = ((u8 *) dm) + dm->length; 14 14 char *str = ""; 15 15 16 16 if (s) { ··· 37 37 * pointing to completely the wrong place for example 38 38 */ 39 39 static int __init dmi_table(u32 base, int len, int num, 40 - void (*decode)(struct dmi_header *)) 40 + void (*decode)(const struct dmi_header *)) 41 41 { 42 42 u8 *buf, *data; 43 43 int i = 0; ··· 53 53 * OR we run off the end of the table (also happens) 54 54 */ 55 55 while ((i < num) && (data - buf + sizeof(struct dmi_header)) <= len) { 56 - struct dmi_header *dm = (struct dmi_header *)data; 56 + const struct dmi_header *dm = (const struct dmi_header *)data; 57 + 57 58 /* 58 59 * We want to know the total length (formated area and strings) 59 60 * before decoding to make sure we won't run off the table in ··· 72 71 return 0; 73 72 } 74 73 75 - static int __init dmi_checksum(u8 *buf) 74 + static int __init dmi_checksum(const u8 *buf) 76 75 { 77 76 u8 sum = 0; 78 77 int a; ··· 90 89 /* 91 90 * Save a DMI string 92 91 */ 93 - static void __init dmi_save_ident(struct dmi_header *dm, int slot, int string) 92 + static void __init dmi_save_ident(const struct dmi_header *dm, int slot, int string) 94 93 { 95 - char *p, *d = (char*) dm; 94 + const char *d = (const char*) dm; 95 + char *p; 96 96 97 97 if (dmi_ident[slot]) 98 98 return; ··· 105 103 dmi_ident[slot] = p; 106 104 } 107 105 108 - static void __init dmi_save_uuid(struct dmi_header *dm, int slot, int index) 106 + static void __init dmi_save_uuid(const struct dmi_header *dm, int slot, int index) 109 107 { 110 - u8 *d = (u8*) dm + index; 108 + const u8 *d = (u8*) dm + index; 111 109 char *s; 112 110 int is_ff = 1, is_00 = 1, i; 113 111 ··· 134 132 dmi_ident[slot] = s; 135 133 } 136 134 137 - static void __init dmi_save_type(struct dmi_header *dm, int slot, int index) 135 + static void __init dmi_save_type(const struct dmi_header *dm, int slot, int index) 138 136 { 139 - u8 *d = (u8*) dm + index; 137 + const u8 *d = (u8*) dm + index; 140 138 char *s; 141 139 142 140 if (dmi_ident[slot]) ··· 150 148 dmi_ident[slot] = s; 151 149 } 152 150 153 - static void __init dmi_save_devices(struct dmi_header *dm) 151 + static void __init dmi_save_devices(const struct dmi_header *dm) 154 152 { 155 153 int i, count = (dm->length - sizeof(struct dmi_header)) / 2; 156 154 struct dmi_device *dev; 157 155 158 156 for (i = 0; i < count; i++) { 159 - char *d = (char *)(dm + 1) + (i * 2); 157 + const char *d = (char *)(dm + 1) + (i * 2); 160 158 161 159 /* Skip disabled device */ 162 160 if ((*d & 0x80) == 0) ··· 175 173 } 176 174 } 177 175 178 - static void __init dmi_save_oem_strings_devices(struct dmi_header *dm) 176 + static void __init dmi_save_oem_strings_devices(const struct dmi_header *dm) 179 177 { 180 178 int i, count = *(u8 *)(dm + 1); 181 179 struct dmi_device *dev; ··· 196 194 } 197 195 } 198 196 199 - static void __init dmi_save_ipmi_device(struct dmi_header *dm) 197 + static void __init dmi_save_ipmi_device(const struct dmi_header *dm) 200 198 { 201 199 struct dmi_device *dev; 202 200 void * data; ··· 227 225 * and machine entries. For 2.5 we should pull the smbus controller info 228 226 * out of here. 229 227 */ 230 - static void __init dmi_decode(struct dmi_header *dm) 228 + static void __init dmi_decode(const struct dmi_header *dm) 231 229 { 232 230 switch(dm->type) { 233 231 case 0: /* BIOS Information */ ··· 267 265 } 268 266 } 269 267 270 - static int __init dmi_present(char __iomem *p) 268 + static int __init dmi_present(const char __iomem *p) 271 269 { 272 270 u8 buf[15]; 271 + 273 272 memcpy_fromio(buf, p, 15); 274 273 if ((memcmp(buf, "_DMI_", 5) == 0) && dmi_checksum(buf)) { 275 274 u16 num = (buf[13] << 8) | buf[12]; ··· 351 348 * returns non zero or we hit the end. Callback function is called for 352 349 * each successful match. Returns the number of matches. 353 350 */ 354 - int dmi_check_system(struct dmi_system_id *list) 351 + int dmi_check_system(const struct dmi_system_id *list) 355 352 { 356 353 int i, count = 0; 357 - struct dmi_system_id *d = list; 354 + const struct dmi_system_id *d = list; 358 355 359 356 while (d->ident) { 360 357 for (i = 0; i < ARRAY_SIZE(d->matches); i++) { ··· 383 380 * Returns one DMI data value, can be used to perform 384 381 * complex DMI data checks. 385 382 */ 386 - char *dmi_get_system_info(int field) 383 + const char *dmi_get_system_info(int field) 387 384 { 388 385 return dmi_ident[field]; 389 386 } ··· 394 391 * dmi_name_in_vendors - Check if string is anywhere in the DMI vendor information. 395 392 * @str: Case sensitive Name 396 393 */ 397 - int dmi_name_in_vendors(char *str) 394 + int dmi_name_in_vendors(const char *str) 398 395 { 399 396 static int fields[] = { DMI_BIOS_VENDOR, DMI_BIOS_VERSION, DMI_SYS_VENDOR, 400 397 DMI_PRODUCT_NAME, DMI_PRODUCT_VERSION, DMI_BOARD_VENDOR, ··· 421 418 * A new search is initiated by passing %NULL as the @from argument. 422 419 * If @from is not %NULL, searches continue from next device. 423 420 */ 424 - struct dmi_device * dmi_find_device(int type, const char *name, 425 - struct dmi_device *from) 421 + const struct dmi_device * dmi_find_device(int type, const char *name, 422 + const struct dmi_device *from) 426 423 { 427 - struct list_head *d, *head = from ? &from->list : &dmi_devices; 424 + const struct list_head *head = from ? &from->list : &dmi_devices; 425 + struct list_head *d; 428 426 429 427 for(d = head->next; d != &dmi_devices; d = d->next) { 430 - struct dmi_device *dev = list_entry(d, struct dmi_device, list); 428 + const struct dmi_device *dev = 429 + list_entry(d, struct dmi_device, list); 431 430 432 431 if (((type == DMI_DEV_TYPE_ANY) || (dev->type == type)) && 433 432 ((name == NULL) || (strcmp(dev->name, name) == 0))) ··· 449 444 int dmi_get_year(int field) 450 445 { 451 446 int year; 452 - char *s = dmi_get_system_info(field); 447 + const char *s = dmi_get_system_info(field); 453 448 454 449 if (!s) 455 450 return -1;
+1 -1
drivers/hwmon/abituguru.c
··· 1449 1449 struct resource res = { .flags = IORESOURCE_IO }; 1450 1450 1451 1451 #ifdef CONFIG_DMI 1452 - char *board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR); 1452 + const char *board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR); 1453 1453 1454 1454 /* safety check, refuse to load on non Abit motherboards */ 1455 1455 if (!force && (!board_vendor ||
+1 -1
drivers/hwmon/applesmc.c
··· 1071 1071 /* 1072 1072 * applesmc_dmi_match - found a match. return one, short-circuiting the hunt. 1073 1073 */ 1074 - static int applesmc_dmi_match(struct dmi_system_id *id) 1074 + static int applesmc_dmi_match(const struct dmi_system_id *id) 1075 1075 { 1076 1076 int i = 0; 1077 1077 struct dmi_match_data* dmi_data = id->driver_data;
+2 -2
drivers/hwmon/hdaps.c
··· 480 480 /* Module stuff */ 481 481 482 482 /* hdaps_dmi_match - found a match. return one, short-circuiting the hunt. */ 483 - static int __init hdaps_dmi_match(struct dmi_system_id *id) 483 + static int __init hdaps_dmi_match(const struct dmi_system_id *id) 484 484 { 485 485 printk(KERN_INFO "hdaps: %s detected.\n", id->ident); 486 486 return 1; 487 487 } 488 488 489 489 /* hdaps_dmi_match_invert - found an inverted match. */ 490 - static int __init hdaps_dmi_match_invert(struct dmi_system_id *id) 490 + static int __init hdaps_dmi_match_invert(const struct dmi_system_id *id) 491 491 { 492 492 hdaps_invert = 1; 493 493 printk(KERN_INFO "hdaps: inverting axis readings.\n");
+1 -1
drivers/ide/pci/alim15x3.c
··· 588 588 * Cable special cases 589 589 */ 590 590 591 - static struct dmi_system_id cable_dmi_table[] = { 591 + static const struct dmi_system_id cable_dmi_table[] = { 592 592 { 593 593 .ident = "HP Pavilion N5430", 594 594 .matches = {
+1 -1
drivers/ide/pci/via82cxxx.c
··· 419 419 * Cable special cases 420 420 */ 421 421 422 - static struct dmi_system_id cable_dmi_table[] = { 422 + static const struct dmi_system_id cable_dmi_table[] = { 423 423 { 424 424 .ident = "Acer Ferrari 3400", 425 425 .matches = {
+1 -1
drivers/input/misc/wistron_btns.c
··· 247 247 static int have_bluetooth; 248 248 static int have_leds; 249 249 250 - static int __init dmi_matched(struct dmi_system_id *dmi) 250 + static int __init dmi_matched(const struct dmi_system_id *dmi) 251 251 { 252 252 const struct key_entry *key; 253 253
+3 -3
drivers/input/mouse/lifebook.c
··· 27 27 28 28 static const char *desired_serio_phys; 29 29 30 - static int lifebook_set_serio_phys(struct dmi_system_id *d) 30 + static int lifebook_set_serio_phys(const struct dmi_system_id *d) 31 31 { 32 32 desired_serio_phys = d->driver_data; 33 33 return 0; ··· 35 35 36 36 static unsigned char lifebook_use_6byte_proto; 37 37 38 - static int lifebook_set_6byte_proto(struct dmi_system_id *d) 38 + static int lifebook_set_6byte_proto(const struct dmi_system_id *d) 39 39 { 40 40 lifebook_use_6byte_proto = 1; 41 41 return 0; 42 42 } 43 43 44 - static struct dmi_system_id lifebook_dmi_table[] = { 44 + static const struct dmi_system_id lifebook_dmi_table[] = { 45 45 { 46 46 .ident = "FLORA-ie 55mi", 47 47 .matches = {
+1 -1
drivers/input/mouse/synaptics.c
··· 602 602 603 603 #if defined(__i386__) 604 604 #include <linux/dmi.h> 605 - static struct dmi_system_id toshiba_dmi_table[] = { 605 + static const struct dmi_system_id toshiba_dmi_table[] = { 606 606 { 607 607 .ident = "Toshiba Satellite", 608 608 .matches = {
+1 -1
drivers/misc/msi-laptop.c
··· 283 283 284 284 /* Initialization */ 285 285 286 - static int dmi_check_cb(struct dmi_system_id *id) 286 + static int dmi_check_cb(const struct dmi_system_id *id) 287 287 { 288 288 printk("msi-laptop: Identified laptop model '%s'.\n", id->ident); 289 289 return 0;
+2 -2
drivers/misc/sony-laptop.c
··· 807 807 /* Vaio C* --maybe also FE*, N* and AR* ?-- special init sequence 808 808 * for Fn keys 809 809 */ 810 - static int sony_nc_C_enable(struct dmi_system_id *id) 810 + static int sony_nc_C_enable(const struct dmi_system_id *id) 811 811 { 812 812 int result = 0; 813 813 ··· 845 845 }; 846 846 847 847 /* SNC-only model map */ 848 - static struct dmi_system_id sony_nc_ids[] = { 848 + static const struct dmi_system_id sony_nc_ids[] = { 849 849 { 850 850 .ident = "Sony Vaio FE Series", 851 851 .callback = sony_nc_C_enable,
+1 -1
drivers/misc/thinkpad_acpi.c
··· 4448 4448 4449 4449 static void __init get_thinkpad_model_data(struct thinkpad_id_data *tp) 4450 4450 { 4451 - struct dmi_device *dev = NULL; 4451 + const struct dmi_device *dev = NULL; 4452 4452 char ec_fw_string[18]; 4453 4453 4454 4454 if (!tp)
+1 -1
drivers/pnp/pnpbios/core.c
··· 500 500 return 0; 501 501 } 502 502 503 - static int __init exploding_pnp_bios(struct dmi_system_id *d) 503 + static int __init exploding_pnp_bios(const struct dmi_system_id *d) 504 504 { 505 505 printk(KERN_WARNING "%s detected. Disabling PnPBIOS\n", d->ident); 506 506 return 0;
+1 -1
drivers/usb/host/uhci-hcd.c
··· 237 237 static int remote_wakeup_is_broken(struct uhci_hcd *uhci) 238 238 { 239 239 int port; 240 - char *sys_info; 240 + const char *sys_info; 241 241 static char bad_Asus_board[] = "A7V8X"; 242 242 243 243 /* One of Asus's motherboards has a bug which causes it to
+1 -1
drivers/video/imacfb.c
··· 58 58 static int manual_height; 59 59 static int manual_width; 60 60 61 - static int set_system(struct dmi_system_id *id) 61 + static int set_system(const struct dmi_system_id *id) 62 62 { 63 63 printk(KERN_INFO "imacfb: %s detected - set system to %ld\n", 64 64 id->ident, (long)id->driver_data);
+11 -11
include/linux/dmi.h
··· 54 54 }; 55 55 56 56 struct dmi_system_id { 57 - int (*callback)(struct dmi_system_id *); 57 + int (*callback)(const struct dmi_system_id *); 58 58 const char *ident; 59 59 struct dmi_strmatch matches[4]; 60 60 void *driver_data; ··· 71 71 72 72 #ifdef CONFIG_DMI 73 73 74 - extern int dmi_check_system(struct dmi_system_id *list); 75 - extern char * dmi_get_system_info(int field); 76 - extern struct dmi_device * dmi_find_device(int type, const char *name, 77 - struct dmi_device *from); 74 + extern int dmi_check_system(const struct dmi_system_id *list); 75 + extern const char * dmi_get_system_info(int field); 76 + extern const struct dmi_device * dmi_find_device(int type, const char *name, 77 + const struct dmi_device *from); 78 78 extern void dmi_scan_machine(void); 79 79 extern int dmi_get_year(int field); 80 - extern int dmi_name_in_vendors(char *str); 80 + extern int dmi_name_in_vendors(const char *str); 81 81 82 82 #else 83 83 84 - static inline int dmi_check_system(struct dmi_system_id *list) { return 0; } 85 - static inline char * dmi_get_system_info(int field) { return NULL; } 86 - static inline struct dmi_device * dmi_find_device(int type, const char *name, 87 - struct dmi_device *from) { return NULL; } 84 + static inline int dmi_check_system(const struct dmi_system_id *list) { return 0; } 85 + static inline const char * dmi_get_system_info(int field) { return NULL; } 86 + static inline const struct dmi_device * dmi_find_device(int type, const char *name, 87 + const struct dmi_device *from) { return NULL; } 88 88 static inline int dmi_get_year(int year) { return 0; } 89 - static inline int dmi_name_in_vendors(char *s) { return 0; } 89 + static inline int dmi_name_in_vendors(const char *s) { return 0; } 90 90 91 91 #endif 92 92