diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-23 22:11:50 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-23 22:11:50 -0500 |
| commit | 3aacd625f20129f5a41ea3ff3b5353b0e4dabd01 (patch) | |
| tree | 7cf4ea65397f80098b30494df31cfc8f5fa26d63 /arch | |
| parent | 7e21774db5cc9cf8fe93a64a2f0c6cf47db8ab24 (diff) | |
| parent | 2a1d689c9ba42a6066540fb221b6ecbd6298b728 (diff) | |
Merge branch 'akpm' (incoming from Andrew)
Merge second patch-bomb from Andrew Morton:
- various misc bits
- the rest of MM
- add generic fixmap.h, use it
- backlight updates
- dynamic_debug updates
- printk() updates
- checkpatch updates
- binfmt_elf
- ramfs
- init/
- autofs4
- drivers/rtc
- nilfs
- hfsplus
- Documentation/
- coredump
- procfs
- fork
- exec
- kexec
- kdump
- partitions
- rapidio
- rbtree
- userns
- memstick
- w1
- decompressors
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (197 commits)
lib/decompress_unlz4.c: always set an error return code on failures
romfs: fix returm err while getting inode in fill_super
drivers/w1/masters/w1-gpio.c: add strong pullup emulation
drivers/memstick/host/rtsx_pci_ms.c: fix ms card data transfer bug
userns: relax the posix_acl_valid() checks
arch/sh/kernel/dwarf.c: use rbtree postorder iteration helper instead of solution using repeated rb_erase()
fs-ext3-use-rbtree-postorder-iteration-helper-instead-of-opencoding-fix
fs/ext3: use rbtree postorder iteration helper instead of opencoding
fs/jffs2: use rbtree postorder iteration helper instead of opencoding
fs/ext4: use rbtree postorder iteration helper instead of opencoding
fs/ubifs: use rbtree postorder iteration helper instead of opencoding
net/netfilter/ipset/ip_set_hash_netiface.c: use rbtree postorder iteration instead of opencoding
rbtree/test: test rbtree_postorder_for_each_entry_safe()
rbtree/test: move rb_node to the middle of the test struct
rapidio: add modular rapidio core build into powerpc and mips branches
partitions/efi: complete documentation of gpt kernel param purpose
kdump: add /sys/kernel/vmcoreinfo ABI documentation
kdump: fix exported size of vmcoreinfo note
kexec: add sysctl to disable kexec_load
fs/exec.c: call arch_pick_mmap_layout() only once
...
Diffstat (limited to 'arch')
29 files changed, 80 insertions, 418 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index d39dc9b95a2c..3ba48fe1c0a5 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
| @@ -539,13 +539,13 @@ config SMP | |||
| 539 | depends on ALPHA_SABLE || ALPHA_LYNX || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL | 539 | depends on ALPHA_SABLE || ALPHA_LYNX || ALPHA_RAWHIDE || ALPHA_DP264 || ALPHA_WILDFIRE || ALPHA_TITAN || ALPHA_GENERIC || ALPHA_SHARK || ALPHA_MARVEL |
| 540 | ---help--- | 540 | ---help--- |
| 541 | This enables support for systems with more than one CPU. If you have | 541 | This enables support for systems with more than one CPU. If you have |
| 542 | a system with only one CPU, like most personal computers, say N. If | 542 | a system with only one CPU, say N. If you have a system with more |
| 543 | you have a system with more than one CPU, say Y. | 543 | than one CPU, say Y. |
| 544 | 544 | ||
| 545 | If you say N here, the kernel will run on single and multiprocessor | 545 | If you say N here, the kernel will run on uni- and multiprocessor |
| 546 | machines, but will use only one CPU of a multiprocessor machine. If | 546 | machines, but will use only one CPU of a multiprocessor machine. If |
| 547 | you say Y here, the kernel will run on many, but not all, | 547 | you say Y here, the kernel will run on many, but not all, |
| 548 | singleprocessor machines. On a singleprocessor machine, the kernel | 548 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 549 | will run faster if you say N here. | 549 | will run faster if you say N here. |
| 550 | 550 | ||
| 551 | See also the SMP-HOWTO available at | 551 | See also the SMP-HOWTO available at |
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 9063ae6553cc..5438cabbc45d 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig | |||
| @@ -128,8 +128,8 @@ config SMP | |||
| 128 | default n | 128 | default n |
| 129 | help | 129 | help |
| 130 | This enables support for systems with more than one CPU. If you have | 130 | This enables support for systems with more than one CPU. If you have |
| 131 | a system with only one CPU, like most personal computers, say N. If | 131 | a system with only one CPU, say N. If you have a system with more |
| 132 | you have a system with more than one CPU, say Y. | 132 | than one CPU, say Y. |
| 133 | 133 | ||
| 134 | if SMP | 134 | if SMP |
| 135 | 135 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f9b0fd387c6f..dc6ef9a2c649 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -1470,14 +1470,14 @@ config SMP | |||
| 1470 | depends on MMU || ARM_MPU | 1470 | depends on MMU || ARM_MPU |
| 1471 | help | 1471 | help |
| 1472 | This enables support for systems with more than one CPU. If you have | 1472 | This enables support for systems with more than one CPU. If you have |
| 1473 | a system with only one CPU, like most personal computers, say N. If | 1473 | a system with only one CPU, say N. If you have a system with more |
| 1474 | you have a system with more than one CPU, say Y. | 1474 | than one CPU, say Y. |
| 1475 | 1475 | ||
| 1476 | If you say N here, the kernel will run on single and multiprocessor | 1476 | If you say N here, the kernel will run on uni- and multiprocessor |
| 1477 | machines, but will use only one CPU of a multiprocessor machine. If | 1477 | machines, but will use only one CPU of a multiprocessor machine. If |
| 1478 | you say Y here, the kernel will run on many, but not all, single | 1478 | you say Y here, the kernel will run on many, but not all, |
| 1479 | processor machines. On a single processor machine, the kernel will | 1479 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 1480 | run faster if you say N here. | 1480 | will run faster if you say N here. |
| 1481 | 1481 | ||
| 1482 | See also <file:Documentation/x86/i386/IO-APIC.txt>, | 1482 | See also <file:Documentation/x86/i386/IO-APIC.txt>, |
| 1483 | <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at | 1483 | <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at |
diff --git a/arch/cris/include/asm/io.h b/arch/cris/include/asm/io.h index 4353cf239a13..e59dba12ce94 100644 --- a/arch/cris/include/asm/io.h +++ b/arch/cris/include/asm/io.h | |||
| @@ -169,7 +169,11 @@ static inline void outsl(unsigned int port, const void *addr, | |||
| 169 | } | 169 | } |
| 170 | 170 | ||
| 171 | #define inb_p(port) inb(port) | 171 | #define inb_p(port) inb(port) |
| 172 | #define inw_p(port) inw(port) | ||
| 173 | #define inl_p(port) inl(port) | ||
| 172 | #define outb_p(val, port) outb((val), (port)) | 174 | #define outb_p(val, port) outb((val), (port)) |
| 175 | #define outw_p(val, port) outw((val), (port)) | ||
| 176 | #define outl_p(val, port) outl((val), (port)) | ||
| 173 | 177 | ||
| 174 | /* | 178 | /* |
| 175 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | 179 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem |
diff --git a/arch/hexagon/include/asm/fixmap.h b/arch/hexagon/include/asm/fixmap.h index b75b6bf4269c..1387f84b42b6 100644 --- a/arch/hexagon/include/asm/fixmap.h +++ b/arch/hexagon/include/asm/fixmap.h | |||
| @@ -26,45 +26,7 @@ | |||
| 26 | */ | 26 | */ |
| 27 | #include <asm/mem-layout.h> | 27 | #include <asm/mem-layout.h> |
| 28 | 28 | ||
| 29 | /* | 29 | #include <asm-generic/fixmap.h> |
| 30 | * Full fixmap support involves set_fixmap() functions, but | ||
| 31 | * these may not be needed if all we're after is an area for | ||
| 32 | * highmem kernel mappings. | ||
| 33 | */ | ||
| 34 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | ||
| 35 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 36 | |||
| 37 | extern void __this_fixmap_does_not_exist(void); | ||
| 38 | |||
| 39 | /** | ||
| 40 | * fix_to_virt -- "index to address" translation. | ||
| 41 | * | ||
| 42 | * If anyone tries to use the idx directly without translation, | ||
| 43 | * we catch the bug with a NULL-deference kernel oops. Illegal | ||
| 44 | * ranges of incoming indices are caught too. | ||
| 45 | */ | ||
| 46 | static inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 47 | { | ||
| 48 | /* | ||
| 49 | * This branch gets completely eliminated after inlining, | ||
| 50 | * except when someone tries to use fixaddr indices in an | ||
| 51 | * illegal way. (such as mixing up address types or using | ||
| 52 | * out-of-range indices). | ||
| 53 | * | ||
| 54 | * If it doesn't get removed, the linker will complain | ||
| 55 | * loudly with a reasonably clear error message.. | ||
| 56 | */ | ||
| 57 | if (idx >= __end_of_fixed_addresses) | ||
| 58 | __this_fixmap_does_not_exist(); | ||
| 59 | |||
| 60 | return __fix_to_virt(idx); | ||
| 61 | } | ||
| 62 | |||
| 63 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 64 | { | ||
| 65 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 66 | return __virt_to_fix(vaddr); | ||
| 67 | } | ||
| 68 | 30 | ||
| 69 | #define kmap_get_fixmap_pte(vaddr) \ | 31 | #define kmap_get_fixmap_pte(vaddr) \ |
| 70 | pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), \ | 32 | pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), \ |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index a8c3a11dc5ab..c063b054294e 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
| @@ -104,6 +104,7 @@ config HAVE_SETUP_PER_CPU_AREA | |||
| 104 | config DMI | 104 | config DMI |
| 105 | bool | 105 | bool |
| 106 | default y | 106 | default y |
| 107 | select DMI_SCAN_MACHINE_NON_EFI_FALLBACK | ||
| 107 | 108 | ||
| 108 | config EFI | 109 | config EFI |
| 109 | bool | 110 | bool |
diff --git a/arch/ia64/include/asm/dmi.h b/arch/ia64/include/asm/dmi.h index 185d3d18d0ec..f365a61f5c71 100644 --- a/arch/ia64/include/asm/dmi.h +++ b/arch/ia64/include/asm/dmi.h | |||
| @@ -5,8 +5,10 @@ | |||
| 5 | #include <asm/io.h> | 5 | #include <asm/io.h> |
| 6 | 6 | ||
| 7 | /* Use normal IO mappings for DMI */ | 7 | /* Use normal IO mappings for DMI */ |
| 8 | #define dmi_ioremap ioremap | 8 | #define dmi_early_remap ioremap |
| 9 | #define dmi_iounmap(x,l) iounmap(x) | 9 | #define dmi_early_unmap(x, l) iounmap(x) |
| 10 | #define dmi_alloc(l) kzalloc(l, GFP_ATOMIC) | 10 | #define dmi_remap ioremap |
| 11 | #define dmi_unmap iounmap | ||
| 12 | #define dmi_alloc(l) kzalloc(l, GFP_ATOMIC) | ||
| 11 | 13 | ||
| 12 | #endif | 14 | #endif |
diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h index 5a84b3a50741..efd1b927ccb7 100644 --- a/arch/ia64/include/asm/processor.h +++ b/arch/ia64/include/asm/processor.h | |||
| @@ -71,6 +71,7 @@ | |||
| 71 | #include <linux/compiler.h> | 71 | #include <linux/compiler.h> |
| 72 | #include <linux/threads.h> | 72 | #include <linux/threads.h> |
| 73 | #include <linux/types.h> | 73 | #include <linux/types.h> |
| 74 | #include <linux/bitops.h> | ||
| 74 | 75 | ||
| 75 | #include <asm/fpu.h> | 76 | #include <asm/fpu.h> |
| 76 | #include <asm/page.h> | 77 | #include <asm/page.h> |
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 09ef94a8a7c3..ca4504424dae 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig | |||
| @@ -277,13 +277,13 @@ config SMP | |||
| 277 | bool "Symmetric multi-processing support" | 277 | bool "Symmetric multi-processing support" |
| 278 | ---help--- | 278 | ---help--- |
| 279 | This enables support for systems with more than one CPU. If you have | 279 | This enables support for systems with more than one CPU. If you have |
| 280 | a system with only one CPU, like most personal computers, say N. If | 280 | a system with only one CPU, say N. If you have a system with more |
| 281 | you have a system with more than one CPU, say Y. | 281 | than one CPU, say Y. |
| 282 | 282 | ||
| 283 | If you say N here, the kernel will run on single and multiprocessor | 283 | If you say N here, the kernel will run on uni- and multiprocessor |
| 284 | machines, but will use only one CPU of a multiprocessor machine. If | 284 | machines, but will use only one CPU of a multiprocessor machine. If |
| 285 | you say Y here, the kernel will run on many, but not all, | 285 | you say Y here, the kernel will run on many, but not all, |
| 286 | singleprocessor machines. On a singleprocessor machine, the kernel | 286 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 287 | will run faster if you say N here. | 287 | will run faster if you say N here. |
| 288 | 288 | ||
| 289 | People using multiprocessor machines who say Y here should also say | 289 | People using multiprocessor machines who say Y here should also say |
diff --git a/arch/metag/include/asm/fixmap.h b/arch/metag/include/asm/fixmap.h index 33312751c92b..af621b041739 100644 --- a/arch/metag/include/asm/fixmap.h +++ b/arch/metag/include/asm/fixmap.h | |||
| @@ -51,37 +51,7 @@ enum fixed_addresses { | |||
| 51 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 51 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
| 52 | #define FIXADDR_START ((FIXADDR_TOP - FIXADDR_SIZE) & PMD_MASK) | 52 | #define FIXADDR_START ((FIXADDR_TOP - FIXADDR_SIZE) & PMD_MASK) |
| 53 | 53 | ||
| 54 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | 54 | #include <asm-generic/fixmap.h> |
| 55 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 56 | |||
| 57 | extern void __this_fixmap_does_not_exist(void); | ||
| 58 | /* | ||
| 59 | * 'index to address' translation. If anyone tries to use the idx | ||
| 60 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 61 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 62 | */ | ||
| 63 | static inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 64 | { | ||
| 65 | /* | ||
| 66 | * this branch gets completely eliminated after inlining, | ||
| 67 | * except when someone tries to use fixaddr indices in an | ||
| 68 | * illegal way. (such as mixing up address types or using | ||
| 69 | * out-of-range indices). | ||
| 70 | * | ||
| 71 | * If it doesn't get removed, the linker will complain | ||
| 72 | * loudly with a reasonably clear error message.. | ||
| 73 | */ | ||
| 74 | if (idx >= __end_of_fixed_addresses) | ||
| 75 | __this_fixmap_does_not_exist(); | ||
| 76 | |||
| 77 | return __fix_to_virt(idx); | ||
| 78 | } | ||
| 79 | |||
| 80 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 81 | { | ||
| 82 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 83 | return __virt_to_fix(vaddr); | ||
| 84 | } | ||
| 85 | 55 | ||
| 86 | #define kmap_get_fixmap_pte(vaddr) \ | 56 | #define kmap_get_fixmap_pte(vaddr) \ |
| 87 | pte_offset_kernel( \ | 57 | pte_offset_kernel( \ |
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index e23cccde9c27..8d581ab06c5d 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig | |||
| @@ -30,6 +30,7 @@ config MICROBLAZE | |||
| 30 | select MODULES_USE_ELF_RELA | 30 | select MODULES_USE_ELF_RELA |
| 31 | select CLONE_BACKWARDS3 | 31 | select CLONE_BACKWARDS3 |
| 32 | select CLKSRC_OF | 32 | select CLKSRC_OF |
| 33 | select BUILDTIME_EXTABLE_SORT | ||
| 33 | 34 | ||
| 34 | config SWAP | 35 | config SWAP |
| 35 | def_bool n | 36 | def_bool n |
diff --git a/arch/microblaze/include/asm/fixmap.h b/arch/microblaze/include/asm/fixmap.h index f2b312e10b10..06c0e2b1883f 100644 --- a/arch/microblaze/include/asm/fixmap.h +++ b/arch/microblaze/include/asm/fixmap.h | |||
| @@ -58,52 +58,12 @@ enum fixed_addresses { | |||
| 58 | extern void __set_fixmap(enum fixed_addresses idx, | 58 | extern void __set_fixmap(enum fixed_addresses idx, |
| 59 | phys_addr_t phys, pgprot_t flags); | 59 | phys_addr_t phys, pgprot_t flags); |
| 60 | 60 | ||
| 61 | #define set_fixmap(idx, phys) \ | ||
| 62 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
| 63 | /* | ||
| 64 | * Some hardware wants to get fixmapped without caching. | ||
| 65 | */ | ||
| 66 | #define set_fixmap_nocache(idx, phys) \ | ||
| 67 | __set_fixmap(idx, phys, PAGE_KERNEL_CI) | ||
| 68 | |||
| 69 | #define clear_fixmap(idx) \ | ||
| 70 | __set_fixmap(idx, 0, __pgprot(0)) | ||
| 71 | |||
| 72 | #define __FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 61 | #define __FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
| 73 | #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE) | 62 | #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE) |
| 74 | 63 | ||
| 75 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | 64 | #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_CI |
| 76 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 77 | |||
| 78 | extern void __this_fixmap_does_not_exist(void); | ||
| 79 | |||
| 80 | /* | ||
| 81 | * 'index to address' translation. If anyone tries to use the idx | ||
| 82 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 83 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 84 | */ | ||
| 85 | static __always_inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 86 | { | ||
| 87 | /* | ||
| 88 | * this branch gets completely eliminated after inlining, | ||
| 89 | * except when someone tries to use fixaddr indices in an | ||
| 90 | * illegal way. (such as mixing up address types or using | ||
| 91 | * out-of-range indices). | ||
| 92 | * | ||
| 93 | * If it doesn't get removed, the linker will complain | ||
| 94 | * loudly with a reasonably clear error message.. | ||
| 95 | */ | ||
| 96 | if (idx >= __end_of_fixed_addresses) | ||
| 97 | __this_fixmap_does_not_exist(); | ||
| 98 | |||
| 99 | return __fix_to_virt(idx); | ||
| 100 | } | ||
| 101 | 65 | ||
| 102 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | 66 | #include <asm-generic/fixmap.h> |
| 103 | { | ||
| 104 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 105 | return __virt_to_fix(vaddr); | ||
| 106 | } | ||
| 107 | 67 | ||
| 108 | #endif /* !__ASSEMBLY__ */ | 68 | #endif /* !__ASSEMBLY__ */ |
| 109 | #endif | 69 | #endif |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index c93d92beb3d6..52dac06ea6b4 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
| @@ -2129,13 +2129,13 @@ config SMP | |||
| 2129 | depends on SYS_SUPPORTS_SMP | 2129 | depends on SYS_SUPPORTS_SMP |
| 2130 | help | 2130 | help |
| 2131 | This enables support for systems with more than one CPU. If you have | 2131 | This enables support for systems with more than one CPU. If you have |
| 2132 | a system with only one CPU, like most personal computers, say N. If | 2132 | a system with only one CPU, say N. If you have a system with more |
| 2133 | you have a system with more than one CPU, say Y. | 2133 | than one CPU, say Y. |
| 2134 | 2134 | ||
| 2135 | If you say N here, the kernel will run on single and multiprocessor | 2135 | If you say N here, the kernel will run on uni- and multiprocessor |
| 2136 | machines, but will use only one CPU of a multiprocessor machine. If | 2136 | machines, but will use only one CPU of a multiprocessor machine. If |
| 2137 | you say Y here, the kernel will run on many, but not all, | 2137 | you say Y here, the kernel will run on many, but not all, |
| 2138 | singleprocessor machines. On a singleprocessor machine, the kernel | 2138 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 2139 | will run faster if you say N here. | 2139 | will run faster if you say N here. |
| 2140 | 2140 | ||
| 2141 | People using multiprocessor machines who say Y here should also say | 2141 | People using multiprocessor machines who say Y here should also say |
| @@ -2430,7 +2430,7 @@ source "drivers/pcmcia/Kconfig" | |||
| 2430 | source "drivers/pci/hotplug/Kconfig" | 2430 | source "drivers/pci/hotplug/Kconfig" |
| 2431 | 2431 | ||
| 2432 | config RAPIDIO | 2432 | config RAPIDIO |
| 2433 | bool "RapidIO support" | 2433 | tristate "RapidIO support" |
| 2434 | depends on PCI | 2434 | depends on PCI |
| 2435 | default n | 2435 | default n |
| 2436 | help | 2436 | help |
diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h index dfaaf493e9d4..8c012af2f451 100644 --- a/arch/mips/include/asm/fixmap.h +++ b/arch/mips/include/asm/fixmap.h | |||
| @@ -71,38 +71,7 @@ enum fixed_addresses { | |||
| 71 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 71 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
| 72 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | 72 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) |
| 73 | 73 | ||
| 74 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | 74 | #include <asm-generic/fixmap.h> |
| 75 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 76 | |||
| 77 | extern void __this_fixmap_does_not_exist(void); | ||
| 78 | |||
| 79 | /* | ||
| 80 | * 'index to address' translation. If anyone tries to use the idx | ||
| 81 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 82 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 83 | */ | ||
| 84 | static inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 85 | { | ||
| 86 | /* | ||
| 87 | * this branch gets completely eliminated after inlining, | ||
| 88 | * except when someone tries to use fixaddr indices in an | ||
| 89 | * illegal way. (such as mixing up address types or using | ||
| 90 | * out-of-range indices). | ||
| 91 | * | ||
| 92 | * If it doesn't get removed, the linker will complain | ||
| 93 | * loudly with a reasonably clear error message.. | ||
| 94 | */ | ||
| 95 | if (idx >= __end_of_fixed_addresses) | ||
| 96 | __this_fixmap_does_not_exist(); | ||
| 97 | |||
| 98 | return __fix_to_virt(idx); | ||
| 99 | } | ||
| 100 | |||
| 101 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 102 | { | ||
| 103 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 104 | return __virt_to_fix(vaddr); | ||
| 105 | } | ||
| 106 | 75 | ||
| 107 | #define kmap_get_fixmap_pte(vaddr) \ | 76 | #define kmap_get_fixmap_pte(vaddr) \ |
| 108 | pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr)) | 77 | pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr)) |
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 8bde9237d13b..a648de1b1096 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig | |||
| @@ -184,13 +184,13 @@ config SMP | |||
| 184 | depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050 | 184 | depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050 |
| 185 | ---help--- | 185 | ---help--- |
| 186 | This enables support for systems with more than one CPU. If you have | 186 | This enables support for systems with more than one CPU. If you have |
| 187 | a system with only one CPU, like most personal computers, say N. If | 187 | a system with only one CPU, say N. If you have a system with more |
| 188 | you have a system with more than one CPU, say Y. | 188 | than one CPU, say Y. |
| 189 | 189 | ||
| 190 | If you say N here, the kernel will run on single and multiprocessor | 190 | If you say N here, the kernel will run on uni- and multiprocessor |
| 191 | machines, but will use only one CPU of a multiprocessor machine. If | 191 | machines, but will use only one CPU of a multiprocessor machine. If |
| 192 | you say Y here, the kernel will run on many, but not all, | 192 | you say Y here, the kernel will run on many, but not all, |
| 193 | singleprocessor machines. On a singleprocessor machine, the kernel | 193 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 194 | will run faster if you say N here. | 194 | will run faster if you say N here. |
| 195 | 195 | ||
| 196 | See also <file:Documentation/x86/i386/IO-APIC.txt>, | 196 | See also <file:Documentation/x86/i386/IO-APIC.txt>, |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index b5f1858baf33..bb2a8ec440e7 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
| @@ -229,13 +229,13 @@ config SMP | |||
| 229 | bool "Symmetric multi-processing support" | 229 | bool "Symmetric multi-processing support" |
| 230 | ---help--- | 230 | ---help--- |
| 231 | This enables support for systems with more than one CPU. If you have | 231 | This enables support for systems with more than one CPU. If you have |
| 232 | a system with only one CPU, like most personal computers, say N. If | 232 | a system with only one CPU, say N. If you have a system with more |
| 233 | you have a system with more than one CPU, say Y. | 233 | than one CPU, say Y. |
| 234 | 234 | ||
| 235 | If you say N here, the kernel will run on single and multiprocessor | 235 | If you say N here, the kernel will run on uni- and multiprocessor |
| 236 | machines, but will use only one CPU of a multiprocessor machine. If | 236 | machines, but will use only one CPU of a multiprocessor machine. If |
| 237 | you say Y here, the kernel will run on many, but not all, | 237 | you say Y here, the kernel will run on many, but not all, |
| 238 | singleprocessor machines. On a singleprocessor machine, the kernel | 238 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 239 | will run faster if you say N here. | 239 | will run faster if you say N here. |
| 240 | 240 | ||
| 241 | See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO | 241 | See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index b2be8e8cb5c7..bedc62b44aa6 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
| @@ -794,7 +794,7 @@ config HAS_RAPIDIO | |||
| 794 | default n | 794 | default n |
| 795 | 795 | ||
| 796 | config RAPIDIO | 796 | config RAPIDIO |
| 797 | bool "RapidIO support" | 797 | tristate "RapidIO support" |
| 798 | depends on HAS_RAPIDIO || PCI | 798 | depends on HAS_RAPIDIO || PCI |
| 799 | help | 799 | help |
| 800 | If you say Y here, the kernel will include drivers and | 800 | If you say Y here, the kernel will include drivers and |
| @@ -802,7 +802,7 @@ config RAPIDIO | |||
| 802 | 802 | ||
| 803 | config FSL_RIO | 803 | config FSL_RIO |
| 804 | bool "Freescale Embedded SRIO Controller support" | 804 | bool "Freescale Embedded SRIO Controller support" |
| 805 | depends on RAPIDIO && HAS_RAPIDIO | 805 | depends on RAPIDIO = y && HAS_RAPIDIO |
| 806 | default "n" | 806 | default "n" |
| 807 | ---help--- | 807 | ---help--- |
| 808 | Include support for RapidIO controller on Freescale embedded | 808 | Include support for RapidIO controller on Freescale embedded |
diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h index 5c2c0233175e..90f604bbcd19 100644 --- a/arch/powerpc/include/asm/fixmap.h +++ b/arch/powerpc/include/asm/fixmap.h | |||
| @@ -58,52 +58,12 @@ enum fixed_addresses { | |||
| 58 | extern void __set_fixmap (enum fixed_addresses idx, | 58 | extern void __set_fixmap (enum fixed_addresses idx, |
| 59 | phys_addr_t phys, pgprot_t flags); | 59 | phys_addr_t phys, pgprot_t flags); |
| 60 | 60 | ||
| 61 | #define set_fixmap(idx, phys) \ | ||
| 62 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
| 63 | /* | ||
| 64 | * Some hardware wants to get fixmapped without caching. | ||
| 65 | */ | ||
| 66 | #define set_fixmap_nocache(idx, phys) \ | ||
| 67 | __set_fixmap(idx, phys, PAGE_KERNEL_NCG) | ||
| 68 | |||
| 69 | #define clear_fixmap(idx) \ | ||
| 70 | __set_fixmap(idx, 0, __pgprot(0)) | ||
| 71 | |||
| 72 | #define __FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 61 | #define __FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
| 73 | #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE) | 62 | #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE) |
| 74 | 63 | ||
| 75 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | 64 | #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NCG |
| 76 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 77 | |||
| 78 | extern void __this_fixmap_does_not_exist(void); | ||
| 79 | |||
| 80 | /* | ||
| 81 | * 'index to address' translation. If anyone tries to use the idx | ||
| 82 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 83 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 84 | */ | ||
| 85 | static __always_inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 86 | { | ||
| 87 | /* | ||
| 88 | * this branch gets completely eliminated after inlining, | ||
| 89 | * except when someone tries to use fixaddr indices in an | ||
| 90 | * illegal way. (such as mixing up address types or using | ||
| 91 | * out-of-range indices). | ||
| 92 | * | ||
| 93 | * If it doesn't get removed, the linker will complain | ||
| 94 | * loudly with a reasonably clear error message.. | ||
| 95 | */ | ||
| 96 | if (idx >= __end_of_fixed_addresses) | ||
| 97 | __this_fixmap_does_not_exist(); | ||
| 98 | |||
| 99 | return __fix_to_virt(idx); | ||
| 100 | } | ||
| 101 | 65 | ||
| 102 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | 66 | #include <asm-generic/fixmap.h> |
| 103 | { | ||
| 104 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 105 | return __virt_to_fix(vaddr); | ||
| 106 | } | ||
| 107 | 67 | ||
| 108 | #endif /* !__ASSEMBLY__ */ | 68 | #endif /* !__ASSEMBLY__ */ |
| 109 | #endif | 69 | #endif |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index e9f312532526..4f858f77d870 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
| @@ -334,10 +334,10 @@ config SMP | |||
| 334 | a system with only one CPU, like most personal computers, say N. If | 334 | a system with only one CPU, like most personal computers, say N. If |
| 335 | you have a system with more than one CPU, say Y. | 335 | you have a system with more than one CPU, say Y. |
| 336 | 336 | ||
| 337 | If you say N here, the kernel will run on single and multiprocessor | 337 | If you say N here, the kernel will run on uni- and multiprocessor |
| 338 | machines, but will use only one CPU of a multiprocessor machine. If | 338 | machines, but will use only one CPU of a multiprocessor machine. If |
| 339 | you say Y here, the kernel will run on many, but not all, | 339 | you say Y here, the kernel will run on many, but not all, |
| 340 | singleprocessor machines. On a singleprocessor machine, the kernel | 340 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 341 | will run faster if you say N here. | 341 | will run faster if you say N here. |
| 342 | 342 | ||
| 343 | See also the SMP-HOWTO available at | 343 | See also the SMP-HOWTO available at |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index ce298317a73e..6357710753d5 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
| @@ -701,13 +701,13 @@ config SMP | |||
| 701 | depends on SYS_SUPPORTS_SMP | 701 | depends on SYS_SUPPORTS_SMP |
| 702 | ---help--- | 702 | ---help--- |
| 703 | This enables support for systems with more than one CPU. If you have | 703 | This enables support for systems with more than one CPU. If you have |
| 704 | a system with only one CPU, like most personal computers, say N. If | 704 | a system with only one CPU, say N. If you have a system with more |
| 705 | you have a system with more than one CPU, say Y. | 705 | than one CPU, say Y. |
| 706 | 706 | ||
| 707 | If you say N here, the kernel will run on single and multiprocessor | 707 | If you say N here, the kernel will run on uni- and multiprocessor |
| 708 | machines, but will use only one CPU of a multiprocessor machine. If | 708 | machines, but will use only one CPU of a multiprocessor machine. If |
| 709 | you say Y here, the kernel will run on many, but not all, | 709 | you say Y here, the kernel will run on many, but not all, |
| 710 | singleprocessor machines. On a singleprocessor machine, the kernel | 710 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 711 | will run faster if you say N here. | 711 | will run faster if you say N here. |
| 712 | 712 | ||
| 713 | People using multiprocessor machines who say Y here should also say | 713 | People using multiprocessor machines who say Y here should also say |
diff --git a/arch/sh/include/asm/fixmap.h b/arch/sh/include/asm/fixmap.h index cbe0186b6794..4daf91c3b725 100644 --- a/arch/sh/include/asm/fixmap.h +++ b/arch/sh/include/asm/fixmap.h | |||
| @@ -79,13 +79,6 @@ extern void __set_fixmap(enum fixed_addresses idx, | |||
| 79 | unsigned long phys, pgprot_t flags); | 79 | unsigned long phys, pgprot_t flags); |
| 80 | extern void __clear_fixmap(enum fixed_addresses idx, pgprot_t flags); | 80 | extern void __clear_fixmap(enum fixed_addresses idx, pgprot_t flags); |
| 81 | 81 | ||
| 82 | #define set_fixmap(idx, phys) \ | ||
| 83 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
| 84 | /* | ||
| 85 | * Some hardware wants to get fixmapped without caching. | ||
| 86 | */ | ||
| 87 | #define set_fixmap_nocache(idx, phys) \ | ||
| 88 | __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE) | ||
| 89 | /* | 82 | /* |
| 90 | * used by vmalloc.c. | 83 | * used by vmalloc.c. |
| 91 | * | 84 | * |
| @@ -101,36 +94,8 @@ extern void __clear_fixmap(enum fixed_addresses idx, pgprot_t flags); | |||
| 101 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 94 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
| 102 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | 95 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) |
| 103 | 96 | ||
| 104 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | 97 | #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NOCACHE |
| 105 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 106 | |||
| 107 | extern void __this_fixmap_does_not_exist(void); | ||
| 108 | |||
| 109 | /* | ||
| 110 | * 'index to address' translation. If anyone tries to use the idx | ||
| 111 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 112 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 113 | */ | ||
| 114 | static inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 115 | { | ||
| 116 | /* | ||
| 117 | * this branch gets completely eliminated after inlining, | ||
| 118 | * except when someone tries to use fixaddr indices in an | ||
| 119 | * illegal way. (such as mixing up address types or using | ||
| 120 | * out-of-range indices). | ||
| 121 | * | ||
| 122 | * If it doesn't get removed, the linker will complain | ||
| 123 | * loudly with a reasonably clear error message.. | ||
| 124 | */ | ||
| 125 | if (idx >= __end_of_fixed_addresses) | ||
| 126 | __this_fixmap_does_not_exist(); | ||
| 127 | 98 | ||
| 128 | return __fix_to_virt(idx); | 99 | #include <asm-generic/fixmap.h> |
| 129 | } | ||
| 130 | 100 | ||
| 131 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 132 | { | ||
| 133 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 134 | return __virt_to_fix(vaddr); | ||
| 135 | } | ||
| 136 | #endif | 101 | #endif |
diff --git a/arch/sh/kernel/dwarf.c b/arch/sh/kernel/dwarf.c index 49c09c7d5b77..67a049e75ec1 100644 --- a/arch/sh/kernel/dwarf.c +++ b/arch/sh/kernel/dwarf.c | |||
| @@ -995,29 +995,19 @@ static struct unwinder dwarf_unwinder = { | |||
| 995 | 995 | ||
| 996 | static void dwarf_unwinder_cleanup(void) | 996 | static void dwarf_unwinder_cleanup(void) |
| 997 | { | 997 | { |
| 998 | struct rb_node **fde_rb_node = &fde_root.rb_node; | 998 | struct dwarf_fde *fde, *next_fde; |
| 999 | struct rb_node **cie_rb_node = &cie_root.rb_node; | 999 | struct dwarf_cie *cie, *next_cie; |
| 1000 | 1000 | ||
| 1001 | /* | 1001 | /* |
| 1002 | * Deallocate all the memory allocated for the DWARF unwinder. | 1002 | * Deallocate all the memory allocated for the DWARF unwinder. |
| 1003 | * Traverse all the FDE/CIE lists and remove and free all the | 1003 | * Traverse all the FDE/CIE lists and remove and free all the |
| 1004 | * memory associated with those data structures. | 1004 | * memory associated with those data structures. |
| 1005 | */ | 1005 | */ |
| 1006 | while (*fde_rb_node) { | 1006 | rbtree_postorder_for_each_entry_safe(fde, next_fde, &fde_root, node) |
| 1007 | struct dwarf_fde *fde; | ||
| 1008 | |||
| 1009 | fde = rb_entry(*fde_rb_node, struct dwarf_fde, node); | ||
| 1010 | rb_erase(*fde_rb_node, &fde_root); | ||
| 1011 | kfree(fde); | 1007 | kfree(fde); |
| 1012 | } | ||
| 1013 | 1008 | ||
| 1014 | while (*cie_rb_node) { | 1009 | rbtree_postorder_for_each_entry_safe(cie, next_cie, &cie_root, node) |
| 1015 | struct dwarf_cie *cie; | ||
| 1016 | |||
| 1017 | cie = rb_entry(*cie_rb_node, struct dwarf_cie, node); | ||
| 1018 | rb_erase(*cie_rb_node, &cie_root); | ||
| 1019 | kfree(cie); | 1010 | kfree(cie); |
| 1020 | } | ||
| 1021 | 1011 | ||
| 1022 | kmem_cache_destroy(dwarf_reg_cachep); | 1012 | kmem_cache_destroy(dwarf_reg_cachep); |
| 1023 | kmem_cache_destroy(dwarf_frame_cachep); | 1013 | kmem_cache_destroy(dwarf_frame_cachep); |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index d4f7a6a163dc..63dfe68f4af8 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
| @@ -152,10 +152,10 @@ config SMP | |||
| 152 | a system with only one CPU, say N. If you have a system with more | 152 | a system with only one CPU, say N. If you have a system with more |
| 153 | than one CPU, say Y. | 153 | than one CPU, say Y. |
| 154 | 154 | ||
| 155 | If you say N here, the kernel will run on single and multiprocessor | 155 | If you say N here, the kernel will run on uni- and multiprocessor |
| 156 | machines, but will use only one CPU of a multiprocessor machine. If | 156 | machines, but will use only one CPU of a multiprocessor machine. If |
| 157 | you say Y here, the kernel will run on many, but not all, | 157 | you say Y here, the kernel will run on many, but not all, |
| 158 | singleprocessor machines. On a singleprocessor machine, the kernel | 158 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 159 | will run faster if you say N here. | 159 | will run faster if you say N here. |
| 160 | 160 | ||
| 161 | People using multiprocessor machines who say Y here should also say | 161 | People using multiprocessor machines who say Y here should also say |
diff --git a/arch/tile/include/asm/fixmap.h b/arch/tile/include/asm/fixmap.h index c6b9c1b38fd1..ffe2637aeb31 100644 --- a/arch/tile/include/asm/fixmap.h +++ b/arch/tile/include/asm/fixmap.h | |||
| @@ -25,9 +25,6 @@ | |||
| 25 | #include <asm/kmap_types.h> | 25 | #include <asm/kmap_types.h> |
| 26 | #endif | 26 | #endif |
| 27 | 27 | ||
| 28 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | ||
| 29 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 30 | |||
| 31 | /* | 28 | /* |
| 32 | * Here we define all the compile-time 'special' virtual | 29 | * Here we define all the compile-time 'special' virtual |
| 33 | * addresses. The point is to have a constant address at | 30 | * addresses. The point is to have a constant address at |
| @@ -83,35 +80,7 @@ enum fixed_addresses { | |||
| 83 | #define FIXADDR_START (FIXADDR_TOP + PAGE_SIZE - __FIXADDR_SIZE) | 80 | #define FIXADDR_START (FIXADDR_TOP + PAGE_SIZE - __FIXADDR_SIZE) |
| 84 | #define FIXADDR_BOOT_START (FIXADDR_TOP + PAGE_SIZE - __FIXADDR_BOOT_SIZE) | 81 | #define FIXADDR_BOOT_START (FIXADDR_TOP + PAGE_SIZE - __FIXADDR_BOOT_SIZE) |
| 85 | 82 | ||
| 86 | extern void __this_fixmap_does_not_exist(void); | 83 | #include <asm-generic/fixmap.h> |
| 87 | |||
| 88 | /* | ||
| 89 | * 'index to address' translation. If anyone tries to use the idx | ||
| 90 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 91 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 92 | */ | ||
| 93 | static __always_inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 94 | { | ||
| 95 | /* | ||
| 96 | * this branch gets completely eliminated after inlining, | ||
| 97 | * except when someone tries to use fixaddr indices in an | ||
| 98 | * illegal way. (such as mixing up address types or using | ||
| 99 | * out-of-range indices). | ||
| 100 | * | ||
| 101 | * If it doesn't get removed, the linker will complain | ||
| 102 | * loudly with a reasonably clear error message.. | ||
| 103 | */ | ||
| 104 | if (idx >= __end_of_fixed_addresses) | ||
| 105 | __this_fixmap_does_not_exist(); | ||
| 106 | |||
| 107 | return __fix_to_virt(idx); | ||
| 108 | } | ||
| 109 | |||
| 110 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 111 | { | ||
| 112 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 113 | return __virt_to_fix(vaddr); | ||
| 114 | } | ||
| 115 | 84 | ||
| 116 | #endif /* !__ASSEMBLY__ */ | 85 | #endif /* !__ASSEMBLY__ */ |
| 117 | 86 | ||
diff --git a/arch/um/include/asm/fixmap.h b/arch/um/include/asm/fixmap.h index 21a423bae5e8..3094ea3c73b0 100644 --- a/arch/um/include/asm/fixmap.h +++ b/arch/um/include/asm/fixmap.h | |||
| @@ -43,13 +43,6 @@ enum fixed_addresses { | |||
| 43 | extern void __set_fixmap (enum fixed_addresses idx, | 43 | extern void __set_fixmap (enum fixed_addresses idx, |
| 44 | unsigned long phys, pgprot_t flags); | 44 | unsigned long phys, pgprot_t flags); |
| 45 | 45 | ||
| 46 | #define set_fixmap(idx, phys) \ | ||
| 47 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
| 48 | /* | ||
| 49 | * Some hardware wants to get fixmapped without caching. | ||
| 50 | */ | ||
| 51 | #define set_fixmap_nocache(idx, phys) \ | ||
| 52 | __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE) | ||
| 53 | /* | 46 | /* |
| 54 | * used by vmalloc.c. | 47 | * used by vmalloc.c. |
| 55 | * | 48 | * |
| @@ -62,37 +55,6 @@ extern void __set_fixmap (enum fixed_addresses idx, | |||
| 62 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) | 55 | #define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT) |
| 63 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) | 56 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) |
| 64 | 57 | ||
| 65 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | 58 | #include <asm-generic/fixmap.h> |
| 66 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 67 | |||
| 68 | extern void __this_fixmap_does_not_exist(void); | ||
| 69 | |||
| 70 | /* | ||
| 71 | * 'index to address' translation. If anyone tries to use the idx | ||
| 72 | * directly without tranlation, we catch the bug with a NULL-deference | ||
| 73 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 74 | */ | ||
| 75 | static inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 76 | { | ||
| 77 | /* | ||
| 78 | * this branch gets completely eliminated after inlining, | ||
| 79 | * except when someone tries to use fixaddr indices in an | ||
| 80 | * illegal way. (such as mixing up address types or using | ||
| 81 | * out-of-range indices). | ||
| 82 | * | ||
| 83 | * If it doesn't get removed, the linker will complain | ||
| 84 | * loudly with a reasonably clear error message.. | ||
| 85 | */ | ||
| 86 | if (idx >= __end_of_fixed_addresses) | ||
| 87 | __this_fixmap_does_not_exist(); | ||
| 88 | |||
| 89 | return __fix_to_virt(idx); | ||
| 90 | } | ||
| 91 | |||
| 92 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 93 | { | ||
| 94 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 95 | return __virt_to_fix(vaddr); | ||
| 96 | } | ||
| 97 | 59 | ||
| 98 | #endif | 60 | #endif |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index d3b9186e4c23..3e97a3dd4129 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -279,13 +279,13 @@ config SMP | |||
| 279 | bool "Symmetric multi-processing support" | 279 | bool "Symmetric multi-processing support" |
| 280 | ---help--- | 280 | ---help--- |
| 281 | This enables support for systems with more than one CPU. If you have | 281 | This enables support for systems with more than one CPU. If you have |
| 282 | a system with only one CPU, like most personal computers, say N. If | 282 | a system with only one CPU, say N. If you have a system with more |
| 283 | you have a system with more than one CPU, say Y. | 283 | than one CPU, say Y. |
| 284 | 284 | ||
| 285 | If you say N here, the kernel will run on single and multiprocessor | 285 | If you say N here, the kernel will run on uni- and multiprocessor |
| 286 | machines, but will use only one CPU of a multiprocessor machine. If | 286 | machines, but will use only one CPU of a multiprocessor machine. If |
| 287 | you say Y here, the kernel will run on many, but not all, | 287 | you say Y here, the kernel will run on many, but not all, |
| 288 | singleprocessor machines. On a singleprocessor machine, the kernel | 288 | uniprocessor machines. On a uniprocessor machine, the kernel |
| 289 | will run faster if you say N here. | 289 | will run faster if you say N here. |
| 290 | 290 | ||
| 291 | Note that if you say Y here and choose architecture "586" or | 291 | Note that if you say Y here and choose architecture "586" or |
| @@ -731,6 +731,7 @@ config APB_TIMER | |||
| 731 | # The code disables itself when not needed. | 731 | # The code disables itself when not needed. |
| 732 | config DMI | 732 | config DMI |
| 733 | default y | 733 | default y |
| 734 | select DMI_SCAN_MACHINE_NON_EFI_FALLBACK | ||
| 734 | bool "Enable DMI scanning" if EXPERT | 735 | bool "Enable DMI scanning" if EXPERT |
| 735 | ---help--- | 736 | ---help--- |
| 736 | Enabled scanning of DMI to identify machine quirks. Say Y | 737 | Enabled scanning of DMI to identify machine quirks. Say Y |
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h index fd8f9e2ca35f..535192f6bfad 100644 --- a/arch/x86/include/asm/dmi.h +++ b/arch/x86/include/asm/dmi.h | |||
| @@ -13,7 +13,9 @@ static __always_inline __init void *dmi_alloc(unsigned len) | |||
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | /* Use early IO mappings for DMI because it's initialized early */ | 15 | /* Use early IO mappings for DMI because it's initialized early */ |
| 16 | #define dmi_ioremap early_ioremap | 16 | #define dmi_early_remap early_ioremap |
| 17 | #define dmi_iounmap early_iounmap | 17 | #define dmi_early_unmap early_iounmap |
| 18 | #define dmi_remap ioremap | ||
| 19 | #define dmi_unmap iounmap | ||
| 18 | 20 | ||
| 19 | #endif /* _ASM_X86_DMI_H */ | 21 | #endif /* _ASM_X86_DMI_H */ |
diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h index e846225265ed..7252cd339175 100644 --- a/arch/x86/include/asm/fixmap.h +++ b/arch/x86/include/asm/fixmap.h | |||
| @@ -175,64 +175,7 @@ static inline void __set_fixmap(enum fixed_addresses idx, | |||
| 175 | } | 175 | } |
| 176 | #endif | 176 | #endif |
| 177 | 177 | ||
| 178 | #define set_fixmap(idx, phys) \ | 178 | #include <asm-generic/fixmap.h> |
| 179 | __set_fixmap(idx, phys, PAGE_KERNEL) | ||
| 180 | |||
| 181 | /* | ||
| 182 | * Some hardware wants to get fixmapped without caching. | ||
| 183 | */ | ||
| 184 | #define set_fixmap_nocache(idx, phys) \ | ||
| 185 | __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE) | ||
| 186 | |||
| 187 | #define clear_fixmap(idx) \ | ||
| 188 | __set_fixmap(idx, 0, __pgprot(0)) | ||
| 189 | |||
| 190 | #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT)) | ||
| 191 | #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT) | ||
| 192 | |||
| 193 | extern void __this_fixmap_does_not_exist(void); | ||
| 194 | |||
| 195 | /* | ||
| 196 | * 'index to address' translation. If anyone tries to use the idx | ||
| 197 | * directly without translation, we catch the bug with a NULL-deference | ||
| 198 | * kernel oops. Illegal ranges of incoming indices are caught too. | ||
| 199 | */ | ||
| 200 | static __always_inline unsigned long fix_to_virt(const unsigned int idx) | ||
| 201 | { | ||
| 202 | /* | ||
| 203 | * this branch gets completely eliminated after inlining, | ||
| 204 | * except when someone tries to use fixaddr indices in an | ||
| 205 | * illegal way. (such as mixing up address types or using | ||
| 206 | * out-of-range indices). | ||
| 207 | * | ||
| 208 | * If it doesn't get removed, the linker will complain | ||
| 209 | * loudly with a reasonably clear error message.. | ||
| 210 | */ | ||
| 211 | if (idx >= __end_of_fixed_addresses) | ||
| 212 | __this_fixmap_does_not_exist(); | ||
| 213 | |||
| 214 | return __fix_to_virt(idx); | ||
| 215 | } | ||
| 216 | |||
| 217 | static inline unsigned long virt_to_fix(const unsigned long vaddr) | ||
| 218 | { | ||
| 219 | BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); | ||
| 220 | return __virt_to_fix(vaddr); | ||
| 221 | } | ||
| 222 | |||
| 223 | /* Return an pointer with offset calculated */ | ||
| 224 | static __always_inline unsigned long | ||
| 225 | __set_fixmap_offset(enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags) | ||
| 226 | { | ||
| 227 | __set_fixmap(idx, phys, flags); | ||
| 228 | return fix_to_virt(idx) + (phys & (PAGE_SIZE - 1)); | ||
| 229 | } | ||
| 230 | |||
| 231 | #define set_fixmap_offset(idx, phys) \ | ||
| 232 | __set_fixmap_offset(idx, phys, PAGE_KERNEL) | ||
| 233 | |||
| 234 | #define set_fixmap_offset_nocache(idx, phys) \ | ||
| 235 | __set_fixmap_offset(idx, phys, PAGE_KERNEL_NOCACHE) | ||
| 236 | 179 | ||
| 237 | #endif /* !__ASSEMBLY__ */ | 180 | #endif /* !__ASSEMBLY__ */ |
| 238 | #endif /* _ASM_X86_FIXMAP_H */ | 181 | #endif /* _ASM_X86_FIXMAP_H */ |
diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c index 0596e8e0cc19..207d9aef662d 100644 --- a/arch/x86/mm/gup.c +++ b/arch/x86/mm/gup.c | |||
| @@ -108,8 +108,8 @@ static noinline int gup_pte_range(pmd_t pmd, unsigned long addr, | |||
| 108 | 108 | ||
| 109 | static inline void get_head_page_multiple(struct page *page, int nr) | 109 | static inline void get_head_page_multiple(struct page *page, int nr) |
| 110 | { | 110 | { |
| 111 | VM_BUG_ON(page != compound_head(page)); | 111 | VM_BUG_ON_PAGE(page != compound_head(page), page); |
| 112 | VM_BUG_ON(page_count(page) == 0); | 112 | VM_BUG_ON_PAGE(page_count(page) == 0, page); |
| 113 | atomic_add(nr, &page->_count); | 113 | atomic_add(nr, &page->_count); |
| 114 | SetPageReferenced(page); | 114 | SetPageReferenced(page); |
| 115 | } | 115 | } |
| @@ -135,7 +135,7 @@ static noinline int gup_huge_pmd(pmd_t pmd, unsigned long addr, | |||
| 135 | head = pte_page(pte); | 135 | head = pte_page(pte); |
| 136 | page = head + ((addr & ~PMD_MASK) >> PAGE_SHIFT); | 136 | page = head + ((addr & ~PMD_MASK) >> PAGE_SHIFT); |
| 137 | do { | 137 | do { |
| 138 | VM_BUG_ON(compound_head(page) != head); | 138 | VM_BUG_ON_PAGE(compound_head(page) != head, page); |
| 139 | pages[*nr] = page; | 139 | pages[*nr] = page; |
| 140 | if (PageTail(page)) | 140 | if (PageTail(page)) |
| 141 | get_huge_page_tail(page); | 141 | get_huge_page_tail(page); |
| @@ -212,7 +212,7 @@ static noinline int gup_huge_pud(pud_t pud, unsigned long addr, | |||
| 212 | head = pte_page(pte); | 212 | head = pte_page(pte); |
| 213 | page = head + ((addr & ~PUD_MASK) >> PAGE_SHIFT); | 213 | page = head + ((addr & ~PUD_MASK) >> PAGE_SHIFT); |
| 214 | do { | 214 | do { |
| 215 | VM_BUG_ON(compound_head(page) != head); | 215 | VM_BUG_ON_PAGE(compound_head(page) != head, page); |
| 216 | pages[*nr] = page; | 216 | pages[*nr] = page; |
| 217 | if (PageTail(page)) | 217 | if (PageTail(page)) |
| 218 | get_huge_page_tail(page); | 218 | get_huge_page_tail(page); |
