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

Merge git://git.infradead.org/users/dwmw2/random-2.6

* git://git.infradead.org/users/dwmw2/random-2.6:
Fix autoloading of MacBook Pro backlight driver.
Automatic MODULE_ALIAS() for DMI match tables.
Remove asm/a.out.h files for all architectures without a.out support.
Introduce HAVE_AOUT symbol to remove hard-coded arch list for BINFMT_AOUT
Remove redundant CONFIG_ARCH_SUPPORTS_AOUT
S390: Update comments about why we don't use <asm-generic/statfs.h>
SPARC: Use <asm-generic/statfs.h>
PowerPC: Use <asm-generic/statfs.h>
PARISC: Use <asm-generic/statfs.h>
x86_64: Use <asm-generic/statfs.h>
IA64: Use <asm-generic/statfs.h>
ARM: Use <asm-generic/statfs.h>
Make <asm-generic/statfs.h> suitable for 64-bit platforms.
Define and use PCI_DEVICE_ID_MARVELL_88ALP01_CCIC for CAFÉ camera driver
[MTD] [NAND] Define and use PCI_DEVICE_ID_MARVELL_88ALP01_NAND for CAFÉ
Use PCI_DEVICE_ID_88ALP01 for CAFÉ chip, rather than PCI_DEVICE_ID_CAFE.
EFS: Don't set f_fsid in statfs().

+204 -683
+1 -3
arch/alpha/Kconfig
··· 5 5 config ALPHA 6 6 bool 7 7 default y 8 + select HAVE_AOUT 8 9 select HAVE_IDE 9 10 select HAVE_OPROFILE 10 11 help ··· 68 67 bool 69 68 depends on SMP 70 69 default y 71 - 72 - config ARCH_SUPPORTS_AOUT 73 - def_bool y 74 70 75 71 source "init/Kconfig" 76 72
+4
arch/alpha/include/asm/statfs.h
··· 1 1 #ifndef _ALPHA_STATFS_H 2 2 #define _ALPHA_STATFS_H 3 3 4 + /* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't 5 + even seem to implement statfs64 */ 6 + #define __statfs_word __u32 7 + 4 8 #include <asm-generic/statfs.h> 5 9 6 10 #endif
+1 -3
arch/arm/Kconfig
··· 8 8 config ARM 9 9 bool 10 10 default y 11 + select HAVE_AOUT 11 12 select HAVE_IDE 12 13 select RTC_LIB 13 14 select SYS_SUPPORTS_APM_EMULATION ··· 140 139 config GENERIC_CALIBRATE_DELAY 141 140 bool 142 141 default y 143 - 144 - config ARCH_SUPPORTS_AOUT 145 - def_bool y 146 142 147 143 config ARCH_MAY_HAVE_PC_FDC 148 144 bool
+2 -32
arch/arm/include/asm/statfs.h
··· 1 1 #ifndef _ASMARM_STATFS_H 2 2 #define _ASMARM_STATFS_H 3 3 4 - #ifndef __KERNEL_STRICT_NAMES 5 - # include <linux/types.h> 6 - typedef __kernel_fsid_t fsid_t; 7 - #endif 8 - 9 - struct statfs { 10 - __u32 f_type; 11 - __u32 f_bsize; 12 - __u32 f_blocks; 13 - __u32 f_bfree; 14 - __u32 f_bavail; 15 - __u32 f_files; 16 - __u32 f_ffree; 17 - __kernel_fsid_t f_fsid; 18 - __u32 f_namelen; 19 - __u32 f_frsize; 20 - __u32 f_spare[5]; 21 - }; 22 - 23 4 /* 24 5 * With EABI there is 4 bytes of padding added to this structure. 25 6 * Let's pack it so the padding goes away to simplify dual ABI support. 26 7 * Note that user space does NOT have to pack this structure. 27 8 */ 28 - struct statfs64 { 29 - __u32 f_type; 30 - __u32 f_bsize; 31 - __u64 f_blocks; 32 - __u64 f_bfree; 33 - __u64 f_bavail; 34 - __u64 f_files; 35 - __u64 f_ffree; 36 - __kernel_fsid_t f_fsid; 37 - __u32 f_namelen; 38 - __u32 f_frsize; 39 - __u32 f_spare[5]; 40 - } __attribute__ ((packed,aligned(4))); 9 + #define ARCH_PACK_STATFS64 __attribute__((packed,aligned(4))) 41 10 11 + #include <asm-generic/statfs.h> 42 12 #endif
-20
arch/avr32/include/asm/a.out.h
··· 1 - #ifndef __ASM_AVR32_A_OUT_H 2 - #define __ASM_AVR32_A_OUT_H 3 - 4 - struct exec 5 - { 6 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 7 - unsigned a_text; /* length of text, in bytes */ 8 - unsigned a_data; /* length of data, in bytes */ 9 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 10 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 11 - unsigned a_entry; /* start address */ 12 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 13 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 14 - }; 15 - 16 - #define N_TRSIZE(a) ((a).a_trsize) 17 - #define N_DRSIZE(a) ((a).a_drsize) 18 - #define N_SYMSIZE(a) ((a).a_syms) 19 - 20 - #endif /* __ASM_AVR32_A_OUT_H */
-19
arch/blackfin/include/asm/a.out.h
··· 1 - #ifndef __BFIN_A_OUT_H__ 2 - #define __BFIN_A_OUT_H__ 3 - 4 - struct exec { 5 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 6 - unsigned a_text; /* length of text, in bytes */ 7 - unsigned a_data; /* length of data, in bytes */ 8 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 9 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 10 - unsigned a_entry; /* start address */ 11 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 12 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 13 - }; 14 - 15 - #define N_TRSIZE(a) ((a).a_trsize) 16 - #define N_DRSIZE(a) ((a).a_drsize) 17 - #define N_SYMSIZE(a) ((a).a_syms) 18 - 19 - #endif /* __BFIN_A_OUT_H__ */
-1
arch/cris/arch-v10/boot/tools/build.c
··· 30 30 #include <sys/sysmacros.h> 31 31 #include <unistd.h> /* contains read/write */ 32 32 #include <fcntl.h> 33 - #include <linux/a.out.h> 34 33 #include <errno.h> 35 34 36 35 #define MINIX_HEADER 32
-3
arch/h8300/Kconfig
··· 66 66 bool 67 67 default y 68 68 69 - config ARCH_SUPPORTS_AOUT 70 - def_bool y 71 - 72 69 config NO_IOPORT 73 70 def_bool y 74 71
-20
arch/h8300/include/asm/a.out.h
··· 1 - #ifndef __H8300_A_OUT_H__ 2 - #define __H8300_A_OUT_H__ 3 - 4 - struct exec 5 - { 6 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 7 - unsigned a_text; /* length of text, in bytes */ 8 - unsigned a_data; /* length of data, in bytes */ 9 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 10 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 11 - unsigned a_entry; /* start address */ 12 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 13 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 14 - }; 15 - 16 - #define N_TRSIZE(a) ((a).a_trsize) 17 - #define N_DRSIZE(a) ((a).a_drsize) 18 - #define N_SYMSIZE(a) ((a).a_syms) 19 - 20 - #endif /* __H8300_A_OUT_H__ */
-1
arch/h8300/kernel/process.c
··· 34 34 #include <linux/ptrace.h> 35 35 #include <linux/slab.h> 36 36 #include <linux/user.h> 37 - #include <linux/a.out.h> 38 37 #include <linux/interrupt.h> 39 38 #include <linux/reboot.h> 40 39 #include <linux/fs.h>
-32
arch/ia64/include/asm/a.out.h
··· 1 - #ifndef _ASM_IA64_A_OUT_H 2 - #define _ASM_IA64_A_OUT_H 3 - 4 - /* 5 - * No a.out format has been (or should be) defined so this file is 6 - * just a dummy that allows us to get binfmt_elf compiled. It 7 - * probably would be better to clean up binfmt_elf.c so it does not 8 - * necessarily depend on there being a.out support. 9 - * 10 - * Modified 1998-2002 11 - * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co. 12 - */ 13 - 14 - #include <linux/types.h> 15 - 16 - struct exec { 17 - unsigned long a_info; 18 - unsigned long a_text; 19 - unsigned long a_data; 20 - unsigned long a_bss; 21 - unsigned long a_entry; 22 - }; 23 - 24 - #define N_TXTADDR(x) 0 25 - #define N_DATADDR(x) 0 26 - #define N_BSSADDR(x) 0 27 - #define N_DRSIZE(x) 0 28 - #define N_TRSIZE(x) 0 29 - #define N_SYMSIZE(x) 0 30 - #define N_TXTOFF(x) 0 31 - 32 - #endif /* _ASM_IA64_A_OUT_H */
+5 -47
arch/ia64/include/asm/statfs.h
··· 8 8 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co 9 9 */ 10 10 11 - #ifndef __KERNEL_STRICT_NAMES 12 - # include <linux/types.h> 13 - typedef __kernel_fsid_t fsid_t; 14 - #endif 15 - 16 11 /* 17 - * This is ugly --- we're already 64-bit, so just duplicate the definitions 12 + * We need compat_statfs64 to be packed, because the i386 ABI won't 13 + * add padding at the end to bring it to a multiple of 8 bytes, but 14 + * the IA64 ABI will. 18 15 */ 19 - struct statfs { 20 - long f_type; 21 - long f_bsize; 22 - long f_blocks; 23 - long f_bfree; 24 - long f_bavail; 25 - long f_files; 26 - long f_ffree; 27 - __kernel_fsid_t f_fsid; 28 - long f_namelen; 29 - long f_frsize; 30 - long f_spare[5]; 31 - }; 16 + #define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4))) 32 17 33 - 34 - struct statfs64 { 35 - long f_type; 36 - long f_bsize; 37 - long f_blocks; 38 - long f_bfree; 39 - long f_bavail; 40 - long f_files; 41 - long f_ffree; 42 - __kernel_fsid_t f_fsid; 43 - long f_namelen; 44 - long f_frsize; 45 - long f_spare[5]; 46 - }; 47 - 48 - struct compat_statfs64 { 49 - __u32 f_type; 50 - __u32 f_bsize; 51 - __u64 f_blocks; 52 - __u64 f_bfree; 53 - __u64 f_bavail; 54 - __u64 f_files; 55 - __u64 f_ffree; 56 - __kernel_fsid_t f_fsid; 57 - __u32 f_namelen; 58 - __u32 f_frsize; 59 - __u32 f_spare[5]; 60 - } __attribute__((packed)); 18 + #include <asm-generic/statfs.h> 61 19 62 20 #endif /* _ASM_IA64_STATFS_H */
-1
arch/ia64/mm/init.c
··· 21 21 #include <linux/bitops.h> 22 22 #include <linux/kexec.h> 23 23 24 - #include <asm/a.out.h> 25 24 #include <asm/dma.h> 26 25 #include <asm/ia32.h> 27 26 #include <asm/io.h>
-3
arch/m32r/Kconfig
··· 36 36 config NO_DMA 37 37 def_bool y 38 38 39 - config ARCH_SUPPORTS_AOUT 40 - def_bool y 41 - 42 39 config HZ 43 40 int 44 41 default 100
+1 -3
arch/m68k/Kconfig
··· 5 5 config M68K 6 6 bool 7 7 default y 8 + select HAVE_AOUT 8 9 select HAVE_IDE 9 10 10 11 config MMU ··· 53 52 54 53 config NO_DMA 55 54 def_bool SUN3 56 - 57 - config ARCH_SUPPORTS_AOUT 58 - def_bool y 59 55 60 56 config HZ 61 57 int
-3
arch/m68knommu/Kconfig
··· 73 73 config NO_IOPORT 74 74 def_bool y 75 75 76 - config ARCH_SUPPORTS_AOUT 77 - def_bool y 78 - 79 76 source "init/Kconfig" 80 77 81 78 menu "Processor type and features"
-1
arch/m68knommu/include/asm/a.out.h
··· 1 - #include <asm-m68k/a.out.h>
-1
arch/m68knommu/kernel/process.c
··· 25 25 #include <linux/ptrace.h> 26 26 #include <linux/slab.h> 27 27 #include <linux/user.h> 28 - #include <linux/a.out.h> 29 28 #include <linux/interrupt.h> 30 29 #include <linux/reboot.h> 31 30 #include <linux/fs.h>
-1
arch/m68knommu/kernel/traps.c
··· 22 22 #include <linux/mm.h> 23 23 #include <linux/module.h> 24 24 #include <linux/types.h> 25 - #include <linux/a.out.h> 26 25 #include <linux/user.h> 27 26 #include <linux/string.h> 28 27 #include <linux/linkage.h>
-35
arch/mips/include/asm/a.out.h
··· 1 - /* 2 - * This file is subject to the terms and conditions of the GNU General Public 3 - * License. See the file "COPYING" in the main directory of this archive 4 - * for more details. 5 - * 6 - * Copyright (C) 1994 - 1999, 2003 by Ralf Baechle 7 - */ 8 - #ifndef _ASM_A_OUT_H 9 - #define _ASM_A_OUT_H 10 - 11 - #ifdef __KERNEL__ 12 - 13 - 14 - #endif 15 - 16 - struct exec 17 - { 18 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 19 - unsigned a_text; /* length of text, in bytes */ 20 - unsigned a_data; /* length of data, in bytes */ 21 - unsigned a_bss; /* length of uninitialized data area for 22 - file, in bytes */ 23 - unsigned a_syms; /* length of symbol table data in file, 24 - in bytes */ 25 - unsigned a_entry; /* start address */ 26 - unsigned a_trsize; /* length of relocation info for text, in 27 - bytes */ 28 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 29 - }; 30 - 31 - #define N_TRSIZE(a) ((a).a_trsize) 32 - #define N_DRSIZE(a) ((a).a_drsize) 33 - #define N_SYMSIZE(a) ((a).a_syms) 34 - 35 - #endif /* _ASM_A_OUT_H */
-1
arch/mips/kernel/process.c
··· 22 22 #include <linux/personality.h> 23 23 #include <linux/sys.h> 24 24 #include <linux/user.h> 25 - #include <linux/a.out.h> 26 25 #include <linux/init.h> 27 26 #include <linux/completion.h> 28 27 #include <linux/kallsyms.h>
-1
arch/mips/kernel/syscall.c
··· 7 7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc. 8 8 * Copyright (C) 2001 MIPS Technologies, Inc. 9 9 */ 10 - #include <linux/a.out.h> 11 10 #include <linux/capability.h> 12 11 #include <linux/errno.h> 13 12 #include <linux/linkage.h>
-3
arch/mn10300/Kconfig
··· 53 53 config ARCH_HAS_ILOG2_U32 54 54 def_bool y 55 55 56 - config ARCH_SUPPORTS_AOUT 57 - def_bool n 58 - 59 56 # Use the generic interrupt handling code in kernel/irq/ 60 57 config GENERIC_HARDIRQS 61 58 def_bool y
-3
arch/parisc/Kconfig
··· 76 76 bool 77 77 default y 78 78 79 - config ARCH_SUPPORTS_AOUT 80 - def_bool y 81 - 82 79 # unless you want to implement ACPI on PA-RISC ... ;-) 83 80 config PM 84 81 bool
-20
arch/powerpc/include/asm/a.out.h
··· 1 - #ifndef _ASM_POWERPC_A_OUT_H 2 - #define _ASM_POWERPC_A_OUT_H 3 - 4 - struct exec 5 - { 6 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 7 - unsigned a_text; /* length of text, in bytes */ 8 - unsigned a_data; /* length of data, in bytes */ 9 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 10 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 11 - unsigned a_entry; /* start address */ 12 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 13 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 14 - }; 15 - 16 - #define N_TRSIZE(a) ((a).a_trsize) 17 - #define N_DRSIZE(a) ((a).a_drsize) 18 - #define N_SYMSIZE(a) ((a).a_syms) 19 - 20 - #endif /* _ASM_POWERPC_A_OUT_H */
-54
arch/powerpc/include/asm/statfs.h
··· 1 1 #ifndef _ASM_POWERPC_STATFS_H 2 2 #define _ASM_POWERPC_STATFS_H 3 3 4 - /* For ppc32 we just use the generic definitions, not so simple on ppc64 */ 5 - 6 - #ifndef __powerpc64__ 7 4 #include <asm-generic/statfs.h> 8 - #else 9 5 10 - #ifndef __KERNEL_STRICT_NAMES 11 - #include <linux/types.h> 12 - typedef __kernel_fsid_t fsid_t; 13 - #endif 14 - 15 - /* 16 - * We're already 64-bit, so duplicate the definition 17 - */ 18 - struct statfs { 19 - long f_type; 20 - long f_bsize; 21 - long f_blocks; 22 - long f_bfree; 23 - long f_bavail; 24 - long f_files; 25 - long f_ffree; 26 - __kernel_fsid_t f_fsid; 27 - long f_namelen; 28 - long f_frsize; 29 - long f_spare[5]; 30 - }; 31 - 32 - struct statfs64 { 33 - long f_type; 34 - long f_bsize; 35 - long f_blocks; 36 - long f_bfree; 37 - long f_bavail; 38 - long f_files; 39 - long f_ffree; 40 - __kernel_fsid_t f_fsid; 41 - long f_namelen; 42 - long f_frsize; 43 - long f_spare[5]; 44 - }; 45 - 46 - struct compat_statfs64 { 47 - __u32 f_type; 48 - __u32 f_bsize; 49 - __u64 f_blocks; 50 - __u64 f_bfree; 51 - __u64 f_bavail; 52 - __u64 f_files; 53 - __u64 f_ffree; 54 - __kernel_fsid_t f_fsid; 55 - __u32 f_namelen; 56 - __u32 f_frsize; 57 - __u32 f_spare[5]; 58 - }; 59 - #endif /* ! __powerpc64__ */ 60 6 #endif
-1
arch/powerpc/kernel/softemu8xx.c
··· 23 23 #include <linux/ptrace.h> 24 24 #include <linux/slab.h> 25 25 #include <linux/user.h> 26 - #include <linux/a.out.h> 27 26 #include <linux/interrupt.h> 28 27 29 28 #include <asm/pgtable.h>
-1
arch/powerpc/kernel/traps.c
··· 23 23 #include <linux/ptrace.h> 24 24 #include <linux/slab.h> 25 25 #include <linux/user.h> 26 - #include <linux/a.out.h> 27 26 #include <linux/interrupt.h> 28 27 #include <linux/init.h> 29 28 #include <linux/module.h>
-1
arch/powerpc/platforms/chrp/setup.c
··· 17 17 #include <linux/ptrace.h> 18 18 #include <linux/slab.h> 19 19 #include <linux/user.h> 20 - #include <linux/a.out.h> 21 20 #include <linux/tty.h> 22 21 #include <linux/major.h> 23 22 #include <linux/interrupt.h>
-1
arch/powerpc/platforms/maple/setup.c
··· 23 23 #include <linux/ptrace.h> 24 24 #include <linux/slab.h> 25 25 #include <linux/user.h> 26 - #include <linux/a.out.h> 27 26 #include <linux/tty.h> 28 27 #include <linux/string.h> 29 28 #include <linux/delay.h>
-1
arch/powerpc/platforms/powermac/setup.c
··· 33 33 #include <linux/ptrace.h> 34 34 #include <linux/slab.h> 35 35 #include <linux/user.h> 36 - #include <linux/a.out.h> 37 36 #include <linux/tty.h> 38 37 #include <linux/string.h> 39 38 #include <linux/delay.h>
-1
arch/powerpc/platforms/pseries/setup.c
··· 25 25 #include <linux/unistd.h> 26 26 #include <linux/slab.h> 27 27 #include <linux/user.h> 28 - #include <linux/a.out.h> 29 28 #include <linux/tty.h> 30 29 #include <linux/major.h> 31 30 #include <linux/interrupt.h>
+4 -7
arch/s390/include/asm/statfs.h
··· 12 12 #ifndef __s390x__ 13 13 #include <asm-generic/statfs.h> 14 14 #else 15 + /* 16 + * We can't use <asm-generic/statfs.h> because in 64-bit mode 17 + * we mix ints of different sizes in our struct statfs. 18 + */ 15 19 16 20 #ifndef __KERNEL_STRICT_NAMES 17 - 18 21 #include <linux/types.h> 19 - 20 22 typedef __kernel_fsid_t fsid_t; 21 - 22 23 #endif 23 24 24 - /* 25 - * This is ugly -- we're already 64-bit clean, so just duplicate the 26 - * definitions. 27 - */ 28 25 struct statfs { 29 26 int f_type; 30 27 int f_bsize;
-2
arch/sparc/include/asm/Kbuild
··· 15 15 header-y += signal_64.h 16 16 header-y += stat_32.h 17 17 header-y += stat_64.h 18 - header-y += statfs_32.h 19 - header-y += statfs_64.h 20 18 header-y += unistd_32.h 21 19 header-y += unistd_64.h 22 20
+3 -5
arch/sparc/include/asm/statfs.h
··· 1 1 #ifndef ___ASM_SPARC_STATFS_H 2 2 #define ___ASM_SPARC_STATFS_H 3 - #if defined(__sparc__) && defined(__arch64__) 4 - #include <asm/statfs_64.h> 5 - #else 6 - #include <asm/statfs_32.h> 7 - #endif 3 + 4 + #include <asm-generic/statfs.h> 5 + 8 6 #endif
-6
arch/sparc/include/asm/statfs_32.h
··· 1 - #ifndef _SPARC_STATFS_H 2 - #define _SPARC_STATFS_H 3 - 4 - #include <asm-generic/statfs.h> 5 - 6 - #endif
-54
arch/sparc/include/asm/statfs_64.h
··· 1 - #ifndef _SPARC64_STATFS_H 2 - #define _SPARC64_STATFS_H 3 - 4 - #ifndef __KERNEL_STRICT_NAMES 5 - 6 - #include <linux/types.h> 7 - 8 - typedef __kernel_fsid_t fsid_t; 9 - 10 - #endif 11 - 12 - struct statfs { 13 - long f_type; 14 - long f_bsize; 15 - long f_blocks; 16 - long f_bfree; 17 - long f_bavail; 18 - long f_files; 19 - long f_ffree; 20 - __kernel_fsid_t f_fsid; 21 - long f_namelen; 22 - long f_frsize; 23 - long f_spare[5]; 24 - }; 25 - 26 - struct statfs64 { 27 - long f_type; 28 - long f_bsize; 29 - long f_blocks; 30 - long f_bfree; 31 - long f_bavail; 32 - long f_files; 33 - long f_ffree; 34 - __kernel_fsid_t f_fsid; 35 - long f_namelen; 36 - long f_frsize; 37 - long f_spare[5]; 38 - }; 39 - 40 - struct compat_statfs64 { 41 - __u32 f_type; 42 - __u32 f_bsize; 43 - __u64 f_blocks; 44 - __u64 f_bfree; 45 - __u64 f_bavail; 46 - __u64 f_files; 47 - __u64 f_ffree; 48 - __kernel_fsid_t f_fsid; 49 - __u32 f_namelen; 50 - __u32 f_frsize; 51 - __u32 f_spare[5]; 52 - }; 53 - 54 - #endif
+3 -5
arch/um/Kconfig.i386
··· 9 9 default y 10 10 11 11 config X86_32 12 - bool 13 - default y 12 + bool 13 + default y 14 + select HAVE_AOUT 14 15 15 16 config RWSEM_XCHGADD_ALGORITHM 16 17 def_bool y ··· 43 42 config GENERIC_HWEIGHT 44 43 bool 45 44 default y 46 - 47 - config ARCH_SUPPORTS_AOUT 48 - def_bool y
-3
arch/um/Kconfig.x86_64
··· 37 37 config GENERIC_HWEIGHT 38 38 bool 39 39 default y 40 - 41 - config ARCH_SUPPORTS_AOUT 42 - def_bool y
+2 -4
arch/x86/Kconfig
··· 18 18 ### Arch settings 19 19 config X86 20 20 def_bool y 21 + select HAVE_AOUT if X86_32 21 22 select HAVE_UNSTABLE_SCHED_CLOCK 22 23 select HAVE_IDE 23 24 select HAVE_OPROFILE ··· 152 151 config AUDIT_ARCH 153 152 bool 154 153 default X86_64 155 - 156 - config ARCH_SUPPORTS_AOUT 157 - def_bool y 158 154 159 155 config ARCH_SUPPORTS_OPTIMIZED_INLINING 160 156 def_bool y ··· 1883 1885 1884 1886 config IA32_AOUT 1885 1887 tristate "IA32 a.out support" 1886 - depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT 1888 + depends on IA32_EMULATION 1887 1889 help 1888 1890 Support old a.out binaries in the 32bit emulation. 1889 1891
+3 -10
drivers/media/video/cafe_ccic.c
··· 2092 2092 const struct pci_device_id *id) 2093 2093 { 2094 2094 int ret; 2095 - u16 classword; 2096 2095 struct cafe_camera *cam; 2097 - /* 2098 - * Make sure we have a camera here - we'll get calls for 2099 - * the other cafe devices as well. 2100 - */ 2101 - pci_read_config_word(pdev, PCI_CLASS_DEVICE, &classword); 2102 - if (classword != PCI_CLASS_MULTIMEDIA_VIDEO) 2103 - return -ENODEV; 2096 + 2104 2097 /* 2105 2098 * Start putting together one of our big camera structures. 2106 2099 */ ··· 2281 2288 2282 2289 2283 2290 static struct pci_device_id cafe_ids[] = { 2284 - { PCI_DEVICE(0x11ab, 0x4100) }, /* Eventual real ID */ 2285 - { PCI_DEVICE(0x11ab, 0x4102) }, /* Really eventual real ID */ 2291 + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 2292 + PCI_DEVICE_ID_MARVELL_88ALP01_CCIC) }, 2286 2293 { 0, } 2287 2294 }; 2288 2295
+1 -1
drivers/mmc/host/sdhci-pci.c
··· 327 327 328 328 { 329 329 .vendor = PCI_VENDOR_ID_MARVELL, 330 - .device = PCI_DEVICE_ID_MARVELL_CAFE_SD, 330 + .device = PCI_DEVICE_ID_MARVELL_88ALP01_SD, 331 331 .subvendor = PCI_ANY_ID, 332 332 .subdevice = PCI_ANY_ID, 333 333 .driver_data = (kernel_ulong_t)&sdhci_cafe,
+5 -1
drivers/mtd/nand/cafe_nand.c
··· 1 1 /* 2 2 * Driver for One Laptop Per Child ‘CAFÉ’ controller, aka Marvell 88ALP01 3 3 * 4 + * The data sheet for this device can be found at: 5 + * http://www.marvell.com/products/pcconn/88ALP01.jsp 6 + * 4 7 * Copyright © 2006 Red Hat, Inc. 5 8 * Copyright © 2006 David Woodhouse <dwmw2@infradead.org> 6 9 */ ··· 845 842 } 846 843 847 844 static struct pci_device_id cafe_nand_tbl[] = { 848 - { 0x11ab, 0x4100, PCI_ANY_ID, PCI_ANY_ID }, 845 + { PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_88ALP01_NAND, 846 + PCI_ANY_ID, PCI_ANY_ID }, 849 847 { } 850 848 }; 851 849
+1 -3
drivers/video/backlight/mbp_nvidia_bl.c
··· 111 111 MODULE_AUTHOR("Matthew Garrett <mjg@redhat.com>"); 112 112 MODULE_DESCRIPTION("Nvidia-based Macbook Pro Backlight Driver"); 113 113 MODULE_LICENSE("GPL"); 114 - MODULE_ALIAS("svnAppleInc.:pnMacBookPro3,1"); 115 - MODULE_ALIAS("svnAppleInc.:pnMacBookPro3,2"); 116 - MODULE_ALIAS("svnAppleInc.:pnMacBookPro4,1"); 114 + MODULE_DEVICE_TABLE(dmi, mbp_device_table);
+4 -2
fs/Kconfig.binfmt
··· 59 59 help 60 60 Support FLAT shared libraries 61 61 62 + config HAVE_AOUT 63 + def_bool n 64 + 62 65 config BINFMT_AOUT 63 66 tristate "Kernel support for a.out and ECOFF binaries" 64 - depends on ARCH_SUPPORTS_AOUT && \ 65 - (X86_32 || ALPHA || ARM || M68K) 67 + depends on HAVE_AOUT 66 68 ---help--- 67 69 A.out (Assembler.OUTput) is a set of formats for libraries and 68 70 executables used in the earliest versions of UNIX. Linux used
-2
fs/efs/super.c
··· 341 341 sb->inode_blocks * 342 342 (EFS_BLOCKSIZE / sizeof(struct efs_dinode)); 343 343 buf->f_ffree = sb->inode_free; /* free inodes */ 344 - buf->f_fsid.val[0] = (sb->fs_magic >> 16) & 0xffff; /* fs ID */ 345 - buf->f_fsid.val[1] = sb->fs_magic & 0xffff; /* fs ID */ 346 344 buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */ 347 345 348 346 return 0;
-26
include/asm-cris/a.out.h
··· 1 - #ifndef __CRIS_A_OUT_H__ 2 - #define __CRIS_A_OUT_H__ 3 - 4 - /* we don't support a.out binaries on Linux/CRIS anyway, so this is 5 - * not really used but still needed because binfmt_elf.c for some reason 6 - * wants to know about a.out even if there is no interpreter available... 7 - */ 8 - 9 - struct exec 10 - { 11 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 12 - unsigned a_text; /* length of text, in bytes */ 13 - unsigned a_data; /* length of data, in bytes */ 14 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 15 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 16 - unsigned a_entry; /* start address */ 17 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 18 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 19 - }; 20 - 21 - 22 - #define N_TRSIZE(a) ((a).a_trsize) 23 - #define N_DRSIZE(a) ((a).a_drsize) 24 - #define N_SYMSIZE(a) ((a).a_syms) 25 - 26 - #endif
+48 -17
include/asm-generic/statfs.h
··· 6 6 typedef __kernel_fsid_t fsid_t; 7 7 #endif 8 8 9 + /* 10 + * Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'. 11 + * Yes, they differ in signedness as well as size. 12 + * Special cases can override it for themselves -- except for S390x, which 13 + * is just a little too special for us. And MIPS, which I'm not touching 14 + * with a 10' pole. 15 + */ 16 + #ifndef __statfs_word 17 + #if BITS_PER_LONG == 64 18 + #define __statfs_word long 19 + #else 20 + #define __statfs_word __u32 21 + #endif 22 + #endif 23 + 9 24 struct statfs { 10 - __u32 f_type; 11 - __u32 f_bsize; 12 - __u32 f_blocks; 13 - __u32 f_bfree; 14 - __u32 f_bavail; 15 - __u32 f_files; 16 - __u32 f_ffree; 25 + __statfs_word f_type; 26 + __statfs_word f_bsize; 27 + __statfs_word f_blocks; 28 + __statfs_word f_bfree; 29 + __statfs_word f_bavail; 30 + __statfs_word f_files; 31 + __statfs_word f_ffree; 17 32 __kernel_fsid_t f_fsid; 18 - __u32 f_namelen; 19 - __u32 f_frsize; 20 - __u32 f_spare[5]; 33 + __statfs_word f_namelen; 34 + __statfs_word f_frsize; 35 + __statfs_word f_spare[5]; 21 36 }; 22 37 38 + /* 39 + * ARM needs to avoid the 32-bit padding at the end, for consistency 40 + * between EABI and OABI 41 + */ 42 + #ifndef ARCH_PACK_STATFS64 43 + #define ARCH_PACK_STATFS64 44 + #endif 45 + 23 46 struct statfs64 { 24 - __u32 f_type; 25 - __u32 f_bsize; 47 + __statfs_word f_type; 48 + __statfs_word f_bsize; 26 49 __u64 f_blocks; 27 50 __u64 f_bfree; 28 51 __u64 f_bavail; 29 52 __u64 f_files; 30 53 __u64 f_ffree; 31 54 __kernel_fsid_t f_fsid; 32 - __u32 f_namelen; 33 - __u32 f_frsize; 34 - __u32 f_spare[5]; 35 - }; 55 + __statfs_word f_namelen; 56 + __statfs_word f_frsize; 57 + __statfs_word f_spare[5]; 58 + } ARCH_PACK_STATFS64; 59 + 60 + /* 61 + * IA64 and x86_64 need to avoid the 32-bit padding at the end, 62 + * to be compatible with the i386 ABI 63 + */ 64 + #ifndef ARCH_PACK_COMPAT_STATFS64 65 + #define ARCH_PACK_COMPAT_STATFS64 66 + #endif 36 67 37 68 struct compat_statfs64 { 38 69 __u32 f_type; ··· 77 46 __u32 f_namelen; 78 47 __u32 f_frsize; 79 48 __u32 f_spare[5]; 80 - }; 49 + } ARCH_PACK_COMPAT_STATFS64; 81 50 82 51 #endif
-20
include/asm-m32r/a.out.h
··· 1 - #ifndef _ASM_M32R_A_OUT_H 2 - #define _ASM_M32R_A_OUT_H 3 - 4 - struct exec 5 - { 6 - unsigned long a_info; /* Use macros N_MAGIC, etc for access */ 7 - unsigned a_text; /* length of text, in bytes */ 8 - unsigned a_data; /* length of data, in bytes */ 9 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 10 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 11 - unsigned a_entry; /* start address */ 12 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 13 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 14 - }; 15 - 16 - #define N_TRSIZE(a) ((a).a_trsize) 17 - #define N_DRSIZE(a) ((a).a_drsize) 18 - #define N_SYMSIZE(a) ((a).a_syms) 19 - 20 - #endif /* _ASM_M32R_A_OUT_H */
-20
include/asm-parisc/a.out.h
··· 1 - #ifndef __PARISC_A_OUT_H__ 2 - #define __PARISC_A_OUT_H__ 3 - 4 - struct exec 5 - { 6 - unsigned int a_info; /* Use macros N_MAGIC, etc for access */ 7 - unsigned a_text; /* length of text, in bytes */ 8 - unsigned a_data; /* length of data, in bytes */ 9 - unsigned a_bss; /* length of uninitialized data area for file, in bytes */ 10 - unsigned a_syms; /* length of symbol table data in file, in bytes */ 11 - unsigned a_entry; /* start address */ 12 - unsigned a_trsize; /* length of relocation info for text, in bytes */ 13 - unsigned a_drsize; /* length of relocation info for data, in bytes */ 14 - }; 15 - 16 - #define N_TRSIZE(a) ((a).a_trsize) 17 - #define N_DRSIZE(a) ((a).a_drsize) 18 - #define N_SYMSIZE(a) ((a).a_syms) 19 - 20 - #endif /* __A_OUT_GNU_H__ */
+2 -53
include/asm-parisc/statfs.h
··· 1 1 #ifndef _PARISC_STATFS_H 2 2 #define _PARISC_STATFS_H 3 3 4 - #ifndef __KERNEL_STRICT_NAMES 5 - 6 - #include <linux/types.h> 7 - 8 - typedef __kernel_fsid_t fsid_t; 9 - 10 - #endif 11 - 12 - /* 13 - * It appears that PARISC could be 64 _or_ 32 bit. 14 - * 64-bit fields must be explicitly 64-bit in statfs64. 15 - */ 16 - struct statfs { 17 - long f_type; 18 - long f_bsize; 19 - long f_blocks; 20 - long f_bfree; 21 - long f_bavail; 22 - long f_files; 23 - long f_ffree; 24 - __kernel_fsid_t f_fsid; 25 - long f_namelen; 26 - long f_frsize; 27 - long f_spare[5]; 28 - }; 29 - 30 - struct statfs64 { 31 - long f_type; 32 - long f_bsize; 33 - __u64 f_blocks; 34 - __u64 f_bfree; 35 - __u64 f_bavail; 36 - __u64 f_files; 37 - __u64 f_ffree; 38 - __kernel_fsid_t f_fsid; 39 - long f_namelen; 40 - long f_frsize; 41 - long f_spare[5]; 42 - }; 43 - 44 - struct compat_statfs64 { 45 - __u32 f_type; 46 - __u32 f_bsize; 47 - __u64 f_blocks; 48 - __u64 f_bfree; 49 - __u64 f_bavail; 50 - __u64 f_files; 51 - __u64 f_ffree; 52 - __kernel_fsid_t f_fsid; 53 - __u32 f_namelen; 54 - __u32 f_frsize; 55 - __u32 f_spare[5]; 56 - }; 4 + #define __statfs_word long 5 + #include <asm-generic/statfs.h> 57 6 58 7 #endif
+5 -56
include/asm-x86/statfs.h
··· 1 1 #ifndef ASM_X86__STATFS_H 2 2 #define ASM_X86__STATFS_H 3 3 4 - #ifdef __i386__ 5 - #include <asm-generic/statfs.h> 6 - #else 7 - 8 - #ifndef __KERNEL_STRICT_NAMES 9 - 10 - #include <linux/types.h> 11 - 12 - typedef __kernel_fsid_t fsid_t; 13 - 14 - #endif 15 - 16 4 /* 17 - * This is ugly -- we're already 64-bit clean, so just duplicate the 18 - * definitions. 5 + * We need compat_statfs64 to be packed, because the i386 ABI won't 6 + * add padding at the end to bring it to a multiple of 8 bytes, but 7 + * the x86_64 ABI will. 19 8 */ 20 - struct statfs { 21 - long f_type; 22 - long f_bsize; 23 - long f_blocks; 24 - long f_bfree; 25 - long f_bavail; 26 - long f_files; 27 - long f_ffree; 28 - __kernel_fsid_t f_fsid; 29 - long f_namelen; 30 - long f_frsize; 31 - long f_spare[5]; 32 - }; 9 + #define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4))) 33 10 34 - struct statfs64 { 35 - long f_type; 36 - long f_bsize; 37 - long f_blocks; 38 - long f_bfree; 39 - long f_bavail; 40 - long f_files; 41 - long f_ffree; 42 - __kernel_fsid_t f_fsid; 43 - long f_namelen; 44 - long f_frsize; 45 - long f_spare[5]; 46 - }; 47 - 48 - struct compat_statfs64 { 49 - __u32 f_type; 50 - __u32 f_bsize; 51 - __u64 f_blocks; 52 - __u64 f_bfree; 53 - __u64 f_bavail; 54 - __u64 f_files; 55 - __u64 f_ffree; 56 - __kernel_fsid_t f_fsid; 57 - __u32 f_namelen; 58 - __u32 f_frsize; 59 - __u32 f_spare[5]; 60 - } __attribute__((packed)); 61 - 62 - #endif /* !__i386__ */ 11 + #include <asm-generic/statfs.h> 63 12 #endif /* ASM_X86__STATFS_H */
-29
include/asm-xtensa/a.out.h
··· 1 - /* 2 - * include/asm-xtensa/a.out.h 3 - * 4 - * Dummy a.out file. Xtensa does not support the a.out format, but the kernel 5 - * seems to depend on it. 6 - * 7 - * This file is subject to the terms and conditions of the GNU General Public 8 - * License. See the file "COPYING" in the main directory of this archive 9 - * for more details. 10 - * 11 - * Copyright (C) 2001 - 2005 Tensilica Inc. 12 - */ 13 - 14 - #ifndef _XTENSA_A_OUT_H 15 - #define _XTENSA_A_OUT_H 16 - 17 - struct exec 18 - { 19 - unsigned long a_info; 20 - unsigned a_text; 21 - unsigned a_data; 22 - unsigned a_bss; 23 - unsigned a_syms; 24 - unsigned a_entry; 25 - unsigned a_trsize; 26 - unsigned a_drsize; 27 - }; 28 - 29 - #endif /* _XTENSA_A_OUT_H */
+2 -39
include/linux/dmi.h
··· 2 2 #define __DMI_H__ 3 3 4 4 #include <linux/list.h> 5 + #include <linux/mod_devicetable.h> 5 6 6 - enum dmi_field { 7 - DMI_NONE, 8 - DMI_BIOS_VENDOR, 9 - DMI_BIOS_VERSION, 10 - DMI_BIOS_DATE, 11 - DMI_SYS_VENDOR, 12 - DMI_PRODUCT_NAME, 13 - DMI_PRODUCT_VERSION, 14 - DMI_PRODUCT_SERIAL, 15 - DMI_PRODUCT_UUID, 16 - DMI_BOARD_VENDOR, 17 - DMI_BOARD_NAME, 18 - DMI_BOARD_VERSION, 19 - DMI_BOARD_SERIAL, 20 - DMI_BOARD_ASSET_TAG, 21 - DMI_CHASSIS_VENDOR, 22 - DMI_CHASSIS_TYPE, 23 - DMI_CHASSIS_VERSION, 24 - DMI_CHASSIS_SERIAL, 25 - DMI_CHASSIS_ASSET_TAG, 26 - DMI_STRING_MAX, 27 - }; 7 + /* enum dmi_field is in mod_devicetable.h */ 28 8 29 9 enum dmi_device_type { 30 10 DMI_DEV_TYPE_ANY = 0, ··· 27 47 u8 length; 28 48 u16 handle; 29 49 }; 30 - 31 - /* 32 - * DMI callbacks for problem boards 33 - */ 34 - struct dmi_strmatch { 35 - u8 slot; 36 - char *substr; 37 - }; 38 - 39 - struct dmi_system_id { 40 - int (*callback)(const struct dmi_system_id *); 41 - const char *ident; 42 - struct dmi_strmatch matches[4]; 43 - void *driver_data; 44 - }; 45 - 46 - #define DMI_MATCH(a, b) { a, b } 47 50 48 51 struct dmi_device { 49 52 struct list_head list;
+47
include/linux/mod_devicetable.h
··· 388 388 __attribute__((aligned(sizeof(kernel_ulong_t)))); 389 389 }; 390 390 391 + /* dmi */ 392 + enum dmi_field { 393 + DMI_NONE, 394 + DMI_BIOS_VENDOR, 395 + DMI_BIOS_VERSION, 396 + DMI_BIOS_DATE, 397 + DMI_SYS_VENDOR, 398 + DMI_PRODUCT_NAME, 399 + DMI_PRODUCT_VERSION, 400 + DMI_PRODUCT_SERIAL, 401 + DMI_PRODUCT_UUID, 402 + DMI_BOARD_VENDOR, 403 + DMI_BOARD_NAME, 404 + DMI_BOARD_VERSION, 405 + DMI_BOARD_SERIAL, 406 + DMI_BOARD_ASSET_TAG, 407 + DMI_CHASSIS_VENDOR, 408 + DMI_CHASSIS_TYPE, 409 + DMI_CHASSIS_VERSION, 410 + DMI_CHASSIS_SERIAL, 411 + DMI_CHASSIS_ASSET_TAG, 412 + DMI_STRING_MAX, 413 + }; 414 + 415 + struct dmi_strmatch { 416 + unsigned char slot; 417 + char substr[79]; 418 + }; 419 + 420 + #ifndef __KERNEL__ 421 + struct dmi_system_id { 422 + kernel_ulong_t callback; 423 + kernel_ulong_t ident; 424 + struct dmi_strmatch matches[4]; 425 + kernel_ulong_t driver_data 426 + __attribute__((aligned(sizeof(kernel_ulong_t)))); 427 + }; 428 + #else 429 + struct dmi_system_id { 430 + int (*callback)(const struct dmi_system_id *); 431 + const char *ident; 432 + struct dmi_strmatch matches[4]; 433 + void *driver_data; 434 + }; 435 + #endif 436 + 437 + #define DMI_MATCH(a, b) { a, b } 391 438 392 439 #endif /* LINUX_MOD_DEVICETABLE_H */
+3 -1
include/linux/pci_ids.h
··· 1533 1533 #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 1534 1534 #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 1535 1535 #define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 1536 - #define PCI_DEVICE_ID_MARVELL_CAFE_SD 0x4101 1536 + #define PCI_DEVICE_ID_MARVELL_88ALP01_NAND 0x4100 1537 + #define PCI_DEVICE_ID_MARVELL_88ALP01_SD 0x4101 1538 + #define PCI_DEVICE_ID_MARVELL_88ALP01_CCIC 0x4102 1537 1539 1538 1540 #define PCI_VENDOR_ID_V3 0x11b0 1539 1541 #define PCI_DEVICE_ID_V3_V960 0x0001
+57
scripts/mod/file2alias.c
··· 629 629 return 1; 630 630 } 631 631 632 + static const struct dmifield { 633 + const char *prefix; 634 + int field; 635 + } dmi_fields[] = { 636 + { "bvn", DMI_BIOS_VENDOR }, 637 + { "bvr", DMI_BIOS_VERSION }, 638 + { "bd", DMI_BIOS_DATE }, 639 + { "svn", DMI_SYS_VENDOR }, 640 + { "pn", DMI_PRODUCT_NAME }, 641 + { "pvr", DMI_PRODUCT_VERSION }, 642 + { "rvn", DMI_BOARD_VENDOR }, 643 + { "rn", DMI_BOARD_NAME }, 644 + { "rvr", DMI_BOARD_VERSION }, 645 + { "cvn", DMI_CHASSIS_VENDOR }, 646 + { "ct", DMI_CHASSIS_TYPE }, 647 + { "cvr", DMI_CHASSIS_VERSION }, 648 + { NULL, DMI_NONE } 649 + }; 650 + 651 + static void dmi_ascii_filter(char *d, const char *s) 652 + { 653 + /* Filter out characters we don't want to see in the modalias string */ 654 + for (; *s; s++) 655 + if (*s > ' ' && *s < 127 && *s != ':') 656 + *(d++) = *s; 657 + 658 + *d = 0; 659 + } 660 + 661 + 662 + static int do_dmi_entry(const char *filename, struct dmi_system_id *id, 663 + char *alias) 664 + { 665 + int i, j; 666 + 667 + sprintf(alias, "dmi*"); 668 + 669 + for (i = 0; i < ARRAY_SIZE(dmi_fields); i++) { 670 + for (j = 0; j < 4; j++) { 671 + if (id->matches[j].slot && 672 + id->matches[j].slot == dmi_fields[i].field) { 673 + sprintf(alias + strlen(alias), ":%s*", 674 + dmi_fields[i].prefix); 675 + dmi_ascii_filter(alias + strlen(alias), 676 + id->matches[j].substr); 677 + strcat(alias, "*"); 678 + } 679 + } 680 + } 681 + 682 + strcat(alias, ":"); 683 + return 1; 684 + } 632 685 /* Ignore any prefix, eg. some architectures prepend _ */ 633 686 static inline int sym_is(const char *symbol, const char *name) 634 687 { ··· 813 760 do_table(symval, sym->st_size, 814 761 sizeof(struct i2c_device_id), "i2c", 815 762 do_i2c_entry, mod); 763 + else if (sym_is(symname, "__mod_dmi_device_table")) 764 + do_table(symval, sym->st_size, 765 + sizeof(struct dmi_system_id), "dmi", 766 + do_dmi_entry, mod); 816 767 free(zeros); 817 768 } 818 769