diff options
| author | David S. Miller <davem@davemloft.net> | 2008-03-18 02:44:31 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-03-18 02:44:31 -0400 |
| commit | 2f633928cbba8a5858bb39b11e7219a41b0fbef5 (patch) | |
| tree | 9a82f4b7f2c3afe4b0208d8e44ea61bae90a7d22 /arch | |
| parent | 5e226e4d9016daee170699f8a4188a5505021756 (diff) | |
| parent | bde4f8fa8db2abd5ac9c542d76012d0fedab050f (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch')
343 files changed, 3799 insertions, 5491 deletions
diff --git a/arch/Kconfig b/arch/Kconfig index 3d72dc3fc8f5..694c9af520bb 100644 --- a/arch/Kconfig +++ b/arch/Kconfig | |||
| @@ -27,5 +27,12 @@ config KPROBES | |||
| 27 | for kernel debugging, non-intrusive instrumentation and testing. | 27 | for kernel debugging, non-intrusive instrumentation and testing. |
| 28 | If in doubt, say "N". | 28 | If in doubt, say "N". |
| 29 | 29 | ||
| 30 | config KRETPROBES | ||
| 31 | def_bool y | ||
| 32 | depends on KPROBES && HAVE_KRETPROBES | ||
| 33 | |||
| 30 | config HAVE_KPROBES | 34 | config HAVE_KPROBES |
| 31 | def_bool n | 35 | def_bool n |
| 36 | |||
| 37 | config HAVE_KRETPROBES | ||
| 38 | def_bool n | ||
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 002703b8c0b0..729cdbdf8036 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
| @@ -330,6 +330,9 @@ config PCI_DOMAINS | |||
| 330 | config PCI_SYSCALL | 330 | config PCI_SYSCALL |
| 331 | def_bool PCI | 331 | def_bool PCI |
| 332 | 332 | ||
| 333 | config IOMMU_HELPER | ||
| 334 | def_bool PCI | ||
| 335 | |||
| 333 | config ALPHA_CORE_AGP | 336 | config ALPHA_CORE_AGP |
| 334 | bool | 337 | bool |
| 335 | depends on ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL | 338 | depends on ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL |
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index 26d3789dfdd0..4e1c08636edd 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/scatterlist.h> | 10 | #include <linux/scatterlist.h> |
| 11 | #include <linux/log2.h> | 11 | #include <linux/log2.h> |
| 12 | #include <linux/dma-mapping.h> | 12 | #include <linux/dma-mapping.h> |
| 13 | #include <linux/iommu-helper.h> | ||
| 13 | 14 | ||
| 14 | #include <asm/io.h> | 15 | #include <asm/io.h> |
| 15 | #include <asm/hwrpb.h> | 16 | #include <asm/hwrpb.h> |
| @@ -31,7 +32,6 @@ | |||
| 31 | #endif | 32 | #endif |
| 32 | 33 | ||
| 33 | #define DEBUG_NODIRECT 0 | 34 | #define DEBUG_NODIRECT 0 |
| 34 | #define DEBUG_FORCEDAC 0 | ||
| 35 | 35 | ||
| 36 | #define ISA_DMA_MASK 0x00ffffff | 36 | #define ISA_DMA_MASK 0x00ffffff |
| 37 | 37 | ||
| @@ -128,37 +128,55 @@ iommu_arena_new(struct pci_controller *hose, dma_addr_t base, | |||
| 128 | 128 | ||
| 129 | /* Must be called with the arena lock held */ | 129 | /* Must be called with the arena lock held */ |
| 130 | static long | 130 | static long |
| 131 | iommu_arena_find_pages(struct pci_iommu_arena *arena, long n, long mask) | 131 | iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena, |
| 132 | long n, long mask) | ||
| 132 | { | 133 | { |
| 133 | unsigned long *ptes; | 134 | unsigned long *ptes; |
| 134 | long i, p, nent; | 135 | long i, p, nent; |
| 136 | int pass = 0; | ||
| 137 | unsigned long base; | ||
| 138 | unsigned long boundary_size; | ||
| 139 | |||
| 140 | base = arena->dma_base >> PAGE_SHIFT; | ||
| 141 | if (dev) { | ||
| 142 | boundary_size = dma_get_seg_boundary(dev) + 1; | ||
| 143 | boundary_size >>= PAGE_SHIFT; | ||
| 144 | } else { | ||
| 145 | boundary_size = 1UL << (32 - PAGE_SHIFT); | ||
| 146 | } | ||
| 135 | 147 | ||
| 136 | /* Search forward for the first mask-aligned sequence of N free ptes */ | 148 | /* Search forward for the first mask-aligned sequence of N free ptes */ |
| 137 | ptes = arena->ptes; | 149 | ptes = arena->ptes; |
| 138 | nent = arena->size >> PAGE_SHIFT; | 150 | nent = arena->size >> PAGE_SHIFT; |
| 139 | p = (arena->next_entry + mask) & ~mask; | 151 | p = ALIGN(arena->next_entry, mask + 1); |
| 140 | i = 0; | 152 | i = 0; |
| 153 | |||
| 154 | again: | ||
| 141 | while (i < n && p+i < nent) { | 155 | while (i < n && p+i < nent) { |
| 156 | if (!i && iommu_is_span_boundary(p, n, base, boundary_size)) { | ||
| 157 | p = ALIGN(p + 1, mask + 1); | ||
| 158 | goto again; | ||
| 159 | } | ||
| 160 | |||
| 142 | if (ptes[p+i]) | 161 | if (ptes[p+i]) |
| 143 | p = (p + i + 1 + mask) & ~mask, i = 0; | 162 | p = ALIGN(p + i + 1, mask + 1), i = 0; |
| 144 | else | 163 | else |
| 145 | i = i + 1; | 164 | i = i + 1; |
| 146 | } | 165 | } |
| 147 | 166 | ||
| 148 | if (i < n) { | 167 | if (i < n) { |
| 149 | /* Reached the end. Flush the TLB and restart the | 168 | if (pass < 1) { |
| 150 | search from the beginning. */ | 169 | /* |
| 151 | alpha_mv.mv_pci_tbi(arena->hose, 0, -1); | 170 | * Reached the end. Flush the TLB and restart |
| 152 | 171 | * the search from the beginning. | |
| 153 | p = 0, i = 0; | 172 | */ |
| 154 | while (i < n && p+i < nent) { | 173 | alpha_mv.mv_pci_tbi(arena->hose, 0, -1); |
| 155 | if (ptes[p+i]) | 174 | |
| 156 | p = (p + i + 1 + mask) & ~mask, i = 0; | 175 | pass++; |
| 157 | else | 176 | p = 0; |
| 158 | i = i + 1; | 177 | i = 0; |
| 159 | } | 178 | goto again; |
| 160 | 179 | } else | |
| 161 | if (i < n) | ||
| 162 | return -1; | 180 | return -1; |
| 163 | } | 181 | } |
| 164 | 182 | ||
| @@ -168,7 +186,8 @@ iommu_arena_find_pages(struct pci_iommu_arena *arena, long n, long mask) | |||
| 168 | } | 186 | } |
| 169 | 187 | ||
| 170 | static long | 188 | static long |
| 171 | iommu_arena_alloc(struct pci_iommu_arena *arena, long n, unsigned int align) | 189 | iommu_arena_alloc(struct device *dev, struct pci_iommu_arena *arena, long n, |
| 190 | unsigned int align) | ||
| 172 | { | 191 | { |
| 173 | unsigned long flags; | 192 | unsigned long flags; |
| 174 | unsigned long *ptes; | 193 | unsigned long *ptes; |
| @@ -179,7 +198,7 @@ iommu_arena_alloc(struct pci_iommu_arena *arena, long n, unsigned int align) | |||
| 179 | /* Search for N empty ptes */ | 198 | /* Search for N empty ptes */ |
| 180 | ptes = arena->ptes; | 199 | ptes = arena->ptes; |
| 181 | mask = max(align, arena->align_entry) - 1; | 200 | mask = max(align, arena->align_entry) - 1; |
| 182 | p = iommu_arena_find_pages(arena, n, mask); | 201 | p = iommu_arena_find_pages(dev, arena, n, mask); |
| 183 | if (p < 0) { | 202 | if (p < 0) { |
| 184 | spin_unlock_irqrestore(&arena->lock, flags); | 203 | spin_unlock_irqrestore(&arena->lock, flags); |
| 185 | return -1; | 204 | return -1; |
| @@ -229,6 +248,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, | |||
| 229 | unsigned long paddr; | 248 | unsigned long paddr; |
| 230 | dma_addr_t ret; | 249 | dma_addr_t ret; |
| 231 | unsigned int align = 0; | 250 | unsigned int align = 0; |
| 251 | struct device *dev = pdev ? &pdev->dev : NULL; | ||
| 232 | 252 | ||
| 233 | paddr = __pa(cpu_addr); | 253 | paddr = __pa(cpu_addr); |
| 234 | 254 | ||
| @@ -276,7 +296,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, | |||
| 276 | /* Force allocation to 64KB boundary for ISA bridges. */ | 296 | /* Force allocation to 64KB boundary for ISA bridges. */ |
| 277 | if (pdev && pdev == isa_bridge) | 297 | if (pdev && pdev == isa_bridge) |
| 278 | align = 8; | 298 | align = 8; |
| 279 | dma_ofs = iommu_arena_alloc(arena, npages, align); | 299 | dma_ofs = iommu_arena_alloc(dev, arena, npages, align); |
| 280 | if (dma_ofs < 0) { | 300 | if (dma_ofs < 0) { |
| 281 | printk(KERN_WARNING "pci_map_single failed: " | 301 | printk(KERN_WARNING "pci_map_single failed: " |
| 282 | "could not allocate dma page tables\n"); | 302 | "could not allocate dma page tables\n"); |
| @@ -563,7 +583,7 @@ sg_fill(struct device *dev, struct scatterlist *leader, struct scatterlist *end, | |||
| 563 | 583 | ||
| 564 | paddr &= ~PAGE_MASK; | 584 | paddr &= ~PAGE_MASK; |
| 565 | npages = calc_npages(paddr + size); | 585 | npages = calc_npages(paddr + size); |
| 566 | dma_ofs = iommu_arena_alloc(arena, npages, 0); | 586 | dma_ofs = iommu_arena_alloc(dev, arena, npages, 0); |
| 567 | if (dma_ofs < 0) { | 587 | if (dma_ofs < 0) { |
| 568 | /* If we attempted a direct map above but failed, die. */ | 588 | /* If we attempted a direct map above but failed, die. */ |
| 569 | if (leader->dma_address == 0) | 589 | if (leader->dma_address == 0) |
| @@ -830,7 +850,7 @@ iommu_reserve(struct pci_iommu_arena *arena, long pg_count, long align_mask) | |||
| 830 | 850 | ||
| 831 | /* Search for N empty ptes. */ | 851 | /* Search for N empty ptes. */ |
| 832 | ptes = arena->ptes; | 852 | ptes = arena->ptes; |
| 833 | p = iommu_arena_find_pages(arena, pg_count, align_mask); | 853 | p = iommu_arena_find_pages(NULL, arena, pg_count, align_mask); |
| 834 | if (p < 0) { | 854 | if (p < 0) { |
| 835 | spin_unlock_irqrestore(&arena->lock, flags); | 855 | spin_unlock_irqrestore(&arena->lock, flags); |
| 836 | return -1; | 856 | return -1; |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 9619c43783ff..955fc53c1c01 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -12,6 +12,7 @@ config ARM | |||
| 12 | select SYS_SUPPORTS_APM_EMULATION | 12 | select SYS_SUPPORTS_APM_EMULATION |
| 13 | select HAVE_OPROFILE | 13 | select HAVE_OPROFILE |
| 14 | select HAVE_KPROBES if (!XIP_KERNEL) | 14 | select HAVE_KPROBES if (!XIP_KERNEL) |
| 15 | select HAVE_KRETPROBES if (HAVE_KPROBES) | ||
| 15 | help | 16 | help |
| 16 | The ARM series is a line of low-power-consumption RISC chip designs | 17 | The ARM series is a line of low-power-consumption RISC chip designs |
| 17 | licensed by ARM Ltd and targeted at embedded applications and | 18 | licensed by ARM Ltd and targeted at embedded applications and |
| @@ -939,7 +940,8 @@ config KEXEC | |||
| 939 | 940 | ||
| 940 | config ATAGS_PROC | 941 | config ATAGS_PROC |
| 941 | bool "Export atags in procfs" | 942 | bool "Export atags in procfs" |
| 942 | default n | 943 | depends on KEXEC |
| 944 | default y | ||
| 943 | help | 945 | help |
| 944 | Should the atags used to boot the kernel be exported in an "atags" | 946 | Should the atags used to boot the kernel be exported in an "atags" |
| 945 | file in procfs. Useful with kexec. | 947 | file in procfs. Useful with kexec. |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 7b8ff66febe1..1a4649667ec8 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -251,6 +251,7 @@ define archhelp | |||
| 251 | echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' | 251 | echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' |
| 252 | echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' | 252 | echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' |
| 253 | echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' | 253 | echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)' |
| 254 | echo ' uImage - U-Boot wrapped zImage' | ||
| 254 | echo ' bootpImage - Combined zImage and initial RAM disk' | 255 | echo ' bootpImage - Combined zImage and initial RAM disk' |
| 255 | echo ' (supply initrd image via make variable INITRD=<path>)' | 256 | echo ' (supply initrd image via make variable INITRD=<path>)' |
| 256 | echo ' install - Install uncompressed kernel' | 257 | echo ' install - Install uncompressed kernel' |
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c index 97b7dc13d9aa..538262241483 100644 --- a/arch/arm/common/it8152.c +++ b/arch/arm/common/it8152.c | |||
| @@ -274,7 +274,7 @@ static int it8152_pci_platform_notify_remove(struct device *dev) | |||
| 274 | int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) | 274 | int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) |
| 275 | { | 275 | { |
| 276 | dev_dbg(dev, "%s: dma_addr %08x, size %08x\n", | 276 | dev_dbg(dev, "%s: dma_addr %08x, size %08x\n", |
| 277 | __FUNCTION__, dma_addr, size); | 277 | __func__, dma_addr, size); |
| 278 | return (dev->bus == &pci_bus_type) && | 278 | return (dev->bus == &pci_bus_type) && |
| 279 | ((dma_addr + size - PHYS_OFFSET) >= SZ_64M); | 279 | ((dma_addr + size - PHYS_OFFSET) >= SZ_64M); |
| 280 | } | 280 | } |
| @@ -289,7 +289,7 @@ int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) | |||
| 289 | */ | 289 | */ |
| 290 | int pci_set_dma_mask(struct pci_dev *dev, u64 mask) | 290 | int pci_set_dma_mask(struct pci_dev *dev, u64 mask) |
| 291 | { | 291 | { |
| 292 | dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask); | 292 | dev_dbg(&dev->dev, "%s: %llx\n", __func__, mask); |
| 293 | if (mask >= PHYS_OFFSET + SZ_64M - 1) | 293 | if (mask >= PHYS_OFFSET + SZ_64M - 1) |
| 294 | return 0; | 294 | return 0; |
| 295 | 295 | ||
| @@ -299,7 +299,7 @@ int pci_set_dma_mask(struct pci_dev *dev, u64 mask) | |||
| 299 | int | 299 | int |
| 300 | pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) | 300 | pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) |
| 301 | { | 301 | { |
| 302 | dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask); | 302 | dev_dbg(&dev->dev, "%s: %llx\n", __func__, mask); |
| 303 | if (mask >= PHYS_OFFSET + SZ_64M - 1) | 303 | if (mask >= PHYS_OFFSET + SZ_64M - 1) |
| 304 | return 0; | 304 | return 0; |
| 305 | 305 | ||
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig index c2345af3707a..323c1deeb953 100644 --- a/arch/arm/configs/omap_h2_1610_defconfig +++ b/arch/arm/configs/omap_h2_1610_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.24-rc5 | 3 | # Linux kernel version: 2.6.25-rc3 |
| 4 | # Mon Dec 17 20:04:38 2007 | 4 | # Mon Mar 3 03:39:48 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
| @@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
| 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
| 22 | CONFIG_GENERIC_HWEIGHT=y | 22 | CONFIG_GENERIC_HWEIGHT=y |
| 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
| 24 | CONFIG_ZONE_DMA=y | 25 | CONFIG_ZONE_DMA=y |
| 25 | CONFIG_VECTORS_BASE=0xffff0000 | 26 | CONFIG_VECTORS_BASE=0xffff0000 |
| 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| @@ -40,17 +41,22 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 40 | # CONFIG_POSIX_MQUEUE is not set | 41 | # CONFIG_POSIX_MQUEUE is not set |
| 41 | # CONFIG_BSD_PROCESS_ACCT is not set | 42 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 42 | # CONFIG_TASKSTATS is not set | 43 | # CONFIG_TASKSTATS is not set |
| 43 | # CONFIG_USER_NS is not set | ||
| 44 | # CONFIG_PID_NS is not set | ||
| 45 | # CONFIG_AUDIT is not set | 44 | # CONFIG_AUDIT is not set |
| 46 | # CONFIG_IKCONFIG is not set | 45 | # CONFIG_IKCONFIG is not set |
| 47 | CONFIG_LOG_BUF_SHIFT=14 | 46 | CONFIG_LOG_BUF_SHIFT=14 |
| 48 | # CONFIG_CGROUPS is not set | 47 | # CONFIG_CGROUPS is not set |
| 48 | CONFIG_GROUP_SCHED=y | ||
| 49 | CONFIG_FAIR_GROUP_SCHED=y | 49 | CONFIG_FAIR_GROUP_SCHED=y |
| 50 | CONFIG_FAIR_USER_SCHED=y | 50 | # CONFIG_RT_GROUP_SCHED is not set |
| 51 | # CONFIG_FAIR_CGROUP_SCHED is not set | 51 | CONFIG_USER_SCHED=y |
| 52 | # CONFIG_CGROUP_SCHED is not set | ||
| 52 | # CONFIG_SYSFS_DEPRECATED is not set | 53 | # CONFIG_SYSFS_DEPRECATED is not set |
| 53 | # CONFIG_RELAY is not set | 54 | # CONFIG_RELAY is not set |
| 55 | CONFIG_NAMESPACES=y | ||
| 56 | # CONFIG_UTS_NS is not set | ||
| 57 | # CONFIG_IPC_NS is not set | ||
| 58 | # CONFIG_USER_NS is not set | ||
| 59 | # CONFIG_PID_NS is not set | ||
| 54 | CONFIG_BLK_DEV_INITRD=y | 60 | CONFIG_BLK_DEV_INITRD=y |
| 55 | CONFIG_INITRAMFS_SOURCE="" | 61 | CONFIG_INITRAMFS_SOURCE="" |
| 56 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 62 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| @@ -64,17 +70,26 @@ CONFIG_HOTPLUG=y | |||
| 64 | CONFIG_PRINTK=y | 70 | CONFIG_PRINTK=y |
| 65 | CONFIG_BUG=y | 71 | CONFIG_BUG=y |
| 66 | CONFIG_ELF_CORE=y | 72 | CONFIG_ELF_CORE=y |
| 73 | CONFIG_COMPAT_BRK=y | ||
| 67 | CONFIG_BASE_FULL=y | 74 | CONFIG_BASE_FULL=y |
| 68 | CONFIG_FUTEX=y | 75 | CONFIG_FUTEX=y |
| 69 | CONFIG_ANON_INODES=y | 76 | CONFIG_ANON_INODES=y |
| 70 | CONFIG_EPOLL=y | 77 | CONFIG_EPOLL=y |
| 71 | CONFIG_SIGNALFD=y | 78 | CONFIG_SIGNALFD=y |
| 79 | CONFIG_TIMERFD=y | ||
| 72 | CONFIG_EVENTFD=y | 80 | CONFIG_EVENTFD=y |
| 73 | CONFIG_SHMEM=y | 81 | CONFIG_SHMEM=y |
| 74 | CONFIG_VM_EVENT_COUNTERS=y | 82 | CONFIG_VM_EVENT_COUNTERS=y |
| 75 | CONFIG_SLAB=y | 83 | CONFIG_SLAB=y |
| 76 | # CONFIG_SLUB is not set | 84 | # CONFIG_SLUB is not set |
| 77 | # CONFIG_SLOB is not set | 85 | # CONFIG_SLOB is not set |
| 86 | # CONFIG_PROFILING is not set | ||
| 87 | # CONFIG_MARKERS is not set | ||
| 88 | CONFIG_HAVE_OPROFILE=y | ||
| 89 | # CONFIG_KPROBES is not set | ||
| 90 | CONFIG_HAVE_KPROBES=y | ||
| 91 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 92 | CONFIG_SLABINFO=y | ||
| 78 | CONFIG_RT_MUTEXES=y | 93 | CONFIG_RT_MUTEXES=y |
| 79 | # CONFIG_TINY_SHMEM is not set | 94 | # CONFIG_TINY_SHMEM is not set |
| 80 | CONFIG_BASE_SMALL=0 | 95 | CONFIG_BASE_SMALL=0 |
| @@ -102,6 +117,8 @@ CONFIG_DEFAULT_AS=y | |||
| 102 | # CONFIG_DEFAULT_CFQ is not set | 117 | # CONFIG_DEFAULT_CFQ is not set |
| 103 | # CONFIG_DEFAULT_NOOP is not set | 118 | # CONFIG_DEFAULT_NOOP is not set |
| 104 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 119 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
| 120 | CONFIG_CLASSIC_RCU=y | ||
| 121 | # CONFIG_PREEMPT_RCU is not set | ||
| 105 | 122 | ||
| 106 | # | 123 | # |
| 107 | # System Type | 124 | # System Type |
| @@ -130,6 +147,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
| 130 | # CONFIG_ARCH_KS8695 is not set | 147 | # CONFIG_ARCH_KS8695 is not set |
| 131 | # CONFIG_ARCH_NS9XXX is not set | 148 | # CONFIG_ARCH_NS9XXX is not set |
| 132 | # CONFIG_ARCH_MXC is not set | 149 | # CONFIG_ARCH_MXC is not set |
| 150 | # CONFIG_ARCH_ORION is not set | ||
| 133 | # CONFIG_ARCH_PNX4008 is not set | 151 | # CONFIG_ARCH_PNX4008 is not set |
| 134 | # CONFIG_ARCH_PXA is not set | 152 | # CONFIG_ARCH_PXA is not set |
| 135 | # CONFIG_ARCH_RPC is not set | 153 | # CONFIG_ARCH_RPC is not set |
| @@ -139,6 +157,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
| 139 | # CONFIG_ARCH_LH7A40X is not set | 157 | # CONFIG_ARCH_LH7A40X is not set |
| 140 | # CONFIG_ARCH_DAVINCI is not set | 158 | # CONFIG_ARCH_DAVINCI is not set |
| 141 | CONFIG_ARCH_OMAP=y | 159 | CONFIG_ARCH_OMAP=y |
| 160 | # CONFIG_ARCH_MSM7X00A is not set | ||
| 142 | 161 | ||
| 143 | # | 162 | # |
| 144 | # TI OMAP Implementations | 163 | # TI OMAP Implementations |
| @@ -155,6 +174,7 @@ CONFIG_OMAP_MUX=y | |||
| 155 | # CONFIG_OMAP_MUX_DEBUG is not set | 174 | # CONFIG_OMAP_MUX_DEBUG is not set |
| 156 | CONFIG_OMAP_MUX_WARNINGS=y | 175 | CONFIG_OMAP_MUX_WARNINGS=y |
| 157 | CONFIG_OMAP_MCBSP=y | 176 | CONFIG_OMAP_MCBSP=y |
| 177 | # CONFIG_OMAP_MMU_FWK is not set | ||
| 158 | # CONFIG_OMAP_MPU_TIMER is not set | 178 | # CONFIG_OMAP_MPU_TIMER is not set |
| 159 | CONFIG_OMAP_32K_TIMER=y | 179 | CONFIG_OMAP_32K_TIMER=y |
| 160 | CONFIG_OMAP_32K_TIMER_HZ=128 | 180 | CONFIG_OMAP_32K_TIMER_HZ=128 |
| @@ -266,6 +286,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 | |||
| 266 | CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh" | 286 | CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh" |
| 267 | # CONFIG_XIP_KERNEL is not set | 287 | # CONFIG_XIP_KERNEL is not set |
| 268 | # CONFIG_KEXEC is not set | 288 | # CONFIG_KEXEC is not set |
| 289 | # CONFIG_ATAGS_PROC is not set | ||
| 269 | 290 | ||
| 270 | # | 291 | # |
| 271 | # CPU Frequency scaling | 292 | # CPU Frequency scaling |
| @@ -311,9 +332,10 @@ CONFIG_PM=y | |||
| 311 | # CONFIG_PM_LEGACY is not set | 332 | # CONFIG_PM_LEGACY is not set |
| 312 | # CONFIG_PM_DEBUG is not set | 333 | # CONFIG_PM_DEBUG is not set |
| 313 | CONFIG_PM_SLEEP=y | 334 | CONFIG_PM_SLEEP=y |
| 314 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
| 315 | CONFIG_SUSPEND=y | 335 | CONFIG_SUSPEND=y |
| 336 | CONFIG_SUSPEND_FREEZER=y | ||
| 316 | # CONFIG_APM_EMULATION is not set | 337 | # CONFIG_APM_EMULATION is not set |
| 338 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
| 317 | 339 | ||
| 318 | # | 340 | # |
| 319 | # Networking | 341 | # Networking |
| @@ -330,6 +352,7 @@ CONFIG_XFRM=y | |||
| 330 | # CONFIG_XFRM_USER is not set | 352 | # CONFIG_XFRM_USER is not set |
| 331 | # CONFIG_XFRM_SUB_POLICY is not set | 353 | # CONFIG_XFRM_SUB_POLICY is not set |
| 332 | # CONFIG_XFRM_MIGRATE is not set | 354 | # CONFIG_XFRM_MIGRATE is not set |
| 355 | # CONFIG_XFRM_STATISTICS is not set | ||
| 333 | # CONFIG_NET_KEY is not set | 356 | # CONFIG_NET_KEY is not set |
| 334 | CONFIG_INET=y | 357 | CONFIG_INET=y |
| 335 | # CONFIG_IP_MULTICAST is not set | 358 | # CONFIG_IP_MULTICAST is not set |
| @@ -384,6 +407,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 384 | # | 407 | # |
| 385 | # CONFIG_NET_PKTGEN is not set | 408 | # CONFIG_NET_PKTGEN is not set |
| 386 | # CONFIG_HAMRADIO is not set | 409 | # CONFIG_HAMRADIO is not set |
| 410 | # CONFIG_CAN is not set | ||
| 387 | # CONFIG_IRDA is not set | 411 | # CONFIG_IRDA is not set |
| 388 | # CONFIG_BT is not set | 412 | # CONFIG_BT is not set |
| 389 | # CONFIG_AF_RXRPC is not set | 413 | # CONFIG_AF_RXRPC is not set |
| @@ -421,11 +445,13 @@ CONFIG_BLK_DEV_LOOP=y | |||
| 421 | CONFIG_BLK_DEV_RAM=y | 445 | CONFIG_BLK_DEV_RAM=y |
| 422 | CONFIG_BLK_DEV_RAM_COUNT=16 | 446 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 423 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 447 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
| 424 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 448 | # CONFIG_BLK_DEV_XIP is not set |
| 425 | # CONFIG_CDROM_PKTCDVD is not set | 449 | # CONFIG_CDROM_PKTCDVD is not set |
| 426 | CONFIG_ATA_OVER_ETH=m | 450 | CONFIG_ATA_OVER_ETH=m |
| 427 | CONFIG_MISC_DEVICES=y | 451 | CONFIG_MISC_DEVICES=y |
| 428 | # CONFIG_EEPROM_93CX6 is not set | 452 | # CONFIG_EEPROM_93CX6 is not set |
| 453 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 454 | # CONFIG_HAVE_IDE is not set | ||
| 429 | 455 | ||
| 430 | # | 456 | # |
| 431 | # SCSI device support | 457 | # SCSI device support |
| @@ -489,6 +515,7 @@ CONFIG_SMC91X=y | |||
| 489 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 515 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 490 | # CONFIG_B44 is not set | 516 | # CONFIG_B44 is not set |
| 491 | CONFIG_NETDEV_1000=y | 517 | CONFIG_NETDEV_1000=y |
| 518 | # CONFIG_E1000E_ENABLED is not set | ||
| 492 | CONFIG_NETDEV_10000=y | 519 | CONFIG_NETDEV_10000=y |
| 493 | 520 | ||
| 494 | # | 521 | # |
| @@ -512,7 +539,6 @@ CONFIG_SLIP_COMPRESSED=y | |||
| 512 | CONFIG_SLHC=y | 539 | CONFIG_SLHC=y |
| 513 | # CONFIG_SLIP_SMART is not set | 540 | # CONFIG_SLIP_SMART is not set |
| 514 | # CONFIG_SLIP_MODE_SLIP6 is not set | 541 | # CONFIG_SLIP_MODE_SLIP6 is not set |
| 515 | # CONFIG_SHAPER is not set | ||
| 516 | # CONFIG_NETCONSOLE is not set | 542 | # CONFIG_NETCONSOLE is not set |
| 517 | # CONFIG_NETPOLL is not set | 543 | # CONFIG_NETPOLL is not set |
| 518 | # CONFIG_NET_POLL_CONTROLLER is not set | 544 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -616,12 +642,10 @@ CONFIG_I2C_OMAP=y | |||
| 616 | # | 642 | # |
| 617 | # Miscellaneous I2C Chip support | 643 | # Miscellaneous I2C Chip support |
| 618 | # | 644 | # |
| 619 | # CONFIG_SENSORS_DS1337 is not set | ||
| 620 | # CONFIG_SENSORS_DS1374 is not set | ||
| 621 | # CONFIG_DS1682 is not set | 645 | # CONFIG_DS1682 is not set |
| 622 | # CONFIG_SENSORS_EEPROM is not set | 646 | # CONFIG_SENSORS_EEPROM is not set |
| 623 | # CONFIG_SENSORS_PCF8574 is not set | 647 | # CONFIG_SENSORS_PCF8574 is not set |
| 624 | # CONFIG_SENSORS_PCA9539 is not set | 648 | # CONFIG_PCF8575 is not set |
| 625 | # CONFIG_SENSORS_PCF8591 is not set | 649 | # CONFIG_SENSORS_PCF8591 is not set |
| 626 | # CONFIG_ISP1301_OMAP is not set | 650 | # CONFIG_ISP1301_OMAP is not set |
| 627 | CONFIG_TPS65010=y | 651 | CONFIG_TPS65010=y |
| @@ -649,6 +673,7 @@ CONFIG_HWMON=y | |||
| 649 | # CONFIG_SENSORS_ADM1031 is not set | 673 | # CONFIG_SENSORS_ADM1031 is not set |
| 650 | # CONFIG_SENSORS_ADM9240 is not set | 674 | # CONFIG_SENSORS_ADM9240 is not set |
| 651 | # CONFIG_SENSORS_ADT7470 is not set | 675 | # CONFIG_SENSORS_ADT7470 is not set |
| 676 | # CONFIG_SENSORS_ADT7473 is not set | ||
| 652 | # CONFIG_SENSORS_ATXP1 is not set | 677 | # CONFIG_SENSORS_ATXP1 is not set |
| 653 | # CONFIG_SENSORS_DS1621 is not set | 678 | # CONFIG_SENSORS_DS1621 is not set |
| 654 | # CONFIG_SENSORS_F71805F is not set | 679 | # CONFIG_SENSORS_F71805F is not set |
| @@ -676,6 +701,7 @@ CONFIG_HWMON=y | |||
| 676 | # CONFIG_SENSORS_SMSC47M1 is not set | 701 | # CONFIG_SENSORS_SMSC47M1 is not set |
| 677 | # CONFIG_SENSORS_SMSC47M192 is not set | 702 | # CONFIG_SENSORS_SMSC47M192 is not set |
| 678 | # CONFIG_SENSORS_SMSC47B397 is not set | 703 | # CONFIG_SENSORS_SMSC47B397 is not set |
| 704 | # CONFIG_SENSORS_ADS7828 is not set | ||
| 679 | # CONFIG_SENSORS_THMC50 is not set | 705 | # CONFIG_SENSORS_THMC50 is not set |
| 680 | # CONFIG_SENSORS_VT1211 is not set | 706 | # CONFIG_SENSORS_VT1211 is not set |
| 681 | # CONFIG_SENSORS_W83781D is not set | 707 | # CONFIG_SENSORS_W83781D is not set |
| @@ -683,6 +709,7 @@ CONFIG_HWMON=y | |||
| 683 | # CONFIG_SENSORS_W83792D is not set | 709 | # CONFIG_SENSORS_W83792D is not set |
| 684 | # CONFIG_SENSORS_W83793 is not set | 710 | # CONFIG_SENSORS_W83793 is not set |
| 685 | # CONFIG_SENSORS_W83L785TS is not set | 711 | # CONFIG_SENSORS_W83L785TS is not set |
| 712 | # CONFIG_SENSORS_W83L786NG is not set | ||
| 686 | # CONFIG_SENSORS_W83627HF is not set | 713 | # CONFIG_SENSORS_W83627HF is not set |
| 687 | # CONFIG_SENSORS_W83627EHF is not set | 714 | # CONFIG_SENSORS_W83627EHF is not set |
| 688 | # CONFIG_HWMON_DEBUG_CHIP is not set | 715 | # CONFIG_HWMON_DEBUG_CHIP is not set |
| @@ -705,6 +732,7 @@ CONFIG_SSB_POSSIBLE=y | |||
| 705 | # Multifunction device drivers | 732 | # Multifunction device drivers |
| 706 | # | 733 | # |
| 707 | # CONFIG_MFD_SM501 is not set | 734 | # CONFIG_MFD_SM501 is not set |
| 735 | # CONFIG_MFD_ASIC3 is not set | ||
| 708 | 736 | ||
| 709 | # | 737 | # |
| 710 | # Multimedia devices | 738 | # Multimedia devices |
| @@ -802,10 +830,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
| 802 | # | 830 | # |
| 803 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 831 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
| 804 | # | 832 | # |
| 805 | |||
| 806 | # | ||
| 807 | # USB Gadget Support | ||
| 808 | # | ||
| 809 | # CONFIG_USB_GADGET is not set | 833 | # CONFIG_USB_GADGET is not set |
| 810 | # CONFIG_MMC is not set | 834 | # CONFIG_MMC is not set |
| 811 | # CONFIG_NEW_LEDS is not set | 835 | # CONFIG_NEW_LEDS is not set |
| @@ -826,12 +850,10 @@ CONFIG_EXT2_FS=y | |||
| 826 | # CONFIG_XFS_FS is not set | 850 | # CONFIG_XFS_FS is not set |
| 827 | # CONFIG_GFS2_FS is not set | 851 | # CONFIG_GFS2_FS is not set |
| 828 | # CONFIG_OCFS2_FS is not set | 852 | # CONFIG_OCFS2_FS is not set |
| 829 | # CONFIG_MINIX_FS is not set | 853 | CONFIG_DNOTIFY=y |
| 830 | CONFIG_ROMFS_FS=y | ||
| 831 | CONFIG_INOTIFY=y | 854 | CONFIG_INOTIFY=y |
| 832 | CONFIG_INOTIFY_USER=y | 855 | CONFIG_INOTIFY_USER=y |
| 833 | # CONFIG_QUOTA is not set | 856 | # CONFIG_QUOTA is not set |
| 834 | CONFIG_DNOTIFY=y | ||
| 835 | # CONFIG_AUTOFS_FS is not set | 857 | # CONFIG_AUTOFS_FS is not set |
| 836 | # CONFIG_AUTOFS4_FS is not set | 858 | # CONFIG_AUTOFS4_FS is not set |
| 837 | # CONFIG_FUSE_FS is not set | 859 | # CONFIG_FUSE_FS is not set |
| @@ -874,8 +896,10 @@ CONFIG_SYSFS=y | |||
| 874 | # CONFIG_EFS_FS is not set | 896 | # CONFIG_EFS_FS is not set |
| 875 | CONFIG_CRAMFS=y | 897 | CONFIG_CRAMFS=y |
| 876 | # CONFIG_VXFS_FS is not set | 898 | # CONFIG_VXFS_FS is not set |
| 899 | # CONFIG_MINIX_FS is not set | ||
| 877 | # CONFIG_HPFS_FS is not set | 900 | # CONFIG_HPFS_FS is not set |
| 878 | # CONFIG_QNX4FS_FS is not set | 901 | # CONFIG_QNX4FS_FS is not set |
| 902 | CONFIG_ROMFS_FS=y | ||
| 879 | # CONFIG_SYSV_FS is not set | 903 | # CONFIG_SYSV_FS is not set |
| 880 | # CONFIG_UFS_FS is not set | 904 | # CONFIG_UFS_FS is not set |
| 881 | CONFIG_NETWORK_FILESYSTEMS=y | 905 | CONFIG_NETWORK_FILESYSTEMS=y |
| @@ -946,9 +970,6 @@ CONFIG_NLS_ISO8859_1=y | |||
| 946 | # CONFIG_NLS_KOI8_U is not set | 970 | # CONFIG_NLS_KOI8_U is not set |
| 947 | # CONFIG_NLS_UTF8 is not set | 971 | # CONFIG_NLS_UTF8 is not set |
| 948 | # CONFIG_DLM is not set | 972 | # CONFIG_DLM is not set |
| 949 | CONFIG_INSTRUMENTATION=y | ||
| 950 | # CONFIG_PROFILING is not set | ||
| 951 | # CONFIG_MARKERS is not set | ||
| 952 | 973 | ||
| 953 | # | 974 | # |
| 954 | # Kernel hacking | 975 | # Kernel hacking |
| @@ -975,6 +996,7 @@ CONFIG_FRAME_POINTER=y | |||
| 975 | CONFIG_CRYPTO=y | 996 | CONFIG_CRYPTO=y |
| 976 | CONFIG_CRYPTO_ALGAPI=y | 997 | CONFIG_CRYPTO_ALGAPI=y |
| 977 | CONFIG_CRYPTO_BLKCIPHER=y | 998 | CONFIG_CRYPTO_BLKCIPHER=y |
| 999 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 978 | CONFIG_CRYPTO_MANAGER=y | 1000 | CONFIG_CRYPTO_MANAGER=y |
| 979 | # CONFIG_CRYPTO_HMAC is not set | 1001 | # CONFIG_CRYPTO_HMAC is not set |
| 980 | # CONFIG_CRYPTO_XCBC is not set | 1002 | # CONFIG_CRYPTO_XCBC is not set |
| @@ -992,6 +1014,9 @@ CONFIG_CRYPTO_CBC=y | |||
| 992 | CONFIG_CRYPTO_PCBC=m | 1014 | CONFIG_CRYPTO_PCBC=m |
| 993 | # CONFIG_CRYPTO_LRW is not set | 1015 | # CONFIG_CRYPTO_LRW is not set |
| 994 | # CONFIG_CRYPTO_XTS is not set | 1016 | # CONFIG_CRYPTO_XTS is not set |
| 1017 | # CONFIG_CRYPTO_CTR is not set | ||
| 1018 | # CONFIG_CRYPTO_GCM is not set | ||
| 1019 | # CONFIG_CRYPTO_CCM is not set | ||
| 995 | # CONFIG_CRYPTO_CRYPTD is not set | 1020 | # CONFIG_CRYPTO_CRYPTD is not set |
| 996 | CONFIG_CRYPTO_DES=y | 1021 | CONFIG_CRYPTO_DES=y |
| 997 | # CONFIG_CRYPTO_FCRYPT is not set | 1022 | # CONFIG_CRYPTO_FCRYPT is not set |
| @@ -1006,12 +1031,14 @@ CONFIG_CRYPTO_DES=y | |||
| 1006 | # CONFIG_CRYPTO_KHAZAD is not set | 1031 | # CONFIG_CRYPTO_KHAZAD is not set |
| 1007 | # CONFIG_CRYPTO_ANUBIS is not set | 1032 | # CONFIG_CRYPTO_ANUBIS is not set |
| 1008 | # CONFIG_CRYPTO_SEED is not set | 1033 | # CONFIG_CRYPTO_SEED is not set |
| 1034 | # CONFIG_CRYPTO_SALSA20 is not set | ||
| 1009 | # CONFIG_CRYPTO_DEFLATE is not set | 1035 | # CONFIG_CRYPTO_DEFLATE is not set |
| 1010 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1036 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
| 1011 | # CONFIG_CRYPTO_CRC32C is not set | 1037 | # CONFIG_CRYPTO_CRC32C is not set |
| 1012 | # CONFIG_CRYPTO_CAMELLIA is not set | 1038 | # CONFIG_CRYPTO_CAMELLIA is not set |
| 1013 | # CONFIG_CRYPTO_TEST is not set | 1039 | # CONFIG_CRYPTO_TEST is not set |
| 1014 | # CONFIG_CRYPTO_AUTHENC is not set | 1040 | # CONFIG_CRYPTO_AUTHENC is not set |
| 1041 | # CONFIG_CRYPTO_LZO is not set | ||
| 1015 | CONFIG_CRYPTO_HW=y | 1042 | CONFIG_CRYPTO_HW=y |
| 1016 | 1043 | ||
| 1017 | # | 1044 | # |
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig index d592a6487114..d4ca5e6e4ffa 100644 --- a/arch/arm/configs/omap_osk_5912_defconfig +++ b/arch/arm/configs/omap_osk_5912_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.24-rc5 | 3 | # Linux kernel version: 2.6.25-rc3 |
| 4 | # Mon Dec 17 21:12:45 2007 | 4 | # Mon Mar 3 03:35:17 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
| 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
| @@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
| 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
| 22 | CONFIG_GENERIC_HWEIGHT=y | 22 | CONFIG_GENERIC_HWEIGHT=y |
| 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 24 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
| 24 | CONFIG_ZONE_DMA=y | 25 | CONFIG_ZONE_DMA=y |
| 25 | CONFIG_VECTORS_BASE=0xffff0000 | 26 | CONFIG_VECTORS_BASE=0xffff0000 |
| 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 27 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| @@ -39,17 +40,22 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 39 | # CONFIG_POSIX_MQUEUE is not set | 40 | # CONFIG_POSIX_MQUEUE is not set |
| 40 | # CONFIG_BSD_PROCESS_ACCT is not set | 41 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 41 | # CONFIG_TASKSTATS is not set | 42 | # CONFIG_TASKSTATS is not set |
| 42 | # CONFIG_USER_NS is not set | ||
| 43 | # CONFIG_PID_NS is not set | ||
| 44 | # CONFIG_AUDIT is not set | 43 | # CONFIG_AUDIT is not set |
| 45 | # CONFIG_IKCONFIG is not set | 44 | # CONFIG_IKCONFIG is not set |
| 46 | CONFIG_LOG_BUF_SHIFT=14 | 45 | CONFIG_LOG_BUF_SHIFT=14 |
| 47 | # CONFIG_CGROUPS is not set | 46 | # CONFIG_CGROUPS is not set |
| 47 | CONFIG_GROUP_SCHED=y | ||
| 48 | CONFIG_FAIR_GROUP_SCHED=y | 48 | CONFIG_FAIR_GROUP_SCHED=y |
| 49 | CONFIG_FAIR_USER_SCHED=y | 49 | # CONFIG_RT_GROUP_SCHED is not set |
| 50 | # CONFIG_FAIR_CGROUP_SCHED is not set | 50 | CONFIG_USER_SCHED=y |
| 51 | # CONFIG_CGROUP_SCHED is not set | ||
| 51 | # CONFIG_SYSFS_DEPRECATED is not set | 52 | # CONFIG_SYSFS_DEPRECATED is not set |
| 52 | # CONFIG_RELAY is not set | 53 | # CONFIG_RELAY is not set |
| 54 | CONFIG_NAMESPACES=y | ||
| 55 | # CONFIG_UTS_NS is not set | ||
| 56 | # CONFIG_IPC_NS is not set | ||
| 57 | # CONFIG_USER_NS is not set | ||
| 58 | # CONFIG_PID_NS is not set | ||
| 53 | CONFIG_BLK_DEV_INITRD=y | 59 | CONFIG_BLK_DEV_INITRD=y |
| 54 | CONFIG_INITRAMFS_SOURCE="" | 60 | CONFIG_INITRAMFS_SOURCE="" |
| 55 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 61 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| @@ -63,17 +69,26 @@ CONFIG_HOTPLUG=y | |||
| 63 | CONFIG_PRINTK=y | 69 | CONFIG_PRINTK=y |
| 64 | CONFIG_BUG=y | 70 | CONFIG_BUG=y |
| 65 | CONFIG_ELF_CORE=y | 71 | CONFIG_ELF_CORE=y |
| 72 | CONFIG_COMPAT_BRK=y | ||
| 66 | CONFIG_BASE_FULL=y | 73 | CONFIG_BASE_FULL=y |
| 67 | CONFIG_FUTEX=y | 74 | CONFIG_FUTEX=y |
| 68 | CONFIG_ANON_INODES=y | 75 | CONFIG_ANON_INODES=y |
| 69 | CONFIG_EPOLL=y | 76 | CONFIG_EPOLL=y |
| 70 | CONFIG_SIGNALFD=y | 77 | CONFIG_SIGNALFD=y |
| 78 | CONFIG_TIMERFD=y | ||
| 71 | CONFIG_EVENTFD=y | 79 | CONFIG_EVENTFD=y |
| 72 | CONFIG_SHMEM=y | 80 | CONFIG_SHMEM=y |
| 73 | CONFIG_VM_EVENT_COUNTERS=y | 81 | CONFIG_VM_EVENT_COUNTERS=y |
| 74 | CONFIG_SLAB=y | 82 | CONFIG_SLAB=y |
| 75 | # CONFIG_SLUB is not set | 83 | # CONFIG_SLUB is not set |
| 76 | # CONFIG_SLOB is not set | 84 | # CONFIG_SLOB is not set |
| 85 | # CONFIG_PROFILING is not set | ||
| 86 | # CONFIG_MARKERS is not set | ||
| 87 | CONFIG_HAVE_OPROFILE=y | ||
| 88 | # CONFIG_KPROBES is not set | ||
| 89 | CONFIG_HAVE_KPROBES=y | ||
| 90 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 91 | CONFIG_SLABINFO=y | ||
| 77 | CONFIG_RT_MUTEXES=y | 92 | CONFIG_RT_MUTEXES=y |
| 78 | # CONFIG_TINY_SHMEM is not set | 93 | # CONFIG_TINY_SHMEM is not set |
| 79 | CONFIG_BASE_SMALL=0 | 94 | CONFIG_BASE_SMALL=0 |
| @@ -101,6 +116,8 @@ CONFIG_IOSCHED_CFQ=y | |||
| 101 | CONFIG_DEFAULT_CFQ=y | 116 | CONFIG_DEFAULT_CFQ=y |
| 102 | # CONFIG_DEFAULT_NOOP is not set | 117 | # CONFIG_DEFAULT_NOOP is not set |
| 103 | CONFIG_DEFAULT_IOSCHED="cfq" | 118 | CONFIG_DEFAULT_IOSCHED="cfq" |
| 119 | CONFIG_CLASSIC_RCU=y | ||
| 120 | # CONFIG_PREEMPT_RCU is not set | ||
| 104 | 121 | ||
| 105 | # | 122 | # |
| 106 | # System Type | 123 | # System Type |
| @@ -129,6 +146,7 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
| 129 | # CONFIG_ARCH_KS8695 is not set | 146 | # CONFIG_ARCH_KS8695 is not set |
| 130 | # CONFIG_ARCH_NS9XXX is not set | 147 | # CONFIG_ARCH_NS9XXX is not set |
| 131 | # CONFIG_ARCH_MXC is not set | 148 | # CONFIG_ARCH_MXC is not set |
| 149 | # CONFIG_ARCH_ORION is not set | ||
| 132 | # CONFIG_ARCH_PNX4008 is not set | 150 | # CONFIG_ARCH_PNX4008 is not set |
| 133 | # CONFIG_ARCH_PXA is not set | 151 | # CONFIG_ARCH_PXA is not set |
| 134 | # CONFIG_ARCH_RPC is not set | 152 | # CONFIG_ARCH_RPC is not set |
| @@ -138,6 +156,7 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
| 138 | # CONFIG_ARCH_LH7A40X is not set | 156 | # CONFIG_ARCH_LH7A40X is not set |
| 139 | # CONFIG_ARCH_DAVINCI is not set | 157 | # CONFIG_ARCH_DAVINCI is not set |
| 140 | CONFIG_ARCH_OMAP=y | 158 | CONFIG_ARCH_OMAP=y |
| 159 | # CONFIG_ARCH_MSM7X00A is not set | ||
| 141 | 160 | ||
| 142 | # | 161 | # |
| 143 | # TI OMAP Implementations | 162 | # TI OMAP Implementations |
| @@ -154,6 +173,7 @@ CONFIG_OMAP_MUX=y | |||
| 154 | # CONFIG_OMAP_MUX_DEBUG is not set | 173 | # CONFIG_OMAP_MUX_DEBUG is not set |
| 155 | CONFIG_OMAP_MUX_WARNINGS=y | 174 | CONFIG_OMAP_MUX_WARNINGS=y |
| 156 | CONFIG_OMAP_MCBSP=y | 175 | CONFIG_OMAP_MCBSP=y |
| 176 | # CONFIG_OMAP_MMU_FWK is not set | ||
| 157 | # CONFIG_OMAP_MPU_TIMER is not set | 177 | # CONFIG_OMAP_MPU_TIMER is not set |
| 158 | CONFIG_OMAP_32K_TIMER=y | 178 | CONFIG_OMAP_32K_TIMER=y |
| 159 | CONFIG_OMAP_32K_TIMER_HZ=128 | 179 | CONFIG_OMAP_32K_TIMER_HZ=128 |
| @@ -173,13 +193,13 @@ CONFIG_ARCH_OMAP16XX=y | |||
| 173 | # | 193 | # |
| 174 | # OMAP Board Type | 194 | # OMAP Board Type |
| 175 | # | 195 | # |
| 176 | # CONFIG_MACH_OMAP_INNOVATOR is not set | 196 | CONFIG_MACH_OMAP_INNOVATOR=y |
| 177 | # CONFIG_MACH_OMAP_H2 is not set | 197 | CONFIG_MACH_OMAP_H2=y |
| 178 | # CONFIG_MACH_OMAP_H3 is not set | 198 | CONFIG_MACH_OMAP_H3=y |
| 179 | CONFIG_MACH_OMAP_OSK=y | 199 | CONFIG_MACH_OMAP_OSK=y |
| 180 | # CONFIG_OMAP_OSK_MISTRAL is not set | 200 | # CONFIG_OMAP_OSK_MISTRAL is not set |
| 181 | # CONFIG_MACH_NOKIA770 is not set | 201 | CONFIG_MACH_NOKIA770=y |
| 182 | # CONFIG_MACH_OMAP_GENERIC is not set | 202 | CONFIG_MACH_OMAP_GENERIC=y |
| 183 | 203 | ||
| 184 | # | 204 | # |
| 185 | # OMAP CPU Speed | 205 | # OMAP CPU Speed |
| @@ -275,6 +295,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 | |||
| 275 | CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw" | 295 | CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw" |
| 276 | # CONFIG_XIP_KERNEL is not set | 296 | # CONFIG_XIP_KERNEL is not set |
| 277 | # CONFIG_KEXEC is not set | 297 | # CONFIG_KEXEC is not set |
| 298 | # CONFIG_ATAGS_PROC is not set | ||
| 278 | 299 | ||
| 279 | # | 300 | # |
| 280 | # CPU Frequency scaling | 301 | # CPU Frequency scaling |
| @@ -307,9 +328,10 @@ CONFIG_PM=y | |||
| 307 | # CONFIG_PM_LEGACY is not set | 328 | # CONFIG_PM_LEGACY is not set |
| 308 | # CONFIG_PM_DEBUG is not set | 329 | # CONFIG_PM_DEBUG is not set |
| 309 | CONFIG_PM_SLEEP=y | 330 | CONFIG_PM_SLEEP=y |
| 310 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
| 311 | CONFIG_SUSPEND=y | 331 | CONFIG_SUSPEND=y |
| 332 | CONFIG_SUSPEND_FREEZER=y | ||
| 312 | # CONFIG_APM_EMULATION is not set | 333 | # CONFIG_APM_EMULATION is not set |
| 334 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
| 313 | 335 | ||
| 314 | # | 336 | # |
| 315 | # Networking | 337 | # Networking |
| @@ -326,6 +348,7 @@ CONFIG_XFRM=y | |||
| 326 | # CONFIG_XFRM_USER is not set | 348 | # CONFIG_XFRM_USER is not set |
| 327 | # CONFIG_XFRM_SUB_POLICY is not set | 349 | # CONFIG_XFRM_SUB_POLICY is not set |
| 328 | # CONFIG_XFRM_MIGRATE is not set | 350 | # CONFIG_XFRM_MIGRATE is not set |
| 351 | # CONFIG_XFRM_STATISTICS is not set | ||
| 329 | # CONFIG_NET_KEY is not set | 352 | # CONFIG_NET_KEY is not set |
| 330 | CONFIG_INET=y | 353 | CONFIG_INET=y |
| 331 | CONFIG_IP_MULTICAST=y | 354 | CONFIG_IP_MULTICAST=y |
| @@ -381,6 +404,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 381 | # | 404 | # |
| 382 | # CONFIG_NET_PKTGEN is not set | 405 | # CONFIG_NET_PKTGEN is not set |
| 383 | # CONFIG_HAMRADIO is not set | 406 | # CONFIG_HAMRADIO is not set |
| 407 | # CONFIG_CAN is not set | ||
| 384 | # CONFIG_IRDA is not set | 408 | # CONFIG_IRDA is not set |
| 385 | # CONFIG_BT is not set | 409 | # CONFIG_BT is not set |
| 386 | # CONFIG_AF_RXRPC is not set | 410 | # CONFIG_AF_RXRPC is not set |
| @@ -493,11 +517,13 @@ CONFIG_BLK_DEV_LOOP=y | |||
| 493 | CONFIG_BLK_DEV_RAM=y | 517 | CONFIG_BLK_DEV_RAM=y |
| 494 | CONFIG_BLK_DEV_RAM_COUNT=16 | 518 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 495 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 519 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
| 496 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 520 | # CONFIG_BLK_DEV_XIP is not set |
| 497 | # CONFIG_CDROM_PKTCDVD is not set | 521 | # CONFIG_CDROM_PKTCDVD is not set |
| 498 | # CONFIG_ATA_OVER_ETH is not set | 522 | # CONFIG_ATA_OVER_ETH is not set |
| 499 | CONFIG_MISC_DEVICES=y | 523 | CONFIG_MISC_DEVICES=y |
| 500 | # CONFIG_EEPROM_93CX6 is not set | 524 | # CONFIG_EEPROM_93CX6 is not set |
| 525 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 526 | CONFIG_HAVE_IDE=y | ||
| 501 | CONFIG_IDE=m | 527 | CONFIG_IDE=m |
| 502 | CONFIG_BLK_DEV_IDE=m | 528 | CONFIG_BLK_DEV_IDE=m |
| 503 | 529 | ||
| @@ -519,7 +545,6 @@ CONFIG_IDE_PROC_FS=y | |||
| 519 | # | 545 | # |
| 520 | # CONFIG_IDE_GENERIC is not set | 546 | # CONFIG_IDE_GENERIC is not set |
| 521 | # CONFIG_BLK_DEV_PLATFORM is not set | 547 | # CONFIG_BLK_DEV_PLATFORM is not set |
| 522 | # CONFIG_IDE_ARM is not set | ||
| 523 | # CONFIG_BLK_DEV_IDEDMA is not set | 548 | # CONFIG_BLK_DEV_IDEDMA is not set |
| 524 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 549 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
| 525 | # CONFIG_BLK_DEV_HD is not set | 550 | # CONFIG_BLK_DEV_HD is not set |
| @@ -553,6 +578,7 @@ CONFIG_SMC91X=y | |||
| 553 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 578 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
| 554 | # CONFIG_B44 is not set | 579 | # CONFIG_B44 is not set |
| 555 | CONFIG_NETDEV_1000=y | 580 | CONFIG_NETDEV_1000=y |
| 581 | # CONFIG_E1000E_ENABLED is not set | ||
| 556 | CONFIG_NETDEV_10000=y | 582 | CONFIG_NETDEV_10000=y |
| 557 | 583 | ||
| 558 | # | 584 | # |
| @@ -574,7 +600,6 @@ CONFIG_PPP_MULTILINK=y | |||
| 574 | # CONFIG_PPPOL2TP is not set | 600 | # CONFIG_PPPOL2TP is not set |
| 575 | # CONFIG_SLIP is not set | 601 | # CONFIG_SLIP is not set |
| 576 | CONFIG_SLHC=y | 602 | CONFIG_SLHC=y |
| 577 | # CONFIG_SHAPER is not set | ||
| 578 | # CONFIG_NETCONSOLE is not set | 603 | # CONFIG_NETCONSOLE is not set |
| 579 | # CONFIG_NETPOLL is not set | 604 | # CONFIG_NETPOLL is not set |
| 580 | # CONFIG_NET_POLL_CONTROLLER is not set | 605 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -671,6 +696,7 @@ CONFIG_HW_RANDOM_OMAP=m | |||
| 671 | # CONFIG_SYNCLINK_CS is not set | 696 | # CONFIG_SYNCLINK_CS is not set |
| 672 | # CONFIG_CARDMAN_4000 is not set | 697 | # CONFIG_CARDMAN_4000 is not set |
| 673 | # CONFIG_CARDMAN_4040 is not set | 698 | # CONFIG_CARDMAN_4040 is not set |
| 699 | # CONFIG_IPWIRELESS is not set | ||
| 674 | # CONFIG_RAW_DRIVER is not set | 700 | # CONFIG_RAW_DRIVER is not set |
| 675 | # CONFIG_TCG_TPM is not set | 701 | # CONFIG_TCG_TPM is not set |
| 676 | CONFIG_I2C=y | 702 | CONFIG_I2C=y |
| @@ -698,12 +724,10 @@ CONFIG_I2C_OMAP=y | |||
| 698 | # | 724 | # |
| 699 | # Miscellaneous I2C Chip support | 725 | # Miscellaneous I2C Chip support |
| 700 | # | 726 | # |
| 701 | # CONFIG_SENSORS_DS1337 is not set | ||
| 702 | # CONFIG_SENSORS_DS1374 is not set | ||
| 703 | # CONFIG_DS1682 is not set | 727 | # CONFIG_DS1682 is not set |
| 704 | # CONFIG_SENSORS_EEPROM is not set | 728 | # CONFIG_SENSORS_EEPROM is not set |
| 705 | # CONFIG_SENSORS_PCF8574 is not set | 729 | # CONFIG_SENSORS_PCF8574 is not set |
| 706 | # CONFIG_SENSORS_PCA9539 is not set | 730 | # CONFIG_PCF8575 is not set |
| 707 | # CONFIG_SENSORS_PCF8591 is not set | 731 | # CONFIG_SENSORS_PCF8591 is not set |
| 708 | # CONFIG_ISP1301_OMAP is not set | 732 | # CONFIG_ISP1301_OMAP is not set |
| 709 | CONFIG_TPS65010=y | 733 | CONFIG_TPS65010=y |
| @@ -731,6 +755,7 @@ CONFIG_HWMON=y | |||
| 731 | # CONFIG_SENSORS_ADM1031 is not set | 755 | # CONFIG_SENSORS_ADM1031 is not set |
| 732 | # CONFIG_SENSORS_ADM9240 is not set | 756 | # CONFIG_SENSORS_ADM9240 is not set |
| 733 | # CONFIG_SENSORS_ADT7470 is not set | 757 | # CONFIG_SENSORS_ADT7470 is not set |
| 758 | # CONFIG_SENSORS_ADT7473 is not set | ||
| 734 | # CONFIG_SENSORS_ATXP1 is not set | 759 | # CONFIG_SENSORS_ATXP1 is not set |
| 735 | # CONFIG_SENSORS_DS1621 is not set | 760 | # CONFIG_SENSORS_DS1621 is not set |
| 736 | # CONFIG_SENSORS_F71805F is not set | 761 | # CONFIG_SENSORS_F71805F is not set |
| @@ -758,6 +783,7 @@ CONFIG_HWMON=y | |||
| 758 | # CONFIG_SENSORS_SMSC47M1 is not set | 783 | # CONFIG_SENSORS_SMSC47M1 is not set |
| 759 | # CONFIG_SENSORS_SMSC47M192 is not set | 784 | # CONFIG_SENSORS_SMSC47M192 is not set |
| 760 | # CONFIG_SENSORS_SMSC47B397 is not set | 785 | # CONFIG_SENSORS_SMSC47B397 is not set |
| 786 | # CONFIG_SENSORS_ADS7828 is not set | ||
| 761 | # CONFIG_SENSORS_THMC50 is not set | 787 | # CONFIG_SENSORS_THMC50 is not set |
| 762 | # CONFIG_SENSORS_VT1211 is not set | 788 | # CONFIG_SENSORS_VT1211 is not set |
| 763 | # CONFIG_SENSORS_W83781D is not set | 789 | # CONFIG_SENSORS_W83781D is not set |
| @@ -765,6 +791,7 @@ CONFIG_HWMON=y | |||
| 765 | # CONFIG_SENSORS_W83792D is not set | 791 | # CONFIG_SENSORS_W83792D is not set |
| 766 | # CONFIG_SENSORS_W83793 is not set | 792 | # CONFIG_SENSORS_W83793 is not set |
| 767 | # CONFIG_SENSORS_W83L785TS is not set | 793 | # CONFIG_SENSORS_W83L785TS is not set |
| 794 | # CONFIG_SENSORS_W83L786NG is not set | ||
| 768 | # CONFIG_SENSORS_W83627HF is not set | 795 | # CONFIG_SENSORS_W83627HF is not set |
| 769 | # CONFIG_SENSORS_W83627EHF is not set | 796 | # CONFIG_SENSORS_W83627EHF is not set |
| 770 | # CONFIG_HWMON_DEBUG_CHIP is not set | 797 | # CONFIG_HWMON_DEBUG_CHIP is not set |
| @@ -780,6 +807,7 @@ CONFIG_SSB_POSSIBLE=y | |||
| 780 | # Multifunction device drivers | 807 | # Multifunction device drivers |
| 781 | # | 808 | # |
| 782 | # CONFIG_MFD_SM501 is not set | 809 | # CONFIG_MFD_SM501 is not set |
| 810 | # CONFIG_MFD_ASIC3 is not set | ||
| 783 | 811 | ||
| 784 | # | 812 | # |
| 785 | # Multimedia devices | 813 | # Multimedia devices |
| @@ -865,10 +893,6 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
| 865 | # | 893 | # |
| 866 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 894 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
| 867 | # | 895 | # |
| 868 | |||
| 869 | # | ||
| 870 | # USB Gadget Support | ||
| 871 | # | ||
| 872 | # CONFIG_USB_GADGET is not set | 896 | # CONFIG_USB_GADGET is not set |
| 873 | # CONFIG_MMC is not set | 897 | # CONFIG_MMC is not set |
| 874 | # CONFIG_NEW_LEDS is not set | 898 | # CONFIG_NEW_LEDS is not set |
| @@ -889,12 +913,10 @@ CONFIG_EXT2_FS=y | |||
| 889 | # CONFIG_XFS_FS is not set | 913 | # CONFIG_XFS_FS is not set |
| 890 | # CONFIG_GFS2_FS is not set | 914 | # CONFIG_GFS2_FS is not set |
| 891 | # CONFIG_OCFS2_FS is not set | 915 | # CONFIG_OCFS2_FS is not set |
| 892 | # CONFIG_MINIX_FS is not set | 916 | CONFIG_DNOTIFY=y |
| 893 | # CONFIG_ROMFS_FS is not set | ||
| 894 | CONFIG_INOTIFY=y | 917 | CONFIG_INOTIFY=y |
| 895 | CONFIG_INOTIFY_USER=y | 918 | CONFIG_INOTIFY_USER=y |
| 896 | # CONFIG_QUOTA is not set | 919 | # CONFIG_QUOTA is not set |
| 897 | CONFIG_DNOTIFY=y | ||
| 898 | CONFIG_AUTOFS_FS=y | 920 | CONFIG_AUTOFS_FS=y |
| 899 | CONFIG_AUTOFS4_FS=y | 921 | CONFIG_AUTOFS4_FS=y |
| 900 | # CONFIG_FUSE_FS is not set | 922 | # CONFIG_FUSE_FS is not set |
| @@ -948,8 +970,10 @@ CONFIG_JFFS2_RTIME=y | |||
| 948 | # CONFIG_JFFS2_RUBIN is not set | 970 | # CONFIG_JFFS2_RUBIN is not set |
| 949 | # CONFIG_CRAMFS is not set | 971 | # CONFIG_CRAMFS is not set |
| 950 | # CONFIG_VXFS_FS is not set | 972 | # CONFIG_VXFS_FS is not set |
| 973 | # CONFIG_MINIX_FS is not set | ||
| 951 | # CONFIG_HPFS_FS is not set | 974 | # CONFIG_HPFS_FS is not set |
| 952 | # CONFIG_QNX4FS_FS is not set | 975 | # CONFIG_QNX4FS_FS is not set |
| 976 | # CONFIG_ROMFS_FS is not set | ||
| 953 | # CONFIG_SYSV_FS is not set | 977 | # CONFIG_SYSV_FS is not set |
| 954 | # CONFIG_UFS_FS is not set | 978 | # CONFIG_UFS_FS is not set |
| 955 | CONFIG_NETWORK_FILESYSTEMS=y | 979 | CONFIG_NETWORK_FILESYSTEMS=y |
| @@ -1019,9 +1043,6 @@ CONFIG_NLS_ISO8859_1=m | |||
| 1019 | # CONFIG_NLS_KOI8_U is not set | 1043 | # CONFIG_NLS_KOI8_U is not set |
| 1020 | # CONFIG_NLS_UTF8 is not set | 1044 | # CONFIG_NLS_UTF8 is not set |
| 1021 | # CONFIG_DLM is not set | 1045 | # CONFIG_DLM is not set |
| 1022 | CONFIG_INSTRUMENTATION=y | ||
| 1023 | # CONFIG_PROFILING is not set | ||
| 1024 | # CONFIG_MARKERS is not set | ||
| 1025 | 1046 | ||
| 1026 | # | 1047 | # |
| 1027 | # Kernel hacking | 1048 | # Kernel hacking |
| @@ -1045,7 +1066,51 @@ CONFIG_FRAME_POINTER=y | |||
| 1045 | # CONFIG_KEYS is not set | 1066 | # CONFIG_KEYS is not set |
| 1046 | # CONFIG_SECURITY is not set | 1067 | # CONFIG_SECURITY is not set |
| 1047 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1068 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
| 1048 | # CONFIG_CRYPTO is not set | 1069 | CONFIG_CRYPTO=y |
| 1070 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1071 | # CONFIG_CRYPTO_MANAGER is not set | ||
| 1072 | # CONFIG_CRYPTO_HMAC is not set | ||
| 1073 | # CONFIG_CRYPTO_XCBC is not set | ||
| 1074 | # CONFIG_CRYPTO_NULL is not set | ||
| 1075 | # CONFIG_CRYPTO_MD4 is not set | ||
| 1076 | # CONFIG_CRYPTO_MD5 is not set | ||
| 1077 | # CONFIG_CRYPTO_SHA1 is not set | ||
| 1078 | # CONFIG_CRYPTO_SHA256 is not set | ||
| 1079 | # CONFIG_CRYPTO_SHA512 is not set | ||
| 1080 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1081 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 1082 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 1083 | # CONFIG_CRYPTO_ECB is not set | ||
| 1084 | # CONFIG_CRYPTO_CBC is not set | ||
| 1085 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1086 | # CONFIG_CRYPTO_LRW is not set | ||
| 1087 | # CONFIG_CRYPTO_XTS is not set | ||
| 1088 | # CONFIG_CRYPTO_CTR is not set | ||
| 1089 | # CONFIG_CRYPTO_GCM is not set | ||
| 1090 | # CONFIG_CRYPTO_CCM is not set | ||
| 1091 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1092 | # CONFIG_CRYPTO_DES is not set | ||
| 1093 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1094 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
| 1095 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1096 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1097 | # CONFIG_CRYPTO_AES is not set | ||
| 1098 | # CONFIG_CRYPTO_CAST5 is not set | ||
| 1099 | # CONFIG_CRYPTO_CAST6 is not set | ||
| 1100 | # CONFIG_CRYPTO_TEA is not set | ||
| 1101 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 1102 | # CONFIG_CRYPTO_KHAZAD is not set | ||
| 1103 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1104 | # CONFIG_CRYPTO_SEED is not set | ||
| 1105 | # CONFIG_CRYPTO_SALSA20 is not set | ||
| 1106 | # CONFIG_CRYPTO_DEFLATE is not set | ||
| 1107 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1108 | # CONFIG_CRYPTO_CRC32C is not set | ||
| 1109 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1110 | # CONFIG_CRYPTO_TEST is not set | ||
| 1111 | # CONFIG_CRYPTO_AUTHENC is not set | ||
| 1112 | # CONFIG_CRYPTO_LZO is not set | ||
| 1113 | CONFIG_CRYPTO_HW=y | ||
| 1049 | 1114 | ||
| 1050 | # | 1115 | # |
| 1051 | # Library routines | 1116 | # Library routines |
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index 024a9cf469b4..50f667febe29 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
| @@ -11,6 +11,9 @@ | |||
| 11 | * | 11 | * |
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | #define ATAG_CORE 0x54410001 | ||
| 15 | #define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2) | ||
| 16 | |||
| 14 | .type __switch_data, %object | 17 | .type __switch_data, %object |
| 15 | __switch_data: | 18 | __switch_data: |
| 16 | .long __mmap_switched | 19 | .long __mmap_switched |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 7898cbc9861a..bff4c6e90dd5 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
| @@ -29,9 +29,6 @@ | |||
| 29 | #define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET) | 29 | #define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET) |
| 30 | #define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET) | 30 | #define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET) |
| 31 | 31 | ||
| 32 | #define ATAG_CORE 0x54410001 | ||
| 33 | #define ATAG_CORE_SIZE ((2*4 + 3*4) >> 2) | ||
| 34 | |||
| 35 | 32 | ||
| 36 | /* | 33 | /* |
| 37 | * swapper_pg_dir is the virtual address of the initial page table. | 34 | * swapper_pg_dir is the virtual address of the initial page table. |
diff --git a/arch/arm/kernel/kprobes.c b/arch/arm/kernel/kprobes.c index a22a98c43ca5..13e371aad879 100644 --- a/arch/arm/kernel/kprobes.c +++ b/arch/arm/kernel/kprobes.c | |||
| @@ -431,6 +431,11 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) | |||
| 431 | return 0; | 431 | return 0; |
| 432 | } | 432 | } |
| 433 | 433 | ||
| 434 | int __kprobes arch_trampoline_kprobe(struct kprobe *p) | ||
| 435 | { | ||
| 436 | return 0; | ||
| 437 | } | ||
| 438 | |||
| 434 | static struct undef_hook kprobes_break_hook = { | 439 | static struct undef_hook kprobes_break_hook = { |
| 435 | .instr_mask = 0xffffffff, | 440 | .instr_mask = 0xffffffff, |
| 436 | .instr_val = KPROBE_BREAKPOINT_INSTRUCTION, | 441 | .instr_val = KPROBE_BREAKPOINT_INSTRUCTION, |
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c index 38313abef657..bf103b24c937 100644 --- a/arch/arm/mach-at91/board-sam9263ek.c +++ b/arch/arm/mach-at91/board-sam9263ek.c | |||
| @@ -245,10 +245,7 @@ static struct fb_monspecs at91fb_default_monspecs = { | |||
| 245 | 245 | ||
| 246 | static void at91_lcdc_power_control(int on) | 246 | static void at91_lcdc_power_control(int on) |
| 247 | { | 247 | { |
| 248 | if (on) | 248 | at91_set_gpio_value(AT91_PIN_PA30, on); |
| 249 | at91_set_gpio_value(AT91_PIN_PD12, 0); /* power up */ | ||
| 250 | else | ||
| 251 | at91_set_gpio_value(AT91_PIN_PD12, 1); /* power down */ | ||
| 252 | } | 249 | } |
| 253 | 250 | ||
| 254 | /* Driver datas */ | 251 | /* Driver datas */ |
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c index f629c2b5f0c5..ee4964abcaf5 100644 --- a/arch/arm/mach-at91/gpio.c +++ b/arch/arm/mach-at91/gpio.c | |||
| @@ -490,6 +490,11 @@ postcore_initcall(at91_gpio_debugfs_init); | |||
| 490 | 490 | ||
| 491 | /*--------------------------------------------------------------------------*/ | 491 | /*--------------------------------------------------------------------------*/ |
| 492 | 492 | ||
| 493 | /* This lock class tells lockdep that GPIO irqs are in a different | ||
| 494 | * category than their parents, so it won't report false recursion. | ||
| 495 | */ | ||
| 496 | static struct lock_class_key gpio_lock_class; | ||
| 497 | |||
| 493 | /* | 498 | /* |
| 494 | * Called from the processor-specific init to enable GPIO interrupt support. | 499 | * Called from the processor-specific init to enable GPIO interrupt support. |
| 495 | */ | 500 | */ |
| @@ -510,6 +515,8 @@ void __init at91_gpio_irq_setup(void) | |||
| 510 | __raw_writel(~0, this->regbase + PIO_IDR); | 515 | __raw_writel(~0, this->regbase + PIO_IDR); |
| 511 | 516 | ||
| 512 | for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { | 517 | for (i = 0, pin = this->chipbase; i < 32; i++, pin++) { |
| 518 | lockdep_set_class(&irq_desc[pin].lock, &gpio_lock_class); | ||
| 519 | |||
| 513 | /* | 520 | /* |
| 514 | * Can use the "simple" and not "edge" handler since it's | 521 | * Can use the "simple" and not "edge" handler since it's |
| 515 | * shorter, and the AIC handles interrupts sanely. | 522 | * shorter, and the AIC handles interrupts sanely. |
diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c index 7f31816896ad..45144ad2bed9 100644 --- a/arch/arm/mach-h720x/common.c +++ b/arch/arm/mach-h720x/common.c | |||
| @@ -103,7 +103,7 @@ static void | |||
| 103 | h720x_gpio_handler(unsigned int mask, unsigned int irq, | 103 | h720x_gpio_handler(unsigned int mask, unsigned int irq, |
| 104 | struct irq_desc *desc) | 104 | struct irq_desc *desc) |
| 105 | { | 105 | { |
| 106 | IRQDBG("%s irq: %d\n",__FUNCTION__,irq); | 106 | IRQDBG("%s irq: %d\n", __func__, irq); |
| 107 | desc = irq_desc + irq; | 107 | desc = irq_desc + irq; |
| 108 | while (mask) { | 108 | while (mask) { |
| 109 | if (mask & 1) { | 109 | if (mask & 1) { |
| @@ -123,7 +123,7 @@ h720x_gpioa_demux_handler(unsigned int irq_unused, struct irq_desc *desc) | |||
| 123 | 123 | ||
| 124 | mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT); | 124 | mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT); |
| 125 | irq = IRQ_CHAINED_GPIOA(0); | 125 | irq = IRQ_CHAINED_GPIOA(0); |
| 126 | IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); | 126 | IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq); |
| 127 | h720x_gpio_handler(mask, irq, desc); | 127 | h720x_gpio_handler(mask, irq, desc); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| @@ -133,7 +133,7 @@ h720x_gpiob_demux_handler(unsigned int irq_unused, struct irq_desc *desc) | |||
| 133 | unsigned int mask, irq; | 133 | unsigned int mask, irq; |
| 134 | mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT); | 134 | mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT); |
| 135 | irq = IRQ_CHAINED_GPIOB(0); | 135 | irq = IRQ_CHAINED_GPIOB(0); |
| 136 | IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); | 136 | IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq); |
| 137 | h720x_gpio_handler(mask, irq, desc); | 137 | h720x_gpio_handler(mask, irq, desc); |
| 138 | } | 138 | } |
| 139 | 139 | ||
| @@ -144,7 +144,7 @@ h720x_gpioc_demux_handler(unsigned int irq_unused, struct irq_desc *desc) | |||
| 144 | 144 | ||
| 145 | mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT); | 145 | mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT); |
| 146 | irq = IRQ_CHAINED_GPIOC(0); | 146 | irq = IRQ_CHAINED_GPIOC(0); |
| 147 | IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); | 147 | IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq); |
| 148 | h720x_gpio_handler(mask, irq, desc); | 148 | h720x_gpio_handler(mask, irq, desc); |
| 149 | } | 149 | } |
| 150 | 150 | ||
| @@ -155,7 +155,7 @@ h720x_gpiod_demux_handler(unsigned int irq_unused, struct irq_desc *desc) | |||
| 155 | 155 | ||
| 156 | mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT); | 156 | mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT); |
| 157 | irq = IRQ_CHAINED_GPIOD(0); | 157 | irq = IRQ_CHAINED_GPIOD(0); |
| 158 | IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); | 158 | IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq); |
| 159 | h720x_gpio_handler(mask, irq, desc); | 159 | h720x_gpio_handler(mask, irq, desc); |
| 160 | } | 160 | } |
| 161 | 161 | ||
| @@ -167,7 +167,7 @@ h720x_gpioe_demux_handler(unsigned int irq_unused, struct irq_desc *desc) | |||
| 167 | 167 | ||
| 168 | mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT); | 168 | mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT); |
| 169 | irq = IRQ_CHAINED_GPIOE(0); | 169 | irq = IRQ_CHAINED_GPIOE(0); |
| 170 | IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq); | 170 | IRQDBG("%s mask: 0x%08x irq: %d\n", __func__, mask,irq); |
| 171 | h720x_gpio_handler(mask, irq, desc); | 171 | h720x_gpio_handler(mask, irq, desc); |
| 172 | } | 172 | } |
| 173 | #endif | 173 | #endif |
diff --git a/arch/arm/mach-imx/dma.c b/arch/arm/mach-imx/dma.c index bc6fb02d213b..a59ff2987cb7 100644 --- a/arch/arm/mach-imx/dma.c +++ b/arch/arm/mach-imx/dma.c | |||
| @@ -54,7 +54,7 @@ static inline int imx_dma_sg_next(imx_dmach_t dma_ch, unsigned int lastcount) | |||
| 54 | 54 | ||
| 55 | if (!imxdma->name) { | 55 | if (!imxdma->name) { |
| 56 | printk(KERN_CRIT "%s: called for not allocated channel %d\n", | 56 | printk(KERN_CRIT "%s: called for not allocated channel %d\n", |
| 57 | __FUNCTION__, dma_ch); | 57 | __func__, dma_ch); |
| 58 | return 0; | 58 | return 0; |
| 59 | } | 59 | } |
| 60 | 60 | ||
| @@ -288,7 +288,7 @@ imx_dma_setup_handlers(imx_dmach_t dma_ch, | |||
| 288 | 288 | ||
| 289 | if (!imxdma->name) { | 289 | if (!imxdma->name) { |
| 290 | printk(KERN_CRIT "%s: called for not allocated channel %d\n", | 290 | printk(KERN_CRIT "%s: called for not allocated channel %d\n", |
| 291 | __FUNCTION__, dma_ch); | 291 | __func__, dma_ch); |
| 292 | return -ENODEV; | 292 | return -ENODEV; |
| 293 | } | 293 | } |
| 294 | 294 | ||
| @@ -321,7 +321,7 @@ void imx_dma_enable(imx_dmach_t dma_ch) | |||
| 321 | 321 | ||
| 322 | if (!imxdma->name) { | 322 | if (!imxdma->name) { |
| 323 | printk(KERN_CRIT "%s: called for not allocated channel %d\n", | 323 | printk(KERN_CRIT "%s: called for not allocated channel %d\n", |
| 324 | __FUNCTION__, dma_ch); | 324 | __func__, dma_ch); |
| 325 | return; | 325 | return; |
| 326 | } | 326 | } |
| 327 | 327 | ||
| @@ -365,7 +365,7 @@ int imx_dma_request(imx_dmach_t dma_ch, const char *name) | |||
| 365 | 365 | ||
| 366 | if (dma_ch >= IMX_DMA_CHANNELS) { | 366 | if (dma_ch >= IMX_DMA_CHANNELS) { |
| 367 | printk(KERN_CRIT "%s: called for non-existed channel %d\n", | 367 | printk(KERN_CRIT "%s: called for non-existed channel %d\n", |
| 368 | __FUNCTION__, dma_ch); | 368 | __func__, dma_ch); |
| 369 | return -EINVAL; | 369 | return -EINVAL; |
| 370 | } | 370 | } |
| 371 | 371 | ||
| @@ -396,7 +396,7 @@ void imx_dma_free(imx_dmach_t dma_ch) | |||
| 396 | if (!imxdma->name) { | 396 | if (!imxdma->name) { |
| 397 | printk(KERN_CRIT | 397 | printk(KERN_CRIT |
| 398 | "%s: trying to free channel %d which is already freed\n", | 398 | "%s: trying to free channel %d which is already freed\n", |
| 399 | __FUNCTION__, dma_ch); | 399 | __func__, dma_ch); |
| 400 | return; | 400 | return; |
| 401 | } | 401 | } |
| 402 | 402 | ||
| @@ -456,7 +456,7 @@ imx_dma_request_by_prio(imx_dmach_t * pdma_ch, const char *name, | |||
| 456 | } | 456 | } |
| 457 | } | 457 | } |
| 458 | 458 | ||
| 459 | printk(KERN_ERR "%s: no free DMA channel found\n", __FUNCTION__); | 459 | printk(KERN_ERR "%s: no free DMA channel found\n", __func__); |
| 460 | 460 | ||
| 461 | return -ENODEV; | 461 | return -ENODEV; |
| 462 | } | 462 | } |
diff --git a/arch/arm/mach-imx/irq.c b/arch/arm/mach-imx/irq.c index a7465db84893..e6695c4e623b 100644 --- a/arch/arm/mach-imx/irq.c +++ b/arch/arm/mach-imx/irq.c | |||
| @@ -160,21 +160,21 @@ imx_gpio_irq_type(unsigned int _irq, unsigned int type) | |||
| 160 | static void | 160 | static void |
| 161 | imx_gpio_ack_irq(unsigned int irq) | 161 | imx_gpio_ack_irq(unsigned int irq) |
| 162 | { | 162 | { |
| 163 | DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); | 163 | DEBUG_IRQ("%s: irq %d\n", __func__, irq); |
| 164 | ISR(IRQ_TO_REG(irq)) = 1 << ((irq - IRQ_GPIOA(0)) % 32); | 164 | ISR(IRQ_TO_REG(irq)) = 1 << ((irq - IRQ_GPIOA(0)) % 32); |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | static void | 167 | static void |
| 168 | imx_gpio_mask_irq(unsigned int irq) | 168 | imx_gpio_mask_irq(unsigned int irq) |
| 169 | { | 169 | { |
| 170 | DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); | 170 | DEBUG_IRQ("%s: irq %d\n", __func__, irq); |
| 171 | IMR(IRQ_TO_REG(irq)) &= ~( 1 << ((irq - IRQ_GPIOA(0)) % 32)); | 171 | IMR(IRQ_TO_REG(irq)) &= ~( 1 << ((irq - IRQ_GPIOA(0)) % 32)); |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | static void | 174 | static void |
| 175 | imx_gpio_unmask_irq(unsigned int irq) | 175 | imx_gpio_unmask_irq(unsigned int irq) |
| 176 | { | 176 | { |
| 177 | DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, irq); | 177 | DEBUG_IRQ("%s: irq %d\n", __func__, irq); |
| 178 | IMR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); | 178 | IMR(IRQ_TO_REG(irq)) |= 1 << ((irq - IRQ_GPIOA(0)) % 32); |
| 179 | } | 179 | } |
| 180 | 180 | ||
diff --git a/arch/arm/mach-iop13xx/iq81340mc.c b/arch/arm/mach-iop13xx/iq81340mc.c index 268a8d84999c..77b24cd1d88d 100644 --- a/arch/arm/mach-iop13xx/iq81340mc.c +++ b/arch/arm/mach-iop13xx/iq81340mc.c | |||
| @@ -81,7 +81,7 @@ static void __init iq81340mc_init(void) | |||
| 81 | static void __init iq81340mc_timer_init(void) | 81 | static void __init iq81340mc_timer_init(void) |
| 82 | { | 82 | { |
| 83 | unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio(); | 83 | unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio(); |
| 84 | printk(KERN_DEBUG "%s: bus frequency: %lu\n", __FUNCTION__, bus_freq); | 84 | printk(KERN_DEBUG "%s: bus frequency: %lu\n", __func__, bus_freq); |
| 85 | iop_init_time(bus_freq); | 85 | iop_init_time(bus_freq); |
| 86 | } | 86 | } |
| 87 | 87 | ||
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c index a51ffd2683e5..e8522b3b8163 100644 --- a/arch/arm/mach-iop13xx/iq81340sc.c +++ b/arch/arm/mach-iop13xx/iq81340sc.c | |||
| @@ -83,7 +83,7 @@ static void __init iq81340sc_init(void) | |||
| 83 | static void __init iq81340sc_timer_init(void) | 83 | static void __init iq81340sc_timer_init(void) |
| 84 | { | 84 | { |
| 85 | unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio(); | 85 | unsigned long bus_freq = iop13xx_core_freq() / iop13xx_xsi_bus_ratio(); |
| 86 | printk(KERN_DEBUG "%s: bus frequency: %lu\n", __FUNCTION__, bus_freq); | 86 | printk(KERN_DEBUG "%s: bus frequency: %lu\n", __func__, bus_freq); |
| 87 | iop_init_time(bus_freq); | 87 | iop_init_time(bus_freq); |
| 88 | } | 88 | } |
| 89 | 89 | ||
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c index 99d94cb1bafd..7825c1aaa27b 100644 --- a/arch/arm/mach-iop13xx/pci.c +++ b/arch/arm/mach-iop13xx/pci.c | |||
| @@ -94,13 +94,13 @@ void iop13xx_map_pci_memory(void) | |||
| 94 | , 0, iop13xx_atux_mem_size, MT_DEVICE); | 94 | , 0, iop13xx_atux_mem_size, MT_DEVICE); |
| 95 | if (!iop13xx_atux_mem_base) { | 95 | if (!iop13xx_atux_mem_base) { |
| 96 | printk("%s: atux allocation " | 96 | printk("%s: atux allocation " |
| 97 | "failed\n", __FUNCTION__); | 97 | "failed\n", __func__); |
| 98 | BUG(); | 98 | BUG(); |
| 99 | } | 99 | } |
| 100 | } else | 100 | } else |
| 101 | iop13xx_atux_mem_size = 0; | 101 | iop13xx_atux_mem_size = 0; |
| 102 | PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n", | 102 | PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n", |
| 103 | __FUNCTION__, atu, iop13xx_atux_mem_size, | 103 | __func__, atu, iop13xx_atux_mem_size, |
| 104 | iop13xx_atux_mem_base); | 104 | iop13xx_atux_mem_base); |
| 105 | break; | 105 | break; |
| 106 | case 1: | 106 | case 1: |
| @@ -120,13 +120,13 @@ void iop13xx_map_pci_memory(void) | |||
| 120 | , 0, iop13xx_atue_mem_size, MT_DEVICE); | 120 | , 0, iop13xx_atue_mem_size, MT_DEVICE); |
| 121 | if (!iop13xx_atue_mem_base) { | 121 | if (!iop13xx_atue_mem_base) { |
| 122 | printk("%s: atue allocation " | 122 | printk("%s: atue allocation " |
| 123 | "failed\n", __FUNCTION__); | 123 | "failed\n", __func__); |
| 124 | BUG(); | 124 | BUG(); |
| 125 | } | 125 | } |
| 126 | } else | 126 | } else |
| 127 | iop13xx_atue_mem_size = 0; | 127 | iop13xx_atue_mem_size = 0; |
| 128 | PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n", | 128 | PRINTK("%s: atu: %d bus_size: %d mem_base: %x\n", |
| 129 | __FUNCTION__, atu, iop13xx_atue_mem_size, | 129 | __func__, atu, iop13xx_atue_mem_size, |
| 130 | iop13xx_atue_mem_base); | 130 | iop13xx_atue_mem_base); |
| 131 | break; | 131 | break; |
| 132 | } | 132 | } |
diff --git a/arch/arm/mach-iop13xx/setup.c b/arch/arm/mach-iop13xx/setup.c index bfe0c87e3397..246f6d478720 100644 --- a/arch/arm/mach-iop13xx/setup.c +++ b/arch/arm/mach-iop13xx/setup.c | |||
| @@ -519,7 +519,7 @@ void __init iop13xx_platform_init(void) | |||
| 519 | if (iq8134x_flash_resource.end > iq8134x_flash_resource.start) | 519 | if (iq8134x_flash_resource.end > iq8134x_flash_resource.start) |
| 520 | iop13xx_devices[plat_idx++] = &iq8134x_flash; | 520 | iop13xx_devices[plat_idx++] = &iq8134x_flash; |
| 521 | else | 521 | else |
| 522 | printk(KERN_ERR "%s: Failed to probe flash size\n", __FUNCTION__); | 522 | printk(KERN_ERR "%s: Failed to probe flash size\n", __func__); |
| 523 | #endif | 523 | #endif |
| 524 | 524 | ||
| 525 | platform_add_devices(iop13xx_devices, plat_idx); | 525 | platform_add_devices(iop13xx_devices, plat_idx); |
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c index bf04121d1a31..64be341109b3 100644 --- a/arch/arm/mach-ixp4xx/common-pci.c +++ b/arch/arm/mach-ixp4xx/common-pci.c | |||
| @@ -87,7 +87,7 @@ static inline int check_master_abort(void) | |||
| 87 | if (isr & PCI_ISR_PFE) { | 87 | if (isr & PCI_ISR_PFE) { |
| 88 | /* make sure the Master Abort bit is reset */ | 88 | /* make sure the Master Abort bit is reset */ |
| 89 | *PCI_ISR = PCI_ISR_PFE; | 89 | *PCI_ISR = PCI_ISR_PFE; |
| 90 | pr_debug("%s failed\n", __FUNCTION__); | 90 | pr_debug("%s failed\n", __func__); |
| 91 | return 1; | 91 | return 1; |
| 92 | } | 92 | } |
| 93 | 93 | ||
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-pci.c b/arch/arm/mach-ixp4xx/gtwx5715-pci.c index 0d5a42455820..49dec7868807 100644 --- a/arch/arm/mach-ixp4xx/gtwx5715-pci.c +++ b/arch/arm/mach-ixp4xx/gtwx5715-pci.c | |||
| @@ -65,7 +65,7 @@ static int __init gtwx5715_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
| 65 | else | 65 | else |
| 66 | rc = gtwx5715_irqmap[slot][pin-1]; | 66 | rc = gtwx5715_irqmap[slot][pin-1]; |
| 67 | 67 | ||
| 68 | printk("%s: Mapped slot %d pin %d to IRQ %d\n", __FUNCTION__,slot, pin, rc); | 68 | printk("%s: Mapped slot %d pin %d to IRQ %d\n", __func__, slot, pin, rc); |
| 69 | return(rc); | 69 | return(rc); |
| 70 | } | 70 | } |
| 71 | 71 | ||
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c index b9ca8f98265d..fd7537f7d11e 100644 --- a/arch/arm/mach-netx/generic.c +++ b/arch/arm/mach-netx/generic.c | |||
| @@ -133,7 +133,7 @@ netx_hif_ack_irq(unsigned int _irq) | |||
| 133 | val &= ~((1 << 24) << irq); | 133 | val &= ~((1 << 24) << irq); |
| 134 | writel(val, NETX_DPMAS_INT_EN); | 134 | writel(val, NETX_DPMAS_INT_EN); |
| 135 | 135 | ||
| 136 | DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, _irq); | 136 | DEBUG_IRQ("%s: irq %d\n", __func__, _irq); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | static void | 139 | static void |
| @@ -145,7 +145,7 @@ netx_hif_mask_irq(unsigned int _irq) | |||
| 145 | val = readl(NETX_DPMAS_INT_EN); | 145 | val = readl(NETX_DPMAS_INT_EN); |
| 146 | val &= ~((1 << 24) << irq); | 146 | val &= ~((1 << 24) << irq); |
| 147 | writel(val, NETX_DPMAS_INT_EN); | 147 | writel(val, NETX_DPMAS_INT_EN); |
| 148 | DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, _irq); | 148 | DEBUG_IRQ("%s: irq %d\n", __func__, _irq); |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | static void | 151 | static void |
| @@ -157,7 +157,7 @@ netx_hif_unmask_irq(unsigned int _irq) | |||
| 157 | val = readl(NETX_DPMAS_INT_EN); | 157 | val = readl(NETX_DPMAS_INT_EN); |
| 158 | val |= (1 << 24) << irq; | 158 | val |= (1 << 24) << irq; |
| 159 | writel(val, NETX_DPMAS_INT_EN); | 159 | writel(val, NETX_DPMAS_INT_EN); |
| 160 | DEBUG_IRQ("%s: irq %d\n", __FUNCTION__, _irq); | 160 | DEBUG_IRQ("%s: irq %d\n", __func__, _irq); |
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | static struct irq_chip netx_hif_chip = { | 163 | static struct irq_chip netx_hif_chip = { |
diff --git a/arch/arm/mach-ns9xxx/gpio.c b/arch/arm/mach-ns9xxx/gpio.c index b2230213b983..5286e9fc1d30 100644 --- a/arch/arm/mach-ns9xxx/gpio.c +++ b/arch/arm/mach-ns9xxx/gpio.c | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | static spinlock_t gpio_lock = __SPIN_LOCK_UNLOCKED(gpio_lock); | 31 | static spinlock_t gpio_lock = __SPIN_LOCK_UNLOCKED(gpio_lock); |
| 32 | 32 | ||
| 33 | /* only access gpiores with atomic ops */ | 33 | /* only access gpiores with atomic ops */ |
| 34 | static DECLARE_BITMAP(gpiores, GPIO_MAX); | 34 | static DECLARE_BITMAP(gpiores, GPIO_MAX + 1); |
| 35 | 35 | ||
| 36 | static inline int ns9xxx_valid_gpio(unsigned gpio) | 36 | static inline int ns9xxx_valid_gpio(unsigned gpio) |
| 37 | { | 37 | { |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index 070345ee39a5..507987720015 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
| @@ -350,6 +350,10 @@ static void __init h2_init_smc91x(void) | |||
| 350 | 350 | ||
| 351 | static struct i2c_board_info __initdata h2_i2c_board_info[] = { | 351 | static struct i2c_board_info __initdata h2_i2c_board_info[] = { |
| 352 | { | 352 | { |
| 353 | I2C_BOARD_INFO("tps65010", 0x48), | ||
| 354 | .type = "tps65010", | ||
| 355 | .irq = OMAP_GPIO_IRQ(58), | ||
| 356 | }, { | ||
| 353 | I2C_BOARD_INFO("isp1301_omap", 0x2d), | 357 | I2C_BOARD_INFO("isp1301_omap", 0x2d), |
| 354 | .type = "isp1301_omap", | 358 | .type = "isp1301_omap", |
| 355 | .irq = OMAP_GPIO_IRQ(2), | 359 | .irq = OMAP_GPIO_IRQ(2), |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 6fc516855a8c..c3ef1ee5f77b 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <linux/mtd/nand.h> | 26 | #include <linux/mtd/nand.h> |
| 27 | #include <linux/mtd/partitions.h> | 27 | #include <linux/mtd/partitions.h> |
| 28 | #include <linux/input.h> | 28 | #include <linux/input.h> |
| 29 | #include <linux/spi/spi.h> | ||
| 29 | #include <linux/i2c/tps65010.h> | 30 | #include <linux/i2c/tps65010.h> |
| 30 | 31 | ||
| 31 | #include <asm/setup.h> | 32 | #include <asm/setup.h> |
| @@ -51,6 +52,8 @@ | |||
| 51 | #include <asm/arch/mcbsp.h> | 52 | #include <asm/arch/mcbsp.h> |
| 52 | #include <asm/arch/omap-alsa.h> | 53 | #include <asm/arch/omap-alsa.h> |
| 53 | 54 | ||
| 55 | #define H3_TS_GPIO 48 | ||
| 56 | |||
| 54 | static int h3_keymap[] = { | 57 | static int h3_keymap[] = { |
| 55 | KEY(0, 0, KEY_LEFT), | 58 | KEY(0, 0, KEY_LEFT), |
| 56 | KEY(0, 1, KEY_RIGHT), | 59 | KEY(0, 1, KEY_RIGHT), |
| @@ -373,6 +376,17 @@ static struct platform_device h3_lcd_device = { | |||
| 373 | .id = -1, | 376 | .id = -1, |
| 374 | }; | 377 | }; |
| 375 | 378 | ||
| 379 | static struct spi_board_info h3_spi_board_info[] __initdata = { | ||
| 380 | [0] = { | ||
| 381 | .modalias = "tsc2101", | ||
| 382 | .bus_num = 2, | ||
| 383 | .chip_select = 0, | ||
| 384 | .irq = OMAP_GPIO_IRQ(H3_TS_GPIO), | ||
| 385 | .max_speed_hz = 16000000, | ||
| 386 | /* .platform_data = &tsc_platform_data, */ | ||
| 387 | }, | ||
| 388 | }; | ||
| 389 | |||
| 376 | static struct omap_mcbsp_reg_cfg mcbsp_regs = { | 390 | static struct omap_mcbsp_reg_cfg mcbsp_regs = { |
| 377 | .spcr2 = FREE | FRST | GRST | XRST | XINTM(3), | 391 | .spcr2 = FREE | FRST | GRST | XRST | XINTM(3), |
| 378 | .spcr1 = RINTM(3) | RRST, | 392 | .spcr1 = RINTM(3) | RRST, |
| @@ -457,6 +471,14 @@ static struct omap_board_config_kernel h3_config[] __initdata = { | |||
| 457 | { OMAP_TAG_LCD, &h3_lcd_config }, | 471 | { OMAP_TAG_LCD, &h3_lcd_config }, |
| 458 | }; | 472 | }; |
| 459 | 473 | ||
| 474 | static struct i2c_board_info __initdata h3_i2c_board_info[] = { | ||
| 475 | { | ||
| 476 | I2C_BOARD_INFO("tps65010", 0x48), | ||
| 477 | .type = "tps65013", | ||
| 478 | /* .irq = OMAP_GPIO_IRQ(??), */ | ||
| 479 | }, | ||
| 480 | }; | ||
| 481 | |||
| 460 | static struct omap_gpio_switch h3_gpio_switches[] __initdata = { | 482 | static struct omap_gpio_switch h3_gpio_switches[] __initdata = { |
| 461 | { | 483 | { |
| 462 | .name = "mmc_slot", | 484 | .name = "mmc_slot", |
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 8eb5dcdaead2..e6c64e10b7ec 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c | |||
| @@ -717,7 +717,7 @@ static int __init omap_pm_init(void) | |||
| 717 | #endif | 717 | #endif |
| 718 | 718 | ||
| 719 | #ifdef CONFIG_OMAP_32K_TIMER | 719 | #ifdef CONFIG_OMAP_32K_TIMER |
| 720 | error = sysfs_create_file(power_kobj, &sleep_while_idle_attr); | 720 | error = sysfs_create_file(power_kobj, &sleep_while_idle_attr.attr); |
| 721 | if (error) | 721 | if (error) |
| 722 | printk(KERN_ERR "sysfs_create_file failed: %d\n", error); | 722 | printk(KERN_ERR "sysfs_create_file failed: %d\n", error); |
| 723 | #endif | 723 | #endif |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 5a4091f582ed..69c8174f3aac 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
| @@ -42,6 +42,12 @@ static struct map_desc omap2_io_desc[] __initdata = { | |||
| 42 | .length = L3_24XX_SIZE, | 42 | .length = L3_24XX_SIZE, |
| 43 | .type = MT_DEVICE | 43 | .type = MT_DEVICE |
| 44 | }, | 44 | }, |
| 45 | { | ||
| 46 | .virtual = L4_24XX_VIRT, | ||
| 47 | .pfn = __phys_to_pfn(L4_24XX_PHYS), | ||
| 48 | .length = L4_24XX_SIZE, | ||
| 49 | .type = MT_DEVICE | ||
| 50 | }, | ||
| 45 | #ifdef CONFIG_ARCH_OMAP2430 | 51 | #ifdef CONFIG_ARCH_OMAP2430 |
| 46 | { | 52 | { |
| 47 | .virtual = L4_WK_243X_VIRT, | 53 | .virtual = L4_WK_243X_VIRT, |
diff --git a/arch/arm/mach-orion/addr-map.c b/arch/arm/mach-orion/addr-map.c index 2e2fd63643c3..58cc3c0333b6 100644 --- a/arch/arm/mach-orion/addr-map.c +++ b/arch/arm/mach-orion/addr-map.c | |||
| @@ -97,14 +97,20 @@ | |||
| 97 | #define PCIE_BAR_CTRL(n) ORION_PCIE_REG(0x1804 + ((n - 1) * 4)) | 97 | #define PCIE_BAR_CTRL(n) ORION_PCIE_REG(0x1804 + ((n - 1) * 4)) |
| 98 | #define PCIE_BAR_LO(n) ORION_PCIE_REG(0x0010 + ((n) * 8)) | 98 | #define PCIE_BAR_LO(n) ORION_PCIE_REG(0x0010 + ((n) * 8)) |
| 99 | #define PCIE_BAR_HI(n) ORION_PCIE_REG(0x0014 + ((n) * 8)) | 99 | #define PCIE_BAR_HI(n) ORION_PCIE_REG(0x0014 + ((n) * 8)) |
| 100 | #define PCIE_WIN_CTRL(n) ORION_PCIE_REG(0x1820 + ((n) << 4)) | 100 | #define PCIE_WIN_CTRL(n) (((n) < 5) ? \ |
| 101 | #define PCIE_WIN_BASE(n) ORION_PCIE_REG(0x1824 + ((n) << 4)) | 101 | ORION_PCIE_REG(0x1820 + ((n) << 4)) : \ |
| 102 | #define PCIE_WIN_REMAP(n) ORION_PCIE_REG(0x182c + ((n) << 4)) | 102 | ORION_PCIE_REG(0x1880)) |
| 103 | #define PCIE_WIN_BASE(n) (((n) < 5) ? \ | ||
| 104 | ORION_PCIE_REG(0x1824 + ((n) << 4)) : \ | ||
| 105 | ORION_PCIE_REG(0x1884)) | ||
| 106 | #define PCIE_WIN_REMAP(n) (((n) < 5) ? \ | ||
| 107 | ORION_PCIE_REG(0x182c + ((n) << 4)) : \ | ||
| 108 | ORION_PCIE_REG(0x188c)) | ||
| 103 | #define PCIE_DEFWIN_CTRL ORION_PCIE_REG(0x18b0) | 109 | #define PCIE_DEFWIN_CTRL ORION_PCIE_REG(0x18b0) |
| 104 | #define PCIE_EXPROM_WIN_CTRL ORION_PCIE_REG(0x18c0) | 110 | #define PCIE_EXPROM_WIN_CTRL ORION_PCIE_REG(0x18c0) |
| 105 | #define PCIE_EXPROM_WIN_REMP ORION_PCIE_REG(0x18c4) | 111 | #define PCIE_EXPROM_WIN_REMP ORION_PCIE_REG(0x18c4) |
| 106 | #define PCIE_MAX_BARS 3 | 112 | #define PCIE_MAX_BARS 3 |
| 107 | #define PCIE_MAX_WINS 5 | 113 | #define PCIE_MAX_WINS 6 |
| 108 | 114 | ||
| 109 | /* | 115 | /* |
| 110 | * Use PCIE BAR '1' for all DDR banks | 116 | * Use PCIE BAR '1' for all DDR banks |
diff --git a/arch/arm/mach-orion/common.c b/arch/arm/mach-orion/common.c index 5f0ee4b8a9b7..bbc2b4ec932c 100644 --- a/arch/arm/mach-orion/common.c +++ b/arch/arm/mach-orion/common.c | |||
| @@ -17,7 +17,9 @@ | |||
| 17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
| 18 | #include <linux/mv643xx_i2c.h> | 18 | #include <linux/mv643xx_i2c.h> |
| 19 | #include <asm/page.h> | 19 | #include <asm/page.h> |
| 20 | #include <asm/setup.h> | ||
| 20 | #include <asm/timex.h> | 21 | #include <asm/timex.h> |
| 22 | #include <asm/mach/arch.h> | ||
| 21 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
| 22 | #include <asm/arch/hardware.h> | 24 | #include <asm/arch/hardware.h> |
| 23 | #include "common.h" | 25 | #include "common.h" |
| @@ -177,8 +179,8 @@ static struct platform_device orion_ehci1 = { | |||
| 177 | 179 | ||
| 178 | static struct resource orion_eth_shared_resources[] = { | 180 | static struct resource orion_eth_shared_resources[] = { |
| 179 | { | 181 | { |
| 180 | .start = ORION_ETH_PHYS_BASE, | 182 | .start = ORION_ETH_PHYS_BASE + 0x2000, |
| 181 | .end = ORION_ETH_PHYS_BASE + 0xffff, | 183 | .end = ORION_ETH_PHYS_BASE + 0x3fff, |
| 182 | .flags = IORESOURCE_MEM, | 184 | .flags = IORESOURCE_MEM, |
| 183 | }, | 185 | }, |
| 184 | }; | 186 | }; |
| @@ -347,3 +349,21 @@ void __init orion_init(void) | |||
| 347 | platform_device_register(&orion_ehci1); | 349 | platform_device_register(&orion_ehci1); |
| 348 | platform_device_register(&orion_i2c); | 350 | platform_device_register(&orion_i2c); |
| 349 | } | 351 | } |
| 352 | |||
| 353 | /* | ||
| 354 | * Many orion-based systems have buggy bootloader implementations. | ||
| 355 | * This is a common fixup for bogus memory tags. | ||
| 356 | */ | ||
| 357 | void __init tag_fixup_mem32(struct machine_desc *mdesc, struct tag *t, | ||
| 358 | char **from, struct meminfo *meminfo) | ||
| 359 | { | ||
| 360 | for (; t->hdr.size; t = tag_next(t)) | ||
| 361 | if (t->hdr.tag == ATAG_MEM && | ||
| 362 | (!t->u.mem.size || t->u.mem.size & ~PAGE_MASK || | ||
| 363 | t->u.mem.start & ~PAGE_MASK)) { | ||
| 364 | printk(KERN_WARNING | ||
| 365 | "Clearing invalid memory bank %dKB@0x%08x\n", | ||
| 366 | t->u.mem.size / 1024, t->u.mem.start); | ||
| 367 | t->hdr.tag = 0; | ||
| 368 | } | ||
| 369 | } | ||
diff --git a/arch/arm/mach-orion/common.h b/arch/arm/mach-orion/common.h index 10154ec885df..501497cc2c4d 100644 --- a/arch/arm/mach-orion/common.h +++ b/arch/arm/mach-orion/common.h | |||
| @@ -83,4 +83,10 @@ struct mv_sata_platform_data; | |||
| 83 | 83 | ||
| 84 | void __init orion_sata_init(struct mv_sata_platform_data *sata_data); | 84 | void __init orion_sata_init(struct mv_sata_platform_data *sata_data); |
| 85 | 85 | ||
| 86 | struct machine_desc; | ||
| 87 | struct meminfo; | ||
| 88 | struct tag; | ||
| 89 | extern void __init tag_fixup_mem32(struct machine_desc *, struct tag *, | ||
| 90 | char **, struct meminfo *); | ||
| 91 | |||
| 86 | #endif /* __ARCH_ORION_COMMON_H__ */ | 92 | #endif /* __ARCH_ORION_COMMON_H__ */ |
diff --git a/arch/arm/mach-orion/dns323-setup.c b/arch/arm/mach-orion/dns323-setup.c index 02b280c24820..076e155ad510 100644 --- a/arch/arm/mach-orion/dns323-setup.c +++ b/arch/arm/mach-orion/dns323-setup.c | |||
| @@ -319,4 +319,5 @@ MACHINE_START(DNS323, "D-Link DNS-323") | |||
| 319 | .map_io = orion_map_io, | 319 | .map_io = orion_map_io, |
| 320 | .init_irq = orion_init_irq, | 320 | .init_irq = orion_init_irq, |
| 321 | .timer = &orion_timer, | 321 | .timer = &orion_timer, |
| 322 | .fixup = tag_fixup_mem32, | ||
| 322 | MACHINE_END | 323 | MACHINE_END |
diff --git a/arch/arm/mach-orion/gpio.c b/arch/arm/mach-orion/gpio.c index d5f00c86d616..f713818c66a3 100644 --- a/arch/arm/mach-orion/gpio.c +++ b/arch/arm/mach-orion/gpio.c | |||
| @@ -36,7 +36,7 @@ int gpio_direction_input(unsigned pin) | |||
| 36 | unsigned long flags; | 36 | unsigned long flags; |
| 37 | 37 | ||
| 38 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { | 38 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { |
| 39 | pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); | 39 | pr_debug("%s: invalid GPIO %d\n", __func__, pin); |
| 40 | return -EINVAL; | 40 | return -EINVAL; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| @@ -62,7 +62,7 @@ int gpio_direction_output(unsigned pin, int value) | |||
| 62 | int mask; | 62 | int mask; |
| 63 | 63 | ||
| 64 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { | 64 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { |
| 65 | pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); | 65 | pr_debug("%s: invalid GPIO %d\n", __func__, pin); |
| 66 | return -EINVAL; | 66 | return -EINVAL; |
| 67 | } | 67 | } |
| 68 | 68 | ||
| @@ -141,7 +141,7 @@ int gpio_request(unsigned pin, const char *label) | |||
| 141 | unsigned long flags; | 141 | unsigned long flags; |
| 142 | 142 | ||
| 143 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { | 143 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { |
| 144 | pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); | 144 | pr_debug("%s: invalid GPIO %d\n", __func__, pin); |
| 145 | return -EINVAL; | 145 | return -EINVAL; |
| 146 | } | 146 | } |
| 147 | 147 | ||
| @@ -149,7 +149,7 @@ int gpio_request(unsigned pin, const char *label) | |||
| 149 | 149 | ||
| 150 | if (gpio_label[pin]) { | 150 | if (gpio_label[pin]) { |
| 151 | pr_debug("%s: GPIO %d already used as %s\n", | 151 | pr_debug("%s: GPIO %d already used as %s\n", |
| 152 | __FUNCTION__, pin, gpio_label[pin]); | 152 | __func__, pin, gpio_label[pin]); |
| 153 | ret = -EBUSY; | 153 | ret = -EBUSY; |
| 154 | } else | 154 | } else |
| 155 | gpio_label[pin] = label ? label : "?"; | 155 | gpio_label[pin] = label ? label : "?"; |
| @@ -162,12 +162,12 @@ EXPORT_SYMBOL(gpio_request); | |||
| 162 | void gpio_free(unsigned pin) | 162 | void gpio_free(unsigned pin) |
| 163 | { | 163 | { |
| 164 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { | 164 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { |
| 165 | pr_debug("%s: invalid GPIO %d\n", __FUNCTION__, pin); | 165 | pr_debug("%s: invalid GPIO %d\n", __func__, pin); |
| 166 | return; | 166 | return; |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | if (!gpio_label[pin]) | 169 | if (!gpio_label[pin]) |
| 170 | pr_warning("%s: GPIO %d already freed\n", __FUNCTION__, pin); | 170 | pr_warning("%s: GPIO %d already freed\n", __func__, pin); |
| 171 | else | 171 | else |
| 172 | gpio_label[pin] = NULL; | 172 | gpio_label[pin] = NULL; |
| 173 | } | 173 | } |
diff --git a/arch/arm/mach-orion/kurobox_pro-setup.c b/arch/arm/mach-orion/kurobox_pro-setup.c index 6817aca4aa26..785a07bdf1e2 100644 --- a/arch/arm/mach-orion/kurobox_pro-setup.c +++ b/arch/arm/mach-orion/kurobox_pro-setup.c | |||
| @@ -240,4 +240,5 @@ MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") | |||
| 240 | .map_io = orion_map_io, | 240 | .map_io = orion_map_io, |
| 241 | .init_irq = orion_init_irq, | 241 | .init_irq = orion_init_irq, |
| 242 | .timer = &orion_timer, | 242 | .timer = &orion_timer, |
| 243 | .fixup = tag_fixup_mem32, | ||
| 243 | MACHINE_END | 244 | MACHINE_END |
diff --git a/arch/arm/mach-orion/ts209-setup.c b/arch/arm/mach-orion/ts209-setup.c index b8cfe6813e9d..45764dad16d0 100644 --- a/arch/arm/mach-orion/ts209-setup.c +++ b/arch/arm/mach-orion/ts209-setup.c | |||
| @@ -357,4 +357,5 @@ MACHINE_START(TS209, "QNAP TS-109/TS-209") | |||
| 357 | .map_io = orion_map_io, | 357 | .map_io = orion_map_io, |
| 358 | .init_irq = orion_init_irq, | 358 | .init_irq = orion_init_irq, |
| 359 | .timer = &orion_timer, | 359 | .timer = &orion_timer, |
| 360 | .fixup = tag_fixup_mem32, | ||
| 360 | MACHINE_END | 361 | MACHINE_END |
diff --git a/arch/arm/mach-pnx4008/clock.c b/arch/arm/mach-pnx4008/clock.c index daa8d3d98eff..8e00ed43fb95 100644 --- a/arch/arm/mach-pnx4008/clock.c +++ b/arch/arm/mach-pnx4008/clock.c | |||
| @@ -976,7 +976,7 @@ static int __init clk_init(void) | |||
| 976 | (*clkp)->set_parent((*clkp), (*clkp)->parent); | 976 | (*clkp)->set_parent((*clkp), (*clkp)->parent); |
| 977 | } | 977 | } |
| 978 | pr_debug("%s: clock %s, rate %ld\n", | 978 | pr_debug("%s: clock %s, rate %ld\n", |
| 979 | __FUNCTION__, (*clkp)->name, (*clkp)->rate); | 979 | __func__, (*clkp)->name, (*clkp)->rate); |
| 980 | } | 980 | } |
| 981 | 981 | ||
| 982 | local_clk_use(&ck_pll4); | 982 | local_clk_use(&ck_pll4); |
diff --git a/arch/arm/mach-pnx4008/dma.c b/arch/arm/mach-pnx4008/dma.c index f7009d845be8..fe152e82590b 100644 --- a/arch/arm/mach-pnx4008/dma.c +++ b/arch/arm/mach-pnx4008/dma.c | |||
| @@ -192,7 +192,7 @@ void pnx4008_free_channel(int ch) | |||
| 192 | if (!dma_channels[ch].name) { | 192 | if (!dma_channels[ch].name) { |
| 193 | printk(KERN_CRIT | 193 | printk(KERN_CRIT |
| 194 | "%s: trying to free channel %d which is already freed\n", | 194 | "%s: trying to free channel %d which is already freed\n", |
| 195 | __FUNCTION__, ch); | 195 | __func__, ch); |
| 196 | return; | 196 | return; |
| 197 | } | 197 | } |
| 198 | 198 | ||
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x270-pci.c index 15c4e0df3e10..fcda7d5cb693 100644 --- a/arch/arm/mach-pxa/cm-x270-pci.c +++ b/arch/arm/mach-pxa/cm-x270-pci.c | |||
| @@ -104,7 +104,7 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
| 104 | { | 104 | { |
| 105 | int irq; | 105 | int irq; |
| 106 | 106 | ||
| 107 | dev_dbg(&dev->dev, "%s: slot=%x, pin=%x\n", __FUNCTION__, slot, pin); | 107 | dev_dbg(&dev->dev, "%s: slot=%x, pin=%x\n", __func__, slot, pin); |
| 108 | 108 | ||
| 109 | irq = it8152_pci_map_irq(dev, slot, pin); | 109 | irq = it8152_pci_map_irq(dev, slot, pin); |
| 110 | if (irq) | 110 | if (irq) |
diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c index 6012177a29a3..ecdbc96a4de1 100644 --- a/arch/arm/mach-pxa/cm-x270.c +++ b/arch/arm/mach-pxa/cm-x270.c | |||
| @@ -504,11 +504,11 @@ static void cmx270_mci_setpower(struct device *dev, unsigned int vdd) | |||
| 504 | struct pxamci_platform_data *p_d = dev->platform_data; | 504 | struct pxamci_platform_data *p_d = dev->platform_data; |
| 505 | 505 | ||
| 506 | if ((1 << vdd) & p_d->ocr_mask) { | 506 | if ((1 << vdd) & p_d->ocr_mask) { |
| 507 | printk(KERN_DEBUG "%s: on\n", __FUNCTION__); | 507 | printk(KERN_DEBUG "%s: on\n", __func__); |
| 508 | GPCR(105) = GPIO_bit(105); | 508 | GPCR(105) = GPIO_bit(105); |
| 509 | } else { | 509 | } else { |
| 510 | GPSR(105) = GPIO_bit(105); | 510 | GPSR(105) = GPIO_bit(105); |
| 511 | printk(KERN_DEBUG "%s: off\n", __FUNCTION__); | 511 | printk(KERN_DEBUG "%s: off\n", __func__); |
| 512 | } | 512 | } |
| 513 | } | 513 | } |
| 514 | 514 | ||
diff --git a/arch/arm/mach-pxa/cpu-pxa.c b/arch/arm/mach-pxa/cpu-pxa.c index 939a3867f77c..4b21479332ae 100644 --- a/arch/arm/mach-pxa/cpu-pxa.c +++ b/arch/arm/mach-pxa/cpu-pxa.c | |||
| @@ -43,7 +43,7 @@ | |||
| 43 | 43 | ||
| 44 | #ifdef DEBUG | 44 | #ifdef DEBUG |
| 45 | static unsigned int freq_debug; | 45 | static unsigned int freq_debug; |
| 46 | MODULE_PARM(freq_debug, "i"); | 46 | module_param(freq_debug, uint, 0); |
| 47 | MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0"); | 47 | MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0"); |
| 48 | #else | 48 | #else |
| 49 | #define freq_debug 0 | 49 | #define freq_debug 0 |
diff --git a/arch/arm/mach-pxa/dma.c b/arch/arm/mach-pxa/dma.c index 93c4f31f127f..3215316d7b06 100644 --- a/arch/arm/mach-pxa/dma.c +++ b/arch/arm/mach-pxa/dma.c | |||
| @@ -81,7 +81,7 @@ void pxa_free_dma (int dma_ch) | |||
| 81 | if (!dma_channels[dma_ch].name) { | 81 | if (!dma_channels[dma_ch].name) { |
| 82 | printk (KERN_CRIT | 82 | printk (KERN_CRIT |
| 83 | "%s: trying to free channel %d which is already freed\n", | 83 | "%s: trying to free channel %d which is already freed\n", |
| 84 | __FUNCTION__, dma_ch); | 84 | __func__, dma_ch); |
| 85 | return; | 85 | return; |
| 86 | } | 86 | } |
| 87 | 87 | ||
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index 3d0ad5065ee5..3bb31314429a 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
| @@ -264,7 +264,7 @@ static int em_x270_mci_init(struct device *dev, | |||
| 264 | "MMC card detect", data); | 264 | "MMC card detect", data); |
| 265 | if (err) { | 265 | if (err) { |
| 266 | printk(KERN_ERR "%s: can't request MMC card detect IRQ: %d\n", | 266 | printk(KERN_ERR "%s: can't request MMC card detect IRQ: %d\n", |
| 267 | __FUNCTION__, err); | 267 | __func__, err); |
| 268 | return err; | 268 | return err; |
| 269 | } | 269 | } |
| 270 | 270 | ||
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index 345c3deeb02e..72a436fb9a29 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c | |||
| @@ -390,11 +390,11 @@ static void mainstone_mci_setpower(struct device *dev, unsigned int vdd) | |||
| 390 | struct pxamci_platform_data* p_d = dev->platform_data; | 390 | struct pxamci_platform_data* p_d = dev->platform_data; |
| 391 | 391 | ||
| 392 | if (( 1 << vdd) & p_d->ocr_mask) { | 392 | if (( 1 << vdd) & p_d->ocr_mask) { |
| 393 | printk(KERN_DEBUG "%s: on\n", __FUNCTION__); | 393 | printk(KERN_DEBUG "%s: on\n", __func__); |
| 394 | MST_MSCWR1 |= MST_MSCWR1_MMC_ON; | 394 | MST_MSCWR1 |= MST_MSCWR1_MMC_ON; |
| 395 | MST_MSCWR1 &= ~MST_MSCWR1_MS_SEL; | 395 | MST_MSCWR1 &= ~MST_MSCWR1_MS_SEL; |
| 396 | } else { | 396 | } else { |
| 397 | printk(KERN_DEBUG "%s: off\n", __FUNCTION__); | 397 | printk(KERN_DEBUG "%s: off\n", __func__); |
| 398 | MST_MSCWR1 &= ~MST_MSCWR1_MMC_ON; | 398 | MST_MSCWR1 &= ~MST_MSCWR1_MMC_ON; |
| 399 | } | 399 | } |
| 400 | } | 400 | } |
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c index 7cd9ef8deb02..35f25fdaeba3 100644 --- a/arch/arm/mach-pxa/pxa3xx.c +++ b/arch/arm/mach-pxa/pxa3xx.c | |||
| @@ -129,28 +129,20 @@ static void clk_pxa3xx_cken_enable(struct clk *clk) | |||
| 129 | { | 129 | { |
| 130 | unsigned long mask = 1ul << (clk->cken & 0x1f); | 130 | unsigned long mask = 1ul << (clk->cken & 0x1f); |
| 131 | 131 | ||
| 132 | local_irq_disable(); | ||
| 133 | |||
| 134 | if (clk->cken < 32) | 132 | if (clk->cken < 32) |
| 135 | CKENA |= mask; | 133 | CKENA |= mask; |
| 136 | else | 134 | else |
| 137 | CKENB |= mask; | 135 | CKENB |= mask; |
| 138 | |||
| 139 | local_irq_enable(); | ||
| 140 | } | 136 | } |
| 141 | 137 | ||
| 142 | static void clk_pxa3xx_cken_disable(struct clk *clk) | 138 | static void clk_pxa3xx_cken_disable(struct clk *clk) |
| 143 | { | 139 | { |
| 144 | unsigned long mask = 1ul << (clk->cken & 0x1f); | 140 | unsigned long mask = 1ul << (clk->cken & 0x1f); |
| 145 | 141 | ||
| 146 | local_irq_disable(); | ||
| 147 | |||
| 148 | if (clk->cken < 32) | 142 | if (clk->cken < 32) |
| 149 | CKENA &= ~mask; | 143 | CKENA &= ~mask; |
| 150 | else | 144 | else |
| 151 | CKENB &= ~mask; | 145 | CKENB &= ~mask; |
| 152 | |||
| 153 | local_irq_enable(); | ||
| 154 | } | 146 | } |
| 155 | 147 | ||
| 156 | static const struct clkops clk_pxa3xx_cken_ops = { | 148 | static const struct clkops clk_pxa3xx_cken_ops = { |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index 853fc9433750..f207fcd30cd7 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
| @@ -217,7 +217,7 @@ void board_pcmcia_power(int power) | |||
| 217 | ConXS_BCR = trizeps_conxs_bcr; | 217 | ConXS_BCR = trizeps_conxs_bcr; |
| 218 | 218 | ||
| 219 | } | 219 | } |
| 220 | pr_debug("%s: o%s 0x%x\n", __FUNCTION__, power ? "n": "ff", trizeps_conxs_bcr); | 220 | pr_debug("%s: o%s 0x%x\n", __func__, power ? "n": "ff", trizeps_conxs_bcr); |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | /* backlight power switching for LCD panel */ | 223 | /* backlight power switching for LCD panel */ |
| @@ -228,7 +228,7 @@ static void board_backlight_power(int on) | |||
| 228 | } else { | 228 | } else { |
| 229 | trizeps_conxs_bcr &= ~ConXS_BCR_L_DISP; | 229 | trizeps_conxs_bcr &= ~ConXS_BCR_L_DISP; |
| 230 | } | 230 | } |
| 231 | pr_debug("%s: o%s 0x%x\n", __FUNCTION__, on ? "n" : "ff", trizeps_conxs_bcr); | 231 | pr_debug("%s: o%s 0x%x\n", __func__, on ? "n" : "ff", trizeps_conxs_bcr); |
| 232 | ConXS_BCR = trizeps_conxs_bcr; | 232 | ConXS_BCR = trizeps_conxs_bcr; |
| 233 | } | 233 | } |
| 234 | 234 | ||
| @@ -238,10 +238,10 @@ static void board_mci_power(struct device *dev, unsigned int vdd) | |||
| 238 | struct pxamci_platform_data* p_d = dev->platform_data; | 238 | struct pxamci_platform_data* p_d = dev->platform_data; |
| 239 | 239 | ||
| 240 | if (( 1 << vdd) & p_d->ocr_mask) { | 240 | if (( 1 << vdd) & p_d->ocr_mask) { |
| 241 | pr_debug("%s: on\n", __FUNCTION__); | 241 | pr_debug("%s: on\n", __func__); |
| 242 | /* FIXME fill in values here */ | 242 | /* FIXME fill in values here */ |
| 243 | } else { | 243 | } else { |
| 244 | pr_debug("%s: off\n", __FUNCTION__); | 244 | pr_debug("%s: off\n", __func__); |
| 245 | /* FIXME fill in values here */ | 245 | /* FIXME fill in values here */ |
| 246 | } | 246 | } |
| 247 | } | 247 | } |
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c index 7731d50dd86c..afd2cbfca0d9 100644 --- a/arch/arm/mach-pxa/zylonite.c +++ b/arch/arm/mach-pxa/zylonite.c | |||
| @@ -58,7 +58,7 @@ static struct platform_device smc91x_device = { | |||
| 58 | .resource = smc91x_resources, | 58 | .resource = smc91x_resources, |
| 59 | }; | 59 | }; |
| 60 | 60 | ||
| 61 | #if defined(CONFIG_FB_PXA) || (CONFIG_FB_PXA_MODULES) | 61 | #if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) |
| 62 | static void zylonite_backlight_power(int on) | 62 | static void zylonite_backlight_power(int on) |
| 63 | { | 63 | { |
| 64 | gpio_set_value(gpio_backlight, on); | 64 | gpio_set_value(gpio_backlight, on); |
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c index f60b7a66dfa0..842d9e6dc5ff 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c | |||
| @@ -206,7 +206,7 @@ static int __init badge4_init(void) | |||
| 206 | if (ret < 0) | 206 | if (ret < 0) |
| 207 | printk(KERN_ERR | 207 | printk(KERN_ERR |
| 208 | "%s: SA-1111 initialization failed (%d)\n", | 208 | "%s: SA-1111 initialization failed (%d)\n", |
| 209 | __FUNCTION__, ret); | 209 | __func__, ret); |
| 210 | 210 | ||
| 211 | 211 | ||
| 212 | /* maybe turn on 5v0 from the start */ | 212 | /* maybe turn on 5v0 from the start */ |
| @@ -240,11 +240,11 @@ void badge4_set_5V(unsigned subsystem, int on) | |||
| 240 | /* detect on->off and off->on transitions */ | 240 | /* detect on->off and off->on transitions */ |
| 241 | if ((!old_5V_bitmap) && (badge4_5V_bitmap)) { | 241 | if ((!old_5V_bitmap) && (badge4_5V_bitmap)) { |
| 242 | /* was off, now on */ | 242 | /* was off, now on */ |
| 243 | printk(KERN_INFO "%s: enabling 5V supply rail\n", __FUNCTION__); | 243 | printk(KERN_INFO "%s: enabling 5V supply rail\n", __func__); |
| 244 | GPSR = BADGE4_GPIO_PCMEN5V; | 244 | GPSR = BADGE4_GPIO_PCMEN5V; |
| 245 | } else if ((old_5V_bitmap) && (!badge4_5V_bitmap)) { | 245 | } else if ((old_5V_bitmap) && (!badge4_5V_bitmap)) { |
| 246 | /* was on, now off */ | 246 | /* was on, now off */ |
| 247 | printk(KERN_INFO "%s: disabling 5V supply rail\n", __FUNCTION__); | 247 | printk(KERN_INFO "%s: disabling 5V supply rail\n", __func__); |
| 248 | GPCR = BADGE4_GPIO_PCMEN5V; | 248 | GPCR = BADGE4_GPIO_PCMEN5V; |
| 249 | } | 249 | } |
| 250 | 250 | ||
diff --git a/arch/arm/mach-sa1100/cpu-sa1100.c b/arch/arm/mach-sa1100/cpu-sa1100.c index d68630b74d78..343368aa82de 100644 --- a/arch/arm/mach-sa1100/cpu-sa1100.c +++ b/arch/arm/mach-sa1100/cpu-sa1100.c | |||
| @@ -139,7 +139,7 @@ static void sa1100_update_dram_timings(int current_speed, int new_speed) | |||
| 139 | 139 | ||
| 140 | if (settings->speed == 0) { | 140 | if (settings->speed == 0) { |
| 141 | panic("%s: couldn't find dram setting for speed %d\n", | 141 | panic("%s: couldn't find dram setting for speed %d\n", |
| 142 | __FUNCTION__, new_speed); | 142 | __func__, new_speed); |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | /* No risk, no fun: run with interrupts on! */ | 145 | /* No risk, no fun: run with interrupts on! */ |
diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c index 1fbe053e8b59..e5080286060e 100644 --- a/arch/arm/mach-sa1100/dma.c +++ b/arch/arm/mach-sa1100/dma.c | |||
| @@ -129,7 +129,7 @@ int sa1100_request_dma (dma_device_t device, const char *device_id, | |||
| 129 | if (err) { | 129 | if (err) { |
| 130 | printk(KERN_ERR | 130 | printk(KERN_ERR |
| 131 | "%s: unable to request IRQ %d for %s\n", | 131 | "%s: unable to request IRQ %d for %s\n", |
| 132 | __FUNCTION__, IRQ_DMA0 + i, device_id); | 132 | __func__, IRQ_DMA0 + i, device_id); |
| 133 | dma->device = 0; | 133 | dma->device = 0; |
| 134 | return err; | 134 | return err; |
| 135 | } | 135 | } |
| @@ -165,12 +165,12 @@ void sa1100_free_dma(dma_regs_t *regs) | |||
| 165 | if (regs == (dma_regs_t *)&DDAR(i)) | 165 | if (regs == (dma_regs_t *)&DDAR(i)) |
| 166 | break; | 166 | break; |
| 167 | if (i >= SA1100_DMA_CHANNELS) { | 167 | if (i >= SA1100_DMA_CHANNELS) { |
| 168 | printk(KERN_ERR "%s: bad DMA identifier\n", __FUNCTION__); | 168 | printk(KERN_ERR "%s: bad DMA identifier\n", __func__); |
| 169 | return; | 169 | return; |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | if (!dma_chan[i].device) { | 172 | if (!dma_chan[i].device) { |
| 173 | printk(KERN_ERR "%s: Trying to free free DMA\n", __FUNCTION__); | 173 | printk(KERN_ERR "%s: Trying to free free DMA\n", __func__); |
| 174 | return; | 174 | return; |
| 175 | } | 175 | } |
| 176 | 176 | ||
| @@ -329,7 +329,7 @@ void sa1100_reset_dma(dma_regs_t *regs) | |||
| 329 | if (regs == (dma_regs_t *)&DDAR(i)) | 329 | if (regs == (dma_regs_t *)&DDAR(i)) |
| 330 | break; | 330 | break; |
| 331 | if (i >= SA1100_DMA_CHANNELS) { | 331 | if (i >= SA1100_DMA_CHANNELS) { |
| 332 | printk(KERN_ERR "%s: bad DMA identifier\n", __FUNCTION__); | 332 | printk(KERN_ERR "%s: bad DMA identifier\n", __func__); |
| 333 | return; | 333 | return; |
| 334 | } | 334 | } |
| 335 | 335 | ||
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c index b72fee0f2538..8473c37b77d6 100644 --- a/arch/arm/mach-sa1100/h3600.c +++ b/arch/arm/mach-sa1100/h3600.c | |||
| @@ -596,7 +596,7 @@ static void h3800_control_egpio(enum ipaq_egpio_type x, int setp) | |||
| 596 | case IPAQ_EGPIO_CODEC_NRESET: | 596 | case IPAQ_EGPIO_CODEC_NRESET: |
| 597 | case IPAQ_EGPIO_AUDIO_ON: | 597 | case IPAQ_EGPIO_AUDIO_ON: |
| 598 | case IPAQ_EGPIO_QMUTE: | 598 | case IPAQ_EGPIO_QMUTE: |
| 599 | printk("%s: error - should not be called\n", __FUNCTION__); | 599 | printk("%s: error - should not be called\n", __func__); |
| 600 | break; | 600 | break; |
| 601 | case IPAQ_EGPIO_OPT_NVRAM_ON: | 601 | case IPAQ_EGPIO_OPT_NVRAM_ON: |
| 602 | SET_ASIC2(GPIO2_OPT_ON_NVRAM); | 602 | SET_ASIC2(GPIO2_OPT_ON_NVRAM); |
| @@ -638,7 +638,7 @@ static int h3800_pm_callback(int req) | |||
| 638 | static u16 asic2_data; | 638 | static u16 asic2_data; |
| 639 | int result = 0; | 639 | int result = 0; |
| 640 | 640 | ||
| 641 | printk("%s %d\n", __FUNCTION__, req); | 641 | printk("%s %d\n", __func__, req); |
| 642 | 642 | ||
| 643 | switch (req) { | 643 | switch (req) { |
| 644 | case PM_RESUME: | 644 | case PM_RESUME: |
| @@ -666,7 +666,7 @@ static int h3800_pm_callback(int req) | |||
| 666 | asic2_data = H3800_ASIC2_GPIOPIOD; | 666 | asic2_data = H3800_ASIC2_GPIOPIOD; |
| 667 | break; | 667 | break; |
| 668 | default: | 668 | default: |
| 669 | printk("%s: unrecognized PM callback\n", __FUNCTION__); | 669 | printk("%s: unrecognized PM callback\n", __func__); |
| 670 | break; | 670 | break; |
| 671 | } | 671 | } |
| 672 | return result; | 672 | return result; |
| @@ -706,7 +706,7 @@ static void h3800_IRQ_demux(unsigned int irq, struct irq_desc *desc) | |||
| 706 | { | 706 | { |
| 707 | int i; | 707 | int i; |
| 708 | 708 | ||
| 709 | if (0) printk("%s: interrupt received\n", __FUNCTION__); | 709 | if (0) printk("%s: interrupt received\n", __func__); |
| 710 | 710 | ||
| 711 | desc->chip->ack(irq); | 711 | desc->chip->ack(irq); |
| 712 | 712 | ||
| @@ -716,21 +716,21 @@ static void h3800_IRQ_demux(unsigned int irq, struct irq_desc *desc) | |||
| 716 | 716 | ||
| 717 | /* KPIO */ | 717 | /* KPIO */ |
| 718 | irq = H3800_ASIC2_KPIINTFLAG; | 718 | irq = H3800_ASIC2_KPIINTFLAG; |
| 719 | if (0) printk("%s KPIO 0x%08X\n", __FUNCTION__, irq); | 719 | if (0) printk("%s KPIO 0x%08X\n", __func__, irq); |
| 720 | for (j = 0; j < H3800_KPIO_IRQ_COUNT; j++) | 720 | for (j = 0; j < H3800_KPIO_IRQ_COUNT; j++) |
| 721 | if (irq & kpio_irq_mask[j]) | 721 | if (irq & kpio_irq_mask[j]) |
| 722 | handle_edge_irq(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j); | 722 | handle_edge_irq(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j); |
| 723 | 723 | ||
| 724 | /* GPIO2 */ | 724 | /* GPIO2 */ |
| 725 | irq = H3800_ASIC2_GPIINTFLAG; | 725 | irq = H3800_ASIC2_GPIINTFLAG; |
| 726 | if (0) printk("%s GPIO 0x%08X\n", __FUNCTION__, irq); | 726 | if (0) printk("%s GPIO 0x%08X\n", __func__, irq); |
| 727 | for (j = 0; j < H3800_GPIO_IRQ_COUNT; j++) | 727 | for (j = 0; j < H3800_GPIO_IRQ_COUNT; j++) |
| 728 | if (irq & gpio_irq_mask[j]) | 728 | if (irq & gpio_irq_mask[j]) |
| 729 | handle_edge_irq(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j); | 729 | handle_edge_irq(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j); |
| 730 | } | 730 | } |
| 731 | 731 | ||
| 732 | if (i >= MAX_ASIC_ISR_LOOPS) | 732 | if (i >= MAX_ASIC_ISR_LOOPS) |
| 733 | printk("%s: interrupt processing overrun\n", __FUNCTION__); | 733 | printk("%s: interrupt processing overrun\n", __func__); |
| 734 | 734 | ||
| 735 | /* For level-based interrupts */ | 735 | /* For level-based interrupts */ |
| 736 | desc->chip->unmask(irq); | 736 | desc->chip->unmask(irq); |
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 2728b0e7d2bb..3f6dc40b8353 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
| @@ -120,6 +120,8 @@ full_search: | |||
| 120 | */ | 120 | */ |
| 121 | int valid_phys_addr_range(unsigned long addr, size_t size) | 121 | int valid_phys_addr_range(unsigned long addr, size_t size) |
| 122 | { | 122 | { |
| 123 | if (addr < PHYS_OFFSET) | ||
| 124 | return 0; | ||
| 123 | if (addr + size > __pa(high_memory)) | 125 | if (addr + size > __pa(high_memory)) |
| 124 | return 0; | 126 | return 0; |
| 125 | 127 | ||
diff --git a/arch/arm/mm/pgd.c b/arch/arm/mm/pgd.c index 500c9610ab30..e0f19ab91163 100644 --- a/arch/arm/mm/pgd.c +++ b/arch/arm/mm/pgd.c | |||
| @@ -75,7 +75,7 @@ no_pgd: | |||
| 75 | void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd) | 75 | void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd) |
| 76 | { | 76 | { |
| 77 | pmd_t *pmd; | 77 | pmd_t *pmd; |
| 78 | struct page *pte; | 78 | pgtable_t pte; |
| 79 | 79 | ||
| 80 | if (!pgd) | 80 | if (!pgd) |
| 81 | return; | 81 | return; |
| @@ -90,10 +90,8 @@ void free_pgd_slow(struct mm_struct *mm, pgd_t *pgd) | |||
| 90 | goto free; | 90 | goto free; |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | pte = pmd_page(*pmd); | 93 | pte = pmd_pgtable(*pmd); |
| 94 | pmd_clear(pmd); | 94 | pmd_clear(pmd); |
| 95 | dec_zone_page_state(virt_to_page((unsigned long *)pgd), NR_PAGETABLE); | ||
| 96 | pte_lock_deinit(pte); | ||
| 97 | pte_free(mm, pte); | 95 | pte_free(mm, pte); |
| 98 | pmd_free(mm, pmd); | 96 | pmd_free(mm, pmd); |
| 99 | free: | 97 | free: |
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c index 2b5aa1135b11..98d01517b563 100644 --- a/arch/arm/plat-iop/pci.c +++ b/arch/arm/plat-iop/pci.c | |||
| @@ -371,7 +371,7 @@ static int __init iop3xx_init_atu_setup(char *str) | |||
| 371 | default: | 371 | default: |
| 372 | printk(KERN_DEBUG "\"%s\" malformed at " | 372 | printk(KERN_DEBUG "\"%s\" malformed at " |
| 373 | "character: \'%c\'", | 373 | "character: \'%c\'", |
| 374 | __FUNCTION__, | 374 | __func__, |
| 375 | *str); | 375 | *str); |
| 376 | *(str + 1) = '\0'; | 376 | *(str + 1) = '\0'; |
| 377 | } | 377 | } |
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index c0d63b0c61c9..d719c15daa55 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c | |||
| @@ -33,43 +33,33 @@ | |||
| 33 | #define MPU_CLK "virt_prcm_set" | 33 | #define MPU_CLK "virt_prcm_set" |
| 34 | #endif | 34 | #endif |
| 35 | 35 | ||
| 36 | static struct clk *mpu_clk; | ||
| 37 | |||
| 36 | /* TODO: Add support for SDRAM timing changes */ | 38 | /* TODO: Add support for SDRAM timing changes */ |
| 37 | 39 | ||
| 38 | int omap_verify_speed(struct cpufreq_policy *policy) | 40 | int omap_verify_speed(struct cpufreq_policy *policy) |
| 39 | { | 41 | { |
| 40 | struct clk * mpu_clk; | ||
| 41 | |||
| 42 | if (policy->cpu) | 42 | if (policy->cpu) |
| 43 | return -EINVAL; | 43 | return -EINVAL; |
| 44 | 44 | ||
| 45 | cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, | 45 | cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, |
| 46 | policy->cpuinfo.max_freq); | 46 | policy->cpuinfo.max_freq); |
| 47 | mpu_clk = clk_get(NULL, MPU_CLK); | 47 | |
| 48 | if (IS_ERR(mpu_clk)) | ||
| 49 | return PTR_ERR(mpu_clk); | ||
| 50 | policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000; | 48 | policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000; |
| 51 | policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000; | 49 | policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000; |
| 52 | cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, | 50 | cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq, |
| 53 | policy->cpuinfo.max_freq); | 51 | policy->cpuinfo.max_freq); |
| 54 | clk_put(mpu_clk); | ||
| 55 | |||
| 56 | return 0; | 52 | return 0; |
| 57 | } | 53 | } |
| 58 | 54 | ||
| 59 | unsigned int omap_getspeed(unsigned int cpu) | 55 | unsigned int omap_getspeed(unsigned int cpu) |
| 60 | { | 56 | { |
| 61 | struct clk * mpu_clk; | ||
| 62 | unsigned long rate; | 57 | unsigned long rate; |
| 63 | 58 | ||
| 64 | if (cpu) | 59 | if (cpu) |
| 65 | return 0; | 60 | return 0; |
| 66 | 61 | ||
| 67 | mpu_clk = clk_get(NULL, MPU_CLK); | ||
| 68 | if (IS_ERR(mpu_clk)) | ||
| 69 | return 0; | ||
| 70 | rate = clk_get_rate(mpu_clk) / 1000; | 62 | rate = clk_get_rate(mpu_clk) / 1000; |
| 71 | clk_put(mpu_clk); | ||
| 72 | |||
| 73 | return rate; | 63 | return rate; |
| 74 | } | 64 | } |
| 75 | 65 | ||
| @@ -77,14 +67,9 @@ static int omap_target(struct cpufreq_policy *policy, | |||
| 77 | unsigned int target_freq, | 67 | unsigned int target_freq, |
| 78 | unsigned int relation) | 68 | unsigned int relation) |
| 79 | { | 69 | { |
| 80 | struct clk * mpu_clk; | ||
| 81 | struct cpufreq_freqs freqs; | 70 | struct cpufreq_freqs freqs; |
| 82 | int ret = 0; | 71 | int ret = 0; |
| 83 | 72 | ||
| 84 | mpu_clk = clk_get(NULL, MPU_CLK); | ||
| 85 | if (IS_ERR(mpu_clk)) | ||
| 86 | return PTR_ERR(mpu_clk); | ||
| 87 | |||
| 88 | freqs.old = omap_getspeed(0); | 73 | freqs.old = omap_getspeed(0); |
| 89 | freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000; | 74 | freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000; |
| 90 | freqs.cpu = 0; | 75 | freqs.cpu = 0; |
| @@ -92,15 +77,12 @@ static int omap_target(struct cpufreq_policy *policy, | |||
| 92 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | 77 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); |
| 93 | ret = clk_set_rate(mpu_clk, target_freq * 1000); | 78 | ret = clk_set_rate(mpu_clk, target_freq * 1000); |
| 94 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | 79 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); |
| 95 | clk_put(mpu_clk); | ||
| 96 | 80 | ||
| 97 | return ret; | 81 | return ret; |
| 98 | } | 82 | } |
| 99 | 83 | ||
| 100 | static int __init omap_cpu_init(struct cpufreq_policy *policy) | 84 | static int __init omap_cpu_init(struct cpufreq_policy *policy) |
| 101 | { | 85 | { |
| 102 | struct clk * mpu_clk; | ||
| 103 | |||
| 104 | mpu_clk = clk_get(NULL, MPU_CLK); | 86 | mpu_clk = clk_get(NULL, MPU_CLK); |
| 105 | if (IS_ERR(mpu_clk)) | 87 | if (IS_ERR(mpu_clk)) |
| 106 | return PTR_ERR(mpu_clk); | 88 | return PTR_ERR(mpu_clk); |
| @@ -111,17 +93,23 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy) | |||
| 111 | policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000; | 93 | policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000; |
| 112 | policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000; | 94 | policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000; |
| 113 | policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; | 95 | policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; |
| 114 | clk_put(mpu_clk); | ||
| 115 | 96 | ||
| 116 | return 0; | 97 | return 0; |
| 117 | } | 98 | } |
| 118 | 99 | ||
| 100 | static int omap_cpu_exit(struct cpufreq_policy *policy) | ||
| 101 | { | ||
| 102 | clk_put(mpu_clk); | ||
| 103 | return 0; | ||
| 104 | } | ||
| 105 | |||
| 119 | static struct cpufreq_driver omap_driver = { | 106 | static struct cpufreq_driver omap_driver = { |
| 120 | .flags = CPUFREQ_STICKY, | 107 | .flags = CPUFREQ_STICKY, |
| 121 | .verify = omap_verify_speed, | 108 | .verify = omap_verify_speed, |
| 122 | .target = omap_target, | 109 | .target = omap_target, |
| 123 | .get = omap_getspeed, | 110 | .get = omap_getspeed, |
| 124 | .init = omap_cpu_init, | 111 | .init = omap_cpu_init, |
| 112 | .exit = omap_cpu_exit, | ||
| 125 | .name = "omap", | 113 | .name = "omap", |
| 126 | }; | 114 | }; |
| 127 | 115 | ||
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index c5dab1d6417e..4a53f9ba6c43 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c | |||
| @@ -89,68 +89,6 @@ static inline void omap_init_dsp(void) { } | |||
| 89 | #endif /* CONFIG_OMAP_DSP */ | 89 | #endif /* CONFIG_OMAP_DSP */ |
| 90 | 90 | ||
| 91 | /*-------------------------------------------------------------------------*/ | 91 | /*-------------------------------------------------------------------------*/ |
| 92 | #if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) | ||
| 93 | |||
| 94 | #define OMAP1_I2C_BASE 0xfffb3800 | ||
| 95 | #define OMAP2_I2C_BASE1 0x48070000 | ||
| 96 | #define OMAP_I2C_SIZE 0x3f | ||
| 97 | #define OMAP1_I2C_INT INT_I2C | ||
| 98 | #define OMAP2_I2C_INT1 56 | ||
| 99 | |||
| 100 | static struct resource i2c_resources1[] = { | ||
| 101 | { | ||
| 102 | .start = 0, | ||
| 103 | .end = 0, | ||
| 104 | .flags = IORESOURCE_MEM, | ||
| 105 | }, | ||
| 106 | { | ||
| 107 | .start = 0, | ||
| 108 | .flags = IORESOURCE_IRQ, | ||
| 109 | }, | ||
| 110 | }; | ||
| 111 | |||
| 112 | /* DMA not used; works around erratum writing to non-empty i2c fifo */ | ||
| 113 | |||
| 114 | static struct platform_device omap_i2c_device1 = { | ||
| 115 | .name = "i2c_omap", | ||
| 116 | .id = 1, | ||
| 117 | .num_resources = ARRAY_SIZE(i2c_resources1), | ||
| 118 | .resource = i2c_resources1, | ||
| 119 | }; | ||
| 120 | |||
| 121 | /* See also arch/arm/mach-omap2/devices.c for second I2C on 24xx */ | ||
| 122 | static void omap_init_i2c(void) | ||
| 123 | { | ||
| 124 | if (cpu_is_omap24xx()) { | ||
| 125 | i2c_resources1[0].start = OMAP2_I2C_BASE1; | ||
| 126 | i2c_resources1[0].end = OMAP2_I2C_BASE1 + OMAP_I2C_SIZE; | ||
| 127 | i2c_resources1[1].start = OMAP2_I2C_INT1; | ||
| 128 | } else { | ||
| 129 | i2c_resources1[0].start = OMAP1_I2C_BASE; | ||
| 130 | i2c_resources1[0].end = OMAP1_I2C_BASE + OMAP_I2C_SIZE; | ||
| 131 | i2c_resources1[1].start = OMAP1_I2C_INT; | ||
| 132 | } | ||
| 133 | |||
| 134 | /* FIXME define and use a boot tag, in case of boards that | ||
| 135 | * either don't wire up I2C, or chips that mux it differently... | ||
| 136 | * it can include clocking and address info, maybe more. | ||
| 137 | */ | ||
| 138 | if (cpu_is_omap24xx()) { | ||
| 139 | omap_cfg_reg(M19_24XX_I2C1_SCL); | ||
| 140 | omap_cfg_reg(L15_24XX_I2C1_SDA); | ||
| 141 | } else { | ||
| 142 | omap_cfg_reg(I2C_SCL); | ||
| 143 | omap_cfg_reg(I2C_SDA); | ||
| 144 | } | ||
| 145 | |||
| 146 | (void) platform_device_register(&omap_i2c_device1); | ||
| 147 | } | ||
| 148 | |||
| 149 | #else | ||
| 150 | static inline void omap_init_i2c(void) {} | ||
| 151 | #endif | ||
| 152 | |||
| 153 | /*-------------------------------------------------------------------------*/ | ||
| 154 | #if defined(CONFIG_KEYBOARD_OMAP) || defined(CONFIG_KEYBOARD_OMAP_MODULE) | 92 | #if defined(CONFIG_KEYBOARD_OMAP) || defined(CONFIG_KEYBOARD_OMAP_MODULE) |
| 155 | 93 | ||
| 156 | static void omap_init_kp(void) | 94 | static void omap_init_kp(void) |
| @@ -501,7 +439,6 @@ static int __init omap_init_devices(void) | |||
| 501 | * in alphabetical order so they're easier to sort through. | 439 | * in alphabetical order so they're easier to sort through. |
| 502 | */ | 440 | */ |
| 503 | omap_init_dsp(); | 441 | omap_init_dsp(); |
| 504 | omap_init_i2c(); | ||
| 505 | omap_init_kp(); | 442 | omap_init_kp(); |
| 506 | omap_init_mmc(); | 443 | omap_init_mmc(); |
| 507 | omap_init_uwire(); | 444 | omap_init_uwire(); |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index a46676db8113..91004a3c4794 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
| @@ -137,7 +137,7 @@ static void omap_disable_channel_irq(int lch); | |||
| 137 | static inline void omap_enable_channel_irq(int lch); | 137 | static inline void omap_enable_channel_irq(int lch); |
| 138 | 138 | ||
| 139 | #define REVISIT_24XX() printk(KERN_ERR "FIXME: no %s on 24xx\n", \ | 139 | #define REVISIT_24XX() printk(KERN_ERR "FIXME: no %s on 24xx\n", \ |
| 140 | __FUNCTION__); | 140 | __func__); |
| 141 | 141 | ||
| 142 | #ifdef CONFIG_ARCH_OMAP15XX | 142 | #ifdef CONFIG_ARCH_OMAP15XX |
| 143 | /* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */ | 143 | /* Returns 1 if the DMA module is in OMAP1510-compatible mode, 0 otherwise */ |
| @@ -699,7 +699,7 @@ omap_dma_set_global_params(int arb_rate, int max_fifo_depth, int tparams) | |||
| 699 | u32 reg; | 699 | u32 reg; |
| 700 | 700 | ||
| 701 | if (!cpu_class_is_omap2()) { | 701 | if (!cpu_class_is_omap2()) { |
| 702 | printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __FUNCTION__); | 702 | printk(KERN_ERR "FIXME: no %s on 15xx/16xx\n", __func__); |
| 703 | return; | 703 | return; |
| 704 | } | 704 | } |
| 705 | 705 | ||
| @@ -1705,14 +1705,8 @@ static int omap2_dma_handle_ch(int ch) | |||
| 1705 | status = OMAP_DMA_CSR_REG(ch); | 1705 | status = OMAP_DMA_CSR_REG(ch); |
| 1706 | } | 1706 | } |
| 1707 | 1707 | ||
| 1708 | if (likely(dma_chan[ch].callback != NULL)) { | 1708 | if (likely(dma_chan[ch].callback != NULL)) |
| 1709 | if (dma_chan[ch].chain_id != -1) | 1709 | dma_chan[ch].callback(ch, status, dma_chan[ch].data); |
| 1710 | dma_chan[ch].callback(dma_chan[ch].chain_id, status, | ||
| 1711 | dma_chan[ch].data); | ||
| 1712 | else | ||
| 1713 | dma_chan[ch].callback(ch, status, dma_chan[ch].data); | ||
| 1714 | |||
| 1715 | } | ||
| 1716 | 1710 | ||
| 1717 | OMAP_DMA_CSR_REG(ch) = status; | 1711 | OMAP_DMA_CSR_REG(ch) = status; |
| 1718 | 1712 | ||
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index e719d0eeb5c8..302ad8dff2cb 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
| @@ -268,7 +268,7 @@ struct omap_dm_timer *omap_dm_timer_request_specific(int id) | |||
| 268 | if (id <= 0 || id > dm_timer_count || dm_timers[id-1].reserved) { | 268 | if (id <= 0 || id > dm_timer_count || dm_timers[id-1].reserved) { |
| 269 | spin_unlock_irqrestore(&dm_timer_lock, flags); | 269 | spin_unlock_irqrestore(&dm_timer_lock, flags); |
| 270 | printk("BUG: warning at %s:%d/%s(): unable to get timer %d\n", | 270 | printk("BUG: warning at %s:%d/%s(): unable to get timer %d\n", |
| 271 | __FILE__, __LINE__, __FUNCTION__, id); | 271 | __FILE__, __LINE__, __func__, id); |
| 272 | dump_stack(); | 272 | dump_stack(); |
| 273 | return NULL; | 273 | return NULL; |
| 274 | } | 274 | } |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 56f4d1394d56..66a1455595f4 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
| @@ -333,13 +333,14 @@ static void _set_gpio_direction(struct gpio_bank *bank, int gpio, int is_input) | |||
| 333 | void omap_set_gpio_direction(int gpio, int is_input) | 333 | void omap_set_gpio_direction(int gpio, int is_input) |
| 334 | { | 334 | { |
| 335 | struct gpio_bank *bank; | 335 | struct gpio_bank *bank; |
| 336 | unsigned long flags; | ||
| 336 | 337 | ||
| 337 | if (check_gpio(gpio) < 0) | 338 | if (check_gpio(gpio) < 0) |
| 338 | return; | 339 | return; |
| 339 | bank = get_gpio_bank(gpio); | 340 | bank = get_gpio_bank(gpio); |
| 340 | spin_lock(&bank->lock); | 341 | spin_lock_irqsave(&bank->lock, flags); |
| 341 | _set_gpio_direction(bank, get_gpio_index(gpio), is_input); | 342 | _set_gpio_direction(bank, get_gpio_index(gpio), is_input); |
| 342 | spin_unlock(&bank->lock); | 343 | spin_unlock_irqrestore(&bank->lock, flags); |
| 343 | } | 344 | } |
| 344 | 345 | ||
| 345 | static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable) | 346 | static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable) |
| @@ -406,13 +407,14 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable) | |||
| 406 | void omap_set_gpio_dataout(int gpio, int enable) | 407 | void omap_set_gpio_dataout(int gpio, int enable) |
| 407 | { | 408 | { |
| 408 | struct gpio_bank *bank; | 409 | struct gpio_bank *bank; |
| 410 | unsigned long flags; | ||
| 409 | 411 | ||
| 410 | if (check_gpio(gpio) < 0) | 412 | if (check_gpio(gpio) < 0) |
| 411 | return; | 413 | return; |
| 412 | bank = get_gpio_bank(gpio); | 414 | bank = get_gpio_bank(gpio); |
| 413 | spin_lock(&bank->lock); | 415 | spin_lock_irqsave(&bank->lock, flags); |
| 414 | _set_gpio_dataout(bank, get_gpio_index(gpio), enable); | 416 | _set_gpio_dataout(bank, get_gpio_index(gpio), enable); |
| 415 | spin_unlock(&bank->lock); | 417 | spin_unlock_irqrestore(&bank->lock, flags); |
| 416 | } | 418 | } |
| 417 | 419 | ||
| 418 | int omap_get_gpio_datain(int gpio) | 420 | int omap_get_gpio_datain(int gpio) |
| @@ -624,6 +626,7 @@ static int gpio_irq_type(unsigned irq, unsigned type) | |||
| 624 | struct gpio_bank *bank; | 626 | struct gpio_bank *bank; |
| 625 | unsigned gpio; | 627 | unsigned gpio; |
| 626 | int retval; | 628 | int retval; |
| 629 | unsigned long flags; | ||
| 627 | 630 | ||
| 628 | if (!cpu_class_is_omap2() && irq > IH_MPUIO_BASE) | 631 | if (!cpu_class_is_omap2() && irq > IH_MPUIO_BASE) |
| 629 | gpio = OMAP_MPUIO(irq - IH_MPUIO_BASE); | 632 | gpio = OMAP_MPUIO(irq - IH_MPUIO_BASE); |
| @@ -642,13 +645,13 @@ static int gpio_irq_type(unsigned irq, unsigned type) | |||
| 642 | return -EINVAL; | 645 | return -EINVAL; |
| 643 | 646 | ||
| 644 | bank = get_irq_chip_data(irq); | 647 | bank = get_irq_chip_data(irq); |
| 645 | spin_lock(&bank->lock); | 648 | spin_lock_irqsave(&bank->lock, flags); |
| 646 | retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); | 649 | retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); |
| 647 | if (retval == 0) { | 650 | if (retval == 0) { |
| 648 | irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK; | 651 | irq_desc[irq].status &= ~IRQ_TYPE_SENSE_MASK; |
| 649 | irq_desc[irq].status |= type; | 652 | irq_desc[irq].status |= type; |
| 650 | } | 653 | } |
| 651 | spin_unlock(&bank->lock); | 654 | spin_unlock_irqrestore(&bank->lock, flags); |
| 652 | return retval; | 655 | return retval; |
| 653 | } | 656 | } |
| 654 | 657 | ||
| @@ -830,11 +833,13 @@ static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int ena | |||
| 830 | */ | 833 | */ |
| 831 | static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) | 834 | static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) |
| 832 | { | 835 | { |
| 836 | unsigned long flags; | ||
| 837 | |||
| 833 | switch (bank->method) { | 838 | switch (bank->method) { |
| 834 | #ifdef CONFIG_ARCH_OMAP16XX | 839 | #ifdef CONFIG_ARCH_OMAP16XX |
| 835 | case METHOD_MPUIO: | 840 | case METHOD_MPUIO: |
| 836 | case METHOD_GPIO_1610: | 841 | case METHOD_GPIO_1610: |
| 837 | spin_lock(&bank->lock); | 842 | spin_lock_irqsave(&bank->lock, flags); |
| 838 | if (enable) { | 843 | if (enable) { |
| 839 | bank->suspend_wakeup |= (1 << gpio); | 844 | bank->suspend_wakeup |= (1 << gpio); |
| 840 | enable_irq_wake(bank->irq); | 845 | enable_irq_wake(bank->irq); |
| @@ -842,7 +847,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) | |||
| 842 | disable_irq_wake(bank->irq); | 847 | disable_irq_wake(bank->irq); |
| 843 | bank->suspend_wakeup &= ~(1 << gpio); | 848 | bank->suspend_wakeup &= ~(1 << gpio); |
| 844 | } | 849 | } |
| 845 | spin_unlock(&bank->lock); | 850 | spin_unlock_irqrestore(&bank->lock, flags); |
| 846 | return 0; | 851 | return 0; |
| 847 | #endif | 852 | #endif |
| 848 | #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) | 853 | #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) |
| @@ -853,7 +858,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) | |||
| 853 | (bank - gpio_bank) * 32 + gpio); | 858 | (bank - gpio_bank) * 32 + gpio); |
| 854 | return -EINVAL; | 859 | return -EINVAL; |
| 855 | } | 860 | } |
| 856 | spin_lock(&bank->lock); | 861 | spin_lock_irqsave(&bank->lock, flags); |
| 857 | if (enable) { | 862 | if (enable) { |
| 858 | bank->suspend_wakeup |= (1 << gpio); | 863 | bank->suspend_wakeup |= (1 << gpio); |
| 859 | enable_irq_wake(bank->irq); | 864 | enable_irq_wake(bank->irq); |
| @@ -861,7 +866,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) | |||
| 861 | disable_irq_wake(bank->irq); | 866 | disable_irq_wake(bank->irq); |
| 862 | bank->suspend_wakeup &= ~(1 << gpio); | 867 | bank->suspend_wakeup &= ~(1 << gpio); |
| 863 | } | 868 | } |
| 864 | spin_unlock(&bank->lock); | 869 | spin_unlock_irqrestore(&bank->lock, flags); |
| 865 | return 0; | 870 | return 0; |
| 866 | #endif | 871 | #endif |
| 867 | default: | 872 | default: |
| @@ -897,16 +902,17 @@ static int gpio_wake_enable(unsigned int irq, unsigned int enable) | |||
| 897 | int omap_request_gpio(int gpio) | 902 | int omap_request_gpio(int gpio) |
| 898 | { | 903 | { |
| 899 | struct gpio_bank *bank; | 904 | struct gpio_bank *bank; |
| 905 | unsigned long flags; | ||
| 900 | 906 | ||
| 901 | if (check_gpio(gpio) < 0) | 907 | if (check_gpio(gpio) < 0) |
| 902 | return -EINVAL; | 908 | return -EINVAL; |
| 903 | 909 | ||
| 904 | bank = get_gpio_bank(gpio); | 910 | bank = get_gpio_bank(gpio); |
| 905 | spin_lock(&bank->lock); | 911 | spin_lock_irqsave(&bank->lock, flags); |
| 906 | if (unlikely(bank->reserved_map & (1 << get_gpio_index(gpio)))) { | 912 | if (unlikely(bank->reserved_map & (1 << get_gpio_index(gpio)))) { |
| 907 | printk(KERN_ERR "omap-gpio: GPIO %d is already reserved!\n", gpio); | 913 | printk(KERN_ERR "omap-gpio: GPIO %d is already reserved!\n", gpio); |
| 908 | dump_stack(); | 914 | dump_stack(); |
| 909 | spin_unlock(&bank->lock); | 915 | spin_unlock_irqrestore(&bank->lock, flags); |
| 910 | return -1; | 916 | return -1; |
| 911 | } | 917 | } |
| 912 | bank->reserved_map |= (1 << get_gpio_index(gpio)); | 918 | bank->reserved_map |= (1 << get_gpio_index(gpio)); |
| @@ -925,7 +931,7 @@ int omap_request_gpio(int gpio) | |||
| 925 | __raw_writel(__raw_readl(reg) | (1 << get_gpio_index(gpio)), reg); | 931 | __raw_writel(__raw_readl(reg) | (1 << get_gpio_index(gpio)), reg); |
| 926 | } | 932 | } |
| 927 | #endif | 933 | #endif |
| 928 | spin_unlock(&bank->lock); | 934 | spin_unlock_irqrestore(&bank->lock, flags); |
| 929 | 935 | ||
| 930 | return 0; | 936 | return 0; |
| 931 | } | 937 | } |
| @@ -933,15 +939,16 @@ int omap_request_gpio(int gpio) | |||
| 933 | void omap_free_gpio(int gpio) | 939 | void omap_free_gpio(int gpio) |
| 934 | { | 940 | { |
| 935 | struct gpio_bank *bank; | 941 | struct gpio_bank *bank; |
| 942 | unsigned long flags; | ||
| 936 | 943 | ||
| 937 | if (check_gpio(gpio) < 0) | 944 | if (check_gpio(gpio) < 0) |
| 938 | return; | 945 | return; |
| 939 | bank = get_gpio_bank(gpio); | 946 | bank = get_gpio_bank(gpio); |
| 940 | spin_lock(&bank->lock); | 947 | spin_lock_irqsave(&bank->lock, flags); |
| 941 | if (unlikely(!(bank->reserved_map & (1 << get_gpio_index(gpio))))) { | 948 | if (unlikely(!(bank->reserved_map & (1 << get_gpio_index(gpio))))) { |
| 942 | printk(KERN_ERR "omap-gpio: GPIO %d wasn't reserved!\n", gpio); | 949 | printk(KERN_ERR "omap-gpio: GPIO %d wasn't reserved!\n", gpio); |
| 943 | dump_stack(); | 950 | dump_stack(); |
| 944 | spin_unlock(&bank->lock); | 951 | spin_unlock_irqrestore(&bank->lock, flags); |
| 945 | return; | 952 | return; |
| 946 | } | 953 | } |
| 947 | #ifdef CONFIG_ARCH_OMAP16XX | 954 | #ifdef CONFIG_ARCH_OMAP16XX |
| @@ -960,7 +967,7 @@ void omap_free_gpio(int gpio) | |||
| 960 | #endif | 967 | #endif |
| 961 | bank->reserved_map &= ~(1 << get_gpio_index(gpio)); | 968 | bank->reserved_map &= ~(1 << get_gpio_index(gpio)); |
| 962 | _reset_gpio(bank, gpio); | 969 | _reset_gpio(bank, gpio); |
| 963 | spin_unlock(&bank->lock); | 970 | spin_unlock_irqrestore(&bank->lock, flags); |
| 964 | } | 971 | } |
| 965 | 972 | ||
| 966 | /* | 973 | /* |
| @@ -1194,11 +1201,12 @@ static int omap_mpuio_suspend_late(struct platform_device *pdev, pm_message_t me | |||
| 1194 | { | 1201 | { |
| 1195 | struct gpio_bank *bank = platform_get_drvdata(pdev); | 1202 | struct gpio_bank *bank = platform_get_drvdata(pdev); |
| 1196 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; | 1203 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; |
| 1204 | unsigned long flags; | ||
| 1197 | 1205 | ||
| 1198 | spin_lock(&bank->lock); | 1206 | spin_lock_irqsave(&bank->lock, flags); |
| 1199 | bank->saved_wakeup = __raw_readl(mask_reg); | 1207 | bank->saved_wakeup = __raw_readl(mask_reg); |
| 1200 | __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg); | 1208 | __raw_writel(0xffff & ~bank->suspend_wakeup, mask_reg); |
| 1201 | spin_unlock(&bank->lock); | 1209 | spin_unlock_irqrestore(&bank->lock, flags); |
| 1202 | 1210 | ||
| 1203 | return 0; | 1211 | return 0; |
| 1204 | } | 1212 | } |
| @@ -1207,10 +1215,11 @@ static int omap_mpuio_resume_early(struct platform_device *pdev) | |||
| 1207 | { | 1215 | { |
| 1208 | struct gpio_bank *bank = platform_get_drvdata(pdev); | 1216 | struct gpio_bank *bank = platform_get_drvdata(pdev); |
| 1209 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; | 1217 | void __iomem *mask_reg = bank->base + OMAP_MPUIO_GPIO_MASKIT; |
| 1218 | unsigned long flags; | ||
| 1210 | 1219 | ||
| 1211 | spin_lock(&bank->lock); | 1220 | spin_lock_irqsave(&bank->lock, flags); |
| 1212 | __raw_writel(bank->saved_wakeup, mask_reg); | 1221 | __raw_writel(bank->saved_wakeup, mask_reg); |
| 1213 | spin_unlock(&bank->lock); | 1222 | spin_unlock_irqrestore(&bank->lock, flags); |
| 1214 | 1223 | ||
| 1215 | return 0; | 1224 | return 0; |
| 1216 | } | 1225 | } |
| @@ -1277,6 +1286,11 @@ static struct clk *gpio_fclks[OMAP34XX_NR_GPIOS]; | |||
| 1277 | static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS]; | 1286 | static struct clk *gpio_iclks[OMAP34XX_NR_GPIOS]; |
| 1278 | #endif | 1287 | #endif |
| 1279 | 1288 | ||
| 1289 | /* This lock class tells lockdep that GPIO irqs are in a different | ||
| 1290 | * category than their parents, so it won't report false recursion. | ||
| 1291 | */ | ||
| 1292 | static struct lock_class_key gpio_lock_class; | ||
| 1293 | |||
| 1280 | static int __init _omap_gpio_init(void) | 1294 | static int __init _omap_gpio_init(void) |
| 1281 | { | 1295 | { |
| 1282 | int i; | 1296 | int i; |
| @@ -1450,6 +1464,7 @@ static int __init _omap_gpio_init(void) | |||
| 1450 | #endif | 1464 | #endif |
| 1451 | for (j = bank->virtual_irq_start; | 1465 | for (j = bank->virtual_irq_start; |
| 1452 | j < bank->virtual_irq_start + gpio_count; j++) { | 1466 | j < bank->virtual_irq_start + gpio_count; j++) { |
| 1467 | lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class); | ||
| 1453 | set_irq_chip_data(j, bank); | 1468 | set_irq_chip_data(j, bank); |
| 1454 | if (bank_is_mpuio(bank)) | 1469 | if (bank_is_mpuio(bank)) |
| 1455 | set_irq_chip(j, &mpuio_irq_chip); | 1470 | set_irq_chip(j, &mpuio_irq_chip); |
| @@ -1489,6 +1504,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg) | |||
| 1489 | void __iomem *wake_status; | 1504 | void __iomem *wake_status; |
| 1490 | void __iomem *wake_clear; | 1505 | void __iomem *wake_clear; |
| 1491 | void __iomem *wake_set; | 1506 | void __iomem *wake_set; |
| 1507 | unsigned long flags; | ||
| 1492 | 1508 | ||
| 1493 | switch (bank->method) { | 1509 | switch (bank->method) { |
| 1494 | #ifdef CONFIG_ARCH_OMAP16XX | 1510 | #ifdef CONFIG_ARCH_OMAP16XX |
| @@ -1509,11 +1525,11 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg) | |||
| 1509 | continue; | 1525 | continue; |
| 1510 | } | 1526 | } |
| 1511 | 1527 | ||
| 1512 | spin_lock(&bank->lock); | 1528 | spin_lock_irqsave(&bank->lock, flags); |
| 1513 | bank->saved_wakeup = __raw_readl(wake_status); | 1529 | bank->saved_wakeup = __raw_readl(wake_status); |
| 1514 | __raw_writel(0xffffffff, wake_clear); | 1530 | __raw_writel(0xffffffff, wake_clear); |
| 1515 | __raw_writel(bank->suspend_wakeup, wake_set); | 1531 | __raw_writel(bank->suspend_wakeup, wake_set); |
| 1516 | spin_unlock(&bank->lock); | 1532 | spin_unlock_irqrestore(&bank->lock, flags); |
| 1517 | } | 1533 | } |
| 1518 | 1534 | ||
| 1519 | return 0; | 1535 | return 0; |
| @@ -1530,6 +1546,7 @@ static int omap_gpio_resume(struct sys_device *dev) | |||
| 1530 | struct gpio_bank *bank = &gpio_bank[i]; | 1546 | struct gpio_bank *bank = &gpio_bank[i]; |
| 1531 | void __iomem *wake_clear; | 1547 | void __iomem *wake_clear; |
| 1532 | void __iomem *wake_set; | 1548 | void __iomem *wake_set; |
| 1549 | unsigned long flags; | ||
| 1533 | 1550 | ||
| 1534 | switch (bank->method) { | 1551 | switch (bank->method) { |
| 1535 | #ifdef CONFIG_ARCH_OMAP16XX | 1552 | #ifdef CONFIG_ARCH_OMAP16XX |
| @@ -1548,10 +1565,10 @@ static int omap_gpio_resume(struct sys_device *dev) | |||
| 1548 | continue; | 1565 | continue; |
| 1549 | } | 1566 | } |
| 1550 | 1567 | ||
| 1551 | spin_lock(&bank->lock); | 1568 | spin_lock_irqsave(&bank->lock, flags); |
| 1552 | __raw_writel(0xffffffff, wake_clear); | 1569 | __raw_writel(0xffffffff, wake_clear); |
| 1553 | __raw_writel(bank->saved_wakeup, wake_set); | 1570 | __raw_writel(bank->saved_wakeup, wake_set); |
| 1554 | spin_unlock(&bank->lock); | 1571 | spin_unlock_irqrestore(&bank->lock, flags); |
| 1555 | } | 1572 | } |
| 1556 | 1573 | ||
| 1557 | return 0; | 1574 | return 0; |
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c index ac9ff1666fcc..60f162dc4fad 100644 --- a/arch/arm/plat-s3c24xx/dma.c +++ b/arch/arm/plat-s3c24xx/dma.c | |||
| @@ -130,8 +130,8 @@ dmadbg_showregs(const char *fname, int line, struct s3c2410_dma_chan *chan) | |||
| 130 | dmadbg_dumpregs(fname, line, chan, &state); | 130 | dmadbg_dumpregs(fname, line, chan, &state); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | #define dbg_showregs(chan) dmadbg_showregs(__FUNCTION__, __LINE__, (chan)) | 133 | #define dbg_showregs(chan) dmadbg_showregs(__func__, __LINE__, (chan)) |
| 134 | #define dbg_showchan(chan) dmadbg_showchan(__FUNCTION__, __LINE__, (chan)) | 134 | #define dbg_showchan(chan) dmadbg_showchan(__func__, __LINE__, (chan)) |
| 135 | #else | 135 | #else |
| 136 | #define dbg_showregs(chan) do { } while(0) | 136 | #define dbg_showregs(chan) do { } while(0) |
| 137 | #define dbg_showchan(chan) do { } while(0) | 137 | #define dbg_showchan(chan) do { } while(0) |
| @@ -403,7 +403,7 @@ static int s3c2410_dma_start(struct s3c2410_dma_chan *chan) | |||
| 403 | 403 | ||
| 404 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { | 404 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { |
| 405 | pr_debug("%s: buff not yet loaded, no more todo\n", | 405 | pr_debug("%s: buff not yet loaded, no more todo\n", |
| 406 | __FUNCTION__); | 406 | __func__); |
| 407 | } else { | 407 | } else { |
| 408 | chan->load_state = S3C2410_DMALOAD_1RUNNING; | 408 | chan->load_state = S3C2410_DMALOAD_1RUNNING; |
| 409 | s3c2410_dma_loadbuffer(chan, chan->next); | 409 | s3c2410_dma_loadbuffer(chan, chan->next); |
| @@ -463,16 +463,16 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id, | |||
| 463 | return -EINVAL; | 463 | return -EINVAL; |
| 464 | 464 | ||
| 465 | pr_debug("%s: id=%p, data=%08x, size=%d\n", | 465 | pr_debug("%s: id=%p, data=%08x, size=%d\n", |
| 466 | __FUNCTION__, id, (unsigned int)data, size); | 466 | __func__, id, (unsigned int)data, size); |
| 467 | 467 | ||
| 468 | buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC); | 468 | buf = kmem_cache_alloc(dma_kmem, GFP_ATOMIC); |
| 469 | if (buf == NULL) { | 469 | if (buf == NULL) { |
| 470 | pr_debug("%s: out of memory (%ld alloc)\n", | 470 | pr_debug("%s: out of memory (%ld alloc)\n", |
| 471 | __FUNCTION__, (long)sizeof(*buf)); | 471 | __func__, (long)sizeof(*buf)); |
| 472 | return -ENOMEM; | 472 | return -ENOMEM; |
| 473 | } | 473 | } |
| 474 | 474 | ||
| 475 | //pr_debug("%s: new buffer %p\n", __FUNCTION__, buf); | 475 | //pr_debug("%s: new buffer %p\n", __func__, buf); |
| 476 | //dbg_showchan(chan); | 476 | //dbg_showchan(chan); |
| 477 | 477 | ||
| 478 | buf->next = NULL; | 478 | buf->next = NULL; |
| @@ -486,18 +486,18 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id, | |||
| 486 | if (chan->curr == NULL) { | 486 | if (chan->curr == NULL) { |
| 487 | /* we've got nothing loaded... */ | 487 | /* we've got nothing loaded... */ |
| 488 | pr_debug("%s: buffer %p queued onto empty channel\n", | 488 | pr_debug("%s: buffer %p queued onto empty channel\n", |
| 489 | __FUNCTION__, buf); | 489 | __func__, buf); |
| 490 | 490 | ||
| 491 | chan->curr = buf; | 491 | chan->curr = buf; |
| 492 | chan->end = buf; | 492 | chan->end = buf; |
| 493 | chan->next = NULL; | 493 | chan->next = NULL; |
| 494 | } else { | 494 | } else { |
| 495 | pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n", | 495 | pr_debug("dma%d: %s: buffer %p queued onto non-empty channel\n", |
| 496 | chan->number, __FUNCTION__, buf); | 496 | chan->number, __func__, buf); |
| 497 | 497 | ||
| 498 | if (chan->end == NULL) | 498 | if (chan->end == NULL) |
| 499 | pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n", | 499 | pr_debug("dma%d: %s: %p not empty, and chan->end==NULL?\n", |
| 500 | chan->number, __FUNCTION__, chan); | 500 | chan->number, __func__, chan); |
| 501 | 501 | ||
| 502 | chan->end->next = buf; | 502 | chan->end->next = buf; |
| 503 | chan->end = buf; | 503 | chan->end = buf; |
| @@ -572,7 +572,7 @@ s3c2410_dma_lastxfer(struct s3c2410_dma_chan *chan) | |||
| 572 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { | 572 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { |
| 573 | /* flag error? */ | 573 | /* flag error? */ |
| 574 | printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n", | 574 | printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n", |
| 575 | chan->number, __FUNCTION__); | 575 | chan->number, __func__); |
| 576 | return; | 576 | return; |
| 577 | } | 577 | } |
| 578 | break; | 578 | break; |
| @@ -658,7 +658,7 @@ s3c2410_dma_irq(int irq, void *devpw) | |||
| 658 | 658 | ||
| 659 | if (buf->magic != BUF_MAGIC) { | 659 | if (buf->magic != BUF_MAGIC) { |
| 660 | printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n", | 660 | printk(KERN_ERR "dma%d: %s: buf %p incorrect magic\n", |
| 661 | chan->number, __FUNCTION__, buf); | 661 | chan->number, __func__, buf); |
| 662 | return IRQ_HANDLED; | 662 | return IRQ_HANDLED; |
| 663 | } | 663 | } |
| 664 | 664 | ||
| @@ -692,7 +692,7 @@ s3c2410_dma_irq(int irq, void *devpw) | |||
| 692 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { | 692 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { |
| 693 | /* flag error? */ | 693 | /* flag error? */ |
| 694 | printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n", | 694 | printk(KERN_ERR "dma%d: timeout waiting for load (%s)\n", |
| 695 | chan->number, __FUNCTION__); | 695 | chan->number, __func__); |
| 696 | return IRQ_HANDLED; | 696 | return IRQ_HANDLED; |
| 697 | } | 697 | } |
| 698 | 698 | ||
| @@ -759,7 +759,7 @@ int s3c2410_dma_request(unsigned int channel, | |||
| 759 | 759 | ||
| 760 | if (!chan->irq_claimed) { | 760 | if (!chan->irq_claimed) { |
| 761 | pr_debug("dma%d: %s : requesting irq %d\n", | 761 | pr_debug("dma%d: %s : requesting irq %d\n", |
| 762 | channel, __FUNCTION__, chan->irq); | 762 | channel, __func__, chan->irq); |
| 763 | 763 | ||
| 764 | chan->irq_claimed = 1; | 764 | chan->irq_claimed = 1; |
| 765 | local_irq_restore(flags); | 765 | local_irq_restore(flags); |
| @@ -786,7 +786,7 @@ int s3c2410_dma_request(unsigned int channel, | |||
| 786 | 786 | ||
| 787 | /* need to setup */ | 787 | /* need to setup */ |
| 788 | 788 | ||
| 789 | pr_debug("%s: channel initialised, %p\n", __FUNCTION__, chan); | 789 | pr_debug("%s: channel initialised, %p\n", __func__, chan); |
| 790 | 790 | ||
| 791 | return chan->number | DMACH_LOW_LEVEL; | 791 | return chan->number | DMACH_LOW_LEVEL; |
| 792 | } | 792 | } |
| @@ -823,7 +823,7 @@ int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *client) | |||
| 823 | 823 | ||
| 824 | if (chan->state != S3C2410_DMA_IDLE) { | 824 | if (chan->state != S3C2410_DMA_IDLE) { |
| 825 | pr_debug("%s: need to stop dma channel %p\n", | 825 | pr_debug("%s: need to stop dma channel %p\n", |
| 826 | __FUNCTION__, chan); | 826 | __func__, chan); |
| 827 | 827 | ||
| 828 | /* possibly flush the channel */ | 828 | /* possibly flush the channel */ |
| 829 | s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STOP); | 829 | s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STOP); |
| @@ -852,7 +852,7 @@ static int s3c2410_dma_dostop(struct s3c2410_dma_chan *chan) | |||
| 852 | unsigned long flags; | 852 | unsigned long flags; |
| 853 | unsigned long tmp; | 853 | unsigned long tmp; |
| 854 | 854 | ||
| 855 | pr_debug("%s:\n", __FUNCTION__); | 855 | pr_debug("%s:\n", __func__); |
| 856 | 856 | ||
| 857 | dbg_showchan(chan); | 857 | dbg_showchan(chan); |
| 858 | 858 | ||
| @@ -907,14 +907,14 @@ static int s3c2410_dma_flush(struct s3c2410_dma_chan *chan) | |||
| 907 | struct s3c2410_dma_buf *buf, *next; | 907 | struct s3c2410_dma_buf *buf, *next; |
| 908 | unsigned long flags; | 908 | unsigned long flags; |
| 909 | 909 | ||
| 910 | pr_debug("%s: chan %p (%d)\n", __FUNCTION__, chan, chan->number); | 910 | pr_debug("%s: chan %p (%d)\n", __func__, chan, chan->number); |
| 911 | 911 | ||
| 912 | dbg_showchan(chan); | 912 | dbg_showchan(chan); |
| 913 | 913 | ||
| 914 | local_irq_save(flags); | 914 | local_irq_save(flags); |
| 915 | 915 | ||
| 916 | if (chan->state != S3C2410_DMA_IDLE) { | 916 | if (chan->state != S3C2410_DMA_IDLE) { |
| 917 | pr_debug("%s: stopping channel...\n", __FUNCTION__ ); | 917 | pr_debug("%s: stopping channel...\n", __func__ ); |
| 918 | s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_STOP); | 918 | s3c2410_dma_ctrl(chan->number, S3C2410_DMAOP_STOP); |
| 919 | } | 919 | } |
| 920 | 920 | ||
| @@ -929,7 +929,7 @@ static int s3c2410_dma_flush(struct s3c2410_dma_chan *chan) | |||
| 929 | next = buf->next; | 929 | next = buf->next; |
| 930 | 930 | ||
| 931 | pr_debug("%s: free buffer %p, next %p\n", | 931 | pr_debug("%s: free buffer %p, next %p\n", |
| 932 | __FUNCTION__, buf, buf->next); | 932 | __func__, buf, buf->next); |
| 933 | 933 | ||
| 934 | s3c2410_dma_buffdone(chan, buf, S3C2410_RES_ABORT); | 934 | s3c2410_dma_buffdone(chan, buf, S3C2410_RES_ABORT); |
| 935 | s3c2410_dma_freebuf(buf); | 935 | s3c2410_dma_freebuf(buf); |
| @@ -976,7 +976,7 @@ static int s3c2410_dma_started(struct s3c2410_dma_chan *chan) | |||
| 976 | 976 | ||
| 977 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { | 977 | if (s3c2410_dma_waitforload(chan, __LINE__) == 0) { |
| 978 | pr_debug("%s: buff not yet loaded, no more todo\n", | 978 | pr_debug("%s: buff not yet loaded, no more todo\n", |
| 979 | __FUNCTION__); | 979 | __func__); |
| 980 | } else { | 980 | } else { |
| 981 | chan->load_state = S3C2410_DMALOAD_1RUNNING; | 981 | chan->load_state = S3C2410_DMALOAD_1RUNNING; |
| 982 | s3c2410_dma_loadbuffer(chan, chan->next); | 982 | s3c2410_dma_loadbuffer(chan, chan->next); |
| @@ -1050,16 +1050,16 @@ int s3c2410_dma_config(dmach_t channel, | |||
| 1050 | struct s3c2410_dma_chan *chan = lookup_dma_channel(channel); | 1050 | struct s3c2410_dma_chan *chan = lookup_dma_channel(channel); |
| 1051 | 1051 | ||
| 1052 | pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n", | 1052 | pr_debug("%s: chan=%d, xfer_unit=%d, dcon=%08x\n", |
| 1053 | __FUNCTION__, channel, xferunit, dcon); | 1053 | __func__, channel, xferunit, dcon); |
| 1054 | 1054 | ||
| 1055 | if (chan == NULL) | 1055 | if (chan == NULL) |
| 1056 | return -EINVAL; | 1056 | return -EINVAL; |
| 1057 | 1057 | ||
| 1058 | pr_debug("%s: Initial dcon is %08x\n", __FUNCTION__, dcon); | 1058 | pr_debug("%s: Initial dcon is %08x\n", __func__, dcon); |
| 1059 | 1059 | ||
| 1060 | dcon |= chan->dcon & dma_sel.dcon_mask; | 1060 | dcon |= chan->dcon & dma_sel.dcon_mask; |
| 1061 | 1061 | ||
| 1062 | pr_debug("%s: New dcon is %08x\n", __FUNCTION__, dcon); | 1062 | pr_debug("%s: New dcon is %08x\n", __func__, dcon); |
| 1063 | 1063 | ||
| 1064 | switch (xferunit) { | 1064 | switch (xferunit) { |
| 1065 | case 1: | 1065 | case 1: |
| @@ -1075,14 +1075,14 @@ int s3c2410_dma_config(dmach_t channel, | |||
| 1075 | break; | 1075 | break; |
| 1076 | 1076 | ||
| 1077 | default: | 1077 | default: |
| 1078 | pr_debug("%s: bad transfer size %d\n", __FUNCTION__, xferunit); | 1078 | pr_debug("%s: bad transfer size %d\n", __func__, xferunit); |
| 1079 | return -EINVAL; | 1079 | return -EINVAL; |
| 1080 | } | 1080 | } |
| 1081 | 1081 | ||
| 1082 | dcon |= S3C2410_DCON_HWTRIG; | 1082 | dcon |= S3C2410_DCON_HWTRIG; |
| 1083 | dcon |= S3C2410_DCON_INTREQ; | 1083 | dcon |= S3C2410_DCON_INTREQ; |
| 1084 | 1084 | ||
| 1085 | pr_debug("%s: dcon now %08x\n", __FUNCTION__, dcon); | 1085 | pr_debug("%s: dcon now %08x\n", __func__, dcon); |
| 1086 | 1086 | ||
| 1087 | chan->dcon = dcon; | 1087 | chan->dcon = dcon; |
| 1088 | chan->xfer_unit = xferunit; | 1088 | chan->xfer_unit = xferunit; |
| @@ -1099,7 +1099,7 @@ int s3c2410_dma_setflags(dmach_t channel, unsigned int flags) | |||
| 1099 | if (chan == NULL) | 1099 | if (chan == NULL) |
| 1100 | return -EINVAL; | 1100 | return -EINVAL; |
| 1101 | 1101 | ||
| 1102 | pr_debug("%s: chan=%p, flags=%08x\n", __FUNCTION__, chan, flags); | 1102 | pr_debug("%s: chan=%p, flags=%08x\n", __func__, chan, flags); |
| 1103 | 1103 | ||
| 1104 | chan->flags = flags; | 1104 | chan->flags = flags; |
| 1105 | 1105 | ||
| @@ -1120,7 +1120,7 @@ int s3c2410_dma_set_opfn(dmach_t channel, s3c2410_dma_opfn_t rtn) | |||
| 1120 | if (chan == NULL) | 1120 | if (chan == NULL) |
| 1121 | return -EINVAL; | 1121 | return -EINVAL; |
| 1122 | 1122 | ||
| 1123 | pr_debug("%s: chan=%p, op rtn=%p\n", __FUNCTION__, chan, rtn); | 1123 | pr_debug("%s: chan=%p, op rtn=%p\n", __func__, chan, rtn); |
| 1124 | 1124 | ||
| 1125 | chan->op_fn = rtn; | 1125 | chan->op_fn = rtn; |
| 1126 | 1126 | ||
| @@ -1136,7 +1136,7 @@ int s3c2410_dma_set_buffdone_fn(dmach_t channel, s3c2410_dma_cbfn_t rtn) | |||
| 1136 | if (chan == NULL) | 1136 | if (chan == NULL) |
| 1137 | return -EINVAL; | 1137 | return -EINVAL; |
| 1138 | 1138 | ||
| 1139 | pr_debug("%s: chan=%p, callback rtn=%p\n", __FUNCTION__, chan, rtn); | 1139 | pr_debug("%s: chan=%p, callback rtn=%p\n", __func__, chan, rtn); |
| 1140 | 1140 | ||
| 1141 | chan->callback_fn = rtn; | 1141 | chan->callback_fn = rtn; |
| 1142 | 1142 | ||
| @@ -1170,7 +1170,7 @@ int s3c2410_dma_devconfig(int channel, | |||
| 1170 | return -EINVAL; | 1170 | return -EINVAL; |
| 1171 | 1171 | ||
| 1172 | pr_debug("%s: source=%d, hwcfg=%08x, devaddr=%08lx\n", | 1172 | pr_debug("%s: source=%d, hwcfg=%08x, devaddr=%08lx\n", |
| 1173 | __FUNCTION__, (int)source, hwcfg, devaddr); | 1173 | __func__, (int)source, hwcfg, devaddr); |
| 1174 | 1174 | ||
| 1175 | chan->source = source; | 1175 | chan->source = source; |
| 1176 | chan->dev_addr = devaddr; | 1176 | chan->dev_addr = devaddr; |
| @@ -1180,7 +1180,7 @@ int s3c2410_dma_devconfig(int channel, | |||
| 1180 | case S3C2410_DMASRC_HW: | 1180 | case S3C2410_DMASRC_HW: |
| 1181 | /* source is hardware */ | 1181 | /* source is hardware */ |
| 1182 | pr_debug("%s: hw source, devaddr=%08lx, hwcfg=%d\n", | 1182 | pr_debug("%s: hw source, devaddr=%08lx, hwcfg=%d\n", |
| 1183 | __FUNCTION__, devaddr, hwcfg); | 1183 | __func__, devaddr, hwcfg); |
| 1184 | dma_wrreg(chan, S3C2410_DMA_DISRCC, hwcfg & 3); | 1184 | dma_wrreg(chan, S3C2410_DMA_DISRCC, hwcfg & 3); |
| 1185 | dma_wrreg(chan, S3C2410_DMA_DISRC, devaddr); | 1185 | dma_wrreg(chan, S3C2410_DMA_DISRC, devaddr); |
| 1186 | dma_wrreg(chan, S3C2410_DMA_DIDSTC, (0<<1) | (0<<0)); | 1186 | dma_wrreg(chan, S3C2410_DMA_DIDSTC, (0<<1) | (0<<0)); |
| @@ -1190,8 +1190,8 @@ int s3c2410_dma_devconfig(int channel, | |||
| 1190 | 1190 | ||
| 1191 | case S3C2410_DMASRC_MEM: | 1191 | case S3C2410_DMASRC_MEM: |
| 1192 | /* source is memory */ | 1192 | /* source is memory */ |
| 1193 | pr_debug( "%s: mem source, devaddr=%08lx, hwcfg=%d\n", | 1193 | pr_debug("%s: mem source, devaddr=%08lx, hwcfg=%d\n", |
| 1194 | __FUNCTION__, devaddr, hwcfg); | 1194 | __func__, devaddr, hwcfg); |
| 1195 | dma_wrreg(chan, S3C2410_DMA_DISRCC, (0<<1) | (0<<0)); | 1195 | dma_wrreg(chan, S3C2410_DMA_DISRCC, (0<<1) | (0<<0)); |
| 1196 | dma_wrreg(chan, S3C2410_DMA_DIDST, devaddr); | 1196 | dma_wrreg(chan, S3C2410_DMA_DIDST, devaddr); |
| 1197 | dma_wrreg(chan, S3C2410_DMA_DIDSTC, hwcfg & 3); | 1197 | dma_wrreg(chan, S3C2410_DMA_DIDSTC, hwcfg & 3); |
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c index 5a77030e07a0..e765a8652b3e 100644 --- a/arch/avr32/boards/atstk1000/atstk1004.c +++ b/arch/avr32/boards/atstk1000/atstk1004.c | |||
| @@ -129,7 +129,7 @@ static int __init atstk1004_init(void) | |||
| 129 | #ifdef CONFIG_BOARD_ATSTK100X_SPI1 | 129 | #ifdef CONFIG_BOARD_ATSTK100X_SPI1 |
| 130 | at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); | 130 | at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); |
| 131 | #endif | 131 | #endif |
| 132 | #ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM | 132 | #ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM |
| 133 | at32_add_device_mci(0); | 133 | at32_add_device_mci(0); |
| 134 | #endif | 134 | #endif |
| 135 | at32_add_device_lcdc(0, &atstk1000_lcdc_data, | 135 | at32_add_device_lcdc(0, &atstk1000_lcdc_data, |
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c index eaaa69bbdc38..7f4af0b1e111 100644 --- a/arch/avr32/kernel/process.c +++ b/arch/avr32/kernel/process.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include <linux/fs.h> | 11 | #include <linux/fs.h> |
| 12 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
| 13 | #include <linux/reboot.h> | 13 | #include <linux/reboot.h> |
| 14 | #include <linux/tick.h> | ||
| 14 | #include <linux/uaccess.h> | 15 | #include <linux/uaccess.h> |
| 15 | #include <linux/unistd.h> | 16 | #include <linux/unistd.h> |
| 16 | 17 | ||
| @@ -30,8 +31,10 @@ void cpu_idle(void) | |||
| 30 | { | 31 | { |
| 31 | /* endless idle loop with no priority at all */ | 32 | /* endless idle loop with no priority at all */ |
| 32 | while (1) { | 33 | while (1) { |
| 34 | tick_nohz_stop_sched_tick(); | ||
| 33 | while (!need_resched()) | 35 | while (!need_resched()) |
| 34 | cpu_idle_sleep(); | 36 | cpu_idle_sleep(); |
| 37 | tick_nohz_restart_sched_tick(); | ||
| 35 | preempt_enable_no_resched(); | 38 | preempt_enable_no_resched(); |
| 36 | schedule(); | 39 | schedule(); |
| 37 | preempt_disable(); | 40 | preempt_disable(); |
| @@ -345,6 +348,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, | |||
| 345 | p->thread.cpu_context.ksp = (unsigned long)childregs; | 348 | p->thread.cpu_context.ksp = (unsigned long)childregs; |
| 346 | p->thread.cpu_context.pc = (unsigned long)ret_from_fork; | 349 | p->thread.cpu_context.pc = (unsigned long)ret_from_fork; |
| 347 | 350 | ||
| 351 | clear_tsk_thread_flag(p, TIF_DEBUG); | ||
| 348 | if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG)) | 352 | if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG)) |
| 349 | ocd_enable(p); | 353 | ocd_enable(p); |
| 350 | 354 | ||
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c index 6560cb18b4e3..ce4e4296b954 100644 --- a/arch/avr32/mm/fault.c +++ b/arch/avr32/mm/fault.c | |||
| @@ -189,6 +189,8 @@ no_context: | |||
| 189 | 189 | ||
| 190 | page = sysreg_read(PTBR); | 190 | page = sysreg_read(PTBR); |
| 191 | printk(KERN_ALERT "ptbr = %08lx", page); | 191 | printk(KERN_ALERT "ptbr = %08lx", page); |
| 192 | if (address >= TASK_SIZE) | ||
| 193 | page = (unsigned long)swapper_pg_dir; | ||
| 192 | if (page) { | 194 | if (page) { |
| 193 | page = ((unsigned long *)page)[address >> 22]; | 195 | page = ((unsigned long *)page)[address >> 22]; |
| 194 | printk(" pgd = %08lx", page); | 196 | printk(" pgd = %08lx", page); |
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile index fe254f886a6e..75eba2ca7881 100644 --- a/arch/blackfin/Makefile +++ b/arch/blackfin/Makefile | |||
| @@ -98,8 +98,11 @@ drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/ | |||
| 98 | # them changed. We use .mach to indicate when they were updated | 98 | # them changed. We use .mach to indicate when they were updated |
| 99 | # last, otherwise make uses the target directory mtime. | 99 | # last, otherwise make uses the target directory mtime. |
| 100 | 100 | ||
| 101 | show_mach_symlink = : | ||
| 102 | quiet_show_mach_symlink = echo ' SYMLINK include/asm-$(ARCH)/mach-$(MACHINE) -> include/asm-$(ARCH)/mach' | ||
| 103 | silent_show_mach_symlink = : | ||
| 101 | include/asm-blackfin/.mach: $(wildcard include/config/arch/*.h) include/config/auto.conf | 104 | include/asm-blackfin/.mach: $(wildcard include/config/arch/*.h) include/config/auto.conf |
| 102 | @echo ' SYMLINK include/asm-$(ARCH)/mach-$(MACHINE) -> include/asm-$(ARCH)/mach' | 105 | @$($(quiet)show_mach_symlink) |
| 103 | ifneq ($(KBUILD_SRC),) | 106 | ifneq ($(KBUILD_SRC),) |
| 104 | $(Q)mkdir -p include/asm-$(ARCH) | 107 | $(Q)mkdir -p include/asm-$(ARCH) |
| 105 | $(Q)ln -fsn $(srctree)/include/asm-$(ARCH)/mach-$(MACHINE) include/asm-$(ARCH)/mach | 108 | $(Q)ln -fsn $(srctree)/include/asm-$(ARCH)/mach-$(MACHINE) include/asm-$(ARCH)/mach |
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig index d59ee1530bd4..ae320dcfedef 100644 --- a/arch/blackfin/configs/BF527-EZKIT_defconfig +++ b/arch/blackfin/configs/BF527-EZKIT_defconfig | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.22.14 | 3 | # Linux kernel version: 2.6.22.16 |
| 4 | # Thu Nov 29 17:32:47 2007 | ||
| 5 | # | 4 | # |
| 6 | # CONFIG_MMU is not set | 5 | # CONFIG_MMU is not set |
| 7 | # CONFIG_FPU is not set | 6 | # CONFIG_FPU is not set |
| @@ -116,7 +115,10 @@ CONFIG_PREEMPT_VOLUNTARY=y | |||
| 116 | # Processor and Board Settings | 115 | # Processor and Board Settings |
| 117 | # | 116 | # |
| 118 | # CONFIG_BF522 is not set | 117 | # CONFIG_BF522 is not set |
| 118 | # CONFIG_BF523 is not set | ||
| 119 | # CONFIG_BF524 is not set | ||
| 119 | # CONFIG_BF525 is not set | 120 | # CONFIG_BF525 is not set |
| 121 | # CONFIG_BF526 is not set | ||
| 120 | CONFIG_BF527=y | 122 | CONFIG_BF527=y |
| 121 | # CONFIG_BF531 is not set | 123 | # CONFIG_BF531 is not set |
| 122 | # CONFIG_BF532 is not set | 124 | # CONFIG_BF532 is not set |
| @@ -306,6 +308,7 @@ CONFIG_BFIN_DCACHE=y | |||
| 306 | # CONFIG_BFIN_WB is not set | 308 | # CONFIG_BFIN_WB is not set |
| 307 | CONFIG_BFIN_WT=y | 309 | CONFIG_BFIN_WT=y |
| 308 | CONFIG_L1_MAX_PIECE=16 | 310 | CONFIG_L1_MAX_PIECE=16 |
| 311 | # CONFIG_MPU is not set | ||
| 309 | 312 | ||
| 310 | # | 313 | # |
| 311 | # Asynchonous Memory Configuration | 314 | # Asynchonous Memory Configuration |
| @@ -354,6 +357,7 @@ CONFIG_BINFMT_ZFLAT=y | |||
| 354 | # Power management options | 357 | # Power management options |
| 355 | # | 358 | # |
| 356 | # CONFIG_PM is not set | 359 | # CONFIG_PM is not set |
| 360 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
| 357 | 361 | ||
| 358 | # | 362 | # |
| 359 | # Networking | 363 | # Networking |
| @@ -496,7 +500,6 @@ CONFIG_MTD_CFI_I2=y | |||
| 496 | # CONFIG_MTD_CFI_INTELEXT is not set | 500 | # CONFIG_MTD_CFI_INTELEXT is not set |
| 497 | # CONFIG_MTD_CFI_AMDSTD is not set | 501 | # CONFIG_MTD_CFI_AMDSTD is not set |
| 498 | # CONFIG_MTD_CFI_STAA is not set | 502 | # CONFIG_MTD_CFI_STAA is not set |
| 499 | CONFIG_MTD_MW320D=m | ||
| 500 | CONFIG_MTD_RAM=y | 503 | CONFIG_MTD_RAM=y |
| 501 | CONFIG_MTD_ROM=m | 504 | CONFIG_MTD_ROM=m |
| 502 | # CONFIG_MTD_ABSENT is not set | 505 | # CONFIG_MTD_ABSENT is not set |
| @@ -506,9 +509,6 @@ CONFIG_MTD_ROM=m | |||
| 506 | # | 509 | # |
| 507 | CONFIG_MTD_COMPLEX_MAPPINGS=y | 510 | CONFIG_MTD_COMPLEX_MAPPINGS=y |
| 508 | # CONFIG_MTD_PHYSMAP is not set | 511 | # CONFIG_MTD_PHYSMAP is not set |
| 509 | CONFIG_MTD_BF5xx=m | ||
| 510 | CONFIG_BFIN_FLASH_SIZE=0x400000 | ||
| 511 | CONFIG_EBIU_FLASH_BASE=0x20000000 | ||
| 512 | # CONFIG_MTD_UCLINUX is not set | 512 | # CONFIG_MTD_UCLINUX is not set |
| 513 | # CONFIG_MTD_PLATRAM is not set | 513 | # CONFIG_MTD_PLATRAM is not set |
| 514 | 514 | ||
| @@ -684,7 +684,6 @@ CONFIG_INPUT_MISC=y | |||
| 684 | # CONFIG_INPUT_POWERMATE is not set | 684 | # CONFIG_INPUT_POWERMATE is not set |
| 685 | # CONFIG_INPUT_YEALINK is not set | 685 | # CONFIG_INPUT_YEALINK is not set |
| 686 | # CONFIG_INPUT_UINPUT is not set | 686 | # CONFIG_INPUT_UINPUT is not set |
| 687 | # CONFIG_BF53X_PFBUTTONS is not set | ||
| 688 | # CONFIG_TWI_KEYPAD is not set | 687 | # CONFIG_TWI_KEYPAD is not set |
| 689 | 688 | ||
| 690 | # | 689 | # |
| @@ -702,12 +701,12 @@ CONFIG_INPUT_MISC=y | |||
| 702 | # CONFIG_BF5xx_PPIFCD is not set | 701 | # CONFIG_BF5xx_PPIFCD is not set |
| 703 | # CONFIG_BFIN_SIMPLE_TIMER is not set | 702 | # CONFIG_BFIN_SIMPLE_TIMER is not set |
| 704 | # CONFIG_BF5xx_PPI is not set | 703 | # CONFIG_BF5xx_PPI is not set |
| 704 | CONFIG_BFIN_OTP=y | ||
| 705 | # CONFIG_BFIN_OTP_WRITE_ENABLE is not set | ||
| 705 | # CONFIG_BFIN_SPORT is not set | 706 | # CONFIG_BFIN_SPORT is not set |
| 706 | # CONFIG_BFIN_TIMER_LATENCY is not set | 707 | # CONFIG_BFIN_TIMER_LATENCY is not set |
| 707 | # CONFIG_TWI_LCD is not set | 708 | # CONFIG_TWI_LCD is not set |
| 708 | # CONFIG_AD5304 is not set | 709 | # CONFIG_AD5304 is not set |
| 709 | # CONFIG_BF5xx_TEA5764 is not set | ||
| 710 | # CONFIG_BF5xx_FBDMA is not set | ||
| 711 | # CONFIG_VT is not set | 710 | # CONFIG_VT is not set |
| 712 | # CONFIG_SERIAL_NONSTANDARD is not set | 711 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 713 | 712 | ||
| @@ -772,7 +771,6 @@ CONFIG_I2C_CHARDEV=m | |||
| 772 | # | 771 | # |
| 773 | # I2C Hardware Bus support | 772 | # I2C Hardware Bus support |
| 774 | # | 773 | # |
| 775 | # CONFIG_I2C_BLACKFIN_GPIO is not set | ||
| 776 | CONFIG_I2C_BLACKFIN_TWI=m | 774 | CONFIG_I2C_BLACKFIN_TWI=m |
| 777 | CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50 | 775 | CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50 |
| 778 | # CONFIG_I2C_GPIO is not set | 776 | # CONFIG_I2C_GPIO is not set |
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig index 811711f59a25..9621caa60b5f 100644 --- a/arch/blackfin/configs/BF533-EZKIT_defconfig +++ b/arch/blackfin/configs/BF533-EZKIT_defconfig | |||
| @@ -322,10 +322,9 @@ CONFIG_PM=y | |||
| 322 | # CONFIG_PM_LEGACY is not set | 322 | # CONFIG_PM_LEGACY is not set |
| 323 | # CONFIG_PM_DEBUG is not set | 323 | # CONFIG_PM_DEBUG is not set |
| 324 | # CONFIG_PM_SYSFS_DEPRECATED is not set | 324 | # CONFIG_PM_SYSFS_DEPRECATED is not set |
| 325 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | 325 | CONFIG_PM_BFIN_SLEEP_DEEPER=y |
| 326 | # CONFIG_PM_BFIN_SLEEP is not set | ||
| 326 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | 327 | # CONFIG_PM_WAKEUP_BY_GPIO is not set |
| 327 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
| 328 | CONFIG_PM_WAKEUP_SIC_IWR=0x80 | ||
| 329 | 328 | ||
| 330 | # | 329 | # |
| 331 | # CPU Frequency scaling | 330 | # CPU Frequency scaling |
| @@ -697,7 +696,6 @@ CONFIG_SERIAL_BFIN_DMA=y | |||
| 697 | # CONFIG_SERIAL_BFIN_PIO is not set | 696 | # CONFIG_SERIAL_BFIN_PIO is not set |
| 698 | CONFIG_SERIAL_BFIN_UART0=y | 697 | CONFIG_SERIAL_BFIN_UART0=y |
| 699 | # CONFIG_BFIN_UART0_CTSRTS is not set | 698 | # CONFIG_BFIN_UART0_CTSRTS is not set |
| 700 | # CONFIG_SERIAL_BFIN_UART1 is not set | ||
| 701 | CONFIG_SERIAL_CORE=y | 699 | CONFIG_SERIAL_CORE=y |
| 702 | CONFIG_SERIAL_CORE_CONSOLE=y | 700 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 703 | # CONFIG_SERIAL_BFIN_SPORT is not set | 701 | # CONFIG_SERIAL_BFIN_SPORT is not set |
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig index 198f4123af4b..b51e76ce7f4f 100644 --- a/arch/blackfin/configs/BF533-STAMP_defconfig +++ b/arch/blackfin/configs/BF533-STAMP_defconfig | |||
| @@ -323,10 +323,9 @@ CONFIG_PM=y | |||
| 323 | # CONFIG_PM_LEGACY is not set | 323 | # CONFIG_PM_LEGACY is not set |
| 324 | # CONFIG_PM_DEBUG is not set | 324 | # CONFIG_PM_DEBUG is not set |
| 325 | # CONFIG_PM_SYSFS_DEPRECATED is not set | 325 | # CONFIG_PM_SYSFS_DEPRECATED is not set |
| 326 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | 326 | CONFIG_PM_BFIN_SLEEP_DEEPER=y |
| 327 | # CONFIG_PM_BFIN_SLEEP is not set | ||
| 327 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | 328 | # CONFIG_PM_WAKEUP_BY_GPIO is not set |
| 328 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
| 329 | CONFIG_PM_WAKEUP_SIC_IWR=0x80 | ||
| 330 | 329 | ||
| 331 | # | 330 | # |
| 332 | # CPU Frequency scaling | 331 | # CPU Frequency scaling |
| @@ -714,7 +713,6 @@ CONFIG_SERIAL_BFIN_DMA=y | |||
| 714 | # CONFIG_SERIAL_BFIN_PIO is not set | 713 | # CONFIG_SERIAL_BFIN_PIO is not set |
| 715 | CONFIG_SERIAL_BFIN_UART0=y | 714 | CONFIG_SERIAL_BFIN_UART0=y |
| 716 | # CONFIG_BFIN_UART0_CTSRTS is not set | 715 | # CONFIG_BFIN_UART0_CTSRTS is not set |
| 717 | # CONFIG_SERIAL_BFIN_UART1 is not set | ||
| 718 | CONFIG_SERIAL_CORE=y | 716 | CONFIG_SERIAL_CORE=y |
| 719 | CONFIG_SERIAL_CORE_CONSOLE=y | 717 | CONFIG_SERIAL_CORE_CONSOLE=y |
| 720 | # CONFIG_SERIAL_BFIN_SPORT is not set | 718 | # CONFIG_SERIAL_BFIN_SPORT is not set |
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig index b37ccc681e7a..d45fa535dad7 100644 --- a/arch/blackfin/configs/BF537-STAMP_defconfig +++ b/arch/blackfin/configs/BF537-STAMP_defconfig | |||
| @@ -330,10 +330,9 @@ CONFIG_PM=y | |||
| 330 | # CONFIG_PM_LEGACY is not set | 330 | # CONFIG_PM_LEGACY is not set |
| 331 | # CONFIG_PM_DEBUG is not set | 331 | # CONFIG_PM_DEBUG is not set |
| 332 | # CONFIG_PM_SYSFS_DEPRECATED is not set | 332 | # CONFIG_PM_SYSFS_DEPRECATED is not set |
| 333 | CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y | 333 | CONFIG_PM_BFIN_SLEEP_DEEPER=y |
| 334 | # CONFIG_PM_BFIN_SLEEP is not set | ||
| 334 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | 335 | # CONFIG_PM_WAKEUP_BY_GPIO is not set |
| 335 | # CONFIG_PM_WAKEUP_GPIO_API is not set | ||
| 336 | CONFIG_PM_WAKEUP_SIC_IWR=0x8 | ||
| 337 | 336 | ||
| 338 | # | 337 | # |
| 339 | # CPU Frequency scaling | 338 | # CPU Frequency scaling |
| @@ -1013,6 +1012,7 @@ CONFIG_SND_BFIN_AD73311_SE=4 | |||
| 1013 | CONFIG_SND_SOC_AC97_BUS=y | 1012 | CONFIG_SND_SOC_AC97_BUS=y |
| 1014 | CONFIG_SND_SOC=m | 1013 | CONFIG_SND_SOC=m |
| 1015 | CONFIG_SND_BF5XX_SOC=m | 1014 | CONFIG_SND_BF5XX_SOC=m |
| 1015 | CONFIG_SND_MMAP_SUPPORT=y | ||
| 1016 | CONFIG_SND_BF5XX_SOC_AC97=m | 1016 | CONFIG_SND_BF5XX_SOC_AC97=m |
| 1017 | # CONFIG_SND_BF5XX_SOC_WM8750 is not set | 1017 | # CONFIG_SND_BF5XX_SOC_WM8750 is not set |
| 1018 | # CONFIG_SND_BF5XX_SOC_WM8731 is not set | 1018 | # CONFIG_SND_BF5XX_SOC_WM8731 is not set |
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig index fd702161ef59..c9707f7665ad 100644 --- a/arch/blackfin/configs/BF548-EZKIT_defconfig +++ b/arch/blackfin/configs/BF548-EZKIT_defconfig | |||
| @@ -396,6 +396,7 @@ CONFIG_BINFMT_ZFLAT=y | |||
| 396 | # Power management options | 396 | # Power management options |
| 397 | # | 397 | # |
| 398 | # CONFIG_PM is not set | 398 | # CONFIG_PM is not set |
| 399 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
| 399 | 400 | ||
| 400 | # | 401 | # |
| 401 | # CPU Frequency scaling | 402 | # CPU Frequency scaling |
| @@ -1075,6 +1076,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
| 1075 | CONFIG_SND_SOC_AC97_BUS=y | 1076 | CONFIG_SND_SOC_AC97_BUS=y |
| 1076 | CONFIG_SND_SOC=y | 1077 | CONFIG_SND_SOC=y |
| 1077 | CONFIG_SND_BF5XX_SOC=y | 1078 | CONFIG_SND_BF5XX_SOC=y |
| 1079 | CONFIG_SND_MMAP_SUPPORT=y | ||
| 1078 | CONFIG_SND_BF5XX_SOC_AC97=y | 1080 | CONFIG_SND_BF5XX_SOC_AC97=y |
| 1079 | CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y | 1081 | CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y |
| 1080 | # CONFIG_SND_BF5XX_SOC_WM8750 is not set | 1082 | # CONFIG_SND_BF5XX_SOC_WM8750 is not set |
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig index 8546994939fb..4d8a63331309 100644 --- a/arch/blackfin/configs/BF561-EZKIT_defconfig +++ b/arch/blackfin/configs/BF561-EZKIT_defconfig | |||
| @@ -367,6 +367,7 @@ CONFIG_BINFMT_ZFLAT=y | |||
| 367 | # Power management options | 367 | # Power management options |
| 368 | # | 368 | # |
| 369 | # CONFIG_PM is not set | 369 | # CONFIG_PM is not set |
| 370 | # CONFIG_PM_WAKEUP_BY_GPIO is not set | ||
| 370 | 371 | ||
| 371 | # | 372 | # |
| 372 | # Networking | 373 | # Networking |
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c index 5453bc3664fc..8fd5d22cec34 100644 --- a/arch/blackfin/kernel/bfin_dma_5xx.c +++ b/arch/blackfin/kernel/bfin_dma_5xx.c | |||
| @@ -105,13 +105,14 @@ int request_dma(unsigned int channel, char *device_id) | |||
| 105 | mutex_unlock(&(dma_ch[channel].dmalock)); | 105 | mutex_unlock(&(dma_ch[channel].dmalock)); |
| 106 | 106 | ||
| 107 | #ifdef CONFIG_BF54x | 107 | #ifdef CONFIG_BF54x |
| 108 | if (channel >= CH_UART2_RX && channel <= CH_UART3_TX && | 108 | if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) { |
| 109 | strncmp(device_id, "BFIN_UART", 9) == 0) | 109 | if (strncmp(device_id, "BFIN_UART", 9) == 0) |
| 110 | dma_ch[channel].regs->peripheral_map |= | 110 | dma_ch[channel].regs->peripheral_map |= |
| 111 | (channel - CH_UART2_RX + 0xC); | 111 | (channel - CH_UART2_RX + 0xC); |
| 112 | else | 112 | else |
| 113 | dma_ch[channel].regs->peripheral_map |= | 113 | dma_ch[channel].regs->peripheral_map |= |
| 114 | (channel - CH_UART2_RX + 0x6); | 114 | (channel - CH_UART2_RX + 0x6); |
| 115 | } | ||
| 115 | #endif | 116 | #endif |
| 116 | 117 | ||
| 117 | dma_ch[channel].device_id = device_id; | 118 | dma_ch[channel].device_id = device_id; |
diff --git a/arch/blackfin/kernel/fixed_code.S b/arch/blackfin/kernel/fixed_code.S index 90262691b11a..5ed47228a390 100644 --- a/arch/blackfin/kernel/fixed_code.S +++ b/arch/blackfin/kernel/fixed_code.S | |||
| @@ -101,9 +101,9 @@ ENDPROC (_atomic_ior32) | |||
| 101 | 101 | ||
| 102 | .align 16 | 102 | .align 16 |
| 103 | /* | 103 | /* |
| 104 | * Atomic ior, 32 bit. | 104 | * Atomic and, 32 bit. |
| 105 | * Inputs: P0: memory address to use | 105 | * Inputs: P0: memory address to use |
| 106 | * R0: value to ior | 106 | * R0: value to and |
| 107 | * Outputs: R0: new contents of the memory address. | 107 | * Outputs: R0: new contents of the memory address. |
| 108 | * R1: previous contents of the memory address. | 108 | * R1: previous contents of the memory address. |
| 109 | */ | 109 | */ |
| @@ -112,13 +112,13 @@ ENTRY(_atomic_and32) | |||
| 112 | R0 = R1 & R0; | 112 | R0 = R1 & R0; |
| 113 | [P0] = R0; | 113 | [P0] = R0; |
| 114 | rts; | 114 | rts; |
| 115 | ENDPROC (_atomic_ior32) | 115 | ENDPROC (_atomic_and32) |
| 116 | 116 | ||
| 117 | .align 16 | 117 | .align 16 |
| 118 | /* | 118 | /* |
| 119 | * Atomic ior, 32 bit. | 119 | * Atomic xor, 32 bit. |
| 120 | * Inputs: P0: memory address to use | 120 | * Inputs: P0: memory address to use |
| 121 | * R0: value to ior | 121 | * R0: value to xor |
| 122 | * Outputs: R0: new contents of the memory address. | 122 | * Outputs: R0: new contents of the memory address. |
| 123 | * R1: previous contents of the memory address. | 123 | * R1: previous contents of the memory address. |
| 124 | */ | 124 | */ |
| @@ -127,7 +127,7 @@ ENTRY(_atomic_xor32) | |||
| 127 | R0 = R1 ^ R0; | 127 | R0 = R1 ^ R0; |
| 128 | [P0] = R0; | 128 | [P0] = R0; |
| 129 | rts; | 129 | rts; |
| 130 | ENDPROC (_atomic_ior32) | 130 | ENDPROC (_atomic_xor32) |
| 131 | 131 | ||
| 132 | .align 16 | 132 | .align 16 |
| 133 | /* | 133 | /* |
diff --git a/arch/blackfin/kernel/gptimers.c b/arch/blackfin/kernel/gptimers.c index 5cf4bdb1df3b..1904d8b53328 100644 --- a/arch/blackfin/kernel/gptimers.c +++ b/arch/blackfin/kernel/gptimers.c | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * bfin_gptimers.c - derived from bf53x_timers.c | 2 | * gptimers.c - Blackfin General Purpose Timer core API |
| 3 | * Driver for General Purpose Timer functions on the Blackfin processor | ||
| 4 | * | 3 | * |
| 5 | * Copyright (C) 2005 John DeHority | 4 | * Copyright (c) 2005-2008 Analog Devices Inc. |
| 6 | * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) | 5 | * Copyright (C) 2005 John DeHority |
| 6 | * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) | ||
| 7 | * | 7 | * |
| 8 | * Licensed under the GPLv2. | 8 | * Licensed under the GPLv2. |
| 9 | */ | 9 | */ |
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index 8229b1090eb9..2255c289a714 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
| @@ -32,6 +32,7 @@ | |||
| 32 | static DEFINE_PER_CPU(struct cpu, cpu_devices); | 32 | static DEFINE_PER_CPU(struct cpu, cpu_devices); |
| 33 | 33 | ||
| 34 | u16 _bfin_swrst; | 34 | u16 _bfin_swrst; |
| 35 | EXPORT_SYMBOL(_bfin_swrst); | ||
| 35 | 36 | ||
| 36 | unsigned long memory_start, memory_end, physical_mem_end; | 37 | unsigned long memory_start, memory_end, physical_mem_end; |
| 37 | unsigned long reserved_mem_dcache_on; | 38 | unsigned long reserved_mem_dcache_on; |
| @@ -514,6 +515,7 @@ static __init void memory_setup(void) | |||
| 514 | printk(KERN_INFO "Kernel Managed Memory: %ldMB\n", _ramend >> 20); | 515 | printk(KERN_INFO "Kernel Managed Memory: %ldMB\n", _ramend >> 20); |
| 515 | 516 | ||
| 516 | printk(KERN_INFO "Memory map:\n" | 517 | printk(KERN_INFO "Memory map:\n" |
| 518 | KERN_INFO " fixedcode = 0x%p-0x%p\n" | ||
| 517 | KERN_INFO " text = 0x%p-0x%p\n" | 519 | KERN_INFO " text = 0x%p-0x%p\n" |
| 518 | KERN_INFO " rodata = 0x%p-0x%p\n" | 520 | KERN_INFO " rodata = 0x%p-0x%p\n" |
| 519 | KERN_INFO " bss = 0x%p-0x%p\n" | 521 | KERN_INFO " bss = 0x%p-0x%p\n" |
| @@ -527,7 +529,8 @@ static __init void memory_setup(void) | |||
| 527 | #if DMA_UNCACHED_REGION > 0 | 529 | #if DMA_UNCACHED_REGION > 0 |
| 528 | KERN_INFO " DMA Zone = 0x%p-0x%p\n" | 530 | KERN_INFO " DMA Zone = 0x%p-0x%p\n" |
| 529 | #endif | 531 | #endif |
| 530 | , _stext, _etext, | 532 | , (void *)FIXED_CODE_START, (void *)FIXED_CODE_END, |
| 533 | _stext, _etext, | ||
| 531 | __start_rodata, __end_rodata, | 534 | __start_rodata, __end_rodata, |
| 532 | __bss_start, __bss_stop, | 535 | __bss_start, __bss_stop, |
| 533 | _sdata, _edata, | 536 | _sdata, _edata, |
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index aed832540b3b..cb01a9de2680 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
| @@ -147,44 +147,64 @@ SECTIONS | |||
| 147 | 147 | ||
| 148 | __l1_lma_start = .; | 148 | __l1_lma_start = .; |
| 149 | 149 | ||
| 150 | #if L1_CODE_LENGTH | ||
| 151 | # define LDS_L1_CODE *(.l1.text) | ||
| 152 | #else | ||
| 153 | # define LDS_L1_CODE | ||
| 154 | #endif | ||
| 150 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) | 155 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) |
| 151 | { | 156 | { |
| 152 | . = ALIGN(4); | 157 | . = ALIGN(4); |
| 153 | __stext_l1 = .; | 158 | __stext_l1 = .; |
| 154 | *(.l1.text) | 159 | LDS_L1_CODE |
| 155 | |||
| 156 | . = ALIGN(4); | 160 | . = ALIGN(4); |
| 157 | __etext_l1 = .; | 161 | __etext_l1 = .; |
| 158 | } | 162 | } |
| 159 | 163 | ||
| 164 | #if L1_DATA_A_LENGTH | ||
| 165 | # define LDS_L1_A_DATA *(.l1.data) | ||
| 166 | # define LDS_L1_A_BSS *(.l1.bss) | ||
| 167 | # define LDS_L1_A_CACHE *(.data_l1.cacheline_aligned) | ||
| 168 | #else | ||
| 169 | # define LDS_L1_A_DATA | ||
| 170 | # define LDS_L1_A_BSS | ||
| 171 | # define LDS_L1_A_CACHE | ||
| 172 | #endif | ||
| 160 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) | 173 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) |
| 161 | { | 174 | { |
| 162 | . = ALIGN(4); | 175 | . = ALIGN(4); |
| 163 | __sdata_l1 = .; | 176 | __sdata_l1 = .; |
| 164 | *(.l1.data) | 177 | LDS_L1_A_DATA |
| 165 | __edata_l1 = .; | 178 | __edata_l1 = .; |
| 166 | 179 | ||
| 167 | . = ALIGN(4); | 180 | . = ALIGN(4); |
| 168 | __sbss_l1 = .; | 181 | __sbss_l1 = .; |
| 169 | *(.l1.bss) | 182 | LDS_L1_A_BSS |
| 170 | 183 | ||
| 171 | . = ALIGN(32); | 184 | . = ALIGN(32); |
| 172 | *(.data_l1.cacheline_aligned) | 185 | LDS_L1_A_CACHE |
| 173 | 186 | ||
| 174 | . = ALIGN(4); | 187 | . = ALIGN(4); |
| 175 | __ebss_l1 = .; | 188 | __ebss_l1 = .; |
| 176 | } | 189 | } |
| 177 | 190 | ||
| 191 | #if L1_DATA_B_LENGTH | ||
| 192 | # define LDS_L1_B_DATA *(.l1.data.B) | ||
| 193 | # define LDS_L1_B_BSS *(.l1.bss.B) | ||
| 194 | #else | ||
| 195 | # define LDS_L1_B_DATA | ||
| 196 | # define LDS_L1_B_BSS | ||
| 197 | #endif | ||
| 178 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) | 198 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) |
| 179 | { | 199 | { |
| 180 | . = ALIGN(4); | 200 | . = ALIGN(4); |
| 181 | __sdata_b_l1 = .; | 201 | __sdata_b_l1 = .; |
| 182 | *(.l1.data.B) | 202 | LDS_L1_B_DATA |
| 183 | __edata_b_l1 = .; | 203 | __edata_b_l1 = .; |
| 184 | 204 | ||
| 185 | . = ALIGN(4); | 205 | . = ALIGN(4); |
| 186 | __sbss_b_l1 = .; | 206 | __sbss_b_l1 = .; |
| 187 | *(.l1.bss.B) | 207 | LDS_L1_B_BSS |
| 188 | 208 | ||
| 189 | . = ALIGN(4); | 209 | . = ALIGN(4); |
| 190 | __ebss_b_l1 = .; | 210 | __ebss_b_l1 = .; |
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c index 337515fba612..cf4bc0d83355 100644 --- a/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/arch/blackfin/mach-bf527/boards/ezkit.c | |||
| @@ -180,8 +180,8 @@ static struct mtd_partition partition_info[] = { | |||
| 180 | }, | 180 | }, |
| 181 | { | 181 | { |
| 182 | .name = "File System", | 182 | .name = "File System", |
| 183 | .offset = 4 * SIZE_1M, | 183 | .offset = MTDPART_OFS_APPEND, |
| 184 | .size = (256 - 4) * SIZE_1M, | 184 | .size = MTDPART_SIZ_FULL, |
| 185 | }, | 185 | }, |
| 186 | }; | 186 | }; |
| 187 | 187 | ||
| @@ -422,11 +422,11 @@ static struct mtd_partition bfin_spi_flash_partitions[] = { | |||
| 422 | }, { | 422 | }, { |
| 423 | .name = "kernel", | 423 | .name = "kernel", |
| 424 | .size = 0xe0000, | 424 | .size = 0xe0000, |
| 425 | .offset = 0x20000 | 425 | .offset = MTDPART_OFS_APPEND, |
| 426 | }, { | 426 | }, { |
| 427 | .name = "file system", | 427 | .name = "file system", |
| 428 | .size = 0x700000, | 428 | .size = MTDPART_SIZ_FULL, |
| 429 | .offset = 0x00100000, | 429 | .offset = MTDPART_OFS_APPEND, |
| 430 | } | 430 | } |
| 431 | }; | 431 | }; |
| 432 | 432 | ||
| @@ -484,13 +484,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = { | |||
| 484 | }; | 484 | }; |
| 485 | #endif | 485 | #endif |
| 486 | 486 | ||
| 487 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 488 | static struct bfin5xx_spi_chip ad5304_chip_info = { | ||
| 489 | .enable_dma = 0, | ||
| 490 | .bits_per_word = 16, | ||
| 491 | }; | ||
| 492 | #endif | ||
| 493 | |||
| 494 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 487 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
| 495 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { | 488 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { |
| 496 | .enable_dma = 0, | 489 | .enable_dma = 0, |
| @@ -611,17 +604,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
| 611 | .mode = SPI_MODE_3, | 604 | .mode = SPI_MODE_3, |
| 612 | }, | 605 | }, |
| 613 | #endif | 606 | #endif |
| 614 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 615 | { | ||
| 616 | .modalias = "ad5304_spi", | ||
| 617 | .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */ | ||
| 618 | .bus_num = 0, | ||
| 619 | .chip_select = 2, | ||
| 620 | .platform_data = NULL, | ||
| 621 | .controller_data = &ad5304_chip_info, | ||
| 622 | .mode = SPI_MODE_2, | ||
| 623 | }, | ||
| 624 | #endif | ||
| 625 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 607 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
| 626 | { | 608 | { |
| 627 | .modalias = "ad7877", | 609 | .modalias = "ad7877", |
| @@ -818,6 +800,19 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 818 | }; | 800 | }; |
| 819 | #endif | 801 | #endif |
| 820 | 802 | ||
| 803 | static struct resource bfin_gpios_resources = { | ||
| 804 | .start = 0, | ||
| 805 | .end = MAX_BLACKFIN_GPIOS - 1, | ||
| 806 | .flags = IORESOURCE_IRQ, | ||
| 807 | }; | ||
| 808 | |||
| 809 | static struct platform_device bfin_gpios_device = { | ||
| 810 | .name = "simple-gpio", | ||
| 811 | .id = -1, | ||
| 812 | .num_resources = 1, | ||
| 813 | .resource = &bfin_gpios_resources, | ||
| 814 | }; | ||
| 815 | |||
| 821 | static struct platform_device *stamp_devices[] __initdata = { | 816 | static struct platform_device *stamp_devices[] __initdata = { |
| 822 | #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) | 817 | #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) |
| 823 | &bf5xx_nand_device, | 818 | &bf5xx_nand_device, |
| @@ -895,6 +890,8 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
| 895 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 890 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
| 896 | &bfin_device_gpiokeys, | 891 | &bfin_device_gpiokeys, |
| 897 | #endif | 892 | #endif |
| 893 | |||
| 894 | &bfin_gpios_device, | ||
| 898 | }; | 895 | }; |
| 899 | 896 | ||
| 900 | static int __init stamp_init(void) | 897 | static int __init stamp_init(void) |
| @@ -921,13 +918,18 @@ void native_machine_restart(char *cmd) | |||
| 921 | bfin_gpio_reset_spi0_ssel1(); | 918 | bfin_gpio_reset_spi0_ssel1(); |
| 922 | } | 919 | } |
| 923 | 920 | ||
| 924 | /* | ||
| 925 | * Currently the MAC address is saved in Flash by U-Boot | ||
| 926 | */ | ||
| 927 | #define FLASH_MAC 0x203f0000 | ||
| 928 | void bfin_get_ether_addr(char *addr) | 921 | void bfin_get_ether_addr(char *addr) |
| 929 | { | 922 | { |
| 930 | *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC); | 923 | /* the MAC is stored in OTP memory page 0xDF */ |
| 931 | *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4); | 924 | u32 ret; |
| 925 | u64 otp_mac; | ||
| 926 | u32 (*otp_read)(u32 page, u32 flags, u64 *page_content) = (void *)0xEF00001A; | ||
| 927 | |||
| 928 | ret = otp_read(0xDF, 0x00, &otp_mac); | ||
| 929 | if (!(ret & 0x1)) { | ||
| 930 | char *otp_mac_p = (char *)&otp_mac; | ||
| 931 | for (ret = 0; ret < 6; ++ret) | ||
| 932 | addr[ret] = otp_mac_p[5 - ret]; | ||
| 933 | } | ||
| 932 | } | 934 | } |
| 933 | EXPORT_SYMBOL(bfin_get_ether_addr); | 935 | EXPORT_SYMBOL(bfin_get_ether_addr); |
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c index 2b09aa39f565..241b5a20a36a 100644 --- a/arch/blackfin/mach-bf533/boards/ezkit.c +++ b/arch/blackfin/mach-bf533/boards/ezkit.c | |||
| @@ -99,11 +99,11 @@ static struct mtd_partition bfin_spi_flash_partitions[] = { | |||
| 99 | }, { | 99 | }, { |
| 100 | .name = "kernel", | 100 | .name = "kernel", |
| 101 | .size = 0xe0000, | 101 | .size = 0xe0000, |
| 102 | .offset = 0x20000 | 102 | .offset = MTDPART_OFS_APPEND, |
| 103 | }, { | 103 | }, { |
| 104 | .name = "file system", | 104 | .name = "file system", |
| 105 | .size = 0x700000, | 105 | .size = MTDPART_SIZ_FULL, |
| 106 | .offset = 0x00100000, | 106 | .offset = MTDPART_OFS_APPEND, |
| 107 | } | 107 | } |
| 108 | }; | 108 | }; |
| 109 | 109 | ||
| @@ -298,6 +298,19 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 298 | }; | 298 | }; |
| 299 | #endif | 299 | #endif |
| 300 | 300 | ||
| 301 | static struct resource bfin_gpios_resources = { | ||
| 302 | .start = 0, | ||
| 303 | .end = MAX_BLACKFIN_GPIOS - 1, | ||
| 304 | .flags = IORESOURCE_IRQ, | ||
| 305 | }; | ||
| 306 | |||
| 307 | static struct platform_device bfin_gpios_device = { | ||
| 308 | .name = "simple-gpio", | ||
| 309 | .id = -1, | ||
| 310 | .num_resources = 1, | ||
| 311 | .resource = &bfin_gpios_resources, | ||
| 312 | }; | ||
| 313 | |||
| 301 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) | 314 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) |
| 302 | #include <linux/i2c-gpio.h> | 315 | #include <linux/i2c-gpio.h> |
| 303 | 316 | ||
| @@ -350,6 +363,8 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
| 350 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) | 363 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) |
| 351 | &i2c_gpio_device, | 364 | &i2c_gpio_device, |
| 352 | #endif | 365 | #endif |
| 366 | |||
| 367 | &bfin_gpios_device, | ||
| 353 | }; | 368 | }; |
| 354 | 369 | ||
| 355 | static int __init ezkit_init(void) | 370 | static int __init ezkit_init(void) |
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c index a645f6fd091b..b2ac4816ae62 100644 --- a/arch/blackfin/mach-bf533/boards/stamp.c +++ b/arch/blackfin/mach-bf533/boards/stamp.c | |||
| @@ -112,7 +112,7 @@ static struct platform_device net2272_bfin_device = { | |||
| 112 | static struct mtd_partition stamp_partitions[] = { | 112 | static struct mtd_partition stamp_partitions[] = { |
| 113 | { | 113 | { |
| 114 | .name = "Bootloader", | 114 | .name = "Bootloader", |
| 115 | .size = 0x20000, | 115 | .size = 0x40000, |
| 116 | .offset = 0, | 116 | .offset = 0, |
| 117 | }, { | 117 | }, { |
| 118 | .name = "Kernel", | 118 | .name = "Kernel", |
| @@ -160,17 +160,17 @@ static struct platform_device stamp_flash_device = { | |||
| 160 | static struct mtd_partition bfin_spi_flash_partitions[] = { | 160 | static struct mtd_partition bfin_spi_flash_partitions[] = { |
| 161 | { | 161 | { |
| 162 | .name = "bootloader", | 162 | .name = "bootloader", |
| 163 | .size = 0x00020000, | 163 | .size = 0x00040000, |
| 164 | .offset = 0, | 164 | .offset = 0, |
| 165 | .mask_flags = MTD_CAP_ROM | 165 | .mask_flags = MTD_CAP_ROM |
| 166 | }, { | 166 | }, { |
| 167 | .name = "kernel", | 167 | .name = "kernel", |
| 168 | .size = 0xe0000, | 168 | .size = 0xe0000, |
| 169 | .offset = 0x20000 | 169 | .offset = MTDPART_OFS_APPEND, |
| 170 | }, { | 170 | }, { |
| 171 | .name = "file system", | 171 | .name = "file system", |
| 172 | .size = 0x700000, | 172 | .size = MTDPART_SIZ_FULL, |
| 173 | .offset = 0x00100000, | 173 | .offset = MTDPART_OFS_APPEND, |
| 174 | } | 174 | } |
| 175 | }; | 175 | }; |
| 176 | 176 | ||
| @@ -212,13 +212,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = { | |||
| 212 | }; | 212 | }; |
| 213 | #endif | 213 | #endif |
| 214 | 214 | ||
| 215 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 216 | static struct bfin5xx_spi_chip ad5304_chip_info = { | ||
| 217 | .enable_dma = 0, | ||
| 218 | .bits_per_word = 16, | ||
| 219 | }; | ||
| 220 | #endif | ||
| 221 | |||
| 222 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) | 215 | #if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) |
| 223 | static struct bfin5xx_spi_chip spi_mmc_chip_info = { | 216 | static struct bfin5xx_spi_chip spi_mmc_chip_info = { |
| 224 | .enable_dma = 1, | 217 | .enable_dma = 1, |
| @@ -308,17 +301,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
| 308 | }, | 301 | }, |
| 309 | #endif | 302 | #endif |
| 310 | 303 | ||
| 311 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 312 | { | ||
| 313 | .modalias = "ad5304_spi", | ||
| 314 | .max_speed_hz = 1000000, /* max spi clock (SCK) speed in HZ */ | ||
| 315 | .bus_num = 0, | ||
| 316 | .chip_select = 2, | ||
| 317 | .platform_data = NULL, | ||
| 318 | .controller_data = &ad5304_chip_info, | ||
| 319 | .mode = SPI_MODE_2, | ||
| 320 | }, | ||
| 321 | #endif | ||
| 322 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) | 304 | #if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) |
| 323 | { | 305 | { |
| 324 | .modalias = "spidev", | 306 | .modalias = "spidev", |
| @@ -457,6 +439,19 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 457 | }; | 439 | }; |
| 458 | #endif | 440 | #endif |
| 459 | 441 | ||
| 442 | static struct resource bfin_gpios_resources = { | ||
| 443 | .start = 0, | ||
| 444 | .end = MAX_BLACKFIN_GPIOS - 1, | ||
| 445 | .flags = IORESOURCE_IRQ, | ||
| 446 | }; | ||
| 447 | |||
| 448 | static struct platform_device bfin_gpios_device = { | ||
| 449 | .name = "simple-gpio", | ||
| 450 | .id = -1, | ||
| 451 | .num_resources = 1, | ||
| 452 | .resource = &bfin_gpios_resources, | ||
| 453 | }; | ||
| 454 | |||
| 460 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) | 455 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) |
| 461 | #include <linux/i2c-gpio.h> | 456 | #include <linux/i2c-gpio.h> |
| 462 | 457 | ||
| @@ -518,6 +513,8 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
| 518 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) | 513 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) |
| 519 | &i2c_gpio_device, | 514 | &i2c_gpio_device, |
| 520 | #endif | 515 | #endif |
| 516 | |||
| 517 | &bfin_gpios_device, | ||
| 521 | &stamp_flash_device, | 518 | &stamp_flash_device, |
| 522 | }; | 519 | }; |
| 523 | 520 | ||
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c index 8a3397db1d21..c95395ba7bfa 100644 --- a/arch/blackfin/mach-bf537/boards/generic_board.c +++ b/arch/blackfin/mach-bf537/boards/generic_board.c | |||
| @@ -371,13 +371,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = { | |||
| 371 | }; | 371 | }; |
| 372 | #endif | 372 | #endif |
| 373 | 373 | ||
| 374 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 375 | static struct bfin5xx_spi_chip ad5304_chip_info = { | ||
| 376 | .enable_dma = 0, | ||
| 377 | .bits_per_word = 16, | ||
| 378 | }; | ||
| 379 | #endif | ||
| 380 | |||
| 381 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 374 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
| 382 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { | 375 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { |
| 383 | .enable_dma = 0, | 376 | .enable_dma = 0, |
| @@ -483,17 +476,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
| 483 | .mode = SPI_MODE_3, | 476 | .mode = SPI_MODE_3, |
| 484 | }, | 477 | }, |
| 485 | #endif | 478 | #endif |
| 486 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 487 | { | ||
| 488 | .modalias = "ad5304_spi", | ||
| 489 | .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */ | ||
| 490 | .bus_num = 0, | ||
| 491 | .chip_select = 2, | ||
| 492 | .platform_data = NULL, | ||
| 493 | .controller_data = &ad5304_chip_info, | ||
| 494 | .mode = SPI_MODE_2, | ||
| 495 | }, | ||
| 496 | #endif | ||
| 497 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 479 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
| 498 | { | 480 | { |
| 499 | .modalias = "ad7877", | 481 | .modalias = "ad7877", |
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index 9e2277e0d25c..ea83148993da 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c | |||
| @@ -128,6 +128,19 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 128 | }; | 128 | }; |
| 129 | #endif | 129 | #endif |
| 130 | 130 | ||
| 131 | static struct resource bfin_gpios_resources = { | ||
| 132 | .start = 0, | ||
| 133 | .end = MAX_BLACKFIN_GPIOS - 1, | ||
| 134 | .flags = IORESOURCE_IRQ, | ||
| 135 | }; | ||
| 136 | |||
| 137 | static struct platform_device bfin_gpios_device = { | ||
| 138 | .name = "simple-gpio", | ||
| 139 | .id = -1, | ||
| 140 | .num_resources = 1, | ||
| 141 | .resource = &bfin_gpios_resources, | ||
| 142 | }; | ||
| 143 | |||
| 131 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) | 144 | #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) |
| 132 | static struct resource bfin_pcmcia_cf_resources[] = { | 145 | static struct resource bfin_pcmcia_cf_resources[] = { |
| 133 | { | 146 | { |
| @@ -343,7 +356,7 @@ static struct platform_device net2272_bfin_device = { | |||
| 343 | static struct mtd_partition stamp_partitions[] = { | 356 | static struct mtd_partition stamp_partitions[] = { |
| 344 | { | 357 | { |
| 345 | .name = "Bootloader", | 358 | .name = "Bootloader", |
| 346 | .size = 0x20000, | 359 | .size = 0x40000, |
| 347 | .offset = 0, | 360 | .offset = 0, |
| 348 | }, { | 361 | }, { |
| 349 | .name = "Kernel", | 362 | .name = "Kernel", |
| @@ -351,7 +364,7 @@ static struct mtd_partition stamp_partitions[] = { | |||
| 351 | .offset = MTDPART_OFS_APPEND, | 364 | .offset = MTDPART_OFS_APPEND, |
| 352 | }, { | 365 | }, { |
| 353 | .name = "RootFS", | 366 | .name = "RootFS", |
| 354 | .size = 0x400000 - 0x20000 - 0xE0000 - 0x10000, | 367 | .size = 0x400000 - 0x40000 - 0xE0000 - 0x10000, |
| 355 | .offset = MTDPART_OFS_APPEND, | 368 | .offset = MTDPART_OFS_APPEND, |
| 356 | }, { | 369 | }, { |
| 357 | .name = "MAC Address", | 370 | .name = "MAC Address", |
| @@ -391,17 +404,17 @@ static struct platform_device stamp_flash_device = { | |||
| 391 | static struct mtd_partition bfin_spi_flash_partitions[] = { | 404 | static struct mtd_partition bfin_spi_flash_partitions[] = { |
| 392 | { | 405 | { |
| 393 | .name = "bootloader", | 406 | .name = "bootloader", |
| 394 | .size = 0x00020000, | 407 | .size = 0x00040000, |
| 395 | .offset = 0, | 408 | .offset = 0, |
| 396 | .mask_flags = MTD_CAP_ROM | 409 | .mask_flags = MTD_CAP_ROM |
| 397 | }, { | 410 | }, { |
| 398 | .name = "kernel", | 411 | .name = "kernel", |
| 399 | .size = 0xe0000, | 412 | .size = 0xe0000, |
| 400 | .offset = 0x20000 | 413 | .offset = MTDPART_OFS_APPEND, |
| 401 | }, { | 414 | }, { |
| 402 | .name = "file system", | 415 | .name = "file system", |
| 403 | .size = 0x700000, | 416 | .size = MTDPART_SIZ_FULL, |
| 404 | .offset = 0x00100000, | 417 | .offset = MTDPART_OFS_APPEND, |
| 405 | } | 418 | } |
| 406 | }; | 419 | }; |
| 407 | 420 | ||
| @@ -459,13 +472,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = { | |||
| 459 | }; | 472 | }; |
| 460 | #endif | 473 | #endif |
| 461 | 474 | ||
| 462 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 463 | static struct bfin5xx_spi_chip ad5304_chip_info = { | ||
| 464 | .enable_dma = 0, | ||
| 465 | .bits_per_word = 16, | ||
| 466 | }; | ||
| 467 | #endif | ||
| 468 | |||
| 469 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 475 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
| 470 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { | 476 | static struct bfin5xx_spi_chip spi_ad7877_chip_info = { |
| 471 | .enable_dma = 0, | 477 | .enable_dma = 0, |
| @@ -578,17 +584,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
| 578 | .mode = SPI_MODE_3, | 584 | .mode = SPI_MODE_3, |
| 579 | }, | 585 | }, |
| 580 | #endif | 586 | #endif |
| 581 | #if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE) | ||
| 582 | { | ||
| 583 | .modalias = "ad5304_spi", | ||
| 584 | .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */ | ||
| 585 | .bus_num = 0, | ||
| 586 | .chip_select = 2, | ||
| 587 | .platform_data = NULL, | ||
| 588 | .controller_data = &ad5304_chip_info, | ||
| 589 | .mode = SPI_MODE_2, | ||
| 590 | }, | ||
| 591 | #endif | ||
| 592 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) | 587 | #if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) |
| 593 | { | 588 | { |
| 594 | .modalias = "ad7877", | 589 | .modalias = "ad7877", |
| @@ -821,6 +816,8 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
| 821 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 816 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
| 822 | &bfin_device_gpiokeys, | 817 | &bfin_device_gpiokeys, |
| 823 | #endif | 818 | #endif |
| 819 | |||
| 820 | &bfin_gpios_device, | ||
| 824 | &stamp_flash_device, | 821 | &stamp_flash_device, |
| 825 | }; | 822 | }; |
| 826 | 823 | ||
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 916e963e83ba..40846aa034c4 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
| @@ -285,8 +285,8 @@ static struct mtd_partition partition_info[] = { | |||
| 285 | }, | 285 | }, |
| 286 | { | 286 | { |
| 287 | .name = "File System", | 287 | .name = "File System", |
| 288 | .offset = 4 * SIZE_1M, | 288 | .offset = MTDPART_OFS_APPEND, |
| 289 | .size = (256 - 4) * SIZE_1M, | 289 | .size = MTDPART_SIZ_FULL, |
| 290 | }, | 290 | }, |
| 291 | }; | 291 | }; |
| 292 | 292 | ||
| @@ -323,7 +323,7 @@ static struct platform_device bf5xx_nand_device = { | |||
| 323 | }; | 323 | }; |
| 324 | #endif | 324 | #endif |
| 325 | 325 | ||
| 326 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN) | 326 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE) |
| 327 | static struct platform_device bf54x_sdh_device = { | 327 | static struct platform_device bf54x_sdh_device = { |
| 328 | .name = "bfin-sdh", | 328 | .name = "bfin-sdh", |
| 329 | .id = 0, | 329 | .id = 0, |
| @@ -333,7 +333,7 @@ static struct platform_device bf54x_sdh_device = { | |||
| 333 | static struct mtd_partition ezkit_partitions[] = { | 333 | static struct mtd_partition ezkit_partitions[] = { |
| 334 | { | 334 | { |
| 335 | .name = "Bootloader", | 335 | .name = "Bootloader", |
| 336 | .size = 0x20000, | 336 | .size = 0x40000, |
| 337 | .offset = 0, | 337 | .offset = 0, |
| 338 | }, { | 338 | }, { |
| 339 | .name = "Kernel", | 339 | .name = "Kernel", |
| @@ -381,8 +381,8 @@ static struct mtd_partition bfin_spi_flash_partitions[] = { | |||
| 381 | .mask_flags = MTD_CAP_ROM | 381 | .mask_flags = MTD_CAP_ROM |
| 382 | }, { | 382 | }, { |
| 383 | .name = "linux kernel", | 383 | .name = "linux kernel", |
| 384 | .size = 0x1c0000, | 384 | .size = MTDPART_SIZ_FULL, |
| 385 | .offset = 0x40000 | 385 | .offset = MTDPART_OFS_APPEND, |
| 386 | } | 386 | } |
| 387 | }; | 387 | }; |
| 388 | 388 | ||
| @@ -594,6 +594,19 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 594 | }; | 594 | }; |
| 595 | #endif | 595 | #endif |
| 596 | 596 | ||
| 597 | static struct resource bfin_gpios_resources = { | ||
| 598 | .start = 0, | ||
| 599 | .end = MAX_BLACKFIN_GPIOS - 1, | ||
| 600 | .flags = IORESOURCE_IRQ, | ||
| 601 | }; | ||
| 602 | |||
| 603 | static struct platform_device bfin_gpios_device = { | ||
| 604 | .name = "simple-gpio", | ||
| 605 | .id = -1, | ||
| 606 | .num_resources = 1, | ||
| 607 | .resource = &bfin_gpios_resources, | ||
| 608 | }; | ||
| 609 | |||
| 597 | static struct platform_device *ezkit_devices[] __initdata = { | 610 | static struct platform_device *ezkit_devices[] __initdata = { |
| 598 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) | 611 | #if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) |
| 599 | &rtc_device, | 612 | &rtc_device, |
| @@ -623,7 +636,7 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
| 623 | &bf5xx_nand_device, | 636 | &bf5xx_nand_device, |
| 624 | #endif | 637 | #endif |
| 625 | 638 | ||
| 626 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN) | 639 | #if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE) |
| 627 | &bf54x_sdh_device, | 640 | &bf54x_sdh_device, |
| 628 | #endif | 641 | #endif |
| 629 | 642 | ||
| @@ -646,6 +659,8 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
| 646 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 659 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
| 647 | &bfin_device_gpiokeys, | 660 | &bfin_device_gpiokeys, |
| 648 | #endif | 661 | #endif |
| 662 | |||
| 663 | &bfin_gpios_device, | ||
| 649 | &ezkit_flash_device, | 664 | &ezkit_flash_device, |
| 650 | }; | 665 | }; |
| 651 | 666 | ||
diff --git a/arch/blackfin/mach-bf548/dma.c b/arch/blackfin/mach-bf548/dma.c index 374803a8d2e8..f5479298bb79 100644 --- a/arch/blackfin/mach-bf548/dma.c +++ b/arch/blackfin/mach-bf548/dma.c | |||
| @@ -27,6 +27,8 @@ | |||
| 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| 28 | */ | 28 | */ |
| 29 | 29 | ||
| 30 | #include <linux/module.h> | ||
| 31 | |||
| 30 | #include <asm/blackfin.h> | 32 | #include <asm/blackfin.h> |
| 31 | #include <asm/dma.h> | 33 | #include <asm/dma.h> |
| 32 | 34 | ||
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S index 74fe258421a5..46222a75321a 100644 --- a/arch/blackfin/mach-bf548/head.S +++ b/arch/blackfin/mach-bf548/head.S | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | */ | 28 | */ |
| 29 | 29 | ||
| 30 | #include <linux/linkage.h> | 30 | #include <linux/linkage.h> |
| 31 | #include <linux/init.h> | ||
| 31 | #include <asm/blackfin.h> | 32 | #include <asm/blackfin.h> |
| 32 | #include <asm/trace.h> | 33 | #include <asm/trace.h> |
| 33 | #if CONFIG_BFIN_KERNEL_CLOCK | 34 | #if CONFIG_BFIN_KERNEL_CLOCK |
| @@ -44,10 +45,9 @@ | |||
| 44 | 45 | ||
| 45 | #define INITIAL_STACK 0xFFB01000 | 46 | #define INITIAL_STACK 0xFFB01000 |
| 46 | 47 | ||
| 47 | .text | 48 | __INIT |
| 48 | 49 | ||
| 49 | ENTRY(__start) | 50 | ENTRY(__start) |
| 50 | ENTRY(__stext) | ||
| 51 | /* R0: argument of command line string, passed from uboot, save it */ | 51 | /* R0: argument of command line string, passed from uboot, save it */ |
| 52 | R7 = R0; | 52 | R7 = R0; |
| 53 | /* Enable Cycle Counter and Nesting Of Interrupts */ | 53 | /* Enable Cycle Counter and Nesting Of Interrupts */ |
| @@ -213,6 +213,7 @@ ENTRY(__stext) | |||
| 213 | 213 | ||
| 214 | .LWAIT_HERE: | 214 | .LWAIT_HERE: |
| 215 | jump .LWAIT_HERE; | 215 | jump .LWAIT_HERE; |
| 216 | ENDPROC(__start) | ||
| 216 | 217 | ||
| 217 | ENTRY(_real_start) | 218 | ENTRY(_real_start) |
| 218 | [ -- sp ] = reti; | 219 | [ -- sp ] = reti; |
| @@ -285,6 +286,9 @@ ENTRY(_real_start) | |||
| 285 | call _start_kernel; | 286 | call _start_kernel; |
| 286 | .L_exit: | 287 | .L_exit: |
| 287 | jump.s .L_exit; | 288 | jump.s .L_exit; |
| 289 | ENDPROC(_real_start) | ||
| 290 | |||
| 291 | __FINIT | ||
| 288 | 292 | ||
| 289 | .section .l1.text | 293 | .section .l1.text |
| 290 | #if CONFIG_BFIN_KERNEL_CLOCK | 294 | #if CONFIG_BFIN_KERNEL_CLOCK |
| @@ -450,6 +454,7 @@ ENTRY(_start_dma_code) | |||
| 450 | SSYNC; | 454 | SSYNC; |
| 451 | 455 | ||
| 452 | RTS; | 456 | RTS; |
| 457 | ENDPROC(_start_dma_code) | ||
| 453 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ | 458 | #endif /* CONFIG_BFIN_KERNEL_CLOCK */ |
| 454 | 459 | ||
| 455 | .data | 460 | .data |
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c index 43c1b0982819..d357f648d963 100644 --- a/arch/blackfin/mach-bf561/boards/ezkit.c +++ b/arch/blackfin/mach-bf561/boards/ezkit.c | |||
| @@ -223,7 +223,7 @@ static struct platform_device bfin_uart_device = { | |||
| 223 | static struct mtd_partition ezkit_partitions[] = { | 223 | static struct mtd_partition ezkit_partitions[] = { |
| 224 | { | 224 | { |
| 225 | .name = "Bootloader", | 225 | .name = "Bootloader", |
| 226 | .size = 0x20000, | 226 | .size = 0x40000, |
| 227 | .offset = 0, | 227 | .offset = 0, |
| 228 | }, { | 228 | }, { |
| 229 | .name = "Kernel", | 229 | .name = "Kernel", |
| @@ -389,6 +389,19 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 389 | }; | 389 | }; |
| 390 | #endif | 390 | #endif |
| 391 | 391 | ||
| 392 | static struct resource bfin_gpios_resources = { | ||
| 393 | .start = 0, | ||
| 394 | .end = MAX_BLACKFIN_GPIOS - 1, | ||
| 395 | .flags = IORESOURCE_IRQ, | ||
| 396 | }; | ||
| 397 | |||
| 398 | static struct platform_device bfin_gpios_device = { | ||
| 399 | .name = "simple-gpio", | ||
| 400 | .id = -1, | ||
| 401 | .num_resources = 1, | ||
| 402 | .resource = &bfin_gpios_resources, | ||
| 403 | }; | ||
| 404 | |||
| 392 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) | 405 | #if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) |
| 393 | #include <linux/i2c-gpio.h> | 406 | #include <linux/i2c-gpio.h> |
| 394 | 407 | ||
| @@ -446,6 +459,7 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
| 446 | &isp1362_hcd_device, | 459 | &isp1362_hcd_device, |
| 447 | #endif | 460 | #endif |
| 448 | 461 | ||
| 462 | &bfin_gpios_device, | ||
| 449 | &ezkit_flash_device, | 463 | &ezkit_flash_device, |
| 450 | }; | 464 | }; |
| 451 | 465 | ||
diff --git a/arch/blackfin/mach-common/dpmc.S b/arch/blackfin/mach-common/dpmc.S index b80ddd8b232d..9d45aa3265b1 100644 --- a/arch/blackfin/mach-common/dpmc.S +++ b/arch/blackfin/mach-common/dpmc.S | |||
| @@ -31,140 +31,6 @@ | |||
| 31 | #include <asm/blackfin.h> | 31 | #include <asm/blackfin.h> |
| 32 | #include <asm/mach/irq.h> | 32 | #include <asm/mach/irq.h> |
| 33 | 33 | ||
| 34 | .text | ||
| 35 | |||
| 36 | ENTRY(_unmask_wdog_wakeup_evt) | ||
| 37 | [--SP] = ( R7:0, P5:0 ); | ||
| 38 | #if defined(CONFIG_BF561) | ||
| 39 | P0.H = hi(SICA_IWR1); | ||
| 40 | P0.L = lo(SICA_IWR1); | ||
| 41 | #elif defined(CONFIG_BF54x) || defined(CONFIG_BF52x) | ||
| 42 | P0.h = HI(SIC_IWR0); | ||
| 43 | P0.l = LO(SIC_IWR0); | ||
| 44 | #else | ||
| 45 | P0.h = HI(SIC_IWR); | ||
| 46 | P0.l = LO(SIC_IWR); | ||
| 47 | #endif | ||
| 48 | R7 = [P0]; | ||
| 49 | #if defined(CONFIG_BF561) | ||
| 50 | BITSET(R7, 27); | ||
| 51 | #else | ||
| 52 | BITSET(R7,(IRQ_WATCH - IVG7)); | ||
| 53 | #endif | ||
| 54 | [P0] = R7; | ||
| 55 | SSYNC; | ||
| 56 | |||
| 57 | ( R7:0, P5:0 ) = [SP++]; | ||
| 58 | RTS; | ||
| 59 | |||
| 60 | .LWRITE_TO_STAT: | ||
| 61 | /* When watch dog timer is enabled, a write to STAT will load the | ||
| 62 | * contents of CNT to STAT | ||
| 63 | */ | ||
| 64 | R7 = 0x0000(z); | ||
| 65 | #if defined(CONFIG_BF561) | ||
| 66 | P0.h = HI(WDOGA_STAT); | ||
| 67 | P0.l = LO(WDOGA_STAT); | ||
| 68 | #else | ||
| 69 | P0.h = HI(WDOG_STAT); | ||
| 70 | P0.l = LO(WDOG_STAT); | ||
| 71 | #endif | ||
| 72 | [P0] = R7; | ||
| 73 | SSYNC; | ||
| 74 | JUMP .LSKIP_WRITE_TO_STAT; | ||
| 75 | |||
| 76 | ENTRY(_program_wdog_timer) | ||
| 77 | [--SP] = ( R7:0, P5:0 ); | ||
| 78 | #if defined(CONFIG_BF561) | ||
| 79 | P0.h = HI(WDOGA_CNT); | ||
| 80 | P0.l = LO(WDOGA_CNT); | ||
| 81 | #else | ||
| 82 | P0.h = HI(WDOG_CNT); | ||
| 83 | P0.l = LO(WDOG_CNT); | ||
| 84 | #endif | ||
| 85 | [P0] = R0; | ||
| 86 | SSYNC; | ||
| 87 | |||
| 88 | #if defined(CONFIG_BF561) | ||
| 89 | P0.h = HI(WDOGA_CTL); | ||
| 90 | P0.l = LO(WDOGA_CTL); | ||
| 91 | #else | ||
| 92 | P0.h = HI(WDOG_CTL); | ||
| 93 | P0.l = LO(WDOG_CTL); | ||
| 94 | #endif | ||
| 95 | R7 = W[P0](Z); | ||
| 96 | CC = BITTST(R7,1); | ||
| 97 | if !CC JUMP .LWRITE_TO_STAT; | ||
| 98 | CC = BITTST(R7,2); | ||
| 99 | if !CC JUMP .LWRITE_TO_STAT; | ||
| 100 | |||
| 101 | .LSKIP_WRITE_TO_STAT: | ||
| 102 | #if defined(CONFIG_BF561) | ||
| 103 | P0.h = HI(WDOGA_CTL); | ||
| 104 | P0.l = LO(WDOGA_CTL); | ||
| 105 | #else | ||
| 106 | P0.h = HI(WDOG_CTL); | ||
| 107 | P0.l = LO(WDOG_CTL); | ||
| 108 | #endif | ||
| 109 | R7 = W[P0](Z); | ||
| 110 | BITCLR(R7,1); /* Enable GP event */ | ||
| 111 | BITSET(R7,2); | ||
| 112 | W[P0] = R7.L; | ||
| 113 | SSYNC; | ||
| 114 | NOP; | ||
| 115 | |||
| 116 | R7 = W[P0](Z); | ||
| 117 | BITCLR(R7,4); /* Enable the wdog counter */ | ||
| 118 | W[P0] = R7.L; | ||
| 119 | SSYNC; | ||
| 120 | |||
| 121 | ( R7:0, P5:0 ) = [SP++]; | ||
| 122 | RTS; | ||
| 123 | |||
| 124 | ENTRY(_clear_wdog_wakeup_evt) | ||
| 125 | [--SP] = ( R7:0, P5:0 ); | ||
| 126 | |||
| 127 | #if defined(CONFIG_BF561) | ||
| 128 | P0.h = HI(WDOGA_CTL); | ||
| 129 | P0.l = LO(WDOGA_CTL); | ||
| 130 | #else | ||
| 131 | P0.h = HI(WDOG_CTL); | ||
| 132 | P0.l = LO(WDOG_CTL); | ||
| 133 | #endif | ||
| 134 | R7 = 0x0AD6(Z); | ||
| 135 | W[P0] = R7.L; | ||
| 136 | SSYNC; | ||
| 137 | |||
| 138 | R7 = W[P0](Z); | ||
| 139 | BITSET(R7,15); | ||
| 140 | W[P0] = R7.L; | ||
| 141 | SSYNC; | ||
| 142 | |||
| 143 | R7 = W[P0](Z); | ||
| 144 | BITSET(R7,1); | ||
| 145 | BITSET(R7,2); | ||
| 146 | W[P0] = R7.L; | ||
| 147 | SSYNC; | ||
| 148 | |||
| 149 | ( R7:0, P5:0 ) = [SP++]; | ||
| 150 | RTS; | ||
| 151 | |||
| 152 | ENTRY(_disable_wdog_timer) | ||
| 153 | [--SP] = ( R7:0, P5:0 ); | ||
| 154 | #if defined(CONFIG_BF561) | ||
| 155 | P0.h = HI(WDOGA_CTL); | ||
| 156 | P0.l = LO(WDOGA_CTL); | ||
| 157 | #else | ||
| 158 | P0.h = HI(WDOG_CTL); | ||
| 159 | P0.l = LO(WDOG_CTL); | ||
| 160 | #endif | ||
| 161 | R7 = 0xAD6(Z); | ||
| 162 | W[P0] = R7.L; | ||
| 163 | SSYNC; | ||
| 164 | ( R7:0, P5:0 ) = [SP++]; | ||
| 165 | RTS; | ||
| 166 | |||
| 167 | #if !defined(CONFIG_BF561) | ||
| 168 | 34 | ||
| 169 | .section .l1.text | 35 | .section .l1.text |
| 170 | 36 | ||
| @@ -459,10 +325,12 @@ ENTRY(_set_sic_iwr) | |||
| 459 | RTS; | 325 | RTS; |
| 460 | 326 | ||
| 461 | ENTRY(_set_rtc_istat) | 327 | ENTRY(_set_rtc_istat) |
| 328 | #ifndef CONFIG_BF561 | ||
| 462 | P0.H = hi(RTC_ISTAT); | 329 | P0.H = hi(RTC_ISTAT); |
| 463 | P0.L = lo(RTC_ISTAT); | 330 | P0.L = lo(RTC_ISTAT); |
| 464 | w[P0] = R0.L; | 331 | w[P0] = R0.L; |
| 465 | SSYNC; | 332 | SSYNC; |
| 333 | #endif | ||
| 466 | RTS; | 334 | RTS; |
| 467 | 335 | ||
| 468 | ENTRY(_test_pll_locked) | 336 | ENTRY(_test_pll_locked) |
| @@ -473,4 +341,3 @@ ENTRY(_test_pll_locked) | |||
| 473 | CC = BITTST(R0,5); | 341 | CC = BITTST(R0,5); |
| 474 | IF !CC JUMP 1b; | 342 | IF !CC JUMP 1b; |
| 475 | RTS; | 343 | RTS; |
| 476 | #endif | ||
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 2cbb7a0bc38e..cee54cebbc65 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
| @@ -1369,7 +1369,7 @@ ENTRY(_sys_call_table) | |||
| 1369 | .long _sys_epoll_pwait | 1369 | .long _sys_epoll_pwait |
| 1370 | .long _sys_utimensat | 1370 | .long _sys_utimensat |
| 1371 | .long _sys_signalfd | 1371 | .long _sys_signalfd |
| 1372 | .long _sys_ni_syscall | 1372 | .long _sys_timerfd_create |
| 1373 | .long _sys_eventfd /* 350 */ | 1373 | .long _sys_eventfd /* 350 */ |
| 1374 | .long _sys_pread64 | 1374 | .long _sys_pread64 |
| 1375 | .long _sys_pwrite64 | 1375 | .long _sys_pwrite64 |
| @@ -1378,6 +1378,9 @@ ENTRY(_sys_call_table) | |||
| 1378 | .long _sys_get_robust_list /* 355 */ | 1378 | .long _sys_get_robust_list /* 355 */ |
| 1379 | .long _sys_fallocate | 1379 | .long _sys_fallocate |
| 1380 | .long _sys_semtimedop | 1380 | .long _sys_semtimedop |
| 1381 | .long _sys_timerfd_settime | ||
| 1382 | .long _sys_timerfd_gettime | ||
| 1383 | |||
| 1381 | .rept NR_syscalls-(.-_sys_call_table)/4 | 1384 | .rept NR_syscalls-(.-_sys_call_table)/4 |
| 1382 | .long _sys_ni_syscall | 1385 | .long _sys_ni_syscall |
| 1383 | .endr | 1386 | .endr |
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c index 880595afe98d..225ef14af75e 100644 --- a/arch/blackfin/mach-common/ints-priority.c +++ b/arch/blackfin/mach-common/ints-priority.c | |||
| @@ -74,7 +74,7 @@ unsigned long bfin_sic_iwr[3]; /* Up to 3 SIC_IWRx registers */ | |||
| 74 | #endif | 74 | #endif |
| 75 | 75 | ||
| 76 | struct ivgx { | 76 | struct ivgx { |
| 77 | /* irq number for request_irq, available in mach-bf533/irq.h */ | 77 | /* irq number for request_irq, available in mach-bf5xx/irq.h */ |
| 78 | unsigned int irqno; | 78 | unsigned int irqno; |
| 79 | /* corresponding bit in the SIC_ISR register */ | 79 | /* corresponding bit in the SIC_ISR register */ |
| 80 | unsigned int isrflag; | 80 | unsigned int isrflag; |
| @@ -86,7 +86,6 @@ struct ivg_slice { | |||
| 86 | struct ivgx *istop; | 86 | struct ivgx *istop; |
| 87 | } ivg7_13[IVG13 - IVG7 + 1]; | 87 | } ivg7_13[IVG13 - IVG7 + 1]; |
| 88 | 88 | ||
| 89 | static void search_IAR(void); | ||
| 90 | 89 | ||
| 91 | /* | 90 | /* |
| 92 | * Search SIC_IAR and fill tables with the irqvalues | 91 | * Search SIC_IAR and fill tables with the irqvalues |
| @@ -120,10 +119,10 @@ static void __init search_IAR(void) | |||
| 120 | } | 119 | } |
| 121 | 120 | ||
| 122 | /* | 121 | /* |
| 123 | * This is for BF533 internal IRQs | 122 | * This is for core internal IRQs |
| 124 | */ | 123 | */ |
| 125 | 124 | ||
| 126 | static void ack_noop(unsigned int irq) | 125 | static void bfin_ack_noop(unsigned int irq) |
| 127 | { | 126 | { |
| 128 | /* Dummy function. */ | 127 | /* Dummy function. */ |
| 129 | } | 128 | } |
| @@ -156,11 +155,11 @@ static void bfin_internal_mask_irq(unsigned int irq) | |||
| 156 | { | 155 | { |
| 157 | #ifdef CONFIG_BF53x | 156 | #ifdef CONFIG_BF53x |
| 158 | bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() & | 157 | bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() & |
| 159 | ~(1 << (irq - (IRQ_CORETMR + 1)))); | 158 | ~(1 << SIC_SYSIRQ(irq))); |
| 160 | #else | 159 | #else |
| 161 | unsigned mask_bank, mask_bit; | 160 | unsigned mask_bank, mask_bit; |
| 162 | mask_bank = (irq - (IRQ_CORETMR + 1)) / 32; | 161 | mask_bank = SIC_SYSIRQ(irq) / 32; |
| 163 | mask_bit = (irq - (IRQ_CORETMR + 1)) % 32; | 162 | mask_bit = SIC_SYSIRQ(irq) % 32; |
| 164 | bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) & | 163 | bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) & |
| 165 | ~(1 << mask_bit)); | 164 | ~(1 << mask_bit)); |
| 166 | #endif | 165 | #endif |
| @@ -171,11 +170,11 @@ static void bfin_internal_unmask_irq(unsigned int irq) | |||
| 171 | { | 170 | { |
| 172 | #ifdef CONFIG_BF53x | 171 | #ifdef CONFIG_BF53x |
| 173 | bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | | 172 | bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | |
| 174 | (1 << (irq - (IRQ_CORETMR + 1)))); | 173 | (1 << SIC_SYSIRQ(irq))); |
| 175 | #else | 174 | #else |
| 176 | unsigned mask_bank, mask_bit; | 175 | unsigned mask_bank, mask_bit; |
| 177 | mask_bank = (irq - (IRQ_CORETMR + 1)) / 32; | 176 | mask_bank = SIC_SYSIRQ(irq) / 32; |
| 178 | mask_bit = (irq - (IRQ_CORETMR + 1)) % 32; | 177 | mask_bit = SIC_SYSIRQ(irq) % 32; |
| 179 | bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) | | 178 | bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) | |
| 180 | (1 << mask_bit)); | 179 | (1 << mask_bit)); |
| 181 | #endif | 180 | #endif |
| @@ -187,8 +186,8 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state) | |||
| 187 | { | 186 | { |
| 188 | unsigned bank, bit; | 187 | unsigned bank, bit; |
| 189 | unsigned long flags; | 188 | unsigned long flags; |
| 190 | bank = (irq - (IRQ_CORETMR + 1)) / 32; | 189 | bank = SIC_SYSIRQ(irq) / 32; |
| 191 | bit = (irq - (IRQ_CORETMR + 1)) % 32; | 190 | bit = SIC_SYSIRQ(irq) % 32; |
| 192 | 191 | ||
| 193 | local_irq_save(flags); | 192 | local_irq_save(flags); |
| 194 | 193 | ||
| @@ -204,15 +203,18 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state) | |||
| 204 | #endif | 203 | #endif |
| 205 | 204 | ||
| 206 | static struct irq_chip bfin_core_irqchip = { | 205 | static struct irq_chip bfin_core_irqchip = { |
| 207 | .ack = ack_noop, | 206 | .ack = bfin_ack_noop, |
| 208 | .mask = bfin_core_mask_irq, | 207 | .mask = bfin_core_mask_irq, |
| 209 | .unmask = bfin_core_unmask_irq, | 208 | .unmask = bfin_core_unmask_irq, |
| 210 | }; | 209 | }; |
| 211 | 210 | ||
| 212 | static struct irq_chip bfin_internal_irqchip = { | 211 | static struct irq_chip bfin_internal_irqchip = { |
| 213 | .ack = ack_noop, | 212 | .ack = bfin_ack_noop, |
| 214 | .mask = bfin_internal_mask_irq, | 213 | .mask = bfin_internal_mask_irq, |
| 215 | .unmask = bfin_internal_unmask_irq, | 214 | .unmask = bfin_internal_unmask_irq, |
| 215 | .mask_ack = bfin_internal_mask_irq, | ||
| 216 | .disable = bfin_internal_mask_irq, | ||
| 217 | .enable = bfin_internal_unmask_irq, | ||
| 216 | #ifdef CONFIG_PM | 218 | #ifdef CONFIG_PM |
| 217 | .set_wake = bfin_internal_set_wake, | 219 | .set_wake = bfin_internal_set_wake, |
| 218 | #endif | 220 | #endif |
| @@ -221,38 +223,23 @@ static struct irq_chip bfin_internal_irqchip = { | |||
| 221 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX | 223 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX |
| 222 | static int error_int_mask; | 224 | static int error_int_mask; |
| 223 | 225 | ||
| 224 | static void bfin_generic_error_ack_irq(unsigned int irq) | ||
| 225 | { | ||
| 226 | |||
| 227 | } | ||
| 228 | |||
| 229 | static void bfin_generic_error_mask_irq(unsigned int irq) | 226 | static void bfin_generic_error_mask_irq(unsigned int irq) |
| 230 | { | 227 | { |
| 231 | error_int_mask &= ~(1L << (irq - IRQ_PPI_ERROR)); | 228 | error_int_mask &= ~(1L << (irq - IRQ_PPI_ERROR)); |
| 232 | 229 | ||
| 233 | if (!error_int_mask) { | 230 | if (!error_int_mask) |
| 234 | local_irq_disable(); | 231 | bfin_internal_mask_irq(IRQ_GENERIC_ERROR); |
| 235 | bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() & | ||
| 236 | ~(1 << (IRQ_GENERIC_ERROR - | ||
| 237 | (IRQ_CORETMR + 1)))); | ||
| 238 | SSYNC(); | ||
| 239 | local_irq_enable(); | ||
| 240 | } | ||
| 241 | } | 232 | } |
| 242 | 233 | ||
| 243 | static void bfin_generic_error_unmask_irq(unsigned int irq) | 234 | static void bfin_generic_error_unmask_irq(unsigned int irq) |
| 244 | { | 235 | { |
| 245 | local_irq_disable(); | 236 | bfin_internal_unmask_irq(IRQ_GENERIC_ERROR); |
| 246 | bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | 1 << | ||
| 247 | (IRQ_GENERIC_ERROR - (IRQ_CORETMR + 1))); | ||
| 248 | SSYNC(); | ||
| 249 | local_irq_enable(); | ||
| 250 | |||
| 251 | error_int_mask |= 1L << (irq - IRQ_PPI_ERROR); | 237 | error_int_mask |= 1L << (irq - IRQ_PPI_ERROR); |
| 252 | } | 238 | } |
| 253 | 239 | ||
| 254 | static struct irq_chip bfin_generic_error_irqchip = { | 240 | static struct irq_chip bfin_generic_error_irqchip = { |
| 255 | .ack = bfin_generic_error_ack_irq, | 241 | .ack = bfin_ack_noop, |
| 242 | .mask_ack = bfin_generic_error_mask_irq, | ||
| 256 | .mask = bfin_generic_error_mask_irq, | 243 | .mask = bfin_generic_error_mask_irq, |
| 257 | .unmask = bfin_generic_error_unmask_irq, | 244 | .unmask = bfin_generic_error_unmask_irq, |
| 258 | }; | 245 | }; |
| @@ -608,7 +595,7 @@ static struct pin_int_t *pint[NR_PINT_SYS_IRQS] = { | |||
| 608 | (struct pin_int_t *)PINT3_MASK_SET, | 595 | (struct pin_int_t *)PINT3_MASK_SET, |
| 609 | }; | 596 | }; |
| 610 | 597 | ||
| 611 | unsigned short get_irq_base(u8 bank, u8 bmap) | 598 | inline unsigned short get_irq_base(u8 bank, u8 bmap) |
| 612 | { | 599 | { |
| 613 | 600 | ||
| 614 | u16 irq_base; | 601 | u16 irq_base; |
| @@ -969,17 +956,12 @@ int __init init_arch_irq(void) | |||
| 969 | #if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) | 956 | #if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) |
| 970 | bfin_write_SIC_IMASK0(SIC_UNMASK_ALL); | 957 | bfin_write_SIC_IMASK0(SIC_UNMASK_ALL); |
| 971 | bfin_write_SIC_IMASK1(SIC_UNMASK_ALL); | 958 | bfin_write_SIC_IMASK1(SIC_UNMASK_ALL); |
| 972 | bfin_write_SIC_IWR0(IWR_ENABLE_ALL); | ||
| 973 | bfin_write_SIC_IWR1(IWR_ENABLE_ALL); | ||
| 974 | # ifdef CONFIG_BF54x | 959 | # ifdef CONFIG_BF54x |
| 975 | bfin_write_SIC_IMASK2(SIC_UNMASK_ALL); | 960 | bfin_write_SIC_IMASK2(SIC_UNMASK_ALL); |
| 976 | bfin_write_SIC_IWR2(IWR_ENABLE_ALL); | ||
| 977 | # endif | 961 | # endif |
| 978 | #else | 962 | #else |
| 979 | bfin_write_SIC_IMASK(SIC_UNMASK_ALL); | 963 | bfin_write_SIC_IMASK(SIC_UNMASK_ALL); |
| 980 | bfin_write_SIC_IWR(IWR_ENABLE_ALL); | ||
| 981 | #endif | 964 | #endif |
| 982 | SSYNC(); | ||
| 983 | 965 | ||
| 984 | local_irq_disable(); | 966 | local_irq_disable(); |
| 985 | 967 | ||
| @@ -1001,90 +983,53 @@ int __init init_arch_irq(void) | |||
| 1001 | set_irq_chip(irq, &bfin_core_irqchip); | 983 | set_irq_chip(irq, &bfin_core_irqchip); |
| 1002 | else | 984 | else |
| 1003 | set_irq_chip(irq, &bfin_internal_irqchip); | 985 | set_irq_chip(irq, &bfin_internal_irqchip); |
| 1004 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX | ||
| 1005 | if (irq != IRQ_GENERIC_ERROR) { | ||
| 1006 | #endif | ||
| 1007 | 986 | ||
| 1008 | switch (irq) { | 987 | switch (irq) { |
| 1009 | #if defined(CONFIG_BF53x) | 988 | #if defined(CONFIG_BF53x) |
| 1010 | case IRQ_PROG_INTA: | 989 | case IRQ_PROG_INTA: |
| 1011 | set_irq_chained_handler(irq, | ||
| 1012 | bfin_demux_gpio_irq); | ||
| 1013 | break; | ||
| 1014 | # if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) | 990 | # if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) |
| 1015 | case IRQ_MAC_RX: | 991 | case IRQ_MAC_RX: |
| 1016 | set_irq_chained_handler(irq, | ||
| 1017 | bfin_demux_gpio_irq); | ||
| 1018 | break; | ||
| 1019 | # endif | 992 | # endif |
| 1020 | #elif defined(CONFIG_BF54x) | 993 | #elif defined(CONFIG_BF54x) |
| 1021 | case IRQ_PINT0: | 994 | case IRQ_PINT0: |
| 1022 | set_irq_chained_handler(irq, | 995 | case IRQ_PINT1: |
| 1023 | bfin_demux_gpio_irq); | 996 | case IRQ_PINT2: |
| 1024 | break; | 997 | case IRQ_PINT3: |
| 1025 | case IRQ_PINT1: | ||
| 1026 | set_irq_chained_handler(irq, | ||
| 1027 | bfin_demux_gpio_irq); | ||
| 1028 | break; | ||
| 1029 | case IRQ_PINT2: | ||
| 1030 | set_irq_chained_handler(irq, | ||
| 1031 | bfin_demux_gpio_irq); | ||
| 1032 | break; | ||
| 1033 | case IRQ_PINT3: | ||
| 1034 | set_irq_chained_handler(irq, | ||
| 1035 | bfin_demux_gpio_irq); | ||
| 1036 | break; | ||
| 1037 | #elif defined(CONFIG_BF52x) | 998 | #elif defined(CONFIG_BF52x) |
| 1038 | case IRQ_PORTF_INTA: | 999 | case IRQ_PORTF_INTA: |
| 1039 | set_irq_chained_handler(irq, | 1000 | case IRQ_PORTG_INTA: |
| 1040 | bfin_demux_gpio_irq); | 1001 | case IRQ_PORTH_INTA: |
| 1041 | break; | ||
| 1042 | case IRQ_PORTG_INTA: | ||
| 1043 | set_irq_chained_handler(irq, | ||
| 1044 | bfin_demux_gpio_irq); | ||
| 1045 | break; | ||
| 1046 | case IRQ_PORTH_INTA: | ||
| 1047 | set_irq_chained_handler(irq, | ||
| 1048 | bfin_demux_gpio_irq); | ||
| 1049 | break; | ||
| 1050 | #elif defined(CONFIG_BF561) | 1002 | #elif defined(CONFIG_BF561) |
| 1051 | case IRQ_PROG0_INTA: | 1003 | case IRQ_PROG0_INTA: |
| 1052 | set_irq_chained_handler(irq, | 1004 | case IRQ_PROG1_INTA: |
| 1053 | bfin_demux_gpio_irq); | 1005 | case IRQ_PROG2_INTA: |
| 1054 | break; | ||
| 1055 | case IRQ_PROG1_INTA: | ||
| 1056 | set_irq_chained_handler(irq, | ||
| 1057 | bfin_demux_gpio_irq); | ||
| 1058 | break; | ||
| 1059 | case IRQ_PROG2_INTA: | ||
| 1060 | set_irq_chained_handler(irq, | ||
| 1061 | bfin_demux_gpio_irq); | ||
| 1062 | break; | ||
| 1063 | #endif | 1006 | #endif |
| 1064 | default: | 1007 | set_irq_chained_handler(irq, |
| 1065 | set_irq_handler(irq, handle_simple_irq); | 1008 | bfin_demux_gpio_irq); |
| 1066 | break; | 1009 | break; |
| 1067 | } | ||
| 1068 | |||
| 1069 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX | 1010 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX |
| 1070 | } else { | 1011 | case IRQ_GENERIC_ERROR: |
| 1071 | set_irq_handler(irq, bfin_demux_error_irq); | 1012 | set_irq_handler(irq, bfin_demux_error_irq); |
| 1072 | } | 1013 | |
| 1014 | break; | ||
| 1073 | #endif | 1015 | #endif |
| 1016 | default: | ||
| 1017 | set_irq_handler(irq, handle_simple_irq); | ||
| 1018 | break; | ||
| 1019 | } | ||
| 1074 | } | 1020 | } |
| 1021 | |||
| 1075 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX | 1022 | #ifdef BF537_GENERIC_ERROR_INT_DEMUX |
| 1076 | for (irq = IRQ_PPI_ERROR; irq <= IRQ_UART1_ERROR; irq++) { | 1023 | for (irq = IRQ_PPI_ERROR; irq <= IRQ_UART1_ERROR; irq++) |
| 1077 | set_irq_chip(irq, &bfin_generic_error_irqchip); | 1024 | set_irq_chip_and_handler(irq, &bfin_generic_error_irqchip, |
| 1078 | set_irq_handler(irq, handle_level_irq); | 1025 | handle_level_irq); |
| 1079 | } | ||
| 1080 | #endif | 1026 | #endif |
| 1081 | 1027 | ||
| 1082 | for (irq = GPIO_IRQ_BASE; irq < NR_IRQS; irq++) { | 1028 | /* if configured as edge, then will be changed to do_edge_IRQ */ |
| 1029 | for (irq = GPIO_IRQ_BASE; irq < NR_IRQS; irq++) | ||
| 1030 | set_irq_chip_and_handler(irq, &bfin_gpio_irqchip, | ||
| 1031 | handle_level_irq); | ||
| 1083 | 1032 | ||
| 1084 | set_irq_chip(irq, &bfin_gpio_irqchip); | ||
| 1085 | /* if configured as edge, then will be changed to do_edge_IRQ */ | ||
| 1086 | set_irq_handler(irq, handle_level_irq); | ||
| 1087 | } | ||
| 1088 | 1033 | ||
| 1089 | bfin_write_IMASK(0); | 1034 | bfin_write_IMASK(0); |
| 1090 | CSYNC(); | 1035 | CSYNC(); |
| @@ -1106,6 +1051,16 @@ int __init init_arch_irq(void) | |||
| 1106 | IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | | 1051 | IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | |
| 1107 | IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; | 1052 | IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; |
| 1108 | 1053 | ||
| 1054 | #if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) | ||
| 1055 | bfin_write_SIC_IWR0(IWR_ENABLE_ALL); | ||
| 1056 | bfin_write_SIC_IWR1(IWR_ENABLE_ALL); | ||
| 1057 | # ifdef CONFIG_BF54x | ||
| 1058 | bfin_write_SIC_IWR2(IWR_ENABLE_ALL); | ||
| 1059 | # endif | ||
| 1060 | #else | ||
| 1061 | bfin_write_SIC_IWR(IWR_ENABLE_ALL); | ||
| 1062 | #endif | ||
| 1063 | |||
| 1109 | return 0; | 1064 | return 0; |
| 1110 | } | 1065 | } |
| 1111 | 1066 | ||
| @@ -1122,7 +1077,6 @@ void do_irq(int vec, struct pt_regs *fp) | |||
| 1122 | #if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) | 1077 | #if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) |
| 1123 | unsigned long sic_status[3]; | 1078 | unsigned long sic_status[3]; |
| 1124 | 1079 | ||
| 1125 | SSYNC(); | ||
| 1126 | sic_status[0] = bfin_read_SIC_ISR0() & bfin_read_SIC_IMASK0(); | 1080 | sic_status[0] = bfin_read_SIC_ISR0() & bfin_read_SIC_IMASK0(); |
| 1127 | sic_status[1] = bfin_read_SIC_ISR1() & bfin_read_SIC_IMASK1(); | 1081 | sic_status[1] = bfin_read_SIC_ISR1() & bfin_read_SIC_IMASK1(); |
| 1128 | #ifdef CONFIG_BF54x | 1082 | #ifdef CONFIG_BF54x |
| @@ -1138,7 +1092,7 @@ void do_irq(int vec, struct pt_regs *fp) | |||
| 1138 | } | 1092 | } |
| 1139 | #else | 1093 | #else |
| 1140 | unsigned long sic_status; | 1094 | unsigned long sic_status; |
| 1141 | SSYNC(); | 1095 | |
| 1142 | sic_status = bfin_read_SIC_IMASK() & bfin_read_SIC_ISR(); | 1096 | sic_status = bfin_read_SIC_IMASK() & bfin_read_SIC_ISR(); |
| 1143 | 1097 | ||
| 1144 | for (;; ivg++) { | 1098 | for (;; ivg++) { |
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c index 1f516c55bde6..ec3141fefd20 100644 --- a/arch/blackfin/mm/init.c +++ b/arch/blackfin/mm/init.c | |||
| @@ -181,7 +181,7 @@ void __init mem_init(void) | |||
| 181 | } | 181 | } |
| 182 | } | 182 | } |
| 183 | 183 | ||
| 184 | static __init void free_init_pages(const char *what, unsigned long begin, unsigned long end) | 184 | static void __init free_init_pages(const char *what, unsigned long begin, unsigned long end) |
| 185 | { | 185 | { |
| 186 | unsigned long addr; | 186 | unsigned long addr; |
| 187 | /* next to check that the page we free is not a partial page */ | 187 | /* next to check that the page we free is not a partial page */ |
| @@ -203,7 +203,7 @@ void __init free_initrd_mem(unsigned long start, unsigned long end) | |||
| 203 | } | 203 | } |
| 204 | #endif | 204 | #endif |
| 205 | 205 | ||
| 206 | void __init free_initmem(void) | 206 | void __init_refok free_initmem(void) |
| 207 | { | 207 | { |
| 208 | #if defined CONFIG_RAMKERNEL && !defined CONFIG_MPU | 208 | #if defined CONFIG_RAMKERNEL && !defined CONFIG_MPU |
| 209 | free_init_pages("unused kernel memory", | 209 | free_init_pages("unused kernel memory", |
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c index 9310a7b476e9..525483f0ddf8 100644 --- a/arch/cris/arch-v10/kernel/time.c +++ b/arch/cris/arch-v10/kernel/time.c | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #include <linux/swap.h> | 13 | #include <linux/swap.h> |
| 14 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
| 15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 16 | #include <linux/vmstat.h> | 16 | #include <linux/mm.h> |
| 17 | #include <asm/arch/svinto.h> | 17 | #include <asm/arch/svinto.h> |
| 18 | #include <asm/types.h> | 18 | #include <asm/types.h> |
| 19 | #include <asm/signal.h> | 19 | #include <asm/signal.h> |
diff --git a/arch/cris/arch-v10/lib/string.c b/arch/cris/arch-v10/lib/string.c index 7161a2bef4fe..c7bd6ebdc93c 100644 --- a/arch/cris/arch-v10/lib/string.c +++ b/arch/cris/arch-v10/lib/string.c | |||
| @@ -1,55 +1,59 @@ | |||
| 1 | /*#************************************************************************#*/ | 1 | /* A memcpy for CRIS. |
| 2 | /*#-------------------------------------------------------------------------*/ | 2 | Copyright (C) 1994-2005 Axis Communications. |
| 3 | /*# */ | 3 | All rights reserved. |
| 4 | /*# FUNCTION NAME: memcpy() */ | 4 | |
| 5 | /*# */ | 5 | Redistribution and use in source and binary forms, with or without |
| 6 | /*# PARAMETERS: void* dst; Destination address. */ | 6 | modification, are permitted provided that the following conditions |
| 7 | /*# void* src; Source address. */ | 7 | are met: |
| 8 | /*# int len; Number of bytes to copy. */ | 8 | |
| 9 | /*# */ | 9 | 1. Redistributions of source code must retain the above copyright |
| 10 | /*# RETURNS: dst. */ | 10 | notice, this list of conditions and the following disclaimer. |
| 11 | /*# */ | 11 | |
| 12 | /*# DESCRIPTION: Copies len bytes of memory from src to dst. No guarantees */ | 12 | 2. Neither the name of Axis Communications nor the names of its |
| 13 | /*# about copying of overlapping memory areas. This routine is */ | 13 | contributors may be used to endorse or promote products derived |
| 14 | /*# very sensitive to compiler changes in register allocation. */ | 14 | from this software without specific prior written permission. |
| 15 | /*# Should really be rewritten to avoid this problem. */ | 15 | |
| 16 | /*# */ | 16 | THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS |
| 17 | /*#-------------------------------------------------------------------------*/ | 17 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 18 | /*# */ | 18 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 19 | /*# HISTORY */ | 19 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS |
| 20 | /*# */ | 20 | COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| 21 | /*# DATE NAME CHANGES */ | 21 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 22 | /*# ---- ---- ------- */ | 22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 23 | /*# 941007 Kenny R Creation */ | 23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| 24 | /*# 941011 Kenny R Lots of optimizations and inlining. */ | 24 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| 25 | /*# 941129 Ulf A Adapted for use in libc. */ | 25 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
| 26 | /*# 950216 HP N==0 forgotten if non-aligned src/dst. */ | 26 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 27 | /*# Added some optimizations. */ | 27 | POSSIBILITY OF SUCH DAMAGE. */ |
| 28 | /*# 001025 HP Make src and dst char *. Align dst to */ | 28 | |
| 29 | /*# dword, not just word-if-both-src-and-dst- */ | 29 | /* FIXME: This file should really only be used for reference, as the |
| 30 | /*# are-misaligned. */ | 30 | result is somewhat depending on gcc generating what we expect rather |
| 31 | /*# */ | 31 | than what we describe. An assembly file should be used instead. */ |
| 32 | /*#-------------------------------------------------------------------------*/ | 32 | |
| 33 | 33 | #include <stddef.h> | |
| 34 | #include <linux/types.h> | 34 | |
| 35 | 35 | /* Break even between movem and move16 is really at 38.7 * 2, but | |
| 36 | void *memcpy(void *pdst, | 36 | modulo 44, so up to the next multiple of 44, we use ordinary code. */ |
| 37 | const void *psrc, | 37 | #define MEMCPY_BY_BLOCK_THRESHOLD (44 * 2) |
| 38 | size_t pn) | 38 | |
| 39 | /* No name ambiguities in this file. */ | ||
| 40 | __asm__ (".syntax no_register_prefix"); | ||
| 41 | |||
| 42 | void * | ||
| 43 | memcpy(void *pdst, const void *psrc, size_t pn) | ||
| 39 | { | 44 | { |
| 40 | /* Ok. Now we want the parameters put in special registers. | 45 | /* Now we want the parameters put in special registers. |
| 41 | Make sure the compiler is able to make something useful of this. | 46 | Make sure the compiler is able to make something useful of this. |
| 42 | As it is now: r10 -> r13; r11 -> r11 (nop); r12 -> r12 (nop). | 47 | As it is now: r10 -> r13; r11 -> r11 (nop); r12 -> r12 (nop). |
| 43 | 48 | ||
| 44 | If gcc was alright, it really would need no temporaries, and no | 49 | If gcc was allright, it really would need no temporaries, and no |
| 45 | stack space to save stuff on. */ | 50 | stack space to save stuff on. */ |
| 46 | 51 | ||
| 47 | register void *return_dst __asm__ ("r10") = pdst; | 52 | register void *return_dst __asm__ ("r10") = pdst; |
| 48 | register char *dst __asm__ ("r13") = pdst; | 53 | register unsigned char *dst __asm__ ("r13") = pdst; |
| 49 | register const char *src __asm__ ("r11") = psrc; | 54 | register unsigned const char *src __asm__ ("r11") = psrc; |
| 50 | register int n __asm__ ("r12") = pn; | 55 | register int n __asm__ ("r12") = pn; |
| 51 | 56 | ||
| 52 | |||
| 53 | /* When src is aligned but not dst, this makes a few extra needless | 57 | /* When src is aligned but not dst, this makes a few extra needless |
| 54 | cycles. I believe it would take as many to check that the | 58 | cycles. I believe it would take as many to check that the |
| 55 | re-alignment was unnecessary. */ | 59 | re-alignment was unnecessary. */ |
| @@ -59,167 +63,174 @@ void *memcpy(void *pdst, | |||
| 59 | && n >= 3) | 63 | && n >= 3) |
| 60 | { | 64 | { |
| 61 | if ((unsigned long) dst & 1) | 65 | if ((unsigned long) dst & 1) |
| 62 | { | 66 | { |
| 63 | n--; | 67 | n--; |
| 64 | *(char*)dst = *(char*)src; | 68 | *dst = *src; |
| 65 | src++; | 69 | src++; |
| 66 | dst++; | 70 | dst++; |
| 67 | } | 71 | } |
| 68 | 72 | ||
| 69 | if ((unsigned long) dst & 2) | 73 | if ((unsigned long) dst & 2) |
| 70 | { | 74 | { |
| 71 | n -= 2; | 75 | n -= 2; |
| 72 | *(short*)dst = *(short*)src; | 76 | *(short *) dst = *(short *) src; |
| 73 | src += 2; | 77 | src += 2; |
| 74 | dst += 2; | 78 | dst += 2; |
| 75 | } | 79 | } |
| 76 | } | 80 | } |
| 77 | 81 | ||
| 78 | /* Decide which copying method to use. */ | 82 | /* Decide which copying method to use. */ |
| 79 | if (n >= 44*2) /* Break even between movem and | 83 | if (n >= MEMCPY_BY_BLOCK_THRESHOLD) |
| 80 | move16 is at 38.7*2, but modulo 44. */ | 84 | { |
| 81 | { | 85 | /* It is not optimal to tell the compiler about clobbering any |
| 82 | /* For large copies we use 'movem' */ | 86 | registers; that will move the saving/restoring of those registers |
| 83 | 87 | to the function prologue/epilogue, and make non-movem sizes | |
| 84 | /* It is not optimal to tell the compiler about clobbering any | 88 | suboptimal. */ |
| 85 | registers; that will move the saving/restoring of those registers | 89 | __asm__ volatile |
| 86 | to the function prologue/epilogue, and make non-movem sizes | 90 | ("\ |
| 87 | suboptimal. | 91 | ;; GCC does promise correct register allocations, but let's \n\ |
| 88 | 92 | ;; make sure it keeps its promises. \n\ | |
| 89 | This method is not foolproof; it assumes that the "asm reg" | 93 | .ifnc %0-%1-%2,$r13-$r11-$r12 \n\ |
| 90 | declarations at the beginning of the function really are used | 94 | .error \"GCC reg alloc bug: %0-%1-%4 != $r13-$r12-$r11\" \n\ |
| 91 | here (beware: they may be moved to temporary registers). | 95 | .endif \n\ |
| 92 | This way, we do not have to save/move the registers around into | 96 | \n\ |
| 93 | temporaries; we can safely use them straight away. | 97 | ;; Save the registers we'll use in the movem process \n\ |
| 94 | 98 | ;; on the stack. \n\ | |
| 95 | If you want to check that the allocation was right; then | 99 | subq 11*4,sp \n\ |
| 96 | check the equalities in the first comment. It should say | 100 | movem r10,[sp] \n\ |
| 97 | "r13=r13, r11=r11, r12=r12" */ | ||
| 98 | __asm__ volatile ("\n\ | ||
| 99 | ;; Check that the following is true (same register names on \n\ | ||
| 100 | ;; both sides of equal sign, as in r8=r8): \n\ | ||
| 101 | ;; %0=r13, %1=r11, %2=r12 \n\ | ||
| 102 | ;; \n\ | ||
| 103 | ;; Save the registers we'll use in the movem process \n\ | ||
| 104 | ;; on the stack. \n\ | ||
| 105 | subq 11*4,$sp \n\ | ||
| 106 | movem $r10,[$sp] \n\ | ||
| 107 | \n\ | 101 | \n\ |
| 108 | ;; Now we've got this: \n\ | 102 | ;; Now we've got this: \n\ |
| 109 | ;; r11 - src \n\ | 103 | ;; r11 - src \n\ |
| 110 | ;; r13 - dst \n\ | 104 | ;; r13 - dst \n\ |
| 111 | ;; r12 - n \n\ | 105 | ;; r12 - n \n\ |
| 112 | \n\ | 106 | \n\ |
| 113 | ;; Update n for the first loop \n\ | 107 | ;; Update n for the first loop. \n\ |
| 114 | subq 44,$r12 \n\ | 108 | subq 44,r12 \n\ |
| 115 | 0: \n\ | 109 | 0: \n\ |
| 116 | movem [$r11+],$r10 \n\ | 110 | " |
| 117 | subq 44,$r12 \n\ | 111 | #ifdef __arch_common_v10_v32 |
| 118 | bge 0b \n\ | 112 | /* Cater to branch offset difference between v32 and v10. We |
| 119 | movem $r10,[$r13+] \n\ | 113 | assume the branch below has an 8-bit offset. */ |
| 114 | " setf\n" | ||
| 115 | #endif | ||
| 116 | " movem [r11+],r10 \n\ | ||
| 117 | subq 44,r12 \n\ | ||
| 118 | bge 0b \n\ | ||
| 119 | movem r10,[r13+] \n\ | ||
| 120 | \n\ | 120 | \n\ |
| 121 | addq 44,$r12 ;; compensate for last loop underflowing n \n\ | 121 | ;; Compensate for last loop underflowing n. \n\ |
| 122 | addq 44,r12 \n\ | ||
| 122 | \n\ | 123 | \n\ |
| 123 | ;; Restore registers from stack \n\ | 124 | ;; Restore registers from stack. \n\ |
| 124 | movem [$sp+],$r10" | 125 | movem [sp+],r10" |
| 125 | 126 | ||
| 126 | /* Outputs */ : "=r" (dst), "=r" (src), "=r" (n) | 127 | /* Outputs. */ |
| 127 | /* Inputs */ : "0" (dst), "1" (src), "2" (n)); | 128 | : "=r" (dst), "=r" (src), "=r" (n) |
| 128 | |||
| 129 | } | ||
| 130 | 129 | ||
| 131 | /* Either we directly starts copying, using dword copying | 130 | /* Inputs. */ |
| 132 | in a loop, or we copy as much as possible with 'movem' | 131 | : "0" (dst), "1" (src), "2" (n)); |
| 133 | and then the last block (<44 bytes) is copied here. | 132 | } |
| 134 | This will work since 'movem' will have updated src,dst,n. */ | ||
| 135 | 133 | ||
| 136 | while ( n >= 16 ) | 134 | while (n >= 16) |
| 137 | { | 135 | { |
| 138 | *((long*)dst)++ = *((long*)src)++; | 136 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 139 | *((long*)dst)++ = *((long*)src)++; | 137 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 140 | *((long*)dst)++ = *((long*)src)++; | 138 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 141 | *((long*)dst)++ = *((long*)src)++; | 139 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 142 | n -= 16; | 140 | |
| 143 | } | 141 | n -= 16; |
| 142 | } | ||
| 144 | 143 | ||
| 145 | /* A switch() is definitely the fastest although it takes a LOT of code. | ||
| 146 | * Particularly if you inline code this. | ||
| 147 | */ | ||
| 148 | switch (n) | 144 | switch (n) |
| 149 | { | 145 | { |
| 150 | case 0: | 146 | case 0: |
| 151 | break; | 147 | break; |
| 148 | |||
| 152 | case 1: | 149 | case 1: |
| 153 | *(char*)dst = *(char*)src; | 150 | *dst = *src; |
| 154 | break; | 151 | break; |
| 152 | |||
| 155 | case 2: | 153 | case 2: |
| 156 | *(short*)dst = *(short*)src; | 154 | *(short *) dst = *(short *) src; |
| 157 | break; | 155 | break; |
| 156 | |||
| 158 | case 3: | 157 | case 3: |
| 159 | *((short*)dst)++ = *((short*)src)++; | 158 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 160 | *(char*)dst = *(char*)src; | 159 | *dst = *src; |
| 161 | break; | 160 | break; |
| 161 | |||
| 162 | case 4: | 162 | case 4: |
| 163 | *((long*)dst)++ = *((long*)src)++; | 163 | *(long *) dst = *(long *) src; |
| 164 | break; | 164 | break; |
| 165 | |||
| 165 | case 5: | 166 | case 5: |
| 166 | *((long*)dst)++ = *((long*)src)++; | 167 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 167 | *(char*)dst = *(char*)src; | 168 | *dst = *src; |
| 168 | break; | 169 | break; |
| 170 | |||
| 169 | case 6: | 171 | case 6: |
| 170 | *((long*)dst)++ = *((long*)src)++; | 172 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 171 | *(short*)dst = *(short*)src; | 173 | *(short *) dst = *(short *) src; |
| 172 | break; | 174 | break; |
| 175 | |||
| 173 | case 7: | 176 | case 7: |
| 174 | *((long*)dst)++ = *((long*)src)++; | 177 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 175 | *((short*)dst)++ = *((short*)src)++; | 178 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 176 | *(char*)dst = *(char*)src; | 179 | *dst = *src; |
| 177 | break; | 180 | break; |
| 181 | |||
| 178 | case 8: | 182 | case 8: |
| 179 | *((long*)dst)++ = *((long*)src)++; | 183 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 180 | *((long*)dst)++ = *((long*)src)++; | 184 | *(long *) dst = *(long *) src; |
| 181 | break; | 185 | break; |
| 186 | |||
| 182 | case 9: | 187 | case 9: |
| 183 | *((long*)dst)++ = *((long*)src)++; | 188 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 184 | *((long*)dst)++ = *((long*)src)++; | 189 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 185 | *(char*)dst = *(char*)src; | 190 | *dst = *src; |
| 186 | break; | 191 | break; |
| 192 | |||
| 187 | case 10: | 193 | case 10: |
| 188 | *((long*)dst)++ = *((long*)src)++; | 194 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 189 | *((long*)dst)++ = *((long*)src)++; | 195 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 190 | *(short*)dst = *(short*)src; | 196 | *(short *) dst = *(short *) src; |
| 191 | break; | 197 | break; |
| 198 | |||
| 192 | case 11: | 199 | case 11: |
| 193 | *((long*)dst)++ = *((long*)src)++; | 200 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 194 | *((long*)dst)++ = *((long*)src)++; | 201 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 195 | *((short*)dst)++ = *((short*)src)++; | 202 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 196 | *(char*)dst = *(char*)src; | 203 | *dst = *src; |
| 197 | break; | 204 | break; |
| 205 | |||
| 198 | case 12: | 206 | case 12: |
| 199 | *((long*)dst)++ = *((long*)src)++; | 207 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 200 | *((long*)dst)++ = *((long*)src)++; | 208 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 201 | *((long*)dst)++ = *((long*)src)++; | 209 | *(long *) dst = *(long *) src; |
| 202 | break; | 210 | break; |
| 211 | |||
| 203 | case 13: | 212 | case 13: |
| 204 | *((long*)dst)++ = *((long*)src)++; | 213 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 205 | *((long*)dst)++ = *((long*)src)++; | 214 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 206 | *((long*)dst)++ = *((long*)src)++; | 215 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 207 | *(char*)dst = *(char*)src; | 216 | *dst = *src; |
| 208 | break; | 217 | break; |
| 218 | |||
| 209 | case 14: | 219 | case 14: |
| 210 | *((long*)dst)++ = *((long*)src)++; | 220 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 211 | *((long*)dst)++ = *((long*)src)++; | 221 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 212 | *((long*)dst)++ = *((long*)src)++; | 222 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 213 | *(short*)dst = *(short*)src; | 223 | *(short *) dst = *(short *) src; |
| 214 | break; | 224 | break; |
| 225 | |||
| 215 | case 15: | 226 | case 15: |
| 216 | *((long*)dst)++ = *((long*)src)++; | 227 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 217 | *((long*)dst)++ = *((long*)src)++; | 228 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 218 | *((long*)dst)++ = *((long*)src)++; | 229 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 219 | *((short*)dst)++ = *((short*)src)++; | 230 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 220 | *(char*)dst = *(char*)src; | 231 | *dst = *src; |
| 221 | break; | 232 | break; |
| 222 | } | 233 | } |
| 223 | 234 | ||
| 224 | return return_dst; /* destination pointer. */ | 235 | return return_dst; |
| 225 | } /* memcpy() */ | 236 | } |
diff --git a/arch/cris/arch-v10/lib/usercopy.c b/arch/cris/arch-v10/lib/usercopy.c index b8e6c0430e5b..b0a608da7bd1 100644 --- a/arch/cris/arch-v10/lib/usercopy.c +++ b/arch/cris/arch-v10/lib/usercopy.c | |||
| @@ -193,7 +193,7 @@ __copy_user (void __user *pdst, const void *psrc, unsigned long pn) | |||
| 193 | inaccessible. */ | 193 | inaccessible. */ |
| 194 | 194 | ||
| 195 | unsigned long | 195 | unsigned long |
| 196 | __copy_user_zeroing (void __user *pdst, const void *psrc, unsigned long pn) | 196 | __copy_user_zeroing(void *pdst, const void __user *psrc, unsigned long pn) |
| 197 | { | 197 | { |
| 198 | /* We want the parameters put in special registers. | 198 | /* We want the parameters put in special registers. |
| 199 | Make sure the compiler is able to make something useful of this. | 199 | Make sure the compiler is able to make something useful of this. |
diff --git a/arch/cris/arch-v32/lib/string.c b/arch/cris/arch-v32/lib/string.c index 6740b2cebae5..c7bd6ebdc93c 100644 --- a/arch/cris/arch-v32/lib/string.c +++ b/arch/cris/arch-v32/lib/string.c | |||
| @@ -1,55 +1,59 @@ | |||
| 1 | /*#************************************************************************#*/ | 1 | /* A memcpy for CRIS. |
| 2 | /*#-------------------------------------------------------------------------*/ | 2 | Copyright (C) 1994-2005 Axis Communications. |
| 3 | /*# */ | 3 | All rights reserved. |
| 4 | /*# FUNCTION NAME: memcpy() */ | 4 | |
| 5 | /*# */ | 5 | Redistribution and use in source and binary forms, with or without |
| 6 | /*# PARAMETERS: void* dst; Destination address. */ | 6 | modification, are permitted provided that the following conditions |
| 7 | /*# void* src; Source address. */ | 7 | are met: |
| 8 | /*# int len; Number of bytes to copy. */ | 8 | |
| 9 | /*# */ | 9 | 1. Redistributions of source code must retain the above copyright |
| 10 | /*# RETURNS: dst. */ | 10 | notice, this list of conditions and the following disclaimer. |
| 11 | /*# */ | 11 | |
| 12 | /*# DESCRIPTION: Copies len bytes of memory from src to dst. No guarantees */ | 12 | 2. Neither the name of Axis Communications nor the names of its |
| 13 | /*# about copying of overlapping memory areas. This routine is */ | 13 | contributors may be used to endorse or promote products derived |
| 14 | /*# very sensitive to compiler changes in register allocation. */ | 14 | from this software without specific prior written permission. |
| 15 | /*# Should really be rewritten to avoid this problem. */ | 15 | |
| 16 | /*# */ | 16 | THIS SOFTWARE IS PROVIDED BY AXIS COMMUNICATIONS AND ITS CONTRIBUTORS |
| 17 | /*#-------------------------------------------------------------------------*/ | 17 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 18 | /*# */ | 18 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 19 | /*# HISTORY */ | 19 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AXIS |
| 20 | /*# */ | 20 | COMMUNICATIONS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| 21 | /*# DATE NAME CHANGES */ | 21 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 22 | /*# ---- ---- ------- */ | 22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 23 | /*# 941007 Kenny R Creation */ | 23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| 24 | /*# 941011 Kenny R Lots of optimizations and inlining. */ | 24 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| 25 | /*# 941129 Ulf A Adapted for use in libc. */ | 25 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
| 26 | /*# 950216 HP N==0 forgotten if non-aligned src/dst. */ | 26 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 27 | /*# Added some optimizations. */ | 27 | POSSIBILITY OF SUCH DAMAGE. */ |
| 28 | /*# 001025 HP Make src and dst char *. Align dst to */ | 28 | |
| 29 | /*# dword, not just word-if-both-src-and-dst- */ | 29 | /* FIXME: This file should really only be used for reference, as the |
| 30 | /*# are-misaligned. */ | 30 | result is somewhat depending on gcc generating what we expect rather |
| 31 | /*# */ | 31 | than what we describe. An assembly file should be used instead. */ |
| 32 | /*#-------------------------------------------------------------------------*/ | 32 | |
| 33 | 33 | #include <stddef.h> | |
| 34 | #include <linux/types.h> | 34 | |
| 35 | 35 | /* Break even between movem and move16 is really at 38.7 * 2, but | |
| 36 | void *memcpy(void *pdst, | 36 | modulo 44, so up to the next multiple of 44, we use ordinary code. */ |
| 37 | const void *psrc, | 37 | #define MEMCPY_BY_BLOCK_THRESHOLD (44 * 2) |
| 38 | size_t pn) | 38 | |
| 39 | /* No name ambiguities in this file. */ | ||
| 40 | __asm__ (".syntax no_register_prefix"); | ||
| 41 | |||
| 42 | void * | ||
| 43 | memcpy(void *pdst, const void *psrc, size_t pn) | ||
| 39 | { | 44 | { |
| 40 | /* Ok. Now we want the parameters put in special registers. | 45 | /* Now we want the parameters put in special registers. |
| 41 | Make sure the compiler is able to make something useful of this. | 46 | Make sure the compiler is able to make something useful of this. |
| 42 | As it is now: r10 -> r13; r11 -> r11 (nop); r12 -> r12 (nop). | 47 | As it is now: r10 -> r13; r11 -> r11 (nop); r12 -> r12 (nop). |
| 43 | 48 | ||
| 44 | If gcc was alright, it really would need no temporaries, and no | 49 | If gcc was allright, it really would need no temporaries, and no |
| 45 | stack space to save stuff on. */ | 50 | stack space to save stuff on. */ |
| 46 | 51 | ||
| 47 | register void *return_dst __asm__ ("r10") = pdst; | 52 | register void *return_dst __asm__ ("r10") = pdst; |
| 48 | register char *dst __asm__ ("r13") = pdst; | 53 | register unsigned char *dst __asm__ ("r13") = pdst; |
| 49 | register const char *src __asm__ ("r11") = psrc; | 54 | register unsigned const char *src __asm__ ("r11") = psrc; |
| 50 | register int n __asm__ ("r12") = pn; | 55 | register int n __asm__ ("r12") = pn; |
| 51 | 56 | ||
| 52 | |||
| 53 | /* When src is aligned but not dst, this makes a few extra needless | 57 | /* When src is aligned but not dst, this makes a few extra needless |
| 54 | cycles. I believe it would take as many to check that the | 58 | cycles. I believe it would take as many to check that the |
| 55 | re-alignment was unnecessary. */ | 59 | re-alignment was unnecessary. */ |
| @@ -59,161 +63,174 @@ void *memcpy(void *pdst, | |||
| 59 | && n >= 3) | 63 | && n >= 3) |
| 60 | { | 64 | { |
| 61 | if ((unsigned long) dst & 1) | 65 | if ((unsigned long) dst & 1) |
| 62 | { | 66 | { |
| 63 | n--; | 67 | n--; |
| 64 | *(char*)dst = *(char*)src; | 68 | *dst = *src; |
| 65 | src++; | 69 | src++; |
| 66 | dst++; | 70 | dst++; |
| 67 | } | 71 | } |
| 68 | 72 | ||
| 69 | if ((unsigned long) dst & 2) | 73 | if ((unsigned long) dst & 2) |
| 70 | { | 74 | { |
| 71 | n -= 2; | 75 | n -= 2; |
| 72 | *(short*)dst = *(short*)src; | 76 | *(short *) dst = *(short *) src; |
| 73 | src += 2; | 77 | src += 2; |
| 74 | dst += 2; | 78 | dst += 2; |
| 75 | } | 79 | } |
| 76 | } | 80 | } |
| 77 | 81 | ||
| 78 | /* Decide which copying method to use. Movem is dirt cheap, so the | 82 | /* Decide which copying method to use. */ |
| 79 | overheap is low enough to always use the minimum block size as the | 83 | if (n >= MEMCPY_BY_BLOCK_THRESHOLD) |
| 80 | threshold. */ | 84 | { |
| 81 | if (n >= 44) | 85 | /* It is not optimal to tell the compiler about clobbering any |
| 82 | { | 86 | registers; that will move the saving/restoring of those registers |
| 83 | /* For large copies we use 'movem' */ | 87 | to the function prologue/epilogue, and make non-movem sizes |
| 84 | 88 | suboptimal. */ | |
| 85 | /* It is not optimal to tell the compiler about clobbering any | 89 | __asm__ volatile |
| 86 | registers; that will move the saving/restoring of those registers | 90 | ("\ |
| 87 | to the function prologue/epilogue, and make non-movem sizes | 91 | ;; GCC does promise correct register allocations, but let's \n\ |
| 88 | suboptimal. */ | 92 | ;; make sure it keeps its promises. \n\ |
| 89 | __asm__ volatile (" \n\ | 93 | .ifnc %0-%1-%2,$r13-$r11-$r12 \n\ |
| 90 | ;; Check that the register asm declaration got right. \n\ | 94 | .error \"GCC reg alloc bug: %0-%1-%4 != $r13-$r12-$r11\" \n\ |
| 91 | ;; The GCC manual explicitly says TRT will happen. \n\ | 95 | .endif \n\ |
| 92 | .ifnc %0-%1-%2,$r13-$r11-$r12 \n\ | ||
| 93 | .err \n\ | ||
| 94 | .endif \n\ | ||
| 95 | \n\ | ||
| 96 | ;; Save the registers we'll use in the movem process \n\ | ||
| 97 | \n\ | 96 | \n\ |
| 98 | ;; on the stack. \n\ | 97 | ;; Save the registers we'll use in the movem process \n\ |
| 99 | subq 11*4,$sp \n\ | 98 | ;; on the stack. \n\ |
| 100 | movem $r10,[$sp] \n\ | 99 | subq 11*4,sp \n\ |
| 100 | movem r10,[sp] \n\ | ||
| 101 | \n\ | 101 | \n\ |
| 102 | ;; Now we've got this: \n\ | 102 | ;; Now we've got this: \n\ |
| 103 | ;; r11 - src \n\ | 103 | ;; r11 - src \n\ |
| 104 | ;; r13 - dst \n\ | 104 | ;; r13 - dst \n\ |
| 105 | ;; r12 - n \n\ | 105 | ;; r12 - n \n\ |
| 106 | \n\ | 106 | \n\ |
| 107 | ;; Update n for the first loop \n\ | 107 | ;; Update n for the first loop. \n\ |
| 108 | subq 44,$r12 \n\ | 108 | subq 44,r12 \n\ |
| 109 | 0: \n\ | 109 | 0: \n\ |
| 110 | movem [$r11+],$r10 \n\ | 110 | " |
| 111 | subq 44,$r12 \n\ | 111 | #ifdef __arch_common_v10_v32 |
| 112 | bge 0b \n\ | 112 | /* Cater to branch offset difference between v32 and v10. We |
| 113 | movem $r10,[$r13+] \n\ | 113 | assume the branch below has an 8-bit offset. */ |
| 114 | " setf\n" | ||
| 115 | #endif | ||
| 116 | " movem [r11+],r10 \n\ | ||
| 117 | subq 44,r12 \n\ | ||
| 118 | bge 0b \n\ | ||
| 119 | movem r10,[r13+] \n\ | ||
| 114 | \n\ | 120 | \n\ |
| 115 | addq 44,$r12 ;; compensate for last loop underflowing n \n\ | 121 | ;; Compensate for last loop underflowing n. \n\ |
| 122 | addq 44,r12 \n\ | ||
| 116 | \n\ | 123 | \n\ |
| 117 | ;; Restore registers from stack \n\ | 124 | ;; Restore registers from stack. \n\ |
| 118 | movem [$sp+],$r10" | 125 | movem [sp+],r10" |
| 119 | 126 | ||
| 120 | /* Outputs */ : "=r" (dst), "=r" (src), "=r" (n) | 127 | /* Outputs. */ |
| 121 | /* Inputs */ : "0" (dst), "1" (src), "2" (n)); | 128 | : "=r" (dst), "=r" (src), "=r" (n) |
| 122 | 129 | ||
| 123 | } | 130 | /* Inputs. */ |
| 131 | : "0" (dst), "1" (src), "2" (n)); | ||
| 132 | } | ||
| 124 | 133 | ||
| 125 | /* Either we directly starts copying, using dword copying | 134 | while (n >= 16) |
| 126 | in a loop, or we copy as much as possible with 'movem' | 135 | { |
| 127 | and then the last block (<44 bytes) is copied here. | 136 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 128 | This will work since 'movem' will have updated src,dst,n. */ | 137 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 138 | *(long *) dst = *(long *) src; dst += 4; src += 4; | ||
| 139 | *(long *) dst = *(long *) src; dst += 4; src += 4; | ||
| 129 | 140 | ||
| 130 | while ( n >= 16 ) | 141 | n -= 16; |
| 131 | { | 142 | } |
| 132 | *((long*)dst)++ = *((long*)src)++; | ||
| 133 | *((long*)dst)++ = *((long*)src)++; | ||
| 134 | *((long*)dst)++ = *((long*)src)++; | ||
| 135 | *((long*)dst)++ = *((long*)src)++; | ||
| 136 | n -= 16; | ||
| 137 | } | ||
| 138 | 143 | ||
| 139 | /* A switch() is definitely the fastest although it takes a LOT of code. | ||
| 140 | * Particularly if you inline code this. | ||
| 141 | */ | ||
| 142 | switch (n) | 144 | switch (n) |
| 143 | { | 145 | { |
| 144 | case 0: | 146 | case 0: |
| 145 | break; | 147 | break; |
| 148 | |||
| 146 | case 1: | 149 | case 1: |
| 147 | *(char*)dst = *(char*)src; | 150 | *dst = *src; |
| 148 | break; | 151 | break; |
| 152 | |||
| 149 | case 2: | 153 | case 2: |
| 150 | *(short*)dst = *(short*)src; | 154 | *(short *) dst = *(short *) src; |
| 151 | break; | 155 | break; |
| 156 | |||
| 152 | case 3: | 157 | case 3: |
| 153 | *((short*)dst)++ = *((short*)src)++; | 158 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 154 | *(char*)dst = *(char*)src; | 159 | *dst = *src; |
| 155 | break; | 160 | break; |
| 161 | |||
| 156 | case 4: | 162 | case 4: |
| 157 | *((long*)dst)++ = *((long*)src)++; | 163 | *(long *) dst = *(long *) src; |
| 158 | break; | 164 | break; |
| 165 | |||
| 159 | case 5: | 166 | case 5: |
| 160 | *((long*)dst)++ = *((long*)src)++; | 167 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 161 | *(char*)dst = *(char*)src; | 168 | *dst = *src; |
| 162 | break; | 169 | break; |
| 170 | |||
| 163 | case 6: | 171 | case 6: |
| 164 | *((long*)dst)++ = *((long*)src)++; | 172 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 165 | *(short*)dst = *(short*)src; | 173 | *(short *) dst = *(short *) src; |
| 166 | break; | 174 | break; |
| 175 | |||
| 167 | case 7: | 176 | case 7: |
| 168 | *((long*)dst)++ = *((long*)src)++; | 177 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 169 | *((short*)dst)++ = *((short*)src)++; | 178 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 170 | *(char*)dst = *(char*)src; | 179 | *dst = *src; |
| 171 | break; | 180 | break; |
| 181 | |||
| 172 | case 8: | 182 | case 8: |
| 173 | *((long*)dst)++ = *((long*)src)++; | 183 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 174 | *((long*)dst)++ = *((long*)src)++; | 184 | *(long *) dst = *(long *) src; |
| 175 | break; | 185 | break; |
| 186 | |||
| 176 | case 9: | 187 | case 9: |
| 177 | *((long*)dst)++ = *((long*)src)++; | 188 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 178 | *((long*)dst)++ = *((long*)src)++; | 189 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 179 | *(char*)dst = *(char*)src; | 190 | *dst = *src; |
| 180 | break; | 191 | break; |
| 192 | |||
| 181 | case 10: | 193 | case 10: |
| 182 | *((long*)dst)++ = *((long*)src)++; | 194 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 183 | *((long*)dst)++ = *((long*)src)++; | 195 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 184 | *(short*)dst = *(short*)src; | 196 | *(short *) dst = *(short *) src; |
| 185 | break; | 197 | break; |
| 198 | |||
| 186 | case 11: | 199 | case 11: |
| 187 | *((long*)dst)++ = *((long*)src)++; | 200 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 188 | *((long*)dst)++ = *((long*)src)++; | 201 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 189 | *((short*)dst)++ = *((short*)src)++; | 202 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 190 | *(char*)dst = *(char*)src; | 203 | *dst = *src; |
| 191 | break; | 204 | break; |
| 205 | |||
| 192 | case 12: | 206 | case 12: |
| 193 | *((long*)dst)++ = *((long*)src)++; | 207 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 194 | *((long*)dst)++ = *((long*)src)++; | 208 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 195 | *((long*)dst)++ = *((long*)src)++; | 209 | *(long *) dst = *(long *) src; |
| 196 | break; | 210 | break; |
| 211 | |||
| 197 | case 13: | 212 | case 13: |
| 198 | *((long*)dst)++ = *((long*)src)++; | 213 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 199 | *((long*)dst)++ = *((long*)src)++; | 214 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 200 | *((long*)dst)++ = *((long*)src)++; | 215 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 201 | *(char*)dst = *(char*)src; | 216 | *dst = *src; |
| 202 | break; | 217 | break; |
| 218 | |||
| 203 | case 14: | 219 | case 14: |
| 204 | *((long*)dst)++ = *((long*)src)++; | 220 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 205 | *((long*)dst)++ = *((long*)src)++; | 221 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 206 | *((long*)dst)++ = *((long*)src)++; | 222 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 207 | *(short*)dst = *(short*)src; | 223 | *(short *) dst = *(short *) src; |
| 208 | break; | 224 | break; |
| 225 | |||
| 209 | case 15: | 226 | case 15: |
| 210 | *((long*)dst)++ = *((long*)src)++; | 227 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 211 | *((long*)dst)++ = *((long*)src)++; | 228 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 212 | *((long*)dst)++ = *((long*)src)++; | 229 | *(long *) dst = *(long *) src; dst += 4; src += 4; |
| 213 | *((short*)dst)++ = *((short*)src)++; | 230 | *(short *) dst = *(short *) src; dst += 2; src += 2; |
| 214 | *(char*)dst = *(char*)src; | 231 | *dst = *src; |
| 215 | break; | 232 | break; |
| 216 | } | 233 | } |
| 217 | 234 | ||
| 218 | return return_dst; /* destination pointer. */ | 235 | return return_dst; |
| 219 | } /* memcpy() */ | 236 | } |
diff --git a/arch/cris/arch-v32/lib/usercopy.c b/arch/cris/arch-v32/lib/usercopy.c index 04d0cf35a276..0b5b70d5f58a 100644 --- a/arch/cris/arch-v32/lib/usercopy.c +++ b/arch/cris/arch-v32/lib/usercopy.c | |||
| @@ -161,7 +161,7 @@ __copy_user (void __user *pdst, const void *psrc, unsigned long pn) | |||
| 161 | inaccessible. */ | 161 | inaccessible. */ |
| 162 | 162 | ||
| 163 | unsigned long | 163 | unsigned long |
| 164 | __copy_user_zeroing (void __user *pdst, const void *psrc, unsigned long pn) | 164 | __copy_user_zeroing(void *pdst, const void __user *psrc, unsigned long pn) |
| 165 | { | 165 | { |
| 166 | /* We want the parameters put in special registers. | 166 | /* We want the parameters put in special registers. |
| 167 | Make sure the compiler is able to make something useful of this. | 167 | Make sure the compiler is able to make something useful of this. |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index dff9edfc7465..8fa3faf5ef1b 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
| @@ -18,6 +18,7 @@ config IA64 | |||
| 18 | select HAVE_IDE | 18 | select HAVE_IDE |
| 19 | select HAVE_OPROFILE | 19 | select HAVE_OPROFILE |
| 20 | select HAVE_KPROBES | 20 | select HAVE_KPROBES |
| 21 | select HAVE_KRETPROBES | ||
| 21 | default y | 22 | default y |
| 22 | help | 23 | help |
| 23 | The Itanium Processor Family is Intel's 64-bit successor to | 24 | The Itanium Processor Family is Intel's 64-bit successor to |
| @@ -155,6 +156,8 @@ config IA64_HP_ZX1_SWIOTLB | |||
| 155 | 156 | ||
| 156 | config IA64_SGI_SN2 | 157 | config IA64_SGI_SN2 |
| 157 | bool "SGI-SN2" | 158 | bool "SGI-SN2" |
| 159 | select NUMA | ||
| 160 | select ACPI_NUMA | ||
| 158 | help | 161 | help |
| 159 | Selecting this option will optimize the kernel for use on sn2 based | 162 | Selecting this option will optimize the kernel for use on sn2 based |
| 160 | systems, but the resulting kernel binary will not run on other | 163 | systems, but the resulting kernel binary will not run on other |
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile index b916ccfdef84..f1645c4f7039 100644 --- a/arch/ia64/Makefile +++ b/arch/ia64/Makefile | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | # Copyright (C) 1998-2004 by David Mosberger-Tang <davidm@hpl.hp.com> | 11 | # Copyright (C) 1998-2004 by David Mosberger-Tang <davidm@hpl.hp.com> |
| 12 | # | 12 | # |
| 13 | 13 | ||
| 14 | KBUILD_DEFCONFIG := generic_defconfig | ||
| 15 | |||
| 14 | NM := $(CROSS_COMPILE)nm -B | 16 | NM := $(CROSS_COMPILE)nm -B |
| 15 | READELF := $(CROSS_COMPILE)readelf | 17 | READELF := $(CROSS_COMPILE)readelf |
| 16 | 18 | ||
diff --git a/arch/ia64/defconfig b/arch/ia64/configs/generic_defconfig index 0210545e7f61..0210545e7f61 100644 --- a/arch/ia64/defconfig +++ b/arch/ia64/configs/generic_defconfig | |||
diff --git a/arch/ia64/hp/common/hwsw_iommu.c b/arch/ia64/hp/common/hwsw_iommu.c index 94e57109fad6..8f6bcfe1dada 100644 --- a/arch/ia64/hp/common/hwsw_iommu.c +++ b/arch/ia64/hp/common/hwsw_iommu.c | |||
| @@ -71,7 +71,7 @@ hwsw_init (void) | |||
| 71 | #ifdef CONFIG_IA64_GENERIC | 71 | #ifdef CONFIG_IA64_GENERIC |
| 72 | /* Better to have normal DMA than panic */ | 72 | /* Better to have normal DMA than panic */ |
| 73 | printk(KERN_WARNING "%s: Failed to initialize software I/O TLB," | 73 | printk(KERN_WARNING "%s: Failed to initialize software I/O TLB," |
| 74 | " reverting to hpzx1 platform vector\n", __FUNCTION__); | 74 | " reverting to hpzx1 platform vector\n", __func__); |
| 75 | machvec_init("hpzx1"); | 75 | machvec_init("hpzx1"); |
| 76 | #else | 76 | #else |
| 77 | panic("Unable to initialize software I/O TLB services"); | 77 | panic("Unable to initialize software I/O TLB services"); |
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c index a94445422cc6..523eae6d3e49 100644 --- a/arch/ia64/hp/common/sba_iommu.c +++ b/arch/ia64/hp/common/sba_iommu.c | |||
| @@ -529,7 +529,7 @@ sba_search_bitmap(struct ioc *ioc, unsigned long bits_wanted, int use_hint) | |||
| 529 | base_mask = RESMAP_MASK(bits_wanted); | 529 | base_mask = RESMAP_MASK(bits_wanted); |
| 530 | mask = base_mask << bitshiftcnt; | 530 | mask = base_mask << bitshiftcnt; |
| 531 | 531 | ||
| 532 | DBG_RES("%s() o %ld %p", __FUNCTION__, o, res_ptr); | 532 | DBG_RES("%s() o %ld %p", __func__, o, res_ptr); |
| 533 | for(; res_ptr < res_end ; res_ptr++) | 533 | for(; res_ptr < res_end ; res_ptr++) |
| 534 | { | 534 | { |
| 535 | DBG_RES(" %p %lx %lx\n", res_ptr, mask, *res_ptr); | 535 | DBG_RES(" %p %lx %lx\n", res_ptr, mask, *res_ptr); |
| @@ -679,7 +679,7 @@ sba_alloc_range(struct ioc *ioc, size_t size) | |||
| 679 | #endif | 679 | #endif |
| 680 | 680 | ||
| 681 | DBG_RES("%s(%x) %d -> %lx hint %x/%x\n", | 681 | DBG_RES("%s(%x) %d -> %lx hint %x/%x\n", |
| 682 | __FUNCTION__, size, pages_needed, pide, | 682 | __func__, size, pages_needed, pide, |
| 683 | (uint) ((unsigned long) ioc->res_hint - (unsigned long) ioc->res_map), | 683 | (uint) ((unsigned long) ioc->res_hint - (unsigned long) ioc->res_map), |
| 684 | ioc->res_bitshift ); | 684 | ioc->res_bitshift ); |
| 685 | 685 | ||
| @@ -722,8 +722,8 @@ sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size) | |||
| 722 | m = RESMAP_MASK(bits_not_wanted) << (pide & (BITS_PER_LONG - 1)); | 722 | m = RESMAP_MASK(bits_not_wanted) << (pide & (BITS_PER_LONG - 1)); |
| 723 | bits_not_wanted = 0; | 723 | bits_not_wanted = 0; |
| 724 | 724 | ||
| 725 | DBG_RES("%s( ,%x,%x) %x/%lx %x %p %lx\n", __FUNCTION__, (uint) iova, size, | 725 | DBG_RES("%s( ,%x,%x) %x/%lx %x %p %lx\n", __func__, (uint) iova, size, |
| 726 | bits_not_wanted, m, pide, res_ptr, *res_ptr); | 726 | bits_not_wanted, m, pide, res_ptr, *res_ptr); |
| 727 | 727 | ||
| 728 | ASSERT(m != 0); | 728 | ASSERT(m != 0); |
| 729 | ASSERT(bits_not_wanted); | 729 | ASSERT(bits_not_wanted); |
| @@ -940,8 +940,7 @@ sba_map_single(struct device *dev, void *addr, size_t size, int dir) | |||
| 940 | 940 | ||
| 941 | iovp = (dma_addr_t) pide << iovp_shift; | 941 | iovp = (dma_addr_t) pide << iovp_shift; |
| 942 | 942 | ||
| 943 | DBG_RUN("%s() 0x%p -> 0x%lx\n", | 943 | DBG_RUN("%s() 0x%p -> 0x%lx\n", __func__, addr, (long) iovp | offset); |
| 944 | __FUNCTION__, addr, (long) iovp | offset); | ||
| 945 | 944 | ||
| 946 | pdir_start = &(ioc->pdir_base[pide]); | 945 | pdir_start = &(ioc->pdir_base[pide]); |
| 947 | 946 | ||
| @@ -1029,8 +1028,7 @@ void sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size, int dir) | |||
| 1029 | #endif | 1028 | #endif |
| 1030 | offset = iova & ~iovp_mask; | 1029 | offset = iova & ~iovp_mask; |
| 1031 | 1030 | ||
| 1032 | DBG_RUN("%s() iovp 0x%lx/%x\n", | 1031 | DBG_RUN("%s() iovp 0x%lx/%x\n", __func__, (long) iova, size); |
| 1033 | __FUNCTION__, (long) iova, size); | ||
| 1034 | 1032 | ||
| 1035 | iova ^= offset; /* clear offset bits */ | 1033 | iova ^= offset; /* clear offset bits */ |
| 1036 | size += offset; | 1034 | size += offset; |
| @@ -1404,7 +1402,7 @@ int sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, int di | |||
| 1404 | struct scatterlist *sg; | 1402 | struct scatterlist *sg; |
| 1405 | #endif | 1403 | #endif |
| 1406 | 1404 | ||
| 1407 | DBG_RUN_SG("%s() START %d entries\n", __FUNCTION__, nents); | 1405 | DBG_RUN_SG("%s() START %d entries\n", __func__, nents); |
| 1408 | ioc = GET_IOC(dev); | 1406 | ioc = GET_IOC(dev); |
| 1409 | ASSERT(ioc); | 1407 | ASSERT(ioc); |
| 1410 | 1408 | ||
| @@ -1468,7 +1466,7 @@ int sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents, int di | |||
| 1468 | #endif | 1466 | #endif |
| 1469 | 1467 | ||
| 1470 | ASSERT(coalesced == filled); | 1468 | ASSERT(coalesced == filled); |
| 1471 | DBG_RUN_SG("%s() DONE %d mappings\n", __FUNCTION__, filled); | 1469 | DBG_RUN_SG("%s() DONE %d mappings\n", __func__, filled); |
| 1472 | 1470 | ||
| 1473 | return filled; | 1471 | return filled; |
| 1474 | } | 1472 | } |
| @@ -1491,7 +1489,7 @@ void sba_unmap_sg (struct device *dev, struct scatterlist *sglist, int nents, in | |||
| 1491 | #endif | 1489 | #endif |
| 1492 | 1490 | ||
| 1493 | DBG_RUN_SG("%s() START %d entries, %p,%x\n", | 1491 | DBG_RUN_SG("%s() START %d entries, %p,%x\n", |
| 1494 | __FUNCTION__, nents, sba_sg_address(sglist), sglist->length); | 1492 | __func__, nents, sba_sg_address(sglist), sglist->length); |
| 1495 | 1493 | ||
| 1496 | #ifdef ASSERT_PDIR_SANITY | 1494 | #ifdef ASSERT_PDIR_SANITY |
| 1497 | ioc = GET_IOC(dev); | 1495 | ioc = GET_IOC(dev); |
| @@ -1509,7 +1507,7 @@ void sba_unmap_sg (struct device *dev, struct scatterlist *sglist, int nents, in | |||
| 1509 | nents--; | 1507 | nents--; |
| 1510 | } | 1508 | } |
| 1511 | 1509 | ||
| 1512 | DBG_RUN_SG("%s() DONE (nents %d)\n", __FUNCTION__, nents); | 1510 | DBG_RUN_SG("%s() DONE (nents %d)\n", __func__, nents); |
| 1513 | 1511 | ||
| 1514 | #ifdef ASSERT_PDIR_SANITY | 1512 | #ifdef ASSERT_PDIR_SANITY |
| 1515 | spin_lock_irqsave(&ioc->res_lock, flags); | 1513 | spin_lock_irqsave(&ioc->res_lock, flags); |
| @@ -1546,7 +1544,7 @@ ioc_iova_init(struct ioc *ioc) | |||
| 1546 | ioc->iov_size = ~ioc->imask + 1; | 1544 | ioc->iov_size = ~ioc->imask + 1; |
| 1547 | 1545 | ||
| 1548 | DBG_INIT("%s() hpa %p IOV base 0x%lx mask 0x%lx (%dMB)\n", | 1546 | DBG_INIT("%s() hpa %p IOV base 0x%lx mask 0x%lx (%dMB)\n", |
| 1549 | __FUNCTION__, ioc->ioc_hpa, ioc->ibase, ioc->imask, | 1547 | __func__, ioc->ioc_hpa, ioc->ibase, ioc->imask, |
| 1550 | ioc->iov_size >> 20); | 1548 | ioc->iov_size >> 20); |
| 1551 | 1549 | ||
| 1552 | switch (iovp_size) { | 1550 | switch (iovp_size) { |
| @@ -1569,7 +1567,7 @@ ioc_iova_init(struct ioc *ioc) | |||
| 1569 | 1567 | ||
| 1570 | memset(ioc->pdir_base, 0, ioc->pdir_size); | 1568 | memset(ioc->pdir_base, 0, ioc->pdir_size); |
| 1571 | 1569 | ||
| 1572 | DBG_INIT("%s() IOV page size %ldK pdir %p size %x\n", __FUNCTION__, | 1570 | DBG_INIT("%s() IOV page size %ldK pdir %p size %x\n", __func__, |
| 1573 | iovp_size >> 10, ioc->pdir_base, ioc->pdir_size); | 1571 | iovp_size >> 10, ioc->pdir_base, ioc->pdir_size); |
| 1574 | 1572 | ||
| 1575 | ASSERT(ALIGN((unsigned long) ioc->pdir_base, 4*1024) == (unsigned long) ioc->pdir_base); | 1573 | ASSERT(ALIGN((unsigned long) ioc->pdir_base, 4*1024) == (unsigned long) ioc->pdir_base); |
| @@ -1612,7 +1610,7 @@ ioc_iova_init(struct ioc *ioc) | |||
| 1612 | 1610 | ||
| 1613 | prefetch_spill_page = virt_to_phys(addr); | 1611 | prefetch_spill_page = virt_to_phys(addr); |
| 1614 | 1612 | ||
| 1615 | DBG_INIT("%s() prefetch spill addr: 0x%lx\n", __FUNCTION__, prefetch_spill_page); | 1613 | DBG_INIT("%s() prefetch spill addr: 0x%lx\n", __func__, prefetch_spill_page); |
| 1616 | } | 1614 | } |
| 1617 | /* | 1615 | /* |
| 1618 | ** Set all the PDIR entries valid w/ the spill page as the target | 1616 | ** Set all the PDIR entries valid w/ the spill page as the target |
| @@ -1641,7 +1639,7 @@ ioc_resource_init(struct ioc *ioc) | |||
| 1641 | /* resource map size dictated by pdir_size */ | 1639 | /* resource map size dictated by pdir_size */ |
| 1642 | ioc->res_size = ioc->pdir_size / PDIR_ENTRY_SIZE; /* entries */ | 1640 | ioc->res_size = ioc->pdir_size / PDIR_ENTRY_SIZE; /* entries */ |
| 1643 | ioc->res_size >>= 3; /* convert bit count to byte count */ | 1641 | ioc->res_size >>= 3; /* convert bit count to byte count */ |
| 1644 | DBG_INIT("%s() res_size 0x%x\n", __FUNCTION__, ioc->res_size); | 1642 | DBG_INIT("%s() res_size 0x%x\n", __func__, ioc->res_size); |
| 1645 | 1643 | ||
| 1646 | ioc->res_map = (char *) __get_free_pages(GFP_KERNEL, | 1644 | ioc->res_map = (char *) __get_free_pages(GFP_KERNEL, |
| 1647 | get_order(ioc->res_size)); | 1645 | get_order(ioc->res_size)); |
| @@ -1664,7 +1662,7 @@ ioc_resource_init(struct ioc *ioc) | |||
| 1664 | | prefetch_spill_page); | 1662 | | prefetch_spill_page); |
| 1665 | #endif | 1663 | #endif |
| 1666 | 1664 | ||
| 1667 | DBG_INIT("%s() res_map %x %p\n", __FUNCTION__, | 1665 | DBG_INIT("%s() res_map %x %p\n", __func__, |
| 1668 | ioc->res_size, (void *) ioc->res_map); | 1666 | ioc->res_size, (void *) ioc->res_map); |
| 1669 | } | 1667 | } |
| 1670 | 1668 | ||
| @@ -1767,7 +1765,7 @@ ioc_init(u64 hpa, void *handle) | |||
| 1767 | iovp_size = (1 << iovp_shift); | 1765 | iovp_size = (1 << iovp_shift); |
| 1768 | iovp_mask = ~(iovp_size - 1); | 1766 | iovp_mask = ~(iovp_size - 1); |
| 1769 | 1767 | ||
| 1770 | DBG_INIT("%s: PAGE_SIZE %ldK, iovp_size %ldK\n", __FUNCTION__, | 1768 | DBG_INIT("%s: PAGE_SIZE %ldK, iovp_size %ldK\n", __func__, |
| 1771 | PAGE_SIZE >> 10, iovp_size >> 10); | 1769 | PAGE_SIZE >> 10, iovp_size >> 10); |
| 1772 | 1770 | ||
| 1773 | if (!ioc->name) { | 1771 | if (!ioc->name) { |
| @@ -2137,7 +2135,7 @@ sba_page_override(char *str) | |||
| 2137 | break; | 2135 | break; |
| 2138 | default: | 2136 | default: |
| 2139 | printk("%s: unknown/unsupported iommu page size %ld\n", | 2137 | printk("%s: unknown/unsupported iommu page size %ld\n", |
| 2140 | __FUNCTION__, page_size); | 2138 | __func__, page_size); |
| 2141 | } | 2139 | } |
| 2142 | 2140 | ||
| 2143 | return 1; | 2141 | return 1; |
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c index 9898febf609a..969fe9f443c4 100644 --- a/arch/ia64/hp/sim/simeth.c +++ b/arch/ia64/hp/sim/simeth.c | |||
| @@ -222,7 +222,7 @@ simeth_probe1(void) | |||
| 222 | } | 222 | } |
| 223 | 223 | ||
| 224 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) | 224 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) |
| 225 | panic("%s: out of interrupt vectors!\n", __FUNCTION__); | 225 | panic("%s: out of interrupt vectors!\n", __func__); |
| 226 | dev->irq = rc; | 226 | dev->irq = rc; |
| 227 | 227 | ||
| 228 | /* | 228 | /* |
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index ef252df50e1e..eb0c32a85fd7 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
| @@ -1000,7 +1000,7 @@ simrs_init (void) | |||
| 1000 | if (!state->irq) { | 1000 | if (!state->irq) { |
| 1001 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) | 1001 | if ((rc = assign_irq_vector(AUTO_ASSIGN)) < 0) |
| 1002 | panic("%s: out of interrupt vectors!\n", | 1002 | panic("%s: out of interrupt vectors!\n", |
| 1003 | __FUNCTION__); | 1003 | __func__); |
| 1004 | state->irq = rc; | 1004 | state->irq = rc; |
| 1005 | ia64_ssc_connect_irq(KEYBOARD_INTR, state->irq); | 1005 | ia64_ssc_connect_irq(KEYBOARD_INTR, state->irq); |
| 1006 | } | 1006 | } |
diff --git a/arch/ia64/ia32/ia32_signal.c b/arch/ia64/ia32/ia32_signal.c index 85e82f32e480..256a7faeda07 100644 --- a/arch/ia64/ia32/ia32_signal.c +++ b/arch/ia64/ia32/ia32_signal.c | |||
| @@ -766,8 +766,19 @@ get_sigframe (struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
| 766 | 766 | ||
| 767 | /* This is the X/Open sanctioned signal stack switching. */ | 767 | /* This is the X/Open sanctioned signal stack switching. */ |
| 768 | if (ka->sa.sa_flags & SA_ONSTACK) { | 768 | if (ka->sa.sa_flags & SA_ONSTACK) { |
| 769 | if (!on_sig_stack(esp)) | 769 | int onstack = sas_ss_flags(esp); |
| 770 | |||
| 771 | if (onstack == 0) | ||
| 770 | esp = current->sas_ss_sp + current->sas_ss_size; | 772 | esp = current->sas_ss_sp + current->sas_ss_size; |
| 773 | else if (onstack == SS_ONSTACK) { | ||
| 774 | /* | ||
| 775 | * If we are on the alternate signal stack and would | ||
| 776 | * overflow it, don't. Return an always-bogus address | ||
| 777 | * instead so we will die with SIGSEGV. | ||
| 778 | */ | ||
| 779 | if (!likely(on_sig_stack(esp - frame_size))) | ||
| 780 | return (void __user *) -1L; | ||
| 781 | } | ||
| 771 | } | 782 | } |
| 772 | /* Legacy stack switching not supported */ | 783 | /* Legacy stack switching not supported */ |
| 773 | 784 | ||
diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c index d025a22eb225..b1bf51fe97b4 100644 --- a/arch/ia64/ia32/sys_ia32.c +++ b/arch/ia64/ia32/sys_ia32.c | |||
| @@ -32,13 +32,8 @@ | |||
| 32 | #include <linux/shm.h> | 32 | #include <linux/shm.h> |
| 33 | #include <linux/slab.h> | 33 | #include <linux/slab.h> |
| 34 | #include <linux/uio.h> | 34 | #include <linux/uio.h> |
| 35 | #include <linux/nfs_fs.h> | 35 | #include <linux/socket.h> |
| 36 | #include <linux/quota.h> | 36 | #include <linux/quota.h> |
| 37 | #include <linux/sunrpc/svc.h> | ||
| 38 | #include <linux/nfsd/nfsd.h> | ||
| 39 | #include <linux/nfsd/cache.h> | ||
| 40 | #include <linux/nfsd/xdr.h> | ||
| 41 | #include <linux/nfsd/syscall.h> | ||
| 42 | #include <linux/poll.h> | 37 | #include <linux/poll.h> |
| 43 | #include <linux/eventpoll.h> | 38 | #include <linux/eventpoll.h> |
| 44 | #include <linux/personality.h> | 39 | #include <linux/personality.h> |
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c index f1cf2df97a2d..fbe742ad2fde 100644 --- a/arch/ia64/kernel/crash.c +++ b/arch/ia64/kernel/crash.c | |||
| @@ -155,7 +155,7 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data) | |||
| 155 | if (val == DIE_INIT_MONARCH_LEAVE) | 155 | if (val == DIE_INIT_MONARCH_LEAVE) |
| 156 | ia64_mca_printk(KERN_NOTICE | 156 | ia64_mca_printk(KERN_NOTICE |
| 157 | "%s: kdump not configured\n", | 157 | "%s: kdump not configured\n", |
| 158 | __FUNCTION__); | 158 | __func__); |
| 159 | return NOTIFY_DONE; | 159 | return NOTIFY_DONE; |
| 160 | } | 160 | } |
| 161 | 161 | ||
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index 919070a9aed7..728d7247a1a6 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
| @@ -379,8 +379,8 @@ efi_get_pal_addr (void) | |||
| 379 | * a dedicated ITR for the PAL code. | 379 | * a dedicated ITR for the PAL code. |
| 380 | */ | 380 | */ |
| 381 | if ((vaddr & mask) == (KERNEL_START & mask)) { | 381 | if ((vaddr & mask) == (KERNEL_START & mask)) { |
| 382 | printk(KERN_INFO "%s: no need to install ITR for " | 382 | printk(KERN_INFO "%s: no need to install ITR for PAL code\n", |
| 383 | "PAL code\n", __FUNCTION__); | 383 | __func__); |
| 384 | continue; | 384 | continue; |
| 385 | } | 385 | } |
| 386 | 386 | ||
| @@ -399,7 +399,7 @@ efi_get_pal_addr (void) | |||
| 399 | return __va(md->phys_addr); | 399 | return __va(md->phys_addr); |
| 400 | } | 400 | } |
| 401 | printk(KERN_WARNING "%s: no PAL-code memory-descriptor found\n", | 401 | printk(KERN_WARNING "%s: no PAL-code memory-descriptor found\n", |
| 402 | __FUNCTION__); | 402 | __func__); |
| 403 | return NULL; | 403 | return NULL; |
| 404 | } | 404 | } |
| 405 | 405 | ||
| @@ -543,12 +543,30 @@ efi_init (void) | |||
| 543 | for (i = 0, p = efi_map_start; p < efi_map_end; | 543 | for (i = 0, p = efi_map_start; p < efi_map_end; |
| 544 | ++i, p += efi_desc_size) | 544 | ++i, p += efi_desc_size) |
| 545 | { | 545 | { |
| 546 | const char *unit; | ||
| 547 | unsigned long size; | ||
| 548 | |||
| 546 | md = p; | 549 | md = p; |
| 547 | printk("mem%02u: type=%u, attr=0x%lx, " | 550 | size = md->num_pages << EFI_PAGE_SHIFT; |
| 548 | "range=[0x%016lx-0x%016lx) (%luMB)\n", | 551 | |
| 552 | if ((size >> 40) > 0) { | ||
| 553 | size >>= 40; | ||
| 554 | unit = "TB"; | ||
| 555 | } else if ((size >> 30) > 0) { | ||
| 556 | size >>= 30; | ||
| 557 | unit = "GB"; | ||
| 558 | } else if ((size >> 20) > 0) { | ||
| 559 | size >>= 20; | ||
| 560 | unit = "MB"; | ||
| 561 | } else { | ||
| 562 | size >>= 10; | ||
| 563 | unit = "KB"; | ||
| 564 | } | ||
| 565 | |||
| 566 | printk("mem%02d: type=%2u, attr=0x%016lx, " | ||
| 567 | "range=[0x%016lx-0x%016lx) (%4lu%s)\n", | ||
| 549 | i, md->type, md->attribute, md->phys_addr, | 568 | i, md->type, md->attribute, md->phys_addr, |
| 550 | md->phys_addr + efi_md_size(md), | 569 | md->phys_addr + efi_md_size(md), size, unit); |
| 551 | md->num_pages >> (20 - EFI_PAGE_SHIFT)); | ||
| 552 | } | 570 | } |
| 553 | } | 571 | } |
| 554 | #endif | 572 | #endif |
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index 398e2fd1cd25..082c31dcfd99 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
| @@ -345,7 +345,7 @@ iosapic_set_affinity (unsigned int irq, cpumask_t mask) | |||
| 345 | if (cpus_empty(mask)) | 345 | if (cpus_empty(mask)) |
| 346 | return; | 346 | return; |
| 347 | 347 | ||
| 348 | if (reassign_irq_vector(irq, first_cpu(mask))) | 348 | if (irq_prepare_move(irq, first_cpu(mask))) |
| 349 | return; | 349 | return; |
| 350 | 350 | ||
| 351 | dest = cpu_physical_id(first_cpu(mask)); | 351 | dest = cpu_physical_id(first_cpu(mask)); |
| @@ -397,6 +397,7 @@ iosapic_end_level_irq (unsigned int irq) | |||
| 397 | struct iosapic_rte_info *rte; | 397 | struct iosapic_rte_info *rte; |
| 398 | int do_unmask_irq = 0; | 398 | int do_unmask_irq = 0; |
| 399 | 399 | ||
| 400 | irq_complete_move(irq); | ||
| 400 | if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) { | 401 | if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) { |
| 401 | do_unmask_irq = 1; | 402 | do_unmask_irq = 1; |
| 402 | mask_irq(irq); | 403 | mask_irq(irq); |
| @@ -450,6 +451,7 @@ iosapic_ack_edge_irq (unsigned int irq) | |||
| 450 | { | 451 | { |
| 451 | irq_desc_t *idesc = irq_desc + irq; | 452 | irq_desc_t *idesc = irq_desc + irq; |
| 452 | 453 | ||
| 454 | irq_complete_move(irq); | ||
| 453 | move_native_irq(irq); | 455 | move_native_irq(irq); |
| 454 | /* | 456 | /* |
| 455 | * Once we have recorded IRQ_PENDING already, we can mask the | 457 | * Once we have recorded IRQ_PENDING already, we can mask the |
| @@ -532,7 +534,7 @@ iosapic_reassign_vector (int irq) | |||
| 532 | if (iosapic_intr_info[irq].count) { | 534 | if (iosapic_intr_info[irq].count) { |
| 533 | new_irq = create_irq(); | 535 | new_irq = create_irq(); |
| 534 | if (new_irq < 0) | 536 | if (new_irq < 0) |
| 535 | panic("%s: out of interrupt vectors!\n", __FUNCTION__); | 537 | panic("%s: out of interrupt vectors!\n", __func__); |
| 536 | printk(KERN_INFO "Reassigning vector %d to %d\n", | 538 | printk(KERN_INFO "Reassigning vector %d to %d\n", |
| 537 | irq_to_vector(irq), irq_to_vector(new_irq)); | 539 | irq_to_vector(irq), irq_to_vector(new_irq)); |
| 538 | memcpy(&iosapic_intr_info[new_irq], &iosapic_intr_info[irq], | 540 | memcpy(&iosapic_intr_info[new_irq], &iosapic_intr_info[irq], |
| @@ -597,7 +599,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
| 597 | index = find_iosapic(gsi); | 599 | index = find_iosapic(gsi); |
| 598 | if (index < 0) { | 600 | if (index < 0) { |
| 599 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", | 601 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", |
| 600 | __FUNCTION__, gsi); | 602 | __func__, gsi); |
| 601 | return -ENODEV; | 603 | return -ENODEV; |
| 602 | } | 604 | } |
| 603 | 605 | ||
| @@ -606,7 +608,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
| 606 | rte = iosapic_alloc_rte(); | 608 | rte = iosapic_alloc_rte(); |
| 607 | if (!rte) { | 609 | if (!rte) { |
| 608 | printk(KERN_WARNING "%s: cannot allocate memory\n", | 610 | printk(KERN_WARNING "%s: cannot allocate memory\n", |
| 609 | __FUNCTION__); | 611 | __func__); |
| 610 | return -ENOMEM; | 612 | return -ENOMEM; |
| 611 | } | 613 | } |
| 612 | 614 | ||
| @@ -623,7 +625,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
| 623 | (info->trigger != trigger || info->polarity != polarity)){ | 625 | (info->trigger != trigger || info->polarity != polarity)){ |
| 624 | printk (KERN_WARNING | 626 | printk (KERN_WARNING |
| 625 | "%s: cannot override the interrupt\n", | 627 | "%s: cannot override the interrupt\n", |
| 626 | __FUNCTION__); | 628 | __func__); |
| 627 | return -EINVAL; | 629 | return -EINVAL; |
| 628 | } | 630 | } |
| 629 | rte->refcnt++; | 631 | rte->refcnt++; |
| @@ -645,7 +647,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery, | |||
| 645 | if (idesc->chip != &no_irq_type) | 647 | if (idesc->chip != &no_irq_type) |
| 646 | printk(KERN_WARNING | 648 | printk(KERN_WARNING |
| 647 | "%s: changing vector %d from %s to %s\n", | 649 | "%s: changing vector %d from %s to %s\n", |
| 648 | __FUNCTION__, irq_to_vector(irq), | 650 | __func__, irq_to_vector(irq), |
| 649 | idesc->chip->name, irq_type->name); | 651 | idesc->chip->name, irq_type->name); |
| 650 | idesc->chip = irq_type; | 652 | idesc->chip = irq_type; |
| 651 | } | 653 | } |
| @@ -918,7 +920,7 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi, | |||
| 918 | case ACPI_INTERRUPT_INIT: | 920 | case ACPI_INTERRUPT_INIT: |
| 919 | irq = create_irq(); | 921 | irq = create_irq(); |
| 920 | if (irq < 0) | 922 | if (irq < 0) |
| 921 | panic("%s: out of interrupt vectors!\n", __FUNCTION__); | 923 | panic("%s: out of interrupt vectors!\n", __func__); |
| 922 | vector = irq_to_vector(irq); | 924 | vector = irq_to_vector(irq); |
| 923 | delivery = IOSAPIC_INIT; | 925 | delivery = IOSAPIC_INIT; |
| 924 | break; | 926 | break; |
| @@ -929,7 +931,7 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi, | |||
| 929 | mask = 1; | 931 | mask = 1; |
| 930 | break; | 932 | break; |
| 931 | default: | 933 | default: |
| 932 | printk(KERN_ERR "%s: invalid int type 0x%x\n", __FUNCTION__, | 934 | printk(KERN_ERR "%s: invalid int type 0x%x\n", __func__, |
| 933 | int_type); | 935 | int_type); |
| 934 | return -1; | 936 | return -1; |
| 935 | } | 937 | } |
| @@ -994,7 +996,7 @@ iosapic_system_init (int system_pcat_compat) | |||
| 994 | */ | 996 | */ |
| 995 | printk(KERN_INFO | 997 | printk(KERN_INFO |
| 996 | "%s: Disabling PC-AT compatible 8259 interrupts\n", | 998 | "%s: Disabling PC-AT compatible 8259 interrupts\n", |
| 997 | __FUNCTION__); | 999 | __func__); |
| 998 | outb(0xff, 0xA1); | 1000 | outb(0xff, 0xA1); |
| 999 | outb(0xff, 0x21); | 1001 | outb(0xff, 0x21); |
| 1000 | } | 1002 | } |
| @@ -1009,7 +1011,7 @@ iosapic_alloc (void) | |||
| 1009 | if (!iosapic_lists[index].addr) | 1011 | if (!iosapic_lists[index].addr) |
| 1010 | return index; | 1012 | return index; |
| 1011 | 1013 | ||
| 1012 | printk(KERN_WARNING "%s: failed to allocate iosapic\n", __FUNCTION__); | 1014 | printk(KERN_WARNING "%s: failed to allocate iosapic\n", __func__); |
| 1013 | return -1; | 1015 | return -1; |
| 1014 | } | 1016 | } |
| 1015 | 1017 | ||
| @@ -1107,14 +1109,14 @@ iosapic_remove (unsigned int gsi_base) | |||
| 1107 | index = find_iosapic(gsi_base); | 1109 | index = find_iosapic(gsi_base); |
| 1108 | if (index < 0) { | 1110 | if (index < 0) { |
| 1109 | printk(KERN_WARNING "%s: No IOSAPIC for GSI base %u\n", | 1111 | printk(KERN_WARNING "%s: No IOSAPIC for GSI base %u\n", |
| 1110 | __FUNCTION__, gsi_base); | 1112 | __func__, gsi_base); |
| 1111 | goto out; | 1113 | goto out; |
| 1112 | } | 1114 | } |
| 1113 | 1115 | ||
| 1114 | if (iosapic_lists[index].rtes_inuse) { | 1116 | if (iosapic_lists[index].rtes_inuse) { |
| 1115 | err = -EBUSY; | 1117 | err = -EBUSY; |
| 1116 | printk(KERN_WARNING "%s: IOSAPIC for GSI base %u is busy\n", | 1118 | printk(KERN_WARNING "%s: IOSAPIC for GSI base %u is busy\n", |
| 1117 | __FUNCTION__, gsi_base); | 1119 | __func__, gsi_base); |
| 1118 | goto out; | 1120 | goto out; |
| 1119 | } | 1121 | } |
| 1120 | 1122 | ||
| @@ -1135,7 +1137,7 @@ map_iosapic_to_node(unsigned int gsi_base, int node) | |||
| 1135 | index = find_iosapic(gsi_base); | 1137 | index = find_iosapic(gsi_base); |
| 1136 | if (index < 0) { | 1138 | if (index < 0) { |
| 1137 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", | 1139 | printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", |
| 1138 | __FUNCTION__, gsi_base); | 1140 | __func__, gsi_base); |
| 1139 | return; | 1141 | return; |
| 1140 | } | 1142 | } |
| 1141 | iosapic_lists[index].node = node; | 1143 | iosapic_lists[index].node = node; |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 0b52f19ed046..d8be23fbe6bc 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
| @@ -260,6 +260,8 @@ void __setup_vector_irq(int cpu) | |||
| 260 | } | 260 | } |
| 261 | 261 | ||
| 262 | #if defined(CONFIG_SMP) && (defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_DIG)) | 262 | #if defined(CONFIG_SMP) && (defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_DIG)) |
| 263 | #define IA64_IRQ_MOVE_VECTOR IA64_DEF_FIRST_DEVICE_VECTOR | ||
| 264 | |||
| 263 | static enum vector_domain_type { | 265 | static enum vector_domain_type { |
| 264 | VECTOR_DOMAIN_NONE, | 266 | VECTOR_DOMAIN_NONE, |
| 265 | VECTOR_DOMAIN_PERCPU | 267 | VECTOR_DOMAIN_PERCPU |
| @@ -272,6 +274,101 @@ static cpumask_t vector_allocation_domain(int cpu) | |||
| 272 | return CPU_MASK_ALL; | 274 | return CPU_MASK_ALL; |
| 273 | } | 275 | } |
| 274 | 276 | ||
| 277 | static int __irq_prepare_move(int irq, int cpu) | ||
| 278 | { | ||
| 279 | struct irq_cfg *cfg = &irq_cfg[irq]; | ||
| 280 | int vector; | ||
| 281 | cpumask_t domain; | ||
| 282 | |||
| 283 | if (cfg->move_in_progress || cfg->move_cleanup_count) | ||
| 284 | return -EBUSY; | ||
| 285 | if (cfg->vector == IRQ_VECTOR_UNASSIGNED || !cpu_online(cpu)) | ||
| 286 | return -EINVAL; | ||
| 287 | if (cpu_isset(cpu, cfg->domain)) | ||
| 288 | return 0; | ||
| 289 | domain = vector_allocation_domain(cpu); | ||
| 290 | vector = find_unassigned_vector(domain); | ||
| 291 | if (vector < 0) | ||
| 292 | return -ENOSPC; | ||
| 293 | cfg->move_in_progress = 1; | ||
| 294 | cfg->old_domain = cfg->domain; | ||
| 295 | cfg->vector = IRQ_VECTOR_UNASSIGNED; | ||
| 296 | cfg->domain = CPU_MASK_NONE; | ||
| 297 | BUG_ON(__bind_irq_vector(irq, vector, domain)); | ||
| 298 | return 0; | ||
| 299 | } | ||
| 300 | |||
| 301 | int irq_prepare_move(int irq, int cpu) | ||
| 302 | { | ||
| 303 | unsigned long flags; | ||
| 304 | int ret; | ||
| 305 | |||
| 306 | spin_lock_irqsave(&vector_lock, flags); | ||
| 307 | ret = __irq_prepare_move(irq, cpu); | ||
| 308 | spin_unlock_irqrestore(&vector_lock, flags); | ||
| 309 | return ret; | ||
| 310 | } | ||
| 311 | |||
| 312 | void irq_complete_move(unsigned irq) | ||
| 313 | { | ||
| 314 | struct irq_cfg *cfg = &irq_cfg[irq]; | ||
| 315 | cpumask_t cleanup_mask; | ||
| 316 | int i; | ||
| 317 | |||
| 318 | if (likely(!cfg->move_in_progress)) | ||
| 319 | return; | ||
| 320 | |||
| 321 | if (unlikely(cpu_isset(smp_processor_id(), cfg->old_domain))) | ||
| 322 | return; | ||
| 323 | |||
| 324 | cpus_and(cleanup_mask, cfg->old_domain, cpu_online_map); | ||
| 325 | cfg->move_cleanup_count = cpus_weight(cleanup_mask); | ||
| 326 | for_each_cpu_mask(i, cleanup_mask) | ||
| 327 | platform_send_ipi(i, IA64_IRQ_MOVE_VECTOR, IA64_IPI_DM_INT, 0); | ||
| 328 | cfg->move_in_progress = 0; | ||
| 329 | } | ||
| 330 | |||
| 331 | static irqreturn_t smp_irq_move_cleanup_interrupt(int irq, void *dev_id) | ||
| 332 | { | ||
| 333 | int me = smp_processor_id(); | ||
| 334 | ia64_vector vector; | ||
| 335 | unsigned long flags; | ||
| 336 | |||
| 337 | for (vector = IA64_FIRST_DEVICE_VECTOR; | ||
| 338 | vector < IA64_LAST_DEVICE_VECTOR; vector++) { | ||
| 339 | int irq; | ||
| 340 | struct irq_desc *desc; | ||
| 341 | struct irq_cfg *cfg; | ||
| 342 | irq = __get_cpu_var(vector_irq)[vector]; | ||
| 343 | if (irq < 0) | ||
| 344 | continue; | ||
| 345 | |||
| 346 | desc = irq_desc + irq; | ||
| 347 | cfg = irq_cfg + irq; | ||
| 348 | spin_lock(&desc->lock); | ||
| 349 | if (!cfg->move_cleanup_count) | ||
| 350 | goto unlock; | ||
| 351 | |||
| 352 | if (!cpu_isset(me, cfg->old_domain)) | ||
| 353 | goto unlock; | ||
| 354 | |||
| 355 | spin_lock_irqsave(&vector_lock, flags); | ||
| 356 | __get_cpu_var(vector_irq)[vector] = -1; | ||
| 357 | cpu_clear(me, vector_table[vector]); | ||
| 358 | spin_unlock_irqrestore(&vector_lock, flags); | ||
| 359 | cfg->move_cleanup_count--; | ||
| 360 | unlock: | ||
| 361 | spin_unlock(&desc->lock); | ||
| 362 | } | ||
| 363 | return IRQ_HANDLED; | ||
| 364 | } | ||
| 365 | |||
| 366 | static struct irqaction irq_move_irqaction = { | ||
| 367 | .handler = smp_irq_move_cleanup_interrupt, | ||
| 368 | .flags = IRQF_DISABLED, | ||
| 369 | .name = "irq_move" | ||
| 370 | }; | ||
| 371 | |||
| 275 | static int __init parse_vector_domain(char *arg) | 372 | static int __init parse_vector_domain(char *arg) |
| 276 | { | 373 | { |
| 277 | if (!arg) | 374 | if (!arg) |
| @@ -303,36 +400,6 @@ void destroy_and_reserve_irq(unsigned int irq) | |||
| 303 | spin_unlock_irqrestore(&vector_lock, flags); | 400 | spin_unlock_irqrestore(&vector_lock, flags); |
| 304 | } | 401 | } |
| 305 | 402 | ||
| 306 | static int __reassign_irq_vector(int irq, int cpu) | ||
| 307 | { | ||
| 308 | struct irq_cfg *cfg = &irq_cfg[irq]; | ||
| 309 | int vector; | ||
| 310 | cpumask_t domain; | ||
| 311 | |||
| 312 | if (cfg->vector == IRQ_VECTOR_UNASSIGNED || !cpu_online(cpu)) | ||
| 313 | return -EINVAL; | ||
| 314 | if (cpu_isset(cpu, cfg->domain)) | ||
| 315 | return 0; | ||
| 316 | domain = vector_allocation_domain(cpu); | ||
| 317 | vector = find_unassigned_vector(domain); | ||
| 318 | if (vector < 0) | ||
| 319 | return -ENOSPC; | ||
| 320 | __clear_irq_vector(irq); | ||
| 321 | BUG_ON(__bind_irq_vector(irq, vector, domain)); | ||
| 322 | return 0; | ||
| 323 | } | ||
| 324 | |||
| 325 | int reassign_irq_vector(int irq, int cpu) | ||
| 326 | { | ||
| 327 | unsigned long flags; | ||
| 328 | int ret; | ||
| 329 | |||
| 330 | spin_lock_irqsave(&vector_lock, flags); | ||
| 331 | ret = __reassign_irq_vector(irq, cpu); | ||
| 332 | spin_unlock_irqrestore(&vector_lock, flags); | ||
| 333 | return ret; | ||
| 334 | } | ||
| 335 | |||
| 336 | /* | 403 | /* |
| 337 | * Dynamic irq allocate and deallocation for MSI | 404 | * Dynamic irq allocate and deallocation for MSI |
| 338 | */ | 405 | */ |
| @@ -440,7 +507,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) | |||
| 440 | if (unlikely(irq < 0)) { | 507 | if (unlikely(irq < 0)) { |
| 441 | printk(KERN_ERR "%s: Unexpected interrupt " | 508 | printk(KERN_ERR "%s: Unexpected interrupt " |
| 442 | "vector %d on CPU %d is not mapped " | 509 | "vector %d on CPU %d is not mapped " |
| 443 | "to any IRQ!\n", __FUNCTION__, vector, | 510 | "to any IRQ!\n", __func__, vector, |
| 444 | smp_processor_id()); | 511 | smp_processor_id()); |
| 445 | } else | 512 | } else |
| 446 | generic_handle_irq(irq); | 513 | generic_handle_irq(irq); |
| @@ -505,7 +572,7 @@ void ia64_process_pending_intr(void) | |||
| 505 | if (unlikely(irq < 0)) { | 572 | if (unlikely(irq < 0)) { |
| 506 | printk(KERN_ERR "%s: Unexpected interrupt " | 573 | printk(KERN_ERR "%s: Unexpected interrupt " |
| 507 | "vector %d on CPU %d not being mapped " | 574 | "vector %d on CPU %d not being mapped " |
| 508 | "to any IRQ!!\n", __FUNCTION__, vector, | 575 | "to any IRQ!!\n", __func__, vector, |
| 509 | smp_processor_id()); | 576 | smp_processor_id()); |
| 510 | } else { | 577 | } else { |
| 511 | vectors_in_migration[irq]=0; | 578 | vectors_in_migration[irq]=0; |
| @@ -578,6 +645,13 @@ init_IRQ (void) | |||
| 578 | register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction); | 645 | register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction); |
| 579 | register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction); | 646 | register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction); |
| 580 | register_percpu_irq(IA64_IPI_LOCAL_TLB_FLUSH, &tlb_irqaction); | 647 | register_percpu_irq(IA64_IPI_LOCAL_TLB_FLUSH, &tlb_irqaction); |
| 648 | #if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_DIG) | ||
| 649 | if (vector_domain_type != VECTOR_DOMAIN_NONE) { | ||
| 650 | BUG_ON(IA64_FIRST_DEVICE_VECTOR != IA64_IRQ_MOVE_VECTOR); | ||
| 651 | IA64_FIRST_DEVICE_VECTOR++; | ||
| 652 | register_percpu_irq(IA64_IRQ_MOVE_VECTOR, &irq_move_irqaction); | ||
| 653 | } | ||
| 654 | #endif | ||
| 581 | #endif | 655 | #endif |
| 582 | #ifdef CONFIG_PERFMON | 656 | #ifdef CONFIG_PERFMON |
| 583 | pfm_init_percpu(); | 657 | pfm_init_percpu(); |
| @@ -592,11 +666,7 @@ ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect) | |||
| 592 | unsigned long ipi_data; | 666 | unsigned long ipi_data; |
| 593 | unsigned long phys_cpu_id; | 667 | unsigned long phys_cpu_id; |
| 594 | 668 | ||
| 595 | #ifdef CONFIG_SMP | ||
| 596 | phys_cpu_id = cpu_physical_id(cpu); | 669 | phys_cpu_id = cpu_physical_id(cpu); |
| 597 | #else | ||
| 598 | phys_cpu_id = (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff; | ||
| 599 | #endif | ||
| 600 | 670 | ||
| 601 | /* | 671 | /* |
| 602 | * cpu number is in 8bit ID and 8bit EID | 672 | * cpu number is in 8bit ID and 8bit EID |
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index b618487cdc85..8d9a446a0d17 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
| @@ -838,7 +838,7 @@ out: | |||
| 838 | return 1; | 838 | return 1; |
| 839 | } | 839 | } |
| 840 | 840 | ||
| 841 | int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr) | 841 | int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) |
| 842 | { | 842 | { |
| 843 | struct kprobe *cur = kprobe_running(); | 843 | struct kprobe *cur = kprobe_running(); |
| 844 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); | 844 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); |
| @@ -1001,6 +1001,11 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) | |||
| 1001 | return 1; | 1001 | return 1; |
| 1002 | } | 1002 | } |
| 1003 | 1003 | ||
| 1004 | /* ia64 does not need this */ | ||
| 1005 | void __kprobes jprobe_return(void) | ||
| 1006 | { | ||
| 1007 | } | ||
| 1008 | |||
| 1004 | int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) | 1009 | int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) |
| 1005 | { | 1010 | { |
| 1006 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); | 1011 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 6e17aed53135..6c18221dba36 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
| @@ -413,8 +413,8 @@ ia64_log_get(int sal_info_type, u8 **buffer, int irq_safe) | |||
| 413 | IA64_LOG_INDEX_INC(sal_info_type); | 413 | IA64_LOG_INDEX_INC(sal_info_type); |
| 414 | IA64_LOG_UNLOCK(sal_info_type); | 414 | IA64_LOG_UNLOCK(sal_info_type); |
| 415 | if (irq_safe) { | 415 | if (irq_safe) { |
| 416 | IA64_MCA_DEBUG("%s: SAL error record type %d retrieved. " | 416 | IA64_MCA_DEBUG("%s: SAL error record type %d retrieved. Record length = %ld\n", |
| 417 | "Record length = %ld\n", __FUNCTION__, sal_info_type, total_len); | 417 | __func__, sal_info_type, total_len); |
| 418 | } | 418 | } |
| 419 | *buffer = (u8 *) log_buffer; | 419 | *buffer = (u8 *) log_buffer; |
| 420 | return total_len; | 420 | return total_len; |
| @@ -518,7 +518,7 @@ ia64_mca_cpe_int_handler (int cpe_irq, void *arg) | |||
| 518 | static DEFINE_SPINLOCK(cpe_history_lock); | 518 | static DEFINE_SPINLOCK(cpe_history_lock); |
| 519 | 519 | ||
| 520 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", | 520 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", |
| 521 | __FUNCTION__, cpe_irq, smp_processor_id()); | 521 | __func__, cpe_irq, smp_processor_id()); |
| 522 | 522 | ||
| 523 | /* SAL spec states this should run w/ interrupts enabled */ | 523 | /* SAL spec states this should run w/ interrupts enabled */ |
| 524 | local_irq_enable(); | 524 | local_irq_enable(); |
| @@ -594,7 +594,7 @@ ia64_mca_register_cpev (int cpev) | |||
| 594 | } | 594 | } |
| 595 | 595 | ||
| 596 | IA64_MCA_DEBUG("%s: corrected platform error " | 596 | IA64_MCA_DEBUG("%s: corrected platform error " |
| 597 | "vector %#x registered\n", __FUNCTION__, cpev); | 597 | "vector %#x registered\n", __func__, cpev); |
| 598 | } | 598 | } |
| 599 | #endif /* CONFIG_ACPI */ | 599 | #endif /* CONFIG_ACPI */ |
| 600 | 600 | ||
| @@ -621,12 +621,11 @@ ia64_mca_cmc_vector_setup (void) | |||
| 621 | cmcv.cmcv_vector = IA64_CMC_VECTOR; | 621 | cmcv.cmcv_vector = IA64_CMC_VECTOR; |
| 622 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); | 622 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); |
| 623 | 623 | ||
| 624 | IA64_MCA_DEBUG("%s: CPU %d corrected " | 624 | IA64_MCA_DEBUG("%s: CPU %d corrected machine check vector %#x registered.\n", |
| 625 | "machine check vector %#x registered.\n", | 625 | __func__, smp_processor_id(), IA64_CMC_VECTOR); |
| 626 | __FUNCTION__, smp_processor_id(), IA64_CMC_VECTOR); | ||
| 627 | 626 | ||
| 628 | IA64_MCA_DEBUG("%s: CPU %d CMCV = %#016lx\n", | 627 | IA64_MCA_DEBUG("%s: CPU %d CMCV = %#016lx\n", |
| 629 | __FUNCTION__, smp_processor_id(), ia64_getreg(_IA64_REG_CR_CMCV)); | 628 | __func__, smp_processor_id(), ia64_getreg(_IA64_REG_CR_CMCV)); |
| 630 | } | 629 | } |
| 631 | 630 | ||
| 632 | /* | 631 | /* |
| @@ -651,9 +650,8 @@ ia64_mca_cmc_vector_disable (void *dummy) | |||
| 651 | cmcv.cmcv_mask = 1; /* Mask/disable interrupt */ | 650 | cmcv.cmcv_mask = 1; /* Mask/disable interrupt */ |
| 652 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); | 651 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); |
| 653 | 652 | ||
| 654 | IA64_MCA_DEBUG("%s: CPU %d corrected " | 653 | IA64_MCA_DEBUG("%s: CPU %d corrected machine check vector %#x disabled.\n", |
| 655 | "machine check vector %#x disabled.\n", | 654 | __func__, smp_processor_id(), cmcv.cmcv_vector); |
| 656 | __FUNCTION__, smp_processor_id(), cmcv.cmcv_vector); | ||
| 657 | } | 655 | } |
| 658 | 656 | ||
| 659 | /* | 657 | /* |
| @@ -678,9 +676,8 @@ ia64_mca_cmc_vector_enable (void *dummy) | |||
| 678 | cmcv.cmcv_mask = 0; /* Unmask/enable interrupt */ | 676 | cmcv.cmcv_mask = 0; /* Unmask/enable interrupt */ |
| 679 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); | 677 | ia64_setreg(_IA64_REG_CR_CMCV, cmcv.cmcv_regval); |
| 680 | 678 | ||
| 681 | IA64_MCA_DEBUG("%s: CPU %d corrected " | 679 | IA64_MCA_DEBUG("%s: CPU %d corrected machine check vector %#x enabled.\n", |
| 682 | "machine check vector %#x enabled.\n", | 680 | __func__, smp_processor_id(), cmcv.cmcv_vector); |
| 683 | __FUNCTION__, smp_processor_id(), cmcv.cmcv_vector); | ||
| 684 | } | 681 | } |
| 685 | 682 | ||
| 686 | /* | 683 | /* |
| @@ -767,7 +764,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg) | |||
| 767 | local_irq_save(flags); | 764 | local_irq_save(flags); |
| 768 | if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(), | 765 | if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(), |
| 769 | (long)&nd, 0, 0) == NOTIFY_STOP) | 766 | (long)&nd, 0, 0) == NOTIFY_STOP) |
| 770 | ia64_mca_spin(__FUNCTION__); | 767 | ia64_mca_spin(__func__); |
| 771 | 768 | ||
| 772 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE; | 769 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE; |
| 773 | /* Register with the SAL monarch that the slave has | 770 | /* Register with the SAL monarch that the slave has |
| @@ -777,7 +774,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg) | |||
| 777 | 774 | ||
| 778 | if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(), | 775 | if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(), |
| 779 | (long)&nd, 0, 0) == NOTIFY_STOP) | 776 | (long)&nd, 0, 0) == NOTIFY_STOP) |
| 780 | ia64_mca_spin(__FUNCTION__); | 777 | ia64_mca_spin(__func__); |
| 781 | 778 | ||
| 782 | /* Wait for the monarch cpu to exit. */ | 779 | /* Wait for the monarch cpu to exit. */ |
| 783 | while (monarch_cpu != -1) | 780 | while (monarch_cpu != -1) |
| @@ -785,7 +782,7 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg) | |||
| 785 | 782 | ||
| 786 | if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(), | 783 | if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(), |
| 787 | (long)&nd, 0, 0) == NOTIFY_STOP) | 784 | (long)&nd, 0, 0) == NOTIFY_STOP) |
| 788 | ia64_mca_spin(__FUNCTION__); | 785 | ia64_mca_spin(__func__); |
| 789 | 786 | ||
| 790 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; | 787 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; |
| 791 | /* Enable all interrupts */ | 788 | /* Enable all interrupts */ |
| @@ -1230,7 +1227,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1230 | 1227 | ||
| 1231 | if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) | 1228 | if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) |
| 1232 | == NOTIFY_STOP) | 1229 | == NOTIFY_STOP) |
| 1233 | ia64_mca_spin(__FUNCTION__); | 1230 | ia64_mca_spin(__func__); |
| 1234 | 1231 | ||
| 1235 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; | 1232 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; |
| 1236 | if (sos->monarch) { | 1233 | if (sos->monarch) { |
| @@ -1246,7 +1243,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1246 | ia64_mca_wakeup_all(); | 1243 | ia64_mca_wakeup_all(); |
| 1247 | if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) | 1244 | if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) |
| 1248 | == NOTIFY_STOP) | 1245 | == NOTIFY_STOP) |
| 1249 | ia64_mca_spin(__FUNCTION__); | 1246 | ia64_mca_spin(__func__); |
| 1250 | } else { | 1247 | } else { |
| 1251 | while (cpu_isset(cpu, mca_cpu)) | 1248 | while (cpu_isset(cpu, mca_cpu)) |
| 1252 | cpu_relax(); /* spin until monarch wakes us */ | 1249 | cpu_relax(); /* spin until monarch wakes us */ |
| @@ -1276,7 +1273,7 @@ ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1276 | } | 1273 | } |
| 1277 | if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, (long)&nd, 0, recover) | 1274 | if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, (long)&nd, 0, recover) |
| 1278 | == NOTIFY_STOP) | 1275 | == NOTIFY_STOP) |
| 1279 | ia64_mca_spin(__FUNCTION__); | 1276 | ia64_mca_spin(__func__); |
| 1280 | 1277 | ||
| 1281 | 1278 | ||
| 1282 | if (atomic_dec_return(&mca_count) > 0) { | 1279 | if (atomic_dec_return(&mca_count) > 0) { |
| @@ -1328,7 +1325,7 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg) | |||
| 1328 | static DEFINE_SPINLOCK(cmc_history_lock); | 1325 | static DEFINE_SPINLOCK(cmc_history_lock); |
| 1329 | 1326 | ||
| 1330 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", | 1327 | IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", |
| 1331 | __FUNCTION__, cmc_irq, smp_processor_id()); | 1328 | __func__, cmc_irq, smp_processor_id()); |
| 1332 | 1329 | ||
| 1333 | /* SAL spec states this should run w/ interrupts enabled */ | 1330 | /* SAL spec states this should run w/ interrupts enabled */ |
| 1334 | local_irq_enable(); | 1331 | local_irq_enable(); |
| @@ -1614,7 +1611,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1614 | */ | 1611 | */ |
| 1615 | if (!sos->monarch && atomic_add_return(1, &slaves) == num_online_cpus()) { | 1612 | if (!sos->monarch && atomic_add_return(1, &slaves) == num_online_cpus()) { |
| 1616 | mprintk(KERN_WARNING "%s: Promoting cpu %d to monarch.\n", | 1613 | mprintk(KERN_WARNING "%s: Promoting cpu %d to monarch.\n", |
| 1617 | __FUNCTION__, cpu); | 1614 | __func__, cpu); |
| 1618 | atomic_dec(&slaves); | 1615 | atomic_dec(&slaves); |
| 1619 | sos->monarch = 1; | 1616 | sos->monarch = 1; |
| 1620 | } | 1617 | } |
| @@ -1626,7 +1623,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1626 | */ | 1623 | */ |
| 1627 | if (sos->monarch && atomic_add_return(1, &monarchs) > 1) { | 1624 | if (sos->monarch && atomic_add_return(1, &monarchs) > 1) { |
| 1628 | mprintk(KERN_WARNING "%s: Demoting cpu %d to slave.\n", | 1625 | mprintk(KERN_WARNING "%s: Demoting cpu %d to slave.\n", |
| 1629 | __FUNCTION__, cpu); | 1626 | __func__, cpu); |
| 1630 | atomic_dec(&monarchs); | 1627 | atomic_dec(&monarchs); |
| 1631 | sos->monarch = 0; | 1628 | sos->monarch = 0; |
| 1632 | } | 1629 | } |
| @@ -1637,15 +1634,15 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1637 | cpu_relax(); /* spin until monarch enters */ | 1634 | cpu_relax(); /* spin until monarch enters */ |
| 1638 | if (notify_die(DIE_INIT_SLAVE_ENTER, "INIT", regs, (long)&nd, 0, 0) | 1635 | if (notify_die(DIE_INIT_SLAVE_ENTER, "INIT", regs, (long)&nd, 0, 0) |
| 1639 | == NOTIFY_STOP) | 1636 | == NOTIFY_STOP) |
| 1640 | ia64_mca_spin(__FUNCTION__); | 1637 | ia64_mca_spin(__func__); |
| 1641 | if (notify_die(DIE_INIT_SLAVE_PROCESS, "INIT", regs, (long)&nd, 0, 0) | 1638 | if (notify_die(DIE_INIT_SLAVE_PROCESS, "INIT", regs, (long)&nd, 0, 0) |
| 1642 | == NOTIFY_STOP) | 1639 | == NOTIFY_STOP) |
| 1643 | ia64_mca_spin(__FUNCTION__); | 1640 | ia64_mca_spin(__func__); |
| 1644 | while (monarch_cpu != -1) | 1641 | while (monarch_cpu != -1) |
| 1645 | cpu_relax(); /* spin until monarch leaves */ | 1642 | cpu_relax(); /* spin until monarch leaves */ |
| 1646 | if (notify_die(DIE_INIT_SLAVE_LEAVE, "INIT", regs, (long)&nd, 0, 0) | 1643 | if (notify_die(DIE_INIT_SLAVE_LEAVE, "INIT", regs, (long)&nd, 0, 0) |
| 1647 | == NOTIFY_STOP) | 1644 | == NOTIFY_STOP) |
| 1648 | ia64_mca_spin(__FUNCTION__); | 1645 | ia64_mca_spin(__func__); |
| 1649 | mprintk("Slave on cpu %d returning to normal service.\n", cpu); | 1646 | mprintk("Slave on cpu %d returning to normal service.\n", cpu); |
| 1650 | set_curr_task(cpu, previous_current); | 1647 | set_curr_task(cpu, previous_current); |
| 1651 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; | 1648 | ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; |
| @@ -1656,7 +1653,7 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1656 | monarch_cpu = cpu; | 1653 | monarch_cpu = cpu; |
| 1657 | if (notify_die(DIE_INIT_MONARCH_ENTER, "INIT", regs, (long)&nd, 0, 0) | 1654 | if (notify_die(DIE_INIT_MONARCH_ENTER, "INIT", regs, (long)&nd, 0, 0) |
| 1658 | == NOTIFY_STOP) | 1655 | == NOTIFY_STOP) |
| 1659 | ia64_mca_spin(__FUNCTION__); | 1656 | ia64_mca_spin(__func__); |
| 1660 | 1657 | ||
| 1661 | /* | 1658 | /* |
| 1662 | * Wait for a bit. On some machines (e.g., HP's zx2000 and zx6000, INIT can be | 1659 | * Wait for a bit. On some machines (e.g., HP's zx2000 and zx6000, INIT can be |
| @@ -1673,10 +1670,10 @@ ia64_init_handler(struct pt_regs *regs, struct switch_stack *sw, | |||
| 1673 | */ | 1670 | */ |
| 1674 | if (notify_die(DIE_INIT_MONARCH_PROCESS, "INIT", regs, (long)&nd, 0, 0) | 1671 | if (notify_die(DIE_INIT_MONARCH_PROCESS, "INIT", regs, (long)&nd, 0, 0) |
| 1675 | == NOTIFY_STOP) | 1672 | == NOTIFY_STOP) |
| 1676 | ia64_mca_spin(__FUNCTION__); | 1673 | ia64_mca_spin(__func__); |
| 1677 | if (notify_die(DIE_INIT_MONARCH_LEAVE, "INIT", regs, (long)&nd, 0, 0) | 1674 | if (notify_die(DIE_INIT_MONARCH_LEAVE, "INIT", regs, (long)&nd, 0, 0) |
| 1678 | == NOTIFY_STOP) | 1675 | == NOTIFY_STOP) |
| 1679 | ia64_mca_spin(__FUNCTION__); | 1676 | ia64_mca_spin(__func__); |
| 1680 | mprintk("\nINIT dump complete. Monarch on cpu %d returning to normal service.\n", cpu); | 1677 | mprintk("\nINIT dump complete. Monarch on cpu %d returning to normal service.\n", cpu); |
| 1681 | atomic_dec(&monarchs); | 1678 | atomic_dec(&monarchs); |
| 1682 | set_curr_task(cpu, previous_current); | 1679 | set_curr_task(cpu, previous_current); |
| @@ -1884,7 +1881,7 @@ ia64_mca_init(void) | |||
| 1884 | .priority = 0/* we need to notified last */ | 1881 | .priority = 0/* we need to notified last */ |
| 1885 | }; | 1882 | }; |
| 1886 | 1883 | ||
| 1887 | IA64_MCA_DEBUG("%s: begin\n", __FUNCTION__); | 1884 | IA64_MCA_DEBUG("%s: begin\n", __func__); |
| 1888 | 1885 | ||
| 1889 | /* Clear the Rendez checkin flag for all cpus */ | 1886 | /* Clear the Rendez checkin flag for all cpus */ |
| 1890 | for(i = 0 ; i < NR_CPUS; i++) | 1887 | for(i = 0 ; i < NR_CPUS; i++) |
| @@ -1928,7 +1925,7 @@ ia64_mca_init(void) | |||
| 1928 | return; | 1925 | return; |
| 1929 | } | 1926 | } |
| 1930 | 1927 | ||
| 1931 | IA64_MCA_DEBUG("%s: registered MCA rendezvous spinloop and wakeup mech.\n", __FUNCTION__); | 1928 | IA64_MCA_DEBUG("%s: registered MCA rendezvous spinloop and wakeup mech.\n", __func__); |
| 1932 | 1929 | ||
| 1933 | ia64_mc_info.imi_mca_handler = ia64_tpa(mca_hldlr_ptr->fp); | 1930 | ia64_mc_info.imi_mca_handler = ia64_tpa(mca_hldlr_ptr->fp); |
| 1934 | /* | 1931 | /* |
| @@ -1949,7 +1946,7 @@ ia64_mca_init(void) | |||
| 1949 | return; | 1946 | return; |
| 1950 | } | 1947 | } |
| 1951 | 1948 | ||
| 1952 | IA64_MCA_DEBUG("%s: registered OS MCA handler with SAL at 0x%lx, gp = 0x%lx\n", __FUNCTION__, | 1949 | IA64_MCA_DEBUG("%s: registered OS MCA handler with SAL at 0x%lx, gp = 0x%lx\n", __func__, |
| 1953 | ia64_mc_info.imi_mca_handler, ia64_tpa(mca_hldlr_ptr->gp)); | 1950 | ia64_mc_info.imi_mca_handler, ia64_tpa(mca_hldlr_ptr->gp)); |
| 1954 | 1951 | ||
| 1955 | /* | 1952 | /* |
| @@ -1961,7 +1958,7 @@ ia64_mca_init(void) | |||
| 1961 | ia64_mc_info.imi_slave_init_handler = ia64_tpa(init_hldlr_ptr_slave->fp); | 1958 | ia64_mc_info.imi_slave_init_handler = ia64_tpa(init_hldlr_ptr_slave->fp); |
| 1962 | ia64_mc_info.imi_slave_init_handler_size = 0; | 1959 | ia64_mc_info.imi_slave_init_handler_size = 0; |
| 1963 | 1960 | ||
| 1964 | IA64_MCA_DEBUG("%s: OS INIT handler at %lx\n", __FUNCTION__, | 1961 | IA64_MCA_DEBUG("%s: OS INIT handler at %lx\n", __func__, |
| 1965 | ia64_mc_info.imi_monarch_init_handler); | 1962 | ia64_mc_info.imi_monarch_init_handler); |
| 1966 | 1963 | ||
| 1967 | /* Register the os init handler with SAL */ | 1964 | /* Register the os init handler with SAL */ |
| @@ -1982,7 +1979,7 @@ ia64_mca_init(void) | |||
| 1982 | return; | 1979 | return; |
| 1983 | } | 1980 | } |
| 1984 | 1981 | ||
| 1985 | IA64_MCA_DEBUG("%s: registered OS INIT handler with SAL\n", __FUNCTION__); | 1982 | IA64_MCA_DEBUG("%s: registered OS INIT handler with SAL\n", __func__); |
| 1986 | 1983 | ||
| 1987 | /* | 1984 | /* |
| 1988 | * Configure the CMCI/P vector and handler. Interrupts for CMC are | 1985 | * Configure the CMCI/P vector and handler. Interrupts for CMC are |
| @@ -2042,7 +2039,7 @@ ia64_mca_late_init(void) | |||
| 2042 | cmc_polling_enabled = 0; | 2039 | cmc_polling_enabled = 0; |
| 2043 | schedule_work(&cmc_enable_work); | 2040 | schedule_work(&cmc_enable_work); |
| 2044 | 2041 | ||
| 2045 | IA64_MCA_DEBUG("%s: CMCI/P setup and enabled.\n", __FUNCTION__); | 2042 | IA64_MCA_DEBUG("%s: CMCI/P setup and enabled.\n", __func__); |
| 2046 | 2043 | ||
| 2047 | #ifdef CONFIG_ACPI | 2044 | #ifdef CONFIG_ACPI |
| 2048 | /* Setup the CPEI/P vector and handler */ | 2045 | /* Setup the CPEI/P vector and handler */ |
| @@ -2065,17 +2062,17 @@ ia64_mca_late_init(void) | |||
| 2065 | ia64_cpe_irq = irq; | 2062 | ia64_cpe_irq = irq; |
| 2066 | ia64_mca_register_cpev(cpe_vector); | 2063 | ia64_mca_register_cpev(cpe_vector); |
| 2067 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", | 2064 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", |
| 2068 | __FUNCTION__); | 2065 | __func__); |
| 2069 | return 0; | 2066 | return 0; |
| 2070 | } | 2067 | } |
| 2071 | printk(KERN_ERR "%s: Failed to find irq for CPE " | 2068 | printk(KERN_ERR "%s: Failed to find irq for CPE " |
| 2072 | "interrupt handler, vector %d\n", | 2069 | "interrupt handler, vector %d\n", |
| 2073 | __FUNCTION__, cpe_vector); | 2070 | __func__, cpe_vector); |
| 2074 | } | 2071 | } |
| 2075 | /* If platform doesn't support CPEI, get the timer going. */ | 2072 | /* If platform doesn't support CPEI, get the timer going. */ |
| 2076 | if (cpe_poll_enabled) { | 2073 | if (cpe_poll_enabled) { |
| 2077 | ia64_mca_cpe_poll(0UL); | 2074 | ia64_mca_cpe_poll(0UL); |
| 2078 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __FUNCTION__); | 2075 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __func__); |
| 2079 | } | 2076 | } |
| 2080 | } | 2077 | } |
| 2081 | #endif | 2078 | #endif |
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index e58f4367cf11..e83e2ea3b3e0 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
| @@ -493,7 +493,7 @@ module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings, | |||
| 493 | mod->arch.opd->sh_addralign = 8; | 493 | mod->arch.opd->sh_addralign = 8; |
| 494 | mod->arch.opd->sh_size = fdescs * sizeof(struct fdesc); | 494 | mod->arch.opd->sh_size = fdescs * sizeof(struct fdesc); |
| 495 | DEBUGP("%s: core.plt=%lx, init.plt=%lx, got=%lx, fdesc=%lx\n", | 495 | DEBUGP("%s: core.plt=%lx, init.plt=%lx, got=%lx, fdesc=%lx\n", |
| 496 | __FUNCTION__, mod->arch.core_plt->sh_size, mod->arch.init_plt->sh_size, | 496 | __func__, mod->arch.core_plt->sh_size, mod->arch.init_plt->sh_size, |
| 497 | mod->arch.got->sh_size, mod->arch.opd->sh_size); | 497 | mod->arch.got->sh_size, mod->arch.opd->sh_size); |
| 498 | return 0; | 498 | return 0; |
| 499 | } | 499 | } |
| @@ -585,7 +585,7 @@ get_plt (struct module *mod, const struct insn *insn, uint64_t value, int *okp) | |||
| 585 | #if ARCH_MODULE_DEBUG | 585 | #if ARCH_MODULE_DEBUG |
| 586 | if (plt_target(plt) != target_ip) { | 586 | if (plt_target(plt) != target_ip) { |
| 587 | printk("%s: mistargeted PLT: wanted %lx, got %lx\n", | 587 | printk("%s: mistargeted PLT: wanted %lx, got %lx\n", |
| 588 | __FUNCTION__, target_ip, plt_target(plt)); | 588 | __func__, target_ip, plt_target(plt)); |
| 589 | *okp = 0; | 589 | *okp = 0; |
| 590 | return 0; | 590 | return 0; |
| 591 | } | 591 | } |
| @@ -703,7 +703,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
| 703 | if (r_type == R_IA64_PCREL21BI) { | 703 | if (r_type == R_IA64_PCREL21BI) { |
| 704 | if (!is_internal(mod, val)) { | 704 | if (!is_internal(mod, val)) { |
| 705 | printk(KERN_ERR "%s: %s reloc against non-local symbol (%lx)\n", | 705 | printk(KERN_ERR "%s: %s reloc against non-local symbol (%lx)\n", |
| 706 | __FUNCTION__, reloc_name[r_type], val); | 706 | __func__, reloc_name[r_type], val); |
| 707 | return -ENOEXEC; | 707 | return -ENOEXEC; |
| 708 | } | 708 | } |
| 709 | format = RF_INSN21B; | 709 | format = RF_INSN21B; |
| @@ -737,7 +737,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
| 737 | case R_IA64_LDXMOV: | 737 | case R_IA64_LDXMOV: |
| 738 | if (gp_addressable(mod, val)) { | 738 | if (gp_addressable(mod, val)) { |
| 739 | /* turn "ld8" into "mov": */ | 739 | /* turn "ld8" into "mov": */ |
| 740 | DEBUGP("%s: patching ld8 at %p to mov\n", __FUNCTION__, location); | 740 | DEBUGP("%s: patching ld8 at %p to mov\n", __func__, location); |
| 741 | ia64_patch((u64) location, 0x1fff80fe000UL, 0x10000000000UL); | 741 | ia64_patch((u64) location, 0x1fff80fe000UL, 0x10000000000UL); |
| 742 | } | 742 | } |
| 743 | return 0; | 743 | return 0; |
| @@ -771,7 +771,7 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
| 771 | if (!ok) | 771 | if (!ok) |
| 772 | return -ENOEXEC; | 772 | return -ENOEXEC; |
| 773 | 773 | ||
| 774 | DEBUGP("%s: [%p]<-%016lx = %s(%lx)\n", __FUNCTION__, location, val, | 774 | DEBUGP("%s: [%p]<-%016lx = %s(%lx)\n", __func__, location, val, |
| 775 | reloc_name[r_type] ? reloc_name[r_type] : "?", sym->st_value + addend); | 775 | reloc_name[r_type] ? reloc_name[r_type] : "?", sym->st_value + addend); |
| 776 | 776 | ||
| 777 | switch (format) { | 777 | switch (format) { |
| @@ -807,7 +807,7 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind | |||
| 807 | Elf64_Shdr *target_sec; | 807 | Elf64_Shdr *target_sec; |
| 808 | int ret; | 808 | int ret; |
| 809 | 809 | ||
| 810 | DEBUGP("%s: applying section %u (%u relocs) to %u\n", __FUNCTION__, | 810 | DEBUGP("%s: applying section %u (%u relocs) to %u\n", __func__, |
| 811 | relsec, n, sechdrs[relsec].sh_info); | 811 | relsec, n, sechdrs[relsec].sh_info); |
| 812 | 812 | ||
| 813 | target_sec = sechdrs + sechdrs[relsec].sh_info; | 813 | target_sec = sechdrs + sechdrs[relsec].sh_info; |
| @@ -835,7 +835,7 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind | |||
| 835 | gp = mod->core_size / 2; | 835 | gp = mod->core_size / 2; |
| 836 | gp = (uint64_t) mod->module_core + ((gp + 7) & -8); | 836 | gp = (uint64_t) mod->module_core + ((gp + 7) & -8); |
| 837 | mod->arch.gp = gp; | 837 | mod->arch.gp = gp; |
| 838 | DEBUGP("%s: placing gp at 0x%lx\n", __FUNCTION__, gp); | 838 | DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); |
| 839 | } | 839 | } |
| 840 | 840 | ||
| 841 | for (i = 0; i < n; i++) { | 841 | for (i = 0; i < n; i++) { |
| @@ -903,7 +903,7 @@ register_unwind_table (struct module *mod) | |||
| 903 | init = start + num_core; | 903 | init = start + num_core; |
| 904 | } | 904 | } |
| 905 | 905 | ||
| 906 | DEBUGP("%s: name=%s, gp=%lx, num_init=%lu, num_core=%lu\n", __FUNCTION__, | 906 | DEBUGP("%s: name=%s, gp=%lx, num_init=%lu, num_core=%lu\n", __func__, |
| 907 | mod->name, mod->arch.gp, num_init, num_core); | 907 | mod->name, mod->arch.gp, num_init, num_core); |
| 908 | 908 | ||
| 909 | /* | 909 | /* |
| @@ -912,13 +912,13 @@ register_unwind_table (struct module *mod) | |||
| 912 | if (num_core > 0) { | 912 | if (num_core > 0) { |
| 913 | mod->arch.core_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, | 913 | mod->arch.core_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, |
| 914 | core, core + num_core); | 914 | core, core + num_core); |
| 915 | DEBUGP("%s: core: handle=%p [%p-%p)\n", __FUNCTION__, | 915 | DEBUGP("%s: core: handle=%p [%p-%p)\n", __func__, |
| 916 | mod->arch.core_unw_table, core, core + num_core); | 916 | mod->arch.core_unw_table, core, core + num_core); |
| 917 | } | 917 | } |
| 918 | if (num_init > 0) { | 918 | if (num_init > 0) { |
| 919 | mod->arch.init_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, | 919 | mod->arch.init_unw_table = unw_add_unwind_table(mod->name, 0, mod->arch.gp, |
| 920 | init, init + num_init); | 920 | init, init + num_init); |
| 921 | DEBUGP("%s: init: handle=%p [%p-%p)\n", __FUNCTION__, | 921 | DEBUGP("%s: init: handle=%p [%p-%p)\n", __func__, |
| 922 | mod->arch.init_unw_table, init, init + num_init); | 922 | mod->arch.init_unw_table, init, init + num_init); |
| 923 | } | 923 | } |
| 924 | } | 924 | } |
| @@ -926,7 +926,7 @@ register_unwind_table (struct module *mod) | |||
| 926 | int | 926 | int |
| 927 | module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod) | 927 | module_finalize (const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, struct module *mod) |
| 928 | { | 928 | { |
| 929 | DEBUGP("%s: init: entry=%p\n", __FUNCTION__, mod->init); | 929 | DEBUGP("%s: init: entry=%p\n", __func__, mod->init); |
| 930 | if (mod->arch.unwind) | 930 | if (mod->arch.unwind) |
| 931 | register_unwind_table(mod); | 931 | register_unwind_table(mod); |
| 932 | return 0; | 932 | return 0; |
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c index e86d02959794..60c6ef67ebb2 100644 --- a/arch/ia64/kernel/msi_ia64.c +++ b/arch/ia64/kernel/msi_ia64.c | |||
| @@ -57,7 +57,7 @@ static void ia64_set_msi_irq_affinity(unsigned int irq, cpumask_t cpu_mask) | |||
| 57 | if (!cpu_online(cpu)) | 57 | if (!cpu_online(cpu)) |
| 58 | return; | 58 | return; |
| 59 | 59 | ||
| 60 | if (reassign_irq_vector(irq, cpu)) | 60 | if (irq_prepare_move(irq, cpu)) |
| 61 | return; | 61 | return; |
| 62 | 62 | ||
| 63 | read_msi_msg(irq, &msg); | 63 | read_msi_msg(irq, &msg); |
| @@ -119,6 +119,7 @@ void ia64_teardown_msi_irq(unsigned int irq) | |||
| 119 | 119 | ||
| 120 | static void ia64_ack_msi_irq(unsigned int irq) | 120 | static void ia64_ack_msi_irq(unsigned int irq) |
| 121 | { | 121 | { |
| 122 | irq_complete_move(irq); | ||
| 122 | move_native_irq(irq); | 123 | move_native_irq(irq); |
| 123 | ia64_eoi(); | 124 | ia64_eoi(); |
| 124 | } | 125 | } |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index f6b99719f10f..a2aabfdc80d9 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
| @@ -227,12 +227,12 @@ | |||
| 227 | #ifdef PFM_DEBUGGING | 227 | #ifdef PFM_DEBUGGING |
| 228 | #define DPRINT(a) \ | 228 | #define DPRINT(a) \ |
| 229 | do { \ | 229 | do { \ |
| 230 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ | 230 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d [%d] ", __func__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ |
| 231 | } while (0) | 231 | } while (0) |
| 232 | 232 | ||
| 233 | #define DPRINT_ovfl(a) \ | 233 | #define DPRINT_ovfl(a) \ |
| 234 | do { \ | 234 | do { \ |
| 235 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d [%d] ", __FUNCTION__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ | 235 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d [%d] ", __func__, __LINE__, smp_processor_id(), task_pid_nr(current)); printk a; } \ |
| 236 | } while (0) | 236 | } while (0) |
| 237 | #endif | 237 | #endif |
| 238 | 238 | ||
diff --git a/arch/ia64/kernel/perfmon_default_smpl.c b/arch/ia64/kernel/perfmon_default_smpl.c index a7af1cb419f9..5f637bbfcccd 100644 --- a/arch/ia64/kernel/perfmon_default_smpl.c +++ b/arch/ia64/kernel/perfmon_default_smpl.c | |||
| @@ -24,12 +24,12 @@ MODULE_LICENSE("GPL"); | |||
| 24 | #ifdef DEFAULT_DEBUG | 24 | #ifdef DEFAULT_DEBUG |
| 25 | #define DPRINT(a) \ | 25 | #define DPRINT(a) \ |
| 26 | do { \ | 26 | do { \ |
| 27 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d ", __FUNCTION__, __LINE__, smp_processor_id()); printk a; } \ | 27 | if (unlikely(pfm_sysctl.debug >0)) { printk("%s.%d: CPU%d ", __func__, __LINE__, smp_processor_id()); printk a; } \ |
| 28 | } while (0) | 28 | } while (0) |
| 29 | 29 | ||
| 30 | #define DPRINT_ovfl(a) \ | 30 | #define DPRINT_ovfl(a) \ |
| 31 | do { \ | 31 | do { \ |
| 32 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d ", __FUNCTION__, __LINE__, smp_processor_id()); printk a; } \ | 32 | if (unlikely(pfm_sysctl.debug > 0 && pfm_sysctl.debug_ovfl >0)) { printk("%s.%d: CPU%d ", __func__, __LINE__, smp_processor_id()); printk a; } \ |
| 33 | } while (0) | 33 | } while (0) |
| 34 | 34 | ||
| 35 | #else | 35 | #else |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 331d6768b5d5..ab784ec4319d 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
| @@ -698,52 +698,6 @@ thread_matches (struct task_struct *thread, unsigned long addr) | |||
| 698 | } | 698 | } |
| 699 | 699 | ||
| 700 | /* | 700 | /* |
| 701 | * GDB apparently wants to be able to read the register-backing store | ||
| 702 | * of any thread when attached to a given process. If we are peeking | ||
| 703 | * or poking an address that happens to reside in the kernel-backing | ||
| 704 | * store of another thread, we need to attach to that thread, because | ||
| 705 | * otherwise we end up accessing stale data. | ||
| 706 | * | ||
| 707 | * task_list_lock must be read-locked before calling this routine! | ||
| 708 | */ | ||
| 709 | static struct task_struct * | ||
| 710 | find_thread_for_addr (struct task_struct *child, unsigned long addr) | ||
| 711 | { | ||
| 712 | struct task_struct *p; | ||
| 713 | struct mm_struct *mm; | ||
| 714 | struct list_head *this, *next; | ||
| 715 | int mm_users; | ||
| 716 | |||
| 717 | if (!(mm = get_task_mm(child))) | ||
| 718 | return child; | ||
| 719 | |||
| 720 | /* -1 because of our get_task_mm(): */ | ||
| 721 | mm_users = atomic_read(&mm->mm_users) - 1; | ||
| 722 | if (mm_users <= 1) | ||
| 723 | goto out; /* not multi-threaded */ | ||
| 724 | |||
| 725 | /* | ||
| 726 | * Traverse the current process' children list. Every task that | ||
| 727 | * one attaches to becomes a child. And it is only attached children | ||
| 728 | * of the debugger that are of interest (ptrace_check_attach checks | ||
| 729 | * for this). | ||
| 730 | */ | ||
| 731 | list_for_each_safe(this, next, ¤t->children) { | ||
| 732 | p = list_entry(this, struct task_struct, sibling); | ||
| 733 | if (p->tgid != child->tgid) | ||
| 734 | continue; | ||
| 735 | if (thread_matches(p, addr)) { | ||
| 736 | child = p; | ||
| 737 | goto out; | ||
| 738 | } | ||
| 739 | } | ||
| 740 | |||
| 741 | out: | ||
| 742 | mmput(mm); | ||
| 743 | return child; | ||
| 744 | } | ||
| 745 | |||
| 746 | /* | ||
| 747 | * Write f32-f127 back to task->thread.fph if it has been modified. | 701 | * Write f32-f127 back to task->thread.fph if it has been modified. |
| 748 | */ | 702 | */ |
| 749 | inline void | 703 | inline void |
| @@ -826,14 +780,14 @@ convert_to_non_syscall (struct task_struct *child, struct pt_regs *pt, | |||
| 826 | if ((long)((unsigned long)child + IA64_STK_OFFSET - sp) | 780 | if ((long)((unsigned long)child + IA64_STK_OFFSET - sp) |
| 827 | < IA64_PT_REGS_SIZE) { | 781 | < IA64_PT_REGS_SIZE) { |
| 828 | dprintk("ptrace.%s: ran off the top of the kernel " | 782 | dprintk("ptrace.%s: ran off the top of the kernel " |
| 829 | "stack\n", __FUNCTION__); | 783 | "stack\n", __func__); |
| 830 | return; | 784 | return; |
| 831 | } | 785 | } |
| 832 | if (unw_get_pr (&prev_info, &pr) < 0) { | 786 | if (unw_get_pr (&prev_info, &pr) < 0) { |
| 833 | unw_get_rp(&prev_info, &ip); | 787 | unw_get_rp(&prev_info, &ip); |
| 834 | dprintk("ptrace.%s: failed to read " | 788 | dprintk("ptrace.%s: failed to read " |
| 835 | "predicate register (ip=0x%lx)\n", | 789 | "predicate register (ip=0x%lx)\n", |
| 836 | __FUNCTION__, ip); | 790 | __func__, ip); |
| 837 | return; | 791 | return; |
| 838 | } | 792 | } |
| 839 | if (unw_is_intr_frame(&info) | 793 | if (unw_is_intr_frame(&info) |
| @@ -908,7 +862,7 @@ static int | |||
| 908 | access_uarea (struct task_struct *child, unsigned long addr, | 862 | access_uarea (struct task_struct *child, unsigned long addr, |
| 909 | unsigned long *data, int write_access) | 863 | unsigned long *data, int write_access) |
| 910 | { | 864 | { |
| 911 | unsigned long *ptr, regnum, urbs_end, rnat_addr, cfm; | 865 | unsigned long *ptr, regnum, urbs_end, cfm; |
| 912 | struct switch_stack *sw; | 866 | struct switch_stack *sw; |
| 913 | struct pt_regs *pt; | 867 | struct pt_regs *pt; |
| 914 | # define pt_reg_addr(pt, reg) ((void *) \ | 868 | # define pt_reg_addr(pt, reg) ((void *) \ |
| @@ -1011,14 +965,9 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
| 1011 | * the kernel was entered. | 965 | * the kernel was entered. |
| 1012 | * | 966 | * |
| 1013 | * Furthermore, when changing the contents of | 967 | * Furthermore, when changing the contents of |
| 1014 | * PT_AR_BSP (or PT_CFM) we MUST copy any | 968 | * PT_AR_BSP (or PT_CFM) while the task is |
| 1015 | * users-level stacked registers that are | 969 | * blocked in a system call, convert the state |
| 1016 | * stored on the kernel stack back to | 970 | * so that the non-system-call exit |
| 1017 | * user-space because otherwise, we might end | ||
| 1018 | * up clobbering kernel stacked registers. | ||
| 1019 | * Also, if this happens while the task is | ||
| 1020 | * blocked in a system call, which convert the | ||
| 1021 | * state such that the non-system-call exit | ||
| 1022 | * path is used. This ensures that the proper | 971 | * path is used. This ensures that the proper |
| 1023 | * state will be picked up when resuming | 972 | * state will be picked up when resuming |
| 1024 | * execution. However, it *also* means that | 973 | * execution. However, it *also* means that |
| @@ -1035,10 +984,6 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
| 1035 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); | 984 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); |
| 1036 | if (write_access) { | 985 | if (write_access) { |
| 1037 | if (*data != urbs_end) { | 986 | if (*data != urbs_end) { |
| 1038 | if (ia64_sync_user_rbs(child, sw, | ||
| 1039 | pt->ar_bspstore, | ||
| 1040 | urbs_end) < 0) | ||
| 1041 | return -1; | ||
| 1042 | if (in_syscall(pt)) | 987 | if (in_syscall(pt)) |
| 1043 | convert_to_non_syscall(child, | 988 | convert_to_non_syscall(child, |
| 1044 | pt, | 989 | pt, |
| @@ -1058,10 +1003,6 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
| 1058 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); | 1003 | urbs_end = ia64_get_user_rbs_end(child, pt, &cfm); |
| 1059 | if (write_access) { | 1004 | if (write_access) { |
| 1060 | if (((cfm ^ *data) & PFM_MASK) != 0) { | 1005 | if (((cfm ^ *data) & PFM_MASK) != 0) { |
| 1061 | if (ia64_sync_user_rbs(child, sw, | ||
| 1062 | pt->ar_bspstore, | ||
| 1063 | urbs_end) < 0) | ||
| 1064 | return -1; | ||
| 1065 | if (in_syscall(pt)) | 1006 | if (in_syscall(pt)) |
| 1066 | convert_to_non_syscall(child, | 1007 | convert_to_non_syscall(child, |
| 1067 | pt, | 1008 | pt, |
| @@ -1093,16 +1034,8 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
| 1093 | return 0; | 1034 | return 0; |
| 1094 | 1035 | ||
| 1095 | case PT_AR_RNAT: | 1036 | case PT_AR_RNAT: |
| 1096 | urbs_end = ia64_get_user_rbs_end(child, pt, NULL); | 1037 | ptr = pt_reg_addr(pt, ar_rnat); |
| 1097 | rnat_addr = (long) ia64_rse_rnat_addr((long *) | 1038 | break; |
| 1098 | urbs_end); | ||
| 1099 | if (write_access) | ||
| 1100 | return ia64_poke(child, sw, urbs_end, | ||
| 1101 | rnat_addr, *data); | ||
| 1102 | else | ||
| 1103 | return ia64_peek(child, sw, urbs_end, | ||
| 1104 | rnat_addr, data); | ||
| 1105 | |||
| 1106 | case PT_R1: | 1039 | case PT_R1: |
| 1107 | ptr = pt_reg_addr(pt, r1); | 1040 | ptr = pt_reg_addr(pt, r1); |
| 1108 | break; | 1041 | break; |
| @@ -1521,215 +1454,97 @@ ptrace_setregs (struct task_struct *child, struct pt_all_user_regs __user *ppr) | |||
| 1521 | return ret; | 1454 | return ret; |
| 1522 | } | 1455 | } |
| 1523 | 1456 | ||
| 1524 | /* | ||
| 1525 | * Called by kernel/ptrace.c when detaching.. | ||
| 1526 | * | ||
| 1527 | * Make sure the single step bit is not set. | ||
| 1528 | */ | ||
| 1529 | void | 1457 | void |
| 1530 | ptrace_disable (struct task_struct *child) | 1458 | user_enable_single_step (struct task_struct *child) |
| 1531 | { | 1459 | { |
| 1532 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); | 1460 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); |
| 1533 | 1461 | ||
| 1534 | /* make sure the single step/taken-branch trap bits are not set: */ | 1462 | set_tsk_thread_flag(child, TIF_SINGLESTEP); |
| 1535 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); | 1463 | child_psr->ss = 1; |
| 1536 | child_psr->ss = 0; | ||
| 1537 | child_psr->tb = 0; | ||
| 1538 | } | 1464 | } |
| 1539 | 1465 | ||
| 1540 | asmlinkage long | 1466 | void |
| 1541 | sys_ptrace (long request, pid_t pid, unsigned long addr, unsigned long data) | 1467 | user_enable_block_step (struct task_struct *child) |
| 1542 | { | 1468 | { |
| 1543 | struct pt_regs *pt; | 1469 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); |
| 1544 | unsigned long urbs_end, peek_or_poke; | ||
| 1545 | struct task_struct *child; | ||
| 1546 | struct switch_stack *sw; | ||
| 1547 | long ret; | ||
| 1548 | struct unw_frame_info info; | ||
| 1549 | 1470 | ||
| 1550 | lock_kernel(); | 1471 | set_tsk_thread_flag(child, TIF_SINGLESTEP); |
| 1551 | ret = -EPERM; | 1472 | child_psr->tb = 1; |
| 1552 | if (request == PTRACE_TRACEME) { | 1473 | } |
| 1553 | ret = ptrace_traceme(); | ||
| 1554 | goto out; | ||
| 1555 | } | ||
| 1556 | 1474 | ||
| 1557 | peek_or_poke = (request == PTRACE_PEEKTEXT | 1475 | void |
| 1558 | || request == PTRACE_PEEKDATA | 1476 | user_disable_single_step (struct task_struct *child) |
| 1559 | || request == PTRACE_POKETEXT | 1477 | { |
| 1560 | || request == PTRACE_POKEDATA); | 1478 | struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child)); |
| 1561 | ret = -ESRCH; | ||
| 1562 | read_lock(&tasklist_lock); | ||
| 1563 | { | ||
| 1564 | child = find_task_by_pid(pid); | ||
| 1565 | if (child) { | ||
| 1566 | if (peek_or_poke) | ||
| 1567 | child = find_thread_for_addr(child, addr); | ||
| 1568 | get_task_struct(child); | ||
| 1569 | } | ||
| 1570 | } | ||
| 1571 | read_unlock(&tasklist_lock); | ||
| 1572 | if (!child) | ||
| 1573 | goto out; | ||
| 1574 | ret = -EPERM; | ||
| 1575 | if (pid == 1) /* no messing around with init! */ | ||
| 1576 | goto out_tsk; | ||
| 1577 | |||
| 1578 | if (request == PTRACE_ATTACH) { | ||
| 1579 | ret = ptrace_attach(child); | ||
| 1580 | if (!ret) | ||
| 1581 | arch_ptrace_attach(child); | ||
| 1582 | goto out_tsk; | ||
| 1583 | } | ||
| 1584 | 1479 | ||
| 1585 | ret = ptrace_check_attach(child, request == PTRACE_KILL); | 1480 | /* make sure the single step/taken-branch trap bits are not set: */ |
| 1586 | if (ret < 0) | 1481 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); |
| 1587 | goto out_tsk; | 1482 | child_psr->ss = 0; |
| 1483 | child_psr->tb = 0; | ||
| 1484 | } | ||
| 1588 | 1485 | ||
| 1589 | pt = task_pt_regs(child); | 1486 | /* |
| 1590 | sw = (struct switch_stack *) (child->thread.ksp + 16); | 1487 | * Called by kernel/ptrace.c when detaching.. |
| 1488 | * | ||
| 1489 | * Make sure the single step bit is not set. | ||
| 1490 | */ | ||
| 1491 | void | ||
| 1492 | ptrace_disable (struct task_struct *child) | ||
| 1493 | { | ||
| 1494 | user_disable_single_step(child); | ||
| 1495 | } | ||
| 1591 | 1496 | ||
| 1497 | long | ||
| 1498 | arch_ptrace (struct task_struct *child, long request, long addr, long data) | ||
| 1499 | { | ||
| 1592 | switch (request) { | 1500 | switch (request) { |
| 1593 | case PTRACE_PEEKTEXT: | 1501 | case PTRACE_PEEKTEXT: |
| 1594 | case PTRACE_PEEKDATA: | 1502 | case PTRACE_PEEKDATA: |
| 1595 | /* read word at location addr */ | 1503 | /* read word at location addr */ |
| 1596 | urbs_end = ia64_get_user_rbs_end(child, pt, NULL); | 1504 | if (access_process_vm(child, addr, &data, sizeof(data), 0) |
| 1597 | ret = ia64_peek(child, sw, urbs_end, addr, &data); | 1505 | != sizeof(data)) |
| 1598 | if (ret == 0) { | 1506 | return -EIO; |
| 1599 | ret = data; | 1507 | /* ensure return value is not mistaken for error code */ |
| 1600 | /* ensure "ret" is not mistaken as an error code: */ | 1508 | force_successful_syscall_return(); |
| 1601 | force_successful_syscall_return(); | 1509 | return data; |
| 1602 | } | ||
| 1603 | goto out_tsk; | ||
| 1604 | |||
| 1605 | case PTRACE_POKETEXT: | ||
| 1606 | case PTRACE_POKEDATA: | ||
| 1607 | /* write the word at location addr */ | ||
| 1608 | urbs_end = ia64_get_user_rbs_end(child, pt, NULL); | ||
| 1609 | ret = ia64_poke(child, sw, urbs_end, addr, data); | ||
| 1610 | |||
| 1611 | /* Make sure user RBS has the latest data */ | ||
| 1612 | unw_init_from_blocked_task(&info, child); | ||
| 1613 | do_sync_rbs(&info, ia64_sync_user_rbs); | ||
| 1614 | 1510 | ||
| 1615 | goto out_tsk; | 1511 | /* PTRACE_POKETEXT and PTRACE_POKEDATA is handled |
| 1512 | * by the generic ptrace_request(). | ||
| 1513 | */ | ||
| 1616 | 1514 | ||
| 1617 | case PTRACE_PEEKUSR: | 1515 | case PTRACE_PEEKUSR: |
| 1618 | /* read the word at addr in the USER area */ | 1516 | /* read the word at addr in the USER area */ |
| 1619 | if (access_uarea(child, addr, &data, 0) < 0) { | 1517 | if (access_uarea(child, addr, &data, 0) < 0) |
| 1620 | ret = -EIO; | 1518 | return -EIO; |
| 1621 | goto out_tsk; | 1519 | /* ensure return value is not mistaken for error code */ |
| 1622 | } | ||
| 1623 | ret = data; | ||
| 1624 | /* ensure "ret" is not mistaken as an error code */ | ||
| 1625 | force_successful_syscall_return(); | 1520 | force_successful_syscall_return(); |
| 1626 | goto out_tsk; | 1521 | return data; |
| 1627 | 1522 | ||
| 1628 | case PTRACE_POKEUSR: | 1523 | case PTRACE_POKEUSR: |
| 1629 | /* write the word at addr in the USER area */ | 1524 | /* write the word at addr in the USER area */ |
| 1630 | if (access_uarea(child, addr, &data, 1) < 0) { | 1525 | if (access_uarea(child, addr, &data, 1) < 0) |
| 1631 | ret = -EIO; | 1526 | return -EIO; |
| 1632 | goto out_tsk; | 1527 | return 0; |
| 1633 | } | ||
| 1634 | ret = 0; | ||
| 1635 | goto out_tsk; | ||
| 1636 | 1528 | ||
| 1637 | case PTRACE_OLD_GETSIGINFO: | 1529 | case PTRACE_OLD_GETSIGINFO: |
| 1638 | /* for backwards-compatibility */ | 1530 | /* for backwards-compatibility */ |
| 1639 | ret = ptrace_request(child, PTRACE_GETSIGINFO, addr, data); | 1531 | return ptrace_request(child, PTRACE_GETSIGINFO, addr, data); |
| 1640 | goto out_tsk; | ||
| 1641 | 1532 | ||
| 1642 | case PTRACE_OLD_SETSIGINFO: | 1533 | case PTRACE_OLD_SETSIGINFO: |
| 1643 | /* for backwards-compatibility */ | 1534 | /* for backwards-compatibility */ |
| 1644 | ret = ptrace_request(child, PTRACE_SETSIGINFO, addr, data); | 1535 | return ptrace_request(child, PTRACE_SETSIGINFO, addr, data); |
| 1645 | goto out_tsk; | ||
| 1646 | |||
| 1647 | case PTRACE_SYSCALL: | ||
| 1648 | /* continue and stop at next (return from) syscall */ | ||
| 1649 | case PTRACE_CONT: | ||
| 1650 | /* restart after signal. */ | ||
| 1651 | ret = -EIO; | ||
| 1652 | if (!valid_signal(data)) | ||
| 1653 | goto out_tsk; | ||
| 1654 | if (request == PTRACE_SYSCALL) | ||
| 1655 | set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
| 1656 | else | ||
| 1657 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
| 1658 | child->exit_code = data; | ||
| 1659 | 1536 | ||
| 1660 | /* | 1537 | case PTRACE_GETREGS: |
| 1661 | * Make sure the single step/taken-branch trap bits | 1538 | return ptrace_getregs(child, |
| 1662 | * are not set: | 1539 | (struct pt_all_user_regs __user *) data); |
| 1663 | */ | ||
| 1664 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); | ||
| 1665 | ia64_psr(pt)->ss = 0; | ||
| 1666 | ia64_psr(pt)->tb = 0; | ||
| 1667 | 1540 | ||
| 1668 | wake_up_process(child); | 1541 | case PTRACE_SETREGS: |
| 1669 | ret = 0; | 1542 | return ptrace_setregs(child, |
| 1670 | goto out_tsk; | 1543 | (struct pt_all_user_regs __user *) data); |
| 1671 | 1544 | ||
| 1672 | case PTRACE_KILL: | 1545 | default: |
| 1673 | /* | 1546 | return ptrace_request(child, request, addr, data); |
| 1674 | * Make the child exit. Best I can do is send it a | ||
| 1675 | * sigkill. Perhaps it should be put in the status | ||
| 1676 | * that it wants to exit. | ||
| 1677 | */ | ||
| 1678 | if (child->exit_state == EXIT_ZOMBIE) | ||
| 1679 | /* already dead */ | ||
| 1680 | goto out_tsk; | ||
| 1681 | child->exit_code = SIGKILL; | ||
| 1682 | |||
| 1683 | ptrace_disable(child); | ||
| 1684 | wake_up_process(child); | ||
| 1685 | ret = 0; | ||
| 1686 | goto out_tsk; | ||
| 1687 | |||
| 1688 | case PTRACE_SINGLESTEP: | ||
| 1689 | /* let child execute for one instruction */ | ||
| 1690 | case PTRACE_SINGLEBLOCK: | ||
| 1691 | ret = -EIO; | ||
| 1692 | if (!valid_signal(data)) | ||
| 1693 | goto out_tsk; | ||
| 1694 | |||
| 1695 | clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); | ||
| 1696 | set_tsk_thread_flag(child, TIF_SINGLESTEP); | ||
| 1697 | if (request == PTRACE_SINGLESTEP) { | ||
| 1698 | ia64_psr(pt)->ss = 1; | ||
| 1699 | } else { | ||
| 1700 | ia64_psr(pt)->tb = 1; | ||
| 1701 | } | ||
| 1702 | child->exit_code = data; | ||
| 1703 | |||
| 1704 | /* give it a chance to run. */ | ||
| 1705 | wake_up_process(child); | ||
| 1706 | ret = 0; | ||
| 1707 | goto out_tsk; | ||
| 1708 | |||
| 1709 | case PTRACE_DETACH: | ||
| 1710 | /* detach a process that was attached. */ | ||
| 1711 | ret = ptrace_detach(child, data); | ||
| 1712 | goto out_tsk; | ||
| 1713 | |||
| 1714 | case PTRACE_GETREGS: | ||
| 1715 | ret = ptrace_getregs(child, | ||
| 1716 | (struct pt_all_user_regs __user *) data); | ||
| 1717 | goto out_tsk; | ||
| 1718 | |||
| 1719 | case PTRACE_SETREGS: | ||
| 1720 | ret = ptrace_setregs(child, | ||
| 1721 | (struct pt_all_user_regs __user *) data); | ||
| 1722 | goto out_tsk; | ||
| 1723 | |||
| 1724 | default: | ||
| 1725 | ret = ptrace_request(child, request, addr, data); | ||
| 1726 | goto out_tsk; | ||
| 1727 | } | 1547 | } |
| 1728 | out_tsk: | ||
| 1729 | put_task_struct(child); | ||
| 1730 | out: | ||
| 1731 | unlock_kernel(); | ||
| 1732 | return ret; | ||
| 1733 | } | 1548 | } |
| 1734 | 1549 | ||
| 1735 | 1550 | ||
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c index f44fe8412162..a3022dc48ef8 100644 --- a/arch/ia64/kernel/sal.c +++ b/arch/ia64/kernel/sal.c | |||
| @@ -109,6 +109,13 @@ check_versions (struct ia64_sal_systab *systab) | |||
| 109 | sal_revision = SAL_VERSION_CODE(2, 8); | 109 | sal_revision = SAL_VERSION_CODE(2, 8); |
| 110 | sal_version = SAL_VERSION_CODE(0, 0); | 110 | sal_version = SAL_VERSION_CODE(0, 0); |
| 111 | } | 111 | } |
| 112 | |||
| 113 | if (ia64_platform_is("sn2") && (sal_revision == SAL_VERSION_CODE(2, 9))) | ||
| 114 | /* | ||
| 115 | * SGI Altix has hard-coded version 2.9 in their prom | ||
| 116 | * but they actually implement 3.2, so let's fix it here. | ||
| 117 | */ | ||
| 118 | sal_revision = SAL_VERSION_CODE(3, 2); | ||
| 112 | } | 119 | } |
| 113 | 120 | ||
| 114 | static void __init | 121 | static void __init |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index ebd1a09f3201..4aa9eaea76c3 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
| @@ -690,7 +690,7 @@ get_model_name(__u8 family, __u8 model) | |||
| 690 | if (overflow++ == 0) | 690 | if (overflow++ == 0) |
| 691 | printk(KERN_ERR | 691 | printk(KERN_ERR |
| 692 | "%s: Table overflow. Some processor model information will be missing\n", | 692 | "%s: Table overflow. Some processor model information will be missing\n", |
| 693 | __FUNCTION__); | 693 | __func__); |
| 694 | return "Unknown"; | 694 | return "Unknown"; |
| 695 | } | 695 | } |
| 696 | 696 | ||
| @@ -785,7 +785,7 @@ get_max_cacheline_size (void) | |||
| 785 | status = ia64_pal_cache_summary(&levels, &unique_caches); | 785 | status = ia64_pal_cache_summary(&levels, &unique_caches); |
| 786 | if (status != 0) { | 786 | if (status != 0) { |
| 787 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed (status=%ld)\n", | 787 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed (status=%ld)\n", |
| 788 | __FUNCTION__, status); | 788 | __func__, status); |
| 789 | max = SMP_CACHE_BYTES; | 789 | max = SMP_CACHE_BYTES; |
| 790 | /* Safest setup for "flush_icache_range()" */ | 790 | /* Safest setup for "flush_icache_range()" */ |
| 791 | ia64_i_cache_stride_shift = I_CACHE_STRIDE_SHIFT; | 791 | ia64_i_cache_stride_shift = I_CACHE_STRIDE_SHIFT; |
| @@ -798,7 +798,7 @@ get_max_cacheline_size (void) | |||
| 798 | if (status != 0) { | 798 | if (status != 0) { |
| 799 | printk(KERN_ERR | 799 | printk(KERN_ERR |
| 800 | "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", | 800 | "%s: ia64_pal_cache_config_info(l=%lu, 2) failed (status=%ld)\n", |
| 801 | __FUNCTION__, l, status); | 801 | __func__, l, status); |
| 802 | max = SMP_CACHE_BYTES; | 802 | max = SMP_CACHE_BYTES; |
| 803 | /* The safest setup for "flush_icache_range()" */ | 803 | /* The safest setup for "flush_icache_range()" */ |
| 804 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; | 804 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; |
| @@ -814,7 +814,7 @@ get_max_cacheline_size (void) | |||
| 814 | if (status != 0) { | 814 | if (status != 0) { |
| 815 | printk(KERN_ERR | 815 | printk(KERN_ERR |
| 816 | "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", | 816 | "%s: ia64_pal_cache_config_info(l=%lu, 1) failed (status=%ld)\n", |
| 817 | __FUNCTION__, l, status); | 817 | __func__, l, status); |
| 818 | /* The safest setup for "flush_icache_range()" */ | 818 | /* The safest setup for "flush_icache_range()" */ |
| 819 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; | 819 | cci.pcci_stride = I_CACHE_STRIDE_SHIFT; |
| 820 | } | 820 | } |
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c index 309da3567bc8..5740296c35af 100644 --- a/arch/ia64/kernel/signal.c +++ b/arch/ia64/kernel/signal.c | |||
| @@ -342,15 +342,33 @@ setup_frame (int sig, struct k_sigaction *ka, siginfo_t *info, sigset_t *set, | |||
| 342 | 342 | ||
| 343 | new_sp = scr->pt.r12; | 343 | new_sp = scr->pt.r12; |
| 344 | tramp_addr = (unsigned long) __kernel_sigtramp; | 344 | tramp_addr = (unsigned long) __kernel_sigtramp; |
| 345 | if ((ka->sa.sa_flags & SA_ONSTACK) && sas_ss_flags(new_sp) == 0) { | 345 | if (ka->sa.sa_flags & SA_ONSTACK) { |
| 346 | new_sp = current->sas_ss_sp + current->sas_ss_size; | 346 | int onstack = sas_ss_flags(new_sp); |
| 347 | /* | 347 | |
| 348 | * We need to check for the register stack being on the signal stack | 348 | if (onstack == 0) { |
| 349 | * separately, because it's switched separately (memory stack is switched | 349 | new_sp = current->sas_ss_sp + current->sas_ss_size; |
| 350 | * in the kernel, register stack is switched in the signal trampoline). | 350 | /* |
| 351 | */ | 351 | * We need to check for the register stack being on the |
| 352 | if (!rbs_on_sig_stack(scr->pt.ar_bspstore)) | 352 | * signal stack separately, because it's switched |
| 353 | new_rbs = (current->sas_ss_sp + sizeof(long) - 1) & ~(sizeof(long) - 1); | 353 | * separately (memory stack is switched in the kernel, |
| 354 | * register stack is switched in the signal trampoline). | ||
| 355 | */ | ||
| 356 | if (!rbs_on_sig_stack(scr->pt.ar_bspstore)) | ||
| 357 | new_rbs = ALIGN(current->sas_ss_sp, | ||
| 358 | sizeof(long)); | ||
| 359 | } else if (onstack == SS_ONSTACK) { | ||
| 360 | unsigned long check_sp; | ||
| 361 | |||
| 362 | /* | ||
| 363 | * If we are on the alternate signal stack and would | ||
| 364 | * overflow it, don't. Return an always-bogus address | ||
| 365 | * instead so we will die with SIGSEGV. | ||
| 366 | */ | ||
| 367 | check_sp = (new_sp - sizeof(*frame)) & -STACK_ALIGN; | ||
| 368 | if (!likely(on_sig_stack(check_sp))) | ||
| 369 | return force_sigsegv_info(sig, (void __user *) | ||
| 370 | check_sp); | ||
| 371 | } | ||
| 354 | } | 372 | } |
| 355 | frame = (void __user *) ((new_sp - sizeof(*frame)) & -STACK_ALIGN); | 373 | frame = (void __user *) ((new_sp - sizeof(*frame)) & -STACK_ALIGN); |
| 356 | 374 | ||
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c index 52f70bbc192a..6903361d11a5 100644 --- a/arch/ia64/kernel/unaligned.c +++ b/arch/ia64/kernel/unaligned.c | |||
| @@ -28,7 +28,7 @@ extern int die_if_kernel(char *str, struct pt_regs *regs, long err); | |||
| 28 | #undef DEBUG_UNALIGNED_TRAP | 28 | #undef DEBUG_UNALIGNED_TRAP |
| 29 | 29 | ||
| 30 | #ifdef DEBUG_UNALIGNED_TRAP | 30 | #ifdef DEBUG_UNALIGNED_TRAP |
| 31 | # define DPRINT(a...) do { printk("%s %u: ", __FUNCTION__, __LINE__); printk (a); } while (0) | 31 | # define DPRINT(a...) do { printk("%s %u: ", __func__, __LINE__); printk (a); } while (0) |
| 32 | # define DDUMP(str,vp,len) dump(str, vp, len) | 32 | # define DDUMP(str,vp,len) dump(str, vp, len) |
| 33 | 33 | ||
| 34 | static void | 34 | static void |
| @@ -674,7 +674,7 @@ emulate_load_updates (update_t type, load_store_t ld, struct pt_regs *regs, unsi | |||
| 674 | * just in case. | 674 | * just in case. |
| 675 | */ | 675 | */ |
| 676 | if (ld.x6_op == 1 || ld.x6_op == 3) { | 676 | if (ld.x6_op == 1 || ld.x6_op == 3) { |
| 677 | printk(KERN_ERR "%s: register update on speculative load, error\n", __FUNCTION__); | 677 | printk(KERN_ERR "%s: register update on speculative load, error\n", __func__); |
| 678 | if (die_if_kernel("unaligned reference on speculative load with register update\n", | 678 | if (die_if_kernel("unaligned reference on speculative load with register update\n", |
| 679 | regs, 30)) | 679 | regs, 30)) |
| 680 | return; | 680 | return; |
| @@ -1104,7 +1104,7 @@ emulate_load_floatpair (unsigned long ifa, load_store_t ld, struct pt_regs *regs | |||
| 1104 | */ | 1104 | */ |
| 1105 | if (ld.x6_op == 1 || ld.x6_op == 3) | 1105 | if (ld.x6_op == 1 || ld.x6_op == 3) |
| 1106 | printk(KERN_ERR "%s: register update on speculative load pair, error\n", | 1106 | printk(KERN_ERR "%s: register update on speculative load pair, error\n", |
| 1107 | __FUNCTION__); | 1107 | __func__); |
| 1108 | 1108 | ||
| 1109 | setreg(ld.r3, ifa, 0, regs); | 1109 | setreg(ld.r3, ifa, 0, regs); |
| 1110 | } | 1110 | } |
diff --git a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c index c1bdb5131814..67810b77d998 100644 --- a/arch/ia64/kernel/unwind.c +++ b/arch/ia64/kernel/unwind.c | |||
| @@ -257,7 +257,7 @@ pt_regs_off (unsigned long reg) | |||
| 257 | off = unw.pt_regs_offsets[reg]; | 257 | off = unw.pt_regs_offsets[reg]; |
| 258 | 258 | ||
| 259 | if (off < 0) { | 259 | if (off < 0) { |
| 260 | UNW_DPRINT(0, "unwind.%s: bad scratch reg r%lu\n", __FUNCTION__, reg); | 260 | UNW_DPRINT(0, "unwind.%s: bad scratch reg r%lu\n", __func__, reg); |
| 261 | off = 0; | 261 | off = 0; |
| 262 | } | 262 | } |
| 263 | return (unsigned long) off; | 263 | return (unsigned long) off; |
| @@ -268,13 +268,13 @@ get_scratch_regs (struct unw_frame_info *info) | |||
| 268 | { | 268 | { |
| 269 | if (!info->pt) { | 269 | if (!info->pt) { |
| 270 | /* This should not happen with valid unwind info. */ | 270 | /* This should not happen with valid unwind info. */ |
| 271 | UNW_DPRINT(0, "unwind.%s: bad unwind info: resetting info->pt\n", __FUNCTION__); | 271 | UNW_DPRINT(0, "unwind.%s: bad unwind info: resetting info->pt\n", __func__); |
| 272 | if (info->flags & UNW_FLAG_INTERRUPT_FRAME) | 272 | if (info->flags & UNW_FLAG_INTERRUPT_FRAME) |
| 273 | info->pt = (unsigned long) ((struct pt_regs *) info->psp - 1); | 273 | info->pt = (unsigned long) ((struct pt_regs *) info->psp - 1); |
| 274 | else | 274 | else |
| 275 | info->pt = info->sp - 16; | 275 | info->pt = info->sp - 16; |
| 276 | } | 276 | } |
| 277 | UNW_DPRINT(3, "unwind.%s: sp 0x%lx pt 0x%lx\n", __FUNCTION__, info->sp, info->pt); | 277 | UNW_DPRINT(3, "unwind.%s: sp 0x%lx pt 0x%lx\n", __func__, info->sp, info->pt); |
| 278 | return (struct pt_regs *) info->pt; | 278 | return (struct pt_regs *) info->pt; |
| 279 | } | 279 | } |
| 280 | 280 | ||
| @@ -294,7 +294,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
| 294 | return 0; | 294 | return 0; |
| 295 | } | 295 | } |
| 296 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent r%u\n", | 296 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent r%u\n", |
| 297 | __FUNCTION__, regnum); | 297 | __func__, regnum); |
| 298 | return -1; | 298 | return -1; |
| 299 | } | 299 | } |
| 300 | 300 | ||
| @@ -341,7 +341,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
| 341 | { | 341 | { |
| 342 | UNW_DPRINT(0, "unwind.%s: %p outside of regstk " | 342 | UNW_DPRINT(0, "unwind.%s: %p outside of regstk " |
| 343 | "[0x%lx-0x%lx)\n", | 343 | "[0x%lx-0x%lx)\n", |
| 344 | __FUNCTION__, (void *) addr, | 344 | __func__, (void *) addr, |
| 345 | info->regstk.limit, | 345 | info->regstk.limit, |
| 346 | info->regstk.top); | 346 | info->regstk.top); |
| 347 | return -1; | 347 | return -1; |
| @@ -374,7 +374,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
| 374 | || (unsigned long) addr >= info->regstk.top) | 374 | || (unsigned long) addr >= info->regstk.top) |
| 375 | { | 375 | { |
| 376 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to access register outside " | 376 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to access register outside " |
| 377 | "of rbs\n", __FUNCTION__); | 377 | "of rbs\n", __func__); |
| 378 | return -1; | 378 | return -1; |
| 379 | } | 379 | } |
| 380 | if ((unsigned long) nat_addr >= info->regstk.top) | 380 | if ((unsigned long) nat_addr >= info->regstk.top) |
| @@ -385,7 +385,7 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char | |||
| 385 | if (write) { | 385 | if (write) { |
| 386 | if (read_only(addr)) { | 386 | if (read_only(addr)) { |
| 387 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 387 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
| 388 | __FUNCTION__); | 388 | __func__); |
| 389 | } else { | 389 | } else { |
| 390 | *addr = *val; | 390 | *addr = *val; |
| 391 | if (*nat) | 391 | if (*nat) |
| @@ -427,13 +427,13 @@ unw_access_br (struct unw_frame_info *info, int regnum, unsigned long *val, int | |||
| 427 | 427 | ||
| 428 | default: | 428 | default: |
| 429 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent b%u\n", | 429 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent b%u\n", |
| 430 | __FUNCTION__, regnum); | 430 | __func__, regnum); |
| 431 | return -1; | 431 | return -1; |
| 432 | } | 432 | } |
| 433 | if (write) | 433 | if (write) |
| 434 | if (read_only(addr)) { | 434 | if (read_only(addr)) { |
| 435 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 435 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
| 436 | __FUNCTION__); | 436 | __func__); |
| 437 | } else | 437 | } else |
| 438 | *addr = *val; | 438 | *addr = *val; |
| 439 | else | 439 | else |
| @@ -450,7 +450,7 @@ unw_access_fr (struct unw_frame_info *info, int regnum, struct ia64_fpreg *val, | |||
| 450 | 450 | ||
| 451 | if ((unsigned) (regnum - 2) >= 126) { | 451 | if ((unsigned) (regnum - 2) >= 126) { |
| 452 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent f%u\n", | 452 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent f%u\n", |
| 453 | __FUNCTION__, regnum); | 453 | __func__, regnum); |
| 454 | return -1; | 454 | return -1; |
| 455 | } | 455 | } |
| 456 | 456 | ||
| @@ -482,7 +482,7 @@ unw_access_fr (struct unw_frame_info *info, int regnum, struct ia64_fpreg *val, | |||
| 482 | if (write) | 482 | if (write) |
| 483 | if (read_only(addr)) { | 483 | if (read_only(addr)) { |
| 484 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 484 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
| 485 | __FUNCTION__); | 485 | __func__); |
| 486 | } else | 486 | } else |
| 487 | *addr = *val; | 487 | *addr = *val; |
| 488 | else | 488 | else |
| @@ -572,14 +572,14 @@ unw_access_ar (struct unw_frame_info *info, int regnum, unsigned long *val, int | |||
| 572 | 572 | ||
| 573 | default: | 573 | default: |
| 574 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent ar%u\n", | 574 | UNW_DPRINT(0, "unwind.%s: trying to access non-existent ar%u\n", |
| 575 | __FUNCTION__, regnum); | 575 | __func__, regnum); |
| 576 | return -1; | 576 | return -1; |
| 577 | } | 577 | } |
| 578 | 578 | ||
| 579 | if (write) { | 579 | if (write) { |
| 580 | if (read_only(addr)) { | 580 | if (read_only(addr)) { |
| 581 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 581 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
| 582 | __FUNCTION__); | 582 | __func__); |
| 583 | } else | 583 | } else |
| 584 | *addr = *val; | 584 | *addr = *val; |
| 585 | } else | 585 | } else |
| @@ -600,7 +600,7 @@ unw_access_pr (struct unw_frame_info *info, unsigned long *val, int write) | |||
| 600 | if (write) { | 600 | if (write) { |
| 601 | if (read_only(addr)) { | 601 | if (read_only(addr)) { |
| 602 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", | 602 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", |
| 603 | __FUNCTION__); | 603 | __func__); |
| 604 | } else | 604 | } else |
| 605 | *addr = *val; | 605 | *addr = *val; |
| 606 | } else | 606 | } else |
| @@ -699,7 +699,7 @@ decode_abreg (unsigned char abreg, int memory) | |||
| 699 | default: | 699 | default: |
| 700 | break; | 700 | break; |
| 701 | } | 701 | } |
| 702 | UNW_DPRINT(0, "unwind.%s: bad abreg=0x%x\n", __FUNCTION__, abreg); | 702 | UNW_DPRINT(0, "unwind.%s: bad abreg=0x%x\n", __func__, abreg); |
| 703 | return UNW_REG_LC; | 703 | return UNW_REG_LC; |
| 704 | } | 704 | } |
| 705 | 705 | ||
| @@ -739,7 +739,7 @@ spill_next_when (struct unw_reg_info **regp, struct unw_reg_info *lim, unw_word | |||
| 739 | return; | 739 | return; |
| 740 | } | 740 | } |
| 741 | } | 741 | } |
| 742 | UNW_DPRINT(0, "unwind.%s: excess spill!\n", __FUNCTION__); | 742 | UNW_DPRINT(0, "unwind.%s: excess spill!\n", __func__); |
| 743 | } | 743 | } |
| 744 | 744 | ||
| 745 | static inline void | 745 | static inline void |
| @@ -855,11 +855,11 @@ desc_abi (unsigned char abi, unsigned char context, struct unw_state_record *sr) | |||
| 855 | { | 855 | { |
| 856 | if (abi == 3 && context == 'i') { | 856 | if (abi == 3 && context == 'i') { |
| 857 | sr->flags |= UNW_FLAG_INTERRUPT_FRAME; | 857 | sr->flags |= UNW_FLAG_INTERRUPT_FRAME; |
| 858 | UNW_DPRINT(3, "unwind.%s: interrupt frame\n", __FUNCTION__); | 858 | UNW_DPRINT(3, "unwind.%s: interrupt frame\n", __func__); |
| 859 | } | 859 | } |
| 860 | else | 860 | else |
| 861 | UNW_DPRINT(0, "unwind%s: ignoring unwabi(abi=0x%x,context=0x%x)\n", | 861 | UNW_DPRINT(0, "unwind%s: ignoring unwabi(abi=0x%x,context=0x%x)\n", |
| 862 | __FUNCTION__, abi, context); | 862 | __func__, abi, context); |
| 863 | } | 863 | } |
| 864 | 864 | ||
| 865 | static inline void | 865 | static inline void |
| @@ -1347,7 +1347,7 @@ script_emit (struct unw_script *script, struct unw_insn insn) | |||
| 1347 | { | 1347 | { |
| 1348 | if (script->count >= UNW_MAX_SCRIPT_LEN) { | 1348 | if (script->count >= UNW_MAX_SCRIPT_LEN) { |
| 1349 | UNW_DPRINT(0, "unwind.%s: script exceeds maximum size of %u instructions!\n", | 1349 | UNW_DPRINT(0, "unwind.%s: script exceeds maximum size of %u instructions!\n", |
| 1350 | __FUNCTION__, UNW_MAX_SCRIPT_LEN); | 1350 | __func__, UNW_MAX_SCRIPT_LEN); |
| 1351 | return; | 1351 | return; |
| 1352 | } | 1352 | } |
| 1353 | script->insn[script->count++] = insn; | 1353 | script->insn[script->count++] = insn; |
| @@ -1389,7 +1389,7 @@ emit_nat_info (struct unw_state_record *sr, int i, struct unw_script *script) | |||
| 1389 | 1389 | ||
| 1390 | default: | 1390 | default: |
| 1391 | UNW_DPRINT(0, "unwind.%s: don't know how to emit nat info for where = %u\n", | 1391 | UNW_DPRINT(0, "unwind.%s: don't know how to emit nat info for where = %u\n", |
| 1392 | __FUNCTION__, r->where); | 1392 | __func__, r->where); |
| 1393 | return; | 1393 | return; |
| 1394 | } | 1394 | } |
| 1395 | insn.opc = opc; | 1395 | insn.opc = opc; |
| @@ -1446,7 +1446,7 @@ compile_reg (struct unw_state_record *sr, int i, struct unw_script *script) | |||
| 1446 | val = offsetof(struct pt_regs, f6) + 16*(rval - 6); | 1446 | val = offsetof(struct pt_regs, f6) + 16*(rval - 6); |
| 1447 | else | 1447 | else |
| 1448 | UNW_DPRINT(0, "unwind.%s: kernel may not touch f%lu\n", | 1448 | UNW_DPRINT(0, "unwind.%s: kernel may not touch f%lu\n", |
| 1449 | __FUNCTION__, rval); | 1449 | __func__, rval); |
| 1450 | } | 1450 | } |
| 1451 | break; | 1451 | break; |
| 1452 | 1452 | ||
| @@ -1474,7 +1474,7 @@ compile_reg (struct unw_state_record *sr, int i, struct unw_script *script) | |||
| 1474 | 1474 | ||
| 1475 | default: | 1475 | default: |
| 1476 | UNW_DPRINT(0, "unwind%s: register %u has unexpected `where' value of %u\n", | 1476 | UNW_DPRINT(0, "unwind%s: register %u has unexpected `where' value of %u\n", |
| 1477 | __FUNCTION__, i, r->where); | 1477 | __func__, i, r->where); |
| 1478 | break; | 1478 | break; |
| 1479 | } | 1479 | } |
| 1480 | insn.opc = opc; | 1480 | insn.opc = opc; |
| @@ -1547,10 +1547,10 @@ build_script (struct unw_frame_info *info) | |||
| 1547 | r->when = UNW_WHEN_NEVER; | 1547 | r->when = UNW_WHEN_NEVER; |
| 1548 | sr.pr_val = info->pr; | 1548 | sr.pr_val = info->pr; |
| 1549 | 1549 | ||
| 1550 | UNW_DPRINT(3, "unwind.%s: ip 0x%lx\n", __FUNCTION__, ip); | 1550 | UNW_DPRINT(3, "unwind.%s: ip 0x%lx\n", __func__, ip); |
| 1551 | script = script_new(ip); | 1551 | script = script_new(ip); |
| 1552 | if (!script) { | 1552 | if (!script) { |
| 1553 | UNW_DPRINT(0, "unwind.%s: failed to create unwind script\n", __FUNCTION__); | 1553 | UNW_DPRINT(0, "unwind.%s: failed to create unwind script\n", __func__); |
| 1554 | STAT(unw.stat.script.build_time += ia64_get_itc() - start); | 1554 | STAT(unw.stat.script.build_time += ia64_get_itc() - start); |
| 1555 | return NULL; | 1555 | return NULL; |
| 1556 | } | 1556 | } |
| @@ -1569,7 +1569,7 @@ build_script (struct unw_frame_info *info) | |||
| 1569 | if (!e) { | 1569 | if (!e) { |
| 1570 | /* no info, return default unwinder (leaf proc, no mem stack, no saved regs) */ | 1570 | /* no info, return default unwinder (leaf proc, no mem stack, no saved regs) */ |
| 1571 | UNW_DPRINT(1, "unwind.%s: no unwind info for ip=0x%lx (prev ip=0x%lx)\n", | 1571 | UNW_DPRINT(1, "unwind.%s: no unwind info for ip=0x%lx (prev ip=0x%lx)\n", |
| 1572 | __FUNCTION__, ip, unw.cache[info->prev_script].ip); | 1572 | __func__, ip, unw.cache[info->prev_script].ip); |
| 1573 | sr.curr.reg[UNW_REG_RP].where = UNW_WHERE_BR; | 1573 | sr.curr.reg[UNW_REG_RP].where = UNW_WHERE_BR; |
| 1574 | sr.curr.reg[UNW_REG_RP].when = -1; | 1574 | sr.curr.reg[UNW_REG_RP].when = -1; |
| 1575 | sr.curr.reg[UNW_REG_RP].val = 0; | 1575 | sr.curr.reg[UNW_REG_RP].val = 0; |
| @@ -1618,13 +1618,13 @@ build_script (struct unw_frame_info *info) | |||
| 1618 | sr.curr.reg[UNW_REG_RP].when = -1; | 1618 | sr.curr.reg[UNW_REG_RP].when = -1; |
| 1619 | sr.curr.reg[UNW_REG_RP].val = sr.return_link_reg; | 1619 | sr.curr.reg[UNW_REG_RP].val = sr.return_link_reg; |
| 1620 | UNW_DPRINT(1, "unwind.%s: using default for rp at ip=0x%lx where=%d val=0x%lx\n", | 1620 | UNW_DPRINT(1, "unwind.%s: using default for rp at ip=0x%lx where=%d val=0x%lx\n", |
| 1621 | __FUNCTION__, ip, sr.curr.reg[UNW_REG_RP].where, | 1621 | __func__, ip, sr.curr.reg[UNW_REG_RP].where, |
| 1622 | sr.curr.reg[UNW_REG_RP].val); | 1622 | sr.curr.reg[UNW_REG_RP].val); |
| 1623 | } | 1623 | } |
| 1624 | 1624 | ||
| 1625 | #ifdef UNW_DEBUG | 1625 | #ifdef UNW_DEBUG |
| 1626 | UNW_DPRINT(1, "unwind.%s: state record for func 0x%lx, t=%u:\n", | 1626 | UNW_DPRINT(1, "unwind.%s: state record for func 0x%lx, t=%u:\n", |
| 1627 | __FUNCTION__, table->segment_base + e->start_offset, sr.when_target); | 1627 | __func__, table->segment_base + e->start_offset, sr.when_target); |
| 1628 | for (r = sr.curr.reg; r < sr.curr.reg + UNW_NUM_REGS; ++r) { | 1628 | for (r = sr.curr.reg; r < sr.curr.reg + UNW_NUM_REGS; ++r) { |
| 1629 | if (r->where != UNW_WHERE_NONE || r->when != UNW_WHEN_NEVER) { | 1629 | if (r->where != UNW_WHERE_NONE || r->when != UNW_WHEN_NEVER) { |
| 1630 | UNW_DPRINT(1, " %s <- ", unw.preg_name[r - sr.curr.reg]); | 1630 | UNW_DPRINT(1, " %s <- ", unw.preg_name[r - sr.curr.reg]); |
| @@ -1746,7 +1746,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) | |||
| 1746 | } else { | 1746 | } else { |
| 1747 | s[dst] = 0; | 1747 | s[dst] = 0; |
| 1748 | UNW_DPRINT(0, "unwind.%s: no state->pt, dst=%ld, val=%ld\n", | 1748 | UNW_DPRINT(0, "unwind.%s: no state->pt, dst=%ld, val=%ld\n", |
| 1749 | __FUNCTION__, dst, val); | 1749 | __func__, dst, val); |
| 1750 | } | 1750 | } |
| 1751 | break; | 1751 | break; |
| 1752 | 1752 | ||
| @@ -1756,7 +1756,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) | |||
| 1756 | else { | 1756 | else { |
| 1757 | s[dst] = 0; | 1757 | s[dst] = 0; |
| 1758 | UNW_DPRINT(0, "unwind.%s: UNW_INSN_MOVE_CONST bad val=%ld\n", | 1758 | UNW_DPRINT(0, "unwind.%s: UNW_INSN_MOVE_CONST bad val=%ld\n", |
| 1759 | __FUNCTION__, val); | 1759 | __func__, val); |
| 1760 | } | 1760 | } |
| 1761 | break; | 1761 | break; |
| 1762 | 1762 | ||
| @@ -1791,7 +1791,7 @@ run_script (struct unw_script *script, struct unw_frame_info *state) | |||
| 1791 | || s[val] < TASK_SIZE) | 1791 | || s[val] < TASK_SIZE) |
| 1792 | { | 1792 | { |
| 1793 | UNW_DPRINT(0, "unwind.%s: rejecting bad psp=0x%lx\n", | 1793 | UNW_DPRINT(0, "unwind.%s: rejecting bad psp=0x%lx\n", |
| 1794 | __FUNCTION__, s[val]); | 1794 | __func__, s[val]); |
| 1795 | break; | 1795 | break; |
| 1796 | } | 1796 | } |
| 1797 | #endif | 1797 | #endif |
| @@ -1825,7 +1825,7 @@ find_save_locs (struct unw_frame_info *info) | |||
| 1825 | if ((info->ip & (local_cpu_data->unimpl_va_mask | 0xf)) || info->ip < TASK_SIZE) { | 1825 | if ((info->ip & (local_cpu_data->unimpl_va_mask | 0xf)) || info->ip < TASK_SIZE) { |
| 1826 | /* don't let obviously bad addresses pollute the cache */ | 1826 | /* don't let obviously bad addresses pollute the cache */ |
| 1827 | /* FIXME: should really be level 0 but it occurs too often. KAO */ | 1827 | /* FIXME: should really be level 0 but it occurs too often. KAO */ |
| 1828 | UNW_DPRINT(1, "unwind.%s: rejecting bad ip=0x%lx\n", __FUNCTION__, info->ip); | 1828 | UNW_DPRINT(1, "unwind.%s: rejecting bad ip=0x%lx\n", __func__, info->ip); |
| 1829 | info->rp_loc = NULL; | 1829 | info->rp_loc = NULL; |
| 1830 | return -1; | 1830 | return -1; |
| 1831 | } | 1831 | } |
| @@ -1838,7 +1838,7 @@ find_save_locs (struct unw_frame_info *info) | |||
| 1838 | spin_unlock_irqrestore(&unw.lock, flags); | 1838 | spin_unlock_irqrestore(&unw.lock, flags); |
| 1839 | UNW_DPRINT(0, | 1839 | UNW_DPRINT(0, |
| 1840 | "unwind.%s: failed to locate/build unwind script for ip %lx\n", | 1840 | "unwind.%s: failed to locate/build unwind script for ip %lx\n", |
| 1841 | __FUNCTION__, info->ip); | 1841 | __func__, info->ip); |
| 1842 | return -1; | 1842 | return -1; |
| 1843 | } | 1843 | } |
| 1844 | have_write_lock = 1; | 1844 | have_write_lock = 1; |
| @@ -1882,21 +1882,21 @@ unw_unwind (struct unw_frame_info *info) | |||
| 1882 | if (!unw_valid(info, info->rp_loc)) { | 1882 | if (!unw_valid(info, info->rp_loc)) { |
| 1883 | /* FIXME: should really be level 0 but it occurs too often. KAO */ | 1883 | /* FIXME: should really be level 0 but it occurs too often. KAO */ |
| 1884 | UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", | 1884 | UNW_DPRINT(1, "unwind.%s: failed to locate return link (ip=0x%lx)!\n", |
| 1885 | __FUNCTION__, info->ip); | 1885 | __func__, info->ip); |
| 1886 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1886 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 1887 | return -1; | 1887 | return -1; |
| 1888 | } | 1888 | } |
| 1889 | /* restore the ip */ | 1889 | /* restore the ip */ |
| 1890 | ip = info->ip = *info->rp_loc; | 1890 | ip = info->ip = *info->rp_loc; |
| 1891 | if (ip < GATE_ADDR) { | 1891 | if (ip < GATE_ADDR) { |
| 1892 | UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __FUNCTION__, ip); | 1892 | UNW_DPRINT(2, "unwind.%s: reached user-space (ip=0x%lx)\n", __func__, ip); |
| 1893 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1893 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 1894 | return -1; | 1894 | return -1; |
| 1895 | } | 1895 | } |
| 1896 | 1896 | ||
| 1897 | /* validate the previous stack frame pointer */ | 1897 | /* validate the previous stack frame pointer */ |
| 1898 | if (!unw_valid(info, info->pfs_loc)) { | 1898 | if (!unw_valid(info, info->pfs_loc)) { |
| 1899 | UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __FUNCTION__); | 1899 | UNW_DPRINT(0, "unwind.%s: failed to locate ar.pfs!\n", __func__); |
| 1900 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1900 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 1901 | return -1; | 1901 | return -1; |
| 1902 | } | 1902 | } |
| @@ -1912,13 +1912,13 @@ unw_unwind (struct unw_frame_info *info) | |||
| 1912 | num_regs = *info->cfm_loc & 0x7f; /* size of frame */ | 1912 | num_regs = *info->cfm_loc & 0x7f; /* size of frame */ |
| 1913 | info->pfs_loc = | 1913 | info->pfs_loc = |
| 1914 | (unsigned long *) (info->pt + offsetof(struct pt_regs, ar_pfs)); | 1914 | (unsigned long *) (info->pt + offsetof(struct pt_regs, ar_pfs)); |
| 1915 | UNW_DPRINT(3, "unwind.%s: interrupt_frame pt 0x%lx\n", __FUNCTION__, info->pt); | 1915 | UNW_DPRINT(3, "unwind.%s: interrupt_frame pt 0x%lx\n", __func__, info->pt); |
| 1916 | } else | 1916 | } else |
| 1917 | num_regs = (*info->cfm_loc >> 7) & 0x7f; /* size of locals */ | 1917 | num_regs = (*info->cfm_loc >> 7) & 0x7f; /* size of locals */ |
| 1918 | info->bsp = (unsigned long) ia64_rse_skip_regs((unsigned long *) info->bsp, -num_regs); | 1918 | info->bsp = (unsigned long) ia64_rse_skip_regs((unsigned long *) info->bsp, -num_regs); |
| 1919 | if (info->bsp < info->regstk.limit || info->bsp > info->regstk.top) { | 1919 | if (info->bsp < info->regstk.limit || info->bsp > info->regstk.top) { |
| 1920 | UNW_DPRINT(0, "unwind.%s: bsp (0x%lx) out of range [0x%lx-0x%lx]\n", | 1920 | UNW_DPRINT(0, "unwind.%s: bsp (0x%lx) out of range [0x%lx-0x%lx]\n", |
| 1921 | __FUNCTION__, info->bsp, info->regstk.limit, info->regstk.top); | 1921 | __func__, info->bsp, info->regstk.limit, info->regstk.top); |
| 1922 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1922 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 1923 | return -1; | 1923 | return -1; |
| 1924 | } | 1924 | } |
| @@ -1927,14 +1927,14 @@ unw_unwind (struct unw_frame_info *info) | |||
| 1927 | info->sp = info->psp; | 1927 | info->sp = info->psp; |
| 1928 | if (info->sp < info->memstk.top || info->sp > info->memstk.limit) { | 1928 | if (info->sp < info->memstk.top || info->sp > info->memstk.limit) { |
| 1929 | UNW_DPRINT(0, "unwind.%s: sp (0x%lx) out of range [0x%lx-0x%lx]\n", | 1929 | UNW_DPRINT(0, "unwind.%s: sp (0x%lx) out of range [0x%lx-0x%lx]\n", |
| 1930 | __FUNCTION__, info->sp, info->memstk.top, info->memstk.limit); | 1930 | __func__, info->sp, info->memstk.top, info->memstk.limit); |
| 1931 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1931 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 1932 | return -1; | 1932 | return -1; |
| 1933 | } | 1933 | } |
| 1934 | 1934 | ||
| 1935 | if (info->ip == prev_ip && info->sp == prev_sp && info->bsp == prev_bsp) { | 1935 | if (info->ip == prev_ip && info->sp == prev_sp && info->bsp == prev_bsp) { |
| 1936 | UNW_DPRINT(0, "unwind.%s: ip, sp, bsp unchanged; stopping here (ip=0x%lx)\n", | 1936 | UNW_DPRINT(0, "unwind.%s: ip, sp, bsp unchanged; stopping here (ip=0x%lx)\n", |
| 1937 | __FUNCTION__, ip); | 1937 | __func__, ip); |
| 1938 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); | 1938 | STAT(unw.stat.api.unwind_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 1939 | return -1; | 1939 | return -1; |
| 1940 | } | 1940 | } |
| @@ -1961,7 +1961,7 @@ unw_unwind_to_user (struct unw_frame_info *info) | |||
| 1961 | if ((long)((unsigned long)info->task + IA64_STK_OFFSET - sp) | 1961 | if ((long)((unsigned long)info->task + IA64_STK_OFFSET - sp) |
| 1962 | < IA64_PT_REGS_SIZE) { | 1962 | < IA64_PT_REGS_SIZE) { |
| 1963 | UNW_DPRINT(0, "unwind.%s: ran off the top of the kernel stack\n", | 1963 | UNW_DPRINT(0, "unwind.%s: ran off the top of the kernel stack\n", |
| 1964 | __FUNCTION__); | 1964 | __func__); |
| 1965 | break; | 1965 | break; |
| 1966 | } | 1966 | } |
| 1967 | if (unw_is_intr_frame(info) && | 1967 | if (unw_is_intr_frame(info) && |
| @@ -1971,13 +1971,13 @@ unw_unwind_to_user (struct unw_frame_info *info) | |||
| 1971 | unw_get_rp(info, &ip); | 1971 | unw_get_rp(info, &ip); |
| 1972 | UNW_DPRINT(0, "unwind.%s: failed to read " | 1972 | UNW_DPRINT(0, "unwind.%s: failed to read " |
| 1973 | "predicate register (ip=0x%lx)\n", | 1973 | "predicate register (ip=0x%lx)\n", |
| 1974 | __FUNCTION__, ip); | 1974 | __func__, ip); |
| 1975 | return -1; | 1975 | return -1; |
| 1976 | } | 1976 | } |
| 1977 | } while (unw_unwind(info) >= 0); | 1977 | } while (unw_unwind(info) >= 0); |
| 1978 | unw_get_ip(info, &ip); | 1978 | unw_get_ip(info, &ip); |
| 1979 | UNW_DPRINT(0, "unwind.%s: failed to unwind to user-level (ip=0x%lx)\n", | 1979 | UNW_DPRINT(0, "unwind.%s: failed to unwind to user-level (ip=0x%lx)\n", |
| 1980 | __FUNCTION__, ip); | 1980 | __func__, ip); |
| 1981 | return -1; | 1981 | return -1; |
| 1982 | } | 1982 | } |
| 1983 | EXPORT_SYMBOL(unw_unwind_to_user); | 1983 | EXPORT_SYMBOL(unw_unwind_to_user); |
| @@ -2028,7 +2028,7 @@ init_frame_info (struct unw_frame_info *info, struct task_struct *t, | |||
| 2028 | " pr 0x%lx\n" | 2028 | " pr 0x%lx\n" |
| 2029 | " sw 0x%lx\n" | 2029 | " sw 0x%lx\n" |
| 2030 | " sp 0x%lx\n", | 2030 | " sp 0x%lx\n", |
| 2031 | __FUNCTION__, (unsigned long) t, rbslimit, rbstop, stktop, stklimit, | 2031 | __func__, (unsigned long) t, rbslimit, rbstop, stktop, stklimit, |
| 2032 | info->pr, (unsigned long) info->sw, info->sp); | 2032 | info->pr, (unsigned long) info->sw, info->sp); |
| 2033 | STAT(unw.stat.api.init_time += ia64_get_itc() - start; local_irq_restore(flags)); | 2033 | STAT(unw.stat.api.init_time += ia64_get_itc() - start; local_irq_restore(flags)); |
| 2034 | } | 2034 | } |
| @@ -2047,7 +2047,7 @@ unw_init_frame_info (struct unw_frame_info *info, struct task_struct *t, struct | |||
| 2047 | " bsp 0x%lx\n" | 2047 | " bsp 0x%lx\n" |
| 2048 | " sol 0x%lx\n" | 2048 | " sol 0x%lx\n" |
| 2049 | " ip 0x%lx\n", | 2049 | " ip 0x%lx\n", |
| 2050 | __FUNCTION__, info->bsp, sol, info->ip); | 2050 | __func__, info->bsp, sol, info->ip); |
| 2051 | find_save_locs(info); | 2051 | find_save_locs(info); |
| 2052 | } | 2052 | } |
| 2053 | 2053 | ||
| @@ -2058,7 +2058,7 @@ unw_init_from_blocked_task (struct unw_frame_info *info, struct task_struct *t) | |||
| 2058 | { | 2058 | { |
| 2059 | struct switch_stack *sw = (struct switch_stack *) (t->thread.ksp + 16); | 2059 | struct switch_stack *sw = (struct switch_stack *) (t->thread.ksp + 16); |
| 2060 | 2060 | ||
| 2061 | UNW_DPRINT(1, "unwind.%s\n", __FUNCTION__); | 2061 | UNW_DPRINT(1, "unwind.%s\n", __func__); |
| 2062 | unw_init_frame_info(info, t, sw); | 2062 | unw_init_frame_info(info, t, sw); |
| 2063 | } | 2063 | } |
| 2064 | EXPORT_SYMBOL(unw_init_from_blocked_task); | 2064 | EXPORT_SYMBOL(unw_init_from_blocked_task); |
| @@ -2088,7 +2088,7 @@ unw_add_unwind_table (const char *name, unsigned long segment_base, unsigned lon | |||
| 2088 | 2088 | ||
| 2089 | if (end - start <= 0) { | 2089 | if (end - start <= 0) { |
| 2090 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to insert empty unwind table\n", | 2090 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to insert empty unwind table\n", |
| 2091 | __FUNCTION__); | 2091 | __func__); |
| 2092 | return NULL; | 2092 | return NULL; |
| 2093 | } | 2093 | } |
| 2094 | 2094 | ||
| @@ -2119,14 +2119,14 @@ unw_remove_unwind_table (void *handle) | |||
| 2119 | 2119 | ||
| 2120 | if (!handle) { | 2120 | if (!handle) { |
| 2121 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to remove non-existent unwind table\n", | 2121 | UNW_DPRINT(0, "unwind.%s: ignoring attempt to remove non-existent unwind table\n", |
| 2122 | __FUNCTION__); | 2122 | __func__); |
| 2123 | return; | 2123 | return; |
| 2124 | } | 2124 | } |
| 2125 | 2125 | ||
| 2126 | table = handle; | 2126 | table = handle; |
| 2127 | if (table == &unw.kernel_table) { | 2127 | if (table == &unw.kernel_table) { |
| 2128 | UNW_DPRINT(0, "unwind.%s: sorry, freeing the kernel's unwind table is a " | 2128 | UNW_DPRINT(0, "unwind.%s: sorry, freeing the kernel's unwind table is a " |
| 2129 | "no-can-do!\n", __FUNCTION__); | 2129 | "no-can-do!\n", __func__); |
| 2130 | return; | 2130 | return; |
| 2131 | } | 2131 | } |
| 2132 | 2132 | ||
| @@ -2139,7 +2139,7 @@ unw_remove_unwind_table (void *handle) | |||
| 2139 | break; | 2139 | break; |
| 2140 | if (!prev) { | 2140 | if (!prev) { |
| 2141 | UNW_DPRINT(0, "unwind.%s: failed to find unwind table %p\n", | 2141 | UNW_DPRINT(0, "unwind.%s: failed to find unwind table %p\n", |
| 2142 | __FUNCTION__, (void *) table); | 2142 | __func__, (void *) table); |
| 2143 | spin_unlock_irqrestore(&unw.lock, flags); | 2143 | spin_unlock_irqrestore(&unw.lock, flags); |
| 2144 | return; | 2144 | return; |
| 2145 | } | 2145 | } |
| @@ -2185,7 +2185,7 @@ create_gate_table (void) | |||
| 2185 | } | 2185 | } |
| 2186 | 2186 | ||
| 2187 | if (!punw) { | 2187 | if (!punw) { |
| 2188 | printk("%s: failed to find gate DSO's unwind table!\n", __FUNCTION__); | 2188 | printk("%s: failed to find gate DSO's unwind table!\n", __func__); |
| 2189 | return 0; | 2189 | return 0; |
| 2190 | } | 2190 | } |
| 2191 | 2191 | ||
| @@ -2202,7 +2202,7 @@ create_gate_table (void) | |||
| 2202 | unw.gate_table = kmalloc(size, GFP_KERNEL); | 2202 | unw.gate_table = kmalloc(size, GFP_KERNEL); |
| 2203 | if (!unw.gate_table) { | 2203 | if (!unw.gate_table) { |
| 2204 | unw.gate_table_size = 0; | 2204 | unw.gate_table_size = 0; |
| 2205 | printk(KERN_ERR "%s: unable to create unwind data for gate page!\n", __FUNCTION__); | 2205 | printk(KERN_ERR "%s: unable to create unwind data for gate page!\n", __func__); |
| 2206 | return 0; | 2206 | return 0; |
| 2207 | } | 2207 | } |
| 2208 | unw.gate_table_size = size; | 2208 | unw.gate_table_size = size; |
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 3e69881648a3..23088bed111e 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
| @@ -26,7 +26,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap) | |||
| 26 | if (!user_mode(regs)) { | 26 | if (!user_mode(regs)) { |
| 27 | /* kprobe_running() needs smp_processor_id() */ | 27 | /* kprobe_running() needs smp_processor_id() */ |
| 28 | preempt_disable(); | 28 | preempt_disable(); |
| 29 | if (kprobe_running() && kprobes_fault_handler(regs, trap)) | 29 | if (kprobe_running() && kprobe_fault_handler(regs, trap)) |
| 30 | ret = 1; | 30 | ret = 1; |
| 31 | preempt_enable(); | 31 | preempt_enable(); |
| 32 | } | 32 | } |
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 25aef6211a54..a4ca657c72c6 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
| @@ -714,7 +714,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
| 714 | 714 | ||
| 715 | if (ret) | 715 | if (ret) |
| 716 | printk("%s: Problem encountered in __add_pages() as ret=%d\n", | 716 | printk("%s: Problem encountered in __add_pages() as ret=%d\n", |
| 717 | __FUNCTION__, ret); | 717 | __func__, ret); |
| 718 | 718 | ||
| 719 | return ret; | 719 | return ret; |
| 720 | } | 720 | } |
diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c index 245dc1fedc24..f5959c0c1810 100644 --- a/arch/ia64/pci/fixup.c +++ b/arch/ia64/pci/fixup.c | |||
| @@ -63,7 +63,7 @@ static void __devinit pci_fixup_video(struct pci_dev *pdev) | |||
| 63 | pci_read_config_word(pdev, PCI_COMMAND, &config); | 63 | pci_read_config_word(pdev, PCI_COMMAND, &config); |
| 64 | if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { | 64 | if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { |
| 65 | pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; | 65 | pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; |
| 66 | printk(KERN_DEBUG "Boot video device is %s\n", pci_name(pdev)); | 66 | dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n"); |
| 67 | } | 67 | } |
| 68 | } | 68 | } |
| 69 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video); | 69 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video); |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 8fd7e825192b..e282c348dcde 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
| @@ -765,7 +765,7 @@ static void __init set_pci_cacheline_size(void) | |||
| 765 | status = ia64_pal_cache_summary(&levels, &unique_caches); | 765 | status = ia64_pal_cache_summary(&levels, &unique_caches); |
| 766 | if (status != 0) { | 766 | if (status != 0) { |
| 767 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed " | 767 | printk(KERN_ERR "%s: ia64_pal_cache_summary() failed " |
| 768 | "(status=%ld)\n", __FUNCTION__, status); | 768 | "(status=%ld)\n", __func__, status); |
| 769 | return; | 769 | return; |
| 770 | } | 770 | } |
| 771 | 771 | ||
| @@ -773,7 +773,7 @@ static void __init set_pci_cacheline_size(void) | |||
| 773 | /* cache_type (data_or_unified)= */ 2, &cci); | 773 | /* cache_type (data_or_unified)= */ 2, &cci); |
| 774 | if (status != 0) { | 774 | if (status != 0) { |
| 775 | printk(KERN_ERR "%s: ia64_pal_cache_config_info() failed " | 775 | printk(KERN_ERR "%s: ia64_pal_cache_config_info() failed " |
| 776 | "(status=%ld)\n", __FUNCTION__, status); | 776 | "(status=%ld)\n", __func__, status); |
| 777 | return; | 777 | return; |
| 778 | } | 778 | } |
| 779 | pci_cache_line_size = (1 << cci.pcci_line_size) / 4; | 779 | pci_cache_line_size = (1 << cci.pcci_line_size) / 4; |
diff --git a/arch/ia64/sn/kernel/huberror.c b/arch/ia64/sn/kernel/huberror.c index b663168da55c..0101c7924a4d 100644 --- a/arch/ia64/sn/kernel/huberror.c +++ b/arch/ia64/sn/kernel/huberror.c | |||
| @@ -37,7 +37,7 @@ static irqreturn_t hub_eint_handler(int irq, void *arg) | |||
| 37 | (u64) nasid, 0, 0, 0, 0, 0, 0); | 37 | (u64) nasid, 0, 0, 0, 0, 0, 0); |
| 38 | 38 | ||
| 39 | if ((int)ret_stuff.v0) | 39 | if ((int)ret_stuff.v0) |
| 40 | panic("%s: Fatal %s Error", __FUNCTION__, | 40 | panic("%s: Fatal %s Error", __func__, |
| 41 | ((nasid & 1) ? "TIO" : "HUBII")); | 41 | ((nasid & 1) ? "TIO" : "HUBII")); |
| 42 | 42 | ||
| 43 | if (!(nasid & 1)) /* Not a TIO, handle CRB errors */ | 43 | if (!(nasid & 1)) /* Not a TIO, handle CRB errors */ |
| @@ -48,7 +48,7 @@ static irqreturn_t hub_eint_handler(int irq, void *arg) | |||
| 48 | (u64) nasid, 0, 0, 0, 0, 0, 0); | 48 | (u64) nasid, 0, 0, 0, 0, 0, 0); |
| 49 | 49 | ||
| 50 | if ((int)ret_stuff.v0) | 50 | if ((int)ret_stuff.v0) |
| 51 | panic("%s: Fatal TIO Error", __FUNCTION__); | 51 | panic("%s: Fatal TIO Error", __func__); |
| 52 | } else | 52 | } else |
| 53 | bte_error_handler((unsigned long)NODEPDA(nasid_to_cnodeid(nasid))); | 53 | bte_error_handler((unsigned long)NODEPDA(nasid_to_cnodeid(nasid))); |
| 54 | 54 | ||
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c index 3c7178f5dce8..6568942a95f0 100644 --- a/arch/ia64/sn/kernel/io_acpi_init.c +++ b/arch/ia64/sn/kernel/io_acpi_init.c | |||
| @@ -133,7 +133,7 @@ sn_get_bussoft_ptr(struct pci_bus *bus) | |||
| 133 | if (ACPI_FAILURE(status)) { | 133 | if (ACPI_FAILURE(status)) { |
| 134 | printk(KERN_ERR "%s: " | 134 | printk(KERN_ERR "%s: " |
| 135 | "acpi_get_vendor_resource() failed (0x%x) for: ", | 135 | "acpi_get_vendor_resource() failed (0x%x) for: ", |
| 136 | __FUNCTION__, status); | 136 | __func__, status); |
| 137 | acpi_ns_print_node_pathname(handle, NULL); | 137 | acpi_ns_print_node_pathname(handle, NULL); |
| 138 | printk("\n"); | 138 | printk("\n"); |
| 139 | return NULL; | 139 | return NULL; |
| @@ -145,7 +145,7 @@ sn_get_bussoft_ptr(struct pci_bus *bus) | |||
| 145 | sizeof(struct pcibus_bussoft *)) { | 145 | sizeof(struct pcibus_bussoft *)) { |
| 146 | printk(KERN_ERR | 146 | printk(KERN_ERR |
| 147 | "%s: Invalid vendor data length %d\n", | 147 | "%s: Invalid vendor data length %d\n", |
| 148 | __FUNCTION__, vendor->byte_length); | 148 | __func__, vendor->byte_length); |
| 149 | kfree(buffer.pointer); | 149 | kfree(buffer.pointer); |
| 150 | return NULL; | 150 | return NULL; |
| 151 | } | 151 | } |
| @@ -184,7 +184,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
| 184 | if (ACPI_FAILURE(status)) { | 184 | if (ACPI_FAILURE(status)) { |
| 185 | printk(KERN_ERR | 185 | printk(KERN_ERR |
| 186 | "%s: acpi_get_vendor_resource() failed (0x%x) for: ", | 186 | "%s: acpi_get_vendor_resource() failed (0x%x) for: ", |
| 187 | __FUNCTION__, status); | 187 | __func__, status); |
| 188 | acpi_ns_print_node_pathname(handle, NULL); | 188 | acpi_ns_print_node_pathname(handle, NULL); |
| 189 | printk("\n"); | 189 | printk("\n"); |
| 190 | return 1; | 190 | return 1; |
| @@ -196,7 +196,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
| 196 | sizeof(struct pci_devdev_info *)) { | 196 | sizeof(struct pci_devdev_info *)) { |
| 197 | printk(KERN_ERR | 197 | printk(KERN_ERR |
| 198 | "%s: Invalid vendor data length: %d for: ", | 198 | "%s: Invalid vendor data length: %d for: ", |
| 199 | __FUNCTION__, vendor->byte_length); | 199 | __func__, vendor->byte_length); |
| 200 | acpi_ns_print_node_pathname(handle, NULL); | 200 | acpi_ns_print_node_pathname(handle, NULL); |
| 201 | printk("\n"); | 201 | printk("\n"); |
| 202 | ret = 1; | 202 | ret = 1; |
| @@ -205,7 +205,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
| 205 | 205 | ||
| 206 | pcidev_ptr = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); | 206 | pcidev_ptr = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); |
| 207 | if (!pcidev_ptr) | 207 | if (!pcidev_ptr) |
| 208 | panic("%s: Unable to alloc memory for pcidev_info", __FUNCTION__); | 208 | panic("%s: Unable to alloc memory for pcidev_info", __func__); |
| 209 | 209 | ||
| 210 | memcpy(&addr, vendor->byte_data, sizeof(struct pcidev_info *)); | 210 | memcpy(&addr, vendor->byte_data, sizeof(struct pcidev_info *)); |
| 211 | pcidev_prom_ptr = __va(addr); | 211 | pcidev_prom_ptr = __va(addr); |
| @@ -214,7 +214,7 @@ sn_extract_device_info(acpi_handle handle, struct pcidev_info **pcidev_info, | |||
| 214 | /* Get the IRQ info */ | 214 | /* Get the IRQ info */ |
| 215 | irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); | 215 | irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); |
| 216 | if (!irq_info) | 216 | if (!irq_info) |
| 217 | panic("%s: Unable to alloc memory for sn_irq_info", __FUNCTION__); | 217 | panic("%s: Unable to alloc memory for sn_irq_info", __func__); |
| 218 | 218 | ||
| 219 | if (pcidev_ptr->pdi_sn_irq_info) { | 219 | if (pcidev_ptr->pdi_sn_irq_info) { |
| 220 | irq_info_prom = __va(pcidev_ptr->pdi_sn_irq_info); | 220 | irq_info_prom = __va(pcidev_ptr->pdi_sn_irq_info); |
| @@ -249,10 +249,10 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
| 249 | status = acpi_get_parent(child, &parent); | 249 | status = acpi_get_parent(child, &parent); |
| 250 | if (ACPI_FAILURE(status)) { | 250 | if (ACPI_FAILURE(status)) { |
| 251 | printk(KERN_ERR "%s: acpi_get_parent() failed " | 251 | printk(KERN_ERR "%s: acpi_get_parent() failed " |
| 252 | "(0x%x) for: ", __FUNCTION__, status); | 252 | "(0x%x) for: ", __func__, status); |
| 253 | acpi_ns_print_node_pathname(child, NULL); | 253 | acpi_ns_print_node_pathname(child, NULL); |
| 254 | printk("\n"); | 254 | printk("\n"); |
| 255 | panic("%s: Unable to find host devfn\n", __FUNCTION__); | 255 | panic("%s: Unable to find host devfn\n", __func__); |
| 256 | } | 256 | } |
| 257 | if (parent == rootbus_handle) | 257 | if (parent == rootbus_handle) |
| 258 | break; | 258 | break; |
| @@ -260,7 +260,7 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
| 260 | } | 260 | } |
| 261 | if (!child) { | 261 | if (!child) { |
| 262 | printk(KERN_ERR "%s: Unable to find root bus for: ", | 262 | printk(KERN_ERR "%s: Unable to find root bus for: ", |
| 263 | __FUNCTION__); | 263 | __func__); |
| 264 | acpi_ns_print_node_pathname(device_handle, NULL); | 264 | acpi_ns_print_node_pathname(device_handle, NULL); |
| 265 | printk("\n"); | 265 | printk("\n"); |
| 266 | BUG(); | 266 | BUG(); |
| @@ -269,10 +269,10 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
| 269 | status = acpi_evaluate_integer(child, METHOD_NAME__ADR, NULL, &adr); | 269 | status = acpi_evaluate_integer(child, METHOD_NAME__ADR, NULL, &adr); |
| 270 | if (ACPI_FAILURE(status)) { | 270 | if (ACPI_FAILURE(status)) { |
| 271 | printk(KERN_ERR "%s: Unable to get _ADR (0x%x) for: ", | 271 | printk(KERN_ERR "%s: Unable to get _ADR (0x%x) for: ", |
| 272 | __FUNCTION__, status); | 272 | __func__, status); |
| 273 | acpi_ns_print_node_pathname(child, NULL); | 273 | acpi_ns_print_node_pathname(child, NULL); |
| 274 | printk("\n"); | 274 | printk("\n"); |
| 275 | panic("%s: Unable to find host devfn\n", __FUNCTION__); | 275 | panic("%s: Unable to find host devfn\n", __func__); |
| 276 | } | 276 | } |
| 277 | 277 | ||
| 278 | slot = (adr >> 16) & 0xffff; | 278 | slot = (adr >> 16) & 0xffff; |
| @@ -308,7 +308,7 @@ find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
| 308 | if (ACPI_FAILURE(status)) { | 308 | if (ACPI_FAILURE(status)) { |
| 309 | printk(KERN_ERR | 309 | printk(KERN_ERR |
| 310 | "%s: acpi_get_parent() failed (0x%x) for: ", | 310 | "%s: acpi_get_parent() failed (0x%x) for: ", |
| 311 | __FUNCTION__, status); | 311 | __func__, status); |
| 312 | acpi_ns_print_node_pathname(handle, NULL); | 312 | acpi_ns_print_node_pathname(handle, NULL); |
| 313 | printk("\n"); | 313 | printk("\n"); |
| 314 | return AE_OK; | 314 | return AE_OK; |
| @@ -318,7 +318,7 @@ find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
| 318 | if (ACPI_FAILURE(status)) { | 318 | if (ACPI_FAILURE(status)) { |
| 319 | printk(KERN_ERR | 319 | printk(KERN_ERR |
| 320 | "%s: Failed to find _BBN in parent of: ", | 320 | "%s: Failed to find _BBN in parent of: ", |
| 321 | __FUNCTION__); | 321 | __func__); |
| 322 | acpi_ns_print_node_pathname(handle, NULL); | 322 | acpi_ns_print_node_pathname(handle, NULL); |
| 323 | printk("\n"); | 323 | printk("\n"); |
| 324 | return AE_OK; | 324 | return AE_OK; |
| @@ -358,14 +358,14 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
| 358 | if (segment != pci_domain_nr(dev)) { | 358 | if (segment != pci_domain_nr(dev)) { |
| 359 | printk(KERN_ERR | 359 | printk(KERN_ERR |
| 360 | "%s: Segment number mismatch, 0x%lx vs 0x%x for: ", | 360 | "%s: Segment number mismatch, 0x%lx vs 0x%x for: ", |
| 361 | __FUNCTION__, segment, pci_domain_nr(dev)); | 361 | __func__, segment, pci_domain_nr(dev)); |
| 362 | acpi_ns_print_node_pathname(rootbus_handle, NULL); | 362 | acpi_ns_print_node_pathname(rootbus_handle, NULL); |
| 363 | printk("\n"); | 363 | printk("\n"); |
| 364 | return 1; | 364 | return 1; |
| 365 | } | 365 | } |
| 366 | } else { | 366 | } else { |
| 367 | printk(KERN_ERR "%s: Unable to get __SEG from: ", | 367 | printk(KERN_ERR "%s: Unable to get __SEG from: ", |
| 368 | __FUNCTION__); | 368 | __func__); |
| 369 | acpi_ns_print_node_pathname(rootbus_handle, NULL); | 369 | acpi_ns_print_node_pathname(rootbus_handle, NULL); |
| 370 | printk("\n"); | 370 | printk("\n"); |
| 371 | return 1; | 371 | return 1; |
| @@ -386,7 +386,7 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
| 386 | if (!pcidev_match.handle) { | 386 | if (!pcidev_match.handle) { |
| 387 | printk(KERN_ERR | 387 | printk(KERN_ERR |
| 388 | "%s: Could not find matching ACPI device for %s.\n", | 388 | "%s: Could not find matching ACPI device for %s.\n", |
| 389 | __FUNCTION__, pci_name(dev)); | 389 | __func__, pci_name(dev)); |
| 390 | return 1; | 390 | return 1; |
| 391 | } | 391 | } |
| 392 | 392 | ||
| @@ -422,7 +422,7 @@ sn_acpi_slot_fixup(struct pci_dev *dev) | |||
| 422 | 422 | ||
| 423 | if (sn_acpi_get_pcidev_info(dev, &pcidev_info, &sn_irq_info)) { | 423 | if (sn_acpi_get_pcidev_info(dev, &pcidev_info, &sn_irq_info)) { |
| 424 | panic("%s: Failure obtaining pcidev_info for %s\n", | 424 | panic("%s: Failure obtaining pcidev_info for %s\n", |
| 425 | __FUNCTION__, pci_name(dev)); | 425 | __func__, pci_name(dev)); |
| 426 | } | 426 | } |
| 427 | 427 | ||
| 428 | if (pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE]) { | 428 | if (pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE]) { |
| @@ -463,7 +463,7 @@ sn_acpi_bus_fixup(struct pci_bus *bus) | |||
| 463 | printk(KERN_ERR | 463 | printk(KERN_ERR |
| 464 | "%s: 0x%04x:0x%02x Unable to " | 464 | "%s: 0x%04x:0x%02x Unable to " |
| 465 | "obtain prom_bussoft_ptr\n", | 465 | "obtain prom_bussoft_ptr\n", |
| 466 | __FUNCTION__, pci_domain_nr(bus), bus->number); | 466 | __func__, pci_domain_nr(bus), bus->number); |
| 467 | return; | 467 | return; |
| 468 | } | 468 | } |
| 469 | sn_common_bus_fixup(bus, prom_bussoft_ptr); | 469 | sn_common_bus_fixup(bus, prom_bussoft_ptr); |
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index c4eb84f9e781..8a924a5661dd 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c | |||
| @@ -364,7 +364,7 @@ void sn_bus_store_sysdata(struct pci_dev *dev) | |||
| 364 | 364 | ||
| 365 | element = kzalloc(sizeof(struct sysdata_el), GFP_KERNEL); | 365 | element = kzalloc(sizeof(struct sysdata_el), GFP_KERNEL); |
| 366 | if (!element) { | 366 | if (!element) { |
| 367 | dev_dbg(&dev->dev, "%s: out of memory!\n", __FUNCTION__); | 367 | dev_dbg(&dev->dev, "%s: out of memory!\n", __func__); |
| 368 | return; | 368 | return; |
| 369 | } | 369 | } |
| 370 | element->sysdata = SN_PCIDEV_INFO(dev); | 370 | element->sysdata = SN_PCIDEV_INFO(dev); |
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c index 906b93674b76..c3aa851d1ca6 100644 --- a/arch/ia64/sn/kernel/io_init.c +++ b/arch/ia64/sn/kernel/io_init.c | |||
| @@ -209,11 +209,11 @@ sn_io_slot_fixup(struct pci_dev *dev) | |||
| 209 | 209 | ||
| 210 | pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); | 210 | pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); |
| 211 | if (!pcidev_info) | 211 | if (!pcidev_info) |
| 212 | panic("%s: Unable to alloc memory for pcidev_info", __FUNCTION__); | 212 | panic("%s: Unable to alloc memory for pcidev_info", __func__); |
| 213 | 213 | ||
| 214 | sn_irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); | 214 | sn_irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); |
| 215 | if (!sn_irq_info) | 215 | if (!sn_irq_info) |
| 216 | panic("%s: Unable to alloc memory for sn_irq_info", __FUNCTION__); | 216 | panic("%s: Unable to alloc memory for sn_irq_info", __func__); |
| 217 | 217 | ||
| 218 | /* Call to retrieve pci device information needed by kernel. */ | 218 | /* Call to retrieve pci device information needed by kernel. */ |
| 219 | status = sal_get_pcidev_info((u64) pci_domain_nr(dev), | 219 | status = sal_get_pcidev_info((u64) pci_domain_nr(dev), |
diff --git a/arch/ia64/sn/kernel/mca.c b/arch/ia64/sn/kernel/mca.c index 868c9aa64fe2..27793f7aa99c 100644 --- a/arch/ia64/sn/kernel/mca.c +++ b/arch/ia64/sn/kernel/mca.c | |||
| @@ -100,7 +100,7 @@ sn_platform_plat_specific_err_print(const u8 * sect_header, u8 ** oemdata, | |||
| 100 | if (!newbuf) { | 100 | if (!newbuf) { |
| 101 | mutex_unlock(&sn_oemdata_mutex); | 101 | mutex_unlock(&sn_oemdata_mutex); |
| 102 | printk(KERN_ERR "%s: unable to extend sn_oemdata\n", | 102 | printk(KERN_ERR "%s: unable to extend sn_oemdata\n", |
| 103 | __FUNCTION__); | 103 | __func__); |
| 104 | return 1; | 104 | return 1; |
| 105 | } | 105 | } |
| 106 | vfree(*sn_oemdata); | 106 | vfree(*sn_oemdata); |
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c index 511db2fd7bff..18b94b792d54 100644 --- a/arch/ia64/sn/pci/pci_dma.c +++ b/arch/ia64/sn/pci/pci_dma.c | |||
| @@ -116,7 +116,7 @@ void *sn_dma_alloc_coherent(struct device *dev, size_t size, | |||
| 116 | *dma_handle = provider->dma_map_consistent(pdev, phys_addr, size, | 116 | *dma_handle = provider->dma_map_consistent(pdev, phys_addr, size, |
| 117 | SN_DMA_ADDR_PHYS); | 117 | SN_DMA_ADDR_PHYS); |
| 118 | if (!*dma_handle) { | 118 | if (!*dma_handle) { |
| 119 | printk(KERN_ERR "%s: out of ATEs\n", __FUNCTION__); | 119 | printk(KERN_ERR "%s: out of ATEs\n", __func__); |
| 120 | free_pages((unsigned long)cpuaddr, get_order(size)); | 120 | free_pages((unsigned long)cpuaddr, get_order(size)); |
| 121 | return NULL; | 121 | return NULL; |
| 122 | } | 122 | } |
| @@ -179,7 +179,7 @@ dma_addr_t sn_dma_map_single(struct device *dev, void *cpu_addr, size_t size, | |||
| 179 | phys_addr = __pa(cpu_addr); | 179 | phys_addr = __pa(cpu_addr); |
| 180 | dma_addr = provider->dma_map(pdev, phys_addr, size, SN_DMA_ADDR_PHYS); | 180 | dma_addr = provider->dma_map(pdev, phys_addr, size, SN_DMA_ADDR_PHYS); |
| 181 | if (!dma_addr) { | 181 | if (!dma_addr) { |
| 182 | printk(KERN_ERR "%s: out of ATEs\n", __FUNCTION__); | 182 | printk(KERN_ERR "%s: out of ATEs\n", __func__); |
| 183 | return 0; | 183 | return 0; |
| 184 | } | 184 | } |
| 185 | return dma_addr; | 185 | return dma_addr; |
| @@ -266,7 +266,7 @@ int sn_dma_map_sg(struct device *dev, struct scatterlist *sgl, int nhwentries, | |||
| 266 | SN_DMA_ADDR_PHYS); | 266 | SN_DMA_ADDR_PHYS); |
| 267 | 267 | ||
| 268 | if (!sg->dma_address) { | 268 | if (!sg->dma_address) { |
| 269 | printk(KERN_ERR "%s: out of ATEs\n", __FUNCTION__); | 269 | printk(KERN_ERR "%s: out of ATEs\n", __func__); |
| 270 | 270 | ||
| 271 | /* | 271 | /* |
| 272 | * Free any successfully allocated entries. | 272 | * Free any successfully allocated entries. |
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index ef048a674772..529462c01570 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c | |||
| @@ -88,7 +88,7 @@ tioca_gart_init(struct tioca_kernel *tioca_kern) | |||
| 88 | break; | 88 | break; |
| 89 | default: | 89 | default: |
| 90 | printk(KERN_ERR "%s: Invalid CA_APERATURE_SIZE " | 90 | printk(KERN_ERR "%s: Invalid CA_APERATURE_SIZE " |
| 91 | "0x%lx\n", __FUNCTION__, (ulong) CA_APERATURE_SIZE); | 91 | "0x%lx\n", __func__, (ulong) CA_APERATURE_SIZE); |
| 92 | return -1; | 92 | return -1; |
| 93 | } | 93 | } |
| 94 | 94 | ||
| @@ -124,7 +124,7 @@ tioca_gart_init(struct tioca_kernel *tioca_kern) | |||
| 124 | if (!tmp) { | 124 | if (!tmp) { |
| 125 | printk(KERN_ERR "%s: Could not allocate " | 125 | printk(KERN_ERR "%s: Could not allocate " |
| 126 | "%lu bytes (order %d) for GART\n", | 126 | "%lu bytes (order %d) for GART\n", |
| 127 | __FUNCTION__, | 127 | __func__, |
| 128 | tioca_kern->ca_gart_size, | 128 | tioca_kern->ca_gart_size, |
| 129 | get_order(tioca_kern->ca_gart_size)); | 129 | get_order(tioca_kern->ca_gart_size)); |
| 130 | return -ENOMEM; | 130 | return -ENOMEM; |
| @@ -341,7 +341,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr) | |||
| 341 | 341 | ||
| 342 | if (node_upper > 64) { | 342 | if (node_upper > 64) { |
| 343 | printk(KERN_ERR "%s: coretalk addr 0x%p node id out " | 343 | printk(KERN_ERR "%s: coretalk addr 0x%p node id out " |
| 344 | "of range\n", __FUNCTION__, (void *)ct_addr); | 344 | "of range\n", __func__, (void *)ct_addr); |
| 345 | return 0; | 345 | return 0; |
| 346 | } | 346 | } |
| 347 | 347 | ||
| @@ -349,7 +349,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr) | |||
| 349 | if (node_upper != (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)) { | 349 | if (node_upper != (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)) { |
| 350 | printk(KERN_ERR "%s: coretalk upper node (%u) " | 350 | printk(KERN_ERR "%s: coretalk upper node (%u) " |
| 351 | "mismatch with ca_agp_dma_addr_extn (%lu)\n", | 351 | "mismatch with ca_agp_dma_addr_extn (%lu)\n", |
| 352 | __FUNCTION__, | 352 | __func__, |
| 353 | node_upper, (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)); | 353 | node_upper, (agp_dma_extn >> CA_AGP_DMA_NODE_ID_SHFT)); |
| 354 | return 0; | 354 | return 0; |
| 355 | } | 355 | } |
| @@ -597,7 +597,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
| 597 | if (is_shub1() && sn_sal_rev() < 0x0406) { | 597 | if (is_shub1() && sn_sal_rev() < 0x0406) { |
| 598 | printk | 598 | printk |
| 599 | (KERN_ERR "%s: SGI prom rev 4.06 or greater required " | 599 | (KERN_ERR "%s: SGI prom rev 4.06 or greater required " |
| 600 | "for tioca support\n", __FUNCTION__); | 600 | "for tioca support\n", __func__); |
| 601 | return NULL; | 601 | return NULL; |
| 602 | } | 602 | } |
| 603 | 603 | ||
| @@ -651,7 +651,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
| 651 | printk(KERN_WARNING | 651 | printk(KERN_WARNING |
| 652 | "%s: Unable to get irq %d. " | 652 | "%s: Unable to get irq %d. " |
| 653 | "Error interrupts won't be routed for TIOCA bus %d\n", | 653 | "Error interrupts won't be routed for TIOCA bus %d\n", |
| 654 | __FUNCTION__, SGI_TIOCA_ERROR, | 654 | __func__, SGI_TIOCA_ERROR, |
| 655 | (int)tioca_common->ca_common.bs_persist_busnum); | 655 | (int)tioca_common->ca_common.bs_persist_busnum); |
| 656 | 656 | ||
| 657 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); | 657 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index 999f14f986e2..9b3c11373022 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
| @@ -494,7 +494,7 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir) | |||
| 494 | if (&map->ce_dmamap_list == &ce_kern->ce_dmamap_list) { | 494 | if (&map->ce_dmamap_list == &ce_kern->ce_dmamap_list) { |
| 495 | printk(KERN_WARNING | 495 | printk(KERN_WARNING |
| 496 | "%s: %s - no map found for bus_addr 0x%lx\n", | 496 | "%s: %s - no map found for bus_addr 0x%lx\n", |
| 497 | __FUNCTION__, pci_name(pdev), bus_addr); | 497 | __func__, pci_name(pdev), bus_addr); |
| 498 | } else if (--map->refcnt == 0) { | 498 | } else if (--map->refcnt == 0) { |
| 499 | for (i = 0; i < map->ate_count; i++) { | 499 | for (i = 0; i < map->ate_count; i++) { |
| 500 | map->ate_shadow[i] = 0; | 500 | map->ate_shadow[i] = 0; |
| @@ -1030,7 +1030,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
| 1030 | "%s: Unable to get irq %d. " | 1030 | "%s: Unable to get irq %d. " |
| 1031 | "Error interrupts won't be routed for " | 1031 | "Error interrupts won't be routed for " |
| 1032 | "TIOCE bus %04x:%02x\n", | 1032 | "TIOCE bus %04x:%02x\n", |
| 1033 | __FUNCTION__, SGI_PCIASIC_ERROR, | 1033 | __func__, SGI_PCIASIC_ERROR, |
| 1034 | tioce_common->ce_pcibus.bs_persist_segment, | 1034 | tioce_common->ce_pcibus.bs_persist_segment, |
| 1035 | tioce_common->ce_pcibus.bs_persist_busnum); | 1035 | tioce_common->ce_pcibus.bs_persist_busnum); |
| 1036 | 1036 | ||
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S index 6dfa3b3c0e2a..18a9c5f4b00d 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S | |||
| @@ -742,7 +742,9 @@ sys_call_table: | |||
| 742 | .long sys_epoll_pwait /* 315 */ | 742 | .long sys_epoll_pwait /* 315 */ |
| 743 | .long sys_utimensat | 743 | .long sys_utimensat |
| 744 | .long sys_signalfd | 744 | .long sys_signalfd |
| 745 | .long sys_ni_syscall | 745 | .long sys_timerfd_create |
| 746 | .long sys_eventfd | 746 | .long sys_eventfd |
| 747 | .long sys_fallocate /* 320 */ | 747 | .long sys_fallocate /* 320 */ |
| 748 | .long sys_timerfd_settime | ||
| 749 | .long sys_timerfd_gettime | ||
| 748 | 750 | ||
diff --git a/arch/m68knommu/defconfig b/arch/m68knommu/defconfig index 648113075f97..670b0a99cfa0 100644 --- a/arch/m68knommu/defconfig +++ b/arch/m68knommu/defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.23 | 3 | # Linux kernel version: 2.6.25-rc3 |
| 4 | # Thu Oct 18 13:17:38 2007 | 4 | # Mon Feb 25 15:03:00 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_M68K=y | 6 | CONFIG_M68K=y |
| 7 | # CONFIG_MMU is not set | 7 | # CONFIG_MMU is not set |
| @@ -15,8 +15,10 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y | |||
| 15 | CONFIG_GENERIC_HWEIGHT=y | 15 | CONFIG_GENERIC_HWEIGHT=y |
| 16 | CONFIG_GENERIC_HARDIRQS=y | 16 | CONFIG_GENERIC_HARDIRQS=y |
| 17 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 17 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 18 | CONFIG_GENERIC_TIME=y | ||
| 18 | CONFIG_TIME_LOW_RES=y | 19 | CONFIG_TIME_LOW_RES=y |
| 19 | CONFIG_NO_IOPORT=y | 20 | CONFIG_NO_IOPORT=y |
| 21 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
| 20 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| 21 | 23 | ||
| 22 | # | 24 | # |
| @@ -31,12 +33,14 @@ CONFIG_LOCALVERSION_AUTO=y | |||
| 31 | # CONFIG_POSIX_MQUEUE is not set | 33 | # CONFIG_POSIX_MQUEUE is not set |
| 32 | # CONFIG_BSD_PROCESS_ACCT is not set | 34 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 33 | # CONFIG_TASKSTATS is not set | 35 | # CONFIG_TASKSTATS is not set |
| 34 | # CONFIG_USER_NS is not set | ||
| 35 | # CONFIG_AUDIT is not set | 36 | # CONFIG_AUDIT is not set |
| 36 | # CONFIG_IKCONFIG is not set | 37 | # CONFIG_IKCONFIG is not set |
| 37 | CONFIG_LOG_BUF_SHIFT=14 | 38 | CONFIG_LOG_BUF_SHIFT=14 |
| 39 | # CONFIG_CGROUPS is not set | ||
| 40 | # CONFIG_GROUP_SCHED is not set | ||
| 38 | # CONFIG_SYSFS_DEPRECATED is not set | 41 | # CONFIG_SYSFS_DEPRECATED is not set |
| 39 | # CONFIG_RELAY is not set | 42 | # CONFIG_RELAY is not set |
| 43 | # CONFIG_NAMESPACES is not set | ||
| 40 | # CONFIG_BLK_DEV_INITRD is not set | 44 | # CONFIG_BLK_DEV_INITRD is not set |
| 41 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 45 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| 42 | CONFIG_SYSCTL=y | 46 | CONFIG_SYSCTL=y |
| @@ -48,15 +52,22 @@ CONFIG_SYSCTL_SYSCALL=y | |||
| 48 | CONFIG_PRINTK=y | 52 | CONFIG_PRINTK=y |
| 49 | CONFIG_BUG=y | 53 | CONFIG_BUG=y |
| 50 | CONFIG_ELF_CORE=y | 54 | CONFIG_ELF_CORE=y |
| 55 | CONFIG_COMPAT_BRK=y | ||
| 51 | CONFIG_BASE_FULL=y | 56 | CONFIG_BASE_FULL=y |
| 52 | # CONFIG_FUTEX is not set | 57 | # CONFIG_FUTEX is not set |
| 53 | # CONFIG_EPOLL is not set | 58 | # CONFIG_EPOLL is not set |
| 54 | # CONFIG_SIGNALFD is not set | 59 | # CONFIG_SIGNALFD is not set |
| 60 | # CONFIG_TIMERFD is not set | ||
| 55 | # CONFIG_EVENTFD is not set | 61 | # CONFIG_EVENTFD is not set |
| 56 | # CONFIG_VM_EVENT_COUNTERS is not set | 62 | # CONFIG_VM_EVENT_COUNTERS is not set |
| 57 | CONFIG_SLAB=y | 63 | CONFIG_SLAB=y |
| 58 | # CONFIG_SLUB is not set | 64 | # CONFIG_SLUB is not set |
| 59 | # CONFIG_SLOB is not set | 65 | # CONFIG_SLOB is not set |
| 66 | # CONFIG_PROFILING is not set | ||
| 67 | # CONFIG_MARKERS is not set | ||
| 68 | # CONFIG_HAVE_OPROFILE is not set | ||
| 69 | # CONFIG_HAVE_KPROBES is not set | ||
| 70 | CONFIG_SLABINFO=y | ||
| 60 | CONFIG_TINY_SHMEM=y | 71 | CONFIG_TINY_SHMEM=y |
| 61 | CONFIG_BASE_SMALL=0 | 72 | CONFIG_BASE_SMALL=0 |
| 62 | CONFIG_MODULES=y | 73 | CONFIG_MODULES=y |
| @@ -83,6 +94,8 @@ CONFIG_IOSCHED_NOOP=y | |||
| 83 | # CONFIG_DEFAULT_CFQ is not set | 94 | # CONFIG_DEFAULT_CFQ is not set |
| 84 | CONFIG_DEFAULT_NOOP=y | 95 | CONFIG_DEFAULT_NOOP=y |
| 85 | CONFIG_DEFAULT_IOSCHED="noop" | 96 | CONFIG_DEFAULT_IOSCHED="noop" |
| 97 | CONFIG_CLASSIC_RCU=y | ||
| 98 | # CONFIG_PREEMPT_RCU is not set | ||
| 86 | 99 | ||
| 87 | # | 100 | # |
| 88 | # Processor type and features | 101 | # Processor type and features |
| @@ -121,6 +134,7 @@ CONFIG_M5272C3=y | |||
| 121 | # CONFIG_MOD5272 is not set | 134 | # CONFIG_MOD5272 is not set |
| 122 | CONFIG_FREESCALE=y | 135 | CONFIG_FREESCALE=y |
| 123 | CONFIG_4KSTACKS=y | 136 | CONFIG_4KSTACKS=y |
| 137 | CONFIG_HZ=100 | ||
| 124 | 138 | ||
| 125 | # | 139 | # |
| 126 | # RAM configuration | 140 | # RAM configuration |
| @@ -147,6 +161,7 @@ CONFIG_FLATMEM_MANUAL=y | |||
| 147 | CONFIG_FLATMEM=y | 161 | CONFIG_FLATMEM=y |
| 148 | CONFIG_FLAT_NODE_MEM_MAP=y | 162 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 149 | # CONFIG_SPARSEMEM_STATIC is not set | 163 | # CONFIG_SPARSEMEM_STATIC is not set |
| 164 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
| 150 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 165 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 151 | # CONFIG_RESOURCES_64BIT is not set | 166 | # CONFIG_RESOURCES_64BIT is not set |
| 152 | CONFIG_ZONE_DMA_FLAG=1 | 167 | CONFIG_ZONE_DMA_FLAG=1 |
| @@ -159,10 +174,6 @@ CONFIG_VIRT_TO_BUS=y | |||
| 159 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 174 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 160 | 175 | ||
| 161 | # | 176 | # |
| 162 | # PCCARD (PCMCIA/CardBus) support | ||
| 163 | # | ||
| 164 | |||
| 165 | # | ||
| 166 | # Executable file formats | 177 | # Executable file formats |
| 167 | # | 178 | # |
| 168 | CONFIG_BINFMT_FLAT=y | 179 | CONFIG_BINFMT_FLAT=y |
| @@ -205,6 +216,7 @@ CONFIG_IP_FIB_HASH=y | |||
| 205 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | 216 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
| 206 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | 217 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
| 207 | # CONFIG_INET_XFRM_MODE_BEET is not set | 218 | # CONFIG_INET_XFRM_MODE_BEET is not set |
| 219 | # CONFIG_INET_LRO is not set | ||
| 208 | # CONFIG_INET_DIAG is not set | 220 | # CONFIG_INET_DIAG is not set |
| 209 | # CONFIG_TCP_CONG_ADVANCED is not set | 221 | # CONFIG_TCP_CONG_ADVANCED is not set |
| 210 | CONFIG_TCP_CONG_CUBIC=y | 222 | CONFIG_TCP_CONG_CUBIC=y |
| @@ -229,10 +241,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 229 | # CONFIG_LAPB is not set | 241 | # CONFIG_LAPB is not set |
| 230 | # CONFIG_ECONET is not set | 242 | # CONFIG_ECONET is not set |
| 231 | # CONFIG_WAN_ROUTER is not set | 243 | # CONFIG_WAN_ROUTER is not set |
| 232 | |||
| 233 | # | ||
| 234 | # QoS and/or fair queueing | ||
| 235 | # | ||
| 236 | # CONFIG_NET_SCHED is not set | 244 | # CONFIG_NET_SCHED is not set |
| 237 | 245 | ||
| 238 | # | 246 | # |
| @@ -240,6 +248,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 240 | # | 248 | # |
| 241 | # CONFIG_NET_PKTGEN is not set | 249 | # CONFIG_NET_PKTGEN is not set |
| 242 | # CONFIG_HAMRADIO is not set | 250 | # CONFIG_HAMRADIO is not set |
| 251 | # CONFIG_CAN is not set | ||
| 243 | # CONFIG_IRDA is not set | 252 | # CONFIG_IRDA is not set |
| 244 | # CONFIG_BT is not set | 253 | # CONFIG_BT is not set |
| 245 | # CONFIG_AF_RXRPC is not set | 254 | # CONFIG_AF_RXRPC is not set |
| @@ -283,6 +292,7 @@ CONFIG_MTD_BLOCK=y | |||
| 283 | # CONFIG_INFTL is not set | 292 | # CONFIG_INFTL is not set |
| 284 | # CONFIG_RFD_FTL is not set | 293 | # CONFIG_RFD_FTL is not set |
| 285 | # CONFIG_SSFDC is not set | 294 | # CONFIG_SSFDC is not set |
| 295 | # CONFIG_MTD_OOPS is not set | ||
| 286 | 296 | ||
| 287 | # | 297 | # |
| 288 | # RAM/ROM/Flash chip drivers | 298 | # RAM/ROM/Flash chip drivers |
| @@ -339,10 +349,11 @@ CONFIG_BLK_DEV=y | |||
| 339 | CONFIG_BLK_DEV_RAM=y | 349 | CONFIG_BLK_DEV_RAM=y |
| 340 | CONFIG_BLK_DEV_RAM_COUNT=16 | 350 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 341 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 351 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
| 342 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 352 | # CONFIG_BLK_DEV_XIP is not set |
| 343 | # CONFIG_CDROM_PKTCDVD is not set | 353 | # CONFIG_CDROM_PKTCDVD is not set |
| 344 | # CONFIG_ATA_OVER_ETH is not set | 354 | # CONFIG_ATA_OVER_ETH is not set |
| 345 | # CONFIG_MISC_DEVICES is not set | 355 | # CONFIG_MISC_DEVICES is not set |
| 356 | CONFIG_HAVE_IDE=y | ||
| 346 | # CONFIG_IDE is not set | 357 | # CONFIG_IDE is not set |
| 347 | 358 | ||
| 348 | # | 359 | # |
| @@ -360,9 +371,15 @@ CONFIG_NETDEVICES=y | |||
| 360 | # CONFIG_MACVLAN is not set | 371 | # CONFIG_MACVLAN is not set |
| 361 | # CONFIG_EQUALIZER is not set | 372 | # CONFIG_EQUALIZER is not set |
| 362 | # CONFIG_TUN is not set | 373 | # CONFIG_TUN is not set |
| 374 | # CONFIG_VETH is not set | ||
| 363 | # CONFIG_PHYLIB is not set | 375 | # CONFIG_PHYLIB is not set |
| 364 | CONFIG_NET_ETHERNET=y | 376 | CONFIG_NET_ETHERNET=y |
| 365 | # CONFIG_MII is not set | 377 | # CONFIG_MII is not set |
| 378 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
| 379 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
| 380 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
| 381 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
| 382 | # CONFIG_B44 is not set | ||
| 366 | CONFIG_FEC=y | 383 | CONFIG_FEC=y |
| 367 | # CONFIG_FEC2 is not set | 384 | # CONFIG_FEC2 is not set |
| 368 | # CONFIG_NETDEV_1000 is not set | 385 | # CONFIG_NETDEV_1000 is not set |
| @@ -377,7 +394,7 @@ CONFIG_FEC=y | |||
| 377 | CONFIG_PPP=y | 394 | CONFIG_PPP=y |
| 378 | # CONFIG_PPP_MULTILINK is not set | 395 | # CONFIG_PPP_MULTILINK is not set |
| 379 | # CONFIG_PPP_FILTER is not set | 396 | # CONFIG_PPP_FILTER is not set |
| 380 | # CONFIG_PPP_ASYNC is not set | 397 | CONFIG_PPP_ASYNC=y |
| 381 | # CONFIG_PPP_SYNC_TTY is not set | 398 | # CONFIG_PPP_SYNC_TTY is not set |
| 382 | # CONFIG_PPP_DEFLATE is not set | 399 | # CONFIG_PPP_DEFLATE is not set |
| 383 | # CONFIG_PPP_BSDCOMP is not set | 400 | # CONFIG_PPP_BSDCOMP is not set |
| @@ -386,7 +403,6 @@ CONFIG_PPP=y | |||
| 386 | # CONFIG_PPPOL2TP is not set | 403 | # CONFIG_PPPOL2TP is not set |
| 387 | # CONFIG_SLIP is not set | 404 | # CONFIG_SLIP is not set |
| 388 | CONFIG_SLHC=y | 405 | CONFIG_SLHC=y |
| 389 | # CONFIG_SHAPER is not set | ||
| 390 | # CONFIG_NETCONSOLE is not set | 406 | # CONFIG_NETCONSOLE is not set |
| 391 | # CONFIG_NETPOLL is not set | 407 | # CONFIG_NETPOLL is not set |
| 392 | # CONFIG_NET_POLL_CONTROLLER is not set | 408 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -418,12 +434,16 @@ CONFIG_SLHC=y | |||
| 418 | # | 434 | # |
| 419 | # Non-8250 serial port support | 435 | # Non-8250 serial port support |
| 420 | # | 436 | # |
| 421 | CONFIG_SERIAL_COLDFIRE=y | 437 | CONFIG_SERIAL_CORE=y |
| 438 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 439 | # CONFIG_SERIAL_COLDFIRE is not set | ||
| 440 | CONFIG_SERIAL_MCF=y | ||
| 441 | CONFIG_SERIAL_MCF_BAUDRATE=19200 | ||
| 442 | CONFIG_SERIAL_MCF_CONSOLE=y | ||
| 422 | # CONFIG_UNIX98_PTYS is not set | 443 | # CONFIG_UNIX98_PTYS is not set |
| 423 | CONFIG_LEGACY_PTYS=y | 444 | CONFIG_LEGACY_PTYS=y |
| 424 | CONFIG_LEGACY_PTY_COUNT=256 | 445 | CONFIG_LEGACY_PTY_COUNT=256 |
| 425 | # CONFIG_IPMI_HANDLER is not set | 446 | # CONFIG_IPMI_HANDLER is not set |
| 426 | # CONFIG_WATCHDOG is not set | ||
| 427 | # CONFIG_HW_RANDOM is not set | 447 | # CONFIG_HW_RANDOM is not set |
| 428 | # CONFIG_GEN_RTC is not set | 448 | # CONFIG_GEN_RTC is not set |
| 429 | # CONFIG_R3964 is not set | 449 | # CONFIG_R3964 is not set |
| @@ -439,6 +459,14 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
| 439 | # CONFIG_W1 is not set | 459 | # CONFIG_W1 is not set |
| 440 | # CONFIG_POWER_SUPPLY is not set | 460 | # CONFIG_POWER_SUPPLY is not set |
| 441 | # CONFIG_HWMON is not set | 461 | # CONFIG_HWMON is not set |
| 462 | # CONFIG_THERMAL is not set | ||
| 463 | # CONFIG_WATCHDOG is not set | ||
| 464 | |||
| 465 | # | ||
| 466 | # Sonics Silicon Backplane | ||
| 467 | # | ||
| 468 | CONFIG_SSB_POSSIBLE=y | ||
| 469 | # CONFIG_SSB is not set | ||
| 442 | 470 | ||
| 443 | # | 471 | # |
| 444 | # Multifunction device drivers | 472 | # Multifunction device drivers |
| @@ -450,20 +478,20 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
| 450 | # | 478 | # |
| 451 | # CONFIG_VIDEO_DEV is not set | 479 | # CONFIG_VIDEO_DEV is not set |
| 452 | # CONFIG_DVB_CORE is not set | 480 | # CONFIG_DVB_CORE is not set |
| 453 | CONFIG_DAB=y | 481 | # CONFIG_DAB is not set |
| 454 | 482 | ||
| 455 | # | 483 | # |
| 456 | # Graphics support | 484 | # Graphics support |
| 457 | # | 485 | # |
| 486 | # CONFIG_VGASTATE is not set | ||
| 487 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
| 488 | # CONFIG_FB is not set | ||
| 458 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 489 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
| 459 | 490 | ||
| 460 | # | 491 | # |
| 461 | # Display device support | 492 | # Display device support |
| 462 | # | 493 | # |
| 463 | # CONFIG_DISPLAY_SUPPORT is not set | 494 | # CONFIG_DISPLAY_SUPPORT is not set |
| 464 | # CONFIG_VGASTATE is not set | ||
| 465 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
| 466 | # CONFIG_FB is not set | ||
| 467 | 495 | ||
| 468 | # | 496 | # |
| 469 | # Sound | 497 | # Sound |
| @@ -471,23 +499,11 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y | |||
| 471 | # CONFIG_SOUND is not set | 499 | # CONFIG_SOUND is not set |
| 472 | # CONFIG_USB_SUPPORT is not set | 500 | # CONFIG_USB_SUPPORT is not set |
| 473 | # CONFIG_MMC is not set | 501 | # CONFIG_MMC is not set |
| 502 | # CONFIG_MEMSTICK is not set | ||
| 474 | # CONFIG_NEW_LEDS is not set | 503 | # CONFIG_NEW_LEDS is not set |
| 475 | # CONFIG_RTC_CLASS is not set | 504 | # CONFIG_RTC_CLASS is not set |
| 476 | 505 | ||
| 477 | # | 506 | # |
| 478 | # DMA Engine support | ||
| 479 | # | ||
| 480 | # CONFIG_DMA_ENGINE is not set | ||
| 481 | |||
| 482 | # | ||
| 483 | # DMA Clients | ||
| 484 | # | ||
| 485 | |||
| 486 | # | ||
| 487 | # DMA Devices | ||
| 488 | # | ||
| 489 | |||
| 490 | # | ||
| 491 | # Userspace I/O | 507 | # Userspace I/O |
| 492 | # | 508 | # |
| 493 | # CONFIG_UIO is not set | 509 | # CONFIG_UIO is not set |
| @@ -505,11 +521,9 @@ CONFIG_EXT2_FS=y | |||
| 505 | # CONFIG_XFS_FS is not set | 521 | # CONFIG_XFS_FS is not set |
| 506 | # CONFIG_GFS2_FS is not set | 522 | # CONFIG_GFS2_FS is not set |
| 507 | # CONFIG_OCFS2_FS is not set | 523 | # CONFIG_OCFS2_FS is not set |
| 508 | # CONFIG_MINIX_FS is not set | 524 | # CONFIG_DNOTIFY is not set |
| 509 | CONFIG_ROMFS_FS=y | ||
| 510 | # CONFIG_INOTIFY is not set | 525 | # CONFIG_INOTIFY is not set |
| 511 | # CONFIG_QUOTA is not set | 526 | # CONFIG_QUOTA is not set |
| 512 | # CONFIG_DNOTIFY is not set | ||
| 513 | # CONFIG_AUTOFS_FS is not set | 527 | # CONFIG_AUTOFS_FS is not set |
| 514 | # CONFIG_AUTOFS4_FS is not set | 528 | # CONFIG_AUTOFS4_FS is not set |
| 515 | # CONFIG_FUSE_FS is not set | 529 | # CONFIG_FUSE_FS is not set |
| @@ -535,7 +549,6 @@ CONFIG_PROC_SYSCTL=y | |||
| 535 | CONFIG_SYSFS=y | 549 | CONFIG_SYSFS=y |
| 536 | # CONFIG_TMPFS is not set | 550 | # CONFIG_TMPFS is not set |
| 537 | # CONFIG_HUGETLB_PAGE is not set | 551 | # CONFIG_HUGETLB_PAGE is not set |
| 538 | CONFIG_RAMFS=y | ||
| 539 | # CONFIG_CONFIGFS_FS is not set | 552 | # CONFIG_CONFIGFS_FS is not set |
| 540 | 553 | ||
| 541 | # | 554 | # |
| @@ -551,42 +564,27 @@ CONFIG_RAMFS=y | |||
| 551 | # CONFIG_JFFS2_FS is not set | 564 | # CONFIG_JFFS2_FS is not set |
| 552 | # CONFIG_CRAMFS is not set | 565 | # CONFIG_CRAMFS is not set |
| 553 | # CONFIG_VXFS_FS is not set | 566 | # CONFIG_VXFS_FS is not set |
| 567 | # CONFIG_MINIX_FS is not set | ||
| 554 | # CONFIG_HPFS_FS is not set | 568 | # CONFIG_HPFS_FS is not set |
| 555 | # CONFIG_QNX4FS_FS is not set | 569 | # CONFIG_QNX4FS_FS is not set |
| 570 | CONFIG_ROMFS_FS=y | ||
| 556 | # CONFIG_SYSV_FS is not set | 571 | # CONFIG_SYSV_FS is not set |
| 557 | # CONFIG_UFS_FS is not set | 572 | # CONFIG_UFS_FS is not set |
| 558 | 573 | # CONFIG_NETWORK_FILESYSTEMS is not set | |
| 559 | # | ||
| 560 | # Network File Systems | ||
| 561 | # | ||
| 562 | # CONFIG_NFS_FS is not set | ||
| 563 | # CONFIG_NFSD is not set | ||
| 564 | # CONFIG_SMB_FS is not set | ||
| 565 | # CONFIG_CIFS is not set | ||
| 566 | # CONFIG_NCP_FS is not set | ||
| 567 | # CONFIG_CODA_FS is not set | ||
| 568 | # CONFIG_AFS_FS is not set | ||
| 569 | 574 | ||
| 570 | # | 575 | # |
| 571 | # Partition Types | 576 | # Partition Types |
| 572 | # | 577 | # |
| 573 | # CONFIG_PARTITION_ADVANCED is not set | 578 | # CONFIG_PARTITION_ADVANCED is not set |
| 574 | CONFIG_MSDOS_PARTITION=y | 579 | CONFIG_MSDOS_PARTITION=y |
| 575 | |||
| 576 | # | ||
| 577 | # Native Language Support | ||
| 578 | # | ||
| 579 | # CONFIG_NLS is not set | 580 | # CONFIG_NLS is not set |
| 580 | |||
| 581 | # | ||
| 582 | # Distributed Lock Manager | ||
| 583 | # | ||
| 584 | # CONFIG_DLM is not set | 581 | # CONFIG_DLM is not set |
| 585 | 582 | ||
| 586 | # | 583 | # |
| 587 | # Kernel hacking | 584 | # Kernel hacking |
| 588 | # | 585 | # |
| 589 | # CONFIG_PRINTK_TIME is not set | 586 | # CONFIG_PRINTK_TIME is not set |
| 587 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 590 | # CONFIG_ENABLE_MUST_CHECK is not set | 588 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 591 | # CONFIG_MAGIC_SYSRQ is not set | 589 | # CONFIG_MAGIC_SYSRQ is not set |
| 592 | # CONFIG_UNUSED_SYMBOLS is not set | 590 | # CONFIG_UNUSED_SYMBOLS is not set |
| @@ -594,6 +592,7 @@ CONFIG_MSDOS_PARTITION=y | |||
| 594 | # CONFIG_HEADERS_CHECK is not set | 592 | # CONFIG_HEADERS_CHECK is not set |
| 595 | # CONFIG_DEBUG_KERNEL is not set | 593 | # CONFIG_DEBUG_KERNEL is not set |
| 596 | # CONFIG_DEBUG_BUGVERBOSE is not set | 594 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 595 | # CONFIG_SAMPLES is not set | ||
| 597 | # CONFIG_FULLDEBUG is not set | 596 | # CONFIG_FULLDEBUG is not set |
| 598 | # CONFIG_HIGHPROFILE is not set | 597 | # CONFIG_HIGHPROFILE is not set |
| 599 | # CONFIG_BOOTPARAM is not set | 598 | # CONFIG_BOOTPARAM is not set |
| @@ -605,6 +604,7 @@ CONFIG_MSDOS_PARTITION=y | |||
| 605 | # | 604 | # |
| 606 | # CONFIG_KEYS is not set | 605 | # CONFIG_KEYS is not set |
| 607 | # CONFIG_SECURITY is not set | 606 | # CONFIG_SECURITY is not set |
| 607 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 608 | # CONFIG_CRYPTO is not set | 608 | # CONFIG_CRYPTO is not set |
| 609 | 609 | ||
| 610 | # | 610 | # |
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S index 1b02b8820068..fca2e49917a3 100644 --- a/arch/m68knommu/kernel/syscalltable.S +++ b/arch/m68knommu/kernel/syscalltable.S | |||
| @@ -336,9 +336,11 @@ ENTRY(sys_call_table) | |||
| 336 | .long sys_epoll_pwait /* 315 */ | 336 | .long sys_epoll_pwait /* 315 */ |
| 337 | .long sys_utimensat | 337 | .long sys_utimensat |
| 338 | .long sys_signalfd | 338 | .long sys_signalfd |
| 339 | .long sys_ni_syscall | 339 | .long sys_timerfd_create |
| 340 | .long sys_eventfd | 340 | .long sys_eventfd |
| 341 | .long sys_fallocate /* 320 */ | 341 | .long sys_fallocate /* 320 */ |
| 342 | .long sys_timerfd_settime | ||
| 343 | .long sys_timerfd_gettime | ||
| 342 | 344 | ||
| 343 | .rept NR_syscalls-(.-sys_call_table)/4 | 345 | .rept NR_syscalls-(.-sys_call_table)/4 |
| 344 | .long sys_ni_syscall | 346 | .long sys_ni_syscall |
diff --git a/arch/m68knommu/platform/68328/timers.c b/arch/m68knommu/platform/68328/timers.c index 9159fd05c9ac..6bafefa546e5 100644 --- a/arch/m68knommu/platform/68328/timers.c +++ b/arch/m68knommu/platform/68328/timers.c | |||
| @@ -67,16 +67,6 @@ static irqreturn_t hw_tick(int irq, void *dummy) | |||
| 67 | 67 | ||
| 68 | /***************************************************************************/ | 68 | /***************************************************************************/ |
| 69 | 69 | ||
| 70 | static irqreturn_t hw_tick(int irq, void *dummy) | ||
| 71 | { | ||
| 72 | /* Reset Timer1 */ | ||
| 73 | TSTAT &= 0; | ||
| 74 | |||
| 75 | return arch_timer_interrupt(irq, dummy); | ||
| 76 | } | ||
| 77 | |||
| 78 | /***************************************************************************/ | ||
| 79 | |||
| 80 | static struct irqaction m68328_timer_irq = { | 70 | static struct irqaction m68328_timer_irq = { |
| 81 | .name = "timer", | 71 | .name = "timer", |
| 82 | .flags = IRQF_DISABLED | IRQF_TIMER, | 72 | .flags = IRQF_DISABLED | IRQF_TIMER, |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index ade230d445d9..8724ed3298d3 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
| @@ -1824,7 +1824,7 @@ choice | |||
| 1824 | Allows the configuration of the timer frequency. | 1824 | Allows the configuration of the timer frequency. |
| 1825 | 1825 | ||
| 1826 | config HZ_48 | 1826 | config HZ_48 |
| 1827 | bool "48 HZ" if SYS_SUPPORTS_48HZ | 1827 | bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ |
| 1828 | 1828 | ||
| 1829 | config HZ_100 | 1829 | config HZ_100 |
| 1830 | bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ | 1830 | bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 3fb7f3065c92..72097dacabd3 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
| @@ -12,6 +12,8 @@ | |||
| 12 | # for "archclean" cleaning up for this architecture. | 12 | # for "archclean" cleaning up for this architecture. |
| 13 | # | 13 | # |
| 14 | 14 | ||
| 15 | KBUILD_DEFCONFIG := ip22_defconfig | ||
| 16 | |||
| 15 | cflags-y := | 17 | cflags-y := |
| 16 | 18 | ||
| 17 | # | 19 | # |
diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c index 428ed275a0f6..57f17b41098d 100644 --- a/arch/mips/au1000/common/dbdma.c +++ b/arch/mips/au1000/common/dbdma.c | |||
| @@ -161,22 +161,22 @@ static dbdev_tab_t dbdev_tab[] = { | |||
| 161 | { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 }, | 161 | { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 }, |
| 162 | 162 | ||
| 163 | /* Provide 16 user definable device types */ | 163 | /* Provide 16 user definable device types */ |
| 164 | { 0, 0, 0, 0, 0, 0, 0 }, | 164 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 165 | { 0, 0, 0, 0, 0, 0, 0 }, | 165 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 166 | { 0, 0, 0, 0, 0, 0, 0 }, | 166 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 167 | { 0, 0, 0, 0, 0, 0, 0 }, | 167 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 168 | { 0, 0, 0, 0, 0, 0, 0 }, | 168 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 169 | { 0, 0, 0, 0, 0, 0, 0 }, | 169 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 170 | { 0, 0, 0, 0, 0, 0, 0 }, | 170 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 171 | { 0, 0, 0, 0, 0, 0, 0 }, | 171 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 172 | { 0, 0, 0, 0, 0, 0, 0 }, | 172 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 173 | { 0, 0, 0, 0, 0, 0, 0 }, | 173 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 174 | { 0, 0, 0, 0, 0, 0, 0 }, | 174 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 175 | { 0, 0, 0, 0, 0, 0, 0 }, | 175 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 176 | { 0, 0, 0, 0, 0, 0, 0 }, | 176 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 177 | { 0, 0, 0, 0, 0, 0, 0 }, | 177 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 178 | { 0, 0, 0, 0, 0, 0, 0 }, | 178 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 179 | { 0, 0, 0, 0, 0, 0, 0 }, | 179 | { ~0, 0, 0, 0, 0, 0, 0 }, |
| 180 | }; | 180 | }; |
| 181 | 181 | ||
| 182 | #define DBDEV_TAB_SIZE ARRAY_SIZE(dbdev_tab) | 182 | #define DBDEV_TAB_SIZE ARRAY_SIZE(dbdev_tab) |
| @@ -209,7 +209,7 @@ au1xxx_ddma_add_device(dbdev_tab_t *dev) | |||
| 209 | dbdev_tab_t *p=NULL; | 209 | dbdev_tab_t *p=NULL; |
| 210 | static u16 new_id=0x1000; | 210 | static u16 new_id=0x1000; |
| 211 | 211 | ||
| 212 | p = find_dbdev_id(0); | 212 | p = find_dbdev_id(~0); |
| 213 | if ( NULL != p ) | 213 | if ( NULL != p ) |
| 214 | { | 214 | { |
| 215 | memcpy(p, dev, sizeof(dbdev_tab_t)); | 215 | memcpy(p, dev, sizeof(dbdev_tab_t)); |
diff --git a/arch/mips/defconfig b/arch/mips/defconfig deleted file mode 100644 index 4f5e56c9335e..000000000000 --- a/arch/mips/defconfig +++ /dev/null | |||
| @@ -1,1158 +0,0 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.23-rc2 | ||
| 4 | # Tue Aug 7 12:39:49 2007 | ||
| 5 | # | ||
| 6 | CONFIG_MIPS=y | ||
| 7 | |||
| 8 | # | ||
| 9 | # Machine selection | ||
| 10 | # | ||
| 11 | CONFIG_ZONE_DMA=y | ||
| 12 | # CONFIG_MACH_ALCHEMY is not set | ||
| 13 | # CONFIG_BASLER_EXCITE is not set | ||
| 14 | # CONFIG_MIPS_COBALT is not set | ||
| 15 | # CONFIG_MACH_DECSTATION is not set | ||
| 16 | # CONFIG_MACH_JAZZ is not set | ||
| 17 | # CONFIG_LEMOTE_FULONG is not set | ||
| 18 | # CONFIG_MIPS_ATLAS is not set | ||
| 19 | # CONFIG_MIPS_MALTA is not set | ||
| 20 | # CONFIG_MIPS_SEAD is not set | ||
| 21 | # CONFIG_MIPS_SIM is not set | ||
| 22 | # CONFIG_MARKEINS is not set | ||
| 23 | # CONFIG_MACH_VR41XX is not set | ||
| 24 | # CONFIG_PNX8550_JBS is not set | ||
| 25 | # CONFIG_PNX8550_STB810 is not set | ||
| 26 | # CONFIG_PMC_MSP is not set | ||
| 27 | # CONFIG_PMC_YOSEMITE is not set | ||
| 28 | CONFIG_SGI_IP22=y | ||
| 29 | # CONFIG_SGI_IP27 is not set | ||
| 30 | # CONFIG_SGI_IP32 is not set | ||
| 31 | # CONFIG_SIBYTE_CRHINE is not set | ||
| 32 | # CONFIG_SIBYTE_CARMEL is not set | ||
| 33 | # CONFIG_SIBYTE_CRHONE is not set | ||
| 34 | # CONFIG_SIBYTE_RHONE is not set | ||
| 35 | # CONFIG_SIBYTE_SWARM is not set | ||
| 36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
| 37 | # CONFIG_SIBYTE_SENTOSA is not set | ||
| 38 | # CONFIG_SIBYTE_BIGSUR is not set | ||
| 39 | # CONFIG_SNI_RM is not set | ||
| 40 | # CONFIG_TOSHIBA_JMR3927 is not set | ||
| 41 | # CONFIG_TOSHIBA_RBTX4927 is not set | ||
| 42 | # CONFIG_TOSHIBA_RBTX4938 is not set | ||
| 43 | # CONFIG_WR_PPMC is not set | ||
| 44 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
| 45 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
| 46 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
| 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
| 48 | CONFIG_GENERIC_HWEIGHT=y | ||
| 49 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 50 | CONFIG_GENERIC_TIME=y | ||
| 51 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
| 52 | # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set | ||
| 53 | CONFIG_ARC=y | ||
| 54 | CONFIG_DMA_NONCOHERENT=y | ||
| 55 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | ||
| 56 | CONFIG_EARLY_PRINTK=y | ||
| 57 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
| 58 | # CONFIG_NO_IOPORT is not set | ||
| 59 | CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y | ||
| 60 | CONFIG_CPU_BIG_ENDIAN=y | ||
| 61 | # CONFIG_CPU_LITTLE_ENDIAN is not set | ||
| 62 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | ||
| 63 | CONFIG_IRQ_CPU=y | ||
| 64 | CONFIG_SWAP_IO_SPACE=y | ||
| 65 | CONFIG_ARC32=y | ||
| 66 | CONFIG_BOOT_ELF32=y | ||
| 67 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
| 68 | CONFIG_ARC_CONSOLE=y | ||
| 69 | CONFIG_ARC_PROMLIB=y | ||
| 70 | |||
| 71 | # | ||
| 72 | # CPU selection | ||
| 73 | # | ||
| 74 | # CONFIG_CPU_LOONGSON2 is not set | ||
| 75 | # CONFIG_CPU_MIPS32_R1 is not set | ||
| 76 | # CONFIG_CPU_MIPS32_R2 is not set | ||
| 77 | # CONFIG_CPU_MIPS64_R1 is not set | ||
| 78 | # CONFIG_CPU_MIPS64_R2 is not set | ||
| 79 | # CONFIG_CPU_R3000 is not set | ||
| 80 | # CONFIG_CPU_TX39XX is not set | ||
| 81 | # CONFIG_CPU_VR41XX is not set | ||
| 82 | # CONFIG_CPU_R4300 is not set | ||
| 83 | # CONFIG_CPU_R4X00 is not set | ||
| 84 | # CONFIG_CPU_TX49XX is not set | ||
| 85 | CONFIG_CPU_R5000=y | ||
| 86 | # CONFIG_CPU_R5432 is not set | ||
| 87 | # CONFIG_CPU_R6000 is not set | ||
| 88 | # CONFIG_CPU_NEVADA is not set | ||
| 89 | # CONFIG_CPU_R8000 is not set | ||
| 90 | # CONFIG_CPU_R10000 is not set | ||
| 91 | # CONFIG_CPU_RM7000 is not set | ||
| 92 | # CONFIG_CPU_RM9000 is not set | ||
| 93 | # CONFIG_CPU_SB1 is not set | ||
| 94 | CONFIG_SYS_HAS_CPU_R4X00=y | ||
| 95 | CONFIG_SYS_HAS_CPU_R5000=y | ||
| 96 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
| 97 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
| 98 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
| 99 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
| 100 | |||
| 101 | # | ||
| 102 | # Kernel type | ||
| 103 | # | ||
| 104 | CONFIG_32BIT=y | ||
| 105 | # CONFIG_64BIT is not set | ||
| 106 | CONFIG_PAGE_SIZE_4KB=y | ||
| 107 | # CONFIG_PAGE_SIZE_8KB is not set | ||
| 108 | # CONFIG_PAGE_SIZE_16KB is not set | ||
| 109 | # CONFIG_PAGE_SIZE_64KB is not set | ||
| 110 | CONFIG_BOARD_SCACHE=y | ||
| 111 | CONFIG_IP22_CPU_SCACHE=y | ||
| 112 | CONFIG_MIPS_MT_DISABLED=y | ||
| 113 | # CONFIG_MIPS_MT_SMP is not set | ||
| 114 | # CONFIG_MIPS_MT_SMTC is not set | ||
| 115 | CONFIG_CPU_HAS_LLSC=y | ||
| 116 | CONFIG_CPU_HAS_SYNC=y | ||
| 117 | CONFIG_GENERIC_HARDIRQS=y | ||
| 118 | CONFIG_GENERIC_IRQ_PROBE=y | ||
| 119 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
| 120 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 121 | CONFIG_FLATMEM_MANUAL=y | ||
| 122 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 123 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 124 | CONFIG_FLATMEM=y | ||
| 125 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 126 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 127 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
| 128 | # CONFIG_RESOURCES_64BIT is not set | ||
| 129 | CONFIG_ZONE_DMA_FLAG=1 | ||
| 130 | CONFIG_BOUNCE=y | ||
| 131 | CONFIG_VIRT_TO_BUS=y | ||
| 132 | # CONFIG_HZ_48 is not set | ||
| 133 | # CONFIG_HZ_100 is not set | ||
| 134 | # CONFIG_HZ_128 is not set | ||
| 135 | # CONFIG_HZ_250 is not set | ||
| 136 | # CONFIG_HZ_256 is not set | ||
| 137 | CONFIG_HZ_1000=y | ||
| 138 | # CONFIG_HZ_1024 is not set | ||
| 139 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | ||
| 140 | CONFIG_HZ=1000 | ||
| 141 | # CONFIG_PREEMPT_NONE is not set | ||
| 142 | CONFIG_PREEMPT_VOLUNTARY=y | ||
| 143 | # CONFIG_PREEMPT is not set | ||
| 144 | # CONFIG_KEXEC is not set | ||
| 145 | CONFIG_SECCOMP=y | ||
| 146 | CONFIG_LOCKDEP_SUPPORT=y | ||
| 147 | CONFIG_STACKTRACE_SUPPORT=y | ||
| 148 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
| 149 | |||
| 150 | # | ||
| 151 | # General setup | ||
| 152 | # | ||
| 153 | CONFIG_EXPERIMENTAL=y | ||
| 154 | CONFIG_BROKEN_ON_SMP=y | ||
| 155 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 156 | CONFIG_LOCALVERSION="" | ||
| 157 | CONFIG_LOCALVERSION_AUTO=y | ||
| 158 | CONFIG_SWAP=y | ||
| 159 | CONFIG_SYSVIPC=y | ||
| 160 | CONFIG_SYSVIPC_SYSCTL=y | ||
| 161 | # CONFIG_POSIX_MQUEUE is not set | ||
| 162 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
| 163 | # CONFIG_TASKSTATS is not set | ||
| 164 | # CONFIG_USER_NS is not set | ||
| 165 | # CONFIG_AUDIT is not set | ||
| 166 | CONFIG_IKCONFIG=y | ||
| 167 | CONFIG_IKCONFIG_PROC=y | ||
| 168 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 169 | CONFIG_SYSFS_DEPRECATED=y | ||
| 170 | CONFIG_RELAY=y | ||
| 171 | # CONFIG_BLK_DEV_INITRD is not set | ||
| 172 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 173 | CONFIG_SYSCTL=y | ||
| 174 | CONFIG_EMBEDDED=y | ||
| 175 | CONFIG_SYSCTL_SYSCALL=y | ||
| 176 | CONFIG_KALLSYMS=y | ||
| 177 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 178 | # CONFIG_HOTPLUG is not set | ||
| 179 | CONFIG_PRINTK=y | ||
| 180 | CONFIG_BUG=y | ||
| 181 | CONFIG_ELF_CORE=y | ||
| 182 | CONFIG_BASE_FULL=y | ||
| 183 | CONFIG_FUTEX=y | ||
| 184 | CONFIG_ANON_INODES=y | ||
| 185 | CONFIG_EPOLL=y | ||
| 186 | CONFIG_SIGNALFD=y | ||
| 187 | CONFIG_TIMERFD=y | ||
| 188 | CONFIG_EVENTFD=y | ||
| 189 | CONFIG_SHMEM=y | ||
| 190 | CONFIG_VM_EVENT_COUNTERS=y | ||
| 191 | CONFIG_SLAB=y | ||
| 192 | # CONFIG_SLUB is not set | ||
| 193 | # CONFIG_SLOB is not set | ||
| 194 | CONFIG_RT_MUTEXES=y | ||
| 195 | # CONFIG_TINY_SHMEM is not set | ||
| 196 | CONFIG_BASE_SMALL=0 | ||
| 197 | CONFIG_MODULES=y | ||
| 198 | CONFIG_MODULE_UNLOAD=y | ||
| 199 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
| 200 | CONFIG_MODVERSIONS=y | ||
| 201 | CONFIG_MODULE_SRCVERSION_ALL=y | ||
| 202 | CONFIG_KMOD=y | ||
| 203 | CONFIG_BLOCK=y | ||
| 204 | # CONFIG_LBD is not set | ||
| 205 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
| 206 | # CONFIG_LSF is not set | ||
| 207 | # CONFIG_BLK_DEV_BSG is not set | ||
| 208 | |||
| 209 | # | ||
| 210 | # IO Schedulers | ||
| 211 | # | ||
| 212 | CONFIG_IOSCHED_NOOP=y | ||
| 213 | CONFIG_IOSCHED_AS=y | ||
| 214 | CONFIG_IOSCHED_DEADLINE=y | ||
| 215 | CONFIG_IOSCHED_CFQ=y | ||
| 216 | CONFIG_DEFAULT_AS=y | ||
| 217 | # CONFIG_DEFAULT_DEADLINE is not set | ||
| 218 | # CONFIG_DEFAULT_CFQ is not set | ||
| 219 | # CONFIG_DEFAULT_NOOP is not set | ||
| 220 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
| 221 | |||
| 222 | # | ||
| 223 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | ||
| 224 | # | ||
| 225 | CONFIG_HW_HAS_EISA=y | ||
| 226 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
| 227 | # CONFIG_EISA is not set | ||
| 228 | CONFIG_MMU=y | ||
| 229 | |||
| 230 | # | ||
| 231 | # PCCARD (PCMCIA/CardBus) support | ||
| 232 | # | ||
| 233 | |||
| 234 | # | ||
| 235 | # Executable file formats | ||
| 236 | # | ||
| 237 | CONFIG_BINFMT_ELF=y | ||
| 238 | CONFIG_BINFMT_MISC=m | ||
| 239 | CONFIG_TRAD_SIGNALS=y | ||
| 240 | |||
| 241 | # | ||
| 242 | # Power management options | ||
| 243 | # | ||
| 244 | CONFIG_PM=y | ||
| 245 | # CONFIG_PM_LEGACY is not set | ||
| 246 | # CONFIG_PM_DEBUG is not set | ||
| 247 | # CONFIG_SUSPEND is not set | ||
| 248 | |||
| 249 | # | ||
| 250 | # Networking | ||
| 251 | # | ||
| 252 | CONFIG_NET=y | ||
| 253 | |||
| 254 | # | ||
| 255 | # Networking options | ||
| 256 | # | ||
| 257 | CONFIG_PACKET=y | ||
| 258 | CONFIG_PACKET_MMAP=y | ||
| 259 | CONFIG_UNIX=y | ||
| 260 | CONFIG_XFRM=y | ||
| 261 | CONFIG_XFRM_USER=m | ||
| 262 | # CONFIG_XFRM_SUB_POLICY is not set | ||
| 263 | CONFIG_XFRM_MIGRATE=y | ||
| 264 | CONFIG_NET_KEY=y | ||
| 265 | CONFIG_NET_KEY_MIGRATE=y | ||
| 266 | CONFIG_INET=y | ||
| 267 | CONFIG_IP_MULTICAST=y | ||
| 268 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 269 | CONFIG_IP_FIB_HASH=y | ||
| 270 | CONFIG_IP_PNP=y | ||
| 271 | # CONFIG_IP_PNP_DHCP is not set | ||
| 272 | CONFIG_IP_PNP_BOOTP=y | ||
| 273 | # CONFIG_IP_PNP_RARP is not set | ||
| 274 | # CONFIG_NET_IPIP is not set | ||
| 275 | # CONFIG_NET_IPGRE is not set | ||
| 276 | # CONFIG_IP_MROUTE is not set | ||
| 277 | # CONFIG_ARPD is not set | ||
| 278 | # CONFIG_SYN_COOKIES is not set | ||
| 279 | CONFIG_INET_AH=m | ||
| 280 | CONFIG_INET_ESP=m | ||
| 281 | CONFIG_INET_IPCOMP=m | ||
| 282 | CONFIG_INET_XFRM_TUNNEL=m | ||
| 283 | CONFIG_INET_TUNNEL=m | ||
| 284 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | ||
| 285 | CONFIG_INET_XFRM_MODE_TUNNEL=m | ||
| 286 | CONFIG_INET_XFRM_MODE_BEET=m | ||
| 287 | CONFIG_INET_DIAG=y | ||
| 288 | CONFIG_INET_TCP_DIAG=y | ||
| 289 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 290 | CONFIG_TCP_CONG_CUBIC=y | ||
| 291 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
| 292 | CONFIG_TCP_MD5SIG=y | ||
| 293 | CONFIG_IP_VS=m | ||
| 294 | # CONFIG_IP_VS_DEBUG is not set | ||
| 295 | CONFIG_IP_VS_TAB_BITS=12 | ||
| 296 | |||
| 297 | # | ||
| 298 | # IPVS transport protocol load balancing support | ||
| 299 | # | ||
| 300 | CONFIG_IP_VS_PROTO_TCP=y | ||
| 301 | CONFIG_IP_VS_PROTO_UDP=y | ||
| 302 | CONFIG_IP_VS_PROTO_ESP=y | ||
| 303 | CONFIG_IP_VS_PROTO_AH=y | ||
| 304 | |||
| 305 | # | ||
| 306 | # IPVS scheduler | ||
| 307 | # | ||
| 308 | CONFIG_IP_VS_RR=m | ||
| 309 | CONFIG_IP_VS_WRR=m | ||
| 310 | CONFIG_IP_VS_LC=m | ||
| 311 | CONFIG_IP_VS_WLC=m | ||
| 312 | CONFIG_IP_VS_LBLC=m | ||
| 313 | CONFIG_IP_VS_LBLCR=m | ||
| 314 | CONFIG_IP_VS_DH=m | ||
| 315 | CONFIG_IP_VS_SH=m | ||
| 316 | CONFIG_IP_VS_SED=m | ||
| 317 | CONFIG_IP_VS_NQ=m | ||
| 318 | |||
| 319 | # | ||
| 320 | # IPVS application helper | ||
| 321 | # | ||
| 322 | CONFIG_IP_VS_FTP=m | ||
| 323 | CONFIG_IPV6=m | ||
| 324 | CONFIG_IPV6_PRIVACY=y | ||
| 325 | CONFIG_IPV6_ROUTER_PREF=y | ||
| 326 | CONFIG_IPV6_ROUTE_INFO=y | ||
| 327 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
| 328 | CONFIG_INET6_AH=m | ||
| 329 | CONFIG_INET6_ESP=m | ||
| 330 | CONFIG_INET6_IPCOMP=m | ||
| 331 | CONFIG_IPV6_MIP6=m | ||
| 332 | CONFIG_INET6_XFRM_TUNNEL=m | ||
| 333 | CONFIG_INET6_TUNNEL=m | ||
| 334 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
| 335 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
| 336 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
| 337 | CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m | ||
| 338 | CONFIG_IPV6_SIT=m | ||
| 339 | CONFIG_IPV6_TUNNEL=m | ||
| 340 | CONFIG_IPV6_MULTIPLE_TABLES=y | ||
| 341 | CONFIG_IPV6_SUBTREES=y | ||
| 342 | CONFIG_NETWORK_SECMARK=y | ||
| 343 | CONFIG_NETFILTER=y | ||
| 344 | # CONFIG_NETFILTER_DEBUG is not set | ||
| 345 | |||
| 346 | # | ||
| 347 | # Core Netfilter Configuration | ||
| 348 | # | ||
| 349 | CONFIG_NETFILTER_NETLINK=m | ||
| 350 | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||
| 351 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
| 352 | CONFIG_NF_CONNTRACK_ENABLED=m | ||
| 353 | CONFIG_NF_CONNTRACK=m | ||
| 354 | CONFIG_NF_CT_ACCT=y | ||
| 355 | CONFIG_NF_CONNTRACK_MARK=y | ||
| 356 | CONFIG_NF_CONNTRACK_SECMARK=y | ||
| 357 | CONFIG_NF_CONNTRACK_EVENTS=y | ||
| 358 | CONFIG_NF_CT_PROTO_GRE=m | ||
| 359 | CONFIG_NF_CT_PROTO_SCTP=m | ||
| 360 | CONFIG_NF_CT_PROTO_UDPLITE=m | ||
| 361 | CONFIG_NF_CONNTRACK_AMANDA=m | ||
| 362 | CONFIG_NF_CONNTRACK_FTP=m | ||
| 363 | CONFIG_NF_CONNTRACK_H323=m | ||
| 364 | CONFIG_NF_CONNTRACK_IRC=m | ||
| 365 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | ||
| 366 | CONFIG_NF_CONNTRACK_PPTP=m | ||
| 367 | CONFIG_NF_CONNTRACK_SANE=m | ||
| 368 | CONFIG_NF_CONNTRACK_SIP=m | ||
| 369 | CONFIG_NF_CONNTRACK_TFTP=m | ||
| 370 | CONFIG_NF_CT_NETLINK=m | ||
| 371 | CONFIG_NETFILTER_XTABLES=m | ||
| 372 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
| 373 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | ||
| 374 | CONFIG_NETFILTER_XT_TARGET_DSCP=m | ||
| 375 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
| 376 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
| 377 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
| 378 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | ||
| 379 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | ||
| 380 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | ||
| 381 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | ||
| 382 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
| 383 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
| 384 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | ||
| 385 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | ||
| 386 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | ||
| 387 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
| 388 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | ||
| 389 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | ||
| 390 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
| 391 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
| 392 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
| 393 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
| 394 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
| 395 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
| 396 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
| 397 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
| 398 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
| 399 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | ||
| 400 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
| 401 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
| 402 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
| 403 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | ||
| 404 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
| 405 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
| 406 | CONFIG_NETFILTER_XT_MATCH_U32=m | ||
| 407 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | ||
| 408 | |||
| 409 | # | ||
| 410 | # IP: Netfilter Configuration | ||
| 411 | # | ||
| 412 | CONFIG_NF_CONNTRACK_IPV4=m | ||
| 413 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
| 414 | CONFIG_IP_NF_QUEUE=m | ||
| 415 | CONFIG_IP_NF_IPTABLES=m | ||
| 416 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 417 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 418 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 419 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 420 | CONFIG_IP_NF_MATCH_AH=m | ||
| 421 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 422 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 423 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
| 424 | CONFIG_IP_NF_FILTER=m | ||
| 425 | CONFIG_IP_NF_TARGET_REJECT=m | ||
| 426 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 427 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 428 | CONFIG_NF_NAT=m | ||
| 429 | CONFIG_NF_NAT_NEEDED=y | ||
| 430 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
| 431 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
| 432 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
| 433 | CONFIG_IP_NF_TARGET_SAME=m | ||
| 434 | CONFIG_NF_NAT_SNMP_BASIC=m | ||
| 435 | CONFIG_NF_NAT_PROTO_GRE=m | ||
| 436 | CONFIG_NF_NAT_FTP=m | ||
| 437 | CONFIG_NF_NAT_IRC=m | ||
| 438 | CONFIG_NF_NAT_TFTP=m | ||
| 439 | CONFIG_NF_NAT_AMANDA=m | ||
| 440 | CONFIG_NF_NAT_PPTP=m | ||
| 441 | CONFIG_NF_NAT_H323=m | ||
| 442 | CONFIG_NF_NAT_SIP=m | ||
| 443 | CONFIG_IP_NF_MANGLE=m | ||
| 444 | CONFIG_IP_NF_TARGET_TOS=m | ||
| 445 | CONFIG_IP_NF_TARGET_ECN=m | ||
| 446 | CONFIG_IP_NF_TARGET_TTL=m | ||
| 447 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
| 448 | CONFIG_IP_NF_RAW=m | ||
| 449 | CONFIG_IP_NF_ARPTABLES=m | ||
| 450 | CONFIG_IP_NF_ARPFILTER=m | ||
| 451 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 452 | |||
| 453 | # | ||
| 454 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
| 455 | # | ||
| 456 | CONFIG_NF_CONNTRACK_IPV6=m | ||
| 457 | CONFIG_IP6_NF_QUEUE=m | ||
| 458 | CONFIG_IP6_NF_IPTABLES=m | ||
| 459 | CONFIG_IP6_NF_MATCH_RT=m | ||
| 460 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
| 461 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
| 462 | CONFIG_IP6_NF_MATCH_HL=m | ||
| 463 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
| 464 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
| 465 | CONFIG_IP6_NF_MATCH_AH=m | ||
| 466 | CONFIG_IP6_NF_MATCH_MH=m | ||
| 467 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
| 468 | CONFIG_IP6_NF_FILTER=m | ||
| 469 | CONFIG_IP6_NF_TARGET_LOG=m | ||
| 470 | CONFIG_IP6_NF_TARGET_REJECT=m | ||
| 471 | CONFIG_IP6_NF_MANGLE=m | ||
| 472 | CONFIG_IP6_NF_TARGET_HL=m | ||
| 473 | CONFIG_IP6_NF_RAW=m | ||
| 474 | # CONFIG_IP_DCCP is not set | ||
| 475 | CONFIG_IP_SCTP=m | ||
| 476 | # CONFIG_SCTP_DBG_MSG is not set | ||
| 477 | # CONFIG_SCTP_DBG_OBJCNT is not set | ||
| 478 | # CONFIG_SCTP_HMAC_NONE is not set | ||
| 479 | # CONFIG_SCTP_HMAC_SHA1 is not set | ||
| 480 | CONFIG_SCTP_HMAC_MD5=y | ||
| 481 | # CONFIG_TIPC is not set | ||
| 482 | # CONFIG_ATM is not set | ||
| 483 | # CONFIG_BRIDGE is not set | ||
| 484 | # CONFIG_VLAN_8021Q is not set | ||
| 485 | # CONFIG_DECNET is not set | ||
| 486 | # CONFIG_LLC2 is not set | ||
| 487 | # CONFIG_IPX is not set | ||
| 488 | # CONFIG_ATALK is not set | ||
| 489 | # CONFIG_X25 is not set | ||
| 490 | # CONFIG_LAPB is not set | ||
| 491 | # CONFIG_ECONET is not set | ||
| 492 | # CONFIG_WAN_ROUTER is not set | ||
| 493 | |||
| 494 | # | ||
| 495 | # QoS and/or fair queueing | ||
| 496 | # | ||
| 497 | CONFIG_NET_SCHED=y | ||
| 498 | CONFIG_NET_SCH_FIFO=y | ||
| 499 | |||
| 500 | # | ||
| 501 | # Queueing/Scheduling | ||
| 502 | # | ||
| 503 | CONFIG_NET_SCH_CBQ=m | ||
| 504 | CONFIG_NET_SCH_HTB=m | ||
| 505 | CONFIG_NET_SCH_HFSC=m | ||
| 506 | CONFIG_NET_SCH_PRIO=m | ||
| 507 | CONFIG_NET_SCH_RR=m | ||
| 508 | CONFIG_NET_SCH_RED=m | ||
| 509 | CONFIG_NET_SCH_SFQ=m | ||
| 510 | CONFIG_NET_SCH_TEQL=m | ||
| 511 | CONFIG_NET_SCH_TBF=m | ||
| 512 | CONFIG_NET_SCH_GRED=m | ||
| 513 | CONFIG_NET_SCH_DSMARK=m | ||
| 514 | CONFIG_NET_SCH_NETEM=m | ||
| 515 | CONFIG_NET_SCH_INGRESS=m | ||
| 516 | |||
| 517 | # | ||
| 518 | # Classification | ||
| 519 | # | ||
| 520 | CONFIG_NET_CLS=y | ||
| 521 | CONFIG_NET_CLS_BASIC=m | ||
| 522 | CONFIG_NET_CLS_TCINDEX=m | ||
| 523 | CONFIG_NET_CLS_ROUTE4=m | ||
| 524 | CONFIG_NET_CLS_ROUTE=y | ||
| 525 | CONFIG_NET_CLS_FW=m | ||
| 526 | CONFIG_NET_CLS_U32=m | ||
| 527 | # CONFIG_CLS_U32_PERF is not set | ||
| 528 | # CONFIG_CLS_U32_MARK is not set | ||
| 529 | CONFIG_NET_CLS_RSVP=m | ||
| 530 | CONFIG_NET_CLS_RSVP6=m | ||
| 531 | # CONFIG_NET_EMATCH is not set | ||
| 532 | CONFIG_NET_CLS_ACT=y | ||
| 533 | CONFIG_NET_ACT_POLICE=y | ||
| 534 | CONFIG_NET_ACT_GACT=m | ||
| 535 | CONFIG_GACT_PROB=y | ||
| 536 | CONFIG_NET_ACT_MIRRED=m | ||
| 537 | CONFIG_NET_ACT_IPT=m | ||
| 538 | CONFIG_NET_ACT_PEDIT=m | ||
| 539 | CONFIG_NET_ACT_SIMP=m | ||
| 540 | CONFIG_NET_CLS_POLICE=y | ||
| 541 | # CONFIG_NET_CLS_IND is not set | ||
| 542 | |||
| 543 | # | ||
| 544 | # Network testing | ||
| 545 | # | ||
| 546 | # CONFIG_NET_PKTGEN is not set | ||
| 547 | # CONFIG_HAMRADIO is not set | ||
| 548 | # CONFIG_IRDA is not set | ||
| 549 | # CONFIG_BT is not set | ||
| 550 | # CONFIG_AF_RXRPC is not set | ||
| 551 | CONFIG_FIB_RULES=y | ||
| 552 | |||
| 553 | # | ||
| 554 | # Wireless | ||
| 555 | # | ||
| 556 | CONFIG_CFG80211=m | ||
| 557 | CONFIG_WIRELESS_EXT=y | ||
| 558 | CONFIG_MAC80211=m | ||
| 559 | # CONFIG_MAC80211_DEBUG is not set | ||
| 560 | CONFIG_IEEE80211=m | ||
| 561 | # CONFIG_IEEE80211_DEBUG is not set | ||
| 562 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
| 563 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
| 564 | CONFIG_IEEE80211_CRYPT_TKIP=m | ||
| 565 | CONFIG_IEEE80211_SOFTMAC=m | ||
| 566 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
| 567 | CONFIG_RFKILL=m | ||
| 568 | CONFIG_RFKILL_INPUT=m | ||
| 569 | # CONFIG_NET_9P is not set | ||
| 570 | |||
| 571 | # | ||
| 572 | # Device Drivers | ||
| 573 | # | ||
| 574 | |||
| 575 | # | ||
| 576 | # Generic Driver Options | ||
| 577 | # | ||
| 578 | CONFIG_STANDALONE=y | ||
| 579 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 580 | # CONFIG_SYS_HYPERVISOR is not set | ||
| 581 | CONFIG_CONNECTOR=m | ||
| 582 | # CONFIG_MTD is not set | ||
| 583 | # CONFIG_PARPORT is not set | ||
| 584 | CONFIG_BLK_DEV=y | ||
| 585 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 586 | # CONFIG_BLK_DEV_LOOP is not set | ||
| 587 | # CONFIG_BLK_DEV_NBD is not set | ||
| 588 | # CONFIG_BLK_DEV_RAM is not set | ||
| 589 | CONFIG_CDROM_PKTCDVD=m | ||
| 590 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | ||
| 591 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
| 592 | CONFIG_ATA_OVER_ETH=m | ||
| 593 | # CONFIG_MISC_DEVICES is not set | ||
| 594 | # CONFIG_IDE is not set | ||
| 595 | |||
| 596 | # | ||
| 597 | # SCSI device support | ||
| 598 | # | ||
| 599 | CONFIG_RAID_ATTRS=m | ||
| 600 | CONFIG_SCSI=y | ||
| 601 | CONFIG_SCSI_DMA=y | ||
| 602 | CONFIG_SCSI_TGT=m | ||
| 603 | # CONFIG_SCSI_NETLINK is not set | ||
| 604 | CONFIG_SCSI_PROC_FS=y | ||
| 605 | |||
| 606 | # | ||
| 607 | # SCSI support type (disk, tape, CD-ROM) | ||
| 608 | # | ||
| 609 | CONFIG_BLK_DEV_SD=y | ||
| 610 | CONFIG_CHR_DEV_ST=y | ||
| 611 | # CONFIG_CHR_DEV_OSST is not set | ||
| 612 | CONFIG_BLK_DEV_SR=y | ||
| 613 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
| 614 | # CONFIG_CHR_DEV_SG is not set | ||
| 615 | CONFIG_CHR_DEV_SCH=m | ||
| 616 | |||
| 617 | # | ||
| 618 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
| 619 | # | ||
| 620 | # CONFIG_SCSI_MULTI_LUN is not set | ||
| 621 | CONFIG_SCSI_CONSTANTS=y | ||
| 622 | # CONFIG_SCSI_LOGGING is not set | ||
| 623 | CONFIG_SCSI_SCAN_ASYNC=y | ||
| 624 | CONFIG_SCSI_WAIT_SCAN=m | ||
| 625 | |||
| 626 | # | ||
| 627 | # SCSI Transports | ||
| 628 | # | ||
| 629 | CONFIG_SCSI_SPI_ATTRS=m | ||
| 630 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 631 | CONFIG_SCSI_ISCSI_ATTRS=m | ||
| 632 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
| 633 | CONFIG_SCSI_LOWLEVEL=y | ||
| 634 | CONFIG_ISCSI_TCP=m | ||
| 635 | CONFIG_SGIWD93_SCSI=y | ||
| 636 | # CONFIG_SCSI_DEBUG is not set | ||
| 637 | # CONFIG_ATA is not set | ||
| 638 | # CONFIG_MD is not set | ||
| 639 | CONFIG_NETDEVICES=y | ||
| 640 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 641 | # CONFIG_IFB is not set | ||
| 642 | CONFIG_DUMMY=m | ||
| 643 | CONFIG_BONDING=m | ||
| 644 | CONFIG_MACVLAN=m | ||
| 645 | CONFIG_EQUALIZER=m | ||
| 646 | CONFIG_TUN=m | ||
| 647 | CONFIG_PHYLIB=m | ||
| 648 | |||
| 649 | # | ||
| 650 | # MII PHY device drivers | ||
| 651 | # | ||
| 652 | CONFIG_MARVELL_PHY=m | ||
| 653 | CONFIG_DAVICOM_PHY=m | ||
| 654 | CONFIG_QSEMI_PHY=m | ||
| 655 | CONFIG_LXT_PHY=m | ||
| 656 | CONFIG_CICADA_PHY=m | ||
| 657 | # CONFIG_VITESSE_PHY is not set | ||
| 658 | # CONFIG_SMSC_PHY is not set | ||
| 659 | # CONFIG_BROADCOM_PHY is not set | ||
| 660 | # CONFIG_ICPLUS_PHY is not set | ||
| 661 | # CONFIG_FIXED_PHY is not set | ||
| 662 | CONFIG_NET_ETHERNET=y | ||
| 663 | # CONFIG_MII is not set | ||
| 664 | # CONFIG_AX88796 is not set | ||
| 665 | # CONFIG_DM9000 is not set | ||
| 666 | CONFIG_SGISEEQ=y | ||
| 667 | # CONFIG_NETDEV_1000 is not set | ||
| 668 | # CONFIG_NETDEV_10000 is not set | ||
| 669 | |||
| 670 | # | ||
| 671 | # Wireless LAN | ||
| 672 | # | ||
| 673 | CONFIG_WLAN_PRE80211=y | ||
| 674 | CONFIG_STRIP=m | ||
| 675 | CONFIG_WLAN_80211=y | ||
| 676 | # CONFIG_LIBERTAS is not set | ||
| 677 | CONFIG_HOSTAP=m | ||
| 678 | # CONFIG_HOSTAP_FIRMWARE is not set | ||
| 679 | # CONFIG_WAN is not set | ||
| 680 | # CONFIG_PPP is not set | ||
| 681 | # CONFIG_SLIP is not set | ||
| 682 | # CONFIG_SHAPER is not set | ||
| 683 | # CONFIG_NETCONSOLE is not set | ||
| 684 | # CONFIG_NETPOLL is not set | ||
| 685 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 686 | # CONFIG_ISDN is not set | ||
| 687 | # CONFIG_PHONE is not set | ||
| 688 | |||
| 689 | # | ||
| 690 | # Input device support | ||
| 691 | # | ||
| 692 | CONFIG_INPUT=y | ||
| 693 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
| 694 | # CONFIG_INPUT_POLLDEV is not set | ||
| 695 | |||
| 696 | # | ||
| 697 | # Userland interfaces | ||
| 698 | # | ||
| 699 | CONFIG_INPUT_MOUSEDEV=m | ||
| 700 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
| 701 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
| 702 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
| 703 | # CONFIG_INPUT_JOYDEV is not set | ||
| 704 | # CONFIG_INPUT_TSDEV is not set | ||
| 705 | # CONFIG_INPUT_EVDEV is not set | ||
| 706 | # CONFIG_INPUT_EVBUG is not set | ||
| 707 | |||
| 708 | # | ||
| 709 | # Input Device Drivers | ||
| 710 | # | ||
| 711 | CONFIG_INPUT_KEYBOARD=y | ||
| 712 | CONFIG_KEYBOARD_ATKBD=y | ||
| 713 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 714 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 715 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 716 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 717 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
| 718 | CONFIG_INPUT_MOUSE=y | ||
| 719 | CONFIG_MOUSE_PS2=m | ||
| 720 | # CONFIG_MOUSE_PS2_ALPS is not set | ||
| 721 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
| 722 | # CONFIG_MOUSE_PS2_SYNAPTICS is not set | ||
| 723 | # CONFIG_MOUSE_PS2_LIFEBOOK is not set | ||
| 724 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
| 725 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
| 726 | CONFIG_MOUSE_SERIAL=m | ||
| 727 | # CONFIG_MOUSE_VSXXXAA is not set | ||
| 728 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 729 | # CONFIG_INPUT_TABLET is not set | ||
| 730 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
| 731 | # CONFIG_INPUT_MISC is not set | ||
| 732 | |||
| 733 | # | ||
| 734 | # Hardware I/O ports | ||
| 735 | # | ||
| 736 | CONFIG_SERIO=y | ||
| 737 | CONFIG_SERIO_I8042=y | ||
| 738 | CONFIG_SERIO_SERPORT=y | ||
| 739 | CONFIG_SERIO_LIBPS2=y | ||
| 740 | CONFIG_SERIO_RAW=m | ||
| 741 | # CONFIG_GAMEPORT is not set | ||
| 742 | |||
| 743 | # | ||
| 744 | # Character devices | ||
| 745 | # | ||
| 746 | CONFIG_VT=y | ||
| 747 | CONFIG_VT_CONSOLE=y | ||
| 748 | CONFIG_HW_CONSOLE=y | ||
| 749 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
| 750 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 751 | |||
| 752 | # | ||
| 753 | # Serial drivers | ||
| 754 | # | ||
| 755 | # CONFIG_SERIAL_8250 is not set | ||
| 756 | |||
| 757 | # | ||
| 758 | # Non-8250 serial port support | ||
| 759 | # | ||
| 760 | CONFIG_SERIAL_IP22_ZILOG=m | ||
| 761 | CONFIG_SERIAL_CORE=m | ||
| 762 | CONFIG_UNIX98_PTYS=y | ||
| 763 | CONFIG_LEGACY_PTYS=y | ||
| 764 | CONFIG_LEGACY_PTY_COUNT=256 | ||
| 765 | # CONFIG_IPMI_HANDLER is not set | ||
| 766 | CONFIG_WATCHDOG=y | ||
| 767 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
| 768 | |||
| 769 | # | ||
| 770 | # Watchdog Device Drivers | ||
| 771 | # | ||
| 772 | # CONFIG_SOFT_WATCHDOG is not set | ||
| 773 | CONFIG_INDYDOG=m | ||
| 774 | # CONFIG_HW_RANDOM is not set | ||
| 775 | # CONFIG_RTC is not set | ||
| 776 | CONFIG_SGI_DS1286=m | ||
| 777 | # CONFIG_R3964 is not set | ||
| 778 | CONFIG_RAW_DRIVER=m | ||
| 779 | CONFIG_MAX_RAW_DEVS=256 | ||
| 780 | # CONFIG_TCG_TPM is not set | ||
| 781 | # CONFIG_I2C is not set | ||
| 782 | |||
| 783 | # | ||
| 784 | # SPI support | ||
| 785 | # | ||
| 786 | # CONFIG_SPI is not set | ||
| 787 | # CONFIG_SPI_MASTER is not set | ||
| 788 | # CONFIG_W1 is not set | ||
| 789 | # CONFIG_POWER_SUPPLY is not set | ||
| 790 | # CONFIG_HWMON is not set | ||
| 791 | |||
| 792 | # | ||
| 793 | # Multifunction device drivers | ||
| 794 | # | ||
| 795 | # CONFIG_MFD_SM501 is not set | ||
| 796 | |||
| 797 | # | ||
| 798 | # Multimedia devices | ||
| 799 | # | ||
| 800 | # CONFIG_VIDEO_DEV is not set | ||
| 801 | # CONFIG_DVB_CORE is not set | ||
| 802 | # CONFIG_DAB is not set | ||
| 803 | |||
| 804 | # | ||
| 805 | # Graphics support | ||
| 806 | # | ||
| 807 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 808 | |||
| 809 | # | ||
| 810 | # Display device support | ||
| 811 | # | ||
| 812 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 813 | # CONFIG_VGASTATE is not set | ||
| 814 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
| 815 | # CONFIG_FB is not set | ||
| 816 | |||
| 817 | # | ||
| 818 | # Console display driver support | ||
| 819 | # | ||
| 820 | # CONFIG_VGA_CONSOLE is not set | ||
| 821 | CONFIG_SGI_NEWPORT_CONSOLE=y | ||
| 822 | CONFIG_DUMMY_CONSOLE=y | ||
| 823 | CONFIG_FONT_8x16=y | ||
| 824 | CONFIG_LOGO=y | ||
| 825 | # CONFIG_LOGO_LINUX_MONO is not set | ||
| 826 | # CONFIG_LOGO_LINUX_VGA16 is not set | ||
| 827 | # CONFIG_LOGO_LINUX_CLUT224 is not set | ||
| 828 | CONFIG_LOGO_SGI_CLUT224=y | ||
| 829 | |||
| 830 | # | ||
| 831 | # Sound | ||
| 832 | # | ||
| 833 | # CONFIG_SOUND is not set | ||
| 834 | CONFIG_HID_SUPPORT=y | ||
| 835 | CONFIG_HID=y | ||
| 836 | # CONFIG_HID_DEBUG is not set | ||
| 837 | CONFIG_USB_SUPPORT=y | ||
| 838 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
| 839 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
| 840 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
| 841 | |||
| 842 | # | ||
| 843 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
| 844 | # | ||
| 845 | |||
| 846 | # | ||
| 847 | # USB Gadget Support | ||
| 848 | # | ||
| 849 | # CONFIG_USB_GADGET is not set | ||
| 850 | # CONFIG_MMC is not set | ||
| 851 | # CONFIG_NEW_LEDS is not set | ||
| 852 | # CONFIG_RTC_CLASS is not set | ||
| 853 | |||
| 854 | # | ||
| 855 | # DMA Engine support | ||
| 856 | # | ||
| 857 | # CONFIG_DMA_ENGINE is not set | ||
| 858 | |||
| 859 | # | ||
| 860 | # DMA Clients | ||
| 861 | # | ||
| 862 | |||
| 863 | # | ||
| 864 | # DMA Devices | ||
| 865 | # | ||
| 866 | |||
| 867 | # | ||
| 868 | # Userspace I/O | ||
| 869 | # | ||
| 870 | # CONFIG_UIO is not set | ||
| 871 | |||
| 872 | # | ||
| 873 | # File systems | ||
| 874 | # | ||
| 875 | CONFIG_EXT2_FS=m | ||
| 876 | # CONFIG_EXT2_FS_XATTR is not set | ||
| 877 | # CONFIG_EXT2_FS_XIP is not set | ||
| 878 | CONFIG_EXT3_FS=y | ||
| 879 | CONFIG_EXT3_FS_XATTR=y | ||
| 880 | CONFIG_EXT3_FS_POSIX_ACL=y | ||
| 881 | CONFIG_EXT3_FS_SECURITY=y | ||
| 882 | # CONFIG_EXT4DEV_FS is not set | ||
| 883 | CONFIG_JBD=y | ||
| 884 | # CONFIG_JBD_DEBUG is not set | ||
| 885 | CONFIG_FS_MBCACHE=y | ||
| 886 | # CONFIG_REISERFS_FS is not set | ||
| 887 | # CONFIG_JFS_FS is not set | ||
| 888 | CONFIG_FS_POSIX_ACL=y | ||
| 889 | CONFIG_XFS_FS=m | ||
| 890 | CONFIG_XFS_QUOTA=y | ||
| 891 | CONFIG_XFS_SECURITY=y | ||
| 892 | # CONFIG_XFS_POSIX_ACL is not set | ||
| 893 | # CONFIG_XFS_RT is not set | ||
| 894 | # CONFIG_GFS2_FS is not set | ||
| 895 | # CONFIG_OCFS2_FS is not set | ||
| 896 | CONFIG_MINIX_FS=m | ||
| 897 | # CONFIG_ROMFS_FS is not set | ||
| 898 | CONFIG_INOTIFY=y | ||
| 899 | CONFIG_INOTIFY_USER=y | ||
| 900 | CONFIG_QUOTA=y | ||
| 901 | # CONFIG_QFMT_V1 is not set | ||
| 902 | CONFIG_QFMT_V2=m | ||
| 903 | CONFIG_QUOTACTL=y | ||
| 904 | CONFIG_DNOTIFY=y | ||
| 905 | CONFIG_AUTOFS_FS=m | ||
| 906 | CONFIG_AUTOFS4_FS=m | ||
| 907 | CONFIG_FUSE_FS=m | ||
| 908 | CONFIG_GENERIC_ACL=y | ||
| 909 | |||
| 910 | # | ||
| 911 | # CD-ROM/DVD Filesystems | ||
| 912 | # | ||
| 913 | CONFIG_ISO9660_FS=m | ||
| 914 | CONFIG_JOLIET=y | ||
| 915 | CONFIG_ZISOFS=y | ||
| 916 | CONFIG_UDF_FS=m | ||
| 917 | CONFIG_UDF_NLS=y | ||
| 918 | |||
| 919 | # | ||
| 920 | # DOS/FAT/NT Filesystems | ||
| 921 | # | ||
| 922 | CONFIG_FAT_FS=m | ||
| 923 | CONFIG_MSDOS_FS=m | ||
| 924 | CONFIG_VFAT_FS=m | ||
| 925 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
| 926 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
| 927 | # CONFIG_NTFS_FS is not set | ||
| 928 | |||
| 929 | # | ||
| 930 | # Pseudo filesystems | ||
| 931 | # | ||
| 932 | CONFIG_PROC_FS=y | ||
| 933 | CONFIG_PROC_KCORE=y | ||
| 934 | CONFIG_PROC_SYSCTL=y | ||
| 935 | CONFIG_SYSFS=y | ||
| 936 | CONFIG_TMPFS=y | ||
| 937 | CONFIG_TMPFS_POSIX_ACL=y | ||
| 938 | # CONFIG_HUGETLB_PAGE is not set | ||
| 939 | CONFIG_RAMFS=y | ||
| 940 | CONFIG_CONFIGFS_FS=m | ||
| 941 | |||
| 942 | # | ||
| 943 | # Miscellaneous filesystems | ||
| 944 | # | ||
| 945 | # CONFIG_ADFS_FS is not set | ||
| 946 | # CONFIG_AFFS_FS is not set | ||
| 947 | # CONFIG_ECRYPT_FS is not set | ||
| 948 | # CONFIG_HFS_FS is not set | ||
| 949 | # CONFIG_HFSPLUS_FS is not set | ||
| 950 | # CONFIG_BEFS_FS is not set | ||
| 951 | # CONFIG_BFS_FS is not set | ||
| 952 | CONFIG_EFS_FS=m | ||
| 953 | # CONFIG_CRAMFS is not set | ||
| 954 | # CONFIG_VXFS_FS is not set | ||
| 955 | # CONFIG_HPFS_FS is not set | ||
| 956 | # CONFIG_QNX4FS_FS is not set | ||
| 957 | # CONFIG_SYSV_FS is not set | ||
| 958 | CONFIG_UFS_FS=m | ||
| 959 | # CONFIG_UFS_FS_WRITE is not set | ||
| 960 | # CONFIG_UFS_DEBUG is not set | ||
| 961 | |||
| 962 | # | ||
| 963 | # Network File Systems | ||
| 964 | # | ||
| 965 | CONFIG_NFS_FS=m | ||
| 966 | CONFIG_NFS_V3=y | ||
| 967 | CONFIG_NFS_V3_ACL=y | ||
| 968 | # CONFIG_NFS_V4 is not set | ||
| 969 | # CONFIG_NFS_DIRECTIO is not set | ||
| 970 | CONFIG_NFSD=m | ||
| 971 | CONFIG_NFSD_V2_ACL=y | ||
| 972 | CONFIG_NFSD_V3=y | ||
| 973 | CONFIG_NFSD_V3_ACL=y | ||
| 974 | # CONFIG_NFSD_V4 is not set | ||
| 975 | CONFIG_NFSD_TCP=y | ||
| 976 | CONFIG_LOCKD=m | ||
| 977 | CONFIG_LOCKD_V4=y | ||
| 978 | CONFIG_EXPORTFS=m | ||
| 979 | CONFIG_NFS_ACL_SUPPORT=m | ||
| 980 | CONFIG_NFS_COMMON=y | ||
| 981 | CONFIG_SUNRPC=m | ||
| 982 | CONFIG_SUNRPC_GSS=m | ||
| 983 | # CONFIG_SUNRPC_BIND34 is not set | ||
| 984 | CONFIG_RPCSEC_GSS_KRB5=m | ||
| 985 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
| 986 | CONFIG_SMB_FS=m | ||
| 987 | CONFIG_SMB_NLS_DEFAULT=y | ||
| 988 | CONFIG_SMB_NLS_REMOTE="cp437" | ||
| 989 | CONFIG_CIFS=m | ||
| 990 | # CONFIG_CIFS_STATS is not set | ||
| 991 | # CONFIG_CIFS_WEAK_PW_HASH is not set | ||
| 992 | # CONFIG_CIFS_XATTR is not set | ||
| 993 | # CONFIG_CIFS_DEBUG2 is not set | ||
| 994 | # CONFIG_CIFS_EXPERIMENTAL is not set | ||
| 995 | # CONFIG_NCP_FS is not set | ||
| 996 | CONFIG_CODA_FS=m | ||
| 997 | # CONFIG_CODA_FS_OLD_API is not set | ||
| 998 | # CONFIG_AFS_FS is not set | ||
| 999 | |||
| 1000 | # | ||
| 1001 | # Partition Types | ||
| 1002 | # | ||
| 1003 | CONFIG_PARTITION_ADVANCED=y | ||
| 1004 | # CONFIG_ACORN_PARTITION is not set | ||
| 1005 | # CONFIG_OSF_PARTITION is not set | ||
| 1006 | # CONFIG_AMIGA_PARTITION is not set | ||
| 1007 | # CONFIG_ATARI_PARTITION is not set | ||
| 1008 | # CONFIG_MAC_PARTITION is not set | ||
| 1009 | CONFIG_MSDOS_PARTITION=y | ||
| 1010 | # CONFIG_BSD_DISKLABEL is not set | ||
| 1011 | # CONFIG_MINIX_SUBPARTITION is not set | ||
| 1012 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
| 1013 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
| 1014 | # CONFIG_LDM_PARTITION is not set | ||
| 1015 | CONFIG_SGI_PARTITION=y | ||
| 1016 | # CONFIG_ULTRIX_PARTITION is not set | ||
| 1017 | # CONFIG_SUN_PARTITION is not set | ||
| 1018 | # CONFIG_KARMA_PARTITION is not set | ||
| 1019 | # CONFIG_EFI_PARTITION is not set | ||
| 1020 | # CONFIG_SYSV68_PARTITION is not set | ||
| 1021 | |||
| 1022 | # | ||
| 1023 | # Native Language Support | ||
| 1024 | # | ||
| 1025 | CONFIG_NLS=m | ||
| 1026 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
| 1027 | CONFIG_NLS_CODEPAGE_437=m | ||
| 1028 | CONFIG_NLS_CODEPAGE_737=m | ||
| 1029 | CONFIG_NLS_CODEPAGE_775=m | ||
| 1030 | CONFIG_NLS_CODEPAGE_850=m | ||
| 1031 | CONFIG_NLS_CODEPAGE_852=m | ||
| 1032 | CONFIG_NLS_CODEPAGE_855=m | ||
| 1033 | CONFIG_NLS_CODEPAGE_857=m | ||
| 1034 | CONFIG_NLS_CODEPAGE_860=m | ||
| 1035 | CONFIG_NLS_CODEPAGE_861=m | ||
| 1036 | CONFIG_NLS_CODEPAGE_862=m | ||
| 1037 | CONFIG_NLS_CODEPAGE_863=m | ||
| 1038 | CONFIG_NLS_CODEPAGE_864=m | ||
| 1039 | CONFIG_NLS_CODEPAGE_865=m | ||
| 1040 | CONFIG_NLS_CODEPAGE_866=m | ||
| 1041 | CONFIG_NLS_CODEPAGE_869=m | ||
| 1042 | CONFIG_NLS_CODEPAGE_936=m | ||
| 1043 | CONFIG_NLS_CODEPAGE_950=m | ||
| 1044 | CONFIG_NLS_CODEPAGE_932=m | ||
| 1045 | CONFIG_NLS_CODEPAGE_949=m | ||
| 1046 | CONFIG_NLS_CODEPAGE_874=m | ||
| 1047 | CONFIG_NLS_ISO8859_8=m | ||
| 1048 | CONFIG_NLS_CODEPAGE_1250=m | ||
| 1049 | CONFIG_NLS_CODEPAGE_1251=m | ||
| 1050 | CONFIG_NLS_ASCII=m | ||
| 1051 | CONFIG_NLS_ISO8859_1=m | ||
| 1052 | CONFIG_NLS_ISO8859_2=m | ||
| 1053 | CONFIG_NLS_ISO8859_3=m | ||
| 1054 | CONFIG_NLS_ISO8859_4=m | ||
| 1055 | CONFIG_NLS_ISO8859_5=m | ||
| 1056 | CONFIG_NLS_ISO8859_6=m | ||
| 1057 | CONFIG_NLS_ISO8859_7=m | ||
| 1058 | CONFIG_NLS_ISO8859_9=m | ||
| 1059 | CONFIG_NLS_ISO8859_13=m | ||
| 1060 | CONFIG_NLS_ISO8859_14=m | ||
| 1061 | CONFIG_NLS_ISO8859_15=m | ||
| 1062 | CONFIG_NLS_KOI8_R=m | ||
| 1063 | CONFIG_NLS_KOI8_U=m | ||
| 1064 | CONFIG_NLS_UTF8=m | ||
| 1065 | |||
| 1066 | # | ||
| 1067 | # Distributed Lock Manager | ||
| 1068 | # | ||
| 1069 | CONFIG_DLM=m | ||
| 1070 | # CONFIG_DLM_DEBUG is not set | ||
| 1071 | |||
| 1072 | # | ||
| 1073 | # Profiling support | ||
| 1074 | # | ||
| 1075 | # CONFIG_PROFILING is not set | ||
| 1076 | |||
| 1077 | # | ||
| 1078 | # Kernel hacking | ||
| 1079 | # | ||
| 1080 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
| 1081 | # CONFIG_PRINTK_TIME is not set | ||
| 1082 | CONFIG_ENABLE_MUST_CHECK=y | ||
| 1083 | # CONFIG_MAGIC_SYSRQ is not set | ||
| 1084 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 1085 | # CONFIG_DEBUG_FS is not set | ||
| 1086 | # CONFIG_HEADERS_CHECK is not set | ||
| 1087 | # CONFIG_DEBUG_KERNEL is not set | ||
| 1088 | CONFIG_CROSSCOMPILE=y | ||
| 1089 | CONFIG_CMDLINE="" | ||
| 1090 | |||
| 1091 | # | ||
| 1092 | # Security options | ||
| 1093 | # | ||
| 1094 | CONFIG_KEYS=y | ||
| 1095 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
| 1096 | # CONFIG_SECURITY is not set | ||
| 1097 | CONFIG_CRYPTO=y | ||
| 1098 | CONFIG_CRYPTO_ALGAPI=y | ||
| 1099 | CONFIG_CRYPTO_ABLKCIPHER=m | ||
| 1100 | CONFIG_CRYPTO_BLKCIPHER=m | ||
| 1101 | CONFIG_CRYPTO_HASH=y | ||
| 1102 | CONFIG_CRYPTO_MANAGER=y | ||
| 1103 | CONFIG_CRYPTO_HMAC=y | ||
| 1104 | CONFIG_CRYPTO_XCBC=m | ||
| 1105 | CONFIG_CRYPTO_NULL=m | ||
| 1106 | CONFIG_CRYPTO_MD4=m | ||
| 1107 | CONFIG_CRYPTO_MD5=y | ||
| 1108 | CONFIG_CRYPTO_SHA1=m | ||
| 1109 | CONFIG_CRYPTO_SHA256=m | ||
| 1110 | CONFIG_CRYPTO_SHA512=m | ||
| 1111 | CONFIG_CRYPTO_WP512=m | ||
| 1112 | CONFIG_CRYPTO_TGR192=m | ||
| 1113 | CONFIG_CRYPTO_GF128MUL=m | ||
| 1114 | CONFIG_CRYPTO_ECB=m | ||
| 1115 | CONFIG_CRYPTO_CBC=m | ||
| 1116 | CONFIG_CRYPTO_PCBC=m | ||
| 1117 | CONFIG_CRYPTO_LRW=m | ||
| 1118 | CONFIG_CRYPTO_CRYPTD=m | ||
| 1119 | CONFIG_CRYPTO_DES=m | ||
| 1120 | CONFIG_CRYPTO_FCRYPT=m | ||
| 1121 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1122 | CONFIG_CRYPTO_TWOFISH=m | ||
| 1123 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
| 1124 | CONFIG_CRYPTO_SERPENT=m | ||
| 1125 | CONFIG_CRYPTO_AES=m | ||
| 1126 | CONFIG_CRYPTO_CAST5=m | ||
| 1127 | CONFIG_CRYPTO_CAST6=m | ||
| 1128 | CONFIG_CRYPTO_TEA=m | ||
| 1129 | CONFIG_CRYPTO_ARC4=m | ||
| 1130 | CONFIG_CRYPTO_KHAZAD=m | ||
| 1131 | CONFIG_CRYPTO_ANUBIS=m | ||
| 1132 | CONFIG_CRYPTO_DEFLATE=m | ||
| 1133 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
| 1134 | CONFIG_CRYPTO_CRC32C=m | ||
| 1135 | CONFIG_CRYPTO_CAMELLIA=m | ||
| 1136 | # CONFIG_CRYPTO_TEST is not set | ||
| 1137 | # CONFIG_CRYPTO_HW is not set | ||
| 1138 | |||
| 1139 | # | ||
| 1140 | # Library routines | ||
| 1141 | # | ||
| 1142 | CONFIG_BITREVERSE=m | ||
| 1143 | # CONFIG_CRC_CCITT is not set | ||
| 1144 | CONFIG_CRC16=m | ||
| 1145 | # CONFIG_CRC_ITU_T is not set | ||
| 1146 | CONFIG_CRC32=m | ||
| 1147 | # CONFIG_CRC7 is not set | ||
| 1148 | CONFIG_LIBCRC32C=m | ||
| 1149 | CONFIG_ZLIB_INFLATE=m | ||
| 1150 | CONFIG_ZLIB_DEFLATE=m | ||
| 1151 | CONFIG_TEXTSEARCH=y | ||
| 1152 | CONFIG_TEXTSEARCH_KMP=m | ||
| 1153 | CONFIG_TEXTSEARCH_BM=m | ||
| 1154 | CONFIG_TEXTSEARCH_FSM=m | ||
| 1155 | CONFIG_PLIST=y | ||
| 1156 | CONFIG_HAS_IOMEM=y | ||
| 1157 | CONFIG_HAS_IOPORT=y | ||
| 1158 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index ffa08362de17..9e78e1a4ca17 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile | |||
| @@ -76,7 +76,6 @@ obj-$(CONFIG_PROC_FS) += proc.o | |||
| 76 | obj-$(CONFIG_64BIT) += cpu-bugs64.o | 76 | obj-$(CONFIG_64BIT) += cpu-bugs64.o |
| 77 | 77 | ||
| 78 | obj-$(CONFIG_I8253) += i8253.o | 78 | obj-$(CONFIG_I8253) += i8253.o |
| 79 | obj-$(CONFIG_PCSPEAKER) += pcspeaker.o | ||
| 80 | 79 | ||
| 81 | obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o | 80 | obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o |
| 82 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 81 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
diff --git a/arch/mips/kernel/cpu-bugs64.c b/arch/mips/kernel/cpu-bugs64.c index 417bb3e336ac..a1b48af0992f 100644 --- a/arch/mips/kernel/cpu-bugs64.c +++ b/arch/mips/kernel/cpu-bugs64.c | |||
| @@ -167,7 +167,7 @@ static inline void check_mult_sh(void) | |||
| 167 | panic(bug64hit, !R4000_WAR ? r4kwar : nowar); | 167 | panic(bug64hit, !R4000_WAR ? r4kwar : nowar); |
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | static volatile int daddi_ov __initdata = 0; | 170 | static volatile int daddi_ov __cpuinitdata = 0; |
| 171 | 171 | ||
| 172 | asmlinkage void __init do_daddi_ov(struct pt_regs *regs) | 172 | asmlinkage void __init do_daddi_ov(struct pt_regs *regs) |
| 173 | { | 173 | { |
| @@ -239,7 +239,7 @@ static inline void check_daddi(void) | |||
| 239 | panic(bug64hit, !DADDI_WAR ? daddiwar : nowar); | 239 | panic(bug64hit, !DADDI_WAR ? daddiwar : nowar); |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | int daddiu_bug __initdata = -1; | 242 | int daddiu_bug __cpuinitdata = -1; |
| 243 | 243 | ||
| 244 | static inline void check_daddiu(void) | 244 | static inline void check_daddiu(void) |
| 245 | { | 245 | { |
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 5861a432a52f..89c3304cb93c 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
| @@ -550,7 +550,7 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c) | |||
| 550 | } | 550 | } |
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | static char unknown_isa[] __initdata = KERN_ERR \ | 553 | static char unknown_isa[] __cpuinitdata = KERN_ERR \ |
| 554 | "Unsupported ISA type, c0.config0: %d."; | 554 | "Unsupported ISA type, c0.config0: %d."; |
| 555 | 555 | ||
| 556 | static inline unsigned int decode_config0(struct cpuinfo_mips *c) | 556 | static inline unsigned int decode_config0(struct cpuinfo_mips *c) |
| @@ -656,7 +656,7 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c) | |||
| 656 | return config3 & MIPS_CONF_M; | 656 | return config3 & MIPS_CONF_M; |
| 657 | } | 657 | } |
| 658 | 658 | ||
| 659 | static void __init decode_configs(struct cpuinfo_mips *c) | 659 | static void __cpuinit decode_configs(struct cpuinfo_mips *c) |
| 660 | { | 660 | { |
| 661 | /* MIPS32 or MIPS64 compliant CPU. */ | 661 | /* MIPS32 or MIPS64 compliant CPU. */ |
| 662 | c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER | | 662 | c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER | |
| @@ -814,7 +814,7 @@ const char *__cpu_name[NR_CPUS]; | |||
| 814 | /* | 814 | /* |
| 815 | * Name a CPU | 815 | * Name a CPU |
| 816 | */ | 816 | */ |
| 817 | static __init const char *cpu_to_name(struct cpuinfo_mips *c) | 817 | static __cpuinit const char *cpu_to_name(struct cpuinfo_mips *c) |
| 818 | { | 818 | { |
| 819 | const char *name = NULL; | 819 | const char *name = NULL; |
| 820 | 820 | ||
| @@ -896,7 +896,7 @@ static __init const char *cpu_to_name(struct cpuinfo_mips *c) | |||
| 896 | return name; | 896 | return name; |
| 897 | } | 897 | } |
| 898 | 898 | ||
| 899 | __init void cpu_probe(void) | 899 | __cpuinit void cpu_probe(void) |
| 900 | { | 900 | { |
| 901 | struct cpuinfo_mips *c = ¤t_cpu_data; | 901 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 902 | unsigned int cpu = smp_processor_id(); | 902 | unsigned int cpu = smp_processor_id(); |
| @@ -959,7 +959,7 @@ __init void cpu_probe(void) | |||
| 959 | c->srsets = 1; | 959 | c->srsets = 1; |
| 960 | } | 960 | } |
| 961 | 961 | ||
| 962 | __init void cpu_report(void) | 962 | __cpuinit void cpu_report(void) |
| 963 | { | 963 | { |
| 964 | struct cpuinfo_mips *c = ¤t_cpu_data; | 964 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 965 | 965 | ||
diff --git a/arch/mips/kernel/csrc-r4k.c b/arch/mips/kernel/csrc-r4k.c index 0e2b5cd81f67..86e026f067bc 100644 --- a/arch/mips/kernel/csrc-r4k.c +++ b/arch/mips/kernel/csrc-r4k.c | |||
| @@ -22,12 +22,17 @@ static struct clocksource clocksource_mips = { | |||
| 22 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 22 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | void __init init_mips_clocksource(void) | 25 | int __init init_mips_clocksource(void) |
| 26 | { | 26 | { |
| 27 | if (!cpu_has_counter || !mips_hpt_frequency) | ||
| 28 | return -ENXIO; | ||
| 29 | |||
| 27 | /* Calclate a somewhat reasonable rating value */ | 30 | /* Calclate a somewhat reasonable rating value */ |
| 28 | clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000; | 31 | clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000; |
| 29 | 32 | ||
| 30 | clocksource_set_clock(&clocksource_mips, mips_hpt_frequency); | 33 | clocksource_set_clock(&clocksource_mips, mips_hpt_frequency); |
| 31 | 34 | ||
| 32 | clocksource_register(&clocksource_mips); | 35 | clocksource_register(&clocksource_mips); |
| 36 | |||
| 37 | return 0; | ||
| 33 | } | 38 | } |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index a24fb7900901..361364501d34 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
| @@ -195,7 +195,7 @@ NESTED(kernel_entry, 16, sp) # kernel entry point | |||
| 195 | j start_kernel | 195 | j start_kernel |
| 196 | END(kernel_entry) | 196 | END(kernel_entry) |
| 197 | 197 | ||
| 198 | __INIT | 198 | __CPUINIT |
| 199 | 199 | ||
| 200 | #ifdef CONFIG_SMP | 200 | #ifdef CONFIG_SMP |
| 201 | /* | 201 | /* |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index fcae66752972..984c0d0a7b4d 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
| @@ -534,8 +534,7 @@ static int simulate_llsc(struct pt_regs *regs, unsigned int opcode) | |||
| 534 | 534 | ||
| 535 | /* | 535 | /* |
| 536 | * Simulate trapping 'rdhwr' instructions to provide user accessible | 536 | * Simulate trapping 'rdhwr' instructions to provide user accessible |
| 537 | * registers not implemented in hardware. The only current use of this | 537 | * registers not implemented in hardware. |
| 538 | * is the thread area pointer. | ||
| 539 | */ | 538 | */ |
| 540 | static int simulate_rdhwr(struct pt_regs *regs, unsigned int opcode) | 539 | static int simulate_rdhwr(struct pt_regs *regs, unsigned int opcode) |
| 541 | { | 540 | { |
| @@ -545,11 +544,31 @@ static int simulate_rdhwr(struct pt_regs *regs, unsigned int opcode) | |||
| 545 | int rd = (opcode & RD) >> 11; | 544 | int rd = (opcode & RD) >> 11; |
| 546 | int rt = (opcode & RT) >> 16; | 545 | int rt = (opcode & RT) >> 16; |
| 547 | switch (rd) { | 546 | switch (rd) { |
| 548 | case 29: | 547 | case 0: /* CPU number */ |
| 549 | regs->regs[rt] = ti->tp_value; | 548 | regs->regs[rt] = smp_processor_id(); |
| 550 | return 0; | 549 | return 0; |
| 550 | case 1: /* SYNCI length */ | ||
| 551 | regs->regs[rt] = min(current_cpu_data.dcache.linesz, | ||
| 552 | current_cpu_data.icache.linesz); | ||
| 553 | return 0; | ||
| 554 | case 2: /* Read count register */ | ||
| 555 | regs->regs[rt] = read_c0_count(); | ||
| 556 | return 0; | ||
| 557 | case 3: /* Count register resolution */ | ||
| 558 | switch (current_cpu_data.cputype) { | ||
| 559 | case CPU_20KC: | ||
| 560 | case CPU_25KF: | ||
| 561 | regs->regs[rt] = 1; | ||
| 562 | break; | ||
| 551 | default: | 563 | default: |
| 552 | return -1; | 564 | regs->regs[rt] = 2; |
| 565 | } | ||
| 566 | return 0; | ||
| 567 | case 29: | ||
| 568 | regs->regs[rt] = ti->tp_value; | ||
| 569 | return 0; | ||
| 570 | default: | ||
| 571 | return -1; | ||
| 553 | } | 572 | } |
| 554 | } | 573 | } |
| 555 | 574 | ||
| @@ -1287,7 +1306,7 @@ int cp0_compare_irq; | |||
| 1287 | int cp0_perfcount_irq; | 1306 | int cp0_perfcount_irq; |
| 1288 | EXPORT_SYMBOL_GPL(cp0_perfcount_irq); | 1307 | EXPORT_SYMBOL_GPL(cp0_perfcount_irq); |
| 1289 | 1308 | ||
| 1290 | void __init per_cpu_trap_init(void) | 1309 | void __cpuinit per_cpu_trap_init(void) |
| 1291 | { | 1310 | { |
| 1292 | unsigned int cpu = smp_processor_id(); | 1311 | unsigned int cpu = smp_processor_id(); |
| 1293 | unsigned int status_set = ST0_CU0; | 1312 | unsigned int status_set = ST0_CU0; |
| @@ -1404,11 +1423,12 @@ void __init set_handler(unsigned long offset, void *addr, unsigned long size) | |||
| 1404 | flush_icache_range(ebase + offset, ebase + offset + size); | 1423 | flush_icache_range(ebase + offset, ebase + offset + size); |
| 1405 | } | 1424 | } |
| 1406 | 1425 | ||
| 1407 | static char panic_null_cerr[] __initdata = | 1426 | static char panic_null_cerr[] __cpuinitdata = |
| 1408 | "Trying to set NULL cache error exception handler"; | 1427 | "Trying to set NULL cache error exception handler"; |
| 1409 | 1428 | ||
| 1410 | /* Install uncached CPU exception handler */ | 1429 | /* Install uncached CPU exception handler */ |
| 1411 | void __init set_uncached_handler(unsigned long offset, void *addr, unsigned long size) | 1430 | void __cpuinit set_uncached_handler(unsigned long offset, void *addr, |
| 1431 | unsigned long size) | ||
| 1412 | { | 1432 | { |
| 1413 | #ifdef CONFIG_32BIT | 1433 | #ifdef CONFIG_32BIT |
| 1414 | unsigned long uncached_ebase = KSEG1ADDR(ebase); | 1434 | unsigned long uncached_ebase = KSEG1ADDR(ebase); |
diff --git a/arch/mips/lib/ucmpdi2.c b/arch/mips/lib/ucmpdi2.c index b33d8569bcb0..bb4cb2f828ea 100644 --- a/arch/mips/lib/ucmpdi2.c +++ b/arch/mips/lib/ucmpdi2.c | |||
| @@ -17,3 +17,5 @@ word_type __ucmpdi2(unsigned long long a, unsigned long long b) | |||
| 17 | return 2; | 17 | return 2; |
| 18 | return 1; | 18 | return 1; |
| 19 | } | 19 | } |
| 20 | |||
| 21 | EXPORT_SYMBOL(__ucmpdi2); | ||
diff --git a/arch/mips/lib/uncached.c b/arch/mips/lib/uncached.c index 27b012d4341c..a6d1c77034d5 100644 --- a/arch/mips/lib/uncached.c +++ b/arch/mips/lib/uncached.c | |||
| @@ -36,7 +36,7 @@ | |||
| 36 | * values, so we can avoid sharing the same stack area between a cached | 36 | * values, so we can avoid sharing the same stack area between a cached |
| 37 | * and the uncached mode. | 37 | * and the uncached mode. |
| 38 | */ | 38 | */ |
| 39 | unsigned long __init run_uncached(void *func) | 39 | unsigned long __cpuinit run_uncached(void *func) |
| 40 | { | 40 | { |
| 41 | register long sp __asm__("$sp"); | 41 | register long sp __asm__("$sp"); |
| 42 | register long ret __asm__("$2"); | 42 | register long ret __asm__("$2"); |
diff --git a/arch/mips/mips-boards/generic/time.c b/arch/mips/mips-boards/generic/time.c index f02ce6308e51..b50e0fc406ac 100644 --- a/arch/mips/mips-boards/generic/time.c +++ b/arch/mips/mips-boards/generic/time.c | |||
| @@ -146,7 +146,7 @@ void __init plat_perf_setup(void) | |||
| 146 | } | 146 | } |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | unsigned int __init get_c0_compare_int(void) | 149 | unsigned int __cpuinit get_c0_compare_int(void) |
| 150 | { | 150 | { |
| 151 | #ifdef MSC01E_INT_BASE | 151 | #ifdef MSC01E_INT_BASE |
| 152 | if (cpu_has_veic) { | 152 | if (cpu_has_veic) { |
diff --git a/arch/mips/mipssim/sim_time.c b/arch/mips/mipssim/sim_time.c index e39bbe989da3..881ecbc1fa23 100644 --- a/arch/mips/mipssim/sim_time.c +++ b/arch/mips/mipssim/sim_time.c | |||
| @@ -83,7 +83,7 @@ static void mips_timer_dispatch(void) | |||
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | 85 | ||
| 86 | unsigned __init get_c0_compare_int(void) | 86 | unsigned __cpuinit get_c0_compare_int(void) |
| 87 | { | 87 | { |
| 88 | #ifdef MSC01E_INT_BASE | 88 | #ifdef MSC01E_INT_BASE |
| 89 | if (cpu_has_veic) { | 89 | if (cpu_has_veic) { |
diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c index 562abb77d1d5..76935e320214 100644 --- a/arch/mips/mm/c-r3k.c +++ b/arch/mips/mm/c-r3k.c | |||
| @@ -307,7 +307,7 @@ static void r3k_dma_cache_wback_inv(unsigned long start, unsigned long size) | |||
| 307 | r3k_flush_dcache_range(start, start + size); | 307 | r3k_flush_dcache_range(start, start + size); |
| 308 | } | 308 | } |
| 309 | 309 | ||
| 310 | void __init r3k_cache_init(void) | 310 | void __cpuinit r3k_cache_init(void) |
| 311 | { | 311 | { |
| 312 | extern void build_clear_page(void); | 312 | extern void build_clear_page(void); |
| 313 | extern void build_copy_page(void); | 313 | extern void build_copy_page(void); |
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index 2c4f7e11f0d5..6496925b5e29 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
| @@ -93,7 +93,7 @@ static inline void r4k_blast_dcache_page_dc32(unsigned long addr) | |||
| 93 | blast_dcache32_page(addr); | 93 | blast_dcache32_page(addr); |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | static void __init r4k_blast_dcache_page_setup(void) | 96 | static void __cpuinit r4k_blast_dcache_page_setup(void) |
| 97 | { | 97 | { |
| 98 | unsigned long dc_lsize = cpu_dcache_line_size(); | 98 | unsigned long dc_lsize = cpu_dcache_line_size(); |
| 99 | 99 | ||
| @@ -107,7 +107,7 @@ static void __init r4k_blast_dcache_page_setup(void) | |||
| 107 | 107 | ||
| 108 | static void (* r4k_blast_dcache_page_indexed)(unsigned long addr); | 108 | static void (* r4k_blast_dcache_page_indexed)(unsigned long addr); |
| 109 | 109 | ||
| 110 | static void __init r4k_blast_dcache_page_indexed_setup(void) | 110 | static void __cpuinit r4k_blast_dcache_page_indexed_setup(void) |
| 111 | { | 111 | { |
| 112 | unsigned long dc_lsize = cpu_dcache_line_size(); | 112 | unsigned long dc_lsize = cpu_dcache_line_size(); |
| 113 | 113 | ||
| @@ -121,7 +121,7 @@ static void __init r4k_blast_dcache_page_indexed_setup(void) | |||
| 121 | 121 | ||
| 122 | static void (* r4k_blast_dcache)(void); | 122 | static void (* r4k_blast_dcache)(void); |
| 123 | 123 | ||
| 124 | static void __init r4k_blast_dcache_setup(void) | 124 | static void __cpuinit r4k_blast_dcache_setup(void) |
| 125 | { | 125 | { |
| 126 | unsigned long dc_lsize = cpu_dcache_line_size(); | 126 | unsigned long dc_lsize = cpu_dcache_line_size(); |
| 127 | 127 | ||
| @@ -206,7 +206,7 @@ static inline void tx49_blast_icache32_page_indexed(unsigned long page) | |||
| 206 | 206 | ||
| 207 | static void (* r4k_blast_icache_page)(unsigned long addr); | 207 | static void (* r4k_blast_icache_page)(unsigned long addr); |
| 208 | 208 | ||
| 209 | static void __init r4k_blast_icache_page_setup(void) | 209 | static void __cpuinit r4k_blast_icache_page_setup(void) |
| 210 | { | 210 | { |
| 211 | unsigned long ic_lsize = cpu_icache_line_size(); | 211 | unsigned long ic_lsize = cpu_icache_line_size(); |
| 212 | 212 | ||
| @@ -223,7 +223,7 @@ static void __init r4k_blast_icache_page_setup(void) | |||
| 223 | 223 | ||
| 224 | static void (* r4k_blast_icache_page_indexed)(unsigned long addr); | 224 | static void (* r4k_blast_icache_page_indexed)(unsigned long addr); |
| 225 | 225 | ||
| 226 | static void __init r4k_blast_icache_page_indexed_setup(void) | 226 | static void __cpuinit r4k_blast_icache_page_indexed_setup(void) |
| 227 | { | 227 | { |
| 228 | unsigned long ic_lsize = cpu_icache_line_size(); | 228 | unsigned long ic_lsize = cpu_icache_line_size(); |
| 229 | 229 | ||
| @@ -247,7 +247,7 @@ static void __init r4k_blast_icache_page_indexed_setup(void) | |||
| 247 | 247 | ||
| 248 | static void (* r4k_blast_icache)(void); | 248 | static void (* r4k_blast_icache)(void); |
| 249 | 249 | ||
| 250 | static void __init r4k_blast_icache_setup(void) | 250 | static void __cpuinit r4k_blast_icache_setup(void) |
| 251 | { | 251 | { |
| 252 | unsigned long ic_lsize = cpu_icache_line_size(); | 252 | unsigned long ic_lsize = cpu_icache_line_size(); |
| 253 | 253 | ||
| @@ -268,7 +268,7 @@ static void __init r4k_blast_icache_setup(void) | |||
| 268 | 268 | ||
| 269 | static void (* r4k_blast_scache_page)(unsigned long addr); | 269 | static void (* r4k_blast_scache_page)(unsigned long addr); |
| 270 | 270 | ||
| 271 | static void __init r4k_blast_scache_page_setup(void) | 271 | static void __cpuinit r4k_blast_scache_page_setup(void) |
| 272 | { | 272 | { |
| 273 | unsigned long sc_lsize = cpu_scache_line_size(); | 273 | unsigned long sc_lsize = cpu_scache_line_size(); |
| 274 | 274 | ||
| @@ -286,7 +286,7 @@ static void __init r4k_blast_scache_page_setup(void) | |||
| 286 | 286 | ||
| 287 | static void (* r4k_blast_scache_page_indexed)(unsigned long addr); | 287 | static void (* r4k_blast_scache_page_indexed)(unsigned long addr); |
| 288 | 288 | ||
| 289 | static void __init r4k_blast_scache_page_indexed_setup(void) | 289 | static void __cpuinit r4k_blast_scache_page_indexed_setup(void) |
| 290 | { | 290 | { |
| 291 | unsigned long sc_lsize = cpu_scache_line_size(); | 291 | unsigned long sc_lsize = cpu_scache_line_size(); |
| 292 | 292 | ||
| @@ -304,7 +304,7 @@ static void __init r4k_blast_scache_page_indexed_setup(void) | |||
| 304 | 304 | ||
| 305 | static void (* r4k_blast_scache)(void); | 305 | static void (* r4k_blast_scache)(void); |
| 306 | 306 | ||
| 307 | static void __init r4k_blast_scache_setup(void) | 307 | static void __cpuinit r4k_blast_scache_setup(void) |
| 308 | { | 308 | { |
| 309 | unsigned long sc_lsize = cpu_scache_line_size(); | 309 | unsigned long sc_lsize = cpu_scache_line_size(); |
| 310 | 310 | ||
| @@ -691,11 +691,11 @@ static inline void rm7k_erratum31(void) | |||
| 691 | } | 691 | } |
| 692 | } | 692 | } |
| 693 | 693 | ||
| 694 | static char *way_string[] __initdata = { NULL, "direct mapped", "2-way", | 694 | static char *way_string[] __cpuinitdata = { NULL, "direct mapped", "2-way", |
| 695 | "3-way", "4-way", "5-way", "6-way", "7-way", "8-way" | 695 | "3-way", "4-way", "5-way", "6-way", "7-way", "8-way" |
| 696 | }; | 696 | }; |
| 697 | 697 | ||
| 698 | static void __init probe_pcache(void) | 698 | static void __cpuinit probe_pcache(void) |
| 699 | { | 699 | { |
| 700 | struct cpuinfo_mips *c = ¤t_cpu_data; | 700 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 701 | unsigned int config = read_c0_config(); | 701 | unsigned int config = read_c0_config(); |
| @@ -1016,7 +1016,7 @@ static void __init probe_pcache(void) | |||
| 1016 | * executes in KSEG1 space or else you will crash and burn badly. You have | 1016 | * executes in KSEG1 space or else you will crash and burn badly. You have |
| 1017 | * been warned. | 1017 | * been warned. |
| 1018 | */ | 1018 | */ |
| 1019 | static int __init probe_scache(void) | 1019 | static int __cpuinit probe_scache(void) |
| 1020 | { | 1020 | { |
| 1021 | unsigned long flags, addr, begin, end, pow2; | 1021 | unsigned long flags, addr, begin, end, pow2; |
| 1022 | unsigned int config = read_c0_config(); | 1022 | unsigned int config = read_c0_config(); |
| @@ -1095,7 +1095,7 @@ extern int r5k_sc_init(void); | |||
| 1095 | extern int rm7k_sc_init(void); | 1095 | extern int rm7k_sc_init(void); |
| 1096 | extern int mips_sc_init(void); | 1096 | extern int mips_sc_init(void); |
| 1097 | 1097 | ||
| 1098 | static void __init setup_scache(void) | 1098 | static void __cpuinit setup_scache(void) |
| 1099 | { | 1099 | { |
| 1100 | struct cpuinfo_mips *c = ¤t_cpu_data; | 1100 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 1101 | unsigned int config = read_c0_config(); | 1101 | unsigned int config = read_c0_config(); |
| @@ -1206,7 +1206,7 @@ void au1x00_fixup_config_od(void) | |||
| 1206 | } | 1206 | } |
| 1207 | } | 1207 | } |
| 1208 | 1208 | ||
| 1209 | static void __init coherency_setup(void) | 1209 | static void __cpuinit coherency_setup(void) |
| 1210 | { | 1210 | { |
| 1211 | change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT); | 1211 | change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT); |
| 1212 | 1212 | ||
| @@ -1238,7 +1238,7 @@ static void __init coherency_setup(void) | |||
| 1238 | } | 1238 | } |
| 1239 | } | 1239 | } |
| 1240 | 1240 | ||
| 1241 | void __init r4k_cache_init(void) | 1241 | void __cpuinit r4k_cache_init(void) |
| 1242 | { | 1242 | { |
| 1243 | extern void build_clear_page(void); | 1243 | extern void build_clear_page(void); |
| 1244 | extern void build_copy_page(void); | 1244 | extern void build_copy_page(void); |
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c index 9ea121e8cdce..b09d56981d53 100644 --- a/arch/mips/mm/c-tx39.c +++ b/arch/mips/mm/c-tx39.c | |||
| @@ -329,7 +329,7 @@ static __init void tx39_probe_cache(void) | |||
| 329 | } | 329 | } |
| 330 | } | 330 | } |
| 331 | 331 | ||
| 332 | void __init tx39_cache_init(void) | 332 | void __cpuinit tx39_cache_init(void) |
| 333 | { | 333 | { |
| 334 | extern void build_clear_page(void); | 334 | extern void build_clear_page(void); |
| 335 | extern void build_copy_page(void); | 335 | extern void build_copy_page(void); |
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index 6a24651971df..51ab1faa027d 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
| @@ -127,9 +127,10 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address, | |||
| 127 | } | 127 | } |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | static char cache_panic[] __initdata = "Yeee, unsupported cache architecture."; | 130 | static char cache_panic[] __cpuinitdata = |
| 131 | "Yeee, unsupported cache architecture."; | ||
| 131 | 132 | ||
| 132 | void __init cpu_cache_init(void) | 133 | void __devinit cpu_cache_init(void) |
| 133 | { | 134 | { |
| 134 | if (cpu_has_3k_cache) { | 135 | if (cpu_has_3k_cache) { |
| 135 | extern void __weak r3k_cache_init(void); | 136 | extern void __weak r3k_cache_init(void); |
diff --git a/arch/mips/mm/cex-sb1.S b/arch/mips/mm/cex-sb1.S index e54a62f2807c..2d08268bb705 100644 --- a/arch/mips/mm/cex-sb1.S +++ b/arch/mips/mm/cex-sb1.S | |||
| @@ -34,8 +34,6 @@ | |||
| 34 | * is changed. | 34 | * is changed. |
| 35 | */ | 35 | */ |
| 36 | 36 | ||
| 37 | __INIT | ||
| 38 | |||
| 39 | .set mips64 | 37 | .set mips64 |
| 40 | .set noreorder | 38 | .set noreorder |
| 41 | .set noat | 39 | .set noat |
| @@ -51,6 +49,8 @@ | |||
| 51 | * (0x170-0x17f) are used to preserve k0, k1, and ra. | 49 | * (0x170-0x17f) are used to preserve k0, k1, and ra. |
| 52 | */ | 50 | */ |
| 53 | 51 | ||
| 52 | __CPUINIT | ||
| 53 | |||
| 54 | LEAF(except_vec2_sb1) | 54 | LEAF(except_vec2_sb1) |
| 55 | /* | 55 | /* |
| 56 | * If this error is recoverable, we need to exit the handler | 56 | * If this error is recoverable, we need to exit the handler |
diff --git a/arch/mips/mm/pg-r4k.c b/arch/mips/mm/pg-r4k.c index 9185fbf37c0d..455dedb5b39e 100644 --- a/arch/mips/mm/pg-r4k.c +++ b/arch/mips/mm/pg-r4k.c | |||
| @@ -66,21 +66,21 @@ EXPORT_SYMBOL(copy_page); | |||
| 66 | * with 64-bit kernels. The prefetch offsets have been experimentally tuned | 66 | * with 64-bit kernels. The prefetch offsets have been experimentally tuned |
| 67 | * an Origin 200. | 67 | * an Origin 200. |
| 68 | */ | 68 | */ |
| 69 | static int pref_offset_clear __initdata = 512; | 69 | static int pref_offset_clear __cpuinitdata = 512; |
| 70 | static int pref_offset_copy __initdata = 256; | 70 | static int pref_offset_copy __cpuinitdata = 256; |
| 71 | 71 | ||
| 72 | static unsigned int pref_src_mode __initdata; | 72 | static unsigned int pref_src_mode __cpuinitdata; |
| 73 | static unsigned int pref_dst_mode __initdata; | 73 | static unsigned int pref_dst_mode __cpuinitdata; |
| 74 | 74 | ||
| 75 | static int load_offset __initdata; | 75 | static int load_offset __cpuinitdata; |
| 76 | static int store_offset __initdata; | 76 | static int store_offset __cpuinitdata; |
| 77 | 77 | ||
| 78 | static unsigned int __initdata *dest, *epc; | 78 | static unsigned int __cpuinitdata *dest, *epc; |
| 79 | 79 | ||
| 80 | static unsigned int instruction_pending; | 80 | static unsigned int instruction_pending; |
| 81 | static union mips_instruction delayed_mi; | 81 | static union mips_instruction delayed_mi; |
| 82 | 82 | ||
| 83 | static void __init emit_instruction(union mips_instruction mi) | 83 | static void __cpuinit emit_instruction(union mips_instruction mi) |
| 84 | { | 84 | { |
| 85 | if (instruction_pending) | 85 | if (instruction_pending) |
| 86 | *epc++ = delayed_mi.word; | 86 | *epc++ = delayed_mi.word; |
| @@ -222,7 +222,7 @@ static inline void build_cdex_p(void) | |||
| 222 | emit_instruction(mi); | 222 | emit_instruction(mi); |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | static void __init __build_store_reg(int reg) | 225 | static void __cpuinit __build_store_reg(int reg) |
| 226 | { | 226 | { |
| 227 | union mips_instruction mi; | 227 | union mips_instruction mi; |
| 228 | unsigned int width; | 228 | unsigned int width; |
| @@ -339,7 +339,7 @@ static inline void build_jr_ra(void) | |||
| 339 | flush_delay_slot_or_nop(); | 339 | flush_delay_slot_or_nop(); |
| 340 | } | 340 | } |
| 341 | 341 | ||
| 342 | void __init build_clear_page(void) | 342 | void __cpuinit build_clear_page(void) |
| 343 | { | 343 | { |
| 344 | unsigned int loop_start; | 344 | unsigned int loop_start; |
| 345 | unsigned long off; | 345 | unsigned long off; |
| @@ -442,7 +442,7 @@ dest = label(); | |||
| 442 | pr_debug("\t.set pop\n"); | 442 | pr_debug("\t.set pop\n"); |
| 443 | } | 443 | } |
| 444 | 444 | ||
| 445 | void __init build_copy_page(void) | 445 | void __cpuinit build_copy_page(void) |
| 446 | { | 446 | { |
| 447 | unsigned int loop_start; | 447 | unsigned int loop_start; |
| 448 | unsigned long off; | 448 | unsigned long off; |
diff --git a/arch/mips/mm/pg-sb1.c b/arch/mips/mm/pg-sb1.c index 89925ec57d6a..49e289d05414 100644 --- a/arch/mips/mm/pg-sb1.c +++ b/arch/mips/mm/pg-sb1.c | |||
| @@ -293,10 +293,10 @@ void copy_page(void *to, void *from) | |||
| 293 | EXPORT_SYMBOL(clear_page); | 293 | EXPORT_SYMBOL(clear_page); |
| 294 | EXPORT_SYMBOL(copy_page); | 294 | EXPORT_SYMBOL(copy_page); |
| 295 | 295 | ||
| 296 | void __init build_clear_page(void) | 296 | void __cpuinit build_clear_page(void) |
| 297 | { | 297 | { |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | void __init build_copy_page(void) | 300 | void __cpuinit build_copy_page(void) |
| 301 | { | 301 | { |
| 302 | } | 302 | } |
diff --git a/arch/mips/mm/sc-ip22.c b/arch/mips/mm/sc-ip22.c index d236cf8b7374..1f602a110e10 100644 --- a/arch/mips/mm/sc-ip22.c +++ b/arch/mips/mm/sc-ip22.c | |||
| @@ -168,7 +168,7 @@ struct bcache_ops indy_sc_ops = { | |||
| 168 | .bc_inv = indy_sc_wback_invalidate | 168 | .bc_inv = indy_sc_wback_invalidate |
| 169 | }; | 169 | }; |
| 170 | 170 | ||
| 171 | void __init indy_sc_init(void) | 171 | void __cpuinit indy_sc_init(void) |
| 172 | { | 172 | { |
| 173 | if (indy_sc_probe()) { | 173 | if (indy_sc_probe()) { |
| 174 | indy_sc_enable(); | 174 | indy_sc_enable(); |
diff --git a/arch/mips/mm/sc-mips.c b/arch/mips/mm/sc-mips.c index c13170bc675c..b55c2d1b998f 100644 --- a/arch/mips/mm/sc-mips.c +++ b/arch/mips/mm/sc-mips.c | |||
| @@ -100,7 +100,7 @@ static inline int __init mips_sc_probe(void) | |||
| 100 | return 1; | 100 | return 1; |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | int __init mips_sc_init(void) | 103 | int __cpuinit mips_sc_init(void) |
| 104 | { | 104 | { |
| 105 | int found = mips_sc_probe(); | 105 | int found = mips_sc_probe(); |
| 106 | if (found) { | 106 | if (found) { |
| @@ -109,4 +109,3 @@ int __init mips_sc_init(void) | |||
| 109 | } | 109 | } |
| 110 | return found; | 110 | return found; |
| 111 | } | 111 | } |
| 112 | |||
diff --git a/arch/mips/mm/sc-r5k.c b/arch/mips/mm/sc-r5k.c index d35b6c1103a3..f330d38e5575 100644 --- a/arch/mips/mm/sc-r5k.c +++ b/arch/mips/mm/sc-r5k.c | |||
| @@ -99,7 +99,7 @@ static struct bcache_ops r5k_sc_ops = { | |||
| 99 | .bc_inv = r5k_dma_cache_inv_sc | 99 | .bc_inv = r5k_dma_cache_inv_sc |
| 100 | }; | 100 | }; |
| 101 | 101 | ||
| 102 | void __init r5k_sc_init(void) | 102 | void __cpuinit r5k_sc_init(void) |
| 103 | { | 103 | { |
| 104 | if (r5k_sc_probe()) { | 104 | if (r5k_sc_probe()) { |
| 105 | r5k_sc_enable(); | 105 | r5k_sc_enable(); |
diff --git a/arch/mips/mm/sc-rm7k.c b/arch/mips/mm/sc-rm7k.c index 31ec73052423..fc227f3b1199 100644 --- a/arch/mips/mm/sc-rm7k.c +++ b/arch/mips/mm/sc-rm7k.c | |||
| @@ -128,7 +128,7 @@ struct bcache_ops rm7k_sc_ops = { | |||
| 128 | .bc_inv = rm7k_sc_inv | 128 | .bc_inv = rm7k_sc_inv |
| 129 | }; | 129 | }; |
| 130 | 130 | ||
| 131 | void __init rm7k_sc_init(void) | 131 | void __cpuinit rm7k_sc_init(void) |
| 132 | { | 132 | { |
| 133 | struct cpuinfo_mips *c = ¤t_cpu_data; | 133 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 134 | unsigned int config = read_c0_config(); | 134 | unsigned int config = read_c0_config(); |
diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c index 7948e9a5e372..a782549ac80e 100644 --- a/arch/mips/mm/tlb-r3k.c +++ b/arch/mips/mm/tlb-r3k.c | |||
| @@ -281,7 +281,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, | |||
| 281 | } | 281 | } |
| 282 | } | 282 | } |
| 283 | 283 | ||
| 284 | void __init tlb_init(void) | 284 | void __cpuinit tlb_init(void) |
| 285 | { | 285 | { |
| 286 | local_flush_tlb_all(); | 286 | local_flush_tlb_all(); |
| 287 | 287 | ||
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c index 74ae0348cc92..63065d6e8063 100644 --- a/arch/mips/mm/tlb-r4k.c +++ b/arch/mips/mm/tlb-r4k.c | |||
| @@ -388,7 +388,7 @@ void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, | |||
| 388 | * lifetime of the system | 388 | * lifetime of the system |
| 389 | */ | 389 | */ |
| 390 | 390 | ||
| 391 | static int temp_tlb_entry __initdata; | 391 | static int temp_tlb_entry __cpuinitdata; |
| 392 | 392 | ||
| 393 | __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, | 393 | __init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, |
| 394 | unsigned long entryhi, unsigned long pagemask) | 394 | unsigned long entryhi, unsigned long pagemask) |
| @@ -427,7 +427,7 @@ out: | |||
| 427 | return ret; | 427 | return ret; |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | static void __init probe_tlb(unsigned long config) | 430 | static void __cpuinit probe_tlb(unsigned long config) |
| 431 | { | 431 | { |
| 432 | struct cpuinfo_mips *c = ¤t_cpu_data; | 432 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 433 | unsigned int reg; | 433 | unsigned int reg; |
| @@ -455,7 +455,7 @@ static void __init probe_tlb(unsigned long config) | |||
| 455 | c->tlbsize = ((reg >> 25) & 0x3f) + 1; | 455 | c->tlbsize = ((reg >> 25) & 0x3f) + 1; |
| 456 | } | 456 | } |
| 457 | 457 | ||
| 458 | static int __initdata ntlb = 0; | 458 | static int __cpuinitdata ntlb = 0; |
| 459 | static int __init set_ntlb(char *str) | 459 | static int __init set_ntlb(char *str) |
| 460 | { | 460 | { |
| 461 | get_option(&str, &ntlb); | 461 | get_option(&str, &ntlb); |
| @@ -464,7 +464,7 @@ static int __init set_ntlb(char *str) | |||
| 464 | 464 | ||
| 465 | __setup("ntlb=", set_ntlb); | 465 | __setup("ntlb=", set_ntlb); |
| 466 | 466 | ||
| 467 | void __init tlb_init(void) | 467 | void __cpuinit tlb_init(void) |
| 468 | { | 468 | { |
| 469 | unsigned int config = read_c0_config(); | 469 | unsigned int config = read_c0_config(); |
| 470 | 470 | ||
| @@ -473,7 +473,7 @@ void __init tlb_init(void) | |||
| 473 | * - On R4600 1.7 the tlbp never hits for pages smaller than | 473 | * - On R4600 1.7 the tlbp never hits for pages smaller than |
| 474 | * the value in the c0_pagemask register. | 474 | * the value in the c0_pagemask register. |
| 475 | * - The entire mm handling assumes the c0_pagemask register to | 475 | * - The entire mm handling assumes the c0_pagemask register to |
| 476 | * be set for 4kb pages. | 476 | * be set to fixed-size pages. |
| 477 | */ | 477 | */ |
| 478 | probe_tlb(config); | 478 | probe_tlb(config); |
| 479 | write_c0_pagemask(PM_DEFAULT_MASK); | 479 | write_c0_pagemask(PM_DEFAULT_MASK); |
diff --git a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c index bd8409d8ff62..4f01a3be215c 100644 --- a/arch/mips/mm/tlb-r8k.c +++ b/arch/mips/mm/tlb-r8k.c | |||
| @@ -214,14 +214,14 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte) | |||
| 214 | local_irq_restore(flags); | 214 | local_irq_restore(flags); |
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | static void __init probe_tlb(unsigned long config) | 217 | static void __cpuinit probe_tlb(unsigned long config) |
| 218 | { | 218 | { |
| 219 | struct cpuinfo_mips *c = ¤t_cpu_data; | 219 | struct cpuinfo_mips *c = ¤t_cpu_data; |
| 220 | 220 | ||
| 221 | c->tlbsize = 3 * 128; /* 3 sets each 128 entries */ | 221 | c->tlbsize = 3 * 128; /* 3 sets each 128 entries */ |
| 222 | } | 222 | } |
| 223 | 223 | ||
| 224 | void __init tlb_init(void) | 224 | void __cpuinit tlb_init(void) |
| 225 | { | 225 | { |
| 226 | unsigned int config = read_c0_config(); | 226 | unsigned int config = read_c0_config(); |
| 227 | unsigned long status; | 227 | unsigned long status; |
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 218a6cc415e8..3a93d4ce2703 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
| @@ -60,7 +60,7 @@ static inline int __maybe_unused r10000_llsc_war(void) | |||
| 60 | * why; it's not an issue caused by the core RTL. | 60 | * why; it's not an issue caused by the core RTL. |
| 61 | * | 61 | * |
| 62 | */ | 62 | */ |
| 63 | static int __init m4kc_tlbp_war(void) | 63 | static int __cpuinit m4kc_tlbp_war(void) |
| 64 | { | 64 | { |
| 65 | return (current_cpu_data.processor_id & 0xffff00) == | 65 | return (current_cpu_data.processor_id & 0xffff00) == |
| 66 | (PRID_COMP_MIPS | PRID_IMP_4KC); | 66 | (PRID_COMP_MIPS | PRID_IMP_4KC); |
| @@ -144,16 +144,16 @@ static inline void dump_handler(const u32 *handler, int count) | |||
| 144 | * We deliberately chose a buffer size of 128, so we won't scribble | 144 | * We deliberately chose a buffer size of 128, so we won't scribble |
| 145 | * over anything important on overflow before we panic. | 145 | * over anything important on overflow before we panic. |
| 146 | */ | 146 | */ |
| 147 | static u32 tlb_handler[128] __initdata; | 147 | static u32 tlb_handler[128] __cpuinitdata; |
| 148 | 148 | ||
| 149 | /* simply assume worst case size for labels and relocs */ | 149 | /* simply assume worst case size for labels and relocs */ |
| 150 | static struct uasm_label labels[128] __initdata; | 150 | static struct uasm_label labels[128] __cpuinitdata; |
| 151 | static struct uasm_reloc relocs[128] __initdata; | 151 | static struct uasm_reloc relocs[128] __cpuinitdata; |
| 152 | 152 | ||
| 153 | /* | 153 | /* |
| 154 | * The R3000 TLB handler is simple. | 154 | * The R3000 TLB handler is simple. |
| 155 | */ | 155 | */ |
| 156 | static void __init build_r3000_tlb_refill_handler(void) | 156 | static void __cpuinit build_r3000_tlb_refill_handler(void) |
| 157 | { | 157 | { |
| 158 | long pgdc = (long)pgd_current; | 158 | long pgdc = (long)pgd_current; |
| 159 | u32 *p; | 159 | u32 *p; |
| @@ -197,7 +197,7 @@ static void __init build_r3000_tlb_refill_handler(void) | |||
| 197 | * other one.To keep things simple, we first assume linear space, | 197 | * other one.To keep things simple, we first assume linear space, |
| 198 | * then we relocate it to the final handler layout as needed. | 198 | * then we relocate it to the final handler layout as needed. |
| 199 | */ | 199 | */ |
| 200 | static u32 final_handler[64] __initdata; | 200 | static u32 final_handler[64] __cpuinitdata; |
| 201 | 201 | ||
| 202 | /* | 202 | /* |
| 203 | * Hazards | 203 | * Hazards |
| @@ -221,7 +221,7 @@ static u32 final_handler[64] __initdata; | |||
| 221 | * | 221 | * |
| 222 | * As if we MIPS hackers wouldn't know how to nop pipelines happy ... | 222 | * As if we MIPS hackers wouldn't know how to nop pipelines happy ... |
| 223 | */ | 223 | */ |
| 224 | static void __init __maybe_unused build_tlb_probe_entry(u32 **p) | 224 | static void __cpuinit __maybe_unused build_tlb_probe_entry(u32 **p) |
| 225 | { | 225 | { |
| 226 | switch (current_cpu_type()) { | 226 | switch (current_cpu_type()) { |
| 227 | /* Found by experiment: R4600 v2.0 needs this, too. */ | 227 | /* Found by experiment: R4600 v2.0 needs this, too. */ |
| @@ -245,7 +245,7 @@ static void __init __maybe_unused build_tlb_probe_entry(u32 **p) | |||
| 245 | */ | 245 | */ |
| 246 | enum tlb_write_entry { tlb_random, tlb_indexed }; | 246 | enum tlb_write_entry { tlb_random, tlb_indexed }; |
| 247 | 247 | ||
| 248 | static void __init build_tlb_write_entry(u32 **p, struct uasm_label **l, | 248 | static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l, |
| 249 | struct uasm_reloc **r, | 249 | struct uasm_reloc **r, |
| 250 | enum tlb_write_entry wmode) | 250 | enum tlb_write_entry wmode) |
| 251 | { | 251 | { |
| @@ -389,7 +389,7 @@ static void __init build_tlb_write_entry(u32 **p, struct uasm_label **l, | |||
| 389 | * TMP and PTR are scratch. | 389 | * TMP and PTR are scratch. |
| 390 | * TMP will be clobbered, PTR will hold the pmd entry. | 390 | * TMP will be clobbered, PTR will hold the pmd entry. |
| 391 | */ | 391 | */ |
| 392 | static void __init | 392 | static void __cpuinit |
| 393 | build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | 393 | build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, |
| 394 | unsigned int tmp, unsigned int ptr) | 394 | unsigned int tmp, unsigned int ptr) |
| 395 | { | 395 | { |
| @@ -450,7 +450,7 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
| 450 | * BVADDR is the faulting address, PTR is scratch. | 450 | * BVADDR is the faulting address, PTR is scratch. |
| 451 | * PTR will hold the pgd for vmalloc. | 451 | * PTR will hold the pgd for vmalloc. |
| 452 | */ | 452 | */ |
| 453 | static void __init | 453 | static void __cpuinit |
| 454 | build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | 454 | build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, |
| 455 | unsigned int bvaddr, unsigned int ptr) | 455 | unsigned int bvaddr, unsigned int ptr) |
| 456 | { | 456 | { |
| @@ -522,7 +522,7 @@ build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
| 522 | * TMP and PTR are scratch. | 522 | * TMP and PTR are scratch. |
| 523 | * TMP will be clobbered, PTR will hold the pgd entry. | 523 | * TMP will be clobbered, PTR will hold the pgd entry. |
| 524 | */ | 524 | */ |
| 525 | static void __init __maybe_unused | 525 | static void __cpuinit __maybe_unused |
| 526 | build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr) | 526 | build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr) |
| 527 | { | 527 | { |
| 528 | long pgdc = (long)pgd_current; | 528 | long pgdc = (long)pgd_current; |
| @@ -557,7 +557,7 @@ build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr) | |||
| 557 | 557 | ||
| 558 | #endif /* !CONFIG_64BIT */ | 558 | #endif /* !CONFIG_64BIT */ |
| 559 | 559 | ||
| 560 | static void __init build_adjust_context(u32 **p, unsigned int ctx) | 560 | static void __cpuinit build_adjust_context(u32 **p, unsigned int ctx) |
| 561 | { | 561 | { |
| 562 | unsigned int shift = 4 - (PTE_T_LOG2 + 1) + PAGE_SHIFT - 12; | 562 | unsigned int shift = 4 - (PTE_T_LOG2 + 1) + PAGE_SHIFT - 12; |
| 563 | unsigned int mask = (PTRS_PER_PTE / 2 - 1) << (PTE_T_LOG2 + 1); | 563 | unsigned int mask = (PTRS_PER_PTE / 2 - 1) << (PTE_T_LOG2 + 1); |
| @@ -583,7 +583,7 @@ static void __init build_adjust_context(u32 **p, unsigned int ctx) | |||
| 583 | uasm_i_andi(p, ctx, ctx, mask); | 583 | uasm_i_andi(p, ctx, ctx, mask); |
| 584 | } | 584 | } |
| 585 | 585 | ||
| 586 | static void __init build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr) | 586 | static void __cpuinit build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr) |
| 587 | { | 587 | { |
| 588 | /* | 588 | /* |
| 589 | * Bug workaround for the Nevada. It seems as if under certain | 589 | * Bug workaround for the Nevada. It seems as if under certain |
| @@ -608,7 +608,7 @@ static void __init build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr) | |||
| 608 | UASM_i_ADDU(p, ptr, ptr, tmp); /* add in offset */ | 608 | UASM_i_ADDU(p, ptr, ptr, tmp); /* add in offset */ |
| 609 | } | 609 | } |
| 610 | 610 | ||
| 611 | static void __init build_update_entries(u32 **p, unsigned int tmp, | 611 | static void __cpuinit build_update_entries(u32 **p, unsigned int tmp, |
| 612 | unsigned int ptep) | 612 | unsigned int ptep) |
| 613 | { | 613 | { |
| 614 | /* | 614 | /* |
| @@ -651,7 +651,7 @@ static void __init build_update_entries(u32 **p, unsigned int tmp, | |||
| 651 | #endif | 651 | #endif |
| 652 | } | 652 | } |
| 653 | 653 | ||
| 654 | static void __init build_r4000_tlb_refill_handler(void) | 654 | static void __cpuinit build_r4000_tlb_refill_handler(void) |
| 655 | { | 655 | { |
| 656 | u32 *p = tlb_handler; | 656 | u32 *p = tlb_handler; |
| 657 | struct uasm_label *l = labels; | 657 | struct uasm_label *l = labels; |
| @@ -783,7 +783,7 @@ u32 handle_tlbl[FASTPATH_SIZE] __cacheline_aligned; | |||
| 783 | u32 handle_tlbs[FASTPATH_SIZE] __cacheline_aligned; | 783 | u32 handle_tlbs[FASTPATH_SIZE] __cacheline_aligned; |
| 784 | u32 handle_tlbm[FASTPATH_SIZE] __cacheline_aligned; | 784 | u32 handle_tlbm[FASTPATH_SIZE] __cacheline_aligned; |
| 785 | 785 | ||
| 786 | static void __init | 786 | static void __cpuinit |
| 787 | iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr) | 787 | iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr) |
| 788 | { | 788 | { |
| 789 | #ifdef CONFIG_SMP | 789 | #ifdef CONFIG_SMP |
| @@ -803,7 +803,7 @@ iPTE_LW(u32 **p, struct uasm_label **l, unsigned int pte, unsigned int ptr) | |||
| 803 | #endif | 803 | #endif |
| 804 | } | 804 | } |
| 805 | 805 | ||
| 806 | static void __init | 806 | static void __cpuinit |
| 807 | iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr, | 807 | iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr, |
| 808 | unsigned int mode) | 808 | unsigned int mode) |
| 809 | { | 809 | { |
| @@ -863,7 +863,7 @@ iPTE_SW(u32 **p, struct uasm_reloc **r, unsigned int pte, unsigned int ptr, | |||
| 863 | * the page table where this PTE is located, PTE will be re-loaded | 863 | * the page table where this PTE is located, PTE will be re-loaded |
| 864 | * with it's original value. | 864 | * with it's original value. |
| 865 | */ | 865 | */ |
| 866 | static void __init | 866 | static void __cpuinit |
| 867 | build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | 867 | build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r, |
| 868 | unsigned int pte, unsigned int ptr, enum label_id lid) | 868 | unsigned int pte, unsigned int ptr, enum label_id lid) |
| 869 | { | 869 | { |
| @@ -874,7 +874,7 @@ build_pte_present(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
| 874 | } | 874 | } |
| 875 | 875 | ||
| 876 | /* Make PTE valid, store result in PTR. */ | 876 | /* Make PTE valid, store result in PTR. */ |
| 877 | static void __init | 877 | static void __cpuinit |
| 878 | build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte, | 878 | build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte, |
| 879 | unsigned int ptr) | 879 | unsigned int ptr) |
| 880 | { | 880 | { |
| @@ -887,7 +887,7 @@ build_make_valid(u32 **p, struct uasm_reloc **r, unsigned int pte, | |||
| 887 | * Check if PTE can be written to, if not branch to LABEL. Regardless | 887 | * Check if PTE can be written to, if not branch to LABEL. Regardless |
| 888 | * restore PTE with value from PTR when done. | 888 | * restore PTE with value from PTR when done. |
| 889 | */ | 889 | */ |
| 890 | static void __init | 890 | static void __cpuinit |
| 891 | build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | 891 | build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, |
| 892 | unsigned int pte, unsigned int ptr, enum label_id lid) | 892 | unsigned int pte, unsigned int ptr, enum label_id lid) |
| 893 | { | 893 | { |
| @@ -900,7 +900,7 @@ build_pte_writable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
| 900 | /* Make PTE writable, update software status bits as well, then store | 900 | /* Make PTE writable, update software status bits as well, then store |
| 901 | * at PTR. | 901 | * at PTR. |
| 902 | */ | 902 | */ |
| 903 | static void __init | 903 | static void __cpuinit |
| 904 | build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte, | 904 | build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte, |
| 905 | unsigned int ptr) | 905 | unsigned int ptr) |
| 906 | { | 906 | { |
| @@ -914,7 +914,7 @@ build_make_write(u32 **p, struct uasm_reloc **r, unsigned int pte, | |||
| 914 | * Check if PTE can be modified, if not branch to LABEL. Regardless | 914 | * Check if PTE can be modified, if not branch to LABEL. Regardless |
| 915 | * restore PTE with value from PTR when done. | 915 | * restore PTE with value from PTR when done. |
| 916 | */ | 916 | */ |
| 917 | static void __init | 917 | static void __cpuinit |
| 918 | build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | 918 | build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, |
| 919 | unsigned int pte, unsigned int ptr, enum label_id lid) | 919 | unsigned int pte, unsigned int ptr, enum label_id lid) |
| 920 | { | 920 | { |
| @@ -931,7 +931,7 @@ build_pte_modifiable(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
| 931 | * This places the pte into ENTRYLO0 and writes it with tlbwi. | 931 | * This places the pte into ENTRYLO0 and writes it with tlbwi. |
| 932 | * Then it returns. | 932 | * Then it returns. |
| 933 | */ | 933 | */ |
| 934 | static void __init | 934 | static void __cpuinit |
| 935 | build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp) | 935 | build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp) |
| 936 | { | 936 | { |
| 937 | uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */ | 937 | uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* cp0 delay */ |
| @@ -947,7 +947,7 @@ build_r3000_pte_reload_tlbwi(u32 **p, unsigned int pte, unsigned int tmp) | |||
| 947 | * may have the probe fail bit set as a result of a trap on a | 947 | * may have the probe fail bit set as a result of a trap on a |
| 948 | * kseg2 access, i.e. without refill. Then it returns. | 948 | * kseg2 access, i.e. without refill. Then it returns. |
| 949 | */ | 949 | */ |
| 950 | static void __init | 950 | static void __cpuinit |
| 951 | build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l, | 951 | build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l, |
| 952 | struct uasm_reloc **r, unsigned int pte, | 952 | struct uasm_reloc **r, unsigned int pte, |
| 953 | unsigned int tmp) | 953 | unsigned int tmp) |
| @@ -965,7 +965,7 @@ build_r3000_tlb_reload_write(u32 **p, struct uasm_label **l, | |||
| 965 | uasm_i_rfe(p); /* branch delay */ | 965 | uasm_i_rfe(p); /* branch delay */ |
| 966 | } | 966 | } |
| 967 | 967 | ||
| 968 | static void __init | 968 | static void __cpuinit |
| 969 | build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte, | 969 | build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte, |
| 970 | unsigned int ptr) | 970 | unsigned int ptr) |
| 971 | { | 971 | { |
| @@ -985,7 +985,7 @@ build_r3000_tlbchange_handler_head(u32 **p, unsigned int pte, | |||
| 985 | uasm_i_tlbp(p); /* load delay */ | 985 | uasm_i_tlbp(p); /* load delay */ |
| 986 | } | 986 | } |
| 987 | 987 | ||
| 988 | static void __init build_r3000_tlb_load_handler(void) | 988 | static void __cpuinit build_r3000_tlb_load_handler(void) |
| 989 | { | 989 | { |
| 990 | u32 *p = handle_tlbl; | 990 | u32 *p = handle_tlbl; |
| 991 | struct uasm_label *l = labels; | 991 | struct uasm_label *l = labels; |
| @@ -1015,7 +1015,7 @@ static void __init build_r3000_tlb_load_handler(void) | |||
| 1015 | dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl)); | 1015 | dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl)); |
| 1016 | } | 1016 | } |
| 1017 | 1017 | ||
| 1018 | static void __init build_r3000_tlb_store_handler(void) | 1018 | static void __cpuinit build_r3000_tlb_store_handler(void) |
| 1019 | { | 1019 | { |
| 1020 | u32 *p = handle_tlbs; | 1020 | u32 *p = handle_tlbs; |
| 1021 | struct uasm_label *l = labels; | 1021 | struct uasm_label *l = labels; |
| @@ -1045,7 +1045,7 @@ static void __init build_r3000_tlb_store_handler(void) | |||
| 1045 | dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs)); | 1045 | dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs)); |
| 1046 | } | 1046 | } |
| 1047 | 1047 | ||
| 1048 | static void __init build_r3000_tlb_modify_handler(void) | 1048 | static void __cpuinit build_r3000_tlb_modify_handler(void) |
| 1049 | { | 1049 | { |
| 1050 | u32 *p = handle_tlbm; | 1050 | u32 *p = handle_tlbm; |
| 1051 | struct uasm_label *l = labels; | 1051 | struct uasm_label *l = labels; |
| @@ -1078,7 +1078,7 @@ static void __init build_r3000_tlb_modify_handler(void) | |||
| 1078 | /* | 1078 | /* |
| 1079 | * R4000 style TLB load/store/modify handlers. | 1079 | * R4000 style TLB load/store/modify handlers. |
| 1080 | */ | 1080 | */ |
| 1081 | static void __init | 1081 | static void __cpuinit |
| 1082 | build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l, | 1082 | build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l, |
| 1083 | struct uasm_reloc **r, unsigned int pte, | 1083 | struct uasm_reloc **r, unsigned int pte, |
| 1084 | unsigned int ptr) | 1084 | unsigned int ptr) |
| @@ -1103,7 +1103,7 @@ build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l, | |||
| 1103 | build_tlb_probe_entry(p); | 1103 | build_tlb_probe_entry(p); |
| 1104 | } | 1104 | } |
| 1105 | 1105 | ||
| 1106 | static void __init | 1106 | static void __cpuinit |
| 1107 | build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l, | 1107 | build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l, |
| 1108 | struct uasm_reloc **r, unsigned int tmp, | 1108 | struct uasm_reloc **r, unsigned int tmp, |
| 1109 | unsigned int ptr) | 1109 | unsigned int ptr) |
| @@ -1120,7 +1120,7 @@ build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l, | |||
| 1120 | #endif | 1120 | #endif |
| 1121 | } | 1121 | } |
| 1122 | 1122 | ||
| 1123 | static void __init build_r4000_tlb_load_handler(void) | 1123 | static void __cpuinit build_r4000_tlb_load_handler(void) |
| 1124 | { | 1124 | { |
| 1125 | u32 *p = handle_tlbl; | 1125 | u32 *p = handle_tlbl; |
| 1126 | struct uasm_label *l = labels; | 1126 | struct uasm_label *l = labels; |
| @@ -1160,7 +1160,7 @@ static void __init build_r4000_tlb_load_handler(void) | |||
| 1160 | dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl)); | 1160 | dump_handler(handle_tlbl, ARRAY_SIZE(handle_tlbl)); |
| 1161 | } | 1161 | } |
| 1162 | 1162 | ||
| 1163 | static void __init build_r4000_tlb_store_handler(void) | 1163 | static void __cpuinit build_r4000_tlb_store_handler(void) |
| 1164 | { | 1164 | { |
| 1165 | u32 *p = handle_tlbs; | 1165 | u32 *p = handle_tlbs; |
| 1166 | struct uasm_label *l = labels; | 1166 | struct uasm_label *l = labels; |
| @@ -1191,7 +1191,7 @@ static void __init build_r4000_tlb_store_handler(void) | |||
| 1191 | dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs)); | 1191 | dump_handler(handle_tlbs, ARRAY_SIZE(handle_tlbs)); |
| 1192 | } | 1192 | } |
| 1193 | 1193 | ||
| 1194 | static void __init build_r4000_tlb_modify_handler(void) | 1194 | static void __cpuinit build_r4000_tlb_modify_handler(void) |
| 1195 | { | 1195 | { |
| 1196 | u32 *p = handle_tlbm; | 1196 | u32 *p = handle_tlbm; |
| 1197 | struct uasm_label *l = labels; | 1197 | struct uasm_label *l = labels; |
| @@ -1223,7 +1223,7 @@ static void __init build_r4000_tlb_modify_handler(void) | |||
| 1223 | dump_handler(handle_tlbm, ARRAY_SIZE(handle_tlbm)); | 1223 | dump_handler(handle_tlbm, ARRAY_SIZE(handle_tlbm)); |
| 1224 | } | 1224 | } |
| 1225 | 1225 | ||
| 1226 | void __init build_tlb_refill_handler(void) | 1226 | void __cpuinit build_tlb_refill_handler(void) |
| 1227 | { | 1227 | { |
| 1228 | /* | 1228 | /* |
| 1229 | * The refill handler is generated per-CPU, multi-node systems | 1229 | * The refill handler is generated per-CPU, multi-node systems |
| @@ -1269,7 +1269,7 @@ void __init build_tlb_refill_handler(void) | |||
| 1269 | } | 1269 | } |
| 1270 | } | 1270 | } |
| 1271 | 1271 | ||
| 1272 | void __init flush_tlb_handlers(void) | 1272 | void __cpuinit flush_tlb_handlers(void) |
| 1273 | { | 1273 | { |
| 1274 | flush_icache_range((unsigned long)handle_tlbl, | 1274 | flush_icache_range((unsigned long)handle_tlbl, |
| 1275 | (unsigned long)handle_tlbl + sizeof(handle_tlbl)); | 1275 | (unsigned long)handle_tlbl + sizeof(handle_tlbl)); |
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c index e3f74ed5f704..1a6f7704cc89 100644 --- a/arch/mips/mm/uasm.c +++ b/arch/mips/mm/uasm.c | |||
| @@ -82,7 +82,7 @@ struct insn { | |||
| 82 | | (e) << RE_SH \ | 82 | | (e) << RE_SH \ |
| 83 | | (f) << FUNC_SH) | 83 | | (f) << FUNC_SH) |
| 84 | 84 | ||
| 85 | static struct insn insn_table[] __initdata = { | 85 | static struct insn insn_table[] __cpuinitdata = { |
| 86 | { insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, | 86 | { insn_addiu, M(addiu_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, |
| 87 | { insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD }, | 87 | { insn_addu, M(spec_op, 0, 0, 0, 0, addu_op), RS | RT | RD }, |
| 88 | { insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD }, | 88 | { insn_and, M(spec_op, 0, 0, 0, 0, and_op), RS | RT | RD }, |
| @@ -135,7 +135,7 @@ static struct insn insn_table[] __initdata = { | |||
| 135 | 135 | ||
| 136 | #undef M | 136 | #undef M |
| 137 | 137 | ||
| 138 | static inline __init u32 build_rs(u32 arg) | 138 | static inline __cpuinit u32 build_rs(u32 arg) |
| 139 | { | 139 | { |
| 140 | if (arg & ~RS_MASK) | 140 | if (arg & ~RS_MASK) |
| 141 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 141 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -143,7 +143,7 @@ static inline __init u32 build_rs(u32 arg) | |||
| 143 | return (arg & RS_MASK) << RS_SH; | 143 | return (arg & RS_MASK) << RS_SH; |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | static inline __init u32 build_rt(u32 arg) | 146 | static inline __cpuinit u32 build_rt(u32 arg) |
| 147 | { | 147 | { |
| 148 | if (arg & ~RT_MASK) | 148 | if (arg & ~RT_MASK) |
| 149 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 149 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -151,7 +151,7 @@ static inline __init u32 build_rt(u32 arg) | |||
| 151 | return (arg & RT_MASK) << RT_SH; | 151 | return (arg & RT_MASK) << RT_SH; |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | static inline __init u32 build_rd(u32 arg) | 154 | static inline __cpuinit u32 build_rd(u32 arg) |
| 155 | { | 155 | { |
| 156 | if (arg & ~RD_MASK) | 156 | if (arg & ~RD_MASK) |
| 157 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 157 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -159,7 +159,7 @@ static inline __init u32 build_rd(u32 arg) | |||
| 159 | return (arg & RD_MASK) << RD_SH; | 159 | return (arg & RD_MASK) << RD_SH; |
| 160 | } | 160 | } |
| 161 | 161 | ||
| 162 | static inline __init u32 build_re(u32 arg) | 162 | static inline __cpuinit u32 build_re(u32 arg) |
| 163 | { | 163 | { |
| 164 | if (arg & ~RE_MASK) | 164 | if (arg & ~RE_MASK) |
| 165 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 165 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -167,7 +167,7 @@ static inline __init u32 build_re(u32 arg) | |||
| 167 | return (arg & RE_MASK) << RE_SH; | 167 | return (arg & RE_MASK) << RE_SH; |
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | static inline __init u32 build_simm(s32 arg) | 170 | static inline __cpuinit u32 build_simm(s32 arg) |
| 171 | { | 171 | { |
| 172 | if (arg > 0x7fff || arg < -0x8000) | 172 | if (arg > 0x7fff || arg < -0x8000) |
| 173 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 173 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -175,7 +175,7 @@ static inline __init u32 build_simm(s32 arg) | |||
| 175 | return arg & 0xffff; | 175 | return arg & 0xffff; |
| 176 | } | 176 | } |
| 177 | 177 | ||
| 178 | static inline __init u32 build_uimm(u32 arg) | 178 | static inline __cpuinit u32 build_uimm(u32 arg) |
| 179 | { | 179 | { |
| 180 | if (arg & ~IMM_MASK) | 180 | if (arg & ~IMM_MASK) |
| 181 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 181 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -183,7 +183,7 @@ static inline __init u32 build_uimm(u32 arg) | |||
| 183 | return arg & IMM_MASK; | 183 | return arg & IMM_MASK; |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | static inline __init u32 build_bimm(s32 arg) | 186 | static inline __cpuinit u32 build_bimm(s32 arg) |
| 187 | { | 187 | { |
| 188 | if (arg > 0x1ffff || arg < -0x20000) | 188 | if (arg > 0x1ffff || arg < -0x20000) |
| 189 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 189 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -194,7 +194,7 @@ static inline __init u32 build_bimm(s32 arg) | |||
| 194 | return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff); | 194 | return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | static inline __init u32 build_jimm(u32 arg) | 197 | static inline __cpuinit u32 build_jimm(u32 arg) |
| 198 | { | 198 | { |
| 199 | if (arg & ~((JIMM_MASK) << 2)) | 199 | if (arg & ~((JIMM_MASK) << 2)) |
| 200 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 200 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -202,7 +202,7 @@ static inline __init u32 build_jimm(u32 arg) | |||
| 202 | return (arg >> 2) & JIMM_MASK; | 202 | return (arg >> 2) & JIMM_MASK; |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | static inline __init u32 build_func(u32 arg) | 205 | static inline __cpuinit u32 build_func(u32 arg) |
| 206 | { | 206 | { |
| 207 | if (arg & ~FUNC_MASK) | 207 | if (arg & ~FUNC_MASK) |
| 208 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 208 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -210,7 +210,7 @@ static inline __init u32 build_func(u32 arg) | |||
| 210 | return arg & FUNC_MASK; | 210 | return arg & FUNC_MASK; |
| 211 | } | 211 | } |
| 212 | 212 | ||
| 213 | static inline __init u32 build_set(u32 arg) | 213 | static inline __cpuinit u32 build_set(u32 arg) |
| 214 | { | 214 | { |
| 215 | if (arg & ~SET_MASK) | 215 | if (arg & ~SET_MASK) |
| 216 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 216 | printk(KERN_WARNING "Micro-assembler field overflow\n"); |
| @@ -222,7 +222,7 @@ static inline __init u32 build_set(u32 arg) | |||
| 222 | * The order of opcode arguments is implicitly left to right, | 222 | * The order of opcode arguments is implicitly left to right, |
| 223 | * starting with RS and ending with FUNC or IMM. | 223 | * starting with RS and ending with FUNC or IMM. |
| 224 | */ | 224 | */ |
| 225 | static void __init build_insn(u32 **buf, enum opcode opc, ...) | 225 | static void __cpuinit build_insn(u32 **buf, enum opcode opc, ...) |
| 226 | { | 226 | { |
| 227 | struct insn *ip = NULL; | 227 | struct insn *ip = NULL; |
| 228 | unsigned int i; | 228 | unsigned int i; |
| @@ -375,14 +375,14 @@ I_u3u1u2(_xor) | |||
| 375 | I_u2u1u3(_xori) | 375 | I_u2u1u3(_xori) |
| 376 | 376 | ||
| 377 | /* Handle labels. */ | 377 | /* Handle labels. */ |
| 378 | void __init uasm_build_label(struct uasm_label **lab, u32 *addr, int lid) | 378 | void __cpuinit uasm_build_label(struct uasm_label **lab, u32 *addr, int lid) |
| 379 | { | 379 | { |
| 380 | (*lab)->addr = addr; | 380 | (*lab)->addr = addr; |
| 381 | (*lab)->lab = lid; | 381 | (*lab)->lab = lid; |
| 382 | (*lab)++; | 382 | (*lab)++; |
| 383 | } | 383 | } |
| 384 | 384 | ||
| 385 | int __init uasm_in_compat_space_p(long addr) | 385 | int __cpuinit uasm_in_compat_space_p(long addr) |
| 386 | { | 386 | { |
| 387 | /* Is this address in 32bit compat space? */ | 387 | /* Is this address in 32bit compat space? */ |
| 388 | #ifdef CONFIG_64BIT | 388 | #ifdef CONFIG_64BIT |
| @@ -392,7 +392,7 @@ int __init uasm_in_compat_space_p(long addr) | |||
| 392 | #endif | 392 | #endif |
| 393 | } | 393 | } |
| 394 | 394 | ||
| 395 | int __init uasm_rel_highest(long val) | 395 | int __cpuinit uasm_rel_highest(long val) |
| 396 | { | 396 | { |
| 397 | #ifdef CONFIG_64BIT | 397 | #ifdef CONFIG_64BIT |
| 398 | return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000; | 398 | return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000; |
| @@ -401,7 +401,7 @@ int __init uasm_rel_highest(long val) | |||
| 401 | #endif | 401 | #endif |
| 402 | } | 402 | } |
| 403 | 403 | ||
| 404 | int __init uasm_rel_higher(long val) | 404 | int __cpuinit uasm_rel_higher(long val) |
| 405 | { | 405 | { |
| 406 | #ifdef CONFIG_64BIT | 406 | #ifdef CONFIG_64BIT |
| 407 | return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000; | 407 | return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000; |
| @@ -410,17 +410,17 @@ int __init uasm_rel_higher(long val) | |||
| 410 | #endif | 410 | #endif |
| 411 | } | 411 | } |
| 412 | 412 | ||
| 413 | int __init uasm_rel_hi(long val) | 413 | int __cpuinit uasm_rel_hi(long val) |
| 414 | { | 414 | { |
| 415 | return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000; | 415 | return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000; |
| 416 | } | 416 | } |
| 417 | 417 | ||
| 418 | int __init uasm_rel_lo(long val) | 418 | int __cpuinit uasm_rel_lo(long val) |
| 419 | { | 419 | { |
| 420 | return ((val & 0xffff) ^ 0x8000) - 0x8000; | 420 | return ((val & 0xffff) ^ 0x8000) - 0x8000; |
| 421 | } | 421 | } |
| 422 | 422 | ||
| 423 | void __init UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr) | 423 | void __cpuinit UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr) |
| 424 | { | 424 | { |
| 425 | if (!uasm_in_compat_space_p(addr)) { | 425 | if (!uasm_in_compat_space_p(addr)) { |
| 426 | uasm_i_lui(buf, rs, uasm_rel_highest(addr)); | 426 | uasm_i_lui(buf, rs, uasm_rel_highest(addr)); |
| @@ -436,7 +436,7 @@ void __init UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr) | |||
| 436 | uasm_i_lui(buf, rs, uasm_rel_hi(addr)); | 436 | uasm_i_lui(buf, rs, uasm_rel_hi(addr)); |
| 437 | } | 437 | } |
| 438 | 438 | ||
| 439 | void __init UASM_i_LA(u32 **buf, unsigned int rs, long addr) | 439 | void __cpuinit UASM_i_LA(u32 **buf, unsigned int rs, long addr) |
| 440 | { | 440 | { |
| 441 | UASM_i_LA_mostly(buf, rs, addr); | 441 | UASM_i_LA_mostly(buf, rs, addr); |
| 442 | if (uasm_rel_lo(addr)) { | 442 | if (uasm_rel_lo(addr)) { |
| @@ -448,7 +448,7 @@ void __init UASM_i_LA(u32 **buf, unsigned int rs, long addr) | |||
| 448 | } | 448 | } |
| 449 | 449 | ||
| 450 | /* Handle relocations. */ | 450 | /* Handle relocations. */ |
| 451 | void __init | 451 | void __cpuinit |
| 452 | uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid) | 452 | uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid) |
| 453 | { | 453 | { |
| 454 | (*rel)->addr = addr; | 454 | (*rel)->addr = addr; |
| @@ -457,7 +457,7 @@ uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid) | |||
| 457 | (*rel)++; | 457 | (*rel)++; |
| 458 | } | 458 | } |
| 459 | 459 | ||
| 460 | static inline void __init | 460 | static inline void __cpuinit |
| 461 | __resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) | 461 | __resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) |
| 462 | { | 462 | { |
| 463 | long laddr = (long)lab->addr; | 463 | long laddr = (long)lab->addr; |
| @@ -474,7 +474,7 @@ __resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) | |||
| 474 | } | 474 | } |
| 475 | } | 475 | } |
| 476 | 476 | ||
| 477 | void __init | 477 | void __cpuinit |
| 478 | uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) | 478 | uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) |
| 479 | { | 479 | { |
| 480 | struct uasm_label *l; | 480 | struct uasm_label *l; |
| @@ -485,7 +485,7 @@ uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab) | |||
| 485 | __resolve_relocs(rel, l); | 485 | __resolve_relocs(rel, l); |
| 486 | } | 486 | } |
| 487 | 487 | ||
| 488 | void __init | 488 | void __cpuinit |
| 489 | uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off) | 489 | uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off) |
| 490 | { | 490 | { |
| 491 | for (; rel->lab != UASM_LABEL_INVALID; rel++) | 491 | for (; rel->lab != UASM_LABEL_INVALID; rel++) |
| @@ -493,7 +493,7 @@ uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off) | |||
| 493 | rel->addr += off; | 493 | rel->addr += off; |
| 494 | } | 494 | } |
| 495 | 495 | ||
| 496 | void __init | 496 | void __cpuinit |
| 497 | uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off) | 497 | uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off) |
| 498 | { | 498 | { |
| 499 | for (; lab->lab != UASM_LABEL_INVALID; lab++) | 499 | for (; lab->lab != UASM_LABEL_INVALID; lab++) |
| @@ -501,7 +501,7 @@ uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off) | |||
| 501 | lab->addr += off; | 501 | lab->addr += off; |
| 502 | } | 502 | } |
| 503 | 503 | ||
| 504 | void __init | 504 | void __cpuinit |
| 505 | uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first, | 505 | uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first, |
| 506 | u32 *end, u32 *target) | 506 | u32 *end, u32 *target) |
| 507 | { | 507 | { |
| @@ -513,7 +513,7 @@ uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first, | |||
| 513 | uasm_move_labels(lab, first, end, off); | 513 | uasm_move_labels(lab, first, end, off); |
| 514 | } | 514 | } |
| 515 | 515 | ||
| 516 | int __init uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr) | 516 | int __cpuinit uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr) |
| 517 | { | 517 | { |
| 518 | for (; rel->lab != UASM_LABEL_INVALID; rel++) { | 518 | for (; rel->lab != UASM_LABEL_INVALID; rel++) { |
| 519 | if (rel->addr == addr | 519 | if (rel->addr == addr |
| @@ -526,49 +526,49 @@ int __init uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr) | |||
| 526 | } | 526 | } |
| 527 | 527 | ||
| 528 | /* Convenience functions for labeled branches. */ | 528 | /* Convenience functions for labeled branches. */ |
| 529 | void __init | 529 | void __cpuinit |
| 530 | uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 530 | uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) |
| 531 | { | 531 | { |
| 532 | uasm_r_mips_pc16(r, *p, lid); | 532 | uasm_r_mips_pc16(r, *p, lid); |
| 533 | uasm_i_bltz(p, reg, 0); | 533 | uasm_i_bltz(p, reg, 0); |
| 534 | } | 534 | } |
| 535 | 535 | ||
| 536 | void __init | 536 | void __cpuinit |
| 537 | uasm_il_b(u32 **p, struct uasm_reloc **r, int lid) | 537 | uasm_il_b(u32 **p, struct uasm_reloc **r, int lid) |
| 538 | { | 538 | { |
| 539 | uasm_r_mips_pc16(r, *p, lid); | 539 | uasm_r_mips_pc16(r, *p, lid); |
| 540 | uasm_i_b(p, 0); | 540 | uasm_i_b(p, 0); |
| 541 | } | 541 | } |
| 542 | 542 | ||
| 543 | void __init | 543 | void __cpuinit |
| 544 | uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 544 | uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) |
| 545 | { | 545 | { |
| 546 | uasm_r_mips_pc16(r, *p, lid); | 546 | uasm_r_mips_pc16(r, *p, lid); |
| 547 | uasm_i_beqz(p, reg, 0); | 547 | uasm_i_beqz(p, reg, 0); |
| 548 | } | 548 | } |
| 549 | 549 | ||
| 550 | void __init | 550 | void __cpuinit |
| 551 | uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 551 | uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) |
| 552 | { | 552 | { |
| 553 | uasm_r_mips_pc16(r, *p, lid); | 553 | uasm_r_mips_pc16(r, *p, lid); |
| 554 | uasm_i_beqzl(p, reg, 0); | 554 | uasm_i_beqzl(p, reg, 0); |
| 555 | } | 555 | } |
| 556 | 556 | ||
| 557 | void __init | 557 | void __cpuinit |
| 558 | uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 558 | uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) |
| 559 | { | 559 | { |
| 560 | uasm_r_mips_pc16(r, *p, lid); | 560 | uasm_r_mips_pc16(r, *p, lid); |
| 561 | uasm_i_bnez(p, reg, 0); | 561 | uasm_i_bnez(p, reg, 0); |
| 562 | } | 562 | } |
| 563 | 563 | ||
| 564 | void __init | 564 | void __cpuinit |
| 565 | uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 565 | uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) |
| 566 | { | 566 | { |
| 567 | uasm_r_mips_pc16(r, *p, lid); | 567 | uasm_r_mips_pc16(r, *p, lid); |
| 568 | uasm_i_bgezl(p, reg, 0); | 568 | uasm_i_bgezl(p, reg, 0); |
| 569 | } | 569 | } |
| 570 | 570 | ||
| 571 | void __init | 571 | void __cpuinit |
| 572 | uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 572 | uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) |
| 573 | { | 573 | { |
| 574 | uasm_r_mips_pc16(r, *p, lid); | 574 | uasm_r_mips_pc16(r, *p, lid); |
diff --git a/arch/mips/mm/uasm.h b/arch/mips/mm/uasm.h index a10fc1135c76..fe0574f6e77d 100644 --- a/arch/mips/mm/uasm.h +++ b/arch/mips/mm/uasm.h | |||
| @@ -11,38 +11,38 @@ | |||
| 11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
| 12 | 12 | ||
| 13 | #define Ip_u1u2u3(op) \ | 13 | #define Ip_u1u2u3(op) \ |
| 14 | void __init \ | 14 | void __cpuinit \ |
| 15 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | 15 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) |
| 16 | 16 | ||
| 17 | #define Ip_u2u1u3(op) \ | 17 | #define Ip_u2u1u3(op) \ |
| 18 | void __init \ | 18 | void __cpuinit \ |
| 19 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | 19 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) |
| 20 | 20 | ||
| 21 | #define Ip_u3u1u2(op) \ | 21 | #define Ip_u3u1u2(op) \ |
| 22 | void __init \ | 22 | void __cpuinit \ |
| 23 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) | 23 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c) |
| 24 | 24 | ||
| 25 | #define Ip_u1u2s3(op) \ | 25 | #define Ip_u1u2s3(op) \ |
| 26 | void __init \ | 26 | void __cpuinit \ |
| 27 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) | 27 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) |
| 28 | 28 | ||
| 29 | #define Ip_u2s3u1(op) \ | 29 | #define Ip_u2s3u1(op) \ |
| 30 | void __init \ | 30 | void __cpuinit \ |
| 31 | uasm_i##op(u32 **buf, unsigned int a, signed int b, unsigned int c) | 31 | uasm_i##op(u32 **buf, unsigned int a, signed int b, unsigned int c) |
| 32 | 32 | ||
| 33 | #define Ip_u2u1s3(op) \ | 33 | #define Ip_u2u1s3(op) \ |
| 34 | void __init \ | 34 | void __cpuinit \ |
| 35 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) | 35 | uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) |
| 36 | 36 | ||
| 37 | #define Ip_u1u2(op) \ | 37 | #define Ip_u1u2(op) \ |
| 38 | void __init uasm_i##op(u32 **buf, unsigned int a, unsigned int b) | 38 | void __cpuinit uasm_i##op(u32 **buf, unsigned int a, unsigned int b) |
| 39 | 39 | ||
| 40 | #define Ip_u1s2(op) \ | 40 | #define Ip_u1s2(op) \ |
| 41 | void __init uasm_i##op(u32 **buf, unsigned int a, signed int b) | 41 | void __cpuinit uasm_i##op(u32 **buf, unsigned int a, signed int b) |
| 42 | 42 | ||
| 43 | #define Ip_u1(op) void __init uasm_i##op(u32 **buf, unsigned int a) | 43 | #define Ip_u1(op) void __cpuinit uasm_i##op(u32 **buf, unsigned int a) |
| 44 | 44 | ||
| 45 | #define Ip_0(op) void __init uasm_i##op(u32 **buf) | 45 | #define Ip_0(op) void __cpuinit uasm_i##op(u32 **buf) |
| 46 | 46 | ||
| 47 | Ip_u2u1s3(_addiu); | 47 | Ip_u2u1s3(_addiu); |
| 48 | Ip_u3u1u2(_addu); | 48 | Ip_u3u1u2(_addu); |
| @@ -98,19 +98,19 @@ struct uasm_label { | |||
| 98 | int lab; | 98 | int lab; |
| 99 | }; | 99 | }; |
| 100 | 100 | ||
| 101 | void __init uasm_build_label(struct uasm_label **lab, u32 *addr, int lid); | 101 | void __cpuinit uasm_build_label(struct uasm_label **lab, u32 *addr, int lid); |
| 102 | #ifdef CONFIG_64BIT | 102 | #ifdef CONFIG_64BIT |
| 103 | int __init uasm_in_compat_space_p(long addr); | 103 | int uasm_in_compat_space_p(long addr); |
| 104 | int __init uasm_rel_highest(long val); | 104 | int uasm_rel_highest(long val); |
| 105 | int __init uasm_rel_higher(long val); | 105 | int uasm_rel_higher(long val); |
| 106 | #endif | 106 | #endif |
| 107 | int __init uasm_rel_hi(long val); | 107 | int uasm_rel_hi(long val); |
| 108 | int __init uasm_rel_lo(long val); | 108 | int uasm_rel_lo(long val); |
| 109 | void __init UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr); | 109 | void UASM_i_LA_mostly(u32 **buf, unsigned int rs, long addr); |
| 110 | void __init UASM_i_LA(u32 **buf, unsigned int rs, long addr); | 110 | void UASM_i_LA(u32 **buf, unsigned int rs, long addr); |
| 111 | 111 | ||
| 112 | #define UASM_L_LA(lb) \ | 112 | #define UASM_L_LA(lb) \ |
| 113 | static inline void __init uasm_l##lb(struct uasm_label **lab, u32 *addr) \ | 113 | static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \ |
| 114 | { \ | 114 | { \ |
| 115 | uasm_build_label(lab, addr, label##lb); \ | 115 | uasm_build_label(lab, addr, label##lb); \ |
| 116 | } | 116 | } |
| @@ -164,29 +164,19 @@ struct uasm_reloc { | |||
| 164 | /* This is zero so we can use zeroed label arrays. */ | 164 | /* This is zero so we can use zeroed label arrays. */ |
| 165 | #define UASM_LABEL_INVALID 0 | 165 | #define UASM_LABEL_INVALID 0 |
| 166 | 166 | ||
| 167 | void __init uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid); | 167 | void uasm_r_mips_pc16(struct uasm_reloc **rel, u32 *addr, int lid); |
| 168 | void __init | 168 | void uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab); |
| 169 | uasm_resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab); | 169 | void uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off); |
| 170 | void __init | 170 | void uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off); |
| 171 | uasm_move_relocs(struct uasm_reloc *rel, u32 *first, u32 *end, long off); | 171 | void uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, |
| 172 | void __init | 172 | u32 *first, u32 *end, u32 *target); |
| 173 | uasm_move_labels(struct uasm_label *lab, u32 *first, u32 *end, long off); | 173 | int uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr); |
| 174 | void __init | ||
| 175 | uasm_copy_handler(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first, | ||
| 176 | u32 *end, u32 *target); | ||
| 177 | int __init uasm_insn_has_bdelay(struct uasm_reloc *rel, u32 *addr); | ||
| 178 | 174 | ||
| 179 | /* Convenience functions for labeled branches. */ | 175 | /* Convenience functions for labeled branches. */ |
| 180 | void __init | 176 | void uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
| 181 | uasm_il_bltz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | 177 | void uasm_il_b(u32 **p, struct uasm_reloc **r, int lid); |
| 182 | void __init uasm_il_b(u32 **p, struct uasm_reloc **r, int lid); | 178 | void uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
| 183 | void __init | 179 | void uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
| 184 | uasm_il_beqz(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | 180 | void uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
| 185 | void __init | 181 | void uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
| 186 | uasm_il_beqzl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | 182 | void uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); |
| 187 | void __init | ||
| 188 | uasm_il_bnez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | ||
| 189 | void __init | ||
| 190 | uasm_il_bgezl(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | ||
| 191 | void __init | ||
| 192 | uasm_il_bgez(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid); | ||
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c index 30ed36125bcd..ab68c4318a30 100644 --- a/arch/mips/pci/pci-bcm1480.c +++ b/arch/mips/pci/pci-bcm1480.c | |||
| @@ -249,8 +249,9 @@ static int __init bcm1480_pcibios_init(void) | |||
| 249 | * XXX ehs: Should this happen in PCI Device mode? | 249 | * XXX ehs: Should this happen in PCI Device mode? |
| 250 | */ | 250 | */ |
| 251 | 251 | ||
| 252 | set_io_port_base((unsigned long) | 252 | bcm1480_controller.io_map_base = (unsigned long) |
| 253 | ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536)); | 253 | ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536); |
| 254 | set_io_port_base(bcm1480_controller.io_map_base); | ||
| 254 | isa_slot_offset = (unsigned long) | 255 | isa_slot_offset = (unsigned long) |
| 255 | ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024); | 256 | ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024); |
| 256 | 257 | ||
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c index a322543ac34e..bb64828a92fe 100644 --- a/arch/mips/pci/pci-ip27.c +++ b/arch/mips/pci/pci-ip27.c | |||
| @@ -40,7 +40,7 @@ int irq_to_slot[MAX_PCI_BUSSES * MAX_DEVICES_PER_PCIBUS]; | |||
| 40 | 40 | ||
| 41 | extern struct pci_ops bridge_pci_ops; | 41 | extern struct pci_ops bridge_pci_ops; |
| 42 | 42 | ||
| 43 | int __init bridge_probe(nasid_t nasid, int widget_id, int masterwid) | 43 | int __cpuinit bridge_probe(nasid_t nasid, int widget_id, int masterwid) |
| 44 | { | 44 | { |
| 45 | unsigned long offset = NODE_OFFSET(nasid); | 45 | unsigned long offset = NODE_OFFSET(nasid); |
| 46 | struct bridge_controller *bc; | 46 | struct bridge_controller *bc; |
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index f9471d77c096..358ad6210949 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c | |||
| @@ -260,7 +260,7 @@ static void pcibios_fixup_device_resources(struct pci_dev *dev, | |||
| 260 | } | 260 | } |
| 261 | } | 261 | } |
| 262 | 262 | ||
| 263 | void pcibios_fixup_bus(struct pci_bus *bus) | 263 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) |
| 264 | { | 264 | { |
| 265 | /* Propagate hose info into the subordinate devices. */ | 265 | /* Propagate hose info into the subordinate devices. */ |
| 266 | 266 | ||
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c index 653f3ec61cab..3a7df647ca77 100644 --- a/arch/mips/pmc-sierra/yosemite/smp.c +++ b/arch/mips/pmc-sierra/yosemite/smp.c | |||
| @@ -7,10 +7,10 @@ | |||
| 7 | 7 | ||
| 8 | #define LAUNCHSTACK_SIZE 256 | 8 | #define LAUNCHSTACK_SIZE 256 |
| 9 | 9 | ||
| 10 | static __initdata DEFINE_SPINLOCK(launch_lock); | 10 | static __cpuinitdata DEFINE_SPINLOCK(launch_lock); |
| 11 | 11 | ||
| 12 | static unsigned long secondary_sp __initdata; | 12 | static unsigned long secondary_sp __cpuinitdata; |
| 13 | static unsigned long secondary_gp __initdata; | 13 | static unsigned long secondary_gp __cpuinitdata; |
| 14 | 14 | ||
| 15 | static unsigned char launchstack[LAUNCHSTACK_SIZE] __initdata | 15 | static unsigned char launchstack[LAUNCHSTACK_SIZE] __initdata |
| 16 | __attribute__((aligned(2 * sizeof(long)))); | 16 | __attribute__((aligned(2 * sizeof(long)))); |
diff --git a/arch/mips/sgi-ip27/ip27-init.c b/arch/mips/sgi-ip27/ip27-init.c index a49e7c85f724..7093e7c573a4 100644 --- a/arch/mips/sgi-ip27/ip27-init.c +++ b/arch/mips/sgi-ip27/ip27-init.c | |||
| @@ -53,7 +53,7 @@ extern void pcibr_setup(cnodeid_t); | |||
| 53 | 53 | ||
| 54 | extern void xtalk_probe_node(cnodeid_t nid); | 54 | extern void xtalk_probe_node(cnodeid_t nid); |
| 55 | 55 | ||
| 56 | static void __init per_hub_init(cnodeid_t cnode) | 56 | static void __cpuinit per_hub_init(cnodeid_t cnode) |
| 57 | { | 57 | { |
| 58 | struct hub_data *hub = hub_data(cnode); | 58 | struct hub_data *hub = hub_data(cnode); |
| 59 | nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode); | 59 | nasid_t nasid = COMPACT_TO_NASID_NODEID(cnode); |
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c index 08d45369be45..25d3baf0ebc4 100644 --- a/arch/mips/sgi-ip27/ip27-timer.c +++ b/arch/mips/sgi-ip27/ip27-timer.c | |||
| @@ -285,7 +285,7 @@ void __cpuinit cpu_time_init(void) | |||
| 285 | set_c0_status(SRB_TIMOCLK); | 285 | set_c0_status(SRB_TIMOCLK); |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | void __init hub_rtc_init(cnodeid_t cnode) | 288 | void __cpuinit hub_rtc_init(cnodeid_t cnode) |
| 289 | { | 289 | { |
| 290 | /* | 290 | /* |
| 291 | * We only need to initialize the current node. | 291 | * We only need to initialize the current node. |
diff --git a/arch/mips/sgi-ip27/ip27-xtalk.c b/arch/mips/sgi-ip27/ip27-xtalk.c index fc82f34a32ce..6ae64e8dfc40 100644 --- a/arch/mips/sgi-ip27/ip27-xtalk.c +++ b/arch/mips/sgi-ip27/ip27-xtalk.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | extern int bridge_probe(nasid_t nasid, int widget, int masterwid); | 23 | extern int bridge_probe(nasid_t nasid, int widget, int masterwid); |
| 24 | 24 | ||
| 25 | static int __init probe_one_port(nasid_t nasid, int widget, int masterwid) | 25 | static int __cpuinit probe_one_port(nasid_t nasid, int widget, int masterwid) |
| 26 | { | 26 | { |
| 27 | widgetreg_t widget_id; | 27 | widgetreg_t widget_id; |
| 28 | xwidget_part_num_t partnum; | 28 | xwidget_part_num_t partnum; |
| @@ -46,7 +46,7 @@ static int __init probe_one_port(nasid_t nasid, int widget, int masterwid) | |||
| 46 | return 0; | 46 | return 0; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | static int __init xbow_probe(nasid_t nasid) | 49 | static int __cpuinit xbow_probe(nasid_t nasid) |
| 50 | { | 50 | { |
| 51 | lboard_t *brd; | 51 | lboard_t *brd; |
| 52 | klxbow_t *xbow_p; | 52 | klxbow_t *xbow_p; |
| @@ -99,7 +99,7 @@ static int __init xbow_probe(nasid_t nasid) | |||
| 99 | return 0; | 99 | return 0; |
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | void __init xtalk_probe_node(cnodeid_t nid) | 102 | void __cpuinit xtalk_probe_node(cnodeid_t nid) |
| 103 | { | 103 | { |
| 104 | volatile u64 hubreg; | 104 | volatile u64 hubreg; |
| 105 | nasid_t nasid; | 105 | nasid_t nasid; |
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index e574de4efb36..5ddad7bd60ac 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile | |||
| @@ -16,6 +16,9 @@ | |||
| 16 | # Modified for PA-RISC Linux by Paul Lahaie, Alex deVries, | 16 | # Modified for PA-RISC Linux by Paul Lahaie, Alex deVries, |
| 17 | # Mike Shaver, Helge Deller and Martin K. Petersen | 17 | # Mike Shaver, Helge Deller and Martin K. Petersen |
| 18 | # | 18 | # |
| 19 | |||
| 20 | KBUILD_DEFCONFIG := default_defconfig | ||
| 21 | |||
| 19 | NM = sh $(srctree)/arch/parisc/nm | 22 | NM = sh $(srctree)/arch/parisc/nm |
| 20 | CHECKFLAGS += -D__hppa__=1 | 23 | CHECKFLAGS += -D__hppa__=1 |
| 21 | 24 | ||
diff --git a/arch/parisc/defconfig b/arch/parisc/configs/default_defconfig index 448a757b06c6..448a757b06c6 100644 --- a/arch/parisc/defconfig +++ b/arch/parisc/configs/default_defconfig | |||
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 4ab83d56974d..7177a6cd1b7f 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c | |||
| @@ -1080,6 +1080,9 @@ void pdc_io_reset_devices(void) | |||
| 1080 | spin_unlock_irqrestore(&pdc_lock, flags); | 1080 | spin_unlock_irqrestore(&pdc_lock, flags); |
| 1081 | } | 1081 | } |
| 1082 | 1082 | ||
| 1083 | /* locked by pdc_console_lock */ | ||
| 1084 | static int __attribute__((aligned(8))) iodc_retbuf[32]; | ||
| 1085 | static char __attribute__((aligned(64))) iodc_dbuf[4096]; | ||
| 1083 | 1086 | ||
| 1084 | /** | 1087 | /** |
| 1085 | * pdc_iodc_print - Console print using IODC. | 1088 | * pdc_iodc_print - Console print using IODC. |
| @@ -1091,24 +1094,20 @@ void pdc_io_reset_devices(void) | |||
| 1091 | * Since the HP console requires CR+LF to perform a 'newline', we translate | 1094 | * Since the HP console requires CR+LF to perform a 'newline', we translate |
| 1092 | * "\n" to "\r\n". | 1095 | * "\n" to "\r\n". |
| 1093 | */ | 1096 | */ |
| 1094 | int pdc_iodc_print(unsigned char *str, unsigned count) | 1097 | int pdc_iodc_print(const unsigned char *str, unsigned count) |
| 1095 | { | 1098 | { |
| 1096 | /* XXX Should we spinlock posx usage */ | ||
| 1097 | static int posx; /* for simple TAB-Simulation... */ | 1099 | static int posx; /* for simple TAB-Simulation... */ |
| 1098 | int __attribute__((aligned(8))) iodc_retbuf[32]; | ||
| 1099 | char __attribute__((aligned(64))) iodc_dbuf[4096]; | ||
| 1100 | unsigned int i; | 1100 | unsigned int i; |
| 1101 | unsigned long flags; | 1101 | unsigned long flags; |
| 1102 | 1102 | ||
| 1103 | memset(iodc_dbuf, 0, 4096); | 1103 | for (i = 0; i < count && i < 79;) { |
| 1104 | for (i = 0; i < count && i < 2048;) { | ||
| 1105 | switch(str[i]) { | 1104 | switch(str[i]) { |
| 1106 | case '\n': | 1105 | case '\n': |
| 1107 | iodc_dbuf[i+0] = '\r'; | 1106 | iodc_dbuf[i+0] = '\r'; |
| 1108 | iodc_dbuf[i+1] = '\n'; | 1107 | iodc_dbuf[i+1] = '\n'; |
| 1109 | i += 2; | 1108 | i += 2; |
| 1110 | posx = 0; | 1109 | posx = 0; |
| 1111 | break; | 1110 | goto print; |
| 1112 | case '\t': | 1111 | case '\t': |
| 1113 | while (posx & 7) { | 1112 | while (posx & 7) { |
| 1114 | iodc_dbuf[i] = ' '; | 1113 | iodc_dbuf[i] = ' '; |
| @@ -1124,6 +1123,16 @@ int pdc_iodc_print(unsigned char *str, unsigned count) | |||
| 1124 | } | 1123 | } |
| 1125 | } | 1124 | } |
| 1126 | 1125 | ||
| 1126 | /* if we're at the end of line, and not already inserting a newline, | ||
| 1127 | * insert one anyway. iodc console doesn't claim to support >79 char | ||
| 1128 | * lines. don't account for this in the return value. | ||
| 1129 | */ | ||
| 1130 | if (i == 79 && iodc_dbuf[i-1] != '\n') { | ||
| 1131 | iodc_dbuf[i+0] = '\r'; | ||
| 1132 | iodc_dbuf[i+1] = '\n'; | ||
| 1133 | } | ||
| 1134 | |||
| 1135 | print: | ||
| 1127 | spin_lock_irqsave(&pdc_lock, flags); | 1136 | spin_lock_irqsave(&pdc_lock, flags); |
| 1128 | real32_call(PAGE0->mem_cons.iodc_io, | 1137 | real32_call(PAGE0->mem_cons.iodc_io, |
| 1129 | (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT, | 1138 | (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT, |
| @@ -1142,11 +1151,9 @@ int pdc_iodc_print(unsigned char *str, unsigned count) | |||
| 1142 | */ | 1151 | */ |
| 1143 | int pdc_iodc_getc(void) | 1152 | int pdc_iodc_getc(void) |
| 1144 | { | 1153 | { |
| 1145 | unsigned long flags; | ||
| 1146 | static int __attribute__((aligned(8))) iodc_retbuf[32]; | ||
| 1147 | static char __attribute__((aligned(64))) iodc_dbuf[4096]; | ||
| 1148 | int ch; | 1154 | int ch; |
| 1149 | int status; | 1155 | int status; |
| 1156 | unsigned long flags; | ||
| 1150 | 1157 | ||
| 1151 | /* Bail if no console input device. */ | 1158 | /* Bail if no console input device. */ |
| 1152 | if (!PAGE0->mem_kbd.iodc_io) | 1159 | if (!PAGE0->mem_kbd.iodc_io) |
diff --git a/arch/parisc/kernel/hardware.c b/arch/parisc/kernel/hardware.c index 84b9611a9228..f48a640b55fb 100644 --- a/arch/parisc/kernel/hardware.c +++ b/arch/parisc/kernel/hardware.c | |||
| @@ -274,7 +274,18 @@ static struct hp_hardware hp_hardware_list[] __devinitdata = { | |||
| 274 | {HPHW_NPROC,0x887,0x4,0x91,"Storm Peak Slow"}, | 274 | {HPHW_NPROC,0x887,0x4,0x91,"Storm Peak Slow"}, |
| 275 | {HPHW_NPROC,0x888,0x4,0x91,"Storm Peak Fast DC-"}, | 275 | {HPHW_NPROC,0x888,0x4,0x91,"Storm Peak Fast DC-"}, |
| 276 | {HPHW_NPROC,0x889,0x4,0x91,"Storm Peak Fast"}, | 276 | {HPHW_NPROC,0x889,0x4,0x91,"Storm Peak Fast"}, |
| 277 | {HPHW_NPROC,0x88A,0x4,0x91,"Crestone Peak"}, | 277 | {HPHW_NPROC,0x88A,0x4,0x91,"Crestone Peak Slow"}, |
| 278 | {HPHW_NPROC,0x88C,0x4,0x91,"Orca Mako+"}, | ||
| 279 | {HPHW_NPROC,0x88D,0x4,0x91,"Rainier/Medel Mako+ Slow"}, | ||
| 280 | {HPHW_NPROC,0x88E,0x4,0x91,"Rainier/Medel Mako+ Fast"}, | ||
| 281 | {HPHW_NPROC,0x894,0x4,0x91,"Mt. Hamilton Fast Mako+"}, | ||
| 282 | {HPHW_NPROC,0x895,0x4,0x91,"Storm Peak Slow Mako+"}, | ||
| 283 | {HPHW_NPROC,0x896,0x4,0x91,"Storm Peak Fast Mako+"}, | ||
| 284 | {HPHW_NPROC,0x897,0x4,0x91,"Storm Peak DC- Slow Mako+"}, | ||
| 285 | {HPHW_NPROC,0x898,0x4,0x91,"Storm Peak DC- Fast Mako+"}, | ||
| 286 | {HPHW_NPROC,0x899,0x4,0x91,"Mt. Hamilton Slow Mako+"}, | ||
| 287 | {HPHW_NPROC,0x89B,0x4,0x91,"Crestone Peak Mako+ Slow"}, | ||
| 288 | {HPHW_NPROC,0x89C,0x4,0x91,"Crestone Peak Mako+ Fast"}, | ||
| 278 | {HPHW_A_DIRECT, 0x004, 0x0000D, 0x00, "Arrakis MUX"}, | 289 | {HPHW_A_DIRECT, 0x004, 0x0000D, 0x00, "Arrakis MUX"}, |
| 279 | {HPHW_A_DIRECT, 0x005, 0x0000D, 0x00, "Dyun Kiuh MUX"}, | 290 | {HPHW_A_DIRECT, 0x005, 0x0000D, 0x00, "Dyun Kiuh MUX"}, |
| 280 | {HPHW_A_DIRECT, 0x006, 0x0000D, 0x00, "Baat Kiuh AP/MUX (40299B)"}, | 291 | {HPHW_A_DIRECT, 0x006, 0x0000D, 0x00, "Baat Kiuh AP/MUX (40299B)"}, |
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S index a7b8859488bb..ec2482dc1beb 100644 --- a/arch/parisc/kernel/head.S +++ b/arch/parisc/kernel/head.S | |||
| @@ -20,10 +20,11 @@ | |||
| 20 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
| 21 | 21 | ||
| 22 | #include <linux/linkage.h> | 22 | #include <linux/linkage.h> |
| 23 | #include <linux/init.h> | ||
| 23 | 24 | ||
| 24 | .level LEVEL | 25 | .level LEVEL |
| 25 | 26 | ||
| 26 | .data | 27 | __INITDATA |
| 27 | ENTRY(boot_args) | 28 | ENTRY(boot_args) |
| 28 | .word 0 /* arg0 */ | 29 | .word 0 /* arg0 */ |
| 29 | .word 0 /* arg1 */ | 30 | .word 0 /* arg1 */ |
| @@ -31,7 +32,7 @@ ENTRY(boot_args) | |||
| 31 | .word 0 /* arg3 */ | 32 | .word 0 /* arg3 */ |
| 32 | END(boot_args) | 33 | END(boot_args) |
| 33 | 34 | ||
| 34 | .text | 35 | .section .text.head |
| 35 | .align 4 | 36 | .align 4 |
| 36 | .import init_thread_union,data | 37 | .import init_thread_union,data |
| 37 | .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ | 38 | .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ |
| @@ -343,7 +344,7 @@ smp_slave_stext: | |||
| 343 | ENDPROC(stext) | 344 | ENDPROC(stext) |
| 344 | 345 | ||
| 345 | #ifndef CONFIG_64BIT | 346 | #ifndef CONFIG_64BIT |
| 346 | .data | 347 | .section .data.read_mostly |
| 347 | 348 | ||
| 348 | .align 4 | 349 | .align 4 |
| 349 | .export $global$,data | 350 | .export $global$,data |
diff --git a/arch/parisc/kernel/pdc_cons.c b/arch/parisc/kernel/pdc_cons.c index 33b1f84441b1..ccb68090781e 100644 --- a/arch/parisc/kernel/pdc_cons.c +++ b/arch/parisc/kernel/pdc_cons.c | |||
| @@ -52,28 +52,30 @@ | |||
| 52 | #include <linux/tty.h> | 52 | #include <linux/tty.h> |
| 53 | #include <asm/pdc.h> /* for iodc_call() proto and friends */ | 53 | #include <asm/pdc.h> /* for iodc_call() proto and friends */ |
| 54 | 54 | ||
| 55 | static spinlock_t pdc_console_lock = SPIN_LOCK_UNLOCKED; | ||
| 55 | 56 | ||
| 56 | static void pdc_console_write(struct console *co, const char *s, unsigned count) | 57 | static void pdc_console_write(struct console *co, const char *s, unsigned count) |
| 57 | { | 58 | { |
| 58 | pdc_iodc_print(s, count); | 59 | int i = 0; |
| 60 | unsigned long flags; | ||
| 61 | |||
| 62 | spin_lock_irqsave(&pdc_console_lock, flags); | ||
| 63 | do { | ||
| 64 | i += pdc_iodc_print(s + i, count - i); | ||
| 65 | } while (i < count); | ||
| 66 | spin_unlock_irqrestore(&pdc_console_lock, flags); | ||
| 59 | } | 67 | } |
| 60 | 68 | ||
| 61 | void pdc_printf(const char *fmt, ...) | 69 | int pdc_console_poll_key(struct console *co) |
| 62 | { | 70 | { |
| 63 | va_list args; | 71 | int c; |
| 64 | char buf[1024]; | 72 | unsigned long flags; |
| 65 | int i, len; | ||
| 66 | |||
| 67 | va_start(args, fmt); | ||
| 68 | len = vscnprintf(buf, sizeof(buf), fmt, args); | ||
| 69 | va_end(args); | ||
| 70 | 73 | ||
| 71 | pdc_iodc_print(buf, len); | 74 | spin_lock_irqsave(&pdc_console_lock, flags); |
| 72 | } | 75 | c = pdc_iodc_getc(); |
| 76 | spin_unlock_irqrestore(&pdc_console_lock, flags); | ||
| 73 | 77 | ||
| 74 | int pdc_console_poll_key(struct console *co) | 78 | return c; |
| 75 | { | ||
| 76 | return pdc_iodc_getc(); | ||
| 77 | } | 79 | } |
| 78 | 80 | ||
| 79 | static int pdc_console_setup(struct console *co, char *options) | 81 | static int pdc_console_setup(struct console *co, char *options) |
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S index 117438e9eb2a..6b5ac38f5a99 100644 --- a/arch/parisc/kernel/syscall_table.S +++ b/arch/parisc/kernel/syscall_table.S | |||
| @@ -401,9 +401,12 @@ | |||
| 401 | ENTRY_COMP(kexec_load) /* 300 */ | 401 | ENTRY_COMP(kexec_load) /* 300 */ |
| 402 | ENTRY_COMP(utimensat) | 402 | ENTRY_COMP(utimensat) |
| 403 | ENTRY_COMP(signalfd) | 403 | ENTRY_COMP(signalfd) |
| 404 | ENTRY_COMP(timerfd) | 404 | ENTRY_SAME(ni_syscall) /* was timerfd */ |
| 405 | ENTRY_SAME(eventfd) | 405 | ENTRY_SAME(eventfd) |
| 406 | ENTRY_COMP(fallocate) /* 305 */ | 406 | ENTRY_COMP(fallocate) /* 305 */ |
| 407 | ENTRY_SAME(timerfd_create) | ||
| 408 | ENTRY_COMP(timerfd_settime) | ||
| 409 | ENTRY_COMP(timerfd_gettime) | ||
| 407 | 410 | ||
| 408 | /* Nothing yet */ | 411 | /* Nothing yet */ |
| 409 | 412 | ||
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 99fd56939afa..9dc6dc42f9cf 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
| @@ -51,6 +51,9 @@ | |||
| 51 | DEFINE_SPINLOCK(pa_dbit_lock); | 51 | DEFINE_SPINLOCK(pa_dbit_lock); |
| 52 | #endif | 52 | #endif |
| 53 | 53 | ||
| 54 | void parisc_show_stack(struct task_struct *t, unsigned long *sp, | ||
| 55 | struct pt_regs *regs); | ||
| 56 | |||
| 54 | static int printbinary(char *buf, unsigned long x, int nbits) | 57 | static int printbinary(char *buf, unsigned long x, int nbits) |
| 55 | { | 58 | { |
| 56 | unsigned long mask = 1UL << (nbits - 1); | 59 | unsigned long mask = 1UL << (nbits - 1); |
| @@ -148,6 +151,8 @@ void show_regs(struct pt_regs *regs) | |||
| 148 | print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]); | 151 | print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]); |
| 149 | printk(level); | 152 | printk(level); |
| 150 | print_symbol(" RP(r2): %s\n", regs->gr[2]); | 153 | print_symbol(" RP(r2): %s\n", regs->gr[2]); |
| 154 | |||
| 155 | parisc_show_stack(current, NULL, regs); | ||
| 151 | } | 156 | } |
| 152 | 157 | ||
| 153 | 158 | ||
| @@ -181,11 +186,19 @@ static void do_show_stack(struct unwind_frame_info *info) | |||
| 181 | printk("\n"); | 186 | printk("\n"); |
| 182 | } | 187 | } |
| 183 | 188 | ||
| 184 | void show_stack(struct task_struct *task, unsigned long *s) | 189 | void parisc_show_stack(struct task_struct *task, unsigned long *sp, |
| 190 | struct pt_regs *regs) | ||
| 185 | { | 191 | { |
| 186 | struct unwind_frame_info info; | 192 | struct unwind_frame_info info; |
| 193 | struct task_struct *t; | ||
| 194 | |||
| 195 | t = task ? task : current; | ||
| 196 | if (regs) { | ||
| 197 | unwind_frame_init(&info, t, regs); | ||
| 198 | goto show_stack; | ||
| 199 | } | ||
| 187 | 200 | ||
| 188 | if (!task) { | 201 | if (t == current) { |
| 189 | unsigned long sp; | 202 | unsigned long sp; |
| 190 | 203 | ||
| 191 | HERE: | 204 | HERE: |
| @@ -201,12 +214,18 @@ HERE: | |||
| 201 | unwind_frame_init(&info, current, &r); | 214 | unwind_frame_init(&info, current, &r); |
| 202 | } | 215 | } |
| 203 | } else { | 216 | } else { |
| 204 | unwind_frame_init_from_blocked_task(&info, task); | 217 | unwind_frame_init_from_blocked_task(&info, t); |
| 205 | } | 218 | } |
| 206 | 219 | ||
| 220 | show_stack: | ||
| 207 | do_show_stack(&info); | 221 | do_show_stack(&info); |
| 208 | } | 222 | } |
| 209 | 223 | ||
| 224 | void show_stack(struct task_struct *t, unsigned long *sp) | ||
| 225 | { | ||
| 226 | return parisc_show_stack(t, sp, NULL); | ||
| 227 | } | ||
| 228 | |||
| 210 | int is_valid_bugaddr(unsigned long iaoq) | 229 | int is_valid_bugaddr(unsigned long iaoq) |
| 211 | { | 230 | { |
| 212 | return 1; | 231 | return 1; |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 5b8d8382b762..1189d8d6170d 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
| @@ -90,6 +90,7 @@ config PPC | |||
| 90 | select HAVE_IDE | 90 | select HAVE_IDE |
| 91 | select HAVE_OPROFILE | 91 | select HAVE_OPROFILE |
| 92 | select HAVE_KPROBES | 92 | select HAVE_KPROBES |
| 93 | select HAVE_KRETPROBES | ||
| 93 | 94 | ||
| 94 | config EARLY_PRINTK | 95 | config EARLY_PRINTK |
| 95 | bool | 96 | bool |
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 1c6ce3536e4c..ab5cfe8ef988 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
| @@ -155,7 +155,7 @@ all: zImage | |||
| 155 | 155 | ||
| 156 | CPPFLAGS_vmlinux.lds := -Upowerpc | 156 | CPPFLAGS_vmlinux.lds := -Upowerpc |
| 157 | 157 | ||
| 158 | BOOT_TARGETS = zImage zImage.initrd uImage treeImage.% cuImage.% | 158 | BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% |
| 159 | 159 | ||
| 160 | PHONY += $(BOOT_TARGETS) | 160 | PHONY += $(BOOT_TARGETS) |
| 161 | 161 | ||
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index e3993a607584..4974d9e56ead 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
| @@ -186,7 +186,7 @@ quiet_cmd_wrap = WRAP $@ | |||
| 186 | image-$(CONFIG_PPC_PSERIES) += zImage.pseries | 186 | image-$(CONFIG_PPC_PSERIES) += zImage.pseries |
| 187 | image-$(CONFIG_PPC_MAPLE) += zImage.pseries | 187 | image-$(CONFIG_PPC_MAPLE) += zImage.pseries |
| 188 | image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries | 188 | image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries |
| 189 | image-$(CONFIG_PPC_PS3) += zImage-dtb.ps3 | 189 | image-$(CONFIG_PPC_PS3) += dtbImage.ps3 |
| 190 | image-$(CONFIG_PPC_CELLEB) += zImage.pseries | 190 | image-$(CONFIG_PPC_CELLEB) += zImage.pseries |
| 191 | image-$(CONFIG_PPC_CHRP) += zImage.chrp | 191 | image-$(CONFIG_PPC_CHRP) += zImage.chrp |
| 192 | image-$(CONFIG_PPC_EFIKA) += zImage.chrp | 192 | image-$(CONFIG_PPC_EFIKA) += zImage.chrp |
| @@ -205,7 +205,7 @@ image-$(CONFIG_DEFAULT_UIMAGE) += uImage | |||
| 205 | # | 205 | # |
| 206 | 206 | ||
| 207 | # Board ports in arch/powerpc/platform/40x/Kconfig | 207 | # Board ports in arch/powerpc/platform/40x/Kconfig |
| 208 | image-$(CONFIG_EP405) += zImage-dtb.ep405 | 208 | image-$(CONFIG_EP405) += dtbImage.ep405 |
| 209 | image-$(CONFIG_WALNUT) += treeImage.walnut | 209 | image-$(CONFIG_WALNUT) += treeImage.walnut |
| 210 | 210 | ||
| 211 | # Board ports in arch/powerpc/platform/44x/Kconfig | 211 | # Board ports in arch/powerpc/platform/44x/Kconfig |
| @@ -220,9 +220,9 @@ image-$(CONFIG_WARP) += cuImage.warp | |||
| 220 | # Board ports in arch/powerpc/platform/8xx/Kconfig | 220 | # Board ports in arch/powerpc/platform/8xx/Kconfig |
| 221 | image-$(CONFIG_PPC_MPC86XADS) += cuImage.mpc866ads | 221 | image-$(CONFIG_PPC_MPC86XADS) += cuImage.mpc866ads |
| 222 | image-$(CONFIG_PPC_MPC885ADS) += cuImage.mpc885ads | 222 | image-$(CONFIG_PPC_MPC885ADS) += cuImage.mpc885ads |
| 223 | image-$(CONFIG_PPC_EP88XC) += zImage-dtb.ep88xc | 223 | image-$(CONFIG_PPC_EP88XC) += dtbImage.ep88xc |
| 224 | image-$(CONFIG_PPC_ADDER875) += cuImage.adder875-uboot \ | 224 | image-$(CONFIG_PPC_ADDER875) += cuImage.adder875-uboot \ |
| 225 | zImage-dtb.adder875-redboot | 225 | dtbImage.adder875-redboot |
| 226 | 226 | ||
| 227 | # Board ports in arch/powerpc/platform/52xx/Kconfig | 227 | # Board ports in arch/powerpc/platform/52xx/Kconfig |
| 228 | image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 cuImage.lite5200b | 228 | image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 cuImage.lite5200b |
| @@ -230,7 +230,7 @@ image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 cuImage.lite5200b | |||
| 230 | # Board ports in arch/powerpc/platform/82xx/Kconfig | 230 | # Board ports in arch/powerpc/platform/82xx/Kconfig |
| 231 | image-$(CONFIG_MPC8272_ADS) += cuImage.mpc8272ads | 231 | image-$(CONFIG_MPC8272_ADS) += cuImage.mpc8272ads |
| 232 | image-$(CONFIG_PQ2FADS) += cuImage.pq2fads | 232 | image-$(CONFIG_PQ2FADS) += cuImage.pq2fads |
| 233 | image-$(CONFIG_EP8248E) += zImage-dtb.ep8248e | 233 | image-$(CONFIG_EP8248E) += dtbImage.ep8248e |
| 234 | 234 | ||
| 235 | # Board ports in arch/powerpc/platform/83xx/Kconfig | 235 | # Board ports in arch/powerpc/platform/83xx/Kconfig |
| 236 | image-$(CONFIG_MPC832x_MDS) += cuImage.mpc832x_mds | 236 | image-$(CONFIG_MPC832x_MDS) += cuImage.mpc832x_mds |
| @@ -268,7 +268,8 @@ endif | |||
| 268 | 268 | ||
| 269 | initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) | 269 | initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) |
| 270 | initrd-y := $(patsubst zImage%, zImage.initrd%, \ | 270 | initrd-y := $(patsubst zImage%, zImage.initrd%, \ |
| 271 | $(patsubst treeImage%, treeImage.initrd%, $(image-y))) | 271 | $(patsubst dtbImage%, dtbImage.initrd%, \ |
| 272 | $(patsubst treeImage%, treeImage.initrd%, $(image-y)))) | ||
| 272 | initrd-y := $(filter-out $(image-y), $(initrd-y)) | 273 | initrd-y := $(filter-out $(image-y), $(initrd-y)) |
| 273 | targets += $(image-y) $(initrd-y) | 274 | targets += $(image-y) $(initrd-y) |
| 274 | 275 | ||
| @@ -283,10 +284,11 @@ $(obj)/zImage.initrd.%: vmlinux $(wrapperbits) | |||
| 283 | $(obj)/zImage.%: vmlinux $(wrapperbits) | 284 | $(obj)/zImage.%: vmlinux $(wrapperbits) |
| 284 | $(call if_changed,wrap,$*) | 285 | $(call if_changed,wrap,$*) |
| 285 | 286 | ||
| 286 | $(obj)/zImage-dtb.initrd.%: vmlinux $(wrapperbits) $(dtstree)/%.dts | 287 | # dtbImage% - a dtbImage is a zImage with an embedded device tree blob |
| 288 | $(obj)/dtbImage.initrd.%: vmlinux $(wrapperbits) $(dtstree)/%.dts | ||
| 287 | $(call if_changed,wrap,$*,$(dtstree)/$*.dts,,$(obj)/ramdisk.image.gz) | 289 | $(call if_changed,wrap,$*,$(dtstree)/$*.dts,,$(obj)/ramdisk.image.gz) |
| 288 | 290 | ||
| 289 | $(obj)/zImage-dtb.%: vmlinux $(wrapperbits) $(dtstree)/%.dts | 291 | $(obj)/dtbImage.%: vmlinux $(wrapperbits) $(dtstree)/%.dts |
| 290 | $(call if_changed,wrap,$*,$(dtstree)/$*.dts) | 292 | $(call if_changed,wrap,$*,$(dtstree)/$*.dts) |
| 291 | 293 | ||
| 292 | # This cannot be in the root of $(src) as the zImage rule always adds a $(obj) | 294 | # This cannot be in the root of $(src) as the zImage rule always adds a $(obj) |
diff --git a/arch/powerpc/boot/cuboot-bamboo.c b/arch/powerpc/boot/cuboot-bamboo.c index 900c7ff2b7e9..b5c30f766c40 100644 --- a/arch/powerpc/boot/cuboot-bamboo.c +++ b/arch/powerpc/boot/cuboot-bamboo.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include "44x.h" | 17 | #include "44x.h" |
| 18 | #include "cuboot.h" | 18 | #include "cuboot.h" |
| 19 | 19 | ||
| 20 | #define TARGET_4xx | ||
| 20 | #define TARGET_44x | 21 | #define TARGET_44x |
| 21 | #include "ppcboot.h" | 22 | #include "ppcboot.h" |
| 22 | 23 | ||
diff --git a/arch/powerpc/boot/cuboot-ebony.c b/arch/powerpc/boot/cuboot-ebony.c index c5f37ce172ea..56564ba37f62 100644 --- a/arch/powerpc/boot/cuboot-ebony.c +++ b/arch/powerpc/boot/cuboot-ebony.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include "44x.h" | 17 | #include "44x.h" |
| 18 | #include "cuboot.h" | 18 | #include "cuboot.h" |
| 19 | 19 | ||
| 20 | #define TARGET_4xx | ||
| 20 | #define TARGET_44x | 21 | #define TARGET_44x |
| 21 | #include "ppcboot.h" | 22 | #include "ppcboot.h" |
| 22 | 23 | ||
diff --git a/arch/powerpc/boot/cuboot-katmai.c b/arch/powerpc/boot/cuboot-katmai.c index c021167f9381..5434d70b5660 100644 --- a/arch/powerpc/boot/cuboot-katmai.c +++ b/arch/powerpc/boot/cuboot-katmai.c | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #include "44x.h" | 22 | #include "44x.h" |
| 23 | #include "cuboot.h" | 23 | #include "cuboot.h" |
| 24 | 24 | ||
| 25 | #define TARGET_4xx | ||
| 25 | #define TARGET_44x | 26 | #define TARGET_44x |
| 26 | #include "ppcboot.h" | 27 | #include "ppcboot.h" |
| 27 | 28 | ||
diff --git a/arch/powerpc/boot/cuboot-taishan.c b/arch/powerpc/boot/cuboot-taishan.c index f66455a45ab1..b55b80467eed 100644 --- a/arch/powerpc/boot/cuboot-taishan.c +++ b/arch/powerpc/boot/cuboot-taishan.c | |||
| @@ -21,7 +21,9 @@ | |||
| 21 | #include "dcr.h" | 21 | #include "dcr.h" |
| 22 | #include "4xx.h" | 22 | #include "4xx.h" |
| 23 | 23 | ||
| 24 | #define TARGET_4xx | ||
| 24 | #define TARGET_44x | 25 | #define TARGET_44x |
| 26 | #define TARGET_440GX | ||
| 25 | #include "ppcboot.h" | 27 | #include "ppcboot.h" |
| 26 | 28 | ||
| 27 | static bd_t bd; | 29 | static bd_t bd; |
diff --git a/arch/powerpc/boot/cuboot-warp.c b/arch/powerpc/boot/cuboot-warp.c index bdedebe1bc14..3db93e85e9ea 100644 --- a/arch/powerpc/boot/cuboot-warp.c +++ b/arch/powerpc/boot/cuboot-warp.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include "4xx.h" | 11 | #include "4xx.h" |
| 12 | #include "cuboot.h" | 12 | #include "cuboot.h" |
| 13 | 13 | ||
| 14 | #define TARGET_4xx | ||
| 14 | #define TARGET_44x | 15 | #define TARGET_44x |
| 15 | #include "ppcboot.h" | 16 | #include "ppcboot.h" |
| 16 | 17 | ||
diff --git a/arch/powerpc/boot/dts/haleakala.dts b/arch/powerpc/boot/dts/haleakala.dts index 5dd3d15f0feb..ae68fefc01b6 100644 --- a/arch/powerpc/boot/dts/haleakala.dts +++ b/arch/powerpc/boot/dts/haleakala.dts | |||
| @@ -235,7 +235,7 @@ | |||
| 235 | #interrupt-cells = <1>; | 235 | #interrupt-cells = <1>; |
| 236 | #size-cells = <2>; | 236 | #size-cells = <2>; |
| 237 | #address-cells = <3>; | 237 | #address-cells = <3>; |
| 238 | compatible = "ibm,plb-pciex-405exr", "ibm,plb-pciex"; | 238 | compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex"; |
| 239 | primary; | 239 | primary; |
| 240 | port = <0>; /* port number */ | 240 | port = <0>; /* port number */ |
| 241 | reg = <a0000000 20000000 /* Config space access */ | 241 | reg = <a0000000 20000000 /* Config space access */ |
diff --git a/arch/powerpc/boot/dts/katmai.dts b/arch/powerpc/boot/dts/katmai.dts index bc32ac7250ec..fc86e5a3afc4 100644 --- a/arch/powerpc/boot/dts/katmai.dts +++ b/arch/powerpc/boot/dts/katmai.dts | |||
| @@ -38,8 +38,8 @@ | |||
| 38 | timebase-frequency = <0>; /* Filled in by zImage */ | 38 | timebase-frequency = <0>; /* Filled in by zImage */ |
| 39 | i-cache-line-size = <20>; | 39 | i-cache-line-size = <20>; |
| 40 | d-cache-line-size = <20>; | 40 | d-cache-line-size = <20>; |
| 41 | i-cache-size = <20000>; | 41 | i-cache-size = <8000>; |
| 42 | d-cache-size = <20000>; | 42 | d-cache-size = <8000>; |
| 43 | dcr-controller; | 43 | dcr-controller; |
| 44 | dcr-access-method = "native"; | 44 | dcr-access-method = "native"; |
| 45 | }; | 45 | }; |
| @@ -136,11 +136,11 @@ | |||
| 136 | }; | 136 | }; |
| 137 | 137 | ||
| 138 | POB0: opb { | 138 | POB0: opb { |
| 139 | compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb"; | 139 | compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb"; |
| 140 | #address-cells = <1>; | 140 | #address-cells = <1>; |
| 141 | #size-cells = <1>; | 141 | #size-cells = <1>; |
| 142 | ranges = <00000000 4 e0000000 20000000>; | 142 | ranges = <00000000 4 e0000000 20000000>; |
| 143 | clock-frequency = <0>; /* Filled in by zImage */ | 143 | clock-frequency = <0>; /* Filled in by zImage */ |
| 144 | 144 | ||
| 145 | EBC0: ebc { | 145 | EBC0: ebc { |
| 146 | compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc"; | 146 | compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc"; |
| @@ -153,38 +153,38 @@ | |||
| 153 | }; | 153 | }; |
| 154 | 154 | ||
| 155 | UART0: serial@10000200 { | 155 | UART0: serial@10000200 { |
| 156 | device_type = "serial"; | 156 | device_type = "serial"; |
| 157 | compatible = "ns16550"; | 157 | compatible = "ns16550"; |
| 158 | reg = <10000200 8>; | 158 | reg = <10000200 8>; |
| 159 | virtual-reg = <a0000200>; | 159 | virtual-reg = <a0000200>; |
| 160 | clock-frequency = <0>; /* Filled in by zImage */ | 160 | clock-frequency = <0>; /* Filled in by zImage */ |
| 161 | current-speed = <1c200>; | 161 | current-speed = <1c200>; |
| 162 | interrupt-parent = <&UIC0>; | 162 | interrupt-parent = <&UIC0>; |
| 163 | interrupts = <0 4>; | 163 | interrupts = <0 4>; |
| 164 | }; | 164 | }; |
| 165 | 165 | ||
| 166 | UART1: serial@10000300 { | 166 | UART1: serial@10000300 { |
| 167 | device_type = "serial"; | 167 | device_type = "serial"; |
| 168 | compatible = "ns16550"; | 168 | compatible = "ns16550"; |
| 169 | reg = <10000300 8>; | 169 | reg = <10000300 8>; |
| 170 | virtual-reg = <a0000300>; | 170 | virtual-reg = <a0000300>; |
| 171 | clock-frequency = <0>; | 171 | clock-frequency = <0>; |
| 172 | current-speed = <0>; | 172 | current-speed = <0>; |
| 173 | interrupt-parent = <&UIC0>; | 173 | interrupt-parent = <&UIC0>; |
| 174 | interrupts = <1 4>; | 174 | interrupts = <1 4>; |
| 175 | }; | 175 | }; |
| 176 | 176 | ||
| 177 | 177 | ||
| 178 | UART2: serial@10000600 { | 178 | UART2: serial@10000600 { |
| 179 | device_type = "serial"; | 179 | device_type = "serial"; |
| 180 | compatible = "ns16550"; | 180 | compatible = "ns16550"; |
| 181 | reg = <10000600 8>; | 181 | reg = <10000600 8>; |
| 182 | virtual-reg = <a0000600>; | 182 | virtual-reg = <a0000600>; |
| 183 | clock-frequency = <0>; | 183 | clock-frequency = <0>; |
| 184 | current-speed = <0>; | 184 | current-speed = <0>; |
| 185 | interrupt-parent = <&UIC1>; | 185 | interrupt-parent = <&UIC1>; |
| 186 | interrupts = <5 4>; | 186 | interrupts = <5 4>; |
| 187 | }; | 187 | }; |
| 188 | 188 | ||
| 189 | IIC0: i2c@10000400 { | 189 | IIC0: i2c@10000400 { |
| 190 | compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; | 190 | compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; |
diff --git a/arch/powerpc/boot/dts/mpc8377_mds.dts b/arch/powerpc/boot/dts/mpc8377_mds.dts index a3637fff73cc..49c05e97386c 100644 --- a/arch/powerpc/boot/dts/mpc8377_mds.dts +++ b/arch/powerpc/boot/dts/mpc8377_mds.dts | |||
| @@ -47,6 +47,72 @@ | |||
| 47 | reg = <0x00000000 0x20000000>; // 512MB at 0 | 47 | reg = <0x00000000 0x20000000>; // 512MB at 0 |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| 50 | localbus@e0005000 { | ||
| 51 | #address-cells = <2>; | ||
| 52 | #size-cells = <1>; | ||
| 53 | compatible = "fsl,mpc8377-elbc", "fsl,elbc", "simple-bus"; | ||
| 54 | reg = <0xe0005000 0x1000>; | ||
| 55 | interrupts = <77 0x8>; | ||
| 56 | interrupt-parent = <&ipic>; | ||
| 57 | |||
| 58 | // booting from NOR flash | ||
| 59 | ranges = <0 0x0 0xfe000000 0x02000000 | ||
| 60 | 1 0x0 0xf8000000 0x00008000 | ||
| 61 | 3 0x0 0xe0600000 0x00008000>; | ||
| 62 | |||
| 63 | flash@0,0 { | ||
| 64 | #address-cells = <1>; | ||
| 65 | #size-cells = <1>; | ||
| 66 | compatible = "cfi-flash"; | ||
| 67 | reg = <0 0x0 0x2000000>; | ||
| 68 | bank-width = <2>; | ||
| 69 | device-width = <1>; | ||
| 70 | |||
| 71 | u-boot@0 { | ||
| 72 | reg = <0x0 0x100000>; | ||
| 73 | read-only; | ||
| 74 | }; | ||
| 75 | |||
| 76 | fs@100000 { | ||
| 77 | reg = <0x100000 0x800000>; | ||
| 78 | }; | ||
| 79 | |||
| 80 | kernel@1d00000 { | ||
| 81 | reg = <0x1d00000 0x200000>; | ||
| 82 | }; | ||
| 83 | |||
| 84 | dtb@1f00000 { | ||
| 85 | reg = <0x1f00000 0x100000>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | bcsr@1,0 { | ||
| 90 | reg = <1 0x0 0x8000>; | ||
| 91 | compatible = "fsl,mpc837xmds-bcsr"; | ||
| 92 | }; | ||
| 93 | |||
| 94 | nand@3,0 { | ||
| 95 | #address-cells = <1>; | ||
| 96 | #size-cells = <1>; | ||
| 97 | compatible = "fsl,mpc8377-fcm-nand", | ||
| 98 | "fsl,elbc-fcm-nand"; | ||
| 99 | reg = <3 0x0 0x8000>; | ||
| 100 | |||
| 101 | u-boot@0 { | ||
| 102 | reg = <0x0 0x100000>; | ||
| 103 | read-only; | ||
| 104 | }; | ||
| 105 | |||
| 106 | kernel@100000 { | ||
| 107 | reg = <0x100000 0x300000>; | ||
| 108 | }; | ||
| 109 | |||
| 110 | fs@400000 { | ||
| 111 | reg = <0x400000 0x1c00000>; | ||
| 112 | }; | ||
| 113 | }; | ||
| 114 | }; | ||
| 115 | |||
| 50 | soc@e0000000 { | 116 | soc@e0000000 { |
| 51 | #address-cells = <1>; | 117 | #address-cells = <1>; |
| 52 | #size-cells = <1>; | 118 | #size-cells = <1>; |
| @@ -91,7 +157,6 @@ | |||
| 91 | mode = "cpu"; | 157 | mode = "cpu"; |
| 92 | }; | 158 | }; |
| 93 | 159 | ||
| 94 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
| 95 | usb@23000 { | 160 | usb@23000 { |
| 96 | compatible = "fsl-usb2-dr"; | 161 | compatible = "fsl-usb2-dr"; |
| 97 | reg = <0x23000 0x1000>; | 162 | reg = <0x23000 0x1000>; |
| @@ -99,7 +164,8 @@ | |||
| 99 | #size-cells = <0>; | 164 | #size-cells = <0>; |
| 100 | interrupt-parent = <&ipic>; | 165 | interrupt-parent = <&ipic>; |
| 101 | interrupts = <38 0x8>; | 166 | interrupts = <38 0x8>; |
| 102 | phy_type = "utmi_wide"; | 167 | dr_mode = "host"; |
| 168 | phy_type = "ulpi"; | ||
| 103 | }; | 169 | }; |
| 104 | 170 | ||
| 105 | mdio@24520 { | 171 | mdio@24520 { |
diff --git a/arch/powerpc/boot/dts/mpc8378_mds.dts b/arch/powerpc/boot/dts/mpc8378_mds.dts index 533e9b06cc8f..1d6ea080ad73 100644 --- a/arch/powerpc/boot/dts/mpc8378_mds.dts +++ b/arch/powerpc/boot/dts/mpc8378_mds.dts | |||
| @@ -47,6 +47,72 @@ | |||
| 47 | reg = <0x00000000 0x20000000>; // 512MB at 0 | 47 | reg = <0x00000000 0x20000000>; // 512MB at 0 |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| 50 | localbus@e0005000 { | ||
| 51 | #address-cells = <2>; | ||
| 52 | #size-cells = <1>; | ||
| 53 | compatible = "fsl,mpc8378-elbc", "fsl,elbc", "simple-bus"; | ||
| 54 | reg = <0xe0005000 0x1000>; | ||
| 55 | interrupts = <77 0x8>; | ||
| 56 | interrupt-parent = <&ipic>; | ||
| 57 | |||
| 58 | // booting from NOR flash | ||
| 59 | ranges = <0 0x0 0xfe000000 0x02000000 | ||
| 60 | 1 0x0 0xf8000000 0x00008000 | ||
| 61 | 3 0x0 0xe0600000 0x00008000>; | ||
| 62 | |||
| 63 | flash@0,0 { | ||
| 64 | #address-cells = <1>; | ||
| 65 | #size-cells = <1>; | ||
| 66 | compatible = "cfi-flash"; | ||
| 67 | reg = <0 0x0 0x2000000>; | ||
| 68 | bank-width = <2>; | ||
| 69 | device-width = <1>; | ||
| 70 | |||
| 71 | u-boot@0 { | ||
| 72 | reg = <0x0 0x100000>; | ||
| 73 | read-only; | ||
| 74 | }; | ||
| 75 | |||
| 76 | fs@100000 { | ||
| 77 | reg = <0x100000 0x800000>; | ||
| 78 | }; | ||
| 79 | |||
| 80 | kernel@1d00000 { | ||
| 81 | reg = <0x1d00000 0x200000>; | ||
| 82 | }; | ||
| 83 | |||
| 84 | dtb@1f00000 { | ||
| 85 | reg = <0x1f00000 0x100000>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | bcsr@1,0 { | ||
| 90 | reg = <1 0x0 0x8000>; | ||
| 91 | compatible = "fsl,mpc837xmds-bcsr"; | ||
| 92 | }; | ||
| 93 | |||
| 94 | nand@3,0 { | ||
| 95 | #address-cells = <1>; | ||
| 96 | #size-cells = <1>; | ||
| 97 | compatible = "fsl,mpc8378-fcm-nand", | ||
| 98 | "fsl,elbc-fcm-nand"; | ||
| 99 | reg = <3 0x0 0x8000>; | ||
| 100 | |||
| 101 | u-boot@0 { | ||
| 102 | reg = <0x0 0x100000>; | ||
| 103 | read-only; | ||
| 104 | }; | ||
| 105 | |||
| 106 | kernel@100000 { | ||
| 107 | reg = <0x100000 0x300000>; | ||
| 108 | }; | ||
| 109 | |||
| 110 | fs@400000 { | ||
| 111 | reg = <0x400000 0x1c00000>; | ||
| 112 | }; | ||
| 113 | }; | ||
| 114 | }; | ||
| 115 | |||
| 50 | soc@e0000000 { | 116 | soc@e0000000 { |
| 51 | #address-cells = <1>; | 117 | #address-cells = <1>; |
| 52 | #size-cells = <1>; | 118 | #size-cells = <1>; |
| @@ -91,7 +157,6 @@ | |||
| 91 | mode = "cpu"; | 157 | mode = "cpu"; |
| 92 | }; | 158 | }; |
| 93 | 159 | ||
| 94 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
| 95 | usb@23000 { | 160 | usb@23000 { |
| 96 | compatible = "fsl-usb2-dr"; | 161 | compatible = "fsl-usb2-dr"; |
| 97 | reg = <0x23000 0x1000>; | 162 | reg = <0x23000 0x1000>; |
| @@ -99,7 +164,8 @@ | |||
| 99 | #size-cells = <0>; | 164 | #size-cells = <0>; |
| 100 | interrupt-parent = <&ipic>; | 165 | interrupt-parent = <&ipic>; |
| 101 | interrupts = <38 0x8>; | 166 | interrupts = <38 0x8>; |
| 102 | phy_type = "utmi_wide"; | 167 | dr_mode = "host"; |
| 168 | phy_type = "ulpi"; | ||
| 103 | }; | 169 | }; |
| 104 | 170 | ||
| 105 | mdio@24520 { | 171 | mdio@24520 { |
diff --git a/arch/powerpc/boot/dts/mpc8379_mds.dts b/arch/powerpc/boot/dts/mpc8379_mds.dts index c270685bbde4..fdb4a9255b24 100644 --- a/arch/powerpc/boot/dts/mpc8379_mds.dts +++ b/arch/powerpc/boot/dts/mpc8379_mds.dts | |||
| @@ -47,6 +47,72 @@ | |||
| 47 | reg = <0x00000000 0x20000000>; // 512MB at 0 | 47 | reg = <0x00000000 0x20000000>; // 512MB at 0 |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| 50 | localbus@e0005000 { | ||
| 51 | #address-cells = <2>; | ||
| 52 | #size-cells = <1>; | ||
| 53 | compatible = "fsl,mpc8379-elbc", "fsl,elbc", "simple-bus"; | ||
| 54 | reg = <0xe0005000 0x1000>; | ||
| 55 | interrupts = <77 0x8>; | ||
| 56 | interrupt-parent = <&ipic>; | ||
| 57 | |||
| 58 | // booting from NOR flash | ||
| 59 | ranges = <0 0x0 0xfe000000 0x02000000 | ||
| 60 | 1 0x0 0xf8000000 0x00008000 | ||
| 61 | 3 0x0 0xe0600000 0x00008000>; | ||
| 62 | |||
| 63 | flash@0,0 { | ||
| 64 | #address-cells = <1>; | ||
| 65 | #size-cells = <1>; | ||
| 66 | compatible = "cfi-flash"; | ||
| 67 | reg = <0 0x0 0x2000000>; | ||
| 68 | bank-width = <2>; | ||
| 69 | device-width = <1>; | ||
| 70 | |||
| 71 | u-boot@0 { | ||
| 72 | reg = <0x0 0x100000>; | ||
| 73 | read-only; | ||
| 74 | }; | ||
| 75 | |||
| 76 | fs@100000 { | ||
| 77 | reg = <0x100000 0x800000>; | ||
| 78 | }; | ||
| 79 | |||
| 80 | kernel@1d00000 { | ||
| 81 | reg = <0x1d00000 0x200000>; | ||
| 82 | }; | ||
| 83 | |||
| 84 | dtb@1f00000 { | ||
| 85 | reg = <0x1f00000 0x100000>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | bcsr@1,0 { | ||
| 90 | reg = <1 0x0 0x8000>; | ||
| 91 | compatible = "fsl,mpc837xmds-bcsr"; | ||
| 92 | }; | ||
| 93 | |||
| 94 | nand@3,0 { | ||
| 95 | #address-cells = <1>; | ||
| 96 | #size-cells = <1>; | ||
| 97 | compatible = "fsl,mpc8379-fcm-nand", | ||
| 98 | "fsl,elbc-fcm-nand"; | ||
| 99 | reg = <3 0x0 0x8000>; | ||
| 100 | |||
| 101 | u-boot@0 { | ||
| 102 | reg = <0x0 0x100000>; | ||
| 103 | read-only; | ||
| 104 | }; | ||
| 105 | |||
| 106 | kernel@100000 { | ||
| 107 | reg = <0x100000 0x300000>; | ||
| 108 | }; | ||
| 109 | |||
| 110 | fs@400000 { | ||
| 111 | reg = <0x400000 0x1c00000>; | ||
| 112 | }; | ||
| 113 | }; | ||
| 114 | }; | ||
| 115 | |||
| 50 | soc@e0000000 { | 116 | soc@e0000000 { |
| 51 | #address-cells = <1>; | 117 | #address-cells = <1>; |
| 52 | #size-cells = <1>; | 118 | #size-cells = <1>; |
| @@ -91,7 +157,6 @@ | |||
| 91 | mode = "cpu"; | 157 | mode = "cpu"; |
| 92 | }; | 158 | }; |
| 93 | 159 | ||
| 94 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
| 95 | usb@23000 { | 160 | usb@23000 { |
| 96 | compatible = "fsl-usb2-dr"; | 161 | compatible = "fsl-usb2-dr"; |
| 97 | reg = <0x23000 0x1000>; | 162 | reg = <0x23000 0x1000>; |
| @@ -99,7 +164,8 @@ | |||
| 99 | #size-cells = <0>; | 164 | #size-cells = <0>; |
| 100 | interrupt-parent = <&ipic>; | 165 | interrupt-parent = <&ipic>; |
| 101 | interrupts = <38 0x8>; | 166 | interrupts = <38 0x8>; |
| 102 | phy_type = "utmi_wide"; | 167 | dr_mode = "host"; |
| 168 | phy_type = "ulpi"; | ||
| 103 | }; | 169 | }; |
| 104 | 170 | ||
| 105 | mdio@24520 { | 171 | mdio@24520 { |
diff --git a/arch/powerpc/boot/dts/sbc8548.dts b/arch/powerpc/boot/dts/sbc8548.dts index 14be38ad5d4b..b86e65d926c1 100644 --- a/arch/powerpc/boot/dts/sbc8548.dts +++ b/arch/powerpc/boot/dts/sbc8548.dts | |||
| @@ -184,11 +184,17 @@ | |||
| 184 | cell-index = <0>; | 184 | cell-index = <0>; |
| 185 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | 185 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; |
| 186 | interrupt-map = < | 186 | interrupt-map = < |
| 187 | /* IDSEL 0x01 (PCI-X slot) */ | 187 | /* IDSEL 0x01 (PCI-X slot) @66MHz */ |
| 188 | 0x0800 0x0 0x0 0x1 &mpic 0x0 0x1 | 188 | 0x0800 0x0 0x0 0x1 &mpic 0x2 0x1 |
| 189 | 0x0800 0x0 0x0 0x2 &mpic 0x1 0x1 | 189 | 0x0800 0x0 0x0 0x2 &mpic 0x3 0x1 |
| 190 | 0x0800 0x0 0x0 0x3 &mpic 0x2 0x1 | 190 | 0x0800 0x0 0x0 0x3 &mpic 0x4 0x1 |
| 191 | 0x0800 0x0 0x0 0x4 &mpic 0x3 0x1>; | 191 | 0x0800 0x0 0x0 0x4 &mpic 0x1 0x1 |
| 192 | |||
| 193 | /* IDSEL 0x11 (PCI, 3.3V 32bit) @33MHz */ | ||
| 194 | 0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 | ||
| 195 | 0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 | ||
| 196 | 0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 | ||
| 197 | 0x8800 0x0 0x0 0x4 &mpic 0x1 0x1>; | ||
| 192 | 198 | ||
| 193 | interrupt-parent = <&mpic>; | 199 | interrupt-parent = <&mpic>; |
| 194 | interrupts = <0x18 0x2>; | 200 | interrupts = <0x18 0x2>; |
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index c3178155311b..d50e498a072b 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
| @@ -191,10 +191,14 @@ ps3) | |||
| 191 | ksection=.kernel:vmlinux.bin | 191 | ksection=.kernel:vmlinux.bin |
| 192 | isection=.kernel:initrd | 192 | isection=.kernel:initrd |
| 193 | ;; | 193 | ;; |
| 194 | ep88xc|ep405|redboot*|ep8248e) | 194 | ep88xc|ep405|ep8248e) |
| 195 | platformo="$object/fixed-head.o $object/$platform.o" | 195 | platformo="$object/fixed-head.o $object/$platform.o" |
| 196 | binary=y | 196 | binary=y |
| 197 | ;; | 197 | ;; |
| 198 | adder875-redboot) | ||
| 199 | platformo="$object/fixed-head.o $object/redboot-8xx.o" | ||
| 200 | binary=y | ||
| 201 | ;; | ||
| 198 | esac | 202 | esac |
| 199 | 203 | ||
| 200 | vmz="$tmpdir/`basename \"$kernel\"`.$ext" | 204 | vmz="$tmpdir/`basename \"$kernel\"`.$ext" |
diff --git a/arch/powerpc/configs/adder875-redboot_defconfig b/arch/powerpc/configs/adder875-redboot_defconfig deleted file mode 100644 index cab5f9b64567..000000000000 --- a/arch/powerpc/configs/adder875-redboot_defconfig +++ /dev/null | |||
| @@ -1,798 +0,0 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.24-rc6 | ||
| 4 | # Thu Jan 17 16:17:38 2008 | ||
| 5 | # | ||
| 6 | # CONFIG_PPC64 is not set | ||
| 7 | |||
| 8 | # | ||
| 9 | # Processor support | ||
| 10 | # | ||
| 11 | # CONFIG_6xx is not set | ||
| 12 | # CONFIG_PPC_85xx is not set | ||
| 13 | CONFIG_PPC_8xx=y | ||
| 14 | # CONFIG_40x is not set | ||
| 15 | # CONFIG_44x is not set | ||
| 16 | # CONFIG_E200 is not set | ||
| 17 | CONFIG_8xx=y | ||
| 18 | # CONFIG_PPC_MM_SLICES is not set | ||
| 19 | CONFIG_NOT_COHERENT_CACHE=y | ||
| 20 | CONFIG_PPC32=y | ||
| 21 | CONFIG_WORD_SIZE=32 | ||
| 22 | CONFIG_PPC_MERGE=y | ||
| 23 | CONFIG_MMU=y | ||
| 24 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
| 25 | CONFIG_GENERIC_TIME=y | ||
| 26 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
| 27 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
| 28 | CONFIG_GENERIC_HARDIRQS=y | ||
| 29 | CONFIG_IRQ_PER_CPU=y | ||
| 30 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
| 31 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
| 32 | CONFIG_GENERIC_HWEIGHT=y | ||
| 33 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 34 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
| 35 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
| 36 | CONFIG_PPC=y | ||
| 37 | CONFIG_EARLY_PRINTK=y | ||
| 38 | CONFIG_GENERIC_NVRAM=y | ||
| 39 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
| 40 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
| 41 | CONFIG_PPC_OF=y | ||
| 42 | CONFIG_OF=y | ||
| 43 | # CONFIG_PPC_UDBG_16550 is not set | ||
| 44 | # CONFIG_GENERIC_TBSYNC is not set | ||
| 45 | CONFIG_AUDIT_ARCH=y | ||
| 46 | CONFIG_GENERIC_BUG=y | ||
| 47 | # CONFIG_DEFAULT_UIMAGE is not set | ||
| 48 | CONFIG_REDBOOT=y | ||
| 49 | # CONFIG_PPC_DCR_NATIVE is not set | ||
| 50 | # CONFIG_PPC_DCR_MMIO is not set | ||
| 51 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
| 52 | |||
| 53 | # | ||
| 54 | # General setup | ||
| 55 | # | ||
| 56 | CONFIG_EXPERIMENTAL=y | ||
| 57 | CONFIG_BROKEN_ON_SMP=y | ||
| 58 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 59 | CONFIG_LOCALVERSION="" | ||
| 60 | CONFIG_LOCALVERSION_AUTO=y | ||
| 61 | # CONFIG_SWAP is not set | ||
| 62 | CONFIG_SYSVIPC=y | ||
| 63 | CONFIG_SYSVIPC_SYSCTL=y | ||
| 64 | # CONFIG_POSIX_MQUEUE is not set | ||
| 65 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
| 66 | # CONFIG_TASKSTATS is not set | ||
| 67 | # CONFIG_USER_NS is not set | ||
| 68 | # CONFIG_PID_NS is not set | ||
| 69 | # CONFIG_AUDIT is not set | ||
| 70 | # CONFIG_IKCONFIG is not set | ||
| 71 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 72 | # CONFIG_CGROUPS is not set | ||
| 73 | CONFIG_FAIR_GROUP_SCHED=y | ||
| 74 | CONFIG_FAIR_USER_SCHED=y | ||
| 75 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
| 76 | CONFIG_SYSFS_DEPRECATED=y | ||
| 77 | # CONFIG_RELAY is not set | ||
| 78 | # CONFIG_BLK_DEV_INITRD is not set | ||
| 79 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 80 | CONFIG_SYSCTL=y | ||
| 81 | CONFIG_EMBEDDED=y | ||
| 82 | # CONFIG_SYSCTL_SYSCALL is not set | ||
| 83 | CONFIG_KALLSYMS=y | ||
| 84 | # CONFIG_KALLSYMS_ALL is not set | ||
| 85 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 86 | CONFIG_HOTPLUG=y | ||
| 87 | CONFIG_PRINTK=y | ||
| 88 | CONFIG_BUG=y | ||
| 89 | # CONFIG_ELF_CORE is not set | ||
| 90 | # CONFIG_BASE_FULL is not set | ||
| 91 | # CONFIG_FUTEX is not set | ||
| 92 | CONFIG_ANON_INODES=y | ||
| 93 | CONFIG_EPOLL=y | ||
| 94 | CONFIG_SIGNALFD=y | ||
| 95 | CONFIG_EVENTFD=y | ||
| 96 | CONFIG_SHMEM=y | ||
| 97 | # CONFIG_VM_EVENT_COUNTERS is not set | ||
| 98 | CONFIG_SLUB_DEBUG=y | ||
| 99 | # CONFIG_SLAB is not set | ||
| 100 | CONFIG_SLUB=y | ||
| 101 | # CONFIG_SLOB is not set | ||
| 102 | # CONFIG_TINY_SHMEM is not set | ||
| 103 | CONFIG_BASE_SMALL=1 | ||
| 104 | # CONFIG_MODULES is not set | ||
| 105 | CONFIG_BLOCK=y | ||
| 106 | # CONFIG_LBD is not set | ||
| 107 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
| 108 | # CONFIG_LSF is not set | ||
| 109 | # CONFIG_BLK_DEV_BSG is not set | ||
| 110 | |||
| 111 | # | ||
| 112 | # IO Schedulers | ||
| 113 | # | ||
| 114 | CONFIG_IOSCHED_NOOP=y | ||
| 115 | # CONFIG_IOSCHED_AS is not set | ||
| 116 | CONFIG_IOSCHED_DEADLINE=y | ||
| 117 | # CONFIG_IOSCHED_CFQ is not set | ||
| 118 | # CONFIG_DEFAULT_AS is not set | ||
| 119 | CONFIG_DEFAULT_DEADLINE=y | ||
| 120 | # CONFIG_DEFAULT_CFQ is not set | ||
| 121 | # CONFIG_DEFAULT_NOOP is not set | ||
| 122 | CONFIG_DEFAULT_IOSCHED="deadline" | ||
| 123 | |||
| 124 | # | ||
| 125 | # Platform support | ||
| 126 | # | ||
| 127 | # CONFIG_PPC_MPC52xx is not set | ||
| 128 | # CONFIG_PPC_MPC5200 is not set | ||
| 129 | # CONFIG_PPC_CELL is not set | ||
| 130 | # CONFIG_PPC_CELL_NATIVE is not set | ||
| 131 | CONFIG_CPM1=y | ||
| 132 | # CONFIG_MPC8XXFADS is not set | ||
| 133 | # CONFIG_MPC86XADS is not set | ||
| 134 | # CONFIG_MPC885ADS is not set | ||
| 135 | # CONFIG_PPC_EP88XC is not set | ||
| 136 | CONFIG_PPC_ADDER875=y | ||
| 137 | |||
| 138 | # | ||
| 139 | # MPC8xx CPM Options | ||
| 140 | # | ||
| 141 | |||
| 142 | # | ||
| 143 | # Generic MPC8xx Options | ||
| 144 | # | ||
| 145 | CONFIG_8xx_COPYBACK=y | ||
| 146 | # CONFIG_8xx_CPU6 is not set | ||
| 147 | CONFIG_8xx_CPU15=y | ||
| 148 | CONFIG_NO_UCODE_PATCH=y | ||
| 149 | # CONFIG_USB_SOF_UCODE_PATCH is not set | ||
| 150 | # CONFIG_I2C_SPI_UCODE_PATCH is not set | ||
| 151 | # CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set | ||
| 152 | # CONFIG_PQ2ADS is not set | ||
| 153 | # CONFIG_MPIC is not set | ||
| 154 | # CONFIG_MPIC_WEIRD is not set | ||
| 155 | # CONFIG_PPC_I8259 is not set | ||
| 156 | # CONFIG_PPC_RTAS is not set | ||
| 157 | # CONFIG_MMIO_NVRAM is not set | ||
| 158 | # CONFIG_PPC_MPC106 is not set | ||
| 159 | # CONFIG_PPC_970_NAP is not set | ||
| 160 | # CONFIG_PPC_INDIRECT_IO is not set | ||
| 161 | # CONFIG_GENERIC_IOMAP is not set | ||
| 162 | # CONFIG_CPU_FREQ is not set | ||
| 163 | # CONFIG_CPM2 is not set | ||
| 164 | CONFIG_PPC_CPM_NEW_BINDING=y | ||
| 165 | # CONFIG_FSL_ULI1575 is not set | ||
| 166 | CONFIG_CPM=y | ||
| 167 | |||
| 168 | # | ||
| 169 | # Kernel options | ||
| 170 | # | ||
| 171 | # CONFIG_HIGHMEM is not set | ||
| 172 | # CONFIG_TICK_ONESHOT is not set | ||
| 173 | # CONFIG_NO_HZ is not set | ||
| 174 | # CONFIG_HIGH_RES_TIMERS is not set | ||
| 175 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
| 176 | # CONFIG_HZ_100 is not set | ||
| 177 | # CONFIG_HZ_250 is not set | ||
| 178 | # CONFIG_HZ_300 is not set | ||
| 179 | CONFIG_HZ_1000=y | ||
| 180 | CONFIG_HZ=1000 | ||
| 181 | CONFIG_PREEMPT_NONE=y | ||
| 182 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
| 183 | # CONFIG_PREEMPT is not set | ||
| 184 | CONFIG_BINFMT_ELF=y | ||
| 185 | # CONFIG_BINFMT_MISC is not set | ||
| 186 | # CONFIG_MATH_EMULATION is not set | ||
| 187 | # CONFIG_8XX_MINIMAL_FPEMU is not set | ||
| 188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
| 189 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
| 190 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
| 191 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 192 | CONFIG_FLATMEM_MANUAL=y | ||
| 193 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 194 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 195 | CONFIG_FLATMEM=y | ||
| 196 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 197 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 198 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
| 199 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
| 200 | # CONFIG_RESOURCES_64BIT is not set | ||
| 201 | CONFIG_ZONE_DMA_FLAG=1 | ||
| 202 | CONFIG_BOUNCE=y | ||
| 203 | CONFIG_VIRT_TO_BUS=y | ||
| 204 | # CONFIG_PROC_DEVICETREE is not set | ||
| 205 | # CONFIG_CMDLINE_BOOL is not set | ||
| 206 | # CONFIG_PM is not set | ||
| 207 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
| 208 | CONFIG_HIBERNATION_UP_POSSIBLE=y | ||
| 209 | # CONFIG_SECCOMP is not set | ||
| 210 | CONFIG_WANT_DEVICE_TREE=y | ||
| 211 | CONFIG_DEVICE_TREE="adder875-redboot.dts" | ||
| 212 | CONFIG_ISA_DMA_API=y | ||
| 213 | |||
| 214 | # | ||
| 215 | # Bus options | ||
| 216 | # | ||
| 217 | CONFIG_ZONE_DMA=y | ||
| 218 | CONFIG_FSL_SOC=y | ||
| 219 | # CONFIG_PCI is not set | ||
| 220 | # CONFIG_PCI_DOMAINS is not set | ||
| 221 | # CONFIG_PCI_SYSCALL is not set | ||
| 222 | # CONFIG_PCI_QSPAN is not set | ||
| 223 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
| 224 | # CONFIG_PCCARD is not set | ||
| 225 | |||
| 226 | # | ||
| 227 | # Advanced setup | ||
| 228 | # | ||
| 229 | # CONFIG_ADVANCED_OPTIONS is not set | ||
| 230 | |||
| 231 | # | ||
| 232 | # Default settings for advanced configuration options are used | ||
| 233 | # | ||
| 234 | CONFIG_HIGHMEM_START=0xfe000000 | ||
| 235 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
| 236 | CONFIG_KERNEL_START=0xc0000000 | ||
| 237 | CONFIG_TASK_SIZE=0x80000000 | ||
| 238 | CONFIG_CONSISTENT_START=0xfd000000 | ||
| 239 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
| 240 | CONFIG_BOOT_LOAD=0x00400000 | ||
| 241 | |||
| 242 | # | ||
| 243 | # Networking | ||
| 244 | # | ||
| 245 | CONFIG_NET=y | ||
| 246 | |||
| 247 | # | ||
| 248 | # Networking options | ||
| 249 | # | ||
| 250 | CONFIG_PACKET=y | ||
| 251 | # CONFIG_PACKET_MMAP is not set | ||
| 252 | CONFIG_UNIX=y | ||
| 253 | # CONFIG_NET_KEY is not set | ||
| 254 | CONFIG_INET=y | ||
| 255 | CONFIG_IP_MULTICAST=y | ||
| 256 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 257 | CONFIG_IP_FIB_HASH=y | ||
| 258 | CONFIG_IP_PNP=y | ||
| 259 | # CONFIG_IP_PNP_DHCP is not set | ||
| 260 | # CONFIG_IP_PNP_BOOTP is not set | ||
| 261 | # CONFIG_IP_PNP_RARP is not set | ||
| 262 | # CONFIG_NET_IPIP is not set | ||
| 263 | # CONFIG_NET_IPGRE is not set | ||
| 264 | # CONFIG_IP_MROUTE is not set | ||
| 265 | # CONFIG_ARPD is not set | ||
| 266 | CONFIG_SYN_COOKIES=y | ||
| 267 | # CONFIG_INET_AH is not set | ||
| 268 | # CONFIG_INET_ESP is not set | ||
| 269 | # CONFIG_INET_IPCOMP is not set | ||
| 270 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
| 271 | # CONFIG_INET_TUNNEL is not set | ||
| 272 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
| 273 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
| 274 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
| 275 | # CONFIG_INET_LRO is not set | ||
| 276 | CONFIG_INET_DIAG=y | ||
| 277 | CONFIG_INET_TCP_DIAG=y | ||
| 278 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 279 | CONFIG_TCP_CONG_CUBIC=y | ||
| 280 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
| 281 | # CONFIG_TCP_MD5SIG is not set | ||
| 282 | # CONFIG_IPV6 is not set | ||
| 283 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
| 284 | # CONFIG_INET6_TUNNEL is not set | ||
| 285 | # CONFIG_NETWORK_SECMARK is not set | ||
| 286 | # CONFIG_NETFILTER is not set | ||
| 287 | # CONFIG_IP_DCCP is not set | ||
| 288 | # CONFIG_IP_SCTP is not set | ||
| 289 | # CONFIG_TIPC is not set | ||
| 290 | # CONFIG_ATM is not set | ||
| 291 | # CONFIG_BRIDGE is not set | ||
| 292 | # CONFIG_VLAN_8021Q is not set | ||
| 293 | # CONFIG_DECNET is not set | ||
| 294 | # CONFIG_LLC2 is not set | ||
| 295 | # CONFIG_IPX is not set | ||
| 296 | # CONFIG_ATALK is not set | ||
| 297 | # CONFIG_X25 is not set | ||
| 298 | # CONFIG_LAPB is not set | ||
| 299 | # CONFIG_ECONET is not set | ||
| 300 | # CONFIG_WAN_ROUTER is not set | ||
| 301 | # CONFIG_NET_SCHED is not set | ||
| 302 | |||
| 303 | # | ||
| 304 | # Network testing | ||
| 305 | # | ||
| 306 | # CONFIG_NET_PKTGEN is not set | ||
| 307 | # CONFIG_HAMRADIO is not set | ||
| 308 | # CONFIG_IRDA is not set | ||
| 309 | # CONFIG_BT is not set | ||
| 310 | # CONFIG_AF_RXRPC is not set | ||
| 311 | |||
| 312 | # | ||
| 313 | # Wireless | ||
| 314 | # | ||
| 315 | # CONFIG_CFG80211 is not set | ||
| 316 | # CONFIG_WIRELESS_EXT is not set | ||
| 317 | # CONFIG_MAC80211 is not set | ||
| 318 | # CONFIG_IEEE80211 is not set | ||
| 319 | # CONFIG_RFKILL is not set | ||
| 320 | # CONFIG_NET_9P is not set | ||
| 321 | |||
| 322 | # | ||
| 323 | # Device Drivers | ||
| 324 | # | ||
| 325 | |||
| 326 | # | ||
| 327 | # Generic Driver Options | ||
| 328 | # | ||
| 329 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
| 330 | CONFIG_STANDALONE=y | ||
| 331 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 332 | # CONFIG_FW_LOADER is not set | ||
| 333 | # CONFIG_DEBUG_DRIVER is not set | ||
| 334 | # CONFIG_DEBUG_DEVRES is not set | ||
| 335 | # CONFIG_SYS_HYPERVISOR is not set | ||
| 336 | # CONFIG_CONNECTOR is not set | ||
| 337 | CONFIG_MTD=y | ||
| 338 | # CONFIG_MTD_DEBUG is not set | ||
| 339 | # CONFIG_MTD_CONCAT is not set | ||
| 340 | # CONFIG_MTD_PARTITIONS is not set | ||
| 341 | |||
| 342 | # | ||
| 343 | # User Modules And Translation Layers | ||
| 344 | # | ||
| 345 | CONFIG_MTD_CHAR=y | ||
| 346 | CONFIG_MTD_BLKDEVS=y | ||
| 347 | CONFIG_MTD_BLOCK=y | ||
| 348 | # CONFIG_FTL is not set | ||
| 349 | # CONFIG_NFTL is not set | ||
| 350 | # CONFIG_INFTL is not set | ||
| 351 | # CONFIG_RFD_FTL is not set | ||
| 352 | # CONFIG_SSFDC is not set | ||
| 353 | # CONFIG_MTD_OOPS is not set | ||
| 354 | |||
| 355 | # | ||
| 356 | # RAM/ROM/Flash chip drivers | ||
| 357 | # | ||
| 358 | CONFIG_MTD_CFI=y | ||
| 359 | # CONFIG_MTD_JEDECPROBE is not set | ||
| 360 | CONFIG_MTD_GEN_PROBE=y | ||
| 361 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
| 362 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
| 363 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
| 364 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
| 365 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
| 366 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
| 367 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
| 368 | CONFIG_MTD_CFI_I1=y | ||
| 369 | CONFIG_MTD_CFI_I2=y | ||
| 370 | # CONFIG_MTD_CFI_I4 is not set | ||
| 371 | # CONFIG_MTD_CFI_I8 is not set | ||
| 372 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
| 373 | CONFIG_MTD_CFI_AMDSTD=y | ||
| 374 | # CONFIG_MTD_CFI_STAA is not set | ||
| 375 | CONFIG_MTD_CFI_UTIL=y | ||
| 376 | # CONFIG_MTD_RAM is not set | ||
| 377 | # CONFIG_MTD_ROM is not set | ||
| 378 | # CONFIG_MTD_ABSENT is not set | ||
| 379 | |||
| 380 | # | ||
| 381 | # Mapping drivers for chip access | ||
| 382 | # | ||
| 383 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
| 384 | # CONFIG_MTD_PHYSMAP is not set | ||
| 385 | CONFIG_MTD_PHYSMAP_OF=y | ||
| 386 | # CONFIG_MTD_CFI_FLAGADM is not set | ||
| 387 | # CONFIG_MTD_PLATRAM is not set | ||
| 388 | |||
| 389 | # | ||
| 390 | # Self-contained MTD device drivers | ||
| 391 | # | ||
| 392 | # CONFIG_MTD_SLRAM is not set | ||
| 393 | # CONFIG_MTD_PHRAM is not set | ||
| 394 | # CONFIG_MTD_MTDRAM is not set | ||
| 395 | # CONFIG_MTD_BLOCK2MTD is not set | ||
| 396 | |||
| 397 | # | ||
| 398 | # Disk-On-Chip Device Drivers | ||
| 399 | # | ||
| 400 | # CONFIG_MTD_DOC2000 is not set | ||
| 401 | # CONFIG_MTD_DOC2001 is not set | ||
| 402 | # CONFIG_MTD_DOC2001PLUS is not set | ||
| 403 | # CONFIG_MTD_NAND is not set | ||
| 404 | # CONFIG_MTD_ONENAND is not set | ||
| 405 | |||
| 406 | # | ||
| 407 | # UBI - Unsorted block images | ||
| 408 | # | ||
| 409 | # CONFIG_MTD_UBI is not set | ||
| 410 | CONFIG_OF_DEVICE=y | ||
| 411 | # CONFIG_PARPORT is not set | ||
| 412 | # CONFIG_BLK_DEV is not set | ||
| 413 | # CONFIG_MISC_DEVICES is not set | ||
| 414 | # CONFIG_IDE is not set | ||
| 415 | |||
| 416 | # | ||
| 417 | # SCSI device support | ||
| 418 | # | ||
| 419 | # CONFIG_RAID_ATTRS is not set | ||
| 420 | # CONFIG_SCSI is not set | ||
| 421 | # CONFIG_SCSI_DMA is not set | ||
| 422 | # CONFIG_SCSI_NETLINK is not set | ||
| 423 | # CONFIG_ATA is not set | ||
| 424 | # CONFIG_MD is not set | ||
| 425 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
| 426 | CONFIG_NETDEVICES=y | ||
| 427 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 428 | # CONFIG_DUMMY is not set | ||
| 429 | # CONFIG_BONDING is not set | ||
| 430 | # CONFIG_MACVLAN is not set | ||
| 431 | # CONFIG_EQUALIZER is not set | ||
| 432 | # CONFIG_TUN is not set | ||
| 433 | # CONFIG_VETH is not set | ||
| 434 | CONFIG_PHYLIB=y | ||
| 435 | |||
| 436 | # | ||
| 437 | # MII PHY device drivers | ||
| 438 | # | ||
| 439 | # CONFIG_MARVELL_PHY is not set | ||
| 440 | CONFIG_DAVICOM_PHY=y | ||
| 441 | # CONFIG_QSEMI_PHY is not set | ||
| 442 | # CONFIG_LXT_PHY is not set | ||
| 443 | # CONFIG_CICADA_PHY is not set | ||
| 444 | # CONFIG_VITESSE_PHY is not set | ||
| 445 | # CONFIG_SMSC_PHY is not set | ||
| 446 | # CONFIG_BROADCOM_PHY is not set | ||
| 447 | # CONFIG_ICPLUS_PHY is not set | ||
| 448 | # CONFIG_FIXED_PHY is not set | ||
| 449 | # CONFIG_MDIO_BITBANG is not set | ||
| 450 | CONFIG_NET_ETHERNET=y | ||
| 451 | CONFIG_MII=y | ||
| 452 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
| 453 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
| 454 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
| 455 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
| 456 | # CONFIG_B44 is not set | ||
| 457 | CONFIG_FS_ENET=y | ||
| 458 | # CONFIG_FS_ENET_HAS_SCC is not set | ||
| 459 | CONFIG_FS_ENET_HAS_FEC=y | ||
| 460 | CONFIG_FS_ENET_MDIO_FEC=y | ||
| 461 | # CONFIG_NETDEV_1000 is not set | ||
| 462 | # CONFIG_NETDEV_10000 is not set | ||
| 463 | |||
| 464 | # | ||
| 465 | # Wireless LAN | ||
| 466 | # | ||
| 467 | # CONFIG_WLAN_PRE80211 is not set | ||
| 468 | # CONFIG_WLAN_80211 is not set | ||
| 469 | # CONFIG_WAN is not set | ||
| 470 | # CONFIG_PPP is not set | ||
| 471 | # CONFIG_SLIP is not set | ||
| 472 | # CONFIG_SHAPER is not set | ||
| 473 | # CONFIG_NETCONSOLE is not set | ||
| 474 | # CONFIG_NETPOLL is not set | ||
| 475 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 476 | # CONFIG_ISDN is not set | ||
| 477 | # CONFIG_PHONE is not set | ||
| 478 | |||
| 479 | # | ||
| 480 | # Input device support | ||
| 481 | # | ||
| 482 | CONFIG_INPUT=y | ||
| 483 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
| 484 | # CONFIG_INPUT_POLLDEV is not set | ||
| 485 | |||
| 486 | # | ||
| 487 | # Userland interfaces | ||
| 488 | # | ||
| 489 | CONFIG_INPUT_MOUSEDEV=y | ||
| 490 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
| 491 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
| 492 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
| 493 | # CONFIG_INPUT_JOYDEV is not set | ||
| 494 | # CONFIG_INPUT_EVDEV is not set | ||
| 495 | # CONFIG_INPUT_EVBUG is not set | ||
| 496 | |||
| 497 | # | ||
| 498 | # Input Device Drivers | ||
| 499 | # | ||
| 500 | CONFIG_INPUT_KEYBOARD=y | ||
| 501 | CONFIG_KEYBOARD_ATKBD=y | ||
| 502 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 503 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 504 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 505 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 506 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
| 507 | CONFIG_INPUT_MOUSE=y | ||
| 508 | CONFIG_MOUSE_PS2=y | ||
| 509 | CONFIG_MOUSE_PS2_ALPS=y | ||
| 510 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
| 511 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
| 512 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
| 513 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
| 514 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
| 515 | # CONFIG_MOUSE_SERIAL is not set | ||
| 516 | # CONFIG_MOUSE_VSXXXAA is not set | ||
| 517 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 518 | # CONFIG_INPUT_TABLET is not set | ||
| 519 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
| 520 | # CONFIG_INPUT_MISC is not set | ||
| 521 | |||
| 522 | # | ||
| 523 | # Hardware I/O ports | ||
| 524 | # | ||
| 525 | CONFIG_SERIO=y | ||
| 526 | CONFIG_SERIO_I8042=y | ||
| 527 | CONFIG_SERIO_SERPORT=y | ||
| 528 | CONFIG_SERIO_LIBPS2=y | ||
| 529 | # CONFIG_SERIO_RAW is not set | ||
| 530 | # CONFIG_GAMEPORT is not set | ||
| 531 | |||
| 532 | # | ||
| 533 | # Character devices | ||
| 534 | # | ||
| 535 | # CONFIG_VT is not set | ||
| 536 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 537 | |||
| 538 | # | ||
| 539 | # Serial drivers | ||
| 540 | # | ||
| 541 | # CONFIG_SERIAL_8250 is not set | ||
| 542 | |||
| 543 | # | ||
| 544 | # Non-8250 serial port support | ||
| 545 | # | ||
| 546 | # CONFIG_SERIAL_UARTLITE is not set | ||
| 547 | CONFIG_SERIAL_CORE=y | ||
| 548 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 549 | CONFIG_SERIAL_CPM=y | ||
| 550 | CONFIG_SERIAL_CPM_CONSOLE=y | ||
| 551 | # CONFIG_SERIAL_CPM_SCC1 is not set | ||
| 552 | # CONFIG_SERIAL_CPM_SCC2 is not set | ||
| 553 | # CONFIG_SERIAL_CPM_SCC3 is not set | ||
| 554 | # CONFIG_SERIAL_CPM_SCC4 is not set | ||
| 555 | CONFIG_SERIAL_CPM_SMC1=y | ||
| 556 | CONFIG_SERIAL_CPM_SMC2=y | ||
| 557 | CONFIG_UNIX98_PTYS=y | ||
| 558 | # CONFIG_LEGACY_PTYS is not set | ||
| 559 | # CONFIG_IPMI_HANDLER is not set | ||
| 560 | CONFIG_HW_RANDOM=y | ||
| 561 | # CONFIG_NVRAM is not set | ||
| 562 | CONFIG_GEN_RTC=y | ||
| 563 | # CONFIG_GEN_RTC_X is not set | ||
| 564 | # CONFIG_R3964 is not set | ||
| 565 | # CONFIG_RAW_DRIVER is not set | ||
| 566 | # CONFIG_TCG_TPM is not set | ||
| 567 | # CONFIG_I2C is not set | ||
| 568 | |||
| 569 | # | ||
| 570 | # SPI support | ||
| 571 | # | ||
| 572 | # CONFIG_SPI is not set | ||
| 573 | # CONFIG_SPI_MASTER is not set | ||
| 574 | # CONFIG_W1 is not set | ||
| 575 | # CONFIG_POWER_SUPPLY is not set | ||
| 576 | # CONFIG_HWMON is not set | ||
| 577 | # CONFIG_WATCHDOG is not set | ||
| 578 | |||
| 579 | # | ||
| 580 | # Sonics Silicon Backplane | ||
| 581 | # | ||
| 582 | CONFIG_SSB_POSSIBLE=y | ||
| 583 | # CONFIG_SSB is not set | ||
| 584 | |||
| 585 | # | ||
| 586 | # Multifunction device drivers | ||
| 587 | # | ||
| 588 | # CONFIG_MFD_SM501 is not set | ||
| 589 | |||
| 590 | # | ||
| 591 | # Multimedia devices | ||
| 592 | # | ||
| 593 | # CONFIG_VIDEO_DEV is not set | ||
| 594 | # CONFIG_DVB_CORE is not set | ||
| 595 | CONFIG_DAB=y | ||
| 596 | |||
| 597 | # | ||
| 598 | # Graphics support | ||
| 599 | # | ||
| 600 | # CONFIG_VGASTATE is not set | ||
| 601 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
| 602 | # CONFIG_FB is not set | ||
| 603 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 604 | |||
| 605 | # | ||
| 606 | # Display device support | ||
| 607 | # | ||
| 608 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 609 | |||
| 610 | # | ||
| 611 | # Sound | ||
| 612 | # | ||
| 613 | # CONFIG_SOUND is not set | ||
| 614 | # CONFIG_HID_SUPPORT is not set | ||
| 615 | # CONFIG_USB_SUPPORT is not set | ||
| 616 | # CONFIG_MMC is not set | ||
| 617 | # CONFIG_NEW_LEDS is not set | ||
| 618 | # CONFIG_EDAC is not set | ||
| 619 | # CONFIG_RTC_CLASS is not set | ||
| 620 | |||
| 621 | # | ||
| 622 | # Userspace I/O | ||
| 623 | # | ||
| 624 | # CONFIG_UIO is not set | ||
| 625 | |||
| 626 | # | ||
| 627 | # File systems | ||
| 628 | # | ||
| 629 | # CONFIG_EXT2_FS is not set | ||
| 630 | # CONFIG_EXT3_FS is not set | ||
| 631 | # CONFIG_EXT4DEV_FS is not set | ||
| 632 | # CONFIG_REISERFS_FS is not set | ||
| 633 | # CONFIG_JFS_FS is not set | ||
| 634 | # CONFIG_FS_POSIX_ACL is not set | ||
| 635 | # CONFIG_XFS_FS is not set | ||
| 636 | # CONFIG_GFS2_FS is not set | ||
| 637 | # CONFIG_OCFS2_FS is not set | ||
| 638 | # CONFIG_MINIX_FS is not set | ||
| 639 | # CONFIG_ROMFS_FS is not set | ||
| 640 | # CONFIG_INOTIFY is not set | ||
| 641 | # CONFIG_QUOTA is not set | ||
| 642 | # CONFIG_DNOTIFY is not set | ||
| 643 | # CONFIG_AUTOFS_FS is not set | ||
| 644 | # CONFIG_AUTOFS4_FS is not set | ||
| 645 | # CONFIG_FUSE_FS is not set | ||
| 646 | |||
| 647 | # | ||
| 648 | # CD-ROM/DVD Filesystems | ||
| 649 | # | ||
| 650 | # CONFIG_ISO9660_FS is not set | ||
| 651 | # CONFIG_UDF_FS is not set | ||
| 652 | |||
| 653 | # | ||
| 654 | # DOS/FAT/NT Filesystems | ||
| 655 | # | ||
| 656 | # CONFIG_MSDOS_FS is not set | ||
| 657 | # CONFIG_VFAT_FS is not set | ||
| 658 | # CONFIG_NTFS_FS is not set | ||
| 659 | |||
| 660 | # | ||
| 661 | # Pseudo filesystems | ||
| 662 | # | ||
| 663 | CONFIG_PROC_FS=y | ||
| 664 | # CONFIG_PROC_KCORE is not set | ||
| 665 | CONFIG_PROC_SYSCTL=y | ||
| 666 | CONFIG_SYSFS=y | ||
| 667 | CONFIG_TMPFS=y | ||
| 668 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
| 669 | # CONFIG_HUGETLB_PAGE is not set | ||
| 670 | # CONFIG_CONFIGFS_FS is not set | ||
| 671 | |||
| 672 | # | ||
| 673 | # Miscellaneous filesystems | ||
| 674 | # | ||
| 675 | # CONFIG_ADFS_FS is not set | ||
| 676 | # CONFIG_AFFS_FS is not set | ||
| 677 | # CONFIG_HFS_FS is not set | ||
| 678 | # CONFIG_HFSPLUS_FS is not set | ||
| 679 | # CONFIG_BEFS_FS is not set | ||
| 680 | # CONFIG_BFS_FS is not set | ||
| 681 | # CONFIG_EFS_FS is not set | ||
| 682 | # CONFIG_JFFS2_FS is not set | ||
| 683 | CONFIG_CRAMFS=y | ||
| 684 | # CONFIG_VXFS_FS is not set | ||
| 685 | # CONFIG_HPFS_FS is not set | ||
| 686 | # CONFIG_QNX4FS_FS is not set | ||
| 687 | # CONFIG_SYSV_FS is not set | ||
| 688 | # CONFIG_UFS_FS is not set | ||
| 689 | CONFIG_NETWORK_FILESYSTEMS=y | ||
| 690 | CONFIG_NFS_FS=y | ||
| 691 | CONFIG_NFS_V3=y | ||
| 692 | # CONFIG_NFS_V3_ACL is not set | ||
| 693 | # CONFIG_NFS_V4 is not set | ||
| 694 | # CONFIG_NFS_DIRECTIO is not set | ||
| 695 | # CONFIG_NFSD is not set | ||
| 696 | CONFIG_ROOT_NFS=y | ||
| 697 | CONFIG_LOCKD=y | ||
| 698 | CONFIG_LOCKD_V4=y | ||
| 699 | CONFIG_NFS_COMMON=y | ||
| 700 | CONFIG_SUNRPC=y | ||
| 701 | # CONFIG_SUNRPC_BIND34 is not set | ||
| 702 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
| 703 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
| 704 | # CONFIG_SMB_FS is not set | ||
| 705 | # CONFIG_CIFS is not set | ||
| 706 | # CONFIG_NCP_FS is not set | ||
| 707 | # CONFIG_CODA_FS is not set | ||
| 708 | # CONFIG_AFS_FS is not set | ||
| 709 | |||
| 710 | # | ||
| 711 | # Partition Types | ||
| 712 | # | ||
| 713 | CONFIG_PARTITION_ADVANCED=y | ||
| 714 | # CONFIG_ACORN_PARTITION is not set | ||
| 715 | # CONFIG_OSF_PARTITION is not set | ||
| 716 | # CONFIG_AMIGA_PARTITION is not set | ||
| 717 | # CONFIG_ATARI_PARTITION is not set | ||
| 718 | # CONFIG_MAC_PARTITION is not set | ||
| 719 | CONFIG_MSDOS_PARTITION=y | ||
| 720 | # CONFIG_BSD_DISKLABEL is not set | ||
| 721 | # CONFIG_MINIX_SUBPARTITION is not set | ||
| 722 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
| 723 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
| 724 | # CONFIG_LDM_PARTITION is not set | ||
| 725 | # CONFIG_SGI_PARTITION is not set | ||
| 726 | # CONFIG_ULTRIX_PARTITION is not set | ||
| 727 | # CONFIG_SUN_PARTITION is not set | ||
| 728 | # CONFIG_KARMA_PARTITION is not set | ||
| 729 | # CONFIG_EFI_PARTITION is not set | ||
| 730 | # CONFIG_SYSV68_PARTITION is not set | ||
| 731 | # CONFIG_NLS is not set | ||
| 732 | # CONFIG_DLM is not set | ||
| 733 | # CONFIG_UCC_SLOW is not set | ||
| 734 | |||
| 735 | # | ||
| 736 | # Library routines | ||
| 737 | # | ||
| 738 | # CONFIG_CRC_CCITT is not set | ||
| 739 | # CONFIG_CRC16 is not set | ||
| 740 | # CONFIG_CRC_ITU_T is not set | ||
| 741 | # CONFIG_CRC32 is not set | ||
| 742 | # CONFIG_CRC7 is not set | ||
| 743 | # CONFIG_LIBCRC32C is not set | ||
| 744 | CONFIG_ZLIB_INFLATE=y | ||
| 745 | CONFIG_HAS_IOMEM=y | ||
| 746 | CONFIG_HAS_IOPORT=y | ||
| 747 | CONFIG_HAS_DMA=y | ||
| 748 | CONFIG_INSTRUMENTATION=y | ||
| 749 | # CONFIG_PROFILING is not set | ||
| 750 | # CONFIG_MARKERS is not set | ||
| 751 | |||
| 752 | # | ||
| 753 | # Kernel hacking | ||
| 754 | # | ||
| 755 | # CONFIG_PRINTK_TIME is not set | ||
| 756 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 757 | CONFIG_ENABLE_MUST_CHECK=y | ||
| 758 | CONFIG_MAGIC_SYSRQ=y | ||
| 759 | # CONFIG_UNUSED_SYMBOLS is not set | ||
| 760 | # CONFIG_DEBUG_FS is not set | ||
| 761 | # CONFIG_HEADERS_CHECK is not set | ||
| 762 | CONFIG_DEBUG_KERNEL=y | ||
| 763 | # CONFIG_DEBUG_SHIRQ is not set | ||
| 764 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 765 | CONFIG_SCHED_DEBUG=y | ||
| 766 | # CONFIG_SCHEDSTATS is not set | ||
| 767 | # CONFIG_TIMER_STATS is not set | ||
| 768 | # CONFIG_SLUB_DEBUG_ON is not set | ||
| 769 | # CONFIG_DEBUG_SPINLOCK is not set | ||
| 770 | # CONFIG_DEBUG_MUTEXES is not set | ||
| 771 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 772 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
| 773 | # CONFIG_DEBUG_KOBJECT is not set | ||
| 774 | CONFIG_DEBUG_BUGVERBOSE=y | ||
| 775 | CONFIG_DEBUG_INFO=y | ||
| 776 | # CONFIG_DEBUG_VM is not set | ||
| 777 | # CONFIG_DEBUG_LIST is not set | ||
| 778 | # CONFIG_DEBUG_SG is not set | ||
| 779 | CONFIG_FORCED_INLINING=y | ||
| 780 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
| 781 | # CONFIG_FAULT_INJECTION is not set | ||
| 782 | # CONFIG_SAMPLES is not set | ||
| 783 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
| 784 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
| 785 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
| 786 | # CONFIG_DEBUGGER is not set | ||
| 787 | # CONFIG_BDI_SWITCH is not set | ||
| 788 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
| 789 | |||
| 790 | # | ||
| 791 | # Security options | ||
| 792 | # | ||
| 793 | # CONFIG_KEYS is not set | ||
| 794 | # CONFIG_SECURITY is not set | ||
| 795 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
| 796 | # CONFIG_CRYPTO is not set | ||
| 797 | # CONFIG_PPC_CLOCK is not set | ||
| 798 | CONFIG_PPC_LIB_RHEAP=y | ||
diff --git a/arch/powerpc/configs/adder875-uboot_defconfig b/arch/powerpc/configs/adder875_defconfig index 1faf7ef59a23..a3cc94a2ff06 100644 --- a/arch/powerpc/configs/adder875-uboot_defconfig +++ b/arch/powerpc/configs/adder875_defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.24-rc6 | 3 | # Linux kernel version: 2.6.25-rc2 |
| 4 | # Thu Jan 17 16:17:18 2008 | 4 | # Wed Feb 20 12:26:07 2008 |
| 5 | # | 5 | # |
| 6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
| 7 | 7 | ||
| @@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y | |||
| 26 | CONFIG_GENERIC_TIME_VSYSCALL=y | 26 | CONFIG_GENERIC_TIME_VSYSCALL=y |
| 27 | CONFIG_GENERIC_CLOCKEVENTS=y | 27 | CONFIG_GENERIC_CLOCKEVENTS=y |
| 28 | CONFIG_GENERIC_HARDIRQS=y | 28 | CONFIG_GENERIC_HARDIRQS=y |
| 29 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
| 29 | CONFIG_IRQ_PER_CPU=y | 30 | CONFIG_IRQ_PER_CPU=y |
| 30 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 31 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
| 31 | CONFIG_ARCH_HAS_ILOG2_U32=y | 32 | CONFIG_ARCH_HAS_ILOG2_U32=y |
| @@ -64,17 +65,18 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 64 | # CONFIG_POSIX_MQUEUE is not set | 65 | # CONFIG_POSIX_MQUEUE is not set |
| 65 | # CONFIG_BSD_PROCESS_ACCT is not set | 66 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 66 | # CONFIG_TASKSTATS is not set | 67 | # CONFIG_TASKSTATS is not set |
| 67 | # CONFIG_USER_NS is not set | ||
| 68 | # CONFIG_PID_NS is not set | ||
| 69 | # CONFIG_AUDIT is not set | 68 | # CONFIG_AUDIT is not set |
| 70 | # CONFIG_IKCONFIG is not set | 69 | # CONFIG_IKCONFIG is not set |
| 71 | CONFIG_LOG_BUF_SHIFT=14 | 70 | CONFIG_LOG_BUF_SHIFT=14 |
| 72 | # CONFIG_CGROUPS is not set | 71 | # CONFIG_CGROUPS is not set |
| 72 | CONFIG_GROUP_SCHED=y | ||
| 73 | CONFIG_FAIR_GROUP_SCHED=y | 73 | CONFIG_FAIR_GROUP_SCHED=y |
| 74 | CONFIG_FAIR_USER_SCHED=y | 74 | # CONFIG_RT_GROUP_SCHED is not set |
| 75 | # CONFIG_FAIR_CGROUP_SCHED is not set | 75 | CONFIG_USER_SCHED=y |
| 76 | # CONFIG_CGROUP_SCHED is not set | ||
| 76 | CONFIG_SYSFS_DEPRECATED=y | 77 | CONFIG_SYSFS_DEPRECATED=y |
| 77 | # CONFIG_RELAY is not set | 78 | # CONFIG_RELAY is not set |
| 79 | # CONFIG_NAMESPACES is not set | ||
| 78 | # CONFIG_BLK_DEV_INITRD is not set | 80 | # CONFIG_BLK_DEV_INITRD is not set |
| 79 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 81 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
| 80 | CONFIG_SYSCTL=y | 82 | CONFIG_SYSCTL=y |
| @@ -87,11 +89,13 @@ CONFIG_HOTPLUG=y | |||
| 87 | CONFIG_PRINTK=y | 89 | CONFIG_PRINTK=y |
| 88 | CONFIG_BUG=y | 90 | CONFIG_BUG=y |
| 89 | # CONFIG_ELF_CORE is not set | 91 | # CONFIG_ELF_CORE is not set |
| 92 | CONFIG_COMPAT_BRK=y | ||
| 90 | # CONFIG_BASE_FULL is not set | 93 | # CONFIG_BASE_FULL is not set |
| 91 | # CONFIG_FUTEX is not set | 94 | # CONFIG_FUTEX is not set |
| 92 | CONFIG_ANON_INODES=y | 95 | CONFIG_ANON_INODES=y |
| 93 | CONFIG_EPOLL=y | 96 | CONFIG_EPOLL=y |
| 94 | CONFIG_SIGNALFD=y | 97 | CONFIG_SIGNALFD=y |
| 98 | CONFIG_TIMERFD=y | ||
| 95 | CONFIG_EVENTFD=y | 99 | CONFIG_EVENTFD=y |
| 96 | CONFIG_SHMEM=y | 100 | CONFIG_SHMEM=y |
| 97 | # CONFIG_VM_EVENT_COUNTERS is not set | 101 | # CONFIG_VM_EVENT_COUNTERS is not set |
| @@ -99,6 +103,12 @@ CONFIG_SLUB_DEBUG=y | |||
| 99 | # CONFIG_SLAB is not set | 103 | # CONFIG_SLAB is not set |
| 100 | CONFIG_SLUB=y | 104 | CONFIG_SLUB=y |
| 101 | # CONFIG_SLOB is not set | 105 | # CONFIG_SLOB is not set |
| 106 | # CONFIG_PROFILING is not set | ||
| 107 | # CONFIG_MARKERS is not set | ||
| 108 | CONFIG_HAVE_OPROFILE=y | ||
| 109 | CONFIG_HAVE_KPROBES=y | ||
| 110 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 111 | CONFIG_SLABINFO=y | ||
| 102 | # CONFIG_TINY_SHMEM is not set | 112 | # CONFIG_TINY_SHMEM is not set |
| 103 | CONFIG_BASE_SMALL=1 | 113 | CONFIG_BASE_SMALL=1 |
| 104 | # CONFIG_MODULES is not set | 114 | # CONFIG_MODULES is not set |
| @@ -120,12 +130,14 @@ CONFIG_DEFAULT_DEADLINE=y | |||
| 120 | # CONFIG_DEFAULT_CFQ is not set | 130 | # CONFIG_DEFAULT_CFQ is not set |
| 121 | # CONFIG_DEFAULT_NOOP is not set | 131 | # CONFIG_DEFAULT_NOOP is not set |
| 122 | CONFIG_DEFAULT_IOSCHED="deadline" | 132 | CONFIG_DEFAULT_IOSCHED="deadline" |
| 133 | CONFIG_CLASSIC_RCU=y | ||
| 134 | # CONFIG_PREEMPT_RCU is not set | ||
| 123 | 135 | ||
| 124 | # | 136 | # |
| 125 | # Platform support | 137 | # Platform support |
| 126 | # | 138 | # |
| 127 | # CONFIG_PPC_MPC52xx is not set | 139 | # CONFIG_PPC_MPC512x is not set |
| 128 | # CONFIG_PPC_MPC5200 is not set | 140 | # CONFIG_PPC_MPC5121 is not set |
| 129 | # CONFIG_PPC_CELL is not set | 141 | # CONFIG_PPC_CELL is not set |
| 130 | # CONFIG_PPC_CELL_NATIVE is not set | 142 | # CONFIG_PPC_CELL_NATIVE is not set |
| 131 | CONFIG_CPM1=y | 143 | CONFIG_CPM1=y |
| @@ -150,6 +162,7 @@ CONFIG_NO_UCODE_PATCH=y | |||
| 150 | # CONFIG_I2C_SPI_UCODE_PATCH is not set | 162 | # CONFIG_I2C_SPI_UCODE_PATCH is not set |
| 151 | # CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set | 163 | # CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set |
| 152 | # CONFIG_PQ2ADS is not set | 164 | # CONFIG_PQ2ADS is not set |
| 165 | # CONFIG_IPIC is not set | ||
| 153 | # CONFIG_MPIC is not set | 166 | # CONFIG_MPIC is not set |
| 154 | # CONFIG_MPIC_WEIRD is not set | 167 | # CONFIG_MPIC_WEIRD is not set |
| 155 | # CONFIG_PPC_I8259 is not set | 168 | # CONFIG_PPC_I8259 is not set |
| @@ -160,7 +173,6 @@ CONFIG_NO_UCODE_PATCH=y | |||
| 160 | # CONFIG_PPC_INDIRECT_IO is not set | 173 | # CONFIG_PPC_INDIRECT_IO is not set |
| 161 | # CONFIG_GENERIC_IOMAP is not set | 174 | # CONFIG_GENERIC_IOMAP is not set |
| 162 | # CONFIG_CPU_FREQ is not set | 175 | # CONFIG_CPU_FREQ is not set |
| 163 | # CONFIG_CPM2 is not set | ||
| 164 | CONFIG_PPC_CPM_NEW_BINDING=y | 176 | CONFIG_PPC_CPM_NEW_BINDING=y |
| 165 | # CONFIG_FSL_ULI1575 is not set | 177 | # CONFIG_FSL_ULI1575 is not set |
| 166 | CONFIG_CPM=y | 178 | CONFIG_CPM=y |
| @@ -178,14 +190,19 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
| 178 | # CONFIG_HZ_300 is not set | 190 | # CONFIG_HZ_300 is not set |
| 179 | CONFIG_HZ_1000=y | 191 | CONFIG_HZ_1000=y |
| 180 | CONFIG_HZ=1000 | 192 | CONFIG_HZ=1000 |
| 193 | # CONFIG_SCHED_HRTICK is not set | ||
| 181 | CONFIG_PREEMPT_NONE=y | 194 | CONFIG_PREEMPT_NONE=y |
| 182 | # CONFIG_PREEMPT_VOLUNTARY is not set | 195 | # CONFIG_PREEMPT_VOLUNTARY is not set |
| 183 | # CONFIG_PREEMPT is not set | 196 | # CONFIG_PREEMPT is not set |
| 197 | CONFIG_RCU_TRACE=y | ||
| 184 | CONFIG_BINFMT_ELF=y | 198 | CONFIG_BINFMT_ELF=y |
| 185 | # CONFIG_BINFMT_MISC is not set | 199 | # CONFIG_BINFMT_MISC is not set |
| 186 | # CONFIG_MATH_EMULATION is not set | 200 | # CONFIG_MATH_EMULATION is not set |
| 187 | # CONFIG_8XX_MINIMAL_FPEMU is not set | 201 | # CONFIG_8XX_MINIMAL_FPEMU is not set |
| 202 | # CONFIG_IOMMU_HELPER is not set | ||
| 188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 203 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
| 204 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
| 205 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
| 189 | CONFIG_ARCH_FLATMEM_ENABLE=y | 206 | CONFIG_ARCH_FLATMEM_ENABLE=y |
| 190 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 207 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
| 191 | CONFIG_SELECT_MEMORY_MODEL=y | 208 | CONFIG_SELECT_MEMORY_MODEL=y |
| @@ -204,11 +221,7 @@ CONFIG_VIRT_TO_BUS=y | |||
| 204 | # CONFIG_PROC_DEVICETREE is not set | 221 | # CONFIG_PROC_DEVICETREE is not set |
| 205 | # CONFIG_CMDLINE_BOOL is not set | 222 | # CONFIG_CMDLINE_BOOL is not set |
| 206 | # CONFIG_PM is not set | 223 | # CONFIG_PM is not set |
| 207 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
| 208 | CONFIG_HIBERNATION_UP_POSSIBLE=y | ||
| 209 | # CONFIG_SECCOMP is not set | 224 | # CONFIG_SECCOMP is not set |
| 210 | CONFIG_WANT_DEVICE_TREE=y | ||
| 211 | CONFIG_DEVICE_TREE="adder875-uboot.dts" | ||
| 212 | CONFIG_ISA_DMA_API=y | 225 | CONFIG_ISA_DMA_API=y |
| 213 | 226 | ||
| 214 | # | 227 | # |
| @@ -305,6 +318,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 305 | # | 318 | # |
| 306 | # CONFIG_NET_PKTGEN is not set | 319 | # CONFIG_NET_PKTGEN is not set |
| 307 | # CONFIG_HAMRADIO is not set | 320 | # CONFIG_HAMRADIO is not set |
| 321 | # CONFIG_CAN is not set | ||
| 308 | # CONFIG_IRDA is not set | 322 | # CONFIG_IRDA is not set |
| 309 | # CONFIG_BT is not set | 323 | # CONFIG_BT is not set |
| 310 | # CONFIG_AF_RXRPC is not set | 324 | # CONFIG_AF_RXRPC is not set |
| @@ -411,6 +425,7 @@ CONFIG_OF_DEVICE=y | |||
| 411 | # CONFIG_PARPORT is not set | 425 | # CONFIG_PARPORT is not set |
| 412 | # CONFIG_BLK_DEV is not set | 426 | # CONFIG_BLK_DEV is not set |
| 413 | # CONFIG_MISC_DEVICES is not set | 427 | # CONFIG_MISC_DEVICES is not set |
| 428 | CONFIG_HAVE_IDE=y | ||
| 414 | # CONFIG_IDE is not set | 429 | # CONFIG_IDE is not set |
| 415 | 430 | ||
| 416 | # | 431 | # |
| @@ -445,6 +460,7 @@ CONFIG_DAVICOM_PHY=y | |||
| 445 | # CONFIG_SMSC_PHY is not set | 460 | # CONFIG_SMSC_PHY is not set |
| 446 | # CONFIG_BROADCOM_PHY is not set | 461 | # CONFIG_BROADCOM_PHY is not set |
| 447 | # CONFIG_ICPLUS_PHY is not set | 462 | # CONFIG_ICPLUS_PHY is not set |
| 463 | # CONFIG_REALTEK_PHY is not set | ||
| 448 | # CONFIG_FIXED_PHY is not set | 464 | # CONFIG_FIXED_PHY is not set |
| 449 | # CONFIG_MDIO_BITBANG is not set | 465 | # CONFIG_MDIO_BITBANG is not set |
| 450 | CONFIG_NET_ETHERNET=y | 466 | CONFIG_NET_ETHERNET=y |
| @@ -469,7 +485,6 @@ CONFIG_FS_ENET_MDIO_FEC=y | |||
| 469 | # CONFIG_WAN is not set | 485 | # CONFIG_WAN is not set |
| 470 | # CONFIG_PPP is not set | 486 | # CONFIG_PPP is not set |
| 471 | # CONFIG_SLIP is not set | 487 | # CONFIG_SLIP is not set |
| 472 | # CONFIG_SHAPER is not set | ||
| 473 | # CONFIG_NETCONSOLE is not set | 488 | # CONFIG_NETCONSOLE is not set |
| 474 | # CONFIG_NETPOLL is not set | 489 | # CONFIG_NETPOLL is not set |
| 475 | # CONFIG_NET_POLL_CONTROLLER is not set | 490 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -574,6 +589,7 @@ CONFIG_GEN_RTC=y | |||
| 574 | # CONFIG_W1 is not set | 589 | # CONFIG_W1 is not set |
| 575 | # CONFIG_POWER_SUPPLY is not set | 590 | # CONFIG_POWER_SUPPLY is not set |
| 576 | # CONFIG_HWMON is not set | 591 | # CONFIG_HWMON is not set |
| 592 | CONFIG_THERMAL=y | ||
| 577 | # CONFIG_WATCHDOG is not set | 593 | # CONFIG_WATCHDOG is not set |
| 578 | 594 | ||
| 579 | # | 595 | # |
| @@ -614,6 +630,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y | |||
| 614 | # CONFIG_HID_SUPPORT is not set | 630 | # CONFIG_HID_SUPPORT is not set |
| 615 | # CONFIG_USB_SUPPORT is not set | 631 | # CONFIG_USB_SUPPORT is not set |
| 616 | # CONFIG_MMC is not set | 632 | # CONFIG_MMC is not set |
| 633 | # CONFIG_MEMSTICK is not set | ||
| 617 | # CONFIG_NEW_LEDS is not set | 634 | # CONFIG_NEW_LEDS is not set |
| 618 | # CONFIG_EDAC is not set | 635 | # CONFIG_EDAC is not set |
| 619 | # CONFIG_RTC_CLASS is not set | 636 | # CONFIG_RTC_CLASS is not set |
| @@ -635,11 +652,9 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y | |||
| 635 | # CONFIG_XFS_FS is not set | 652 | # CONFIG_XFS_FS is not set |
| 636 | # CONFIG_GFS2_FS is not set | 653 | # CONFIG_GFS2_FS is not set |
| 637 | # CONFIG_OCFS2_FS is not set | 654 | # CONFIG_OCFS2_FS is not set |
| 638 | # CONFIG_MINIX_FS is not set | 655 | # CONFIG_DNOTIFY is not set |
| 639 | # CONFIG_ROMFS_FS is not set | ||
| 640 | # CONFIG_INOTIFY is not set | 656 | # CONFIG_INOTIFY is not set |
| 641 | # CONFIG_QUOTA is not set | 657 | # CONFIG_QUOTA is not set |
| 642 | # CONFIG_DNOTIFY is not set | ||
| 643 | # CONFIG_AUTOFS_FS is not set | 658 | # CONFIG_AUTOFS_FS is not set |
| 644 | # CONFIG_AUTOFS4_FS is not set | 659 | # CONFIG_AUTOFS4_FS is not set |
| 645 | # CONFIG_FUSE_FS is not set | 660 | # CONFIG_FUSE_FS is not set |
| @@ -682,8 +697,10 @@ CONFIG_TMPFS=y | |||
| 682 | # CONFIG_JFFS2_FS is not set | 697 | # CONFIG_JFFS2_FS is not set |
| 683 | CONFIG_CRAMFS=y | 698 | CONFIG_CRAMFS=y |
| 684 | # CONFIG_VXFS_FS is not set | 699 | # CONFIG_VXFS_FS is not set |
| 700 | # CONFIG_MINIX_FS is not set | ||
| 685 | # CONFIG_HPFS_FS is not set | 701 | # CONFIG_HPFS_FS is not set |
| 686 | # CONFIG_QNX4FS_FS is not set | 702 | # CONFIG_QNX4FS_FS is not set |
| 703 | # CONFIG_ROMFS_FS is not set | ||
| 687 | # CONFIG_SYSV_FS is not set | 704 | # CONFIG_SYSV_FS is not set |
| 688 | # CONFIG_UFS_FS is not set | 705 | # CONFIG_UFS_FS is not set |
| 689 | CONFIG_NETWORK_FILESYSTEMS=y | 706 | CONFIG_NETWORK_FILESYSTEMS=y |
| @@ -730,7 +747,6 @@ CONFIG_MSDOS_PARTITION=y | |||
| 730 | # CONFIG_SYSV68_PARTITION is not set | 747 | # CONFIG_SYSV68_PARTITION is not set |
| 731 | # CONFIG_NLS is not set | 748 | # CONFIG_NLS is not set |
| 732 | # CONFIG_DLM is not set | 749 | # CONFIG_DLM is not set |
| 733 | # CONFIG_UCC_SLOW is not set | ||
| 734 | 750 | ||
| 735 | # | 751 | # |
| 736 | # Library routines | 752 | # Library routines |
| @@ -745,9 +761,6 @@ CONFIG_ZLIB_INFLATE=y | |||
| 745 | CONFIG_HAS_IOMEM=y | 761 | CONFIG_HAS_IOMEM=y |
| 746 | CONFIG_HAS_IOPORT=y | 762 | CONFIG_HAS_IOPORT=y |
| 747 | CONFIG_HAS_DMA=y | 763 | CONFIG_HAS_DMA=y |
| 748 | CONFIG_INSTRUMENTATION=y | ||
| 749 | # CONFIG_PROFILING is not set | ||
| 750 | # CONFIG_MARKERS is not set | ||
| 751 | 764 | ||
| 752 | # | 765 | # |
| 753 | # Kernel hacking | 766 | # Kernel hacking |
| @@ -757,7 +770,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
| 757 | CONFIG_ENABLE_MUST_CHECK=y | 770 | CONFIG_ENABLE_MUST_CHECK=y |
| 758 | CONFIG_MAGIC_SYSRQ=y | 771 | CONFIG_MAGIC_SYSRQ=y |
| 759 | # CONFIG_UNUSED_SYMBOLS is not set | 772 | # CONFIG_UNUSED_SYMBOLS is not set |
| 760 | # CONFIG_DEBUG_FS is not set | 773 | CONFIG_DEBUG_FS=y |
| 761 | # CONFIG_HEADERS_CHECK is not set | 774 | # CONFIG_HEADERS_CHECK is not set |
| 762 | CONFIG_DEBUG_KERNEL=y | 775 | CONFIG_DEBUG_KERNEL=y |
| 763 | # CONFIG_DEBUG_SHIRQ is not set | 776 | # CONFIG_DEBUG_SHIRQ is not set |
| @@ -766,6 +779,7 @@ CONFIG_SCHED_DEBUG=y | |||
| 766 | # CONFIG_SCHEDSTATS is not set | 779 | # CONFIG_SCHEDSTATS is not set |
| 767 | # CONFIG_TIMER_STATS is not set | 780 | # CONFIG_TIMER_STATS is not set |
| 768 | # CONFIG_SLUB_DEBUG_ON is not set | 781 | # CONFIG_SLUB_DEBUG_ON is not set |
| 782 | # CONFIG_SLUB_STATS is not set | ||
| 769 | # CONFIG_DEBUG_SPINLOCK is not set | 783 | # CONFIG_DEBUG_SPINLOCK is not set |
| 770 | # CONFIG_DEBUG_MUTEXES is not set | 784 | # CONFIG_DEBUG_MUTEXES is not set |
| 771 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 785 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
| @@ -776,14 +790,15 @@ CONFIG_DEBUG_INFO=y | |||
| 776 | # CONFIG_DEBUG_VM is not set | 790 | # CONFIG_DEBUG_VM is not set |
| 777 | # CONFIG_DEBUG_LIST is not set | 791 | # CONFIG_DEBUG_LIST is not set |
| 778 | # CONFIG_DEBUG_SG is not set | 792 | # CONFIG_DEBUG_SG is not set |
| 779 | CONFIG_FORCED_INLINING=y | ||
| 780 | # CONFIG_BOOT_PRINTK_DELAY is not set | 793 | # CONFIG_BOOT_PRINTK_DELAY is not set |
| 794 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 781 | # CONFIG_FAULT_INJECTION is not set | 795 | # CONFIG_FAULT_INJECTION is not set |
| 782 | # CONFIG_SAMPLES is not set | 796 | # CONFIG_SAMPLES is not set |
| 783 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 797 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
| 784 | # CONFIG_DEBUG_STACK_USAGE is not set | 798 | # CONFIG_DEBUG_STACK_USAGE is not set |
| 785 | # CONFIG_DEBUG_PAGEALLOC is not set | 799 | # CONFIG_DEBUG_PAGEALLOC is not set |
| 786 | # CONFIG_DEBUGGER is not set | 800 | # CONFIG_DEBUGGER is not set |
| 801 | # CONFIG_VIRQ_DEBUG is not set | ||
| 787 | # CONFIG_BDI_SWITCH is not set | 802 | # CONFIG_BDI_SWITCH is not set |
| 788 | # CONFIG_PPC_EARLY_DEBUG is not set | 803 | # CONFIG_PPC_EARLY_DEBUG is not set |
| 789 | 804 | ||
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index f7458396cd7c..3c9452d4308b 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
| @@ -332,8 +332,18 @@ InstructionTLBMiss: | |||
| 332 | mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ | 332 | mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ |
| 333 | lwz r10, 0(r11) /* Get the pte */ | 333 | lwz r10, 0(r11) /* Get the pte */ |
| 334 | 334 | ||
| 335 | #ifdef CONFIG_SWAP | ||
| 336 | /* do not set the _PAGE_ACCESSED bit of a non-present page */ | ||
| 337 | andi. r11, r10, _PAGE_PRESENT | ||
| 338 | beq 4f | ||
| 339 | ori r10, r10, _PAGE_ACCESSED | ||
| 340 | mfspr r11, SPRN_MD_TWC /* get the pte address again */ | ||
| 341 | stw r10, 0(r11) | ||
| 342 | 4: | ||
| 343 | #else | ||
| 335 | ori r10, r10, _PAGE_ACCESSED | 344 | ori r10, r10, _PAGE_ACCESSED |
| 336 | stw r10, 0(r11) | 345 | stw r10, 0(r11) |
| 346 | #endif | ||
| 337 | 347 | ||
| 338 | /* The Linux PTE won't go exactly into the MMU TLB. | 348 | /* The Linux PTE won't go exactly into the MMU TLB. |
| 339 | * Software indicator bits 21, 22 and 28 must be clear. | 349 | * Software indicator bits 21, 22 and 28 must be clear. |
| @@ -398,8 +408,17 @@ DataStoreTLBMiss: | |||
| 398 | DO_8xx_CPU6(0x3b80, r3) | 408 | DO_8xx_CPU6(0x3b80, r3) |
| 399 | mtspr SPRN_MD_TWC, r11 | 409 | mtspr SPRN_MD_TWC, r11 |
| 400 | 410 | ||
| 401 | mfspr r11, SPRN_MD_TWC /* get the pte address again */ | 411 | #ifdef CONFIG_SWAP |
| 412 | /* do not set the _PAGE_ACCESSED bit of a non-present page */ | ||
| 413 | andi. r11, r10, _PAGE_PRESENT | ||
| 414 | beq 4f | ||
| 402 | ori r10, r10, _PAGE_ACCESSED | 415 | ori r10, r10, _PAGE_ACCESSED |
| 416 | 4: | ||
| 417 | /* and update pte in table */ | ||
| 418 | #else | ||
| 419 | ori r10, r10, _PAGE_ACCESSED | ||
| 420 | #endif | ||
| 421 | mfspr r11, SPRN_MD_TWC /* get the pte address again */ | ||
| 403 | stw r10, 0(r11) | 422 | stw r10, 0(r11) |
| 404 | 423 | ||
| 405 | /* The Linux PTE won't go exactly into the MMU TLB. | 424 | /* The Linux PTE won't go exactly into the MMU TLB. |
| @@ -507,7 +526,16 @@ DataTLBError: | |||
| 507 | 526 | ||
| 508 | /* Update 'changed', among others. | 527 | /* Update 'changed', among others. |
| 509 | */ | 528 | */ |
| 529 | #ifdef CONFIG_SWAP | ||
| 530 | ori r10, r10, _PAGE_DIRTY|_PAGE_HWWRITE | ||
| 531 | /* do not set the _PAGE_ACCESSED bit of a non-present page */ | ||
| 532 | andi. r11, r10, _PAGE_PRESENT | ||
| 533 | beq 4f | ||
| 534 | ori r10, r10, _PAGE_ACCESSED | ||
| 535 | 4: | ||
| 536 | #else | ||
| 510 | ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE | 537 | ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE |
| 538 | #endif | ||
| 511 | mfspr r11, SPRN_MD_TWC /* Get pte address again */ | 539 | mfspr r11, SPRN_MD_TWC /* Get pte address again */ |
| 512 | stw r10, 0(r11) /* and update pte in table */ | 540 | stw r10, 0(r11) /* and update pte in table */ |
| 513 | 541 | ||
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 5c2e253ddfb1..9d2c56621f1e 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
| @@ -785,6 +785,21 @@ _GLOBAL(__lshrdi3) | |||
| 785 | or r4,r4,r7 # LSW |= t2 | 785 | or r4,r4,r7 # LSW |= t2 |
| 786 | blr | 786 | blr |
| 787 | 787 | ||
| 788 | /* | ||
| 789 | * 64-bit comparison: __ucmpdi2(u64 a, u64 b) | ||
| 790 | * Returns 0 if a < b, 1 if a == b, 2 if a > b. | ||
| 791 | */ | ||
| 792 | _GLOBAL(__ucmpdi2) | ||
| 793 | cmplw r3,r5 | ||
| 794 | li r3,1 | ||
| 795 | bne 1f | ||
| 796 | cmplw r4,r6 | ||
| 797 | beqlr | ||
| 798 | 1: li r3,0 | ||
| 799 | bltlr | ||
| 800 | li r3,2 | ||
| 801 | blr | ||
| 802 | |||
| 788 | _GLOBAL(abs) | 803 | _GLOBAL(abs) |
| 789 | srawi r4,r3,31 | 804 | srawi r4,r3,31 |
| 790 | xor r3,r3,r4 | 805 | xor r3,r3,r4 |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 980fe32895c0..89c83ccb85c1 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
| @@ -748,7 +748,13 @@ static void __devinit pcibios_fixup_resources(struct pci_dev *dev) | |||
| 748 | struct resource *res = dev->resource + i; | 748 | struct resource *res = dev->resource + i; |
| 749 | if (!res->flags) | 749 | if (!res->flags) |
| 750 | continue; | 750 | continue; |
| 751 | if (res->end == 0xffffffff) { | 751 | /* On platforms that have PPC_PCI_PROBE_ONLY set, we don't |
| 752 | * consider 0 as an unassigned BAR value. It's technically | ||
| 753 | * a valid value, but linux doesn't like it... so when we can | ||
| 754 | * re-assign things, we do so, but if we can't, we keep it | ||
| 755 | * around and hope for the best... | ||
| 756 | */ | ||
| 757 | if (res->start == 0 && !(ppc_pci_flags & PPC_PCI_PROBE_ONLY)) { | ||
| 752 | pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] is unassigned\n", | 758 | pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] is unassigned\n", |
| 753 | pci_name(dev), i, | 759 | pci_name(dev), i, |
| 754 | (unsigned long long)res->start, | 760 | (unsigned long long)res->start, |
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c index aa9ff35b0e63..9c98424277a8 100644 --- a/arch/powerpc/kernel/ppc_ksyms.c +++ b/arch/powerpc/kernel/ppc_ksyms.c | |||
| @@ -58,6 +58,7 @@ extern void program_check_exception(struct pt_regs *regs); | |||
| 58 | extern void single_step_exception(struct pt_regs *regs); | 58 | extern void single_step_exception(struct pt_regs *regs); |
| 59 | extern int sys_sigreturn(struct pt_regs *regs); | 59 | extern int sys_sigreturn(struct pt_regs *regs); |
| 60 | 60 | ||
| 61 | EXPORT_SYMBOL(empty_zero_page); | ||
| 61 | EXPORT_SYMBOL(clear_pages); | 62 | EXPORT_SYMBOL(clear_pages); |
| 62 | EXPORT_SYMBOL(copy_page); | 63 | EXPORT_SYMBOL(copy_page); |
| 63 | EXPORT_SYMBOL(ISA_DMA_THRESHOLD); | 64 | EXPORT_SYMBOL(ISA_DMA_THRESHOLD); |
| @@ -149,6 +150,8 @@ long long __lshrdi3(long long, int); | |||
| 149 | EXPORT_SYMBOL(__ashrdi3); | 150 | EXPORT_SYMBOL(__ashrdi3); |
| 150 | EXPORT_SYMBOL(__ashldi3); | 151 | EXPORT_SYMBOL(__ashldi3); |
| 151 | EXPORT_SYMBOL(__lshrdi3); | 152 | EXPORT_SYMBOL(__lshrdi3); |
| 153 | int __ucmpdi2(unsigned long long, unsigned long long); | ||
| 154 | EXPORT_SYMBOL(__ucmpdi2); | ||
| 152 | #endif | 155 | #endif |
| 153 | 156 | ||
| 154 | EXPORT_SYMBOL(memcpy); | 157 | EXPORT_SYMBOL(memcpy); |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 32f416175db1..590f1f67c874 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
| @@ -506,10 +506,10 @@ void __init htab_initialize(void) | |||
| 506 | } else { | 506 | } else { |
| 507 | /* Find storage for the HPT. Must be contiguous in | 507 | /* Find storage for the HPT. Must be contiguous in |
| 508 | * the absolute address space. On cell we want it to be | 508 | * the absolute address space. On cell we want it to be |
| 509 | * in the first 1 Gig. | 509 | * in the first 2 Gig so we can use it for IOMMU hacks. |
| 510 | */ | 510 | */ |
| 511 | if (machine_is(cell)) | 511 | if (machine_is(cell)) |
| 512 | limit = 0x40000000; | 512 | limit = 0x80000000; |
| 513 | else | 513 | else |
| 514 | limit = 0; | 514 | limit = 0; |
| 515 | 515 | ||
diff --git a/arch/powerpc/oprofile/op_model_cell.c b/arch/powerpc/oprofile/op_model_cell.c index 13929771bee7..9eed1f68fcab 100644 --- a/arch/powerpc/oprofile/op_model_cell.c +++ b/arch/powerpc/oprofile/op_model_cell.c | |||
| @@ -1151,7 +1151,7 @@ static void cell_handle_interrupt(struct pt_regs *regs, | |||
| 1151 | for (i = 0; i < num_counters; ++i) { | 1151 | for (i = 0; i < num_counters; ++i) { |
| 1152 | if ((interrupt_mask & CBE_PM_CTR_OVERFLOW_INTR(i)) | 1152 | if ((interrupt_mask & CBE_PM_CTR_OVERFLOW_INTR(i)) |
| 1153 | && ctr[i].enabled) { | 1153 | && ctr[i].enabled) { |
| 1154 | oprofile_add_pc(pc, is_kernel, i); | 1154 | oprofile_add_ext_sample(pc, regs, i, is_kernel); |
| 1155 | cbe_write_ctr(cpu, i, reset_value[i]); | 1155 | cbe_write_ctr(cpu, i, reset_value[i]); |
| 1156 | } | 1156 | } |
| 1157 | } | 1157 | } |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c index 9aa4425d80b2..4d5fd1dbd400 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c | |||
| @@ -199,6 +199,7 @@ int mpc52xx_set_psc_clkdiv(int psc_id, int clkdiv) | |||
| 199 | 199 | ||
| 200 | return 0; | 200 | return 0; |
| 201 | } | 201 | } |
| 202 | EXPORT_SYMBOL(mpc52xx_set_psc_clkdiv); | ||
| 202 | 203 | ||
| 203 | /** | 204 | /** |
| 204 | * mpc52xx_restart: ppc_md->restart hook for mpc5200 using the watchdog timer | 205 | * mpc52xx_restart: ppc_md->restart hook for mpc5200 using the watchdog timer |
diff --git a/arch/powerpc/platforms/83xx/mpc837x_mds.c b/arch/powerpc/platforms/83xx/mpc837x_mds.c index 8a9c26973605..64d17b0d6455 100644 --- a/arch/powerpc/platforms/83xx/mpc837x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c | |||
| @@ -39,12 +39,9 @@ static int mpc837xmds_usb_cfg(void) | |||
| 39 | if (ret) | 39 | if (ret) |
| 40 | return ret; | 40 | return ret; |
| 41 | /* Map BCSR area */ | 41 | /* Map BCSR area */ |
| 42 | np = of_find_node_by_name(NULL, "bcsr"); | 42 | np = of_find_compatible_node(NULL, NULL, "fsl,mpc837xmds-bcsr"); |
| 43 | if (np) { | 43 | if (np) { |
| 44 | struct resource res; | 44 | bcsr_regs = of_iomap(np, 0); |
| 45 | |||
| 46 | of_address_to_resource(np, 0, &res); | ||
| 47 | bcsr_regs = ioremap(res.start, res.end - res.start + 1); | ||
| 48 | of_node_put(np); | 45 | of_node_put(np); |
| 49 | } | 46 | } |
| 50 | if (!bcsr_regs) | 47 | if (!bcsr_regs) |
| @@ -96,6 +93,7 @@ static void __init mpc837x_mds_setup_arch(void) | |||
| 96 | static struct of_device_id mpc837x_ids[] = { | 93 | static struct of_device_id mpc837x_ids[] = { |
| 97 | { .type = "soc", }, | 94 | { .type = "soc", }, |
| 98 | { .compatible = "soc", }, | 95 | { .compatible = "soc", }, |
| 96 | { .compatible = "simple-bus", }, | ||
| 99 | {}, | 97 | {}, |
| 100 | }; | 98 | }; |
| 101 | 99 | ||
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig index 0afd22595546..a578b966ecbc 100644 --- a/arch/powerpc/platforms/Kconfig +++ b/arch/powerpc/platforms/Kconfig | |||
| @@ -22,7 +22,6 @@ config PPC_83xx | |||
| 22 | select FSL_SOC | 22 | select FSL_SOC |
| 23 | select MPC83xx | 23 | select MPC83xx |
| 24 | select IPIC | 24 | select IPIC |
| 25 | select FSL_EMB_PERFMON | ||
| 26 | 25 | ||
| 27 | config PPC_86xx | 26 | config PPC_86xx |
| 28 | bool "Freescale 86xx" | 27 | bool "Freescale 86xx" |
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index 73d81ce14b67..0c3face0ddbb 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype | |||
| @@ -113,7 +113,12 @@ config FSL_BOOKE | |||
| 113 | default y | 113 | default y |
| 114 | 114 | ||
| 115 | config FSL_EMB_PERFMON | 115 | config FSL_EMB_PERFMON |
| 116 | bool | 116 | bool "Freescale Embedded Perfmon" |
| 117 | depends on E500 || PPC_83xx | ||
| 118 | help | ||
| 119 | This is the Performance Monitor support found on the e500 core | ||
| 120 | and some e300 cores (c3 and c4). Select this only if your | ||
| 121 | core supports the Embedded Performance Monitor APU | ||
| 117 | 122 | ||
| 118 | config PTE_64BIT | 123 | config PTE_64BIT |
| 119 | bool | 124 | bool |
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index edab631a8dcb..20ea0e118f24 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c | |||
| @@ -113,7 +113,7 @@ | |||
| 113 | 113 | ||
| 114 | /* IOMMU sizing */ | 114 | /* IOMMU sizing */ |
| 115 | #define IO_SEGMENT_SHIFT 28 | 115 | #define IO_SEGMENT_SHIFT 28 |
| 116 | #define IO_PAGENO_BITS (IO_SEGMENT_SHIFT - IOMMU_PAGE_SHIFT) | 116 | #define IO_PAGENO_BITS(shift) (IO_SEGMENT_SHIFT - (shift)) |
| 117 | 117 | ||
| 118 | /* The high bit needs to be set on every DMA address */ | 118 | /* The high bit needs to be set on every DMA address */ |
| 119 | #define SPIDER_DMA_OFFSET 0x80000000ul | 119 | #define SPIDER_DMA_OFFSET 0x80000000ul |
| @@ -123,7 +123,6 @@ struct iommu_window { | |||
| 123 | struct cbe_iommu *iommu; | 123 | struct cbe_iommu *iommu; |
| 124 | unsigned long offset; | 124 | unsigned long offset; |
| 125 | unsigned long size; | 125 | unsigned long size; |
| 126 | unsigned long pte_offset; | ||
| 127 | unsigned int ioid; | 126 | unsigned int ioid; |
| 128 | struct iommu_table table; | 127 | struct iommu_table table; |
| 129 | }; | 128 | }; |
| @@ -200,7 +199,7 @@ static void tce_build_cell(struct iommu_table *tbl, long index, long npages, | |||
| 200 | (window->ioid & IOPTE_IOID_Mask); | 199 | (window->ioid & IOPTE_IOID_Mask); |
| 201 | #endif | 200 | #endif |
| 202 | 201 | ||
| 203 | io_pte = (unsigned long *)tbl->it_base + (index - window->pte_offset); | 202 | io_pte = (unsigned long *)tbl->it_base + (index - tbl->it_offset); |
| 204 | 203 | ||
| 205 | for (i = 0; i < npages; i++, uaddr += IOMMU_PAGE_SIZE) | 204 | for (i = 0; i < npages; i++, uaddr += IOMMU_PAGE_SIZE) |
| 206 | io_pte[i] = base_pte | (__pa(uaddr) & IOPTE_RPN_Mask); | 205 | io_pte[i] = base_pte | (__pa(uaddr) & IOPTE_RPN_Mask); |
| @@ -232,7 +231,7 @@ static void tce_free_cell(struct iommu_table *tbl, long index, long npages) | |||
| 232 | | (window->ioid & IOPTE_IOID_Mask); | 231 | | (window->ioid & IOPTE_IOID_Mask); |
| 233 | #endif | 232 | #endif |
| 234 | 233 | ||
| 235 | io_pte = (unsigned long *)tbl->it_base + (index - window->pte_offset); | 234 | io_pte = (unsigned long *)tbl->it_base + (index - tbl->it_offset); |
| 236 | 235 | ||
| 237 | for (i = 0; i < npages; i++) | 236 | for (i = 0; i < npages; i++) |
| 238 | io_pte[i] = pte; | 237 | io_pte[i] = pte; |
| @@ -307,76 +306,84 @@ static int cell_iommu_find_ioc(int nid, unsigned long *base) | |||
| 307 | return -ENODEV; | 306 | return -ENODEV; |
| 308 | } | 307 | } |
| 309 | 308 | ||
| 310 | static void cell_iommu_setup_page_tables(struct cbe_iommu *iommu, | 309 | static void cell_iommu_setup_stab(struct cbe_iommu *iommu, |
| 311 | unsigned long dbase, unsigned long dsize, | 310 | unsigned long dbase, unsigned long dsize, |
| 312 | unsigned long fbase, unsigned long fsize) | 311 | unsigned long fbase, unsigned long fsize) |
| 313 | { | 312 | { |
| 314 | struct page *page; | 313 | struct page *page; |
| 315 | int i; | 314 | unsigned long segments, stab_size; |
| 316 | unsigned long reg, segments, pages_per_segment, ptab_size, stab_size, | ||
| 317 | n_pte_pages, base; | ||
| 318 | |||
| 319 | base = dbase; | ||
| 320 | if (fsize != 0) | ||
| 321 | base = min(fbase, dbase); | ||
| 322 | 315 | ||
| 323 | segments = max(dbase + dsize, fbase + fsize) >> IO_SEGMENT_SHIFT; | 316 | segments = max(dbase + dsize, fbase + fsize) >> IO_SEGMENT_SHIFT; |
| 324 | pages_per_segment = 1ull << IO_PAGENO_BITS; | ||
| 325 | 317 | ||
| 326 | pr_debug("%s: iommu[%d]: segments: %lu, pages per segment: %lu\n", | 318 | pr_debug("%s: iommu[%d]: segments: %lu\n", |
| 327 | __FUNCTION__, iommu->nid, segments, pages_per_segment); | 319 | __FUNCTION__, iommu->nid, segments); |
| 328 | 320 | ||
| 329 | /* set up the segment table */ | 321 | /* set up the segment table */ |
| 330 | stab_size = segments * sizeof(unsigned long); | 322 | stab_size = segments * sizeof(unsigned long); |
| 331 | page = alloc_pages_node(iommu->nid, GFP_KERNEL, get_order(stab_size)); | 323 | page = alloc_pages_node(iommu->nid, GFP_KERNEL, get_order(stab_size)); |
| 332 | BUG_ON(!page); | 324 | BUG_ON(!page); |
| 333 | iommu->stab = page_address(page); | 325 | iommu->stab = page_address(page); |
| 334 | clear_page(iommu->stab); | 326 | memset(iommu->stab, 0, stab_size); |
| 327 | } | ||
| 328 | |||
| 329 | static unsigned long *cell_iommu_alloc_ptab(struct cbe_iommu *iommu, | ||
| 330 | unsigned long base, unsigned long size, unsigned long gap_base, | ||
| 331 | unsigned long gap_size, unsigned long page_shift) | ||
| 332 | { | ||
| 333 | struct page *page; | ||
| 334 | int i; | ||
| 335 | unsigned long reg, segments, pages_per_segment, ptab_size, | ||
| 336 | n_pte_pages, start_seg, *ptab; | ||
| 337 | |||
| 338 | start_seg = base >> IO_SEGMENT_SHIFT; | ||
| 339 | segments = size >> IO_SEGMENT_SHIFT; | ||
| 340 | pages_per_segment = 1ull << IO_PAGENO_BITS(page_shift); | ||
| 341 | /* PTEs for each segment must start on a 4K bounday */ | ||
| 342 | pages_per_segment = max(pages_per_segment, | ||
| 343 | (1 << 12) / sizeof(unsigned long)); | ||
| 335 | 344 | ||
| 336 | /* ... and the page tables. Since these are contiguous, we can treat | ||
| 337 | * the page tables as one array of ptes, like pSeries does. | ||
| 338 | */ | ||
| 339 | ptab_size = segments * pages_per_segment * sizeof(unsigned long); | 345 | ptab_size = segments * pages_per_segment * sizeof(unsigned long); |
| 340 | pr_debug("%s: iommu[%d]: ptab_size: %lu, order: %d\n", __FUNCTION__, | 346 | pr_debug("%s: iommu[%d]: ptab_size: %lu, order: %d\n", __FUNCTION__, |
| 341 | iommu->nid, ptab_size, get_order(ptab_size)); | 347 | iommu->nid, ptab_size, get_order(ptab_size)); |
| 342 | page = alloc_pages_node(iommu->nid, GFP_KERNEL, get_order(ptab_size)); | 348 | page = alloc_pages_node(iommu->nid, GFP_KERNEL, get_order(ptab_size)); |
| 343 | BUG_ON(!page); | 349 | BUG_ON(!page); |
| 344 | 350 | ||
| 345 | iommu->ptab = page_address(page); | 351 | ptab = page_address(page); |
| 346 | memset(iommu->ptab, 0, ptab_size); | 352 | memset(ptab, 0, ptab_size); |
| 347 | 353 | ||
| 348 | /* allocate a bogus page for the end of each mapping */ | 354 | /* number of 4K pages needed for a page table */ |
| 349 | page = alloc_pages_node(iommu->nid, GFP_KERNEL, 0); | 355 | n_pte_pages = (pages_per_segment * sizeof(unsigned long)) >> 12; |
| 350 | BUG_ON(!page); | ||
| 351 | iommu->pad_page = page_address(page); | ||
| 352 | clear_page(iommu->pad_page); | ||
| 353 | |||
| 354 | /* number of pages needed for a page table */ | ||
| 355 | n_pte_pages = (pages_per_segment * | ||
| 356 | sizeof(unsigned long)) >> IOMMU_PAGE_SHIFT; | ||
| 357 | 356 | ||
| 358 | pr_debug("%s: iommu[%d]: stab at %p, ptab at %p, n_pte_pages: %lu\n", | 357 | pr_debug("%s: iommu[%d]: stab at %p, ptab at %p, n_pte_pages: %lu\n", |
| 359 | __FUNCTION__, iommu->nid, iommu->stab, iommu->ptab, | 358 | __FUNCTION__, iommu->nid, iommu->stab, ptab, |
| 360 | n_pte_pages); | 359 | n_pte_pages); |
| 361 | 360 | ||
| 362 | /* initialise the STEs */ | 361 | /* initialise the STEs */ |
| 363 | reg = IOSTE_V | ((n_pte_pages - 1) << 5); | 362 | reg = IOSTE_V | ((n_pte_pages - 1) << 5); |
| 364 | 363 | ||
| 365 | if (IOMMU_PAGE_SIZE == 0x1000) | 364 | switch (page_shift) { |
| 366 | reg |= IOSTE_PS_4K; | 365 | case 12: reg |= IOSTE_PS_4K; break; |
| 367 | else if (IOMMU_PAGE_SIZE == 0x10000) | 366 | case 16: reg |= IOSTE_PS_64K; break; |
| 368 | reg |= IOSTE_PS_64K; | 367 | case 20: reg |= IOSTE_PS_1M; break; |
| 369 | else { | 368 | case 24: reg |= IOSTE_PS_16M; break; |
| 370 | extern void __unknown_page_size_error(void); | 369 | default: BUG(); |
| 371 | __unknown_page_size_error(); | ||
| 372 | } | 370 | } |
| 373 | 371 | ||
| 372 | gap_base = gap_base >> IO_SEGMENT_SHIFT; | ||
| 373 | gap_size = gap_size >> IO_SEGMENT_SHIFT; | ||
| 374 | |||
| 374 | pr_debug("Setting up IOMMU stab:\n"); | 375 | pr_debug("Setting up IOMMU stab:\n"); |
| 375 | for (i = base >> IO_SEGMENT_SHIFT; i < segments; i++) { | 376 | for (i = start_seg; i < (start_seg + segments); i++) { |
| 376 | iommu->stab[i] = reg | | 377 | if (i >= gap_base && i < (gap_base + gap_size)) { |
| 377 | (__pa(iommu->ptab) + n_pte_pages * IOMMU_PAGE_SIZE * i); | 378 | pr_debug("\toverlap at %d, skipping\n", i); |
| 379 | continue; | ||
| 380 | } | ||
| 381 | iommu->stab[i] = reg | (__pa(ptab) + (n_pte_pages << 12) * | ||
| 382 | (i - start_seg)); | ||
| 378 | pr_debug("\t[%d] 0x%016lx\n", i, iommu->stab[i]); | 383 | pr_debug("\t[%d] 0x%016lx\n", i, iommu->stab[i]); |
| 379 | } | 384 | } |
| 385 | |||
| 386 | return ptab; | ||
| 380 | } | 387 | } |
| 381 | 388 | ||
| 382 | static void cell_iommu_enable_hardware(struct cbe_iommu *iommu) | 389 | static void cell_iommu_enable_hardware(struct cbe_iommu *iommu) |
| @@ -423,7 +430,9 @@ static void cell_iommu_enable_hardware(struct cbe_iommu *iommu) | |||
| 423 | static void cell_iommu_setup_hardware(struct cbe_iommu *iommu, | 430 | static void cell_iommu_setup_hardware(struct cbe_iommu *iommu, |
| 424 | unsigned long base, unsigned long size) | 431 | unsigned long base, unsigned long size) |
| 425 | { | 432 | { |
| 426 | cell_iommu_setup_page_tables(iommu, base, size, 0, 0); | 433 | cell_iommu_setup_stab(iommu, base, size, 0, 0); |
| 434 | iommu->ptab = cell_iommu_alloc_ptab(iommu, base, size, 0, 0, | ||
| 435 | IOMMU_PAGE_SHIFT); | ||
| 427 | cell_iommu_enable_hardware(iommu); | 436 | cell_iommu_enable_hardware(iommu); |
| 428 | } | 437 | } |
| 429 | 438 | ||
| @@ -464,6 +473,7 @@ cell_iommu_setup_window(struct cbe_iommu *iommu, struct device_node *np, | |||
| 464 | unsigned long pte_offset) | 473 | unsigned long pte_offset) |
| 465 | { | 474 | { |
| 466 | struct iommu_window *window; | 475 | struct iommu_window *window; |
| 476 | struct page *page; | ||
| 467 | u32 ioid; | 477 | u32 ioid; |
| 468 | 478 | ||
| 469 | ioid = cell_iommu_get_ioid(np); | 479 | ioid = cell_iommu_get_ioid(np); |
| @@ -475,13 +485,11 @@ cell_iommu_setup_window(struct cbe_iommu *iommu, struct device_node *np, | |||
| 475 | window->size = size; | 485 | window->size = size; |
| 476 | window->ioid = ioid; | 486 | window->ioid = ioid; |
| 477 | window->iommu = iommu; | 487 | window->iommu = iommu; |
| 478 | window->pte_offset = pte_offset; | ||
| 479 | 488 | ||
| 480 | window->table.it_blocksize = 16; | 489 | window->table.it_blocksize = 16; |
| 481 | window->table.it_base = (unsigned long)iommu->ptab; | 490 | window->table.it_base = (unsigned long)iommu->ptab; |
| 482 | window->table.it_index = iommu->nid; | 491 | window->table.it_index = iommu->nid; |
| 483 | window->table.it_offset = (offset >> IOMMU_PAGE_SHIFT) + | 492 | window->table.it_offset = (offset >> IOMMU_PAGE_SHIFT) + pte_offset; |
| 484 | window->pte_offset; | ||
| 485 | window->table.it_size = size >> IOMMU_PAGE_SHIFT; | 493 | window->table.it_size = size >> IOMMU_PAGE_SHIFT; |
| 486 | 494 | ||
| 487 | iommu_init_table(&window->table, iommu->nid); | 495 | iommu_init_table(&window->table, iommu->nid); |
| @@ -504,6 +512,11 @@ cell_iommu_setup_window(struct cbe_iommu *iommu, struct device_node *np, | |||
| 504 | * This code also assumes that we have a window that starts at 0, | 512 | * This code also assumes that we have a window that starts at 0, |
| 505 | * which is the case on all spider based blades. | 513 | * which is the case on all spider based blades. |
| 506 | */ | 514 | */ |
| 515 | page = alloc_pages_node(iommu->nid, GFP_KERNEL, 0); | ||
| 516 | BUG_ON(!page); | ||
| 517 | iommu->pad_page = page_address(page); | ||
| 518 | clear_page(iommu->pad_page); | ||
| 519 | |||
| 507 | __set_bit(0, window->table.it_map); | 520 | __set_bit(0, window->table.it_map); |
| 508 | tce_build_cell(&window->table, window->table.it_offset, 1, | 521 | tce_build_cell(&window->table, window->table.it_offset, 1, |
| 509 | (unsigned long)iommu->pad_page, DMA_TO_DEVICE); | 522 | (unsigned long)iommu->pad_page, DMA_TO_DEVICE); |
| @@ -549,7 +562,7 @@ static void cell_dma_dev_setup_iommu(struct device *dev) | |||
| 549 | archdata->dma_data = &window->table; | 562 | archdata->dma_data = &window->table; |
| 550 | } | 563 | } |
| 551 | 564 | ||
| 552 | static void cell_dma_dev_setup_static(struct device *dev); | 565 | static void cell_dma_dev_setup_fixed(struct device *dev); |
| 553 | 566 | ||
| 554 | static void cell_dma_dev_setup(struct device *dev) | 567 | static void cell_dma_dev_setup(struct device *dev) |
| 555 | { | 568 | { |
| @@ -557,7 +570,7 @@ static void cell_dma_dev_setup(struct device *dev) | |||
| 557 | 570 | ||
| 558 | /* Order is important here, these are not mutually exclusive */ | 571 | /* Order is important here, these are not mutually exclusive */ |
| 559 | if (get_dma_ops(dev) == &dma_iommu_fixed_ops) | 572 | if (get_dma_ops(dev) == &dma_iommu_fixed_ops) |
| 560 | cell_dma_dev_setup_static(dev); | 573 | cell_dma_dev_setup_fixed(dev); |
| 561 | else if (get_pci_dma_ops() == &dma_iommu_ops) | 574 | else if (get_pci_dma_ops() == &dma_iommu_ops) |
| 562 | cell_dma_dev_setup_iommu(dev); | 575 | cell_dma_dev_setup_iommu(dev); |
| 563 | else if (get_pci_dma_ops() == &dma_direct_ops) | 576 | else if (get_pci_dma_ops() == &dma_direct_ops) |
| @@ -858,7 +871,7 @@ static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) | |||
| 858 | return 0; | 871 | return 0; |
| 859 | } | 872 | } |
| 860 | 873 | ||
| 861 | static void cell_dma_dev_setup_static(struct device *dev) | 874 | static void cell_dma_dev_setup_fixed(struct device *dev) |
| 862 | { | 875 | { |
| 863 | struct dev_archdata *archdata = &dev->archdata; | 876 | struct dev_archdata *archdata = &dev->archdata; |
| 864 | u64 addr; | 877 | u64 addr; |
| @@ -869,35 +882,45 @@ static void cell_dma_dev_setup_static(struct device *dev) | |||
| 869 | dev_dbg(dev, "iommu: fixed addr = %lx\n", addr); | 882 | dev_dbg(dev, "iommu: fixed addr = %lx\n", addr); |
| 870 | } | 883 | } |
| 871 | 884 | ||
| 885 | static void insert_16M_pte(unsigned long addr, unsigned long *ptab, | ||
| 886 | unsigned long base_pte) | ||
| 887 | { | ||
| 888 | unsigned long segment, offset; | ||
| 889 | |||
| 890 | segment = addr >> IO_SEGMENT_SHIFT; | ||
| 891 | offset = (addr >> 24) - (segment << IO_PAGENO_BITS(24)); | ||
| 892 | ptab = ptab + (segment * (1 << 12) / sizeof(unsigned long)); | ||
| 893 | |||
| 894 | pr_debug("iommu: addr %lx ptab %p segment %lx offset %lx\n", | ||
| 895 | addr, ptab, segment, offset); | ||
| 896 | |||
| 897 | ptab[offset] = base_pte | (__pa(addr) & IOPTE_RPN_Mask); | ||
| 898 | } | ||
| 899 | |||
| 872 | static void cell_iommu_setup_fixed_ptab(struct cbe_iommu *iommu, | 900 | static void cell_iommu_setup_fixed_ptab(struct cbe_iommu *iommu, |
| 873 | struct device_node *np, unsigned long dbase, unsigned long dsize, | 901 | struct device_node *np, unsigned long dbase, unsigned long dsize, |
| 874 | unsigned long fbase, unsigned long fsize) | 902 | unsigned long fbase, unsigned long fsize) |
| 875 | { | 903 | { |
| 876 | unsigned long base_pte, uaddr, *io_pte; | 904 | unsigned long base_pte, uaddr, ioaddr, *ptab; |
| 877 | int i; | ||
| 878 | 905 | ||
| 879 | dma_iommu_fixed_base = fbase; | 906 | ptab = cell_iommu_alloc_ptab(iommu, fbase, fsize, dbase, dsize, 24); |
| 880 | 907 | ||
| 881 | /* convert from bytes into page table indices */ | 908 | dma_iommu_fixed_base = fbase; |
| 882 | dbase = dbase >> IOMMU_PAGE_SHIFT; | ||
| 883 | dsize = dsize >> IOMMU_PAGE_SHIFT; | ||
| 884 | fbase = fbase >> IOMMU_PAGE_SHIFT; | ||
| 885 | fsize = fsize >> IOMMU_PAGE_SHIFT; | ||
| 886 | 909 | ||
| 887 | pr_debug("iommu: mapping 0x%lx pages from 0x%lx\n", fsize, fbase); | 910 | pr_debug("iommu: mapping 0x%lx pages from 0x%lx\n", fsize, fbase); |
| 888 | 911 | ||
| 889 | io_pte = iommu->ptab; | ||
| 890 | base_pte = IOPTE_PP_W | IOPTE_PP_R | IOPTE_M | IOPTE_SO_RW | 912 | base_pte = IOPTE_PP_W | IOPTE_PP_R | IOPTE_M | IOPTE_SO_RW |
| 891 | | (cell_iommu_get_ioid(np) & IOPTE_IOID_Mask); | 913 | | (cell_iommu_get_ioid(np) & IOPTE_IOID_Mask); |
| 892 | 914 | ||
| 893 | uaddr = 0; | 915 | for (uaddr = 0; uaddr < fsize; uaddr += (1 << 24)) { |
| 894 | for (i = fbase; i < fbase + fsize; i++, uaddr += IOMMU_PAGE_SIZE) { | ||
| 895 | /* Don't touch the dynamic region */ | 916 | /* Don't touch the dynamic region */ |
| 896 | if (i >= dbase && i < (dbase + dsize)) { | 917 | ioaddr = uaddr + fbase; |
| 897 | pr_debug("iommu: static/dynamic overlap, skipping\n"); | 918 | if (ioaddr >= dbase && ioaddr < (dbase + dsize)) { |
| 919 | pr_debug("iommu: fixed/dynamic overlap, skipping\n"); | ||
| 898 | continue; | 920 | continue; |
| 899 | } | 921 | } |
| 900 | io_pte[i] = base_pte | (__pa(uaddr) & IOPTE_RPN_Mask); | 922 | |
| 923 | insert_16M_pte(uaddr, ptab, base_pte); | ||
| 901 | } | 924 | } |
| 902 | 925 | ||
| 903 | mb(); | 926 | mb(); |
| @@ -995,7 +1018,9 @@ static int __init cell_iommu_fixed_mapping_init(void) | |||
| 995 | "fixed window 0x%lx-0x%lx\n", iommu->nid, dbase, | 1018 | "fixed window 0x%lx-0x%lx\n", iommu->nid, dbase, |
| 996 | dbase + dsize, fbase, fbase + fsize); | 1019 | dbase + dsize, fbase, fbase + fsize); |
| 997 | 1020 | ||
| 998 | cell_iommu_setup_page_tables(iommu, dbase, dsize, fbase, fsize); | 1021 | cell_iommu_setup_stab(iommu, dbase, dsize, fbase, fsize); |
| 1022 | iommu->ptab = cell_iommu_alloc_ptab(iommu, dbase, dsize, 0, 0, | ||
| 1023 | IOMMU_PAGE_SHIFT); | ||
| 999 | cell_iommu_setup_fixed_ptab(iommu, np, dbase, dsize, | 1024 | cell_iommu_setup_fixed_ptab(iommu, np, dbase, dsize, |
| 1000 | fbase, fsize); | 1025 | fbase, fsize); |
| 1001 | cell_iommu_enable_hardware(iommu); | 1026 | cell_iommu_enable_hardware(iommu); |
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index a7f609b3b876..dda34650cb07 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
| @@ -149,6 +149,11 @@ static void __init cell_init_irq(void) | |||
| 149 | mpic_init_IRQ(); | 149 | mpic_init_IRQ(); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | static void __init cell_set_dabrx(void) | ||
| 153 | { | ||
| 154 | mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER); | ||
| 155 | } | ||
| 156 | |||
| 152 | static void __init cell_setup_arch(void) | 157 | static void __init cell_setup_arch(void) |
| 153 | { | 158 | { |
| 154 | #ifdef CONFIG_SPU_BASE | 159 | #ifdef CONFIG_SPU_BASE |
| @@ -158,6 +163,8 @@ static void __init cell_setup_arch(void) | |||
| 158 | 163 | ||
| 159 | cbe_regs_init(); | 164 | cbe_regs_init(); |
| 160 | 165 | ||
| 166 | cell_set_dabrx(); | ||
| 167 | |||
| 161 | #ifdef CONFIG_CBE_RAS | 168 | #ifdef CONFIG_CBE_RAS |
| 162 | cbe_ras_init(); | 169 | cbe_ras_init(); |
| 163 | #endif | 170 | #endif |
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index 87eb07f94c5f..712001f6b7da 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
| @@ -81,9 +81,12 @@ struct spu_slb { | |||
| 81 | void spu_invalidate_slbs(struct spu *spu) | 81 | void spu_invalidate_slbs(struct spu *spu) |
| 82 | { | 82 | { |
| 83 | struct spu_priv2 __iomem *priv2 = spu->priv2; | 83 | struct spu_priv2 __iomem *priv2 = spu->priv2; |
| 84 | unsigned long flags; | ||
| 84 | 85 | ||
| 86 | spin_lock_irqsave(&spu->register_lock, flags); | ||
| 85 | if (spu_mfc_sr1_get(spu) & MFC_STATE1_RELOCATE_MASK) | 87 | if (spu_mfc_sr1_get(spu) & MFC_STATE1_RELOCATE_MASK) |
| 86 | out_be64(&priv2->slb_invalidate_all_W, 0UL); | 88 | out_be64(&priv2->slb_invalidate_all_W, 0UL); |
| 89 | spin_unlock_irqrestore(&spu->register_lock, flags); | ||
| 87 | } | 90 | } |
| 88 | EXPORT_SYMBOL_GPL(spu_invalidate_slbs); | 91 | EXPORT_SYMBOL_GPL(spu_invalidate_slbs); |
| 89 | 92 | ||
| @@ -148,7 +151,11 @@ static inline void spu_load_slb(struct spu *spu, int slbe, struct spu_slb *slb) | |||
| 148 | __func__, slbe, slb->vsid, slb->esid); | 151 | __func__, slbe, slb->vsid, slb->esid); |
| 149 | 152 | ||
| 150 | out_be64(&priv2->slb_index_W, slbe); | 153 | out_be64(&priv2->slb_index_W, slbe); |
| 154 | /* set invalid before writing vsid */ | ||
| 155 | out_be64(&priv2->slb_esid_RW, 0); | ||
| 156 | /* now it's safe to write the vsid */ | ||
| 151 | out_be64(&priv2->slb_vsid_RW, slb->vsid); | 157 | out_be64(&priv2->slb_vsid_RW, slb->vsid); |
| 158 | /* setting the new esid makes the entry valid again */ | ||
| 152 | out_be64(&priv2->slb_esid_RW, slb->esid); | 159 | out_be64(&priv2->slb_esid_RW, slb->esid); |
| 153 | } | 160 | } |
| 154 | 161 | ||
| @@ -290,9 +297,11 @@ void spu_setup_kernel_slbs(struct spu *spu, struct spu_lscsa *lscsa, | |||
| 290 | nr_slbs++; | 297 | nr_slbs++; |
| 291 | } | 298 | } |
| 292 | 299 | ||
| 300 | spin_lock_irq(&spu->register_lock); | ||
| 293 | /* Add the set of SLBs */ | 301 | /* Add the set of SLBs */ |
| 294 | for (i = 0; i < nr_slbs; i++) | 302 | for (i = 0; i < nr_slbs; i++) |
| 295 | spu_load_slb(spu, i, &slbs[i]); | 303 | spu_load_slb(spu, i, &slbs[i]); |
| 304 | spin_unlock_irq(&spu->register_lock); | ||
| 296 | } | 305 | } |
| 297 | EXPORT_SYMBOL_GPL(spu_setup_kernel_slbs); | 306 | EXPORT_SYMBOL_GPL(spu_setup_kernel_slbs); |
| 298 | 307 | ||
| @@ -337,13 +346,14 @@ spu_irq_class_1(int irq, void *data) | |||
| 337 | if (stat & CLASS1_STORAGE_FAULT_INTR) | 346 | if (stat & CLASS1_STORAGE_FAULT_INTR) |
| 338 | spu_mfc_dsisr_set(spu, 0ul); | 347 | spu_mfc_dsisr_set(spu, 0ul); |
| 339 | spu_int_stat_clear(spu, 1, stat); | 348 | spu_int_stat_clear(spu, 1, stat); |
| 340 | spin_unlock(&spu->register_lock); | ||
| 341 | pr_debug("%s: %lx %lx %lx %lx\n", __FUNCTION__, mask, stat, | ||
| 342 | dar, dsisr); | ||
| 343 | 349 | ||
| 344 | if (stat & CLASS1_SEGMENT_FAULT_INTR) | 350 | if (stat & CLASS1_SEGMENT_FAULT_INTR) |
| 345 | __spu_trap_data_seg(spu, dar); | 351 | __spu_trap_data_seg(spu, dar); |
| 346 | 352 | ||
| 353 | spin_unlock(&spu->register_lock); | ||
| 354 | pr_debug("%s: %lx %lx %lx %lx\n", __FUNCTION__, mask, stat, | ||
| 355 | dar, dsisr); | ||
| 356 | |||
| 347 | if (stat & CLASS1_STORAGE_FAULT_INTR) | 357 | if (stat & CLASS1_STORAGE_FAULT_INTR) |
| 348 | __spu_trap_data_map(spu, dar, dsisr); | 358 | __spu_trap_data_map(spu, dar, dsisr); |
| 349 | 359 | ||
diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c index 133995ed5cc7..0ad83aeb70b1 100644 --- a/arch/powerpc/platforms/cell/spufs/context.c +++ b/arch/powerpc/platforms/cell/spufs/context.c | |||
| @@ -109,13 +109,12 @@ void spu_forget(struct spu_context *ctx) | |||
| 109 | 109 | ||
| 110 | /* | 110 | /* |
| 111 | * This is basically an open-coded spu_acquire_saved, except that | 111 | * This is basically an open-coded spu_acquire_saved, except that |
| 112 | * we don't acquire the state mutex interruptible. | 112 | * we don't acquire the state mutex interruptible, and we don't |
| 113 | * want this context to be rescheduled on release. | ||
| 113 | */ | 114 | */ |
| 114 | mutex_lock(&ctx->state_mutex); | 115 | mutex_lock(&ctx->state_mutex); |
| 115 | if (ctx->state != SPU_STATE_SAVED) { | 116 | if (ctx->state != SPU_STATE_SAVED) |
| 116 | set_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags); | ||
| 117 | spu_deactivate(ctx); | 117 | spu_deactivate(ctx); |
| 118 | } | ||
| 119 | 118 | ||
| 120 | mm = ctx->owner; | 119 | mm = ctx->owner; |
| 121 | ctx->owner = NULL; | 120 | ctx->owner = NULL; |
| @@ -171,7 +170,8 @@ void spu_release_saved(struct spu_context *ctx) | |||
| 171 | { | 170 | { |
| 172 | BUG_ON(ctx->state != SPU_STATE_SAVED); | 171 | BUG_ON(ctx->state != SPU_STATE_SAVED); |
| 173 | 172 | ||
| 174 | if (test_and_clear_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags)) | 173 | if (test_and_clear_bit(SPU_SCHED_WAS_ACTIVE, &ctx->sched_flags) && |
| 174 | test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) | ||
| 175 | spu_activate(ctx, 0); | 175 | spu_activate(ctx, 0); |
| 176 | 176 | ||
| 177 | spu_release(ctx); | 177 | spu_release(ctx); |
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index c66c3756970d..f7a7e8635fb6 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
| @@ -367,6 +367,13 @@ static unsigned long spufs_ps_nopfn(struct vm_area_struct *vma, | |||
| 367 | return NOPFN_SIGBUS; | 367 | return NOPFN_SIGBUS; |
| 368 | 368 | ||
| 369 | /* | 369 | /* |
| 370 | * Because we release the mmap_sem, the context may be destroyed while | ||
| 371 | * we're in spu_wait. Grab an extra reference so it isn't destroyed | ||
| 372 | * in the meantime. | ||
| 373 | */ | ||
| 374 | get_spu_context(ctx); | ||
| 375 | |||
| 376 | /* | ||
| 370 | * We have to wait for context to be loaded before we have | 377 | * We have to wait for context to be loaded before we have |
| 371 | * pages to hand out to the user, but we don't want to wait | 378 | * pages to hand out to the user, but we don't want to wait |
| 372 | * with the mmap_sem held. | 379 | * with the mmap_sem held. |
| @@ -375,7 +382,7 @@ static unsigned long spufs_ps_nopfn(struct vm_area_struct *vma, | |||
| 375 | * hanged. | 382 | * hanged. |
| 376 | */ | 383 | */ |
| 377 | if (spu_acquire(ctx)) | 384 | if (spu_acquire(ctx)) |
| 378 | return NOPFN_REFAULT; | 385 | goto refault; |
| 379 | 386 | ||
| 380 | if (ctx->state == SPU_STATE_SAVED) { | 387 | if (ctx->state == SPU_STATE_SAVED) { |
| 381 | up_read(¤t->mm->mmap_sem); | 388 | up_read(¤t->mm->mmap_sem); |
| @@ -391,6 +398,9 @@ static unsigned long spufs_ps_nopfn(struct vm_area_struct *vma, | |||
| 391 | 398 | ||
| 392 | if (!ret) | 399 | if (!ret) |
| 393 | spu_release(ctx); | 400 | spu_release(ctx); |
| 401 | |||
| 402 | refault: | ||
| 403 | put_spu_context(ctx); | ||
| 394 | return NOPFN_REFAULT; | 404 | return NOPFN_REFAULT; |
| 395 | } | 405 | } |
| 396 | 406 | ||
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index 6221968c2a3c..cac69e116776 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c | |||
| @@ -220,6 +220,7 @@ static int spu_run_init(struct spu_context *ctx, u32 *npc) | |||
| 220 | } | 220 | } |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | set_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags); | ||
| 223 | return 0; | 224 | return 0; |
| 224 | } | 225 | } |
| 225 | 226 | ||
| @@ -234,7 +235,7 @@ static int spu_run_fini(struct spu_context *ctx, u32 *npc, | |||
| 234 | *npc = ctx->ops->npc_read(ctx); | 235 | *npc = ctx->ops->npc_read(ctx); |
| 235 | 236 | ||
| 236 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); | 237 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); |
| 237 | ctx->policy = SCHED_IDLE; | 238 | clear_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags); |
| 238 | spu_release(ctx); | 239 | spu_release(ctx); |
| 239 | 240 | ||
| 240 | if (signal_pending(current)) | 241 | if (signal_pending(current)) |
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 3a5972117de7..00528ef84ad2 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
| @@ -246,7 +246,7 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx) | |||
| 246 | spu_switch_notify(spu, ctx); | 246 | spu_switch_notify(spu, ctx); |
| 247 | ctx->state = SPU_STATE_RUNNABLE; | 247 | ctx->state = SPU_STATE_RUNNABLE; |
| 248 | 248 | ||
| 249 | spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); | 249 | spuctx_switch_state(ctx, SPU_UTIL_USER); |
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | /* | 252 | /* |
| @@ -867,7 +867,7 @@ static noinline void spusched_tick(struct spu_context *ctx) | |||
| 867 | if (ctx->policy == SCHED_FIFO) | 867 | if (ctx->policy == SCHED_FIFO) |
| 868 | goto out; | 868 | goto out; |
| 869 | 869 | ||
| 870 | if (--ctx->time_slice && ctx->policy != SCHED_IDLE) | 870 | if (--ctx->time_slice && test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) |
| 871 | goto out; | 871 | goto out; |
| 872 | 872 | ||
| 873 | spu = ctx->spu; | 873 | spu = ctx->spu; |
| @@ -877,7 +877,7 @@ static noinline void spusched_tick(struct spu_context *ctx) | |||
| 877 | new = grab_runnable_context(ctx->prio + 1, spu->node); | 877 | new = grab_runnable_context(ctx->prio + 1, spu->node); |
| 878 | if (new) { | 878 | if (new) { |
| 879 | spu_unschedule(spu, ctx); | 879 | spu_unschedule(spu, ctx); |
| 880 | if (ctx->policy != SCHED_IDLE) | 880 | if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) |
| 881 | spu_add_to_rq(ctx); | 881 | spu_add_to_rq(ctx); |
| 882 | } else { | 882 | } else { |
| 883 | spu_context_nospu_trace(spusched_tick__newslice, ctx); | 883 | spu_context_nospu_trace(spusched_tick__newslice, ctx); |
diff --git a/arch/powerpc/platforms/cell/spufs/spufs.h b/arch/powerpc/platforms/cell/spufs/spufs.h index 2c2fe3c07d72..cdc515182f82 100644 --- a/arch/powerpc/platforms/cell/spufs/spufs.h +++ b/arch/powerpc/platforms/cell/spufs/spufs.h | |||
| @@ -44,6 +44,7 @@ struct spu_gang; | |||
| 44 | enum { | 44 | enum { |
| 45 | SPU_SCHED_NOTIFY_ACTIVE, | 45 | SPU_SCHED_NOTIFY_ACTIVE, |
| 46 | SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */ | 46 | SPU_SCHED_WAS_ACTIVE, /* was active upon spu_acquire_saved() */ |
| 47 | SPU_SCHED_SPU_RUN, /* context is within spu_run */ | ||
| 47 | }; | 48 | }; |
| 48 | 49 | ||
| 49 | struct spu_context { | 50 | struct spu_context { |
diff --git a/arch/powerpc/platforms/cell/spufs/sputrace.c b/arch/powerpc/platforms/cell/spufs/sputrace.c index 01974f7776e1..79aa773f3c99 100644 --- a/arch/powerpc/platforms/cell/spufs/sputrace.c +++ b/arch/powerpc/platforms/cell/spufs/sputrace.c | |||
| @@ -58,12 +58,12 @@ static int sputrace_sprint(char *tbuf, int n) | |||
| 58 | ktime_to_timespec(ktime_sub(t->tstamp, sputrace_start)); | 58 | ktime_to_timespec(ktime_sub(t->tstamp, sputrace_start)); |
| 59 | 59 | ||
| 60 | return snprintf(tbuf, n, | 60 | return snprintf(tbuf, n, |
| 61 | "[%lu.%09lu] %d: %s (thread = %d, spu = %d)\n", | 61 | "[%lu.%09lu] %d: %s (ctxthread = %d, spu = %d)\n", |
| 62 | (unsigned long) tv.tv_sec, | 62 | (unsigned long) tv.tv_sec, |
| 63 | (unsigned long) tv.tv_nsec, | 63 | (unsigned long) tv.tv_nsec, |
| 64 | t->owner_tid, | ||
| 65 | t->name, | ||
| 66 | t->curr_tid, | 64 | t->curr_tid, |
| 65 | t->name, | ||
| 66 | t->owner_tid, | ||
| 67 | t->number); | 67 | t->number); |
| 68 | } | 68 | } |
| 69 | 69 | ||
| @@ -188,6 +188,7 @@ struct spu_probe spu_probes[] = { | |||
| 188 | { "spufs_ps_nopfn__insert", "%p %p", spu_context_event }, | 188 | { "spufs_ps_nopfn__insert", "%p %p", spu_context_event }, |
| 189 | { "spu_acquire_saved__enter", "%p", spu_context_nospu_event }, | 189 | { "spu_acquire_saved__enter", "%p", spu_context_nospu_event }, |
| 190 | { "destroy_spu_context__enter", "%p", spu_context_nospu_event }, | 190 | { "destroy_spu_context__enter", "%p", spu_context_nospu_event }, |
| 191 | { "spufs_stop_callback__enter", "%p %p", spu_context_event }, | ||
| 191 | }; | 192 | }; |
| 192 | 193 | ||
| 193 | static int __init sputrace_init(void) | 194 | static int __init sputrace_init(void) |
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c index 6f5886c7b1f9..e9dc7a55d1b9 100644 --- a/arch/powerpc/platforms/cell/spufs/switch.c +++ b/arch/powerpc/platforms/cell/spufs/switch.c | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | 34 | ||
| 35 | #include <linux/module.h> | 35 | #include <linux/module.h> |
| 36 | #include <linux/errno.h> | 36 | #include <linux/errno.h> |
| 37 | #include <linux/hardirq.h> | ||
| 37 | #include <linux/sched.h> | 38 | #include <linux/sched.h> |
| 38 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
| 39 | #include <linux/mm.h> | 40 | #include <linux/mm.h> |
| @@ -117,6 +118,8 @@ static inline void disable_interrupts(struct spu_state *csa, struct spu *spu) | |||
| 117 | * Write INT_MASK_class1 with value of 0. | 118 | * Write INT_MASK_class1 with value of 0. |
| 118 | * Save INT_Mask_class2 in CSA. | 119 | * Save INT_Mask_class2 in CSA. |
| 119 | * Write INT_MASK_class2 with value of 0. | 120 | * Write INT_MASK_class2 with value of 0. |
| 121 | * Synchronize all three interrupts to be sure | ||
| 122 | * we no longer execute a handler on another CPU. | ||
| 120 | */ | 123 | */ |
| 121 | spin_lock_irq(&spu->register_lock); | 124 | spin_lock_irq(&spu->register_lock); |
| 122 | if (csa) { | 125 | if (csa) { |
| @@ -129,6 +132,9 @@ static inline void disable_interrupts(struct spu_state *csa, struct spu *spu) | |||
| 129 | spu_int_mask_set(spu, 2, 0ul); | 132 | spu_int_mask_set(spu, 2, 0ul); |
| 130 | eieio(); | 133 | eieio(); |
| 131 | spin_unlock_irq(&spu->register_lock); | 134 | spin_unlock_irq(&spu->register_lock); |
| 135 | synchronize_irq(spu->irqs[0]); | ||
| 136 | synchronize_irq(spu->irqs[1]); | ||
| 137 | synchronize_irq(spu->irqs[2]); | ||
| 132 | } | 138 | } |
| 133 | 139 | ||
| 134 | static inline void set_watchdog_timer(struct spu_state *csa, struct spu *spu) | 140 | static inline void set_watchdog_timer(struct spu_state *csa, struct spu *spu) |
diff --git a/arch/powerpc/platforms/celleb/beat.h b/arch/powerpc/platforms/celleb/beat.h index b2e292df13ca..ac82ac35b991 100644 --- a/arch/powerpc/platforms/celleb/beat.h +++ b/arch/powerpc/platforms/celleb/beat.h | |||
| @@ -21,9 +21,6 @@ | |||
| 21 | #ifndef _CELLEB_BEAT_H | 21 | #ifndef _CELLEB_BEAT_H |
| 22 | #define _CELLEB_BEAT_H | 22 | #define _CELLEB_BEAT_H |
| 23 | 23 | ||
| 24 | #define DABRX_KERNEL (1UL<<1) | ||
| 25 | #define DABRX_USER (1UL<<0) | ||
| 26 | |||
| 27 | int64_t beat_get_term_char(uint64_t,uint64_t*,uint64_t*,uint64_t*); | 24 | int64_t beat_get_term_char(uint64_t,uint64_t*,uint64_t*,uint64_t*); |
| 28 | int64_t beat_put_term_char(uint64_t,uint64_t,uint64_t,uint64_t); | 25 | int64_t beat_put_term_char(uint64_t,uint64_t,uint64_t,uint64_t); |
| 29 | int64_t beat_repository_encode(int, const char *, uint64_t[4]); | 26 | int64_t beat_repository_encode(int, const char *, uint64_t[4]); |
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 40736400ef80..829b8b02527b 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
| @@ -618,9 +618,9 @@ static int pmacpic_find_viaint(void) | |||
| 618 | if (np == NULL) | 618 | if (np == NULL) |
| 619 | goto not_found; | 619 | goto not_found; |
| 620 | viaint = irq_of_parse_and_map(np, 0);; | 620 | viaint = irq_of_parse_and_map(np, 0);; |
| 621 | #endif /* CONFIG_ADB_PMU */ | ||
| 622 | 621 | ||
| 623 | not_found: | 622 | not_found: |
| 623 | #endif /* CONFIG_ADB_PMU */ | ||
| 624 | return viaint; | 624 | return viaint; |
| 625 | } | 625 | } |
| 626 | 626 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index 6efbd5e5bb1b..cc81fd1141b0 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c | |||
| @@ -509,7 +509,7 @@ int qe_upload_firmware(const struct qe_firmware *firmware) | |||
| 509 | } | 509 | } |
| 510 | 510 | ||
| 511 | /* Validate some of the fields */ | 511 | /* Validate some of the fields */ |
| 512 | if ((firmware->count < 1) || (firmware->count >= MAX_QE_RISC)) { | 512 | if ((firmware->count < 1) || (firmware->count > MAX_QE_RISC)) { |
| 513 | printk(KERN_ERR "qe-firmware: invalid data\n"); | 513 | printk(KERN_ERR "qe-firmware: invalid data\n"); |
| 514 | return -EINVAL; | 514 | return -EINVAL; |
| 515 | } | 515 | } |
| @@ -609,7 +609,10 @@ struct qe_firmware_info *qe_get_firmware_info(void) | |||
| 609 | * If we haven't checked yet, and a driver hasn't uploaded a firmware | 609 | * If we haven't checked yet, and a driver hasn't uploaded a firmware |
| 610 | * yet, then check the device tree for information. | 610 | * yet, then check the device tree for information. |
| 611 | */ | 611 | */ |
| 612 | if (initialized || qe_firmware_uploaded) | 612 | if (qe_firmware_uploaded) |
| 613 | return &qe_firmware_info; | ||
| 614 | |||
| 615 | if (initialized) | ||
| 613 | return NULL; | 616 | return NULL; |
| 614 | 617 | ||
| 615 | initialized = 1; | 618 | initialized = 1; |
diff --git a/arch/ppc/kernel/head_8xx.S b/arch/ppc/kernel/head_8xx.S index eb8d26f87362..321bda2de2cb 100644 --- a/arch/ppc/kernel/head_8xx.S +++ b/arch/ppc/kernel/head_8xx.S | |||
| @@ -329,8 +329,18 @@ InstructionTLBMiss: | |||
| 329 | mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ | 329 | mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ |
| 330 | lwz r10, 0(r11) /* Get the pte */ | 330 | lwz r10, 0(r11) /* Get the pte */ |
| 331 | 331 | ||
| 332 | #ifdef CONFIG_SWAP | ||
| 333 | /* do not set the _PAGE_ACCESSED bit of a non-present page */ | ||
| 334 | andi. r11, r10, _PAGE_PRESENT | ||
| 335 | beq 4f | ||
| 336 | ori r10, r10, _PAGE_ACCESSED | ||
| 337 | mfspr r11, SPRN_MD_TWC /* get the pte address again */ | ||
| 338 | stw r10, 0(r11) | ||
| 339 | 4: | ||
| 340 | #else | ||
| 332 | ori r10, r10, _PAGE_ACCESSED | 341 | ori r10, r10, _PAGE_ACCESSED |
| 333 | stw r10, 0(r11) | 342 | stw r10, 0(r11) |
| 343 | #endif | ||
| 334 | 344 | ||
| 335 | /* The Linux PTE won't go exactly into the MMU TLB. | 345 | /* The Linux PTE won't go exactly into the MMU TLB. |
| 336 | * Software indicator bits 21, 22 and 28 must be clear. | 346 | * Software indicator bits 21, 22 and 28 must be clear. |
| @@ -395,8 +405,17 @@ DataStoreTLBMiss: | |||
| 395 | DO_8xx_CPU6(0x3b80, r3) | 405 | DO_8xx_CPU6(0x3b80, r3) |
| 396 | mtspr SPRN_MD_TWC, r11 | 406 | mtspr SPRN_MD_TWC, r11 |
| 397 | 407 | ||
| 398 | mfspr r11, SPRN_MD_TWC /* get the pte address again */ | 408 | #ifdef CONFIG_SWAP |
| 409 | /* do not set the _PAGE_ACCESSED bit of a non-present page */ | ||
| 410 | andi. r11, r10, _PAGE_PRESENT | ||
| 411 | beq 4f | ||
| 412 | ori r10, r10, _PAGE_ACCESSED | ||
| 413 | 4: | ||
| 414 | /* and update pte in table */ | ||
| 415 | #else | ||
| 399 | ori r10, r10, _PAGE_ACCESSED | 416 | ori r10, r10, _PAGE_ACCESSED |
| 417 | #endif | ||
| 418 | mfspr r11, SPRN_MD_TWC /* get the pte address again */ | ||
| 400 | stw r10, 0(r11) | 419 | stw r10, 0(r11) |
| 401 | 420 | ||
| 402 | /* The Linux PTE won't go exactly into the MMU TLB. | 421 | /* The Linux PTE won't go exactly into the MMU TLB. |
| @@ -575,7 +594,16 @@ DataTLBError: | |||
| 575 | 594 | ||
| 576 | /* Update 'changed', among others. | 595 | /* Update 'changed', among others. |
| 577 | */ | 596 | */ |
| 597 | #ifdef CONFIG_SWAP | ||
| 598 | ori r10, r10, _PAGE_DIRTY|_PAGE_HWWRITE | ||
| 599 | /* do not set the _PAGE_ACCESSED bit of a non-present page */ | ||
| 600 | andi. r11, r10, _PAGE_PRESENT | ||
| 601 | beq 4f | ||
| 602 | ori r10, r10, _PAGE_ACCESSED | ||
| 603 | 4: | ||
| 604 | #else | ||
| 578 | ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE | 605 | ori r10, r10, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE |
| 606 | #endif | ||
| 579 | mfspr r11, SPRN_MD_TWC /* Get pte address again */ | 607 | mfspr r11, SPRN_MD_TWC /* Get pte address again */ |
| 580 | stw r10, 0(r11) /* and update pte in table */ | 608 | stw r10, 0(r11) /* and update pte in table */ |
| 581 | 609 | ||
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index b21444b681b6..1831833c430e 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
| @@ -61,6 +61,7 @@ config S390 | |||
| 61 | def_bool y | 61 | def_bool y |
| 62 | select HAVE_OPROFILE | 62 | select HAVE_OPROFILE |
| 63 | select HAVE_KPROBES | 63 | select HAVE_KPROBES |
| 64 | select HAVE_KRETPROBES | ||
| 64 | 65 | ||
| 65 | source "init/Kconfig" | 66 | source "init/Kconfig" |
| 66 | 67 | ||
| @@ -350,6 +351,10 @@ endchoice | |||
| 350 | 351 | ||
| 351 | source "fs/Kconfig.binfmt" | 352 | source "fs/Kconfig.binfmt" |
| 352 | 353 | ||
| 354 | config FORCE_MAX_ZONEORDER | ||
| 355 | int | ||
| 356 | default "9" | ||
| 357 | |||
| 353 | config PROCESS_DEBUG | 358 | config PROCESS_DEBUG |
| 354 | bool "Show crashed user process info" | 359 | bool "Show crashed user process info" |
| 355 | help | 360 | help |
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index 39921f3a9685..62f6b5a606dd 100644 --- a/arch/s390/defconfig +++ b/arch/s390/defconfig | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.24 | 3 | # Linux kernel version: 2.6.25-rc4 |
| 4 | # Sat Feb 9 12:13:01 2008 | 4 | # Wed Mar 5 11:22:59 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
| 7 | CONFIG_ZONE_DMA=y | 7 | CONFIG_ZONE_DMA=y |
| @@ -43,12 +43,15 @@ CONFIG_CGROUPS=y | |||
| 43 | # CONFIG_CGROUP_DEBUG is not set | 43 | # CONFIG_CGROUP_DEBUG is not set |
| 44 | CONFIG_CGROUP_NS=y | 44 | CONFIG_CGROUP_NS=y |
| 45 | # CONFIG_CPUSETS is not set | 45 | # CONFIG_CPUSETS is not set |
| 46 | CONFIG_GROUP_SCHED=y | ||
| 46 | CONFIG_FAIR_GROUP_SCHED=y | 47 | CONFIG_FAIR_GROUP_SCHED=y |
| 47 | CONFIG_FAIR_USER_SCHED=y | 48 | # CONFIG_RT_GROUP_SCHED is not set |
| 48 | # CONFIG_FAIR_CGROUP_SCHED is not set | 49 | CONFIG_USER_SCHED=y |
| 50 | # CONFIG_CGROUP_SCHED is not set | ||
| 49 | # CONFIG_CGROUP_CPUACCT is not set | 51 | # CONFIG_CGROUP_CPUACCT is not set |
| 50 | # CONFIG_RESOURCE_COUNTERS is not set | 52 | # CONFIG_RESOURCE_COUNTERS is not set |
| 51 | CONFIG_SYSFS_DEPRECATED=y | 53 | CONFIG_SYSFS_DEPRECATED=y |
| 54 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 52 | # CONFIG_RELAY is not set | 55 | # CONFIG_RELAY is not set |
| 53 | CONFIG_NAMESPACES=y | 56 | CONFIG_NAMESPACES=y |
| 54 | CONFIG_UTS_NS=y | 57 | CONFIG_UTS_NS=y |
| @@ -85,7 +88,9 @@ CONFIG_SLAB=y | |||
| 85 | # CONFIG_MARKERS is not set | 88 | # CONFIG_MARKERS is not set |
| 86 | CONFIG_HAVE_OPROFILE=y | 89 | CONFIG_HAVE_OPROFILE=y |
| 87 | CONFIG_KPROBES=y | 90 | CONFIG_KPROBES=y |
| 91 | CONFIG_KRETPROBES=y | ||
| 88 | CONFIG_HAVE_KPROBES=y | 92 | CONFIG_HAVE_KPROBES=y |
| 93 | CONFIG_HAVE_KRETPROBES=y | ||
| 89 | CONFIG_PROC_PAGE_MONITOR=y | 94 | CONFIG_PROC_PAGE_MONITOR=y |
| 90 | CONFIG_SLABINFO=y | 95 | CONFIG_SLABINFO=y |
| 91 | CONFIG_RT_MUTEXES=y | 96 | CONFIG_RT_MUTEXES=y |
| @@ -185,6 +190,7 @@ CONFIG_IPL=y | |||
| 185 | CONFIG_IPL_VM=y | 190 | CONFIG_IPL_VM=y |
| 186 | CONFIG_BINFMT_ELF=y | 191 | CONFIG_BINFMT_ELF=y |
| 187 | CONFIG_BINFMT_MISC=m | 192 | CONFIG_BINFMT_MISC=m |
| 193 | CONFIG_FORCE_MAX_ZONEORDER=9 | ||
| 188 | # CONFIG_PROCESS_DEBUG is not set | 194 | # CONFIG_PROCESS_DEBUG is not set |
| 189 | CONFIG_PFAULT=y | 195 | CONFIG_PFAULT=y |
| 190 | # CONFIG_SHARED_KERNEL is not set | 196 | # CONFIG_SHARED_KERNEL is not set |
| @@ -435,6 +441,7 @@ CONFIG_DASD_EER=y | |||
| 435 | CONFIG_MISC_DEVICES=y | 441 | CONFIG_MISC_DEVICES=y |
| 436 | # CONFIG_EEPROM_93CX6 is not set | 442 | # CONFIG_EEPROM_93CX6 is not set |
| 437 | # CONFIG_ENCLOSURE_SERVICES is not set | 443 | # CONFIG_ENCLOSURE_SERVICES is not set |
| 444 | # CONFIG_HAVE_IDE is not set | ||
| 438 | 445 | ||
| 439 | # | 446 | # |
| 440 | # SCSI device support | 447 | # SCSI device support |
| @@ -593,6 +600,7 @@ CONFIG_S390_VMUR=m | |||
| 593 | # | 600 | # |
| 594 | # Sonics Silicon Backplane | 601 | # Sonics Silicon Backplane |
| 595 | # | 602 | # |
| 603 | # CONFIG_MEMSTICK is not set | ||
| 596 | 604 | ||
| 597 | # | 605 | # |
| 598 | # File systems | 606 | # File systems |
| @@ -750,7 +758,6 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
| 750 | # CONFIG_DEBUG_LIST is not set | 758 | # CONFIG_DEBUG_LIST is not set |
| 751 | # CONFIG_DEBUG_SG is not set | 759 | # CONFIG_DEBUG_SG is not set |
| 752 | # CONFIG_FRAME_POINTER is not set | 760 | # CONFIG_FRAME_POINTER is not set |
| 753 | CONFIG_FORCED_INLINING=y | ||
| 754 | # CONFIG_RCU_TORTURE_TEST is not set | 761 | # CONFIG_RCU_TORTURE_TEST is not set |
| 755 | # CONFIG_KPROBES_SANITY_TEST is not set | 762 | # CONFIG_KPROBES_SANITY_TEST is not set |
| 756 | # CONFIG_BACKTRACE_SELF_TEST is not set | 763 | # CONFIG_BACKTRACE_SELF_TEST is not set |
| @@ -759,6 +766,7 @@ CONFIG_FORCED_INLINING=y | |||
| 759 | # CONFIG_LATENCYTOP is not set | 766 | # CONFIG_LATENCYTOP is not set |
| 760 | CONFIG_SAMPLES=y | 767 | CONFIG_SAMPLES=y |
| 761 | # CONFIG_SAMPLE_KOBJECT is not set | 768 | # CONFIG_SAMPLE_KOBJECT is not set |
| 769 | # CONFIG_SAMPLE_KPROBES is not set | ||
| 762 | # CONFIG_DEBUG_PAGEALLOC is not set | 770 | # CONFIG_DEBUG_PAGEALLOC is not set |
| 763 | 771 | ||
| 764 | # | 772 | # |
diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile index b3b650a93c7c..4d3e38392cb1 100644 --- a/arch/s390/kernel/Makefile +++ b/arch/s390/kernel/Makefile | |||
| @@ -4,6 +4,11 @@ | |||
| 4 | 4 | ||
| 5 | EXTRA_AFLAGS := -traditional | 5 | EXTRA_AFLAGS := -traditional |
| 6 | 6 | ||
| 7 | # | ||
| 8 | # Passing null pointers is ok for smp code, since we access the lowcore here. | ||
| 9 | # | ||
| 10 | CFLAGS_smp.o := -Wno-nonnull | ||
| 11 | |||
| 7 | obj-y := bitmap.o traps.o time.o process.o base.o early.o \ | 12 | obj-y := bitmap.o traps.o time.o process.o base.o early.o \ |
| 8 | setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \ | 13 | setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \ |
| 9 | semaphore.o s390_ext.o debug.o irq.o ipl.o dis.o diag.o | 14 | semaphore.o s390_ext.o debug.o irq.o ipl.o dis.o diag.o |
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index 9f7b73b180f0..01832c440636 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
| @@ -88,13 +88,17 @@ static noinline __init void create_kernel_nss(void) | |||
| 88 | 88 | ||
| 89 | __cpcmd(defsys_cmd, NULL, 0, &response); | 89 | __cpcmd(defsys_cmd, NULL, 0, &response); |
| 90 | 90 | ||
| 91 | if (response != 0) | 91 | if (response != 0) { |
| 92 | kernel_nss_name[0] = '\0'; | ||
| 92 | return; | 93 | return; |
| 94 | } | ||
| 93 | 95 | ||
| 94 | __cpcmd(savesys_cmd, NULL, 0, &response); | 96 | __cpcmd(savesys_cmd, NULL, 0, &response); |
| 95 | 97 | ||
| 96 | if (response != strlen(savesys_cmd)) | 98 | if (response != strlen(savesys_cmd)) { |
| 99 | kernel_nss_name[0] = '\0'; | ||
| 97 | return; | 100 | return; |
| 101 | } | ||
| 98 | 102 | ||
| 99 | ipl_flags = IPL_NSS_VALID; | 103 | ipl_flags = IPL_NSS_VALID; |
| 100 | } | 104 | } |
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 60acdc266db1..375232c46c7a 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
| @@ -704,6 +704,7 @@ void reipl_run(struct shutdown_trigger *trigger) | |||
| 704 | default: | 704 | default: |
| 705 | break; | 705 | break; |
| 706 | } | 706 | } |
| 707 | disabled_wait((unsigned long) __builtin_return_address(0)); | ||
| 707 | } | 708 | } |
| 708 | 709 | ||
| 709 | static void __init reipl_probe(void) | 710 | static void __init reipl_probe(void) |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 1c59ec161cf8..ce203154d8ce 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
| @@ -152,6 +152,10 @@ static void default_idle(void) | |||
| 152 | local_mcck_disable(); | 152 | local_mcck_disable(); |
| 153 | if (test_thread_flag(TIF_MCCK_PENDING)) { | 153 | if (test_thread_flag(TIF_MCCK_PENDING)) { |
| 154 | local_mcck_enable(); | 154 | local_mcck_enable(); |
| 155 | /* disable monitor call class 0 */ | ||
| 156 | __ctl_clear_bit(8, 15); | ||
| 157 | atomic_notifier_call_chain(&idle_chain, S390_CPU_NOT_IDLE, | ||
| 158 | hcpu); | ||
| 155 | local_irq_enable(); | 159 | local_irq_enable(); |
| 156 | s390_handle_mcck(); | 160 | s390_handle_mcck(); |
| 157 | return; | 161 | return; |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 818bd09c0260..8f894d380a62 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -629,14 +629,8 @@ static int __cpuinit smp_alloc_lowcore(int cpu) | |||
| 629 | panic_stack = __get_free_page(GFP_KERNEL); | 629 | panic_stack = __get_free_page(GFP_KERNEL); |
| 630 | if (!panic_stack || !async_stack) | 630 | if (!panic_stack || !async_stack) |
| 631 | goto out; | 631 | goto out; |
| 632 | /* | 632 | memcpy(lowcore, &S390_lowcore, 512); |
| 633 | * Only need to copy the first 512 bytes from address 0. But since | 633 | memset((char *)lowcore + 512, 0, sizeof(*lowcore) - 512); |
| 634 | * the compiler emits a warning if src == NULL for memcpy use copy_page | ||
| 635 | * instead. Copies more than needed but this code is not performance | ||
| 636 | * critical. | ||
| 637 | */ | ||
| 638 | copy_page(lowcore, &S390_lowcore); | ||
| 639 | memset((void *)lowcore + 512, 0, sizeof(*lowcore) - 512); | ||
| 640 | lowcore->async_stack = async_stack + ASYNC_SIZE; | 634 | lowcore->async_stack = async_stack + ASYNC_SIZE; |
| 641 | lowcore->panic_stack = panic_stack + PAGE_SIZE; | 635 | lowcore->panic_stack = panic_stack + PAGE_SIZE; |
| 642 | 636 | ||
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 76a5dd1b4ce9..cb232c155360 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
| @@ -209,8 +209,6 @@ static void stop_hz_timer(void) | |||
| 209 | */ | 209 | */ |
| 210 | static void start_hz_timer(void) | 210 | static void start_hz_timer(void) |
| 211 | { | 211 | { |
| 212 | BUG_ON(!in_interrupt()); | ||
| 213 | |||
| 214 | if (!cpu_isset(smp_processor_id(), nohz_cpu_mask)) | 212 | if (!cpu_isset(smp_processor_id(), nohz_cpu_mask)) |
| 215 | return; | 213 | return; |
| 216 | account_ticks(get_clock()); | 214 | account_ticks(get_clock()); |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index b3400b5ad5c6..95b7534e9e3c 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
| @@ -330,6 +330,7 @@ config CPU_SUBTYPE_SH5_101 | |||
| 330 | 330 | ||
| 331 | config CPU_SUBTYPE_SH5_103 | 331 | config CPU_SUBTYPE_SH5_103 |
| 332 | bool "Support SH5-103 processor" | 332 | bool "Support SH5-103 processor" |
| 333 | select CPU_SH5 | ||
| 333 | 334 | ||
| 334 | endchoice | 335 | endchoice |
| 335 | 336 | ||
| @@ -455,13 +456,6 @@ config SH_SECUREEDGE5410 | |||
| 455 | This includes both the OEM SecureEdge products as well as the | 456 | This includes both the OEM SecureEdge products as well as the |
| 456 | SME product line. | 457 | SME product line. |
| 457 | 458 | ||
| 458 | config SH_7710VOIPGW | ||
| 459 | bool "SH7710-VOIP-GW" | ||
| 460 | depends on CPU_SUBTYPE_SH7710 | ||
| 461 | help | ||
| 462 | Select this option to build a kernel for the SH7710 based | ||
| 463 | VOIP GW. | ||
| 464 | |||
| 465 | config SH_RTS7751R2D | 459 | config SH_RTS7751R2D |
| 466 | bool "RTS7751R2D" | 460 | bool "RTS7751R2D" |
| 467 | depends on CPU_SUBTYPE_SH7751R | 461 | depends on CPU_SUBTYPE_SH7751R |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 81381e5773c8..c510c225144f 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
| @@ -118,7 +118,6 @@ machdir-$(CONFIG_SH_EDOSK7705) += renesas/edosk7705 | |||
| 118 | machdir-$(CONFIG_SH_HIGHLANDER) += renesas/r7780rp | 118 | machdir-$(CONFIG_SH_HIGHLANDER) += renesas/r7780rp |
| 119 | machdir-$(CONFIG_SH_MIGOR) += renesas/migor | 119 | machdir-$(CONFIG_SH_MIGOR) += renesas/migor |
| 120 | machdir-$(CONFIG_SH_SDK7780) += renesas/sdk7780 | 120 | machdir-$(CONFIG_SH_SDK7780) += renesas/sdk7780 |
| 121 | machdir-$(CONFIG_SH_7710VOIPGW) += renesas/sh7710voipgw | ||
| 122 | machdir-$(CONFIG_SH_X3PROTO) += renesas/x3proto | 121 | machdir-$(CONFIG_SH_X3PROTO) += renesas/x3proto |
| 123 | machdir-$(CONFIG_SH_SH4202_MICRODEV) += superh/microdev | 122 | machdir-$(CONFIG_SH_SH4202_MICRODEV) += superh/microdev |
| 124 | machdir-$(CONFIG_SH_LANDISK) += landisk | 123 | machdir-$(CONFIG_SH_LANDISK) += landisk |
diff --git a/arch/sh/boards/hp6xx/hp6xx_apm.c b/arch/sh/boards/hp6xx/hp6xx_apm.c index 640ca2a74f16..177f4f028e0d 100644 --- a/arch/sh/boards/hp6xx/hp6xx_apm.c +++ b/arch/sh/boards/hp6xx/hp6xx_apm.c | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | * bios-less APM driver for hp680 | 2 | * bios-less APM driver for hp680 |
| 3 | * | 3 | * |
| 4 | * Copyright 2005 (c) Andriy Skulysh <askulysh@gmail.com> | 4 | * Copyright 2005 (c) Andriy Skulysh <askulysh@gmail.com> |
| 5 | * Copyright 2008 (c) Kristoffer Ericson <kristoffer.ericson@gmail.com> | ||
| 5 | * | 6 | * |
| 6 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
| 7 | * modify it under the terms of the GNU General Public License. | 8 | * modify it under the terms of the GNU General Public License. |
| @@ -15,17 +16,19 @@ | |||
| 15 | #include <asm/adc.h> | 16 | #include <asm/adc.h> |
| 16 | #include <asm/hp6xx.h> | 17 | #include <asm/hp6xx.h> |
| 17 | 18 | ||
| 18 | #define SH7709_PGDR 0xa400012c | 19 | /* percentage values */ |
| 19 | |||
| 20 | #define APM_CRITICAL 10 | 20 | #define APM_CRITICAL 10 |
| 21 | #define APM_LOW 30 | 21 | #define APM_LOW 30 |
| 22 | 22 | ||
| 23 | /* resonably sane values */ | ||
| 23 | #define HP680_BATTERY_MAX 898 | 24 | #define HP680_BATTERY_MAX 898 |
| 24 | #define HP680_BATTERY_MIN 486 | 25 | #define HP680_BATTERY_MIN 486 |
| 25 | #define HP680_BATTERY_AC_ON 1023 | 26 | #define HP680_BATTERY_AC_ON 1023 |
| 26 | 27 | ||
| 27 | #define MODNAME "hp6x0_apm" | 28 | #define MODNAME "hp6x0_apm" |
| 28 | 29 | ||
| 30 | #define PGDR 0xa400012c | ||
| 31 | |||
| 29 | static void hp6x0_apm_get_power_status(struct apm_power_info *info) | 32 | static void hp6x0_apm_get_power_status(struct apm_power_info *info) |
| 30 | { | 33 | { |
| 31 | int battery, backup, charging, percentage; | 34 | int battery, backup, charging, percentage; |
| @@ -38,17 +41,26 @@ static void hp6x0_apm_get_power_status(struct apm_power_info *info) | |||
| 38 | percentage = 100 * (battery - HP680_BATTERY_MIN) / | 41 | percentage = 100 * (battery - HP680_BATTERY_MIN) / |
| 39 | (HP680_BATTERY_MAX - HP680_BATTERY_MIN); | 42 | (HP680_BATTERY_MAX - HP680_BATTERY_MIN); |
| 40 | 43 | ||
| 44 | /* % of full battery */ | ||
| 45 | info->battery_life = percentage; | ||
| 46 | |||
| 47 | /* We want our estimates in minutes */ | ||
| 48 | info->units = 0; | ||
| 49 | |||
| 50 | /* Extremely(!!) rough estimate, we will replace this with a datalist later on */ | ||
| 51 | info->time = (2 * battery); | ||
| 52 | |||
| 41 | info->ac_line_status = (battery > HP680_BATTERY_AC_ON) ? | 53 | info->ac_line_status = (battery > HP680_BATTERY_AC_ON) ? |
| 42 | APM_AC_ONLINE : APM_AC_OFFLINE; | 54 | APM_AC_ONLINE : APM_AC_OFFLINE; |
| 43 | 55 | ||
| 44 | pgdr = ctrl_inb(SH7709_PGDR); | 56 | pgdr = ctrl_inb(PGDR); |
| 45 | if (pgdr & PGDR_MAIN_BATTERY_OUT) { | 57 | if (pgdr & PGDR_MAIN_BATTERY_OUT) { |
| 46 | info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT; | 58 | info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT; |
| 47 | info->battery_flag = 0x80; | 59 | info->battery_flag = 0x80; |
| 48 | } else if (charging < 8) { | 60 | } else if (charging < 8) { |
| 49 | info->battery_status = APM_BATTERY_STATUS_CHARGING; | 61 | info->battery_status = APM_BATTERY_STATUS_CHARGING; |
| 50 | info->battery_flag = 0x08; | 62 | info->battery_flag = 0x08; |
| 51 | info->ac_line_status = 0xff; | 63 | info->ac_line_status = 0x01; |
| 52 | } else if (percentage <= APM_CRITICAL) { | 64 | } else if (percentage <= APM_CRITICAL) { |
| 53 | info->battery_status = APM_BATTERY_STATUS_CRITICAL; | 65 | info->battery_status = APM_BATTERY_STATUS_CRITICAL; |
| 54 | info->battery_flag = 0x04; | 66 | info->battery_flag = 0x04; |
| @@ -59,8 +71,6 @@ static void hp6x0_apm_get_power_status(struct apm_power_info *info) | |||
| 59 | info->battery_status = APM_BATTERY_STATUS_HIGH; | 71 | info->battery_status = APM_BATTERY_STATUS_HIGH; |
| 60 | info->battery_flag = 0x01; | 72 | info->battery_flag = 0x01; |
| 61 | } | 73 | } |
| 62 | |||
| 63 | info->units = 0; | ||
| 64 | } | 74 | } |
| 65 | 75 | ||
| 66 | static irqreturn_t hp6x0_apm_interrupt(int irq, void *dev) | 76 | static irqreturn_t hp6x0_apm_interrupt(int irq, void *dev) |
diff --git a/arch/sh/boards/renesas/sh7710voipgw/Makefile b/arch/sh/boards/renesas/sh7710voipgw/Makefile deleted file mode 100644 index 77037567633b..000000000000 --- a/arch/sh/boards/renesas/sh7710voipgw/Makefile +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | obj-y := setup.o | ||
diff --git a/arch/sh/boards/renesas/sh7710voipgw/setup.c b/arch/sh/boards/renesas/sh7710voipgw/setup.c deleted file mode 100644 index 0d56fd83bcba..000000000000 --- a/arch/sh/boards/renesas/sh7710voipgw/setup.c +++ /dev/null | |||
| @@ -1,94 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Renesas Technology SH7710 VoIP Gateway | ||
| 3 | * | ||
| 4 | * Copyright (C) 2006 Ranjit Deshpande | ||
| 5 | * Kenati Technologies Inc. | ||
| 6 | * | ||
| 7 | * May be copied or modified under the terms of the GNU General Public | ||
| 8 | * License. See linux/COPYING for more information. | ||
| 9 | */ | ||
| 10 | #include <linux/init.h> | ||
| 11 | #include <asm/machvec.h> | ||
| 12 | #include <asm/irq.h> | ||
| 13 | #include <asm/io.h> | ||
| 14 | |||
| 15 | static struct ipr_data sh7710voipgw_ipr_map[] = { | ||
| 16 | { TIMER2_IRQ, TIMER2_IPR_ADDR, TIMER2_IPR_POS, TIMER2_PRIORITY }, | ||
| 17 | { WDT_IRQ, WDT_IPR_ADDR, WDT_IPR_POS, WDT_PRIORITY }, | ||
| 18 | |||
| 19 | /* SCIF0 */ | ||
| 20 | { SCIF0_ERI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
| 21 | { SCIF0_RXI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
| 22 | { SCIF0_BRI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
| 23 | { SCIF0_TXI_IRQ, SCIF0_IPR_ADDR, SCIF0_IPR_POS, SCIF0_PRIORITY }, | ||
| 24 | |||
| 25 | /* DMAC-1 */ | ||
| 26 | { DMTE0_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
| 27 | { DMTE1_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
| 28 | { DMTE2_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
| 29 | { DMTE3_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
| 30 | |||
| 31 | /* DMAC-2 */ | ||
| 32 | { DMTE4_IRQ, DMA2_IPR_ADDR, DMA2_IPR_POS, DMA2_PRIORITY }, | ||
| 33 | { DMTE4_IRQ, DMA2_IPR_ADDR, DMA2_IPR_POS, DMA2_PRIORITY }, | ||
| 34 | |||
| 35 | /* IPSEC */ | ||
| 36 | { IPSEC_IRQ, IPSEC_IPR_ADDR, IPSEC_IPR_POS, IPSEC_PRIORITY }, | ||
| 37 | |||
| 38 | /* EDMAC */ | ||
| 39 | { EDMAC0_IRQ, EDMAC0_IPR_ADDR, EDMAC0_IPR_POS, EDMAC0_PRIORITY }, | ||
| 40 | { EDMAC1_IRQ, EDMAC1_IPR_ADDR, EDMAC1_IPR_POS, EDMAC1_PRIORITY }, | ||
| 41 | { EDMAC2_IRQ, EDMAC2_IPR_ADDR, EDMAC2_IPR_POS, EDMAC2_PRIORITY }, | ||
| 42 | |||
| 43 | /* SIOF0 */ | ||
| 44 | { SIOF0_ERI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
| 45 | { SIOF0_TXI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
| 46 | { SIOF0_RXI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
| 47 | { SIOF0_CCI_IRQ, SIOF0_IPR_ADDR, SIOF0_IPR_POS, SIOF0_PRIORITY }, | ||
| 48 | |||
| 49 | /* SIOF1 */ | ||
| 50 | { SIOF1_ERI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
| 51 | { SIOF1_TXI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
| 52 | { SIOF1_RXI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
| 53 | { SIOF1_CCI_IRQ, SIOF1_IPR_ADDR, SIOF1_IPR_POS, SIOF1_PRIORITY }, | ||
| 54 | |||
| 55 | /* SLIC IRQ's */ | ||
| 56 | { IRQ1_IRQ, IRQ1_IPR_ADDR, IRQ1_IPR_POS, IRQ1_PRIORITY }, | ||
| 57 | { IRQ2_IRQ, IRQ2_IPR_ADDR, IRQ2_IPR_POS, IRQ2_PRIORITY }, | ||
| 58 | }; | ||
| 59 | |||
| 60 | /* | ||
| 61 | * Initialize IRQ setting | ||
| 62 | */ | ||
| 63 | static void __init sh7710voipgw_init_irq(void) | ||
| 64 | { | ||
| 65 | /* Disable all interrupts in IPR registers */ | ||
| 66 | ctrl_outw(0x0, INTC_IPRA); | ||
| 67 | ctrl_outw(0x0, INTC_IPRB); | ||
| 68 | ctrl_outw(0x0, INTC_IPRC); | ||
| 69 | ctrl_outw(0x0, INTC_IPRD); | ||
| 70 | ctrl_outw(0x0, INTC_IPRE); | ||
| 71 | ctrl_outw(0x0, INTC_IPRF); | ||
| 72 | ctrl_outw(0x0, INTC_IPRG); | ||
| 73 | ctrl_outw(0x0, INTC_IPRH); | ||
| 74 | ctrl_outw(0x0, INTC_IPRI); | ||
| 75 | |||
| 76 | /* Ack all interrupt sources in the IRR0 register */ | ||
| 77 | ctrl_outb(0x3f, INTC_IRR0); | ||
| 78 | |||
| 79 | /* Use IRQ0 - IRQ3 as active low interrupt lines i.e. disable | ||
| 80 | * IRL mode. | ||
| 81 | */ | ||
| 82 | ctrl_outw(0x2aa, INTC_ICR1); | ||
| 83 | |||
| 84 | make_ipr_irq(sh7710voipgw_ipr_map, ARRAY_SIZE(sh7710voipgw_ipr_map)); | ||
| 85 | } | ||
| 86 | |||
| 87 | /* | ||
| 88 | * The Machine Vector | ||
| 89 | */ | ||
| 90 | static struct sh_machine_vector mv_sh7710voipgw __initmv = { | ||
| 91 | .mv_name = "SH7710 VoIP Gateway", | ||
| 92 | .mv_nr_irqs = 104, | ||
| 93 | .mv_init_irq = sh7710voipgw_init_irq, | ||
| 94 | }; | ||
diff --git a/arch/sh/boards/renesas/x3proto/ilsel.c b/arch/sh/boards/renesas/x3proto/ilsel.c index 6d4454fef97c..b5c673c39337 100644 --- a/arch/sh/boards/renesas/x3proto/ilsel.c +++ b/arch/sh/boards/renesas/x3proto/ilsel.c | |||
| @@ -68,7 +68,7 @@ static void __ilsel_enable(ilsel_source_t set, unsigned int bit) | |||
| 68 | shift = mk_ilsel_shift(bit); | 68 | shift = mk_ilsel_shift(bit); |
| 69 | 69 | ||
| 70 | pr_debug("%s: bit#%d: addr - 0x%08lx (shift %d, set %d)\n", | 70 | pr_debug("%s: bit#%d: addr - 0x%08lx (shift %d, set %d)\n", |
| 71 | __FUNCTION__, bit, addr, shift, set); | 71 | __func__, bit, addr, shift, set); |
| 72 | 72 | ||
| 73 | tmp = ctrl_inw(addr); | 73 | tmp = ctrl_inw(addr); |
| 74 | tmp &= ~(0xf << shift); | 74 | tmp &= ~(0xf << shift); |
diff --git a/arch/sh/boards/superh/microdev/io.c b/arch/sh/boards/superh/microdev/io.c index b704e20d7e4d..9f8a540f7e14 100644 --- a/arch/sh/boards/superh/microdev/io.c +++ b/arch/sh/boards/superh/microdev/io.c | |||
| @@ -127,7 +127,7 @@ static unsigned long microdev_isa_port2addr(unsigned long offset) | |||
| 127 | * safe default. | 127 | * safe default. |
| 128 | */ | 128 | */ |
| 129 | printk("Warning: unexpected port in %s( offset = 0x%lx )\n", | 129 | printk("Warning: unexpected port in %s( offset = 0x%lx )\n", |
| 130 | __FUNCTION__, offset); | 130 | __func__, offset); |
| 131 | result = PVR; | 131 | result = PVR; |
| 132 | } | 132 | } |
| 133 | 133 | ||
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig index 2ad804ec920a..1a072615ffd4 100644 --- a/arch/sh/configs/r7780mp_defconfig +++ b/arch/sh/configs/r7780mp_defconfig | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.24-rc2 | 3 | # Linux kernel version: 2.6.25-rc4 |
| 4 | # Tue Nov 13 20:32:39 2007 | 4 | # Thu Mar 6 15:39:59 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
| 7 | CONFIG_SUPERH32=y | ||
| 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 8 | CONFIG_GENERIC_BUG=y | 9 | CONFIG_GENERIC_BUG=y |
| 9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
| @@ -19,6 +20,8 @@ CONFIG_LOCKDEP_SUPPORT=y | |||
| 19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
| 20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
| 21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
| 23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
| 24 | CONFIG_IO_TRAPPED=y | ||
| 22 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 25 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| 23 | 26 | ||
| 24 | # | 27 | # |
| @@ -37,17 +40,20 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 37 | CONFIG_BSD_PROCESS_ACCT=y | 40 | CONFIG_BSD_PROCESS_ACCT=y |
| 38 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 41 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
| 39 | # CONFIG_TASKSTATS is not set | 42 | # CONFIG_TASKSTATS is not set |
| 40 | # CONFIG_USER_NS is not set | ||
| 41 | # CONFIG_AUDIT is not set | 43 | # CONFIG_AUDIT is not set |
| 42 | CONFIG_IKCONFIG=y | 44 | CONFIG_IKCONFIG=y |
| 43 | CONFIG_IKCONFIG_PROC=y | 45 | CONFIG_IKCONFIG_PROC=y |
| 44 | CONFIG_LOG_BUF_SHIFT=14 | 46 | CONFIG_LOG_BUF_SHIFT=14 |
| 45 | # CONFIG_CGROUPS is not set | 47 | # CONFIG_CGROUPS is not set |
| 48 | CONFIG_GROUP_SCHED=y | ||
| 46 | CONFIG_FAIR_GROUP_SCHED=y | 49 | CONFIG_FAIR_GROUP_SCHED=y |
| 47 | CONFIG_FAIR_USER_SCHED=y | 50 | # CONFIG_RT_GROUP_SCHED is not set |
| 48 | # CONFIG_FAIR_CGROUP_SCHED is not set | 51 | CONFIG_USER_SCHED=y |
| 49 | # CONFIG_SYSFS_DEPRECATED is not set | 52 | # CONFIG_CGROUP_SCHED is not set |
| 53 | CONFIG_SYSFS_DEPRECATED=y | ||
| 54 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 50 | # CONFIG_RELAY is not set | 55 | # CONFIG_RELAY is not set |
| 56 | # CONFIG_NAMESPACES is not set | ||
| 51 | # CONFIG_BLK_DEV_INITRD is not set | 57 | # CONFIG_BLK_DEV_INITRD is not set |
| 52 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 58 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| 53 | CONFIG_SYSCTL=y | 59 | CONFIG_SYSCTL=y |
| @@ -61,17 +67,27 @@ CONFIG_HOTPLUG=y | |||
| 61 | CONFIG_PRINTK=y | 67 | CONFIG_PRINTK=y |
| 62 | CONFIG_BUG=y | 68 | CONFIG_BUG=y |
| 63 | CONFIG_ELF_CORE=y | 69 | CONFIG_ELF_CORE=y |
| 70 | CONFIG_COMPAT_BRK=y | ||
| 64 | CONFIG_BASE_FULL=y | 71 | CONFIG_BASE_FULL=y |
| 65 | # CONFIG_FUTEX is not set | 72 | # CONFIG_FUTEX is not set |
| 66 | CONFIG_ANON_INODES=y | 73 | CONFIG_ANON_INODES=y |
| 67 | # CONFIG_EPOLL is not set | 74 | # CONFIG_EPOLL is not set |
| 68 | CONFIG_SIGNALFD=y | 75 | CONFIG_SIGNALFD=y |
| 76 | CONFIG_TIMERFD=y | ||
| 69 | CONFIG_EVENTFD=y | 77 | CONFIG_EVENTFD=y |
| 70 | CONFIG_SHMEM=y | 78 | CONFIG_SHMEM=y |
| 71 | CONFIG_VM_EVENT_COUNTERS=y | 79 | CONFIG_VM_EVENT_COUNTERS=y |
| 72 | CONFIG_SLAB=y | 80 | CONFIG_SLAB=y |
| 73 | # CONFIG_SLUB is not set | 81 | # CONFIG_SLUB is not set |
| 74 | # CONFIG_SLOB is not set | 82 | # CONFIG_SLOB is not set |
| 83 | CONFIG_PROFILING=y | ||
| 84 | # CONFIG_MARKERS is not set | ||
| 85 | CONFIG_OPROFILE=m | ||
| 86 | CONFIG_HAVE_OPROFILE=y | ||
| 87 | # CONFIG_HAVE_KPROBES is not set | ||
| 88 | # CONFIG_HAVE_KRETPROBES is not set | ||
| 89 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 90 | CONFIG_SLABINFO=y | ||
| 75 | # CONFIG_TINY_SHMEM is not set | 91 | # CONFIG_TINY_SHMEM is not set |
| 76 | CONFIG_BASE_SMALL=0 | 92 | CONFIG_BASE_SMALL=0 |
| 77 | CONFIG_MODULES=y | 93 | CONFIG_MODULES=y |
| @@ -98,6 +114,8 @@ CONFIG_IOSCHED_NOOP=y | |||
| 98 | # CONFIG_DEFAULT_CFQ is not set | 114 | # CONFIG_DEFAULT_CFQ is not set |
| 99 | CONFIG_DEFAULT_NOOP=y | 115 | CONFIG_DEFAULT_NOOP=y |
| 100 | CONFIG_DEFAULT_IOSCHED="noop" | 116 | CONFIG_DEFAULT_IOSCHED="noop" |
| 117 | CONFIG_CLASSIC_RCU=y | ||
| 118 | # CONFIG_PREEMPT_RCU is not set | ||
| 101 | 119 | ||
| 102 | # | 120 | # |
| 103 | # System type | 121 | # System type |
| @@ -105,7 +123,9 @@ CONFIG_DEFAULT_IOSCHED="noop" | |||
| 105 | CONFIG_CPU_SH4=y | 123 | CONFIG_CPU_SH4=y |
| 106 | CONFIG_CPU_SH4A=y | 124 | CONFIG_CPU_SH4A=y |
| 107 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
| 126 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | ||
| 108 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
| 128 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | ||
| 109 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
| 110 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
| 111 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
| @@ -114,6 +134,7 @@ CONFIG_CPU_SH4A=y | |||
| 114 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
| 115 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7712 is not set |
| 116 | # CONFIG_CPU_SUBTYPE_SH7720 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
| 137 | # CONFIG_CPU_SUBTYPE_SH7721 is not set | ||
| 117 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
| 118 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
| 119 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
| @@ -122,12 +143,16 @@ CONFIG_CPU_SH4A=y | |||
| 122 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
| 123 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 144 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
| 124 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 145 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
| 146 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | ||
| 125 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 147 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
| 126 | CONFIG_CPU_SUBTYPE_SH7780=y | 148 | CONFIG_CPU_SUBTYPE_SH7780=y |
| 127 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 149 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
| 128 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | 150 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
| 129 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 151 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
| 130 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 152 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
| 153 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
| 154 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
| 155 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
| 131 | 156 | ||
| 132 | # | 157 | # |
| 133 | # Memory management options | 158 | # Memory management options |
| @@ -137,7 +162,8 @@ CONFIG_MMU=y | |||
| 137 | CONFIG_PAGE_OFFSET=0x80000000 | 162 | CONFIG_PAGE_OFFSET=0x80000000 |
| 138 | CONFIG_MEMORY_START=0x08000000 | 163 | CONFIG_MEMORY_START=0x08000000 |
| 139 | CONFIG_MEMORY_SIZE=0x08000000 | 164 | CONFIG_MEMORY_SIZE=0x08000000 |
| 140 | # CONFIG_32BIT is not set | 165 | CONFIG_29BIT=y |
| 166 | # CONFIG_PMB is not set | ||
| 141 | CONFIG_VSYSCALL=y | 167 | CONFIG_VSYSCALL=y |
| 142 | CONFIG_ARCH_FLATMEM_ENABLE=y | 168 | CONFIG_ARCH_FLATMEM_ENABLE=y |
| 143 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 169 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
| @@ -153,6 +179,7 @@ CONFIG_HUGETLB_PAGE_SIZE_64K=y | |||
| 153 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set | 179 | # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set |
| 154 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | 180 | # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set |
| 155 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | 181 | # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set |
| 182 | # CONFIG_HUGETLB_PAGE_SIZE_512MB is not set | ||
| 156 | CONFIG_SELECT_MEMORY_MODEL=y | 183 | CONFIG_SELECT_MEMORY_MODEL=y |
| 157 | CONFIG_FLATMEM_MANUAL=y | 184 | CONFIG_FLATMEM_MANUAL=y |
| 158 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 185 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| @@ -190,6 +217,7 @@ CONFIG_CPU_HAS_FPU=y | |||
| 190 | # Board support | 217 | # Board support |
| 191 | # | 218 | # |
| 192 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set | 219 | # CONFIG_SH_7780_SOLUTION_ENGINE is not set |
| 220 | # CONFIG_SH_SDK7780 is not set | ||
| 193 | CONFIG_SH_HIGHLANDER=y | 221 | CONFIG_SH_HIGHLANDER=y |
| 194 | # CONFIG_SH_R7780RP is not set | 222 | # CONFIG_SH_R7780RP is not set |
| 195 | CONFIG_SH_R7780MP=y | 223 | CONFIG_SH_R7780MP=y |
| @@ -234,12 +262,13 @@ CONFIG_HZ_250=y | |||
| 234 | # CONFIG_HZ_300 is not set | 262 | # CONFIG_HZ_300 is not set |
| 235 | # CONFIG_HZ_1000 is not set | 263 | # CONFIG_HZ_1000 is not set |
| 236 | CONFIG_HZ=250 | 264 | CONFIG_HZ=250 |
| 265 | # CONFIG_SCHED_HRTICK is not set | ||
| 237 | CONFIG_KEXEC=y | 266 | CONFIG_KEXEC=y |
| 238 | # CONFIG_CRASH_DUMP is not set | 267 | # CONFIG_CRASH_DUMP is not set |
| 239 | # CONFIG_PREEMPT_NONE is not set | 268 | # CONFIG_PREEMPT_NONE is not set |
| 240 | # CONFIG_PREEMPT_VOLUNTARY is not set | 269 | # CONFIG_PREEMPT_VOLUNTARY is not set |
| 241 | CONFIG_PREEMPT=y | 270 | CONFIG_PREEMPT=y |
| 242 | CONFIG_PREEMPT_BKL=y | 271 | CONFIG_RCU_TRACE=y |
| 243 | CONFIG_GUSA=y | 272 | CONFIG_GUSA=y |
| 244 | 273 | ||
| 245 | # | 274 | # |
| @@ -284,6 +313,7 @@ CONFIG_XFRM=y | |||
| 284 | # CONFIG_XFRM_USER is not set | 313 | # CONFIG_XFRM_USER is not set |
| 285 | # CONFIG_XFRM_SUB_POLICY is not set | 314 | # CONFIG_XFRM_SUB_POLICY is not set |
| 286 | # CONFIG_XFRM_MIGRATE is not set | 315 | # CONFIG_XFRM_MIGRATE is not set |
| 316 | # CONFIG_XFRM_STATISTICS is not set | ||
| 287 | # CONFIG_NET_KEY is not set | 317 | # CONFIG_NET_KEY is not set |
| 288 | CONFIG_INET=y | 318 | CONFIG_INET=y |
| 289 | # CONFIG_IP_MULTICAST is not set | 319 | # CONFIG_IP_MULTICAST is not set |
| @@ -344,6 +374,7 @@ CONFIG_LLC=m | |||
| 344 | # | 374 | # |
| 345 | # CONFIG_NET_PKTGEN is not set | 375 | # CONFIG_NET_PKTGEN is not set |
| 346 | # CONFIG_HAMRADIO is not set | 376 | # CONFIG_HAMRADIO is not set |
| 377 | # CONFIG_CAN is not set | ||
| 347 | # CONFIG_IRDA is not set | 378 | # CONFIG_IRDA is not set |
| 348 | # CONFIG_BT is not set | 379 | # CONFIG_BT is not set |
| 349 | # CONFIG_AF_RXRPC is not set | 380 | # CONFIG_AF_RXRPC is not set |
| @@ -386,7 +417,7 @@ CONFIG_BLK_DEV=y | |||
| 386 | CONFIG_BLK_DEV_RAM=y | 417 | CONFIG_BLK_DEV_RAM=y |
| 387 | CONFIG_BLK_DEV_RAM_COUNT=16 | 418 | CONFIG_BLK_DEV_RAM_COUNT=16 |
| 388 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 419 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
| 389 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 420 | # CONFIG_BLK_DEV_XIP is not set |
| 390 | # CONFIG_CDROM_PKTCDVD is not set | 421 | # CONFIG_CDROM_PKTCDVD is not set |
| 391 | # CONFIG_ATA_OVER_ETH is not set | 422 | # CONFIG_ATA_OVER_ETH is not set |
| 392 | CONFIG_MISC_DEVICES=y | 423 | CONFIG_MISC_DEVICES=y |
| @@ -394,6 +425,8 @@ CONFIG_MISC_DEVICES=y | |||
| 394 | CONFIG_EEPROM_93CX6=y | 425 | CONFIG_EEPROM_93CX6=y |
| 395 | # CONFIG_SGI_IOC4 is not set | 426 | # CONFIG_SGI_IOC4 is not set |
| 396 | # CONFIG_TIFM_CORE is not set | 427 | # CONFIG_TIFM_CORE is not set |
| 428 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
| 429 | CONFIG_HAVE_IDE=y | ||
| 397 | # CONFIG_IDE is not set | 430 | # CONFIG_IDE is not set |
| 398 | 431 | ||
| 399 | # | 432 | # |
| @@ -453,6 +486,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
| 453 | # CONFIG_SCSI_IPS is not set | 486 | # CONFIG_SCSI_IPS is not set |
| 454 | # CONFIG_SCSI_INITIO is not set | 487 | # CONFIG_SCSI_INITIO is not set |
| 455 | # CONFIG_SCSI_INIA100 is not set | 488 | # CONFIG_SCSI_INIA100 is not set |
| 489 | # CONFIG_SCSI_MVSAS is not set | ||
| 456 | # CONFIG_SCSI_STEX is not set | 490 | # CONFIG_SCSI_STEX is not set |
| 457 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 491 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
| 458 | # CONFIG_SCSI_IPR is not set | 492 | # CONFIG_SCSI_IPR is not set |
| @@ -506,6 +540,7 @@ CONFIG_SATA_SIL=y | |||
| 506 | # CONFIG_PATA_MPIIX is not set | 540 | # CONFIG_PATA_MPIIX is not set |
| 507 | # CONFIG_PATA_OLDPIIX is not set | 541 | # CONFIG_PATA_OLDPIIX is not set |
| 508 | # CONFIG_PATA_NETCELL is not set | 542 | # CONFIG_PATA_NETCELL is not set |
| 543 | # CONFIG_PATA_NINJA32 is not set | ||
| 509 | # CONFIG_PATA_NS87410 is not set | 544 | # CONFIG_PATA_NS87410 is not set |
| 510 | # CONFIG_PATA_NS87415 is not set | 545 | # CONFIG_PATA_NS87415 is not set |
| 511 | # CONFIG_PATA_OPTI is not set | 546 | # CONFIG_PATA_OPTI is not set |
| @@ -538,7 +573,6 @@ CONFIG_NETDEVICES=y | |||
| 538 | # CONFIG_EQUALIZER is not set | 573 | # CONFIG_EQUALIZER is not set |
| 539 | # CONFIG_TUN is not set | 574 | # CONFIG_TUN is not set |
| 540 | # CONFIG_VETH is not set | 575 | # CONFIG_VETH is not set |
| 541 | # CONFIG_IP1000 is not set | ||
| 542 | # CONFIG_ARCNET is not set | 576 | # CONFIG_ARCNET is not set |
| 543 | # CONFIG_PHYLIB is not set | 577 | # CONFIG_PHYLIB is not set |
| 544 | CONFIG_NET_ETHERNET=y | 578 | CONFIG_NET_ETHERNET=y |
| @@ -551,7 +585,6 @@ CONFIG_AX88796_93CX6=y | |||
| 551 | # CONFIG_CASSINI is not set | 585 | # CONFIG_CASSINI is not set |
| 552 | # CONFIG_NET_VENDOR_3COM is not set | 586 | # CONFIG_NET_VENDOR_3COM is not set |
| 553 | # CONFIG_SMC91X is not set | 587 | # CONFIG_SMC91X is not set |
| 554 | # CONFIG_SMC911X is not set | ||
| 555 | # CONFIG_NET_TULIP is not set | 588 | # CONFIG_NET_TULIP is not set |
| 556 | # CONFIG_HP100 is not set | 589 | # CONFIG_HP100 is not set |
| 557 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 590 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
| @@ -576,6 +609,7 @@ CONFIG_8139TOO=m | |||
| 576 | # CONFIG_8139TOO_TUNE_TWISTER is not set | 609 | # CONFIG_8139TOO_TUNE_TWISTER is not set |
| 577 | CONFIG_8139TOO_8129=y | 610 | CONFIG_8139TOO_8129=y |
| 578 | # CONFIG_8139_OLD_RX_RESET is not set | 611 | # CONFIG_8139_OLD_RX_RESET is not set |
| 612 | # CONFIG_R6040 is not set | ||
| 579 | # CONFIG_SIS900 is not set | 613 | # CONFIG_SIS900 is not set |
| 580 | # CONFIG_EPIC100 is not set | 614 | # CONFIG_EPIC100 is not set |
| 581 | # CONFIG_SUNDANCE is not set | 615 | # CONFIG_SUNDANCE is not set |
| @@ -591,6 +625,9 @@ CONFIG_E1000=m | |||
| 591 | # CONFIG_E1000_NAPI is not set | 625 | # CONFIG_E1000_NAPI is not set |
| 592 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 626 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
| 593 | # CONFIG_E1000E is not set | 627 | # CONFIG_E1000E is not set |
| 628 | # CONFIG_E1000E_ENABLED is not set | ||
| 629 | # CONFIG_IP1000 is not set | ||
| 630 | # CONFIG_IGB is not set | ||
| 594 | # CONFIG_NS83820 is not set | 631 | # CONFIG_NS83820 is not set |
| 595 | # CONFIG_HAMACHI is not set | 632 | # CONFIG_HAMACHI is not set |
| 596 | # CONFIG_YELLOWFIN is not set | 633 | # CONFIG_YELLOWFIN is not set |
| @@ -616,6 +653,7 @@ CONFIG_NETDEV_10000=y | |||
| 616 | # CONFIG_NIU is not set | 653 | # CONFIG_NIU is not set |
| 617 | # CONFIG_MLX4_CORE is not set | 654 | # CONFIG_MLX4_CORE is not set |
| 618 | # CONFIG_TEHUTI is not set | 655 | # CONFIG_TEHUTI is not set |
| 656 | # CONFIG_BNX2X is not set | ||
| 619 | # CONFIG_TR is not set | 657 | # CONFIG_TR is not set |
| 620 | 658 | ||
| 621 | # | 659 | # |
| @@ -629,7 +667,6 @@ CONFIG_NETDEV_10000=y | |||
| 629 | # CONFIG_PPP is not set | 667 | # CONFIG_PPP is not set |
| 630 | # CONFIG_SLIP is not set | 668 | # CONFIG_SLIP is not set |
| 631 | # CONFIG_NET_FC is not set | 669 | # CONFIG_NET_FC is not set |
| 632 | # CONFIG_SHAPER is not set | ||
| 633 | # CONFIG_NETCONSOLE is not set | 670 | # CONFIG_NETCONSOLE is not set |
| 634 | # CONFIG_NETPOLL is not set | 671 | # CONFIG_NETPOLL is not set |
| 635 | # CONFIG_NET_POLL_CONTROLLER is not set | 672 | # CONFIG_NET_POLL_CONTROLLER is not set |
| @@ -686,6 +723,7 @@ CONFIG_SERIO_LIBPS2=y | |||
| 686 | # | 723 | # |
| 687 | # CONFIG_VT is not set | 724 | # CONFIG_VT is not set |
| 688 | # CONFIG_SERIAL_NONSTANDARD is not set | 725 | # CONFIG_SERIAL_NONSTANDARD is not set |
| 726 | # CONFIG_NOZOMI is not set | ||
| 689 | 727 | ||
| 690 | # | 728 | # |
| 691 | # Serial drivers | 729 | # Serial drivers |
| @@ -722,6 +760,7 @@ CONFIG_DEVPORT=y | |||
| 722 | # CONFIG_POWER_SUPPLY is not set | 760 | # CONFIG_POWER_SUPPLY is not set |
| 723 | CONFIG_HWMON=y | 761 | CONFIG_HWMON=y |
| 724 | # CONFIG_HWMON_VID is not set | 762 | # CONFIG_HWMON_VID is not set |
| 763 | # CONFIG_SENSORS_I5K_AMB is not set | ||
| 725 | # CONFIG_SENSORS_F71805F is not set | 764 | # CONFIG_SENSORS_F71805F is not set |
| 726 | # CONFIG_SENSORS_F71882FG is not set | 765 | # CONFIG_SENSORS_F71882FG is not set |
| 727 | # CONFIG_SENSORS_IT87 is not set | 766 | # CONFIG_SENSORS_IT87 is not set |
| @@ -736,6 +775,7 @@ CONFIG_HWMON=y | |||
| 736 | # CONFIG_SENSORS_W83627HF is not set | 775 | # CONFIG_SENSORS_W83627HF is not set |
| 737 | # CONFIG_SENSORS_W83627EHF is not set | 776 | # CONFIG_SENSORS_W83627EHF is not set |
| 738 | # CONFIG_HWMON_DEBUG_CHIP is not set | 777 | # CONFIG_HWMON_DEBUG_CHIP is not set |
| 778 | CONFIG_THERMAL=y | ||
| 739 | # CONFIG_WATCHDOG is not set | 779 | # CONFIG_WATCHDOG is not set |
| 740 | 780 | ||
| 741 | # | 781 | # |
| @@ -800,12 +840,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
| 800 | # | 840 | # |
| 801 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 841 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
| 802 | # | 842 | # |
| 803 | |||
| 804 | # | ||
| 805 | # USB Gadget Support | ||
| 806 | # | ||
| 807 | # CONFIG_USB_GADGET is not set | 843 | # CONFIG_USB_GADGET is not set |
| 808 | # CONFIG_MMC is not set | 844 | # CONFIG_MMC is not set |
| 845 | # CONFIG_MEMSTICK is not set | ||
| 809 | # CONFIG_NEW_LEDS is not set | 846 | # CONFIG_NEW_LEDS is not set |
| 810 | # CONFIG_INFINIBAND is not set | 847 | # CONFIG_INFINIBAND is not set |
| 811 | CONFIG_RTC_LIB=y | 848 | CONFIG_RTC_LIB=y |
| @@ -830,9 +867,10 @@ CONFIG_RTC_INTF_DEV=y | |||
| 830 | # | 867 | # |
| 831 | # Platform RTC drivers | 868 | # Platform RTC drivers |
| 832 | # | 869 | # |
| 870 | # CONFIG_RTC_DRV_DS1511 is not set | ||
| 833 | # CONFIG_RTC_DRV_DS1553 is not set | 871 | # CONFIG_RTC_DRV_DS1553 is not set |
| 834 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 835 | # CONFIG_RTC_DRV_DS1742 is not set | 872 | # CONFIG_RTC_DRV_DS1742 is not set |
| 873 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
| 836 | # CONFIG_RTC_DRV_M48T86 is not set | 874 | # CONFIG_RTC_DRV_M48T86 is not set |
| 837 | # CONFIG_RTC_DRV_M48T59 is not set | 875 | # CONFIG_RTC_DRV_M48T59 is not set |
| 838 | # CONFIG_RTC_DRV_V3020 is not set | 876 | # CONFIG_RTC_DRV_V3020 is not set |
| @@ -867,12 +905,10 @@ CONFIG_FS_POSIX_ACL=y | |||
| 867 | # CONFIG_XFS_FS is not set | 905 | # CONFIG_XFS_FS is not set |
| 868 | # CONFIG_GFS2_FS is not set | 906 | # CONFIG_GFS2_FS is not set |
| 869 | # CONFIG_OCFS2_FS is not set | 907 | # CONFIG_OCFS2_FS is not set |
| 870 | CONFIG_MINIX_FS=y | 908 | CONFIG_DNOTIFY=y |
| 871 | # CONFIG_ROMFS_FS is not set | ||
| 872 | CONFIG_INOTIFY=y | 909 | CONFIG_INOTIFY=y |
| 873 | CONFIG_INOTIFY_USER=y | 910 | CONFIG_INOTIFY_USER=y |
| 874 | # CONFIG_QUOTA is not set | 911 | # CONFIG_QUOTA is not set |
| 875 | CONFIG_DNOTIFY=y | ||
| 876 | # CONFIG_AUTOFS_FS is not set | 912 | # CONFIG_AUTOFS_FS is not set |
| 877 | # CONFIG_AUTOFS4_FS is not set | 913 | # CONFIG_AUTOFS4_FS is not set |
| 878 | CONFIG_FUSE_FS=m | 914 | CONFIG_FUSE_FS=m |
| @@ -920,8 +956,10 @@ CONFIG_CONFIGFS_FS=m | |||
| 920 | # CONFIG_EFS_FS is not set | 956 | # CONFIG_EFS_FS is not set |
| 921 | # CONFIG_CRAMFS is not set | 957 | # CONFIG_CRAMFS is not set |
| 922 | # CONFIG_VXFS_FS is not set | 958 | # CONFIG_VXFS_FS is not set |
| 959 | CONFIG_MINIX_FS=y | ||
| 923 | # CONFIG_HPFS_FS is not set | 960 | # CONFIG_HPFS_FS is not set |
| 924 | # CONFIG_QNX4FS_FS is not set | 961 | # CONFIG_QNX4FS_FS is not set |
| 962 | # CONFIG_ROMFS_FS is not set | ||
| 925 | # CONFIG_SYSV_FS is not set | 963 | # CONFIG_SYSV_FS is not set |
| 926 | # CONFIG_UFS_FS is not set | 964 | # CONFIG_UFS_FS is not set |
| 927 | CONFIG_NETWORK_FILESYSTEMS=y | 965 | CONFIG_NETWORK_FILESYSTEMS=y |
| @@ -997,10 +1035,6 @@ CONFIG_NLS_ISO8859_1=y | |||
| 997 | # CONFIG_NLS_KOI8_U is not set | 1035 | # CONFIG_NLS_KOI8_U is not set |
| 998 | # CONFIG_NLS_UTF8 is not set | 1036 | # CONFIG_NLS_UTF8 is not set |
| 999 | # CONFIG_DLM is not set | 1037 | # CONFIG_DLM is not set |
| 1000 | CONFIG_INSTRUMENTATION=y | ||
| 1001 | CONFIG_PROFILING=y | ||
| 1002 | CONFIG_OPROFILE=m | ||
| 1003 | # CONFIG_MARKERS is not set | ||
| 1004 | 1038 | ||
| 1005 | # | 1039 | # |
| 1006 | # Kernel hacking | 1040 | # Kernel hacking |
| @@ -1035,9 +1069,9 @@ CONFIG_DEBUG_INFO=y | |||
| 1035 | # CONFIG_DEBUG_LIST is not set | 1069 | # CONFIG_DEBUG_LIST is not set |
| 1036 | # CONFIG_DEBUG_SG is not set | 1070 | # CONFIG_DEBUG_SG is not set |
| 1037 | # CONFIG_FRAME_POINTER is not set | 1071 | # CONFIG_FRAME_POINTER is not set |
| 1038 | CONFIG_FORCED_INLINING=y | ||
| 1039 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1072 | # CONFIG_BOOT_PRINTK_DELAY is not set |
| 1040 | # CONFIG_RCU_TORTURE_TEST is not set | 1073 | # CONFIG_RCU_TORTURE_TEST is not set |
| 1074 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
| 1041 | # CONFIG_FAULT_INJECTION is not set | 1075 | # CONFIG_FAULT_INJECTION is not set |
| 1042 | # CONFIG_SAMPLES is not set | 1076 | # CONFIG_SAMPLES is not set |
| 1043 | CONFIG_SH_STANDARD_BIOS=y | 1077 | CONFIG_SH_STANDARD_BIOS=y |
| @@ -1059,6 +1093,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y | |||
| 1059 | CONFIG_CRYPTO=y | 1093 | CONFIG_CRYPTO=y |
| 1060 | CONFIG_CRYPTO_ALGAPI=y | 1094 | CONFIG_CRYPTO_ALGAPI=y |
| 1061 | CONFIG_CRYPTO_BLKCIPHER=y | 1095 | CONFIG_CRYPTO_BLKCIPHER=y |
| 1096 | # CONFIG_CRYPTO_SEQIV is not set | ||
| 1062 | CONFIG_CRYPTO_HASH=y | 1097 | CONFIG_CRYPTO_HASH=y |
| 1063 | CONFIG_CRYPTO_MANAGER=y | 1098 | CONFIG_CRYPTO_MANAGER=y |
| 1064 | CONFIG_CRYPTO_HMAC=y | 1099 | CONFIG_CRYPTO_HMAC=y |
| @@ -1077,6 +1112,9 @@ CONFIG_CRYPTO_CBC=y | |||
| 1077 | CONFIG_CRYPTO_PCBC=m | 1112 | CONFIG_CRYPTO_PCBC=m |
| 1078 | # CONFIG_CRYPTO_LRW is not set | 1113 | # CONFIG_CRYPTO_LRW is not set |
| 1079 | # CONFIG_CRYPTO_XTS is not set | 1114 | # CONFIG_CRYPTO_XTS is not set |
| 1115 | # CONFIG_CRYPTO_CTR is not set | ||
| 1116 | # CONFIG_CRYPTO_GCM is not set | ||
| 1117 | # CONFIG_CRYPTO_CCM is not set | ||
| 1080 | # CONFIG_CRYPTO_CRYPTD is not set | 1118 | # CONFIG_CRYPTO_CRYPTD is not set |
| 1081 | CONFIG_CRYPTO_DES=y | 1119 | CONFIG_CRYPTO_DES=y |
| 1082 | # CONFIG_CRYPTO_FCRYPT is not set | 1120 | # CONFIG_CRYPTO_FCRYPT is not set |
| @@ -1091,13 +1129,16 @@ CONFIG_CRYPTO_DES=y | |||
| 1091 | # CONFIG_CRYPTO_KHAZAD is not set | 1129 | # CONFIG_CRYPTO_KHAZAD is not set |
| 1092 | # CONFIG_CRYPTO_ANUBIS is not set | 1130 | # CONFIG_CRYPTO_ANUBIS is not set |
| 1093 | # CONFIG_CRYPTO_SEED is not set | 1131 | # CONFIG_CRYPTO_SEED is not set |
| 1132 | # CONFIG_CRYPTO_SALSA20 is not set | ||
| 1094 | # CONFIG_CRYPTO_DEFLATE is not set | 1133 | # CONFIG_CRYPTO_DEFLATE is not set |
| 1095 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1134 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
| 1096 | # CONFIG_CRYPTO_CRC32C is not set | 1135 | # CONFIG_CRYPTO_CRC32C is not set |
| 1097 | # CONFIG_CRYPTO_CAMELLIA is not set | 1136 | # CONFIG_CRYPTO_CAMELLIA is not set |
| 1098 | # CONFIG_CRYPTO_TEST is not set | 1137 | # CONFIG_CRYPTO_TEST is not set |
| 1099 | # CONFIG_CRYPTO_AUTHENC is not set | 1138 | # CONFIG_CRYPTO_AUTHENC is not set |
| 1139 | # CONFIG_CRYPTO_LZO is not set | ||
| 1100 | CONFIG_CRYPTO_HW=y | 1140 | CONFIG_CRYPTO_HW=y |
| 1141 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
| 1101 | 1142 | ||
| 1102 | # | 1143 | # |
| 1103 | # Library routines | 1144 | # Library routines |
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig index f68743dc3931..30f5ee40c312 100644 --- a/arch/sh/configs/se7780_defconfig +++ b/arch/sh/configs/se7780_defconfig | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.21-rc3 | 3 | # Linux kernel version: 2.6.25-rc3 |
| 4 | # Thu Mar 15 14:06:20 2007 | 4 | # Thu Feb 28 10:18:04 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
| 7 | CONFIG_SUPERH32=y | ||
| 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 8 | CONFIG_GENERIC_BUG=y | 9 | CONFIG_GENERIC_BUG=y |
| 9 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
| @@ -11,38 +12,44 @@ CONFIG_GENERIC_HWEIGHT=y | |||
| 11 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
| 12 | CONFIG_GENERIC_IRQ_PROBE=y | 13 | CONFIG_GENERIC_IRQ_PROBE=y |
| 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 14 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 14 | # CONFIG_GENERIC_TIME is not set | 15 | CONFIG_GENERIC_TIME=y |
| 16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
| 17 | CONFIG_SYS_SUPPORTS_PCI=y | ||
| 15 | CONFIG_STACKTRACE_SUPPORT=y | 18 | CONFIG_STACKTRACE_SUPPORT=y |
| 16 | CONFIG_LOCKDEP_SUPPORT=y | 19 | CONFIG_LOCKDEP_SUPPORT=y |
| 17 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
| 18 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
| 22 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
| 23 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
| 19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| 20 | 25 | ||
| 21 | # | 26 | # |
| 22 | # Code maturity level options | 27 | # General setup |
| 23 | # | 28 | # |
| 24 | # CONFIG_EXPERIMENTAL is not set | 29 | # CONFIG_EXPERIMENTAL is not set |
| 25 | CONFIG_BROKEN_ON_SMP=y | 30 | CONFIG_BROKEN_ON_SMP=y |
| 26 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 31 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
| 27 | |||
| 28 | # | ||
| 29 | # General setup | ||
| 30 | # | ||
| 31 | CONFIG_LOCALVERSION="" | 32 | CONFIG_LOCALVERSION="" |
| 32 | CONFIG_LOCALVERSION_AUTO=y | 33 | CONFIG_LOCALVERSION_AUTO=y |
| 33 | # CONFIG_SWAP is not set | 34 | # CONFIG_SWAP is not set |
| 34 | CONFIG_SYSVIPC=y | 35 | CONFIG_SYSVIPC=y |
| 35 | # CONFIG_IPC_NS is not set | ||
| 36 | CONFIG_SYSVIPC_SYSCTL=y | 36 | CONFIG_SYSVIPC_SYSCTL=y |
| 37 | # CONFIG_BSD_PROCESS_ACCT is not set | 37 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 38 | # CONFIG_TASKSTATS is not set | 38 | # CONFIG_TASKSTATS is not set |
| 39 | # CONFIG_UTS_NS is not set | ||
| 40 | # CONFIG_AUDIT is not set | 39 | # CONFIG_AUDIT is not set |
| 41 | CONFIG_IKCONFIG=y | 40 | CONFIG_IKCONFIG=y |
| 42 | CONFIG_IKCONFIG_PROC=y | 41 | CONFIG_IKCONFIG_PROC=y |
| 42 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 43 | # CONFIG_CGROUPS is not set | ||
| 44 | CONFIG_GROUP_SCHED=y | ||
| 45 | CONFIG_FAIR_GROUP_SCHED=y | ||
| 46 | CONFIG_USER_SCHED=y | ||
| 47 | # CONFIG_CGROUP_SCHED is not set | ||
| 43 | CONFIG_SYSFS_DEPRECATED=y | 48 | CONFIG_SYSFS_DEPRECATED=y |
| 44 | # CONFIG_RELAY is not set | 49 | # CONFIG_RELAY is not set |
| 50 | # CONFIG_NAMESPACES is not set | ||
| 45 | # CONFIG_BLK_DEV_INITRD is not set | 51 | # CONFIG_BLK_DEV_INITRD is not set |
| 52 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
| 46 | CONFIG_SYSCTL=y | 53 | CONFIG_SYSCTL=y |
| 47 | CONFIG_EMBEDDED=y | 54 | CONFIG_EMBEDDED=y |
| 48 | CONFIG_UID16=y | 55 | CONFIG_UID16=y |
| @@ -52,31 +59,36 @@ CONFIG_SYSCTL_SYSCALL=y | |||
| 52 | CONFIG_PRINTK=y | 59 | CONFIG_PRINTK=y |
| 53 | CONFIG_BUG=y | 60 | CONFIG_BUG=y |
| 54 | CONFIG_ELF_CORE=y | 61 | CONFIG_ELF_CORE=y |
| 62 | CONFIG_COMPAT_BRK=y | ||
| 55 | CONFIG_BASE_FULL=y | 63 | CONFIG_BASE_FULL=y |
| 56 | CONFIG_FUTEX=y | 64 | CONFIG_FUTEX=y |
| 65 | CONFIG_ANON_INODES=y | ||
| 57 | # CONFIG_EPOLL is not set | 66 | # CONFIG_EPOLL is not set |
| 67 | CONFIG_SIGNALFD=y | ||
| 68 | CONFIG_TIMERFD=y | ||
| 69 | CONFIG_EVENTFD=y | ||
| 58 | CONFIG_SHMEM=y | 70 | CONFIG_SHMEM=y |
| 59 | CONFIG_SLAB=y | ||
| 60 | CONFIG_VM_EVENT_COUNTERS=y | 71 | CONFIG_VM_EVENT_COUNTERS=y |
| 72 | CONFIG_SLAB=y | ||
| 73 | # CONFIG_SLUB is not set | ||
| 74 | # CONFIG_SLOB is not set | ||
| 75 | # CONFIG_PROFILING is not set | ||
| 76 | # CONFIG_MARKERS is not set | ||
| 77 | CONFIG_HAVE_OPROFILE=y | ||
| 78 | # CONFIG_HAVE_KPROBES is not set | ||
| 79 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 80 | CONFIG_SLABINFO=y | ||
| 61 | CONFIG_RT_MUTEXES=y | 81 | CONFIG_RT_MUTEXES=y |
| 62 | # CONFIG_TINY_SHMEM is not set | 82 | # CONFIG_TINY_SHMEM is not set |
| 63 | CONFIG_BASE_SMALL=0 | 83 | CONFIG_BASE_SMALL=0 |
| 64 | # CONFIG_SLOB is not set | ||
| 65 | |||
| 66 | # | ||
| 67 | # Loadable module support | ||
| 68 | # | ||
| 69 | CONFIG_MODULES=y | 84 | CONFIG_MODULES=y |
| 70 | CONFIG_MODULE_UNLOAD=y | 85 | CONFIG_MODULE_UNLOAD=y |
| 71 | # CONFIG_MODVERSIONS is not set | 86 | # CONFIG_MODVERSIONS is not set |
| 72 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 87 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 73 | CONFIG_KMOD=y | 88 | CONFIG_KMOD=y |
| 74 | |||
| 75 | # | ||
| 76 | # Block layer | ||
| 77 | # | ||
| 78 | CONFIG_BLOCK=y | 89 | CONFIG_BLOCK=y |
| 79 | # CONFIG_LBD is not set | 90 | # CONFIG_LBD is not set |
| 91 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
| 80 | # CONFIG_LSF is not set | 92 | # CONFIG_LSF is not set |
| 81 | 93 | ||
| 82 | # | 94 | # |
| @@ -91,68 +103,27 @@ CONFIG_DEFAULT_DEADLINE=y | |||
| 91 | # CONFIG_DEFAULT_CFQ is not set | 103 | # CONFIG_DEFAULT_CFQ is not set |
| 92 | # CONFIG_DEFAULT_NOOP is not set | 104 | # CONFIG_DEFAULT_NOOP is not set |
| 93 | CONFIG_DEFAULT_IOSCHED="deadline" | 105 | CONFIG_DEFAULT_IOSCHED="deadline" |
| 106 | CONFIG_CLASSIC_RCU=y | ||
| 107 | # CONFIG_PREEMPT_RCU is not set | ||
| 94 | 108 | ||
| 95 | # | 109 | # |
| 96 | # System type | 110 | # System type |
| 97 | # | 111 | # |
| 98 | CONFIG_SOLUTION_ENGINE=y | ||
| 99 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
| 100 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
| 101 | CONFIG_SH_7780_SOLUTION_ENGINE=y | ||
| 102 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
| 103 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
| 104 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
| 105 | # CONFIG_SH_7751_SYSTEMH is not set | ||
| 106 | # CONFIG_SH_HP6XX is not set | ||
| 107 | # CONFIG_SH_SATURN is not set | ||
| 108 | # CONFIG_SH_DREAMCAST is not set | ||
| 109 | # CONFIG_SH_MPC1211 is not set | ||
| 110 | # CONFIG_SH_SH03 is not set | ||
| 111 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
| 112 | # CONFIG_SH_HS7751RVOIP is not set | ||
| 113 | # CONFIG_SH_7710VOIPGW is not set | ||
| 114 | # CONFIG_SH_RTS7751R2D is not set | ||
| 115 | # CONFIG_SH_HIGHLANDER is not set | ||
| 116 | # CONFIG_SH_EDOSK7705 is not set | ||
| 117 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
| 118 | # CONFIG_SH_LANDISK is not set | ||
| 119 | # CONFIG_SH_TITAN is not set | ||
| 120 | # CONFIG_SH_SHMIN is not set | ||
| 121 | # CONFIG_SH_7206_SOLUTION_ENGINE is not set | ||
| 122 | # CONFIG_SH_7619_SOLUTION_ENGINE is not set | ||
| 123 | # CONFIG_SH_UNKNOWN is not set | ||
| 124 | |||
| 125 | # | ||
| 126 | # Processor selection | ||
| 127 | # | ||
| 128 | CONFIG_CPU_SH4=y | 112 | CONFIG_CPU_SH4=y |
| 129 | CONFIG_CPU_SH4A=y | 113 | CONFIG_CPU_SH4A=y |
| 130 | |||
| 131 | # | ||
| 132 | # SH-2 Processor Support | ||
| 133 | # | ||
| 134 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
| 135 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | 114 | # CONFIG_CPU_SUBTYPE_SH7619 is not set |
| 136 | 115 | # CONFIG_CPU_SUBTYPE_SH7203 is not set | |
| 137 | # | ||
| 138 | # SH-2A Processor Support | ||
| 139 | # | ||
| 140 | # CONFIG_CPU_SUBTYPE_SH7206 is not set | 116 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
| 141 | 117 | # CONFIG_CPU_SUBTYPE_SH7263 is not set | |
| 142 | # | ||
| 143 | # SH-3 Processor Support | ||
| 144 | # | ||
| 145 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
| 146 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 118 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
| 147 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 119 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
| 148 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 120 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
| 149 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 121 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
| 150 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
| 151 | # CONFIG_CPU_SUBTYPE_SH7710 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7710 is not set |
| 152 | 124 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
| 153 | # | 125 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
| 154 | # SH-4 Processor Support | 126 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
| 155 | # | ||
| 156 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 127 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
| 157 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 128 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
| 158 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 129 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
| @@ -161,52 +132,58 @@ CONFIG_CPU_SH4A=y | |||
| 161 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
| 162 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 133 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
| 163 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 134 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
| 164 | 135 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | |
| 165 | # | ||
| 166 | # ST40 Processor Support | ||
| 167 | # | ||
| 168 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
| 169 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
| 170 | |||
| 171 | # | ||
| 172 | # SH-4A Processor Support | ||
| 173 | # | ||
| 174 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
| 175 | CONFIG_CPU_SUBTYPE_SH7780=y | 137 | CONFIG_CPU_SUBTYPE_SH7780=y |
| 176 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | 138 | # CONFIG_CPU_SUBTYPE_SH7785 is not set |
| 177 | 139 | # CONFIG_CPU_SUBTYPE_SHX3 is not set | |
| 178 | # | ||
| 179 | # SH4AL-DSP Processor Support | ||
| 180 | # | ||
| 181 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
| 182 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
| 183 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | 141 | # CONFIG_CPU_SUBTYPE_SH7722 is not set |
| 142 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
| 143 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
| 144 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
| 184 | 145 | ||
| 185 | # | 146 | # |
| 186 | # Memory management options | 147 | # Memory management options |
| 187 | # | 148 | # |
| 149 | CONFIG_QUICKLIST=y | ||
| 188 | CONFIG_MMU=y | 150 | CONFIG_MMU=y |
| 189 | CONFIG_PAGE_OFFSET=0x80000000 | 151 | CONFIG_PAGE_OFFSET=0x80000000 |
| 190 | CONFIG_MEMORY_START=0x08000000 | 152 | CONFIG_MEMORY_START=0x08000000 |
| 191 | CONFIG_MEMORY_SIZE=0x08000000 | 153 | CONFIG_MEMORY_SIZE=0x08000000 |
| 192 | CONFIG_32BIT=y | 154 | CONFIG_29BIT=y |
| 155 | # CONFIG_PMB is not set | ||
| 193 | CONFIG_VSYSCALL=y | 156 | CONFIG_VSYSCALL=y |
| 157 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
| 158 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
| 159 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
| 160 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
| 161 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
| 162 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
| 163 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
| 194 | CONFIG_PAGE_SIZE_4KB=y | 164 | CONFIG_PAGE_SIZE_4KB=y |
| 195 | # CONFIG_PAGE_SIZE_8KB is not set | 165 | # CONFIG_PAGE_SIZE_8KB is not set |
| 196 | # CONFIG_PAGE_SIZE_64KB is not set | 166 | # CONFIG_PAGE_SIZE_64KB is not set |
| 197 | CONFIG_FLATMEM=y | 167 | CONFIG_SELECT_MEMORY_MODEL=y |
| 198 | CONFIG_FLAT_NODE_MEM_MAP=y | 168 | # CONFIG_FLATMEM_MANUAL is not set |
| 199 | # CONFIG_SPARSEMEM_STATIC is not set | 169 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| 170 | CONFIG_SPARSEMEM_MANUAL=y | ||
| 171 | CONFIG_SPARSEMEM=y | ||
| 172 | CONFIG_HAVE_MEMORY_PRESENT=y | ||
| 173 | CONFIG_SPARSEMEM_STATIC=y | ||
| 174 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
| 200 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 175 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 201 | # CONFIG_RESOURCES_64BIT is not set | 176 | # CONFIG_RESOURCES_64BIT is not set |
| 202 | CONFIG_ZONE_DMA_FLAG=0 | 177 | CONFIG_ZONE_DMA_FLAG=0 |
| 178 | CONFIG_NR_QUICK=2 | ||
| 203 | 179 | ||
| 204 | # | 180 | # |
| 205 | # Cache configuration | 181 | # Cache configuration |
| 206 | # | 182 | # |
| 207 | # CONFIG_SH_DIRECT_MAPPED is not set | 183 | # CONFIG_SH_DIRECT_MAPPED is not set |
| 208 | # CONFIG_SH_WRITETHROUGH is not set | 184 | CONFIG_CACHE_WRITEBACK=y |
| 209 | # CONFIG_SH_OCRAM is not set | 185 | # CONFIG_CACHE_WRITETHROUGH is not set |
| 186 | # CONFIG_CACHE_OFF is not set | ||
| 210 | 187 | ||
| 211 | # | 188 | # |
| 212 | # Processor features | 189 | # Processor features |
| @@ -214,20 +191,29 @@ CONFIG_ZONE_DMA_FLAG=0 | |||
| 214 | CONFIG_CPU_LITTLE_ENDIAN=y | 191 | CONFIG_CPU_LITTLE_ENDIAN=y |
| 215 | # CONFIG_CPU_BIG_ENDIAN is not set | 192 | # CONFIG_CPU_BIG_ENDIAN is not set |
| 216 | CONFIG_SH_FPU=y | 193 | CONFIG_SH_FPU=y |
| 217 | # CONFIG_SH_DSP is not set | ||
| 218 | # CONFIG_SH_STORE_QUEUES is not set | 194 | # CONFIG_SH_STORE_QUEUES is not set |
| 219 | CONFIG_CPU_HAS_INTEVT=y | 195 | CONFIG_CPU_HAS_INTEVT=y |
| 220 | CONFIG_CPU_HAS_INTC2_IRQ=y | ||
| 221 | CONFIG_CPU_HAS_INTC_IRQ=y | ||
| 222 | CONFIG_CPU_HAS_SR_RB=y | 196 | CONFIG_CPU_HAS_SR_RB=y |
| 197 | CONFIG_CPU_HAS_FPU=y | ||
| 198 | |||
| 199 | # | ||
| 200 | # Board support | ||
| 201 | # | ||
| 202 | CONFIG_SOLUTION_ENGINE=y | ||
| 203 | CONFIG_SH_7780_SOLUTION_ENGINE=y | ||
| 204 | # CONFIG_SH_SDK7780 is not set | ||
| 205 | # CONFIG_SH_HIGHLANDER is not set | ||
| 223 | 206 | ||
| 224 | # | 207 | # |
| 225 | # Timer and clock configuration | 208 | # Timer and clock configuration |
| 226 | # | 209 | # |
| 227 | CONFIG_SH_TMU=y | 210 | CONFIG_SH_TMU=y |
| 228 | CONFIG_SH_TIMER_IRQ=28 | 211 | CONFIG_SH_TIMER_IRQ=28 |
| 229 | # CONFIG_NO_IDLE_HZ is not set | ||
| 230 | CONFIG_SH_PCLK_FREQ=33333333 | 212 | CONFIG_SH_PCLK_FREQ=33333333 |
| 213 | # CONFIG_TICK_ONESHOT is not set | ||
| 214 | # CONFIG_NO_HZ is not set | ||
| 215 | # CONFIG_HIGH_RES_TIMERS is not set | ||
| 216 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
| 231 | 217 | ||
| 232 | # | 218 | # |
| 233 | # CPU Frequency scaling | 219 | # CPU Frequency scaling |
| @@ -242,7 +228,6 @@ CONFIG_SH_PCLK_FREQ=33333333 | |||
| 242 | # | 228 | # |
| 243 | # Companion Chips | 229 | # Companion Chips |
| 244 | # | 230 | # |
| 245 | # CONFIG_HD6446X_SERIES is not set | ||
| 246 | 231 | ||
| 247 | # | 232 | # |
| 248 | # Additional SuperH Device Drivers | 233 | # Additional SuperH Device Drivers |
| @@ -258,40 +243,36 @@ CONFIG_HZ_250=y | |||
| 258 | # CONFIG_HZ_300 is not set | 243 | # CONFIG_HZ_300 is not set |
| 259 | # CONFIG_HZ_1000 is not set | 244 | # CONFIG_HZ_1000 is not set |
| 260 | CONFIG_HZ=250 | 245 | CONFIG_HZ=250 |
| 261 | # CONFIG_SMP is not set | 246 | # CONFIG_SCHED_HRTICK is not set |
| 262 | CONFIG_PREEMPT_NONE=y | 247 | CONFIG_PREEMPT_NONE=y |
| 263 | # CONFIG_PREEMPT_VOLUNTARY is not set | 248 | # CONFIG_PREEMPT_VOLUNTARY is not set |
| 264 | # CONFIG_PREEMPT is not set | 249 | # CONFIG_PREEMPT is not set |
| 250 | CONFIG_RCU_TRACE=y | ||
| 251 | CONFIG_GUSA=y | ||
| 265 | 252 | ||
| 266 | # | 253 | # |
| 267 | # Boot options | 254 | # Boot options |
| 268 | # | 255 | # |
| 269 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 256 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
| 270 | CONFIG_BOOT_LINK_OFFSET=0x00810000 | 257 | CONFIG_BOOT_LINK_OFFSET=0x00810000 |
| 271 | # CONFIG_UBC_WAKEUP is not set | 258 | CONFIG_CMDLINE_BOOL=y |
| 272 | # CONFIG_CMDLINE_BOOL is not set | 259 | CONFIG_CMDLINE="console=ttySC0.115200 root=/dev/sda1" |
| 273 | 260 | ||
| 274 | # | 261 | # |
| 275 | # Bus options | 262 | # Bus options |
| 276 | # | 263 | # |
| 264 | # CONFIG_CF_ENABLER is not set | ||
| 277 | CONFIG_PCI=y | 265 | CONFIG_PCI=y |
| 278 | CONFIG_SH_PCIDMA_NONCOHERENT=y | 266 | CONFIG_SH_PCIDMA_NONCOHERENT=y |
| 279 | CONFIG_PCI_AUTO=y | 267 | CONFIG_PCI_AUTO=y |
| 280 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y | 268 | CONFIG_PCI_AUTO_UPDATE_RESOURCES=y |
| 281 | 269 | # CONFIG_ARCH_SUPPORTS_MSI is not set | |
| 282 | # | 270 | CONFIG_PCI_LEGACY=y |
| 283 | # PCCARD (PCMCIA/CardBus) support | ||
| 284 | # | ||
| 285 | |||
| 286 | # | ||
| 287 | # PCI Hotplug Support | ||
| 288 | # | ||
| 289 | 271 | ||
| 290 | # | 272 | # |
| 291 | # Executable file formats | 273 | # Executable file formats |
| 292 | # | 274 | # |
| 293 | CONFIG_BINFMT_ELF=y | 275 | CONFIG_BINFMT_ELF=y |
| 294 | # CONFIG_BINFMT_FLAT is not set | ||
| 295 | # CONFIG_BINFMT_MISC is not set | 276 | # CONFIG_BINFMT_MISC is not set |
| 296 | 277 | ||
| 297 | # | 278 | # |
| @@ -302,7 +283,6 @@ CONFIG_NET=y | |||
| 302 | # | 283 | # |
| 303 | # Networking options | 284 | # Networking options |
| 304 | # | 285 | # |
| 305 | # CONFIG_NETDEBUG is not set | ||
| 306 | CONFIG_PACKET=y | 286 | CONFIG_PACKET=y |
| 307 | # CONFIG_PACKET_MMAP is not set | 287 | # CONFIG_PACKET_MMAP is not set |
| 308 | CONFIG_UNIX=y | 288 | CONFIG_UNIX=y |
| @@ -329,6 +309,7 @@ CONFIG_IP_PNP=y | |||
| 329 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 309 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
| 330 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 310 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
| 331 | CONFIG_INET_XFRM_MODE_BEET=y | 311 | CONFIG_INET_XFRM_MODE_BEET=y |
| 312 | # CONFIG_INET_LRO is not set | ||
| 332 | CONFIG_INET_DIAG=y | 313 | CONFIG_INET_DIAG=y |
| 333 | CONFIG_INET_TCP_DIAG=y | 314 | CONFIG_INET_TCP_DIAG=y |
| 334 | # CONFIG_TCP_CONG_ADVANCED is not set | 315 | # CONFIG_TCP_CONG_ADVANCED is not set |
| @@ -349,16 +330,13 @@ CONFIG_IPV6=y | |||
| 349 | # CONFIG_IPV6_TUNNEL is not set | 330 | # CONFIG_IPV6_TUNNEL is not set |
| 350 | # CONFIG_NETWORK_SECMARK is not set | 331 | # CONFIG_NETWORK_SECMARK is not set |
| 351 | # CONFIG_NETFILTER is not set | 332 | # CONFIG_NETFILTER is not set |
| 333 | # CONFIG_ATM is not set | ||
| 352 | # CONFIG_BRIDGE is not set | 334 | # CONFIG_BRIDGE is not set |
| 353 | # CONFIG_VLAN_8021Q is not set | 335 | # CONFIG_VLAN_8021Q is not set |
| 354 | # CONFIG_DECNET is not set | 336 | # CONFIG_DECNET is not set |
| 355 | # CONFIG_LLC2 is not set | 337 | # CONFIG_LLC2 is not set |
| 356 | # CONFIG_IPX is not set | 338 | # CONFIG_IPX is not set |
| 357 | # CONFIG_ATALK is not set | 339 | # CONFIG_ATALK is not set |
| 358 | |||
| 359 | # | ||
| 360 | # QoS and/or fair queueing | ||
| 361 | # | ||
| 362 | # CONFIG_NET_SCHED is not set | 340 | # CONFIG_NET_SCHED is not set |
| 363 | 341 | ||
| 364 | # | 342 | # |
| @@ -366,9 +344,18 @@ CONFIG_IPV6=y | |||
| 366 | # | 344 | # |
| 367 | # CONFIG_NET_PKTGEN is not set | 345 | # CONFIG_NET_PKTGEN is not set |
| 368 | # CONFIG_HAMRADIO is not set | 346 | # CONFIG_HAMRADIO is not set |
| 347 | # CONFIG_CAN is not set | ||
| 369 | # CONFIG_IRDA is not set | 348 | # CONFIG_IRDA is not set |
| 370 | # CONFIG_BT is not set | 349 | # CONFIG_BT is not set |
| 350 | |||
| 351 | # | ||
| 352 | # Wireless | ||
| 353 | # | ||
| 354 | # CONFIG_CFG80211 is not set | ||
| 355 | # CONFIG_WIRELESS_EXT is not set | ||
| 356 | # CONFIG_MAC80211 is not set | ||
| 371 | # CONFIG_IEEE80211 is not set | 357 | # CONFIG_IEEE80211 is not set |
| 358 | # CONFIG_RFKILL is not set | ||
| 372 | 359 | ||
| 373 | # | 360 | # |
| 374 | # Device Drivers | 361 | # Device Drivers |
| @@ -380,15 +367,7 @@ CONFIG_IPV6=y | |||
| 380 | CONFIG_STANDALONE=y | 367 | CONFIG_STANDALONE=y |
| 381 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 368 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| 382 | # CONFIG_SYS_HYPERVISOR is not set | 369 | # CONFIG_SYS_HYPERVISOR is not set |
| 383 | |||
| 384 | # | ||
| 385 | # Connector - unified userspace <-> kernelspace linker | ||
| 386 | # | ||
| 387 | # CONFIG_CONNECTOR is not set | 370 | # CONFIG_CONNECTOR is not set |
| 388 | |||
| 389 | # | ||
| 390 | # Memory Technology Devices (MTD) | ||
| 391 | # | ||
| 392 | CONFIG_MTD=y | 371 | CONFIG_MTD=y |
| 393 | # CONFIG_MTD_DEBUG is not set | 372 | # CONFIG_MTD_DEBUG is not set |
| 394 | # CONFIG_MTD_CONCAT is not set | 373 | # CONFIG_MTD_CONCAT is not set |
| @@ -407,6 +386,7 @@ CONFIG_MTD_BLOCK=y | |||
| 407 | # CONFIG_INFTL is not set | 386 | # CONFIG_INFTL is not set |
| 408 | # CONFIG_RFD_FTL is not set | 387 | # CONFIG_RFD_FTL is not set |
| 409 | # CONFIG_SSFDC is not set | 388 | # CONFIG_SSFDC is not set |
| 389 | # CONFIG_MTD_OOPS is not set | ||
| 410 | 390 | ||
| 411 | # | 391 | # |
| 412 | # RAM/ROM/Flash chip drivers | 392 | # RAM/ROM/Flash chip drivers |
| @@ -437,13 +417,13 @@ CONFIG_MTD_CFI_UTIL=y | |||
| 437 | # CONFIG_MTD_RAM is not set | 417 | # CONFIG_MTD_RAM is not set |
| 438 | CONFIG_MTD_ROM=y | 418 | CONFIG_MTD_ROM=y |
| 439 | # CONFIG_MTD_ABSENT is not set | 419 | # CONFIG_MTD_ABSENT is not set |
| 440 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
| 441 | 420 | ||
| 442 | # | 421 | # |
| 443 | # Mapping drivers for chip access | 422 | # Mapping drivers for chip access |
| 444 | # | 423 | # |
| 445 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 424 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
| 446 | # CONFIG_MTD_PHYSMAP is not set | 425 | # CONFIG_MTD_PHYSMAP is not set |
| 426 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
| 447 | # CONFIG_MTD_PLATRAM is not set | 427 | # CONFIG_MTD_PLATRAM is not set |
| 448 | 428 | ||
| 449 | # | 429 | # |
| @@ -461,31 +441,15 @@ CONFIG_MTD_ROM=y | |||
| 461 | # CONFIG_MTD_DOC2000 is not set | 441 | # CONFIG_MTD_DOC2000 is not set |
| 462 | # CONFIG_MTD_DOC2001 is not set | 442 | # CONFIG_MTD_DOC2001 is not set |
| 463 | # CONFIG_MTD_DOC2001PLUS is not set | 443 | # CONFIG_MTD_DOC2001PLUS is not set |
| 464 | |||
| 465 | # | ||
| 466 | # NAND Flash Device Drivers | ||
| 467 | # | ||
| 468 | # CONFIG_MTD_NAND is not set | 444 | # CONFIG_MTD_NAND is not set |
| 469 | |||
| 470 | # | ||
| 471 | # OneNAND Flash Device Drivers | ||
| 472 | # | ||
| 473 | # CONFIG_MTD_ONENAND is not set | 445 | # CONFIG_MTD_ONENAND is not set |
| 474 | 446 | ||
| 475 | # | 447 | # |
| 476 | # Parallel port support | 448 | # UBI - Unsorted block images |
| 477 | # | 449 | # |
| 450 | # CONFIG_MTD_UBI is not set | ||
| 478 | # CONFIG_PARPORT is not set | 451 | # CONFIG_PARPORT is not set |
| 479 | 452 | CONFIG_BLK_DEV=y | |
| 480 | # | ||
| 481 | # Plug and Play support | ||
| 482 | # | ||
| 483 | # CONFIG_PNPACPI is not set | ||
| 484 | |||
| 485 | # | ||
| 486 | # Block devices | ||
| 487 | # | ||
| 488 | # CONFIG_BLK_CPQ_DA is not set | ||
| 489 | # CONFIG_BLK_CPQ_CISS_DA is not set | 453 | # CONFIG_BLK_CPQ_CISS_DA is not set |
| 490 | # CONFIG_BLK_DEV_DAC960 is not set | 454 | # CONFIG_BLK_DEV_DAC960 is not set |
| 491 | # CONFIG_BLK_DEV_COW_COMMON is not set | 455 | # CONFIG_BLK_DEV_COW_COMMON is not set |
| @@ -497,15 +461,12 @@ CONFIG_BLK_DEV_LOOP=y | |||
| 497 | # CONFIG_BLK_DEV_RAM is not set | 461 | # CONFIG_BLK_DEV_RAM is not set |
| 498 | # CONFIG_CDROM_PKTCDVD is not set | 462 | # CONFIG_CDROM_PKTCDVD is not set |
| 499 | # CONFIG_ATA_OVER_ETH is not set | 463 | # CONFIG_ATA_OVER_ETH is not set |
| 500 | 464 | CONFIG_MISC_DEVICES=y | |
| 501 | # | 465 | # CONFIG_PHANTOM is not set |
| 502 | # Misc devices | 466 | # CONFIG_EEPROM_93CX6 is not set |
| 503 | # | ||
| 504 | # CONFIG_SGI_IOC4 is not set | 467 | # CONFIG_SGI_IOC4 is not set |
| 505 | 468 | # CONFIG_ENCLOSURE_SERVICES is not set | |
| 506 | # | 469 | CONFIG_HAVE_IDE=y |
| 507 | # ATA/ATAPI/MFM/RLL support | ||
| 508 | # | ||
| 509 | # CONFIG_IDE is not set | 470 | # CONFIG_IDE is not set |
| 510 | 471 | ||
| 511 | # | 472 | # |
| @@ -513,6 +474,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
| 513 | # | 474 | # |
| 514 | # CONFIG_RAID_ATTRS is not set | 475 | # CONFIG_RAID_ATTRS is not set |
| 515 | CONFIG_SCSI=y | 476 | CONFIG_SCSI=y |
| 477 | CONFIG_SCSI_DMA=y | ||
| 516 | # CONFIG_SCSI_NETLINK is not set | 478 | # CONFIG_SCSI_NETLINK is not set |
| 517 | CONFIG_SCSI_PROC_FS=y | 479 | CONFIG_SCSI_PROC_FS=y |
| 518 | 480 | ||
| @@ -533,6 +495,7 @@ CONFIG_CHR_DEV_SG=y | |||
| 533 | # CONFIG_SCSI_CONSTANTS is not set | 495 | # CONFIG_SCSI_CONSTANTS is not set |
| 534 | # CONFIG_SCSI_LOGGING is not set | 496 | # CONFIG_SCSI_LOGGING is not set |
| 535 | # CONFIG_SCSI_SCAN_ASYNC is not set | 497 | # CONFIG_SCSI_SCAN_ASYNC is not set |
| 498 | CONFIG_SCSI_WAIT_SCAN=m | ||
| 536 | 499 | ||
| 537 | # | 500 | # |
| 538 | # SCSI Transports | 501 | # SCSI Transports |
| @@ -540,12 +503,9 @@ CONFIG_CHR_DEV_SG=y | |||
| 540 | # CONFIG_SCSI_SPI_ATTRS is not set | 503 | # CONFIG_SCSI_SPI_ATTRS is not set |
| 541 | # CONFIG_SCSI_FC_ATTRS is not set | 504 | # CONFIG_SCSI_FC_ATTRS is not set |
| 542 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 505 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
| 543 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 544 | # CONFIG_SCSI_SAS_LIBSAS is not set | 506 | # CONFIG_SCSI_SAS_LIBSAS is not set |
| 545 | 507 | # CONFIG_SCSI_SRP_ATTRS is not set | |
| 546 | # | 508 | CONFIG_SCSI_LOWLEVEL=y |
| 547 | # SCSI low-level drivers | ||
| 548 | # | ||
| 549 | # CONFIG_ISCSI_TCP is not set | 509 | # CONFIG_ISCSI_TCP is not set |
| 550 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 510 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
| 551 | # CONFIG_SCSI_3W_9XXX is not set | 511 | # CONFIG_SCSI_3W_9XXX is not set |
| @@ -555,7 +515,6 @@ CONFIG_CHR_DEV_SG=y | |||
| 555 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 515 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
| 556 | # CONFIG_SCSI_AIC79XX is not set | 516 | # CONFIG_SCSI_AIC79XX is not set |
| 557 | # CONFIG_SCSI_AIC94XX is not set | 517 | # CONFIG_SCSI_AIC94XX is not set |
| 558 | # CONFIG_SCSI_DPT_I2O is not set | ||
| 559 | # CONFIG_SCSI_ARCMSR is not set | 518 | # CONFIG_SCSI_ARCMSR is not set |
| 560 | # CONFIG_MEGARAID_NEWGEN is not set | 519 | # CONFIG_MEGARAID_NEWGEN is not set |
| 561 | # CONFIG_MEGARAID_LEGACY is not set | 520 | # CONFIG_MEGARAID_LEGACY is not set |
| @@ -566,6 +525,7 @@ CONFIG_CHR_DEV_SG=y | |||
| 566 | # CONFIG_SCSI_IPS is not set | 525 | # CONFIG_SCSI_IPS is not set |
| 567 | # CONFIG_SCSI_INITIO is not set | 526 | # CONFIG_SCSI_INITIO is not set |
| 568 | # CONFIG_SCSI_INIA100 is not set | 527 | # CONFIG_SCSI_INIA100 is not set |
| 528 | # CONFIG_SCSI_MVSAS is not set | ||
| 569 | # CONFIG_SCSI_STEX is not set | 529 | # CONFIG_SCSI_STEX is not set |
| 570 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 530 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
| 571 | # CONFIG_SCSI_IPR is not set | 531 | # CONFIG_SCSI_IPR is not set |
| @@ -577,10 +537,6 @@ CONFIG_CHR_DEV_SG=y | |||
| 577 | # CONFIG_SCSI_NSP32 is not set | 537 | # CONFIG_SCSI_NSP32 is not set |
| 578 | # CONFIG_SCSI_DEBUG is not set | 538 | # CONFIG_SCSI_DEBUG is not set |
| 579 | # CONFIG_SCSI_SRP is not set | 539 | # CONFIG_SCSI_SRP is not set |
| 580 | |||
| 581 | # | ||
| 582 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
| 583 | # | ||
| 584 | CONFIG_ATA=y | 540 | CONFIG_ATA=y |
| 585 | # CONFIG_ATA_NONSTANDARD is not set | 541 | # CONFIG_ATA_NONSTANDARD is not set |
| 586 | # CONFIG_SATA_AHCI is not set | 542 | # CONFIG_SATA_AHCI is not set |
| @@ -597,62 +553,48 @@ CONFIG_SATA_SIL=y | |||
| 597 | # CONFIG_SATA_VIA is not set | 553 | # CONFIG_SATA_VIA is not set |
| 598 | # CONFIG_SATA_VITESSE is not set | 554 | # CONFIG_SATA_VITESSE is not set |
| 599 | # CONFIG_PATA_AMD is not set | 555 | # CONFIG_PATA_AMD is not set |
| 556 | # CONFIG_PATA_ARTOP is not set | ||
| 557 | # CONFIG_PATA_ATIIXP is not set | ||
| 558 | # CONFIG_PATA_CMD64X is not set | ||
| 600 | # CONFIG_PATA_CS5520 is not set | 559 | # CONFIG_PATA_CS5520 is not set |
| 601 | # CONFIG_PATA_EFAR is not set | 560 | # CONFIG_PATA_EFAR is not set |
| 602 | # CONFIG_ATA_GENERIC is not set | 561 | # CONFIG_ATA_GENERIC is not set |
| 562 | # CONFIG_PATA_HPT366 is not set | ||
| 603 | # CONFIG_PATA_HPT3X3 is not set | 563 | # CONFIG_PATA_HPT3X3 is not set |
| 564 | # CONFIG_PATA_IT821X is not set | ||
| 604 | # CONFIG_PATA_JMICRON is not set | 565 | # CONFIG_PATA_JMICRON is not set |
| 605 | # CONFIG_PATA_TRIFLEX is not set | 566 | # CONFIG_PATA_TRIFLEX is not set |
| 606 | # CONFIG_PATA_MARVELL is not set | 567 | # CONFIG_PATA_MARVELL is not set |
| 607 | # CONFIG_PATA_MPIIX is not set | 568 | # CONFIG_PATA_MPIIX is not set |
| 569 | # CONFIG_PATA_OLDPIIX is not set | ||
| 608 | # CONFIG_PATA_NETCELL is not set | 570 | # CONFIG_PATA_NETCELL is not set |
| 609 | # CONFIG_PATA_RZ1000 is not set | 571 | # CONFIG_PATA_RZ1000 is not set |
| 572 | # CONFIG_PATA_SERVERWORKS is not set | ||
| 610 | # CONFIG_PATA_PDC2027X is not set | 573 | # CONFIG_PATA_PDC2027X is not set |
| 611 | # CONFIG_PATA_SIL680 is not set | 574 | # CONFIG_PATA_SIL680 is not set |
| 612 | # CONFIG_PATA_VIA is not set | 575 | # CONFIG_PATA_VIA is not set |
| 613 | # CONFIG_PATA_WINBOND is not set | 576 | # CONFIG_PATA_WINBOND is not set |
| 614 | # CONFIG_PATA_PLATFORM is not set | 577 | # CONFIG_PATA_PLATFORM is not set |
| 615 | |||
| 616 | # | ||
| 617 | # Multi-device support (RAID and LVM) | ||
| 618 | # | ||
| 619 | # CONFIG_MD is not set | 578 | # CONFIG_MD is not set |
| 620 | |||
| 621 | # | ||
| 622 | # Fusion MPT device support | ||
| 623 | # | ||
| 624 | # CONFIG_FUSION is not set | 579 | # CONFIG_FUSION is not set |
| 625 | # CONFIG_FUSION_SPI is not set | ||
| 626 | # CONFIG_FUSION_FC is not set | ||
| 627 | # CONFIG_FUSION_SAS is not set | ||
| 628 | 580 | ||
| 629 | # | 581 | # |
| 630 | # IEEE 1394 (FireWire) support | 582 | # IEEE 1394 (FireWire) support |
| 631 | # | 583 | # |
| 632 | # CONFIG_IEEE1394 is not set | ||
| 633 | 584 | ||
| 634 | # | 585 | # |
| 635 | # I2O device support | 586 | # An alternative FireWire stack is available with EXPERIMENTAL=y |
| 636 | # | 587 | # |
| 588 | # CONFIG_IEEE1394 is not set | ||
| 637 | # CONFIG_I2O is not set | 589 | # CONFIG_I2O is not set |
| 638 | |||
| 639 | # | ||
| 640 | # Network device support | ||
| 641 | # | ||
| 642 | CONFIG_NETDEVICES=y | 590 | CONFIG_NETDEVICES=y |
| 591 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 643 | # CONFIG_DUMMY is not set | 592 | # CONFIG_DUMMY is not set |
| 644 | # CONFIG_BONDING is not set | 593 | # CONFIG_BONDING is not set |
| 645 | # CONFIG_EQUALIZER is not set | 594 | # CONFIG_EQUALIZER is not set |
| 646 | # CONFIG_TUN is not set | 595 | # CONFIG_TUN is not set |
| 647 | 596 | # CONFIG_VETH is not set | |
| 648 | # | ||
| 649 | # ARCnet devices | ||
| 650 | # | ||
| 651 | # CONFIG_ARCNET is not set | 597 | # CONFIG_ARCNET is not set |
| 652 | |||
| 653 | # | ||
| 654 | # PHY device support | ||
| 655 | # | ||
| 656 | CONFIG_PHYLIB=y | 598 | CONFIG_PHYLIB=y |
| 657 | 599 | ||
| 658 | # | 600 | # |
| @@ -666,85 +608,59 @@ CONFIG_PHYLIB=y | |||
| 666 | # CONFIG_VITESSE_PHY is not set | 608 | # CONFIG_VITESSE_PHY is not set |
| 667 | CONFIG_SMSC_PHY=y | 609 | CONFIG_SMSC_PHY=y |
| 668 | # CONFIG_BROADCOM_PHY is not set | 610 | # CONFIG_BROADCOM_PHY is not set |
| 611 | # CONFIG_ICPLUS_PHY is not set | ||
| 612 | # CONFIG_REALTEK_PHY is not set | ||
| 669 | # CONFIG_FIXED_PHY is not set | 613 | # CONFIG_FIXED_PHY is not set |
| 670 | 614 | # CONFIG_MDIO_BITBANG is not set | |
| 671 | # | ||
| 672 | # Ethernet (10 or 100Mbit) | ||
| 673 | # | ||
| 674 | CONFIG_NET_ETHERNET=y | 615 | CONFIG_NET_ETHERNET=y |
| 675 | CONFIG_MII=y | 616 | CONFIG_MII=y |
| 617 | # CONFIG_AX88796 is not set | ||
| 676 | # CONFIG_STNIC is not set | 618 | # CONFIG_STNIC is not set |
| 677 | # CONFIG_HAPPYMEAL is not set | 619 | # CONFIG_HAPPYMEAL is not set |
| 678 | # CONFIG_SUNGEM is not set | 620 | # CONFIG_SUNGEM is not set |
| 679 | # CONFIG_CASSINI is not set | 621 | # CONFIG_CASSINI is not set |
| 680 | # CONFIG_NET_VENDOR_3COM is not set | 622 | # CONFIG_NET_VENDOR_3COM is not set |
| 681 | CONFIG_SMC91X=y | 623 | CONFIG_SMC91X=y |
| 682 | |||
| 683 | # | ||
| 684 | # Tulip family network device support | ||
| 685 | # | ||
| 686 | # CONFIG_NET_TULIP is not set | 624 | # CONFIG_NET_TULIP is not set |
| 687 | # CONFIG_HP100 is not set | 625 | # CONFIG_HP100 is not set |
| 626 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
| 627 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
| 628 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
| 629 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
| 688 | CONFIG_NET_PCI=y | 630 | CONFIG_NET_PCI=y |
| 689 | # CONFIG_PCNET32 is not set | 631 | # CONFIG_PCNET32 is not set |
| 690 | # CONFIG_AMD8111_ETH is not set | 632 | # CONFIG_AMD8111_ETH is not set |
| 691 | # CONFIG_ADAPTEC_STARFIRE is not set | 633 | # CONFIG_ADAPTEC_STARFIRE is not set |
| 692 | # CONFIG_B44 is not set | 634 | # CONFIG_B44 is not set |
| 693 | # CONFIG_FORCEDETH is not set | 635 | # CONFIG_FORCEDETH is not set |
| 694 | # CONFIG_DGRS is not set | ||
| 695 | # CONFIG_EEPRO100 is not set | 636 | # CONFIG_EEPRO100 is not set |
| 696 | # CONFIG_E100 is not set | 637 | # CONFIG_E100 is not set |
| 697 | # CONFIG_FEALNX is not set | 638 | # CONFIG_FEALNX is not set |
| 698 | # CONFIG_NATSEMI is not set | 639 | # CONFIG_NATSEMI is not set |
| 699 | # CONFIG_NE2K_PCI is not set | 640 | # CONFIG_NE2K_PCI is not set |
| 700 | # CONFIG_8139TOO is not set | 641 | # CONFIG_8139TOO is not set |
| 642 | # CONFIG_R6040 is not set | ||
| 701 | # CONFIG_SIS900 is not set | 643 | # CONFIG_SIS900 is not set |
| 702 | # CONFIG_EPIC100 is not set | 644 | # CONFIG_EPIC100 is not set |
| 703 | # CONFIG_SUNDANCE is not set | 645 | # CONFIG_SUNDANCE is not set |
| 704 | # CONFIG_TLAN is not set | 646 | # CONFIG_TLAN is not set |
| 705 | # CONFIG_VIA_RHINE is not set | 647 | # CONFIG_VIA_RHINE is not set |
| 706 | 648 | # CONFIG_NETDEV_1000 is not set | |
| 707 | # | 649 | # CONFIG_NETDEV_10000 is not set |
| 708 | # Ethernet (1000 Mbit) | ||
| 709 | # | ||
| 710 | # CONFIG_ACENIC is not set | ||
| 711 | # CONFIG_DL2K is not set | ||
| 712 | # CONFIG_E1000 is not set | ||
| 713 | # CONFIG_NS83820 is not set | ||
| 714 | # CONFIG_HAMACHI is not set | ||
| 715 | # CONFIG_R8169 is not set | ||
| 716 | # CONFIG_SIS190 is not set | ||
| 717 | # CONFIG_SKGE is not set | ||
| 718 | # CONFIG_SKY2 is not set | ||
| 719 | # CONFIG_SK98LIN is not set | ||
| 720 | # CONFIG_VIA_VELOCITY is not set | ||
| 721 | # CONFIG_TIGON3 is not set | ||
| 722 | # CONFIG_BNX2 is not set | ||
| 723 | # CONFIG_QLA3XXX is not set | ||
| 724 | |||
| 725 | # | ||
| 726 | # Ethernet (10000 Mbit) | ||
| 727 | # | ||
| 728 | # CONFIG_CHELSIO_T1 is not set | ||
| 729 | # CONFIG_CHELSIO_T3 is not set | ||
| 730 | # CONFIG_IXGB is not set | ||
| 731 | # CONFIG_S2IO is not set | ||
| 732 | # CONFIG_MYRI10GE is not set | ||
| 733 | # CONFIG_NETXEN_NIC is not set | ||
| 734 | |||
| 735 | # | ||
| 736 | # Token Ring devices | ||
| 737 | # | ||
| 738 | # CONFIG_TR is not set | 650 | # CONFIG_TR is not set |
| 739 | 651 | ||
| 740 | # | 652 | # |
| 741 | # Wireless LAN (non-hamradio) | 653 | # Wireless LAN |
| 742 | # | 654 | # |
| 743 | # CONFIG_NET_RADIO is not set | 655 | # CONFIG_WLAN_PRE80211 is not set |
| 656 | # CONFIG_WLAN_80211 is not set | ||
| 744 | 657 | ||
| 745 | # | 658 | # |
| 746 | # Wan interfaces | 659 | # USB Network Adapters |
| 747 | # | 660 | # |
| 661 | # CONFIG_USB_KAWETH is not set | ||
| 662 | # CONFIG_USB_PEGASUS is not set | ||
| 663 | # CONFIG_USB_USBNET is not set | ||
| 748 | # CONFIG_WAN is not set | 664 | # CONFIG_WAN is not set |
| 749 | # CONFIG_FDDI is not set | 665 | # CONFIG_FDDI is not set |
| 750 | # CONFIG_PPP is not set | 666 | # CONFIG_PPP is not set |
| @@ -752,15 +668,7 @@ CONFIG_NET_PCI=y | |||
| 752 | # CONFIG_NET_FC is not set | 668 | # CONFIG_NET_FC is not set |
| 753 | # CONFIG_NETPOLL is not set | 669 | # CONFIG_NETPOLL is not set |
| 754 | # CONFIG_NET_POLL_CONTROLLER is not set | 670 | # CONFIG_NET_POLL_CONTROLLER is not set |
| 755 | |||
| 756 | # | ||
| 757 | # ISDN subsystem | ||
| 758 | # | ||
| 759 | # CONFIG_ISDN is not set | 671 | # CONFIG_ISDN is not set |
| 760 | |||
| 761 | # | ||
| 762 | # Telephony Support | ||
| 763 | # | ||
| 764 | # CONFIG_PHONE is not set | 672 | # CONFIG_PHONE is not set |
| 765 | 673 | ||
| 766 | # | 674 | # |
| @@ -768,6 +676,7 @@ CONFIG_NET_PCI=y | |||
| 768 | # | 676 | # |
| 769 | CONFIG_INPUT=y | 677 | CONFIG_INPUT=y |
| 770 | # CONFIG_INPUT_FF_MEMLESS is not set | 678 | # CONFIG_INPUT_FF_MEMLESS is not set |
| 679 | # CONFIG_INPUT_POLLDEV is not set | ||
| 771 | 680 | ||
| 772 | # | 681 | # |
| 773 | # Userland interfaces | 682 | # Userland interfaces |
| @@ -777,7 +686,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
| 777 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 686 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
| 778 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 687 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
| 779 | # CONFIG_INPUT_JOYDEV is not set | 688 | # CONFIG_INPUT_JOYDEV is not set |
| 780 | # CONFIG_INPUT_TSDEV is not set | ||
| 781 | # CONFIG_INPUT_EVDEV is not set | 689 | # CONFIG_INPUT_EVDEV is not set |
| 782 | # CONFIG_INPUT_EVBUG is not set | 690 | # CONFIG_INPUT_EVBUG is not set |
| 783 | 691 | ||
| @@ -787,6 +695,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
| 787 | # CONFIG_INPUT_KEYBOARD is not set | 695 | # CONFIG_INPUT_KEYBOARD is not set |
| 788 | # CONFIG_INPUT_MOUSE is not set | 696 | # CONFIG_INPUT_MOUSE is not set |
| 789 | # CONFIG_INPUT_JOYSTICK is not set | 697 | # CONFIG_INPUT_JOYSTICK is not set |
| 698 | # CONFIG_INPUT_TABLET is not set | ||
| 790 | # CONFIG_INPUT_TOUCHSCREEN is not set | 699 | # CONFIG_INPUT_TOUCHSCREEN is not set |
| 791 | # CONFIG_INPUT_MISC is not set | 700 | # CONFIG_INPUT_MISC is not set |
| 792 | 701 | ||
| @@ -821,31 +730,12 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
| 821 | # CONFIG_SERIAL_JSM is not set | 730 | # CONFIG_SERIAL_JSM is not set |
| 822 | CONFIG_UNIX98_PTYS=y | 731 | CONFIG_UNIX98_PTYS=y |
| 823 | # CONFIG_LEGACY_PTYS is not set | 732 | # CONFIG_LEGACY_PTYS is not set |
| 824 | |||
| 825 | # | ||
| 826 | # IPMI | ||
| 827 | # | ||
| 828 | # CONFIG_IPMI_HANDLER is not set | 733 | # CONFIG_IPMI_HANDLER is not set |
| 829 | |||
| 830 | # | ||
| 831 | # Watchdog Cards | ||
| 832 | # | ||
| 833 | # CONFIG_WATCHDOG is not set | ||
| 834 | # CONFIG_HW_RANDOM is not set | 734 | # CONFIG_HW_RANDOM is not set |
| 835 | # CONFIG_GEN_RTC is not set | ||
| 836 | # CONFIG_DTLK is not set | ||
| 837 | # CONFIG_R3964 is not set | 735 | # CONFIG_R3964 is not set |
| 838 | # CONFIG_APPLICOM is not set | 736 | # CONFIG_APPLICOM is not set |
| 839 | # CONFIG_DRM is not set | ||
| 840 | # CONFIG_RAW_DRIVER is not set | 737 | # CONFIG_RAW_DRIVER is not set |
| 841 | 738 | CONFIG_DEVPORT=y | |
| 842 | # | ||
| 843 | # TPM devices | ||
| 844 | # | ||
| 845 | |||
| 846 | # | ||
| 847 | # I2C support | ||
| 848 | # | ||
| 849 | # CONFIG_I2C is not set | 739 | # CONFIG_I2C is not set |
| 850 | 740 | ||
| 851 | # | 741 | # |
| @@ -853,18 +743,27 @@ CONFIG_UNIX98_PTYS=y | |||
| 853 | # | 743 | # |
| 854 | # CONFIG_SPI is not set | 744 | # CONFIG_SPI is not set |
| 855 | # CONFIG_SPI_MASTER is not set | 745 | # CONFIG_SPI_MASTER is not set |
| 856 | |||
| 857 | # | ||
| 858 | # Dallas's 1-wire bus | ||
| 859 | # | ||
| 860 | # CONFIG_W1 is not set | 746 | # CONFIG_W1 is not set |
| 861 | 747 | # CONFIG_POWER_SUPPLY is not set | |
| 862 | # | ||
| 863 | # Hardware Monitoring support | ||
| 864 | # | ||
| 865 | CONFIG_HWMON=y | 748 | CONFIG_HWMON=y |
| 866 | # CONFIG_HWMON_VID is not set | 749 | # CONFIG_HWMON_VID is not set |
| 750 | # CONFIG_SENSORS_IT87 is not set | ||
| 751 | # CONFIG_SENSORS_PC87360 is not set | ||
| 752 | # CONFIG_SENSORS_SIS5595 is not set | ||
| 753 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
| 754 | # CONFIG_SENSORS_VIA686A is not set | ||
| 755 | # CONFIG_SENSORS_VT8231 is not set | ||
| 756 | # CONFIG_SENSORS_W83627HF is not set | ||
| 757 | # CONFIG_SENSORS_W83627EHF is not set | ||
| 867 | # CONFIG_HWMON_DEBUG_CHIP is not set | 758 | # CONFIG_HWMON_DEBUG_CHIP is not set |
| 759 | CONFIG_THERMAL=y | ||
| 760 | # CONFIG_WATCHDOG is not set | ||
| 761 | |||
| 762 | # | ||
| 763 | # Sonics Silicon Backplane | ||
| 764 | # | ||
| 765 | CONFIG_SSB_POSSIBLE=y | ||
| 766 | # CONFIG_SSB is not set | ||
| 868 | 767 | ||
| 869 | # | 768 | # |
| 870 | # Multifunction device drivers | 769 | # Multifunction device drivers |
| @@ -875,23 +774,27 @@ CONFIG_HWMON=y | |||
| 875 | # Multimedia devices | 774 | # Multimedia devices |
| 876 | # | 775 | # |
| 877 | # CONFIG_VIDEO_DEV is not set | 776 | # CONFIG_VIDEO_DEV is not set |
| 878 | 777 | # CONFIG_DVB_CORE is not set | |
| 879 | # | 778 | # CONFIG_DAB is not set |
| 880 | # Digital Video Broadcasting Devices | ||
| 881 | # | ||
| 882 | # CONFIG_DVB is not set | ||
| 883 | # CONFIG_USB_DABUSB is not set | ||
| 884 | 779 | ||
| 885 | # | 780 | # |
| 886 | # Graphics support | 781 | # Graphics support |
| 887 | # | 782 | # |
| 888 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 783 | # CONFIG_DRM is not set |
| 784 | # CONFIG_VGASTATE is not set | ||
| 785 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
| 889 | CONFIG_FB=y | 786 | CONFIG_FB=y |
| 890 | CONFIG_FIRMWARE_EDID=y | 787 | CONFIG_FIRMWARE_EDID=y |
| 891 | # CONFIG_FB_DDC is not set | 788 | # CONFIG_FB_DDC is not set |
| 892 | # CONFIG_FB_CFB_FILLRECT is not set | 789 | # CONFIG_FB_CFB_FILLRECT is not set |
| 893 | # CONFIG_FB_CFB_COPYAREA is not set | 790 | # CONFIG_FB_CFB_COPYAREA is not set |
| 894 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 791 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
| 792 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
| 793 | # CONFIG_FB_SYS_FILLRECT is not set | ||
| 794 | # CONFIG_FB_SYS_COPYAREA is not set | ||
| 795 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
| 796 | # CONFIG_FB_SYS_FOPS is not set | ||
| 797 | CONFIG_FB_DEFERRED_IO=y | ||
| 895 | # CONFIG_FB_SVGALIB is not set | 798 | # CONFIG_FB_SVGALIB is not set |
| 896 | # CONFIG_FB_MACMODES is not set | 799 | # CONFIG_FB_MACMODES is not set |
| 897 | # CONFIG_FB_BACKLIGHT is not set | 800 | # CONFIG_FB_BACKLIGHT is not set |
| @@ -899,14 +802,13 @@ CONFIG_FIRMWARE_EDID=y | |||
| 899 | # CONFIG_FB_TILEBLITTING is not set | 802 | # CONFIG_FB_TILEBLITTING is not set |
| 900 | 803 | ||
| 901 | # | 804 | # |
| 902 | # Frambuffer hardware drivers | 805 | # Frame buffer hardware drivers |
| 903 | # | 806 | # |
| 904 | # CONFIG_FB_CIRRUS is not set | 807 | # CONFIG_FB_CIRRUS is not set |
| 905 | # CONFIG_FB_PM2 is not set | 808 | # CONFIG_FB_PM2 is not set |
| 906 | # CONFIG_FB_CYBER2000 is not set | 809 | # CONFIG_FB_CYBER2000 is not set |
| 907 | # CONFIG_FB_ASILIANT is not set | 810 | # CONFIG_FB_ASILIANT is not set |
| 908 | # CONFIG_FB_IMSTT is not set | 811 | # CONFIG_FB_IMSTT is not set |
| 909 | # CONFIG_FB_EPSON1355 is not set | ||
| 910 | # CONFIG_FB_S1D13XXX is not set | 812 | # CONFIG_FB_S1D13XXX is not set |
| 911 | # CONFIG_FB_NVIDIA is not set | 813 | # CONFIG_FB_NVIDIA is not set |
| 912 | # CONFIG_FB_RIVA is not set | 814 | # CONFIG_FB_RIVA is not set |
| @@ -920,22 +822,27 @@ CONFIG_FIRMWARE_EDID=y | |||
| 920 | # CONFIG_FB_KYRO is not set | 822 | # CONFIG_FB_KYRO is not set |
| 921 | # CONFIG_FB_3DFX is not set | 823 | # CONFIG_FB_3DFX is not set |
| 922 | # CONFIG_FB_VOODOO1 is not set | 824 | # CONFIG_FB_VOODOO1 is not set |
| 825 | # CONFIG_FB_VT8623 is not set | ||
| 923 | # CONFIG_FB_TRIDENT is not set | 826 | # CONFIG_FB_TRIDENT is not set |
| 827 | # CONFIG_FB_ARK is not set | ||
| 924 | # CONFIG_FB_VIRTUAL is not set | 828 | # CONFIG_FB_VIRTUAL is not set |
| 829 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 830 | |||
| 831 | # | ||
| 832 | # Display device support | ||
| 833 | # | ||
| 834 | # CONFIG_DISPLAY_SUPPORT is not set | ||
| 925 | 835 | ||
| 926 | # | 836 | # |
| 927 | # Console display driver support | 837 | # Console display driver support |
| 928 | # | 838 | # |
| 929 | CONFIG_DUMMY_CONSOLE=y | 839 | CONFIG_DUMMY_CONSOLE=y |
| 930 | CONFIG_FRAMEBUFFER_CONSOLE=y | 840 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 841 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
| 931 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | 842 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set |
| 932 | # CONFIG_FONTS is not set | 843 | # CONFIG_FONTS is not set |
| 933 | CONFIG_FONT_8x8=y | 844 | CONFIG_FONT_8x8=y |
| 934 | CONFIG_FONT_8x16=y | 845 | CONFIG_FONT_8x16=y |
| 935 | |||
| 936 | # | ||
| 937 | # Logo configuration | ||
| 938 | # | ||
| 939 | CONFIG_LOGO=y | 846 | CONFIG_LOGO=y |
| 940 | # CONFIG_LOGO_LINUX_MONO is not set | 847 | # CONFIG_LOGO_LINUX_MONO is not set |
| 941 | # CONFIG_LOGO_LINUX_VGA16 is not set | 848 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| @@ -958,39 +865,38 @@ CONFIG_SOUND=y | |||
| 958 | # Open Sound System | 865 | # Open Sound System |
| 959 | # | 866 | # |
| 960 | CONFIG_SOUND_PRIME=y | 867 | CONFIG_SOUND_PRIME=y |
| 961 | # CONFIG_OBSOLETE_OSS is not set | ||
| 962 | # CONFIG_SOUND_BT878 is not set | ||
| 963 | # CONFIG_SOUND_ICH is not set | ||
| 964 | # CONFIG_SOUND_TRIDENT is not set | 868 | # CONFIG_SOUND_TRIDENT is not set |
| 965 | # CONFIG_SOUND_MSNDCLAS is not set | 869 | # CONFIG_SOUND_MSNDCLAS is not set |
| 966 | # CONFIG_SOUND_MSNDPIN is not set | 870 | # CONFIG_SOUND_MSNDPIN is not set |
| 967 | # CONFIG_SOUND_VIA82CXXX is not set | 871 | CONFIG_HID_SUPPORT=y |
| 968 | |||
| 969 | # | ||
| 970 | # HID Devices | ||
| 971 | # | ||
| 972 | CONFIG_HID=y | 872 | CONFIG_HID=y |
| 973 | # CONFIG_HID_DEBUG is not set | 873 | # CONFIG_HID_DEBUG is not set |
| 874 | # CONFIG_HIDRAW is not set | ||
| 974 | 875 | ||
| 975 | # | 876 | # |
| 976 | # USB support | 877 | # USB Input Devices |
| 977 | # | 878 | # |
| 879 | CONFIG_USB_HID=y | ||
| 880 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
| 881 | # CONFIG_USB_HIDDEV is not set | ||
| 882 | CONFIG_USB_SUPPORT=y | ||
| 978 | CONFIG_USB_ARCH_HAS_HCD=y | 883 | CONFIG_USB_ARCH_HAS_HCD=y |
| 979 | CONFIG_USB_ARCH_HAS_OHCI=y | 884 | CONFIG_USB_ARCH_HAS_OHCI=y |
| 980 | CONFIG_USB_ARCH_HAS_EHCI=y | 885 | CONFIG_USB_ARCH_HAS_EHCI=y |
| 981 | CONFIG_USB=y | 886 | CONFIG_USB=y |
| 982 | CONFIG_USB_DEBUG=y | 887 | # CONFIG_USB_DEBUG is not set |
| 888 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
| 983 | 889 | ||
| 984 | # | 890 | # |
| 985 | # Miscellaneous USB options | 891 | # Miscellaneous USB options |
| 986 | # | 892 | # |
| 987 | CONFIG_USB_DEVICEFS=y | 893 | CONFIG_USB_DEVICEFS=y |
| 894 | # CONFIG_USB_DEVICE_CLASS is not set | ||
| 988 | 895 | ||
| 989 | # | 896 | # |
| 990 | # USB Host Controller Drivers | 897 | # USB Host Controller Drivers |
| 991 | # | 898 | # |
| 992 | CONFIG_USB_EHCI_HCD=y | 899 | CONFIG_USB_EHCI_HCD=y |
| 993 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
| 994 | # CONFIG_USB_ISP116X_HCD is not set | 900 | # CONFIG_USB_ISP116X_HCD is not set |
| 995 | CONFIG_USB_OHCI_HCD=y | 901 | CONFIG_USB_OHCI_HCD=y |
| 996 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 902 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
| @@ -998,6 +904,7 @@ CONFIG_USB_OHCI_HCD=y | |||
| 998 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 904 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
| 999 | # CONFIG_USB_UHCI_HCD is not set | 905 | # CONFIG_USB_UHCI_HCD is not set |
| 1000 | # CONFIG_USB_SL811_HCD is not set | 906 | # CONFIG_USB_SL811_HCD is not set |
| 907 | # CONFIG_USB_R8A66597_HCD is not set | ||
| 1001 | 908 | ||
| 1002 | # | 909 | # |
| 1003 | # USB Device Class drivers | 910 | # USB Device Class drivers |
| @@ -1015,49 +922,20 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
| 1015 | CONFIG_USB_STORAGE=y | 922 | CONFIG_USB_STORAGE=y |
| 1016 | # CONFIG_USB_STORAGE_DEBUG is not set | 923 | # CONFIG_USB_STORAGE_DEBUG is not set |
| 1017 | # CONFIG_USB_STORAGE_FREECOM is not set | 924 | # CONFIG_USB_STORAGE_FREECOM is not set |
| 925 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
| 1018 | # CONFIG_USB_STORAGE_DPCM is not set | 926 | # CONFIG_USB_STORAGE_DPCM is not set |
| 1019 | # CONFIG_USB_STORAGE_KARMA is not set | 927 | # CONFIG_USB_STORAGE_KARMA is not set |
| 1020 | # CONFIG_USB_LIBUSUAL is not set | 928 | # CONFIG_USB_LIBUSUAL is not set |
| 1021 | 929 | ||
| 1022 | # | 930 | # |
| 1023 | # USB Input Devices | ||
| 1024 | # | ||
| 1025 | CONFIG_USB_HID=y | ||
| 1026 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
| 1027 | # CONFIG_USB_HIDDEV is not set | ||
| 1028 | # CONFIG_USB_AIPTEK is not set | ||
| 1029 | # CONFIG_USB_WACOM is not set | ||
| 1030 | # CONFIG_USB_ACECAD is not set | ||
| 1031 | # CONFIG_USB_KBTAB is not set | ||
| 1032 | # CONFIG_USB_POWERMATE is not set | ||
| 1033 | # CONFIG_USB_TOUCHSCREEN is not set | ||
| 1034 | # CONFIG_USB_XPAD is not set | ||
| 1035 | # CONFIG_USB_ATI_REMOTE is not set | ||
| 1036 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
| 1037 | # CONFIG_USB_APPLETOUCH is not set | ||
| 1038 | # CONFIG_USB_GTCO is not set | ||
| 1039 | |||
| 1040 | # | ||
| 1041 | # USB Imaging devices | 931 | # USB Imaging devices |
| 1042 | # | 932 | # |
| 1043 | # CONFIG_USB_MICROTEK is not set | 933 | # CONFIG_USB_MICROTEK is not set |
| 1044 | |||
| 1045 | # | ||
| 1046 | # USB Network Adapters | ||
| 1047 | # | ||
| 1048 | # CONFIG_USB_KAWETH is not set | ||
| 1049 | # CONFIG_USB_PEGASUS is not set | ||
| 1050 | # CONFIG_USB_USBNET_MII is not set | ||
| 1051 | # CONFIG_USB_USBNET is not set | ||
| 1052 | CONFIG_USB_MON=y | 934 | CONFIG_USB_MON=y |
| 1053 | 935 | ||
| 1054 | # | 936 | # |
| 1055 | # USB port drivers | 937 | # USB port drivers |
| 1056 | # | 938 | # |
| 1057 | |||
| 1058 | # | ||
| 1059 | # USB Serial Converter support | ||
| 1060 | # | ||
| 1061 | # CONFIG_USB_SERIAL is not set | 939 | # CONFIG_USB_SERIAL is not set |
| 1062 | 940 | ||
| 1063 | # | 941 | # |
| @@ -1078,67 +956,17 @@ CONFIG_USB_MON=y | |||
| 1078 | # CONFIG_USB_LD is not set | 956 | # CONFIG_USB_LD is not set |
| 1079 | # CONFIG_USB_TRANCEVIBRATOR is not set | 957 | # CONFIG_USB_TRANCEVIBRATOR is not set |
| 1080 | # CONFIG_USB_IOWARRIOR is not set | 958 | # CONFIG_USB_IOWARRIOR is not set |
| 1081 | |||
| 1082 | # | ||
| 1083 | # USB DSL modem support | ||
| 1084 | # | ||
| 1085 | |||
| 1086 | # | ||
| 1087 | # USB Gadget Support | ||
| 1088 | # | ||
| 1089 | # CONFIG_USB_GADGET is not set | 959 | # CONFIG_USB_GADGET is not set |
| 1090 | |||
| 1091 | # | ||
| 1092 | # MMC/SD Card support | ||
| 1093 | # | ||
| 1094 | # CONFIG_MMC is not set | 960 | # CONFIG_MMC is not set |
| 1095 | 961 | # CONFIG_MEMSTICK is not set | |
| 1096 | # | ||
| 1097 | # LED devices | ||
| 1098 | # | ||
| 1099 | # CONFIG_NEW_LEDS is not set | 962 | # CONFIG_NEW_LEDS is not set |
| 1100 | |||
| 1101 | # | ||
| 1102 | # LED drivers | ||
| 1103 | # | ||
| 1104 | |||
| 1105 | # | ||
| 1106 | # LED Triggers | ||
| 1107 | # | ||
| 1108 | |||
| 1109 | # | ||
| 1110 | # InfiniBand support | ||
| 1111 | # | ||
| 1112 | # CONFIG_INFINIBAND is not set | 963 | # CONFIG_INFINIBAND is not set |
| 964 | # CONFIG_RTC_CLASS is not set | ||
| 1113 | 965 | ||
| 1114 | # | 966 | # |
| 1115 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 967 | # Userspace I/O |
| 1116 | # | ||
| 1117 | |||
| 1118 | # | ||
| 1119 | # Real Time Clock | ||
| 1120 | # | ||
| 1121 | |||
| 1122 | # | ||
| 1123 | # DMA Engine support | ||
| 1124 | # | ||
| 1125 | # CONFIG_DMA_ENGINE is not set | ||
| 1126 | |||
| 1127 | # | ||
| 1128 | # DMA Clients | ||
| 1129 | # | ||
| 1130 | |||
| 1131 | # | ||
| 1132 | # DMA Devices | ||
| 1133 | # | ||
| 1134 | |||
| 1135 | # | ||
| 1136 | # Auxiliary Display support | ||
| 1137 | # | ||
| 1138 | |||
| 1139 | # | ||
| 1140 | # Virtualization | ||
| 1141 | # | 968 | # |
| 969 | # CONFIG_UIO is not set | ||
| 1142 | 970 | ||
| 1143 | # | 971 | # |
| 1144 | # File systems | 972 | # File systems |
| @@ -1151,12 +979,11 @@ CONFIG_EXT2_FS=y | |||
| 1151 | # CONFIG_JFS_FS is not set | 979 | # CONFIG_JFS_FS is not set |
| 1152 | # CONFIG_FS_POSIX_ACL is not set | 980 | # CONFIG_FS_POSIX_ACL is not set |
| 1153 | # CONFIG_XFS_FS is not set | 981 | # CONFIG_XFS_FS is not set |
| 1154 | # CONFIG_MINIX_FS is not set | 982 | # CONFIG_OCFS2_FS is not set |
| 1155 | # CONFIG_ROMFS_FS is not set | 983 | # CONFIG_DNOTIFY is not set |
| 1156 | CONFIG_INOTIFY=y | 984 | CONFIG_INOTIFY=y |
| 1157 | CONFIG_INOTIFY_USER=y | 985 | CONFIG_INOTIFY_USER=y |
| 1158 | # CONFIG_QUOTA is not set | 986 | # CONFIG_QUOTA is not set |
| 1159 | # CONFIG_DNOTIFY is not set | ||
| 1160 | # CONFIG_AUTOFS_FS is not set | 987 | # CONFIG_AUTOFS_FS is not set |
| 1161 | # CONFIG_AUTOFS4_FS is not set | 988 | # CONFIG_AUTOFS4_FS is not set |
| 1162 | # CONFIG_FUSE_FS is not set | 989 | # CONFIG_FUSE_FS is not set |
| @@ -1181,14 +1008,14 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
| 1181 | # Pseudo filesystems | 1008 | # Pseudo filesystems |
| 1182 | # | 1009 | # |
| 1183 | CONFIG_PROC_FS=y | 1010 | CONFIG_PROC_FS=y |
| 1184 | # CONFIG_PROC_KCORE is not set | 1011 | CONFIG_PROC_KCORE=y |
| 1185 | CONFIG_PROC_SYSCTL=y | 1012 | CONFIG_PROC_SYSCTL=y |
| 1186 | # CONFIG_SYSFS is not set | 1013 | CONFIG_SYSFS=y |
| 1187 | CONFIG_TMPFS=y | 1014 | CONFIG_TMPFS=y |
| 1188 | # CONFIG_TMPFS_POSIX_ACL is not set | 1015 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 1189 | # CONFIG_HUGETLBFS is not set | 1016 | # CONFIG_HUGETLBFS is not set |
| 1190 | # CONFIG_HUGETLB_PAGE is not set | 1017 | # CONFIG_HUGETLB_PAGE is not set |
| 1191 | CONFIG_RAMFS=y | 1018 | # CONFIG_CONFIGFS_FS is not set |
| 1192 | 1019 | ||
| 1193 | # | 1020 | # |
| 1194 | # Miscellaneous filesystems | 1021 | # Miscellaneous filesystems |
| @@ -1197,14 +1024,13 @@ CONFIG_RAMFS=y | |||
| 1197 | # CONFIG_JFFS2_FS is not set | 1024 | # CONFIG_JFFS2_FS is not set |
| 1198 | CONFIG_CRAMFS=y | 1025 | CONFIG_CRAMFS=y |
| 1199 | # CONFIG_VXFS_FS is not set | 1026 | # CONFIG_VXFS_FS is not set |
| 1027 | # CONFIG_MINIX_FS is not set | ||
| 1200 | # CONFIG_HPFS_FS is not set | 1028 | # CONFIG_HPFS_FS is not set |
| 1201 | # CONFIG_QNX4FS_FS is not set | 1029 | # CONFIG_QNX4FS_FS is not set |
| 1030 | # CONFIG_ROMFS_FS is not set | ||
| 1202 | # CONFIG_SYSV_FS is not set | 1031 | # CONFIG_SYSV_FS is not set |
| 1203 | # CONFIG_UFS_FS is not set | 1032 | # CONFIG_UFS_FS is not set |
| 1204 | 1033 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 1205 | # | ||
| 1206 | # Network File Systems | ||
| 1207 | # | ||
| 1208 | CONFIG_NFS_FS=y | 1034 | CONFIG_NFS_FS=y |
| 1209 | CONFIG_NFS_V3=y | 1035 | CONFIG_NFS_V3=y |
| 1210 | # CONFIG_NFS_V3_ACL is not set | 1036 | # CONFIG_NFS_V3_ACL is not set |
| @@ -1225,10 +1051,6 @@ CONFIG_SUNRPC=y | |||
| 1225 | # | 1051 | # |
| 1226 | # CONFIG_PARTITION_ADVANCED is not set | 1052 | # CONFIG_PARTITION_ADVANCED is not set |
| 1227 | CONFIG_MSDOS_PARTITION=y | 1053 | CONFIG_MSDOS_PARTITION=y |
| 1228 | |||
| 1229 | # | ||
| 1230 | # Native Language Support | ||
| 1231 | # | ||
| 1232 | CONFIG_NLS=y | 1054 | CONFIG_NLS=y |
| 1233 | CONFIG_NLS_DEFAULT="iso8859-1" | 1055 | CONFIG_NLS_DEFAULT="iso8859-1" |
| 1234 | # CONFIG_NLS_CODEPAGE_437 is not set | 1056 | # CONFIG_NLS_CODEPAGE_437 is not set |
| @@ -1275,13 +1097,15 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
| 1275 | # | 1097 | # |
| 1276 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1098 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
| 1277 | # CONFIG_PRINTK_TIME is not set | 1099 | # CONFIG_PRINTK_TIME is not set |
| 1100 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 1278 | CONFIG_ENABLE_MUST_CHECK=y | 1101 | CONFIG_ENABLE_MUST_CHECK=y |
| 1279 | # CONFIG_MAGIC_SYSRQ is not set | 1102 | # CONFIG_MAGIC_SYSRQ is not set |
| 1280 | # CONFIG_UNUSED_SYMBOLS is not set | 1103 | # CONFIG_UNUSED_SYMBOLS is not set |
| 1104 | CONFIG_DEBUG_FS=y | ||
| 1281 | # CONFIG_HEADERS_CHECK is not set | 1105 | # CONFIG_HEADERS_CHECK is not set |
| 1282 | # CONFIG_DEBUG_KERNEL is not set | 1106 | # CONFIG_DEBUG_KERNEL is not set |
| 1283 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 1284 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1107 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 1108 | # CONFIG_SAMPLES is not set | ||
| 1285 | # CONFIG_SH_STANDARD_BIOS is not set | 1109 | # CONFIG_SH_STANDARD_BIOS is not set |
| 1286 | # CONFIG_EARLY_SCIF_CONSOLE is not set | 1110 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
| 1287 | # CONFIG_SH_KGDB is not set | 1111 | # CONFIG_SH_KGDB is not set |
| @@ -1290,11 +1114,48 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
| 1290 | # Security options | 1114 | # Security options |
| 1291 | # | 1115 | # |
| 1292 | # CONFIG_KEYS is not set | 1116 | # CONFIG_KEYS is not set |
| 1293 | 1117 | # CONFIG_SECURITY is not set | |
| 1294 | # | 1118 | CONFIG_CRYPTO=y |
| 1295 | # Cryptographic options | 1119 | # CONFIG_CRYPTO_SEQIV is not set |
| 1296 | # | 1120 | # CONFIG_CRYPTO_MANAGER is not set |
| 1297 | # CONFIG_CRYPTO is not set | 1121 | # CONFIG_CRYPTO_HMAC is not set |
| 1122 | # CONFIG_CRYPTO_NULL is not set | ||
| 1123 | # CONFIG_CRYPTO_MD4 is not set | ||
| 1124 | # CONFIG_CRYPTO_MD5 is not set | ||
| 1125 | # CONFIG_CRYPTO_SHA1 is not set | ||
| 1126 | # CONFIG_CRYPTO_SHA256 is not set | ||
| 1127 | # CONFIG_CRYPTO_SHA512 is not set | ||
| 1128 | # CONFIG_CRYPTO_WP512 is not set | ||
| 1129 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 1130 | # CONFIG_CRYPTO_ECB is not set | ||
| 1131 | # CONFIG_CRYPTO_CBC is not set | ||
| 1132 | # CONFIG_CRYPTO_PCBC is not set | ||
| 1133 | # CONFIG_CRYPTO_CTR is not set | ||
| 1134 | # CONFIG_CRYPTO_GCM is not set | ||
| 1135 | # CONFIG_CRYPTO_CCM is not set | ||
| 1136 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 1137 | # CONFIG_CRYPTO_DES is not set | ||
| 1138 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 1139 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
| 1140 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 1141 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 1142 | # CONFIG_CRYPTO_AES is not set | ||
| 1143 | # CONFIG_CRYPTO_CAST5 is not set | ||
| 1144 | # CONFIG_CRYPTO_CAST6 is not set | ||
| 1145 | # CONFIG_CRYPTO_TEA is not set | ||
| 1146 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 1147 | # CONFIG_CRYPTO_KHAZAD is not set | ||
| 1148 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 1149 | # CONFIG_CRYPTO_SEED is not set | ||
| 1150 | # CONFIG_CRYPTO_DEFLATE is not set | ||
| 1151 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 1152 | # CONFIG_CRYPTO_CRC32C is not set | ||
| 1153 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 1154 | # CONFIG_CRYPTO_TEST is not set | ||
| 1155 | # CONFIG_CRYPTO_AUTHENC is not set | ||
| 1156 | # CONFIG_CRYPTO_LZO is not set | ||
| 1157 | CONFIG_CRYPTO_HW=y | ||
| 1158 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
| 1298 | 1159 | ||
| 1299 | # | 1160 | # |
| 1300 | # Library routines | 1161 | # Library routines |
| @@ -1302,9 +1163,12 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
| 1302 | CONFIG_BITREVERSE=y | 1163 | CONFIG_BITREVERSE=y |
| 1303 | # CONFIG_CRC_CCITT is not set | 1164 | # CONFIG_CRC_CCITT is not set |
| 1304 | # CONFIG_CRC16 is not set | 1165 | # CONFIG_CRC16 is not set |
| 1166 | # CONFIG_CRC_ITU_T is not set | ||
| 1305 | CONFIG_CRC32=y | 1167 | CONFIG_CRC32=y |
| 1168 | # CONFIG_CRC7 is not set | ||
| 1306 | # CONFIG_LIBCRC32C is not set | 1169 | # CONFIG_LIBCRC32C is not set |
| 1307 | CONFIG_ZLIB_INFLATE=y | 1170 | CONFIG_ZLIB_INFLATE=y |
| 1308 | CONFIG_PLIST=y | 1171 | CONFIG_PLIST=y |
| 1309 | CONFIG_HAS_IOMEM=y | 1172 | CONFIG_HAS_IOMEM=y |
| 1310 | CONFIG_HAS_IOPORT=y | 1173 | CONFIG_HAS_IOPORT=y |
| 1174 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig index 9380c321169a..37e49a589207 100644 --- a/arch/sh/configs/sh7710voipgw_defconfig +++ b/arch/sh/configs/sh7710voipgw_defconfig | |||
| @@ -1,40 +1,55 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.25-rc4 |
| 4 | # Tue Oct 3 12:48:56 2006 | 4 | # Thu Mar 6 16:02:29 2008 |
| 5 | # | 5 | # |
| 6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
| 7 | CONFIG_SUPERH32=y | ||
| 7 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
| 9 | CONFIG_GENERIC_BUG=y | ||
| 8 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 10 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
| 9 | CONFIG_GENERIC_HWEIGHT=y | 11 | CONFIG_GENERIC_HWEIGHT=y |
| 10 | CONFIG_GENERIC_HARDIRQS=y | 12 | CONFIG_GENERIC_HARDIRQS=y |
| 11 | CONFIG_GENERIC_IRQ_PROBE=y | 13 | CONFIG_GENERIC_IRQ_PROBE=y |
| 12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 14 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
| 15 | CONFIG_GENERIC_TIME=y | ||
| 16 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
| 17 | CONFIG_STACKTRACE_SUPPORT=y | ||
| 18 | CONFIG_LOCKDEP_SUPPORT=y | ||
| 19 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
| 20 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
| 21 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
| 22 | CONFIG_ARCH_SUPPORTS_AOUT=y | ||
| 13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 23 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| 14 | 24 | ||
| 15 | # | 25 | # |
| 16 | # Code maturity level options | 26 | # General setup |
| 17 | # | 27 | # |
| 18 | CONFIG_EXPERIMENTAL=y | 28 | CONFIG_EXPERIMENTAL=y |
| 19 | CONFIG_BROKEN_ON_SMP=y | 29 | CONFIG_BROKEN_ON_SMP=y |
| 20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 30 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
| 21 | |||
| 22 | # | ||
| 23 | # General setup | ||
| 24 | # | ||
| 25 | CONFIG_LOCALVERSION="" | 31 | CONFIG_LOCALVERSION="" |
| 26 | CONFIG_LOCALVERSION_AUTO=y | 32 | CONFIG_LOCALVERSION_AUTO=y |
| 27 | # CONFIG_SWAP is not set | 33 | # CONFIG_SWAP is not set |
| 28 | CONFIG_SYSVIPC=y | 34 | CONFIG_SYSVIPC=y |
| 29 | # CONFIG_IPC_NS is not set | 35 | CONFIG_SYSVIPC_SYSCTL=y |
| 30 | CONFIG_POSIX_MQUEUE=y | 36 | CONFIG_POSIX_MQUEUE=y |
| 31 | # CONFIG_BSD_PROCESS_ACCT is not set | 37 | # CONFIG_BSD_PROCESS_ACCT is not set |
| 32 | # CONFIG_TASKSTATS is not set | 38 | # CONFIG_TASKSTATS is not set |
| 33 | # CONFIG_UTS_NS is not set | ||
| 34 | # CONFIG_AUDIT is not set | 39 | # CONFIG_AUDIT is not set |
| 35 | # CONFIG_IKCONFIG is not set | 40 | # CONFIG_IKCONFIG is not set |
| 41 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 42 | # CONFIG_CGROUPS is not set | ||
| 43 | CONFIG_GROUP_SCHED=y | ||
| 44 | CONFIG_FAIR_GROUP_SCHED=y | ||
| 45 | # CONFIG_RT_GROUP_SCHED is not set | ||
| 46 | CONFIG_USER_SCHED=y | ||
| 47 | # CONFIG_CGROUP_SCHED is not set | ||
| 48 | CONFIG_SYSFS_DEPRECATED=y | ||
| 49 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 36 | # CONFIG_RELAY is not set | 50 | # CONFIG_RELAY is not set |
| 37 | CONFIG_INITRAMFS_SOURCE="" | 51 | # CONFIG_NAMESPACES is not set |
| 52 | # CONFIG_BLK_DEV_INITRD is not set | ||
| 38 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 53 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
| 39 | CONFIG_SYSCTL=y | 54 | CONFIG_SYSCTL=y |
| 40 | CONFIG_EMBEDDED=y | 55 | CONFIG_EMBEDDED=y |
| @@ -46,33 +61,39 @@ CONFIG_HOTPLUG=y | |||
| 46 | CONFIG_PRINTK=y | 61 | CONFIG_PRINTK=y |
| 47 | CONFIG_BUG=y | 62 | CONFIG_BUG=y |
| 48 | CONFIG_ELF_CORE=y | 63 | CONFIG_ELF_CORE=y |
| 64 | CONFIG_COMPAT_BRK=y | ||
| 49 | CONFIG_BASE_FULL=y | 65 | CONFIG_BASE_FULL=y |
| 50 | # CONFIG_FUTEX is not set | 66 | # CONFIG_FUTEX is not set |
| 67 | CONFIG_ANON_INODES=y | ||
| 51 | # CONFIG_EPOLL is not set | 68 | # CONFIG_EPOLL is not set |
| 69 | CONFIG_SIGNALFD=y | ||
| 70 | CONFIG_TIMERFD=y | ||
| 71 | CONFIG_EVENTFD=y | ||
| 52 | # CONFIG_SHMEM is not set | 72 | # CONFIG_SHMEM is not set |
| 53 | CONFIG_SLAB=y | ||
| 54 | CONFIG_VM_EVENT_COUNTERS=y | 73 | CONFIG_VM_EVENT_COUNTERS=y |
| 74 | CONFIG_SLAB=y | ||
| 75 | # CONFIG_SLUB is not set | ||
| 76 | # CONFIG_SLOB is not set | ||
| 77 | # CONFIG_PROFILING is not set | ||
| 78 | # CONFIG_MARKERS is not set | ||
| 79 | CONFIG_HAVE_OPROFILE=y | ||
| 80 | # CONFIG_HAVE_KPROBES is not set | ||
| 81 | # CONFIG_HAVE_KRETPROBES is not set | ||
| 82 | CONFIG_PROC_PAGE_MONITOR=y | ||
| 83 | CONFIG_SLABINFO=y | ||
| 55 | CONFIG_TINY_SHMEM=y | 84 | CONFIG_TINY_SHMEM=y |
| 56 | CONFIG_BASE_SMALL=0 | 85 | CONFIG_BASE_SMALL=0 |
| 57 | # CONFIG_SLOB is not set | ||
| 58 | |||
| 59 | # | ||
| 60 | # Loadable module support | ||
| 61 | # | ||
| 62 | CONFIG_MODULES=y | 86 | CONFIG_MODULES=y |
| 63 | CONFIG_MODULE_UNLOAD=y | 87 | CONFIG_MODULE_UNLOAD=y |
| 64 | CONFIG_MODULE_FORCE_UNLOAD=y | 88 | CONFIG_MODULE_FORCE_UNLOAD=y |
| 65 | # CONFIG_MODVERSIONS is not set | 89 | # CONFIG_MODVERSIONS is not set |
| 66 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 90 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
| 67 | # CONFIG_KMOD is not set | 91 | # CONFIG_KMOD is not set |
| 68 | |||
| 69 | # | ||
| 70 | # Block layer | ||
| 71 | # | ||
| 72 | CONFIG_BLOCK=y | 92 | CONFIG_BLOCK=y |
| 73 | # CONFIG_LBD is not set | 93 | # CONFIG_LBD is not set |
| 74 | # CONFIG_BLK_DEV_IO_TRACE is not set | 94 | # CONFIG_BLK_DEV_IO_TRACE is not set |
| 75 | # CONFIG_LSF is not set | 95 | # CONFIG_LSF is not set |
| 96 | # CONFIG_BLK_DEV_BSG is not set | ||
| 76 | 97 | ||
| 77 | # | 98 | # |
| 78 | # IO Schedulers | 99 | # IO Schedulers |
| @@ -86,59 +107,26 @@ CONFIG_DEFAULT_DEADLINE=y | |||
| 86 | # CONFIG_DEFAULT_CFQ is not set | 107 | # CONFIG_DEFAULT_CFQ is not set |
| 87 | # CONFIG_DEFAULT_NOOP is not set | 108 | # CONFIG_DEFAULT_NOOP is not set |
| 88 | CONFIG_DEFAULT_IOSCHED="deadline" | 109 | CONFIG_DEFAULT_IOSCHED="deadline" |
| 110 | CONFIG_CLASSIC_RCU=y | ||
| 111 | # CONFIG_PREEMPT_RCU is not set | ||
| 89 | 112 | ||
| 90 | # | 113 | # |
| 91 | # System type | 114 | # System type |
| 92 | # | 115 | # |
| 93 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
| 94 | # CONFIG_SH_7751_SOLUTION_ENGINE is not set | ||
| 95 | # CONFIG_SH_7300_SOLUTION_ENGINE is not set | ||
| 96 | # CONFIG_SH_7343_SOLUTION_ENGINE is not set | ||
| 97 | # CONFIG_SH_73180_SOLUTION_ENGINE is not set | ||
| 98 | # CONFIG_SH_7751_SYSTEMH is not set | ||
| 99 | # CONFIG_SH_HP6XX is not set | ||
| 100 | # CONFIG_SH_EC3104 is not set | ||
| 101 | # CONFIG_SH_SATURN is not set | ||
| 102 | # CONFIG_SH_DREAMCAST is not set | ||
| 103 | # CONFIG_SH_BIGSUR is not set | ||
| 104 | # CONFIG_SH_MPC1211 is not set | ||
| 105 | # CONFIG_SH_SH03 is not set | ||
| 106 | # CONFIG_SH_SECUREEDGE5410 is not set | ||
| 107 | # CONFIG_SH_HS7751RVOIP is not set | ||
| 108 | CONFIG_SH_7710VOIPGW=y | ||
| 109 | # CONFIG_SH_RTS7751R2D is not set | ||
| 110 | # CONFIG_SH_R7780RP is not set | ||
| 111 | # CONFIG_SH_EDOSK7705 is not set | ||
| 112 | # CONFIG_SH_SH4202_MICRODEV is not set | ||
| 113 | # CONFIG_SH_LANDISK is not set | ||
| 114 | # CONFIG_SH_TITAN is not set | ||
| 115 | # CONFIG_SH_SHMIN is not set | ||
| 116 | # CONFIG_SH_UNKNOWN is not set | ||
| 117 | |||
| 118 | # | ||
| 119 | # Processor selection | ||
| 120 | # | ||
| 121 | CONFIG_CPU_SH3=y | 116 | CONFIG_CPU_SH3=y |
| 122 | 117 | # CONFIG_CPU_SUBTYPE_SH7619 is not set | |
| 123 | # | 118 | # CONFIG_CPU_SUBTYPE_SH7203 is not set |
| 124 | # SH-2 Processor Support | 119 | # CONFIG_CPU_SUBTYPE_SH7206 is not set |
| 125 | # | 120 | # CONFIG_CPU_SUBTYPE_SH7263 is not set |
| 126 | # CONFIG_CPU_SUBTYPE_SH7604 is not set | ||
| 127 | |||
| 128 | # | ||
| 129 | # SH-3 Processor Support | ||
| 130 | # | ||
| 131 | # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||
| 132 | # CONFIG_CPU_SUBTYPE_SH7705 is not set | 121 | # CONFIG_CPU_SUBTYPE_SH7705 is not set |
| 133 | # CONFIG_CPU_SUBTYPE_SH7706 is not set | 122 | # CONFIG_CPU_SUBTYPE_SH7706 is not set |
| 134 | # CONFIG_CPU_SUBTYPE_SH7707 is not set | 123 | # CONFIG_CPU_SUBTYPE_SH7707 is not set |
| 135 | # CONFIG_CPU_SUBTYPE_SH7708 is not set | 124 | # CONFIG_CPU_SUBTYPE_SH7708 is not set |
| 136 | # CONFIG_CPU_SUBTYPE_SH7709 is not set | 125 | # CONFIG_CPU_SUBTYPE_SH7709 is not set |
| 137 | CONFIG_CPU_SUBTYPE_SH7710=y | 126 | CONFIG_CPU_SUBTYPE_SH7710=y |
| 138 | 127 | # CONFIG_CPU_SUBTYPE_SH7712 is not set | |
| 139 | # | 128 | # CONFIG_CPU_SUBTYPE_SH7720 is not set |
| 140 | # SH-4 Processor Support | 129 | # CONFIG_CPU_SUBTYPE_SH7721 is not set |
| 141 | # | ||
| 142 | # CONFIG_CPU_SUBTYPE_SH7750 is not set | 130 | # CONFIG_CPU_SUBTYPE_SH7750 is not set |
| 143 | # CONFIG_CPU_SUBTYPE_SH7091 is not set | 131 | # CONFIG_CPU_SUBTYPE_SH7091 is not set |
| 144 | # CONFIG_CPU_SUBTYPE_SH7750R is not set | 132 | # CONFIG_CPU_SUBTYPE_SH7750R is not set |
| @@ -147,65 +135,84 @@ CONFIG_CPU_SUBTYPE_SH7710=y | |||
| 147 | # CONFIG_CPU_SUBTYPE_SH7751R is not set | 135 | # CONFIG_CPU_SUBTYPE_SH7751R is not set |
| 148 | # CONFIG_CPU_SUBTYPE_SH7760 is not set | 136 | # CONFIG_CPU_SUBTYPE_SH7760 is not set |
| 149 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set | 137 | # CONFIG_CPU_SUBTYPE_SH4_202 is not set |
| 150 | 138 | # CONFIG_CPU_SUBTYPE_SH7763 is not set | |
| 151 | # | ||
| 152 | # ST40 Processor Support | ||
| 153 | # | ||
| 154 | # CONFIG_CPU_SUBTYPE_ST40STB1 is not set | ||
| 155 | # CONFIG_CPU_SUBTYPE_ST40GX1 is not set | ||
| 156 | |||
| 157 | # | ||
| 158 | # SH-4A Processor Support | ||
| 159 | # | ||
| 160 | # CONFIG_CPU_SUBTYPE_SH7770 is not set | 139 | # CONFIG_CPU_SUBTYPE_SH7770 is not set |
| 161 | # CONFIG_CPU_SUBTYPE_SH7780 is not set | 140 | # CONFIG_CPU_SUBTYPE_SH7780 is not set |
| 162 | 141 | # CONFIG_CPU_SUBTYPE_SH7785 is not set | |
| 163 | # | 142 | # CONFIG_CPU_SUBTYPE_SHX3 is not set |
| 164 | # SH4AL-DSP Processor Support | ||
| 165 | # | ||
| 166 | # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||
| 167 | # CONFIG_CPU_SUBTYPE_SH7343 is not set | 143 | # CONFIG_CPU_SUBTYPE_SH7343 is not set |
| 144 | # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||
| 145 | # CONFIG_CPU_SUBTYPE_SH7366 is not set | ||
| 146 | # CONFIG_CPU_SUBTYPE_SH5_101 is not set | ||
| 147 | # CONFIG_CPU_SUBTYPE_SH5_103 is not set | ||
| 168 | 148 | ||
| 169 | # | 149 | # |
| 170 | # Memory management options | 150 | # Memory management options |
| 171 | # | 151 | # |
| 152 | CONFIG_QUICKLIST=y | ||
| 172 | CONFIG_MMU=y | 153 | CONFIG_MMU=y |
| 173 | CONFIG_PAGE_OFFSET=0x80000000 | 154 | CONFIG_PAGE_OFFSET=0x80000000 |
| 174 | CONFIG_MEMORY_START=0x0c000000 | 155 | CONFIG_MEMORY_START=0x0c000000 |
| 175 | CONFIG_MEMORY_SIZE=0x00800000 | 156 | CONFIG_MEMORY_SIZE=0x00800000 |
| 157 | CONFIG_29BIT=y | ||
| 176 | CONFIG_VSYSCALL=y | 158 | CONFIG_VSYSCALL=y |
| 159 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
| 160 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
| 161 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
| 162 | CONFIG_MAX_ACTIVE_REGIONS=1 | ||
| 163 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
| 164 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
| 165 | CONFIG_PAGE_SIZE_4KB=y | ||
| 166 | # CONFIG_PAGE_SIZE_8KB is not set | ||
| 167 | # CONFIG_PAGE_SIZE_64KB is not set | ||
| 177 | CONFIG_SELECT_MEMORY_MODEL=y | 168 | CONFIG_SELECT_MEMORY_MODEL=y |
| 178 | CONFIG_FLATMEM_MANUAL=y | 169 | CONFIG_FLATMEM_MANUAL=y |
| 179 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 170 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
| 180 | # CONFIG_SPARSEMEM_MANUAL is not set | 171 | # CONFIG_SPARSEMEM_MANUAL is not set |
| 181 | CONFIG_FLATMEM=y | 172 | CONFIG_FLATMEM=y |
| 182 | CONFIG_FLAT_NODE_MEM_MAP=y | 173 | CONFIG_FLAT_NODE_MEM_MAP=y |
| 183 | # CONFIG_SPARSEMEM_STATIC is not set | 174 | CONFIG_SPARSEMEM_STATIC=y |
| 175 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
| 184 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 176 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
| 185 | # CONFIG_RESOURCES_64BIT is not set | 177 | # CONFIG_RESOURCES_64BIT is not set |
| 178 | CONFIG_ZONE_DMA_FLAG=0 | ||
| 179 | CONFIG_NR_QUICK=2 | ||
| 186 | 180 | ||
| 187 | # | 181 | # |
| 188 | # Cache configuration | 182 | # Cache configuration |
| 189 | # | 183 | # |
| 190 | # CONFIG_SH_DIRECT_MAPPED is not set | 184 | # CONFIG_SH_DIRECT_MAPPED is not set |
| 191 | # CONFIG_SH_WRITETHROUGH is not set | 185 | CONFIG_CACHE_WRITEBACK=y |
| 192 | # CONFIG_SH_OCRAM is not set | 186 | # CONFIG_CACHE_WRITETHROUGH is not set |
| 187 | # CONFIG_CACHE_OFF is not set | ||
| 193 | 188 | ||
| 194 | # | 189 | # |
| 195 | # Processor features | 190 | # Processor features |
| 196 | # | 191 | # |
| 197 | CONFIG_CPU_LITTLE_ENDIAN=y | 192 | CONFIG_CPU_LITTLE_ENDIAN=y |
| 193 | # CONFIG_CPU_BIG_ENDIAN is not set | ||
| 198 | # CONFIG_SH_FPU_EMU is not set | 194 | # CONFIG_SH_FPU_EMU is not set |
| 199 | CONFIG_SH_DSP=y | 195 | CONFIG_SH_DSP=y |
| 200 | # CONFIG_SH_ADC is not set | 196 | # CONFIG_SH_ADC is not set |
| 201 | CONFIG_CPU_HAS_INTEVT=y | 197 | CONFIG_CPU_HAS_INTEVT=y |
| 202 | CONFIG_CPU_HAS_SR_RB=y | 198 | CONFIG_CPU_HAS_SR_RB=y |
| 199 | CONFIG_CPU_HAS_DSP=y | ||
| 203 | 200 | ||
| 204 | # | 201 | # |
| 205 | # Timer support | 202 | # Board support |
| 203 | # | ||
| 204 | # CONFIG_SH_SOLUTION_ENGINE is not set | ||
| 205 | |||
| 206 | # | ||
| 207 | # Timer and clock configuration | ||
| 206 | # | 208 | # |
| 207 | CONFIG_SH_TMU=y | 209 | CONFIG_SH_TMU=y |
| 210 | CONFIG_SH_TIMER_IRQ=16 | ||
| 208 | CONFIG_SH_PCLK_FREQ=32768000 | 211 | CONFIG_SH_PCLK_FREQ=32768000 |
| 212 | # CONFIG_TICK_ONESHOT is not set | ||
| 213 | # CONFIG_NO_HZ is not set | ||
| 214 | # CONFIG_HIGH_RES_TIMERS is not set | ||
| 215 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
| 209 | 216 | ||
| 210 | # | 217 | # |
| 211 | # CPU Frequency scaling | 218 | # CPU Frequency scaling |
| @@ -220,56 +227,51 @@ CONFIG_SH_PCLK_FREQ=32768000 | |||
| 220 | # | 227 | # |
| 221 | # Companion Chips | 228 | # Companion Chips |
| 222 | # | 229 | # |
| 223 | # CONFIG_HD6446X_SERIES is not set | 230 | |
| 231 | # | ||
| 232 | # Additional SuperH Device Drivers | ||
| 233 | # | ||
| 234 | # CONFIG_HEARTBEAT is not set | ||
| 235 | # CONFIG_PUSH_SWITCH is not set | ||
| 224 | 236 | ||
| 225 | # | 237 | # |
| 226 | # Kernel features | 238 | # Kernel features |
| 227 | # | 239 | # |
| 228 | # CONFIG_HZ_100 is not set | 240 | # CONFIG_HZ_100 is not set |
| 229 | CONFIG_HZ_250=y | 241 | CONFIG_HZ_250=y |
| 242 | # CONFIG_HZ_300 is not set | ||
| 230 | # CONFIG_HZ_1000 is not set | 243 | # CONFIG_HZ_1000 is not set |
| 231 | CONFIG_HZ=250 | 244 | CONFIG_HZ=250 |
| 245 | # CONFIG_SCHED_HRTICK is not set | ||
| 232 | # CONFIG_KEXEC is not set | 246 | # CONFIG_KEXEC is not set |
| 233 | # CONFIG_SMP is not set | 247 | # CONFIG_CRASH_DUMP is not set |
| 234 | CONFIG_PREEMPT_NONE=y | 248 | CONFIG_PREEMPT_NONE=y |
| 235 | # CONFIG_PREEMPT_VOLUNTARY is not set | 249 | # CONFIG_PREEMPT_VOLUNTARY is not set |
| 236 | # CONFIG_PREEMPT is not set | 250 | # CONFIG_PREEMPT is not set |
| 251 | CONFIG_RCU_TRACE=y | ||
| 252 | CONFIG_GUSA=y | ||
| 253 | # CONFIG_GUSA_RB is not set | ||
| 237 | 254 | ||
| 238 | # | 255 | # |
| 239 | # Boot options | 256 | # Boot options |
| 240 | # | 257 | # |
| 241 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 258 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
| 242 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 259 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
| 243 | # CONFIG_UBC_WAKEUP is not set | ||
| 244 | # CONFIG_CMDLINE_BOOL is not set | 260 | # CONFIG_CMDLINE_BOOL is not set |
| 245 | 261 | ||
| 246 | # | 262 | # |
| 247 | # Bus options | 263 | # Bus options |
| 248 | # | 264 | # |
| 249 | # CONFIG_PCI is not set | 265 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
| 250 | |||
| 251 | # | ||
| 252 | # PCCARD (PCMCIA/CardBus) support | ||
| 253 | # | ||
| 254 | # CONFIG_PCCARD is not set | 266 | # CONFIG_PCCARD is not set |
| 255 | 267 | ||
| 256 | # | 268 | # |
| 257 | # PCI Hotplug Support | ||
| 258 | # | ||
| 259 | |||
| 260 | # | ||
| 261 | # Executable file formats | 269 | # Executable file formats |
| 262 | # | 270 | # |
| 263 | CONFIG_BINFMT_ELF=y | 271 | CONFIG_BINFMT_ELF=y |
| 264 | # CONFIG_BINFMT_FLAT is not set | ||
| 265 | # CONFIG_BINFMT_MISC is not set | 272 | # CONFIG_BINFMT_MISC is not set |
| 266 | 273 | ||
| 267 | # | 274 | # |
| 268 | # Power management options (EXPERIMENTAL) | ||
| 269 | # | ||
| 270 | # CONFIG_PM is not set | ||
| 271 | |||
| 272 | # | ||
| 273 | # Networking | 275 | # Networking |
| 274 | # | 276 | # |
| 275 | CONFIG_NET=y | 277 | CONFIG_NET=y |
| @@ -277,13 +279,14 @@ CONFIG_NET=y | |||
| 277 | # | 279 | # |
| 278 | # Networking options | 280 | # Networking options |
| 279 | # | 281 | # |
| 280 | # CONFIG_NETDEBUG is not set | ||
| 281 | CONFIG_PACKET=y | 282 | CONFIG_PACKET=y |
| 282 | # CONFIG_PACKET_MMAP is not set | 283 | # CONFIG_PACKET_MMAP is not set |
| 283 | CONFIG_UNIX=y | 284 | CONFIG_UNIX=y |
| 284 | CONFIG_XFRM=y | 285 | CONFIG_XFRM=y |
| 285 | # CONFIG_XFRM_USER is not set | 286 | # CONFIG_XFRM_USER is not set |
| 286 | # CONFIG_XFRM_SUB_POLICY is not set | 287 | # CONFIG_XFRM_SUB_POLICY is not set |
| 288 | # CONFIG_XFRM_MIGRATE is not set | ||
| 289 | # CONFIG_XFRM_STATISTICS is not set | ||
| 287 | # CONFIG_NET_KEY is not set | 290 | # CONFIG_NET_KEY is not set |
| 288 | CONFIG_INET=y | 291 | CONFIG_INET=y |
| 289 | # CONFIG_IP_MULTICAST is not set | 292 | # CONFIG_IP_MULTICAST is not set |
| @@ -301,14 +304,13 @@ CONFIG_SYN_COOKIES=y | |||
| 301 | # CONFIG_INET_TUNNEL is not set | 304 | # CONFIG_INET_TUNNEL is not set |
| 302 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 305 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
| 303 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 306 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
| 307 | CONFIG_INET_XFRM_MODE_BEET=y | ||
| 308 | # CONFIG_INET_LRO is not set | ||
| 304 | # CONFIG_INET_DIAG is not set | 309 | # CONFIG_INET_DIAG is not set |
| 305 | # CONFIG_TCP_CONG_ADVANCED is not set | 310 | # CONFIG_TCP_CONG_ADVANCED is not set |
| 306 | CONFIG_TCP_CONG_CUBIC=y | 311 | CONFIG_TCP_CONG_CUBIC=y |
| 307 | CONFIG_DEFAULT_TCP_CONG="cubic" | 312 | CONFIG_DEFAULT_TCP_CONG="cubic" |
| 308 | 313 | # CONFIG_TCP_MD5SIG is not set | |
| 309 | # | ||
| 310 | # IP: Virtual Server Configuration | ||
| 311 | # | ||
| 312 | # CONFIG_IP_VS is not set | 314 | # CONFIG_IP_VS is not set |
| 313 | # CONFIG_IPV6 is not set | 315 | # CONFIG_IPV6 is not set |
| 314 | # CONFIG_INET6_XFRM_TUNNEL is not set | 316 | # CONFIG_INET6_XFRM_TUNNEL is not set |
| @@ -316,44 +318,24 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
| 316 | # CONFIG_NETWORK_SECMARK is not set | 318 | # CONFIG_NETWORK_SECMARK is not set |
| 317 | CONFIG_NETFILTER=y | 319 | CONFIG_NETFILTER=y |
| 318 | # CONFIG_NETFILTER_DEBUG is not set | 320 | # CONFIG_NETFILTER_DEBUG is not set |
| 321 | CONFIG_NETFILTER_ADVANCED=y | ||
| 319 | 322 | ||
| 320 | # | 323 | # |
| 321 | # Core Netfilter Configuration | 324 | # Core Netfilter Configuration |
| 322 | # | 325 | # |
| 323 | # CONFIG_NETFILTER_NETLINK is not set | 326 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
| 327 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
| 328 | # CONFIG_NF_CONNTRACK is not set | ||
| 324 | # CONFIG_NETFILTER_XTABLES is not set | 329 | # CONFIG_NETFILTER_XTABLES is not set |
| 325 | 330 | ||
| 326 | # | 331 | # |
| 327 | # IP: Netfilter Configuration | 332 | # IP: Netfilter Configuration |
| 328 | # | 333 | # |
| 329 | CONFIG_IP_NF_CONNTRACK=y | ||
| 330 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 331 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
| 332 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
| 333 | # CONFIG_IP_NF_CT_PROTO_SCTP is not set | ||
| 334 | CONFIG_IP_NF_FTP=m | ||
| 335 | # CONFIG_IP_NF_IRC is not set | ||
| 336 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
| 337 | # CONFIG_IP_NF_TFTP is not set | ||
| 338 | # CONFIG_IP_NF_AMANDA is not set | ||
| 339 | CONFIG_IP_NF_PPTP=m | ||
| 340 | # CONFIG_IP_NF_H323 is not set | ||
| 341 | # CONFIG_IP_NF_SIP is not set | ||
| 342 | # CONFIG_IP_NF_QUEUE is not set | 334 | # CONFIG_IP_NF_QUEUE is not set |
| 343 | 335 | # CONFIG_IP_NF_IPTABLES is not set | |
| 344 | # | 336 | # CONFIG_IP_NF_ARPTABLES is not set |
| 345 | # DCCP Configuration (EXPERIMENTAL) | ||
| 346 | # | ||
| 347 | # CONFIG_IP_DCCP is not set | 337 | # CONFIG_IP_DCCP is not set |
| 348 | |||
| 349 | # | ||
| 350 | # SCTP Configuration (EXPERIMENTAL) | ||
| 351 | # | ||
| 352 | # CONFIG_IP_SCTP is not set | 338 | # CONFIG_IP_SCTP is not set |
| 353 | |||
| 354 | # | ||
| 355 | # TIPC Configuration (EXPERIMENTAL) | ||
| 356 | # | ||
| 357 | # CONFIG_TIPC is not set | 339 | # CONFIG_TIPC is not set |
| 358 | # CONFIG_ATM is not set | 340 | # CONFIG_ATM is not set |
| 359 | # CONFIG_BRIDGE is not set | 341 | # CONFIG_BRIDGE is not set |
| @@ -366,14 +348,7 @@ CONFIG_IP_NF_PPTP=m | |||
| 366 | # CONFIG_LAPB is not set | 348 | # CONFIG_LAPB is not set |
| 367 | # CONFIG_ECONET is not set | 349 | # CONFIG_ECONET is not set |
| 368 | # CONFIG_WAN_ROUTER is not set | 350 | # CONFIG_WAN_ROUTER is not set |
| 369 | |||
| 370 | # | ||
| 371 | # QoS and/or fair queueing | ||
| 372 | # | ||
| 373 | CONFIG_NET_SCHED=y | 351 | CONFIG_NET_SCHED=y |
| 374 | CONFIG_NET_SCH_CLK_JIFFIES=y | ||
| 375 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set | ||
| 376 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
| 377 | 352 | ||
| 378 | # | 353 | # |
| 379 | # Queueing/Scheduling | 354 | # Queueing/Scheduling |
| @@ -382,6 +357,7 @@ CONFIG_NET_SCH_CBQ=y | |||
| 382 | # CONFIG_NET_SCH_HTB is not set | 357 | # CONFIG_NET_SCH_HTB is not set |
| 383 | # CONFIG_NET_SCH_HFSC is not set | 358 | # CONFIG_NET_SCH_HFSC is not set |
| 384 | # CONFIG_NET_SCH_PRIO is not set | 359 | # CONFIG_NET_SCH_PRIO is not set |
| 360 | # CONFIG_NET_SCH_RR is not set | ||
| 385 | # CONFIG_NET_SCH_RED is not set | 361 | # CONFIG_NET_SCH_RED is not set |
| 386 | # CONFIG_NET_SCH_SFQ is not set | 362 | # CONFIG_NET_SCH_SFQ is not set |
| 387 | # CONFIG_NET_SCH_TEQL is not set | 363 | # CONFIG_NET_SCH_TEQL is not set |
| @@ -389,7 +365,6 @@ CONFIG_NET_SCH_CBQ=y | |||
| 389 | # CONFIG_NET_SCH_GRED is not set | 365 | # CONFIG_NET_SCH_GRED is not set |
| 390 | # CONFIG_NET_SCH_DSMARK is not set | 366 | # CONFIG_NET_SCH_DSMARK is not set |
| 391 | # CONFIG_NET_SCH_NETEM is not set | 367 | # CONFIG_NET_SCH_NETEM is not set |
| 392 | CONFIG_NET_SCH_INGRESS=y | ||
| 393 | 368 | ||
| 394 | # | 369 | # |
| 395 | # Classification | 370 | # Classification |
| @@ -405,20 +380,31 @@ CONFIG_NET_CLS_U32=y | |||
| 405 | # CONFIG_CLS_U32_MARK is not set | 380 | # CONFIG_CLS_U32_MARK is not set |
| 406 | # CONFIG_NET_CLS_RSVP is not set | 381 | # CONFIG_NET_CLS_RSVP is not set |
| 407 | # CONFIG_NET_CLS_RSVP6 is not set | 382 | # CONFIG_NET_CLS_RSVP6 is not set |
| 383 | # CONFIG_NET_CLS_FLOW is not set | ||
| 408 | # CONFIG_NET_EMATCH is not set | 384 | # CONFIG_NET_EMATCH is not set |
| 409 | # CONFIG_NET_CLS_ACT is not set | 385 | # CONFIG_NET_CLS_ACT is not set |
| 410 | CONFIG_NET_CLS_POLICE=y | ||
| 411 | # CONFIG_NET_CLS_IND is not set | 386 | # CONFIG_NET_CLS_IND is not set |
| 412 | CONFIG_NET_ESTIMATOR=y | 387 | CONFIG_NET_SCH_FIFO=y |
| 413 | 388 | ||
| 414 | # | 389 | # |
| 415 | # Network testing | 390 | # Network testing |
| 416 | # | 391 | # |
| 417 | # CONFIG_NET_PKTGEN is not set | 392 | # CONFIG_NET_PKTGEN is not set |
| 418 | # CONFIG_HAMRADIO is not set | 393 | # CONFIG_HAMRADIO is not set |
| 394 | # CONFIG_CAN is not set | ||
| 419 | # CONFIG_IRDA is not set | 395 | # CONFIG_IRDA is not set |
| 420 | # CONFIG_BT is not set | 396 | # CONFIG_BT is not set |
| 397 | # CONFIG_AF_RXRPC is not set | ||
| 398 | |||
| 399 | # | ||
| 400 | # Wireless | ||
| 401 | # | ||
| 402 | # CONFIG_CFG80211 is not set | ||
| 403 | # CONFIG_WIRELESS_EXT is not set | ||
| 404 | # CONFIG_MAC80211 is not set | ||
| 421 | # CONFIG_IEEE80211 is not set | 405 | # CONFIG_IEEE80211 is not set |
| 406 | # CONFIG_RFKILL is not set | ||
| 407 | # CONFIG_NET_9P is not set | ||
| 422 | 408 | ||
| 423 | # | 409 | # |
| 424 | # Device Drivers | 410 | # Device Drivers |
| @@ -427,19 +413,12 @@ CONFIG_NET_ESTIMATOR=y | |||
| 427 | # | 413 | # |
| 428 | # Generic Driver Options | 414 | # Generic Driver Options |
| 429 | # | 415 | # |
| 416 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
| 430 | CONFIG_STANDALONE=y | 417 | CONFIG_STANDALONE=y |
| 431 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 418 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
| 432 | CONFIG_FW_LOADER=y | 419 | CONFIG_FW_LOADER=y |
| 433 | # CONFIG_SYS_HYPERVISOR is not set | 420 | # CONFIG_SYS_HYPERVISOR is not set |
| 434 | |||
| 435 | # | ||
| 436 | # Connector - unified userspace <-> kernelspace linker | ||
| 437 | # | ||
| 438 | # CONFIG_CONNECTOR is not set | 421 | # CONFIG_CONNECTOR is not set |
| 439 | |||
| 440 | # | ||
| 441 | # Memory Technology Devices (MTD) | ||
| 442 | # | ||
| 443 | CONFIG_MTD=y | 422 | CONFIG_MTD=y |
| 444 | # CONFIG_MTD_DEBUG is not set | 423 | # CONFIG_MTD_DEBUG is not set |
| 445 | # CONFIG_MTD_CONCAT is not set | 424 | # CONFIG_MTD_CONCAT is not set |
| @@ -451,12 +430,14 @@ CONFIG_MTD_PARTITIONS=y | |||
| 451 | # User Modules And Translation Layers | 430 | # User Modules And Translation Layers |
| 452 | # | 431 | # |
| 453 | CONFIG_MTD_CHAR=y | 432 | CONFIG_MTD_CHAR=y |
| 433 | CONFIG_MTD_BLKDEVS=y | ||
| 454 | CONFIG_MTD_BLOCK=y | 434 | CONFIG_MTD_BLOCK=y |
| 455 | # CONFIG_FTL is not set | 435 | # CONFIG_FTL is not set |
| 456 | # CONFIG_NFTL is not set | 436 | # CONFIG_NFTL is not set |
| 457 | # CONFIG_INFTL is not set | 437 | # CONFIG_INFTL is not set |
| 458 | # CONFIG_RFD_FTL is not set | 438 | # CONFIG_RFD_FTL is not set |
| 459 | # CONFIG_SSFDC is not set | 439 | # CONFIG_SSFDC is not set |
| 440 | # CONFIG_MTD_OOPS is not set | ||
| 460 | 441 | ||
| 461 | # | 442 | # |
| 462 | # RAM/ROM/Flash chip drivers | 443 | # RAM/ROM/Flash chip drivers |
| @@ -482,7 +463,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
| 482 | CONFIG_MTD_RAM=y | 463 | CONFIG_MTD_RAM=y |
| 483 | # CONFIG_MTD_ROM is not set | 464 | # CONFIG_MTD_ROM is not set |
| 484 | # CONFIG_MTD_ABSENT is not set | 465 | # CONFIG_MTD_ABSENT is not set |
| 485 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
| 486 | 466 | ||
| 487 | # | 467 | # |
| 488 | # Mapping drivers for chip access | 468 | # Mapping drivers for chip access |
| @@ -505,40 +485,25 @@ CONFIG_MTD_RAM=y | |||
| 505 | # CONFIG_MTD_DOC2000 is not set | 485 | # CONFIG_MTD_DOC2000 is not set |
| 506 | # CONFIG_MTD_DOC2001 is not set | 486 | # CONFIG_MTD_DOC2001 is not set |
| 507 | # CONFIG_MTD_DOC2001PLUS is not set | 487 | # CONFIG_MTD_DOC2001PLUS is not set |
| 508 | |||
| 509 | # | ||
| 510 | # NAND Flash Device Drivers | ||
| 511 | # | ||
| 512 | # CONFIG_MTD_NAND is not set | 488 | # CONFIG_MTD_NAND is not set |
| 513 | |||
| 514 | # | ||
| 515 | # OneNAND Flash Device Drivers | ||
| 516 | # | ||
| 517 | # CONFIG_MTD_ONENAND is not set | 489 | # CONFIG_MTD_ONENAND is not set |
| 518 | 490 | ||
| 519 | # | 491 | # |
| 520 | # Parallel port support | 492 | # UBI - Unsorted block images |
| 521 | # | 493 | # |
| 494 | # CONFIG_MTD_UBI is not set | ||
| 522 | # CONFIG_PARPORT is not set | 495 | # CONFIG_PARPORT is not set |
| 523 | 496 | CONFIG_BLK_DEV=y | |
| 524 | # | ||
| 525 | # Plug and Play support | ||
| 526 | # | ||
| 527 | |||
| 528 | # | ||
| 529 | # Block devices | ||
| 530 | # | ||
| 531 | # CONFIG_BLK_DEV_COW_COMMON is not set | 497 | # CONFIG_BLK_DEV_COW_COMMON is not set |
| 532 | # CONFIG_BLK_DEV_LOOP is not set | 498 | # CONFIG_BLK_DEV_LOOP is not set |
| 533 | # CONFIG_BLK_DEV_NBD is not set | 499 | # CONFIG_BLK_DEV_NBD is not set |
| 534 | # CONFIG_BLK_DEV_RAM is not set | 500 | # CONFIG_BLK_DEV_RAM is not set |
| 535 | # CONFIG_BLK_DEV_INITRD is not set | ||
| 536 | # CONFIG_CDROM_PKTCDVD is not set | 501 | # CONFIG_CDROM_PKTCDVD is not set |
| 537 | # CONFIG_ATA_OVER_ETH is not set | 502 | # CONFIG_ATA_OVER_ETH is not set |
| 538 | 503 | CONFIG_MISC_DEVICES=y | |
| 539 | # | 504 | # CONFIG_EEPROM_93CX6 is not set |
| 540 | # ATA/ATAPI/MFM/RLL support | 505 | # CONFIG_ENCLOSURE_SERVICES is not set |
| 541 | # | 506 | CONFIG_HAVE_IDE=y |
| 542 | # CONFIG_IDE is not set | 507 | # CONFIG_IDE is not set |
| 543 | 508 | ||
| 544 | # | 509 | # |
| @@ -546,104 +511,59 @@ CONFIG_MTD_RAM=y | |||
| 546 | # | 511 | # |
| 547 | # CONFIG_RAID_ATTRS is not set | 512 | # CONFIG_RAID_ATTRS is not set |
| 548 | # CONFIG_SCSI is not set | 513 | # CONFIG_SCSI is not set |
| 514 | # CONFIG_SCSI_DMA is not set | ||
| 549 | # CONFIG_SCSI_NETLINK is not set | 515 | # CONFIG_SCSI_NETLINK is not set |
| 550 | |||
| 551 | # | ||
| 552 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
| 553 | # | ||
| 554 | # CONFIG_ATA is not set | 516 | # CONFIG_ATA is not set |
| 555 | |||
| 556 | # | ||
| 557 | # Multi-device support (RAID and LVM) | ||
| 558 | # | ||
| 559 | # CONFIG_MD is not set | 517 | # CONFIG_MD is not set |
| 560 | |||
| 561 | # | ||
| 562 | # Fusion MPT device support | ||
| 563 | # | ||
| 564 | # CONFIG_FUSION is not set | ||
| 565 | |||
| 566 | # | ||
| 567 | # IEEE 1394 (FireWire) support | ||
| 568 | # | ||
| 569 | |||
| 570 | # | ||
| 571 | # I2O device support | ||
| 572 | # | ||
| 573 | |||
| 574 | # | ||
| 575 | # Network device support | ||
| 576 | # | ||
| 577 | CONFIG_NETDEVICES=y | 518 | CONFIG_NETDEVICES=y |
| 519 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
| 578 | # CONFIG_DUMMY is not set | 520 | # CONFIG_DUMMY is not set |
| 579 | # CONFIG_BONDING is not set | 521 | # CONFIG_BONDING is not set |
| 522 | # CONFIG_MACVLAN is not set | ||
| 580 | # CONFIG_EQUALIZER is not set | 523 | # CONFIG_EQUALIZER is not set |
| 581 | # CONFIG_TUN is not set | 524 | # CONFIG_TUN is not set |
| 582 | 525 | # CONFIG_VETH is not set | |
| 583 | # | ||
| 584 | # PHY device support | ||
| 585 | # | ||
| 586 | # CONFIG_PHYLIB is not set | 526 | # CONFIG_PHYLIB is not set |
| 587 | |||
| 588 | # | ||
| 589 | # Ethernet (10 or 100Mbit) | ||
| 590 | # | ||
| 591 | CONFIG_NET_ETHERNET=y | 527 | CONFIG_NET_ETHERNET=y |
| 592 | # CONFIG_MII is not set | 528 | # CONFIG_MII is not set |
| 529 | # CONFIG_AX88796 is not set | ||
| 593 | # CONFIG_STNIC is not set | 530 | # CONFIG_STNIC is not set |
| 594 | # CONFIG_SMC91X is not set | 531 | # CONFIG_SMC91X is not set |
| 532 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
| 533 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
| 534 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
| 535 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
| 536 | # CONFIG_B44 is not set | ||
| 537 | CONFIG_NETDEV_1000=y | ||
| 538 | # CONFIG_E1000E_ENABLED is not set | ||
| 539 | CONFIG_NETDEV_10000=y | ||
| 595 | 540 | ||
| 596 | # | 541 | # |
| 597 | # Ethernet (1000 Mbit) | 542 | # Wireless LAN |
| 598 | # | ||
| 599 | |||
| 600 | # | ||
| 601 | # Ethernet (10000 Mbit) | ||
| 602 | # | ||
| 603 | |||
| 604 | # | ||
| 605 | # Token Ring devices | ||
| 606 | # | ||
| 607 | |||
| 608 | # | ||
| 609 | # Wireless LAN (non-hamradio) | ||
| 610 | # | ||
| 611 | # CONFIG_NET_RADIO is not set | ||
| 612 | |||
| 613 | # | ||
| 614 | # Wan interfaces | ||
| 615 | # | 543 | # |
| 544 | # CONFIG_WLAN_PRE80211 is not set | ||
| 545 | # CONFIG_WLAN_80211 is not set | ||
| 616 | # CONFIG_WAN is not set | 546 | # CONFIG_WAN is not set |
| 617 | # CONFIG_PPP is not set | 547 | # CONFIG_PPP is not set |
| 618 | # CONFIG_SLIP is not set | 548 | # CONFIG_SLIP is not set |
| 619 | # CONFIG_SHAPER is not set | ||
| 620 | # CONFIG_NETCONSOLE is not set | 549 | # CONFIG_NETCONSOLE is not set |
| 621 | # CONFIG_NETPOLL is not set | 550 | # CONFIG_NETPOLL is not set |
| 622 | # CONFIG_NET_POLL_CONTROLLER is not set | 551 | # CONFIG_NET_POLL_CONTROLLER is not set |
| 623 | |||
| 624 | # | ||
| 625 | # ISDN subsystem | ||
| 626 | # | ||
| 627 | # CONFIG_ISDN is not set | 552 | # CONFIG_ISDN is not set |
| 628 | |||
| 629 | # | ||
| 630 | # Telephony Support | ||
| 631 | # | ||
| 632 | CONFIG_PHONE=y | 553 | CONFIG_PHONE=y |
| 633 | # CONFIG_PHONE_IXJ is not set | ||
| 634 | 554 | ||
| 635 | # | 555 | # |
| 636 | # Input device support | 556 | # Input device support |
| 637 | # | 557 | # |
| 638 | CONFIG_INPUT=y | 558 | CONFIG_INPUT=y |
| 639 | # CONFIG_INPUT_FF_MEMLESS is not set | 559 | # CONFIG_INPUT_FF_MEMLESS is not set |
| 560 | # CONFIG_INPUT_POLLDEV is not set | ||
| 640 | 561 | ||
| 641 | # | 562 | # |
| 642 | # Userland interfaces | 563 | # Userland interfaces |
| 643 | # | 564 | # |
| 644 | # CONFIG_INPUT_MOUSEDEV is not set | 565 | # CONFIG_INPUT_MOUSEDEV is not set |
| 645 | # CONFIG_INPUT_JOYDEV is not set | 566 | # CONFIG_INPUT_JOYDEV is not set |
| 646 | # CONFIG_INPUT_TSDEV is not set | ||
| 647 | # CONFIG_INPUT_EVDEV is not set | 567 | # CONFIG_INPUT_EVDEV is not set |
| 648 | # CONFIG_INPUT_EVBUG is not set | 568 | # CONFIG_INPUT_EVBUG is not set |
| 649 | 569 | ||
| @@ -653,6 +573,7 @@ CONFIG_INPUT=y | |||
| 653 | # CONFIG_INPUT_KEYBOARD is not set | 573 | # CONFIG_INPUT_KEYBOARD is not set |
| 654 | # CONFIG_INPUT_MOUSE is not set | 574 | # CONFIG_INPUT_MOUSE is not set |
| 655 | # CONFIG_INPUT_JOYSTICK is not set | 575 | # CONFIG_INPUT_JOYSTICK is not set |
| 576 | # CONFIG_INPUT_TABLET is not set | ||
| 656 | # CONFIG_INPUT_TOUCHSCREEN is not set | 577 | # CONFIG_INPUT_TOUCHSCREEN is not set |
| 657 | # CONFIG_INPUT_MISC is not set | 578 | # CONFIG_INPUT_MISC is not set |
| 658 | 579 | ||
| @@ -684,35 +605,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
| 684 | # CONFIG_UNIX98_PTYS is not set | 605 | # CONFIG_UNIX98_PTYS is not set |
| 685 | CONFIG_LEGACY_PTYS=y | 606 | CONFIG_LEGACY_PTYS=y |
| 686 | CONFIG_LEGACY_PTY_COUNT=256 | 607 | CONFIG_LEGACY_PTY_COUNT=256 |
| 687 | |||
| 688 | # | ||
| 689 | # IPMI | ||
| 690 | # | ||
| 691 | # CONFIG_IPMI_HANDLER is not set | 608 | # CONFIG_IPMI_HANDLER is not set |
| 692 | |||
| 693 | # | ||
| 694 | # Watchdog Cards | ||
| 695 | # | ||
| 696 | # CONFIG_WATCHDOG is not set | ||
| 697 | CONFIG_HW_RANDOM=y | 609 | CONFIG_HW_RANDOM=y |
| 698 | # CONFIG_GEN_RTC is not set | ||
| 699 | # CONFIG_DTLK is not set | ||
| 700 | # CONFIG_R3964 is not set | 610 | # CONFIG_R3964 is not set |
| 701 | |||
| 702 | # | ||
| 703 | # Ftape, the floppy tape device driver | ||
| 704 | # | ||
| 705 | # CONFIG_RAW_DRIVER is not set | 611 | # CONFIG_RAW_DRIVER is not set |
| 706 | |||
| 707 | # | ||
| 708 | # TPM devices | ||
| 709 | # | ||
| 710 | # CONFIG_TCG_TPM is not set | 612 | # CONFIG_TCG_TPM is not set |
| 711 | # CONFIG_TELCLOCK is not set | ||
| 712 | |||
| 713 | # | ||
| 714 | # I2C support | ||
| 715 | # | ||
| 716 | # CONFIG_I2C is not set | 613 | # CONFIG_I2C is not set |
| 717 | 614 | ||
| 718 | # | 615 | # |
| @@ -720,119 +617,86 @@ CONFIG_HW_RANDOM=y | |||
| 720 | # | 617 | # |
| 721 | # CONFIG_SPI is not set | 618 | # CONFIG_SPI is not set |
| 722 | # CONFIG_SPI_MASTER is not set | 619 | # CONFIG_SPI_MASTER is not set |
| 620 | # CONFIG_W1 is not set | ||
| 621 | # CONFIG_POWER_SUPPLY is not set | ||
| 622 | # CONFIG_HWMON is not set | ||
| 623 | CONFIG_THERMAL=y | ||
| 624 | # CONFIG_WATCHDOG is not set | ||
| 723 | 625 | ||
| 724 | # | 626 | # |
| 725 | # Dallas's 1-wire bus | 627 | # Sonics Silicon Backplane |
| 726 | # | ||
| 727 | |||
| 728 | # | ||
| 729 | # Hardware Monitoring support | ||
| 730 | # | 628 | # |
| 731 | # CONFIG_HWMON is not set | 629 | CONFIG_SSB_POSSIBLE=y |
| 732 | # CONFIG_HWMON_VID is not set | 630 | # CONFIG_SSB is not set |
| 733 | 631 | ||
| 734 | # | 632 | # |
| 735 | # Misc devices | 633 | # Multifunction device drivers |
| 736 | # | 634 | # |
| 635 | # CONFIG_MFD_SM501 is not set | ||
| 737 | 636 | ||
| 738 | # | 637 | # |
| 739 | # Multimedia devices | 638 | # Multimedia devices |
| 740 | # | 639 | # |
| 741 | # CONFIG_VIDEO_DEV is not set | 640 | # CONFIG_VIDEO_DEV is not set |
| 742 | CONFIG_VIDEO_V4L2=y | 641 | # CONFIG_DVB_CORE is not set |
| 743 | 642 | # CONFIG_DAB is not set | |
| 744 | # | ||
| 745 | # Digital Video Broadcasting Devices | ||
| 746 | # | ||
| 747 | # CONFIG_DVB is not set | ||
| 748 | 643 | ||
| 749 | # | 644 | # |
| 750 | # Graphics support | 645 | # Graphics support |
| 751 | # | 646 | # |
| 752 | CONFIG_FIRMWARE_EDID=y | 647 | # CONFIG_VGASTATE is not set |
| 648 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
| 753 | # CONFIG_FB is not set | 649 | # CONFIG_FB is not set |
| 754 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 650 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
| 755 | 651 | ||
| 756 | # | 652 | # |
| 757 | # Sound | 653 | # Display device support |
| 758 | # | 654 | # |
| 759 | # CONFIG_SOUND is not set | 655 | # CONFIG_DISPLAY_SUPPORT is not set |
| 760 | 656 | ||
| 761 | # | 657 | # |
| 762 | # USB support | 658 | # Sound |
| 763 | # | 659 | # |
| 764 | # CONFIG_USB_ARCH_HAS_HCD is not set | 660 | # CONFIG_SOUND is not set |
| 661 | CONFIG_HID_SUPPORT=y | ||
| 662 | CONFIG_HID=y | ||
| 663 | # CONFIG_HID_DEBUG is not set | ||
| 664 | # CONFIG_HIDRAW is not set | ||
| 665 | CONFIG_USB_SUPPORT=y | ||
| 666 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 765 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 667 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
| 766 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 668 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
| 669 | # CONFIG_USB is not set | ||
| 767 | 670 | ||
| 768 | # | 671 | # |
| 769 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 672 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
| 770 | # | 673 | # |
| 771 | |||
| 772 | # | ||
| 773 | # USB Gadget Support | ||
| 774 | # | ||
| 775 | # CONFIG_USB_GADGET is not set | 674 | # CONFIG_USB_GADGET is not set |
| 776 | |||
| 777 | # | ||
| 778 | # MMC/SD Card support | ||
| 779 | # | ||
| 780 | # CONFIG_MMC is not set | 675 | # CONFIG_MMC is not set |
| 781 | 676 | # CONFIG_MEMSTICK is not set | |
| 782 | # | ||
| 783 | # LED devices | ||
| 784 | # | ||
| 785 | # CONFIG_NEW_LEDS is not set | 677 | # CONFIG_NEW_LEDS is not set |
| 786 | |||
| 787 | # | ||
| 788 | # LED drivers | ||
| 789 | # | ||
| 790 | |||
| 791 | # | ||
| 792 | # LED Triggers | ||
| 793 | # | ||
| 794 | |||
| 795 | # | ||
| 796 | # InfiniBand support | ||
| 797 | # | ||
| 798 | |||
| 799 | # | ||
| 800 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
| 801 | # | ||
| 802 | |||
| 803 | # | ||
| 804 | # Real Time Clock | ||
| 805 | # | ||
| 806 | # CONFIG_RTC_CLASS is not set | 678 | # CONFIG_RTC_CLASS is not set |
| 807 | 679 | ||
| 808 | # | 680 | # |
| 809 | # DMA Engine support | 681 | # Userspace I/O |
| 810 | # | ||
| 811 | # CONFIG_DMA_ENGINE is not set | ||
| 812 | |||
| 813 | # | ||
| 814 | # DMA Clients | ||
| 815 | # | ||
| 816 | |||
| 817 | # | ||
| 818 | # DMA Devices | ||
| 819 | # | 682 | # |
| 683 | # CONFIG_UIO is not set | ||
| 820 | 684 | ||
| 821 | # | 685 | # |
| 822 | # File systems | 686 | # File systems |
| 823 | # | 687 | # |
| 824 | # CONFIG_EXT2_FS is not set | 688 | # CONFIG_EXT2_FS is not set |
| 825 | # CONFIG_EXT3_FS is not set | 689 | # CONFIG_EXT3_FS is not set |
| 690 | # CONFIG_EXT4DEV_FS is not set | ||
| 826 | # CONFIG_REISERFS_FS is not set | 691 | # CONFIG_REISERFS_FS is not set |
| 827 | # CONFIG_JFS_FS is not set | 692 | # CONFIG_JFS_FS is not set |
| 828 | # CONFIG_FS_POSIX_ACL is not set | 693 | # CONFIG_FS_POSIX_ACL is not set |
| 829 | # CONFIG_XFS_FS is not set | 694 | # CONFIG_XFS_FS is not set |
| 695 | # CONFIG_GFS2_FS is not set | ||
| 830 | # CONFIG_OCFS2_FS is not set | 696 | # CONFIG_OCFS2_FS is not set |
| 831 | # CONFIG_MINIX_FS is not set | 697 | # CONFIG_DNOTIFY is not set |
| 832 | # CONFIG_ROMFS_FS is not set | ||
| 833 | # CONFIG_INOTIFY is not set | 698 | # CONFIG_INOTIFY is not set |
| 834 | # CONFIG_QUOTA is not set | 699 | # CONFIG_QUOTA is not set |
| 835 | # CONFIG_DNOTIFY is not set | ||
| 836 | # CONFIG_AUTOFS_FS is not set | 700 | # CONFIG_AUTOFS_FS is not set |
| 837 | # CONFIG_AUTOFS4_FS is not set | 701 | # CONFIG_AUTOFS4_FS is not set |
| 838 | # CONFIG_FUSE_FS is not set | 702 | # CONFIG_FUSE_FS is not set |
| @@ -861,7 +725,6 @@ CONFIG_TMPFS=y | |||
| 861 | # CONFIG_TMPFS_POSIX_ACL is not set | 725 | # CONFIG_TMPFS_POSIX_ACL is not set |
| 862 | # CONFIG_HUGETLBFS is not set | 726 | # CONFIG_HUGETLBFS is not set |
| 863 | # CONFIG_HUGETLB_PAGE is not set | 727 | # CONFIG_HUGETLB_PAGE is not set |
| 864 | CONFIG_RAMFS=y | ||
| 865 | # CONFIG_CONFIGFS_FS is not set | 728 | # CONFIG_CONFIGFS_FS is not set |
| 866 | 729 | ||
| 867 | # | 730 | # |
| @@ -874,26 +737,26 @@ CONFIG_RAMFS=y | |||
| 874 | # CONFIG_BEFS_FS is not set | 737 | # CONFIG_BEFS_FS is not set |
| 875 | # CONFIG_BFS_FS is not set | 738 | # CONFIG_BFS_FS is not set |
| 876 | # CONFIG_EFS_FS is not set | 739 | # CONFIG_EFS_FS is not set |
| 877 | # CONFIG_JFFS_FS is not set | ||
| 878 | CONFIG_JFFS2_FS=y | 740 | CONFIG_JFFS2_FS=y |
| 879 | CONFIG_JFFS2_FS_DEBUG=0 | 741 | CONFIG_JFFS2_FS_DEBUG=0 |
| 880 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 742 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
| 743 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
| 881 | # CONFIG_JFFS2_SUMMARY is not set | 744 | # CONFIG_JFFS2_SUMMARY is not set |
| 882 | # CONFIG_JFFS2_FS_XATTR is not set | 745 | # CONFIG_JFFS2_FS_XATTR is not set |
| 883 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | 746 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
| 884 | CONFIG_JFFS2_ZLIB=y | 747 | CONFIG_JFFS2_ZLIB=y |
| 748 | # CONFIG_JFFS2_LZO is not set | ||
| 885 | CONFIG_JFFS2_RTIME=y | 749 | CONFIG_JFFS2_RTIME=y |
| 886 | # CONFIG_JFFS2_RUBIN is not set | 750 | # CONFIG_JFFS2_RUBIN is not set |
| 887 | # CONFIG_CRAMFS is not set | 751 | # CONFIG_CRAMFS is not set |
| 888 | # CONFIG_VXFS_FS is not set | 752 | # CONFIG_VXFS_FS is not set |
| 753 | # CONFIG_MINIX_FS is not set | ||
| 889 | # CONFIG_HPFS_FS is not set | 754 | # CONFIG_HPFS_FS is not set |
| 890 | # CONFIG_QNX4FS_FS is not set | 755 | # CONFIG_QNX4FS_FS is not set |
| 756 | # CONFIG_ROMFS_FS is not set | ||
| 891 | # CONFIG_SYSV_FS is not set | 757 | # CONFIG_SYSV_FS is not set |
| 892 | # CONFIG_UFS_FS is not set | 758 | # CONFIG_UFS_FS is not set |
| 893 | 759 | CONFIG_NETWORK_FILESYSTEMS=y | |
| 894 | # | ||
| 895 | # Network File Systems | ||
| 896 | # | ||
| 897 | # CONFIG_NFS_FS is not set | 760 | # CONFIG_NFS_FS is not set |
| 898 | # CONFIG_NFSD is not set | 761 | # CONFIG_NFSD is not set |
| 899 | # CONFIG_SMB_FS is not set | 762 | # CONFIG_SMB_FS is not set |
| @@ -901,55 +764,97 @@ CONFIG_JFFS2_RTIME=y | |||
| 901 | # CONFIG_NCP_FS is not set | 764 | # CONFIG_NCP_FS is not set |
| 902 | # CONFIG_CODA_FS is not set | 765 | # CONFIG_CODA_FS is not set |
| 903 | # CONFIG_AFS_FS is not set | 766 | # CONFIG_AFS_FS is not set |
| 904 | # CONFIG_9P_FS is not set | ||
| 905 | 767 | ||
| 906 | # | 768 | # |
| 907 | # Partition Types | 769 | # Partition Types |
| 908 | # | 770 | # |
| 909 | # CONFIG_PARTITION_ADVANCED is not set | 771 | # CONFIG_PARTITION_ADVANCED is not set |
| 910 | CONFIG_MSDOS_PARTITION=y | 772 | CONFIG_MSDOS_PARTITION=y |
| 911 | |||
| 912 | # | ||
| 913 | # Native Language Support | ||
| 914 | # | ||
| 915 | # CONFIG_NLS is not set | 773 | # CONFIG_NLS is not set |
| 916 | 774 | # CONFIG_DLM is not set | |
| 917 | # | ||
| 918 | # Profiling support | ||
| 919 | # | ||
| 920 | # CONFIG_PROFILING is not set | ||
| 921 | 775 | ||
| 922 | # | 776 | # |
| 923 | # Kernel hacking | 777 | # Kernel hacking |
| 924 | # | 778 | # |
| 779 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
| 925 | # CONFIG_PRINTK_TIME is not set | 780 | # CONFIG_PRINTK_TIME is not set |
| 781 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
| 926 | CONFIG_ENABLE_MUST_CHECK=y | 782 | CONFIG_ENABLE_MUST_CHECK=y |
| 927 | # CONFIG_MAGIC_SYSRQ is not set | 783 | # CONFIG_MAGIC_SYSRQ is not set |
| 928 | # CONFIG_UNUSED_SYMBOLS is not set | 784 | # CONFIG_UNUSED_SYMBOLS is not set |
| 785 | CONFIG_DEBUG_FS=y | ||
| 786 | # CONFIG_HEADERS_CHECK is not set | ||
| 929 | # CONFIG_DEBUG_KERNEL is not set | 787 | # CONFIG_DEBUG_KERNEL is not set |
| 930 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 931 | # CONFIG_DEBUG_BUGVERBOSE is not set | 788 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 932 | # CONFIG_DEBUG_FS is not set | 789 | # CONFIG_SAMPLES is not set |
| 933 | # CONFIG_SH_STANDARD_BIOS is not set | 790 | # CONFIG_SH_STANDARD_BIOS is not set |
| 934 | # CONFIG_KGDB is not set | 791 | # CONFIG_EARLY_SCIF_CONSOLE is not set |
| 792 | # CONFIG_SH_KGDB is not set | ||
| 935 | 793 | ||
| 936 | # | 794 | # |
| 937 | # Security options | 795 | # Security options |
| 938 | # | 796 | # |
| 939 | # CONFIG_KEYS is not set | 797 | # CONFIG_KEYS is not set |
| 940 | # CONFIG_SECURITY is not set | 798 | # CONFIG_SECURITY is not set |
| 941 | 799 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | |
| 942 | # | 800 | CONFIG_CRYPTO=y |
| 943 | # Cryptographic options | 801 | # CONFIG_CRYPTO_SEQIV is not set |
| 944 | # | 802 | # CONFIG_CRYPTO_MANAGER is not set |
| 945 | # CONFIG_CRYPTO is not set | 803 | # CONFIG_CRYPTO_HMAC is not set |
| 804 | # CONFIG_CRYPTO_XCBC is not set | ||
| 805 | # CONFIG_CRYPTO_NULL is not set | ||
| 806 | # CONFIG_CRYPTO_MD4 is not set | ||
| 807 | # CONFIG_CRYPTO_MD5 is not set | ||
| 808 | # CONFIG_CRYPTO_SHA1 is not set | ||
| 809 | # CONFIG_CRYPTO_SHA256 is not set | ||
| 810 | # CONFIG_CRYPTO_SHA512 is not set | ||
| 811 | # CONFIG_CRYPTO_WP512 is not set | ||
| 812 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 813 | # CONFIG_CRYPTO_GF128MUL is not set | ||
| 814 | # CONFIG_CRYPTO_ECB is not set | ||
| 815 | # CONFIG_CRYPTO_CBC is not set | ||
| 816 | # CONFIG_CRYPTO_PCBC is not set | ||
| 817 | # CONFIG_CRYPTO_LRW is not set | ||
| 818 | # CONFIG_CRYPTO_XTS is not set | ||
| 819 | # CONFIG_CRYPTO_CTR is not set | ||
| 820 | # CONFIG_CRYPTO_GCM is not set | ||
| 821 | # CONFIG_CRYPTO_CCM is not set | ||
| 822 | # CONFIG_CRYPTO_CRYPTD is not set | ||
| 823 | # CONFIG_CRYPTO_DES is not set | ||
| 824 | # CONFIG_CRYPTO_FCRYPT is not set | ||
| 825 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
| 826 | # CONFIG_CRYPTO_TWOFISH is not set | ||
| 827 | # CONFIG_CRYPTO_SERPENT is not set | ||
| 828 | # CONFIG_CRYPTO_AES is not set | ||
| 829 | # CONFIG_CRYPTO_CAST5 is not set | ||
| 830 | # CONFIG_CRYPTO_CAST6 is not set | ||
| 831 | # CONFIG_CRYPTO_TEA is not set | ||
| 832 | # CONFIG_CRYPTO_ARC4 is not set | ||
| 833 | # CONFIG_CRYPTO_KHAZAD is not set | ||
| 834 | # CONFIG_CRYPTO_ANUBIS is not set | ||
| 835 | # CONFIG_CRYPTO_SEED is not set | ||
| 836 | # CONFIG_CRYPTO_SALSA20 is not set | ||
| 837 | # CONFIG_CRYPTO_DEFLATE is not set | ||
| 838 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
| 839 | # CONFIG_CRYPTO_CRC32C is not set | ||
| 840 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
| 841 | # CONFIG_CRYPTO_TEST is not set | ||
| 842 | # CONFIG_CRYPTO_AUTHENC is not set | ||
| 843 | # CONFIG_CRYPTO_LZO is not set | ||
| 844 | CONFIG_CRYPTO_HW=y | ||
| 946 | 845 | ||
| 947 | # | 846 | # |
| 948 | # Library routines | 847 | # Library routines |
| 949 | # | 848 | # |
| 849 | CONFIG_BITREVERSE=y | ||
| 950 | # CONFIG_CRC_CCITT is not set | 850 | # CONFIG_CRC_CCITT is not set |
| 951 | # CONFIG_CRC16 is not set | 851 | # CONFIG_CRC16 is not set |
| 852 | # CONFIG_CRC_ITU_T is not set | ||
| 952 | CONFIG_CRC32=y | 853 | CONFIG_CRC32=y |
| 854 | # CONFIG_CRC7 is not set | ||
| 953 | # CONFIG_LIBCRC32C is not set | 855 | # CONFIG_LIBCRC32C is not set |
| 954 | CONFIG_ZLIB_INFLATE=y | 856 | CONFIG_ZLIB_INFLATE=y |
| 955 | CONFIG_ZLIB_DEFLATE=y | 857 | CONFIG_ZLIB_DEFLATE=y |
| 858 | CONFIG_HAS_IOMEM=y | ||
| 859 | CONFIG_HAS_IOPORT=y | ||
| 860 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/sh/drivers/dma/dma-sh.c b/arch/sh/drivers/dma/dma-sh.c index 5c3359756a92..71ff3d6f26e2 100644 --- a/arch/sh/drivers/dma/dma-sh.c +++ b/arch/sh/drivers/dma/dma-sh.c | |||
| @@ -90,7 +90,7 @@ static irqreturn_t dma_tei(int irq, void *dev_id) | |||
| 90 | 90 | ||
| 91 | static int sh_dmac_request_dma(struct dma_channel *chan) | 91 | static int sh_dmac_request_dma(struct dma_channel *chan) |
| 92 | { | 92 | { |
| 93 | if (unlikely(!chan->flags & DMA_TEI_CAPABLE)) | 93 | if (unlikely(!(chan->flags & DMA_TEI_CAPABLE))) |
| 94 | return 0; | 94 | return 0; |
| 95 | 95 | ||
| 96 | return request_irq(get_dmte_irq(chan->chan), dma_tei, | 96 | return request_irq(get_dmte_irq(chan->chan), dma_tei, |
diff --git a/arch/sh/drivers/heartbeat.c b/arch/sh/drivers/heartbeat.c index b76a14f12ce2..ab77b0e0fa0e 100644 --- a/arch/sh/drivers/heartbeat.c +++ b/arch/sh/drivers/heartbeat.c | |||
| @@ -93,7 +93,7 @@ static int heartbeat_drv_probe(struct platform_device *pdev) | |||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | hd->base = ioremap_nocache(res->start, res->end - res->start + 1); | 95 | hd->base = ioremap_nocache(res->start, res->end - res->start + 1); |
| 96 | if (!unlikely(hd->base)) { | 96 | if (unlikely(!hd->base)) { |
| 97 | dev_err(&pdev->dev, "ioremap failed\n"); | 97 | dev_err(&pdev->dev, "ioremap failed\n"); |
| 98 | 98 | ||
| 99 | if (!pdev->dev.platform_data) | 99 | if (!pdev->dev.platform_data) |
diff --git a/arch/sh/drivers/pci/ops-dreamcast.c b/arch/sh/drivers/pci/ops-dreamcast.c index 0dac87b19624..e1284fc69361 100644 --- a/arch/sh/drivers/pci/ops-dreamcast.c +++ b/arch/sh/drivers/pci/ops-dreamcast.c | |||
| @@ -83,9 +83,9 @@ static int gapspci_read(struct pci_bus *bus, unsigned int devfn, int where, int | |||
| 83 | return PCIBIOS_DEVICE_NOT_FOUND; | 83 | return PCIBIOS_DEVICE_NOT_FOUND; |
| 84 | 84 | ||
| 85 | switch (size) { | 85 | switch (size) { |
| 86 | case 1: *val = ctrl_inb(GAPSPCI_BBA_CONFIG+where); break; | 86 | case 1: *val = inb(GAPSPCI_BBA_CONFIG+where); break; |
| 87 | case 2: *val = ctrl_inw(GAPSPCI_BBA_CONFIG+where); break; | 87 | case 2: *val = inw(GAPSPCI_BBA_CONFIG+where); break; |
| 88 | case 4: *val = ctrl_inl(GAPSPCI_BBA_CONFIG+where); break; | 88 | case 4: *val = inl(GAPSPCI_BBA_CONFIG+where); break; |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | return PCIBIOS_SUCCESSFUL; | 91 | return PCIBIOS_SUCCESSFUL; |
| @@ -97,9 +97,9 @@ static int gapspci_write(struct pci_bus *bus, unsigned int devfn, int where, int | |||
| 97 | return PCIBIOS_DEVICE_NOT_FOUND; | 97 | return PCIBIOS_DEVICE_NOT_FOUND; |
| 98 | 98 | ||
| 99 | switch (size) { | 99 | switch (size) { |
| 100 | case 1: ctrl_outb(( u8)val, GAPSPCI_BBA_CONFIG+where); break; | 100 | case 1: outb(( u8)val, GAPSPCI_BBA_CONFIG+where); break; |
| 101 | case 2: ctrl_outw((u16)val, GAPSPCI_BBA_CONFIG+where); break; | 101 | case 2: outw((u16)val, GAPSPCI_BBA_CONFIG+where); break; |
| 102 | case 4: ctrl_outl((u32)val, GAPSPCI_BBA_CONFIG+where); break; | 102 | case 4: outl((u32)val, GAPSPCI_BBA_CONFIG+where); break; |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | return PCIBIOS_SUCCESSFUL; | 105 | return PCIBIOS_SUCCESSFUL; |
| @@ -127,36 +127,36 @@ int __init gapspci_init(void) | |||
| 127 | */ | 127 | */ |
| 128 | 128 | ||
| 129 | for (i=0; i<16; i++) | 129 | for (i=0; i<16; i++) |
| 130 | idbuf[i] = ctrl_inb(GAPSPCI_REGS+i); | 130 | idbuf[i] = inb(GAPSPCI_REGS+i); |
| 131 | 131 | ||
| 132 | if (strncmp(idbuf, "GAPSPCI_BRIDGE_2", 16)) | 132 | if (strncmp(idbuf, "GAPSPCI_BRIDGE_2", 16)) |
| 133 | return -ENODEV; | 133 | return -ENODEV; |
| 134 | 134 | ||
| 135 | ctrl_outl(0x5a14a501, GAPSPCI_REGS+0x18); | 135 | outl(0x5a14a501, GAPSPCI_REGS+0x18); |
| 136 | 136 | ||
| 137 | for (i=0; i<1000000; i++) | 137 | for (i=0; i<1000000; i++) |
| 138 | ; | 138 | ; |
| 139 | 139 | ||
| 140 | if (ctrl_inl(GAPSPCI_REGS+0x18) != 1) | 140 | if (inl(GAPSPCI_REGS+0x18) != 1) |
| 141 | return -EINVAL; | 141 | return -EINVAL; |
| 142 | 142 | ||
| 143 | ctrl_outl(0x01000000, GAPSPCI_REGS+0x20); | 143 | outl(0x01000000, GAPSPCI_REGS+0x20); |
| 144 | ctrl_outl(0x01000000, GAPSPCI_REGS+0x24); | 144 | outl(0x01000000, GAPSPCI_REGS+0x24); |
| 145 | 145 | ||
| 146 | ctrl_outl(GAPSPCI_DMA_BASE, GAPSPCI_REGS+0x28); | 146 | outl(GAPSPCI_DMA_BASE, GAPSPCI_REGS+0x28); |
| 147 | ctrl_outl(GAPSPCI_DMA_BASE+GAPSPCI_DMA_SIZE, GAPSPCI_REGS+0x2c); | 147 | outl(GAPSPCI_DMA_BASE+GAPSPCI_DMA_SIZE, GAPSPCI_REGS+0x2c); |
| 148 | 148 | ||
| 149 | ctrl_outl(1, GAPSPCI_REGS+0x14); | 149 | outl(1, GAPSPCI_REGS+0x14); |
| 150 | ctrl_outl(1, GAPSPCI_REGS+0x34); | 150 | outl(1, GAPSPCI_REGS+0x34); |
| 151 | 151 | ||
| 152 | /* Setting Broadband Adapter */ | 152 | /* Setting Broadband Adapter */ |
| 153 | ctrl_outw(0xf900, GAPSPCI_BBA_CONFIG+0x06); | 153 | outw(0xf900, GAPSPCI_BBA_CONFIG+0x06); |
| 154 | ctrl_outl(0x00000000, GAPSPCI_BBA_CONFIG+0x30); | 154 | outl(0x00000000, GAPSPCI_BBA_CONFIG+0x30); |
| 155 | ctrl_outb(0x00, GAPSPCI_BBA_CONFIG+0x3c); | 155 | outb(0x00, GAPSPCI_BBA_CONFIG+0x3c); |
| 156 | ctrl_outb(0xf0, GAPSPCI_BBA_CONFIG+0x0d); | 156 | outb(0xf0, GAPSPCI_BBA_CONFIG+0x0d); |
| 157 | ctrl_outw(0x0006, GAPSPCI_BBA_CONFIG+0x04); | 157 | outw(0x0006, GAPSPCI_BBA_CONFIG+0x04); |
| 158 | ctrl_outl(0x00002001, GAPSPCI_BBA_CONFIG+0x10); | 158 | outl(0x00002001, GAPSPCI_BBA_CONFIG+0x10); |
| 159 | ctrl_outl(0x01000000, GAPSPCI_BBA_CONFIG+0x14); | 159 | outl(0x01000000, GAPSPCI_BBA_CONFIG+0x14); |
| 160 | 160 | ||
| 161 | return 0; | 161 | return 0; |
| 162 | } | 162 | } |
diff --git a/arch/sh/kernel/cpu/init.c b/arch/sh/kernel/cpu/init.c index 80a31329ead9..75fb03d35670 100644 --- a/arch/sh/kernel/cpu/init.c +++ b/arch/sh/kernel/cpu/init.c | |||
| @@ -233,7 +233,7 @@ static void __init dsp_init(void) | |||
| 233 | * and cache configuration in detect_cpu_and_cache_system(). | 233 | * and cache configuration in detect_cpu_and_cache_system(). |
| 234 | */ | 234 | */ |
| 235 | 235 | ||
| 236 | asmlinkage void __cpuinit sh_cpu_init(void) | 236 | asmlinkage void __init sh_cpu_init(void) |
| 237 | { | 237 | { |
| 238 | current_thread_info()->cpu = hard_smp_processor_id(); | 238 | current_thread_info()->cpu = hard_smp_processor_id(); |
| 239 | 239 | ||
diff --git a/arch/sh/kernel/cpu/sh2/setup-sh7619.c b/arch/sh/kernel/cpu/sh2/setup-sh7619.c index b230eb278cef..cc530f4d84d6 100644 --- a/arch/sh/kernel/cpu/sh2/setup-sh7619.c +++ b/arch/sh/kernel/cpu/sh2/setup-sh7619.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | enum { | 15 | enum { |
| 16 | UNUSED = 0, | 16 | UNUSED = 0, |
diff --git a/arch/sh/kernel/cpu/sh2a/clock-sh7203.c b/arch/sh/kernel/cpu/sh2a/clock-sh7203.c index 3feb95a4fcbc..fb781329848a 100644 --- a/arch/sh/kernel/cpu/sh2a/clock-sh7203.c +++ b/arch/sh/kernel/cpu/sh2a/clock-sh7203.c | |||
| @@ -21,8 +21,8 @@ | |||
| 21 | #include <asm/freq.h> | 21 | #include <asm/freq.h> |
| 22 | #include <asm/io.h> | 22 | #include <asm/io.h> |
| 23 | 23 | ||
| 24 | const static int pll1rate[]={8,12,16,0}; | 24 | static const int pll1rate[]={8,12,16,0}; |
| 25 | const static int pfc_divisors[]={1,2,3,4,6,8,12}; | 25 | static const int pfc_divisors[]={1,2,3,4,6,8,12}; |
| 26 | #define ifc_divisors pfc_divisors | 26 | #define ifc_divisors pfc_divisors |
| 27 | 27 | ||
| 28 | #if (CONFIG_SH_CLK_MD == 0) | 28 | #if (CONFIG_SH_CLK_MD == 0) |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c index db6ef5cecde1..e98dc4450352 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | enum { | 15 | enum { |
| 16 | UNUSED = 0, | 16 | UNUSED = 0, |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c index a564425b905f..e6d4ec445dd8 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | enum { | 15 | enum { |
| 16 | UNUSED = 0, | 16 | UNUSED = 0, |
diff --git a/arch/sh/kernel/cpu/sh3/probe.c b/arch/sh/kernel/cpu/sh3/probe.c index fcc80bb7bee7..10f2a760c5ee 100644 --- a/arch/sh/kernel/cpu/sh3/probe.c +++ b/arch/sh/kernel/cpu/sh3/probe.c | |||
| @@ -94,9 +94,9 @@ int __uses_jump_to_uncached detect_cpu_and_cache_system(void) | |||
| 94 | boot_cpu_data.dcache.way_incr = (1 << 13); | 94 | boot_cpu_data.dcache.way_incr = (1 << 13); |
| 95 | boot_cpu_data.dcache.entry_mask = 0x1ff0; | 95 | boot_cpu_data.dcache.entry_mask = 0x1ff0; |
| 96 | boot_cpu_data.dcache.sets = 512; | 96 | boot_cpu_data.dcache.sets = 512; |
| 97 | ctrl_outl(CCR_CACHE_32KB, CCR3); | 97 | ctrl_outl(CCR_CACHE_32KB, CCR3_REG); |
| 98 | #else | 98 | #else |
| 99 | ctrl_outl(CCR_CACHE_16KB, CCR3); | 99 | ctrl_outl(CCR_CACHE_16KB, CCR3_REG); |
| 100 | #endif | 100 | #endif |
| 101 | #endif | 101 | #endif |
| 102 | } | 102 | } |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c index dd0a20a685f7..f581534cb732 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
| 14 | #include <linux/serial.h> | 14 | #include <linux/serial.h> |
| 15 | #include <asm/sci.h> | 15 | #include <linux/serial_sci.h> |
| 16 | #include <asm/rtc.h> | 16 | #include <asm/rtc.h> |
| 17 | 17 | ||
| 18 | enum { | 18 | enum { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh770x.c b/arch/sh/kernel/cpu/sh3/setup-sh770x.c index 969804bb523b..d3733b13ea52 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include <linux/irq.h> | 16 | #include <linux/irq.h> |
| 17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
| 18 | #include <linux/serial.h> | 18 | #include <linux/serial.h> |
| 19 | #include <asm/sci.h> | 19 | #include <linux/serial_sci.h> |
| 20 | 20 | ||
| 21 | enum { | 21 | enum { |
| 22 | UNUSED = 0, | 22 | UNUSED = 0, |
| @@ -123,15 +123,15 @@ static struct resource rtc_resources[] = { | |||
| 123 | .flags = IORESOURCE_IO, | 123 | .flags = IORESOURCE_IO, |
| 124 | }, | 124 | }, |
| 125 | [1] = { | 125 | [1] = { |
| 126 | .start = 20, | 126 | .start = 21, |
| 127 | .flags = IORESOURCE_IRQ, | 127 | .flags = IORESOURCE_IRQ, |
| 128 | }, | 128 | }, |
| 129 | [2] = { | 129 | [2] = { |
| 130 | .start = 21, | 130 | .start = 22, |
| 131 | .flags = IORESOURCE_IRQ, | 131 | .flags = IORESOURCE_IRQ, |
| 132 | }, | 132 | }, |
| 133 | [3] = { | 133 | [3] = { |
| 134 | .start = 22, | 134 | .start = 20, |
| 135 | .flags = IORESOURCE_IRQ, | 135 | .flags = IORESOURCE_IRQ, |
| 136 | }, | 136 | }, |
| 137 | }; | 137 | }; |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c index 0cc0e2bf135d..7406c9ad9259 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
| 14 | #include <linux/serial.h> | 14 | #include <linux/serial.h> |
| 15 | #include <asm/sci.h> | 15 | #include <linux/serial_sci.h> |
| 16 | #include <asm/rtc.h> | 16 | #include <asm/rtc.h> |
| 17 | 17 | ||
| 18 | enum { | 18 | enum { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7720.c b/arch/sh/kernel/cpu/sh3/setup-sh7720.c index 3855ea4c21c8..8028082527c5 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7720.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7720.c | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
| 17 | #include <linux/serial.h> | 17 | #include <linux/serial.h> |
| 18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
| 19 | #include <asm/sci.h> | 19 | #include <linux/serial_sci.h> |
| 20 | #include <asm/rtc.h> | 20 | #include <asm/rtc.h> |
| 21 | 21 | ||
| 22 | #define INTC_ICR1 0xA4140010UL | 22 | #define INTC_ICR1 0xA4140010UL |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c index dab193293f20..7371abf64f80 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | static struct plat_sci_port sci_platform_data[] = { | 15 | static struct plat_sci_port sci_platform_data[] = { |
| 16 | { | 16 | { |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c index ae3603aca615..ec884039b914 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/serial.h> | 13 | #include <linux/serial.h> |
| 14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
| 15 | #include <asm/sci.h> | 15 | #include <linux/serial_sci.h> |
| 16 | 16 | ||
| 17 | static struct resource rtc_resources[] = { | 17 | static struct resource rtc_resources[] = { |
| 18 | [0] = { | 18 | [0] = { |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7760.c b/arch/sh/kernel/cpu/sh4/setup-sh7760.c index 85f81579b97e..254c5c55ab91 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7760.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7760.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | enum { | 15 | enum { |
| 16 | UNUSED = 0, | 16 | UNUSED = 0, |
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c index 8250e017bd4e..9561b02ade0e 100644 --- a/arch/sh/kernel/cpu/sh4/sq.c +++ b/arch/sh/kernel/cpu/sh4/sq.c | |||
| @@ -216,7 +216,7 @@ void sq_unmap(unsigned long vaddr) | |||
| 216 | 216 | ||
| 217 | if (unlikely(!map)) { | 217 | if (unlikely(!map)) { |
| 218 | printk("%s: bad store queue address 0x%08lx\n", | 218 | printk("%s: bad store queue address 0x%08lx\n", |
| 219 | __FUNCTION__, vaddr); | 219 | __func__, vaddr); |
| 220 | return; | 220 | return; |
| 221 | } | 221 | } |
| 222 | 222 | ||
| @@ -233,7 +233,7 @@ void sq_unmap(unsigned long vaddr) | |||
| 233 | vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK)); | 233 | vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK)); |
| 234 | if (!vma) { | 234 | if (!vma) { |
| 235 | printk(KERN_ERR "%s: bad address 0x%08lx\n", | 235 | printk(KERN_ERR "%s: bad address 0x%08lx\n", |
| 236 | __FUNCTION__, map->sq_addr); | 236 | __func__, map->sq_addr); |
| 237 | return; | 237 | return; |
| 238 | } | 238 | } |
| 239 | } | 239 | } |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c index c0a3f079dfdc..6d4f50cd4aaf 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | static struct plat_sci_port sci_platform_data[] = { | 15 | static struct plat_sci_port sci_platform_data[] = { |
| 16 | { | 16 | { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c index 967e8b69a2f8..f26b5cdad0d1 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/serial.h> | 14 | #include <linux/serial.h> |
| 15 | #include <asm/sci.h> | 15 | #include <linux/serial_sci.h> |
| 16 | 16 | ||
| 17 | static struct plat_sci_port sci_platform_data[] = { | 17 | static struct plat_sci_port sci_platform_data[] = { |
| 18 | { | 18 | { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c index 73c778d40d13..b98b4bc93ec9 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | |||
| @@ -10,9 +10,9 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <linux/serial_sci.h> | ||
| 13 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
| 14 | #include <asm/mmzone.h> | 15 | #include <asm/mmzone.h> |
| 15 | #include <asm/sci.h> | ||
| 16 | 16 | ||
| 17 | static struct resource usbf_resources[] = { | 17 | static struct resource usbf_resources[] = { |
| 18 | [0] = { | 18 | [0] = { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c index eabd5386812d..07c988dc9de6 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/serial.h> | 13 | #include <linux/serial.h> |
| 14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
| 15 | #include <asm/sci.h> | 15 | #include <linux/serial_sci.h> |
| 16 | 16 | ||
| 17 | static struct resource rtc_resources[] = { | 17 | static struct resource rtc_resources[] = { |
| 18 | [0] = { | 18 | [0] = { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c index 32f4f59a837b..b9cec48b1808 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <asm/sci.h> | 13 | #include <linux/serial_sci.h> |
| 14 | 14 | ||
| 15 | static struct plat_sci_port sci_platform_data[] = { | 15 | static struct plat_sci_port sci_platform_data[] = { |
| 16 | { | 16 | { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c index 293004b526ff..18dbbe23fea1 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
| 14 | #include <asm/sci.h> | 14 | #include <linux/serial_sci.h> |
| 15 | 15 | ||
| 16 | static struct resource rtc_resources[] = { | 16 | static struct resource rtc_resources[] = { |
| 17 | [0] = { | 17 | [0] = { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c index 74b60e96cdf4..621e7329ec63 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | |||
| @@ -10,10 +10,10 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <linux/serial_sci.h> | ||
| 13 | #include <linux/io.h> | 14 | #include <linux/io.h> |
| 14 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
| 15 | #include <asm/mmzone.h> | 16 | #include <asm/mmzone.h> |
| 16 | #include <asm/sci.h> | ||
| 17 | 17 | ||
| 18 | static struct plat_sci_port sci_platform_data[] = { | 18 | static struct plat_sci_port sci_platform_data[] = { |
| 19 | { | 19 | { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-shx3.c b/arch/sh/kernel/cpu/sh4a/setup-shx3.c index 4dc958b6b314..bd35f32534b9 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/setup-shx3.c | |||
| @@ -10,9 +10,9 @@ | |||
| 10 | #include <linux/platform_device.h> | 10 | #include <linux/platform_device.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/serial.h> | 12 | #include <linux/serial.h> |
| 13 | #include <linux/serial_sci.h> | ||
| 13 | #include <linux/io.h> | 14 | #include <linux/io.h> |
| 14 | #include <asm/mmzone.h> | 15 | #include <asm/mmzone.h> |
| 15 | #include <asm/sci.h> | ||
| 16 | 16 | ||
| 17 | static struct plat_sci_port sci_platform_data[] = { | 17 | static struct plat_sci_port sci_platform_data[] = { |
| 18 | { | 18 | { |
diff --git a/arch/sh/kernel/cpu/sh5/unwind.c b/arch/sh/kernel/cpu/sh5/unwind.c index 119c20afd4e5..b205b25eaf45 100644 --- a/arch/sh/kernel/cpu/sh5/unwind.c +++ b/arch/sh/kernel/cpu/sh5/unwind.c | |||
| @@ -149,7 +149,7 @@ static int lookup_prev_stack_frame(unsigned long fp, unsigned long pc, | |||
| 149 | if (dest >= 63) { | 149 | if (dest >= 63) { |
| 150 | printk(KERN_NOTICE "%s: Invalid dest reg %d " | 150 | printk(KERN_NOTICE "%s: Invalid dest reg %d " |
| 151 | "specified in movi handler. Failed " | 151 | "specified in movi handler. Failed " |
| 152 | "opcode was 0x%lx: ", __FUNCTION__, | 152 | "opcode was 0x%lx: ", __func__, |
| 153 | dest, op); | 153 | dest, op); |
| 154 | 154 | ||
| 155 | continue; | 155 | continue; |
diff --git a/arch/sh/kernel/io_trapped.c b/arch/sh/kernel/io_trapped.c index 86a665d92201..39cd7f3aec7b 100644 --- a/arch/sh/kernel/io_trapped.c +++ b/arch/sh/kernel/io_trapped.c | |||
| @@ -32,7 +32,7 @@ EXPORT_SYMBOL_GPL(trapped_mem); | |||
| 32 | #endif | 32 | #endif |
| 33 | static DEFINE_SPINLOCK(trapped_lock); | 33 | static DEFINE_SPINLOCK(trapped_lock); |
| 34 | 34 | ||
| 35 | int __init register_trapped_io(struct trapped_io *tiop) | 35 | int register_trapped_io(struct trapped_io *tiop) |
| 36 | { | 36 | { |
| 37 | struct resource *res; | 37 | struct resource *res; |
| 38 | unsigned long len = 0, flags = 0; | 38 | unsigned long len = 0, flags = 0; |
diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c index e1a6de9088b5..d80de3903271 100644 --- a/arch/sh/kernel/sh_ksyms_32.c +++ b/arch/sh/kernel/sh_ksyms_32.c | |||
| @@ -111,9 +111,9 @@ DECLARE_EXPORT(__movmem_i4_even); | |||
| 111 | DECLARE_EXPORT(__movmem_i4_odd); | 111 | DECLARE_EXPORT(__movmem_i4_odd); |
| 112 | DECLARE_EXPORT(__movmemSI12_i4); | 112 | DECLARE_EXPORT(__movmemSI12_i4); |
| 113 | 113 | ||
| 114 | #if (__GNUC_MINOR__ == 2 || defined(__GNUC_STM_RELEASE__)) | 114 | #if (__GNUC_MINOR__ >= 2 || defined(__GNUC_STM_RELEASE__)) |
| 115 | /* | 115 | /* |
| 116 | * GCC 4.2 emits these for division, as do GCC 4.1.x versions of the ST | 116 | * GCC >= 4.2 emits these for division, as do GCC 4.1.x versions of the ST |
| 117 | * compiler which include backported patches. | 117 | * compiler which include backported patches. |
| 118 | */ | 118 | */ |
| 119 | DECLARE_EXPORT(__sdivsi3_i4i); | 119 | DECLARE_EXPORT(__sdivsi3_i4i); |
| @@ -146,5 +146,6 @@ EXPORT_SYMBOL(csum_partial_copy_generic); | |||
| 146 | EXPORT_SYMBOL(csum_ipv6_magic); | 146 | EXPORT_SYMBOL(csum_ipv6_magic); |
| 147 | #endif | 147 | #endif |
| 148 | EXPORT_SYMBOL(clear_page); | 148 | EXPORT_SYMBOL(clear_page); |
| 149 | EXPORT_SYMBOL(copy_page); | ||
| 149 | EXPORT_SYMBOL(__clear_user); | 150 | EXPORT_SYMBOL(__clear_user); |
| 150 | EXPORT_SYMBOL(_ebss); | 151 | EXPORT_SYMBOL(_ebss); |
diff --git a/arch/sh/kernel/sh_ksyms_64.c b/arch/sh/kernel/sh_ksyms_64.c index 8004c38d3d37..dd38a683de65 100644 --- a/arch/sh/kernel/sh_ksyms_64.c +++ b/arch/sh/kernel/sh_ksyms_64.c | |||
| @@ -42,6 +42,7 @@ EXPORT_SYMBOL(__down_trylock); | |||
| 42 | EXPORT_SYMBOL(__up); | 42 | EXPORT_SYMBOL(__up); |
| 43 | EXPORT_SYMBOL(__put_user_asm_l); | 43 | EXPORT_SYMBOL(__put_user_asm_l); |
| 44 | EXPORT_SYMBOL(__get_user_asm_l); | 44 | EXPORT_SYMBOL(__get_user_asm_l); |
| 45 | EXPORT_SYMBOL(copy_page); | ||
| 45 | EXPORT_SYMBOL(__copy_user); | 46 | EXPORT_SYMBOL(__copy_user); |
| 46 | EXPORT_SYMBOL(memcpy); | 47 | EXPORT_SYMBOL(memcpy); |
| 47 | EXPORT_SYMBOL(__udelay); | 48 | EXPORT_SYMBOL(__udelay); |
diff --git a/arch/sh/kernel/timers/timer-cmt.c b/arch/sh/kernel/timers/timer-cmt.c index 71312324b5de..d20c8c375881 100644 --- a/arch/sh/kernel/timers/timer-cmt.c +++ b/arch/sh/kernel/timers/timer-cmt.c | |||
| @@ -77,7 +77,7 @@ static unsigned long cmt_timer_get_offset(void) | |||
| 77 | count -= LATCH; | 77 | count -= LATCH; |
| 78 | } else { | 78 | } else { |
| 79 | printk("%s (): hardware timer problem?\n", | 79 | printk("%s (): hardware timer problem?\n", |
| 80 | __FUNCTION__); | 80 | __func__); |
| 81 | } | 81 | } |
| 82 | } | 82 | } |
| 83 | } else | 83 | } else |
diff --git a/arch/sh/kernel/timers/timer-mtu2.c b/arch/sh/kernel/timers/timer-mtu2.c index ade9d6eb29f9..fe453c01f9c9 100644 --- a/arch/sh/kernel/timers/timer-mtu2.c +++ b/arch/sh/kernel/timers/timer-mtu2.c | |||
| @@ -76,7 +76,7 @@ static unsigned long mtu2_timer_get_offset(void) | |||
| 76 | count -= LATCH; | 76 | count -= LATCH; |
| 77 | } else { | 77 | } else { |
| 78 | printk("%s (): hardware timer problem?\n", | 78 | printk("%s (): hardware timer problem?\n", |
| 79 | __FUNCTION__); | 79 | __func__); |
| 80 | } | 80 | } |
| 81 | } | 81 | } |
| 82 | } else | 82 | } else |
diff --git a/arch/sh/kernel/topology.c b/arch/sh/kernel/topology.c index 9b5844a1bdaa..0838942b7083 100644 --- a/arch/sh/kernel/topology.c +++ b/arch/sh/kernel/topology.c | |||
| @@ -29,7 +29,7 @@ static int __init topology_init(void) | |||
| 29 | ret = register_cpu(&per_cpu(cpu_devices, i), i); | 29 | ret = register_cpu(&per_cpu(cpu_devices, i), i); |
| 30 | if (unlikely(ret)) | 30 | if (unlikely(ret)) |
| 31 | printk(KERN_WARNING "%s: register_cpu %d failed (%d)\n", | 31 | printk(KERN_WARNING "%s: register_cpu %d failed (%d)\n", |
| 32 | __FUNCTION__, i, ret); | 32 | __func__, i, ret); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | #if defined(CONFIG_NUMA) && !defined(CONFIG_SMP) | 35 | #if defined(CONFIG_NUMA) && !defined(CONFIG_SMP) |
diff --git a/arch/sh/kernel/traps_64.c b/arch/sh/kernel/traps_64.c index a55ac81d795b..1b58a7499087 100644 --- a/arch/sh/kernel/traps_64.c +++ b/arch/sh/kernel/traps_64.c | |||
| @@ -238,7 +238,7 @@ DO_ERROR(12, SIGILL, "reserved instruction", reserved_inst, current) | |||
| 238 | /* Called with interrupts disabled */ | 238 | /* Called with interrupts disabled */ |
| 239 | asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) | 239 | asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) |
| 240 | { | 240 | { |
| 241 | show_excp_regs(__FUNCTION__, -1, -1, regs); | 241 | show_excp_regs(__func__, -1, -1, regs); |
| 242 | die_if_kernel("exception", regs, ex); | 242 | die_if_kernel("exception", regs, ex); |
| 243 | } | 243 | } |
| 244 | 244 | ||
diff --git a/arch/sh/lib64/c-checksum.c b/arch/sh/lib64/c-checksum.c index 5dfbd8b5e558..5c284e0cff9c 100644 --- a/arch/sh/lib64/c-checksum.c +++ b/arch/sh/lib64/c-checksum.c | |||
| @@ -207,7 +207,7 @@ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, | |||
| 207 | result = (result & 0xffffffff) + (result >> 32); | 207 | result = (result & 0xffffffff) + (result >> 32); |
| 208 | 208 | ||
| 209 | pr_debug("%s saddr %x daddr %x len %x proto %x sum %x result %08Lx\n", | 209 | pr_debug("%s saddr %x daddr %x len %x proto %x sum %x result %08Lx\n", |
| 210 | __FUNCTION__, saddr, daddr, len, proto, sum, result); | 210 | __func__, saddr, daddr, len, proto, sum, result); |
| 211 | 211 | ||
| 212 | return (__wsum)result; | 212 | return (__wsum)result; |
| 213 | } | 213 | } |
diff --git a/arch/sh/lib64/udelay.c b/arch/sh/lib64/udelay.c index 23c7d17fb9f7..d76bd801194f 100644 --- a/arch/sh/lib64/udelay.c +++ b/arch/sh/lib64/udelay.c | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | * a 1GHz box, that's about 2 seconds. | 21 | * a 1GHz box, that's about 2 seconds. |
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | void __delay(int loops) | 24 | void __delay(unsigned long loops) |
| 25 | { | 25 | { |
| 26 | long long dummy; | 26 | long long dummy; |
| 27 | __asm__ __volatile__("gettr tr0, %1\n\t" | 27 | __asm__ __volatile__("gettr tr0, %1\n\t" |
| @@ -33,24 +33,17 @@ void __delay(int loops) | |||
| 33 | :"0"(loops)); | 33 | :"0"(loops)); |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | void __udelay(unsigned long long usecs, unsigned long lpj) | 36 | inline void __const_udelay(unsigned long xloops) |
| 37 | { | 37 | { |
| 38 | usecs *= (((unsigned long long) HZ << 32) / 1000000) * lpj; | 38 | __delay(xloops * (HZ * cpu_data[raw_smp_processor_id()].loops_per_jiffy)); |
| 39 | __delay((long long) usecs >> 32); | ||
| 40 | } | 39 | } |
| 41 | 40 | ||
| 42 | void __ndelay(unsigned long long nsecs, unsigned long lpj) | 41 | void __udelay(unsigned long usecs) |
| 43 | { | 42 | { |
| 44 | nsecs *= (((unsigned long long) HZ << 32) / 1000000000) * lpj; | 43 | __const_udelay(usecs * 0x000010c6); /* 2**32 / 1000000 */ |
| 45 | __delay((long long) nsecs >> 32); | ||
| 46 | } | 44 | } |
| 47 | 45 | ||
| 48 | void udelay(unsigned long usecs) | 46 | void __ndelay(unsigned long nsecs) |
| 49 | { | 47 | { |
| 50 | __udelay(usecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy); | 48 | __const_udelay(nsecs * 0x00000005); |
| 51 | } | ||
| 52 | |||
| 53 | void ndelay(unsigned long nsecs) | ||
| 54 | { | ||
| 55 | __ndelay(nsecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy); | ||
| 56 | } | 49 | } |
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index f549b8cd2501..5fd218430b19 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
| @@ -59,7 +59,7 @@ config 32BIT | |||
| 59 | 59 | ||
| 60 | config PMB | 60 | config PMB |
| 61 | bool "Support 32-bit physical addressing through PMB" | 61 | bool "Support 32-bit physical addressing through PMB" |
| 62 | depends on MMU && (CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785) | 62 | depends on MMU && EXPERIMENTAL && (CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785) |
| 63 | select 32BIT | 63 | select 32BIT |
| 64 | default y | 64 | default y |
| 65 | help | 65 | help |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index e2ed6dd252b9..53dde0607362 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
| @@ -328,7 +328,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
| 328 | /* We only have ZONE_NORMAL, so this is easy.. */ | 328 | /* We only have ZONE_NORMAL, so this is easy.. */ |
| 329 | ret = __add_pages(pgdat->node_zones + ZONE_NORMAL, start_pfn, nr_pages); | 329 | ret = __add_pages(pgdat->node_zones + ZONE_NORMAL, start_pfn, nr_pages); |
| 330 | if (unlikely(ret)) | 330 | if (unlikely(ret)) |
| 331 | printk("%s: Failed, __add_pages() == %d\n", __FUNCTION__, ret); | 331 | printk("%s: Failed, __add_pages() == %d\n", __func__, ret); |
| 332 | 332 | ||
| 333 | return ret; | 333 | return ret; |
| 334 | } | 334 | } |
diff --git a/arch/sh/mm/ioremap_32.c b/arch/sh/mm/ioremap_32.c index 0c7b7e33abdc..882a32ebc6b7 100644 --- a/arch/sh/mm/ioremap_32.c +++ b/arch/sh/mm/ioremap_32.c | |||
| @@ -141,7 +141,7 @@ void __iounmap(void __iomem *addr) | |||
| 141 | 141 | ||
| 142 | p = remove_vm_area((void *)(vaddr & PAGE_MASK)); | 142 | p = remove_vm_area((void *)(vaddr & PAGE_MASK)); |
| 143 | if (!p) { | 143 | if (!p) { |
| 144 | printk(KERN_ERR "%s: bad address %p\n", __FUNCTION__, addr); | 144 | printk(KERN_ERR "%s: bad address %p\n", __func__, addr); |
| 145 | return; | 145 | return; |
| 146 | } | 146 | } |
| 147 | 147 | ||
diff --git a/arch/sh/mm/ioremap_64.c b/arch/sh/mm/ioremap_64.c index e27d16519235..cea224c3e49b 100644 --- a/arch/sh/mm/ioremap_64.c +++ b/arch/sh/mm/ioremap_64.c | |||
| @@ -178,7 +178,7 @@ static unsigned long shmedia_alloc_io(unsigned long phys, unsigned long size, | |||
| 178 | } else { | 178 | } else { |
| 179 | if (!printed_full) { | 179 | if (!printed_full) { |
| 180 | printk("%s: done with statics, switching to kmalloc\n", | 180 | printk("%s: done with statics, switching to kmalloc\n", |
| 181 | __FUNCTION__); | 181 | __func__); |
| 182 | printed_full = 1; | 182 | printed_full = 1; |
| 183 | } | 183 | } |
| 184 | tlen = strlen(name); | 184 | tlen = strlen(name); |
| @@ -352,7 +352,7 @@ void onchip_unmap(unsigned long vaddr) | |||
| 352 | res = shmedia_find_resource(&shmedia_iomap, vaddr); | 352 | res = shmedia_find_resource(&shmedia_iomap, vaddr); |
| 353 | if (!res) { | 353 | if (!res) { |
| 354 | printk(KERN_ERR "%s: Failed to free 0x%08lx\n", | 354 | printk(KERN_ERR "%s: Failed to free 0x%08lx\n", |
| 355 | __FUNCTION__, vaddr); | 355 | __func__, vaddr); |
| 356 | return; | 356 | return; |
| 357 | } | 357 | } |
| 358 | 358 | ||
diff --git a/arch/sh/mm/pg-sh7705.c b/arch/sh/mm/pg-sh7705.c index a4b015f95a3a..7f885b7f8aff 100644 --- a/arch/sh/mm/pg-sh7705.c +++ b/arch/sh/mm/pg-sh7705.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/mman.h> | 14 | #include <linux/mman.h> |
| 15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
| 16 | #include <linux/threads.h> | 16 | #include <linux/threads.h> |
| 17 | #include <linux/fs.h> | ||
| 17 | #include <asm/addrspace.h> | 18 | #include <asm/addrspace.h> |
| 18 | #include <asm/page.h> | 19 | #include <asm/page.h> |
| 19 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
diff --git a/arch/sh/mm/tlbflush_64.c b/arch/sh/mm/tlbflush_64.c index 2a98c9ec88ff..7876997ba19a 100644 --- a/arch/sh/mm/tlbflush_64.c +++ b/arch/sh/mm/tlbflush_64.c | |||
| @@ -131,7 +131,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
| 131 | #ifdef DEBUG_FAULT | 131 | #ifdef DEBUG_FAULT |
| 132 | print_task(tsk); | 132 | print_task(tsk); |
| 133 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", | 133 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", |
| 134 | __FUNCTION__,__LINE__, | 134 | __func__, __LINE__, |
| 135 | address,regs->pc,textaccess,writeaccess); | 135 | address,regs->pc,textaccess,writeaccess); |
| 136 | show_regs(regs); | 136 | show_regs(regs); |
| 137 | #endif | 137 | #endif |
| @@ -145,7 +145,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
| 145 | #ifdef DEBUG_FAULT | 145 | #ifdef DEBUG_FAULT |
| 146 | print_task(tsk); | 146 | print_task(tsk); |
| 147 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", | 147 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", |
| 148 | __FUNCTION__,__LINE__, | 148 | __func__, __LINE__, |
| 149 | address,regs->pc,textaccess,writeaccess); | 149 | address,regs->pc,textaccess,writeaccess); |
| 150 | show_regs(regs); | 150 | show_regs(regs); |
| 151 | 151 | ||
| @@ -157,7 +157,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess, | |||
| 157 | #ifdef DEBUG_FAULT | 157 | #ifdef DEBUG_FAULT |
| 158 | print_task(tsk); | 158 | print_task(tsk); |
| 159 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", | 159 | printk("%s:%d fault, address is 0x%08x PC %016Lx textaccess %d writeaccess %d\n", |
| 160 | __FUNCTION__,__LINE__, | 160 | __func__, __LINE__, |
| 161 | address,regs->pc,textaccess,writeaccess); | 161 | address,regs->pc,textaccess,writeaccess); |
| 162 | show_regs(regs); | 162 | show_regs(regs); |
| 163 | #endif | 163 | #endif |
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types index 67997af25c0c..d63b93da952d 100644 --- a/arch/sh/tools/mach-types +++ b/arch/sh/tools/mach-types | |||
| @@ -38,7 +38,6 @@ R7780MP SH_R7780MP | |||
| 38 | R7785RP SH_R7785RP | 38 | R7785RP SH_R7785RP |
| 39 | TITAN SH_TITAN | 39 | TITAN SH_TITAN |
| 40 | SHMIN SH_SHMIN | 40 | SHMIN SH_SHMIN |
| 41 | 7710VOIPGW SH_7710VOIPGW | ||
| 42 | LBOXRE2 SH_LBOX_RE2 | 41 | LBOXRE2 SH_LBOX_RE2 |
| 43 | X3PROTO SH_X3PROTO | 42 | X3PROTO SH_X3PROTO |
| 44 | MAGICPANELR2 SH_MAGIC_PANEL_R2 | 43 | MAGICPANELR2 SH_MAGIC_PANEL_R2 |
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile index e795f282dece..bf1b15d3f6f5 100644 --- a/arch/sparc/kernel/Makefile +++ b/arch/sparc/kernel/Makefile | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # $Id: Makefile,v 1.62 2000/12/15 00:41:17 davem Exp $ | 1 | # |
| 2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
| 3 | # | 3 | # |
| 4 | 4 | ||
| @@ -12,7 +12,8 @@ obj-y := entry.o wof.o wuf.o etrap.o rtrap.o traps.o $(IRQ_OBJS) \ | |||
| 12 | sys_sparc.o sunos_asm.o systbls.o \ | 12 | sys_sparc.o sunos_asm.o systbls.o \ |
| 13 | time.o windows.o cpu.o devices.o sclow.o \ | 13 | time.o windows.o cpu.o devices.o sclow.o \ |
| 14 | tadpole.o tick14.o ptrace.o sys_solaris.o \ | 14 | tadpole.o tick14.o ptrace.o sys_solaris.o \ |
| 15 | unaligned.o muldiv.o semaphore.o prom.o of_device.o devres.o | 15 | unaligned.o una_asm.o muldiv.o semaphore.o \ |
| 16 | prom.o of_device.o devres.o | ||
| 16 | 17 | ||
| 17 | devres-y = ../../../kernel/irq/devres.o | 18 | devres-y = ../../../kernel/irq/devres.o |
| 18 | 19 | ||
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c index 259a559d4cea..e7a0edfc1a32 100644 --- a/arch/sparc/kernel/cpu.c +++ b/arch/sparc/kernel/cpu.c | |||
| @@ -32,7 +32,7 @@ struct cpu_fp_info { | |||
| 32 | /* In order to get the fpu type correct, you need to take the IDPROM's | 32 | /* In order to get the fpu type correct, you need to take the IDPROM's |
| 33 | * machine type value into consideration too. I will fix this. | 33 | * machine type value into consideration too. I will fix this. |
| 34 | */ | 34 | */ |
| 35 | struct cpu_fp_info linux_sparc_fpu[] = { | 35 | static struct cpu_fp_info linux_sparc_fpu[] = { |
| 36 | { 0, 0, "Fujitsu MB86910 or Weitek WTL1164/5"}, | 36 | { 0, 0, "Fujitsu MB86910 or Weitek WTL1164/5"}, |
| 37 | { 0, 1, "Fujitsu MB86911 or Weitek WTL1164/5 or LSI L64831"}, | 37 | { 0, 1, "Fujitsu MB86911 or Weitek WTL1164/5 or LSI L64831"}, |
| 38 | { 0, 2, "LSI Logic L64802 or Texas Instruments ACT8847"}, | 38 | { 0, 2, "LSI Logic L64802 or Texas Instruments ACT8847"}, |
| @@ -76,7 +76,7 @@ struct cpu_fp_info linux_sparc_fpu[] = { | |||
| 76 | 76 | ||
| 77 | #define NSPARCFPU ARRAY_SIZE(linux_sparc_fpu) | 77 | #define NSPARCFPU ARRAY_SIZE(linux_sparc_fpu) |
| 78 | 78 | ||
| 79 | struct cpu_iu_info linux_sparc_chips[] = { | 79 | static struct cpu_iu_info linux_sparc_chips[] = { |
| 80 | /* Sun4/100, 4/200, SLC */ | 80 | /* Sun4/100, 4/200, SLC */ |
| 81 | { 0, 0, "Fujitsu MB86900/1A or LSI L64831 SparcKIT-40"}, | 81 | { 0, 0, "Fujitsu MB86900/1A or LSI L64831 SparcKIT-40"}, |
| 82 | /* borned STP1012PGA */ | 82 | /* borned STP1012PGA */ |
diff --git a/arch/sparc/kernel/ebus.c b/arch/sparc/kernel/ebus.c index d850785b2080..96344ff2bbe1 100644 --- a/arch/sparc/kernel/ebus.c +++ b/arch/sparc/kernel/ebus.c | |||
| @@ -101,7 +101,7 @@ void __init fill_ebus_child(struct device_node *dp, | |||
| 101 | prom_printf("UGH: property for %s was %d, need < %d\n", | 101 | prom_printf("UGH: property for %s was %d, need < %d\n", |
| 102 | dev->prom_node->name, len, | 102 | dev->prom_node->name, len, |
| 103 | dev->parent->num_addrs); | 103 | dev->parent->num_addrs); |
| 104 | panic(__FUNCTION__); | 104 | panic(__func__); |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | /* XXX resource */ | 107 | /* XXX resource */ |
| @@ -162,7 +162,7 @@ void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *d | |||
| 162 | prom_printf("UGH: proplen for %s was %d, need multiple of %d\n", | 162 | prom_printf("UGH: proplen for %s was %d, need multiple of %d\n", |
| 163 | dev->prom_node->name, len, | 163 | dev->prom_node->name, len, |
| 164 | (int)sizeof(struct linux_prom_registers)); | 164 | (int)sizeof(struct linux_prom_registers)); |
| 165 | panic(__FUNCTION__); | 165 | panic(__func__); |
| 166 | } | 166 | } |
| 167 | dev->num_addrs = len / sizeof(struct linux_prom_registers); | 167 | dev->num_addrs = len / sizeof(struct linux_prom_registers); |
| 168 | 168 | ||
| @@ -324,7 +324,7 @@ void __init ebus_init(void) | |||
| 324 | regs = of_get_property(dp, "reg", &len); | 324 | regs = of_get_property(dp, "reg", &len); |
| 325 | if (!regs) { | 325 | if (!regs) { |
| 326 | prom_printf("%s: can't find reg property\n", | 326 | prom_printf("%s: can't find reg property\n", |
| 327 | __FUNCTION__); | 327 | __func__); |
| 328 | prom_halt(); | 328 | prom_halt(); |
| 329 | } | 329 | } |
| 330 | nreg = len / sizeof(struct linux_prom_pci_registers); | 330 | nreg = len / sizeof(struct linux_prom_pci_registers); |
diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c index 313d1620ae8e..59e9344e7a0d 100644 --- a/arch/sparc/kernel/led.c +++ b/arch/sparc/kernel/led.c | |||
| @@ -3,6 +3,9 @@ | |||
| 3 | #include <linux/init.h> | 3 | #include <linux/init.h> |
| 4 | #include <linux/proc_fs.h> | 4 | #include <linux/proc_fs.h> |
| 5 | #include <linux/string.h> | 5 | #include <linux/string.h> |
| 6 | #include <linux/jiffies.h> | ||
| 7 | #include <linux/timer.h> | ||
| 8 | #include <linux/uaccess.h> | ||
| 6 | 9 | ||
| 7 | #include <asm/auxio.h> | 10 | #include <asm/auxio.h> |
| 8 | 11 | ||
diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c index 0bd69d0b5cd7..70c0dd22491d 100644 --- a/arch/sparc/kernel/process.c +++ b/arch/sparc/kernel/process.c | |||
| @@ -139,8 +139,6 @@ void cpu_idle(void) | |||
| 139 | 139 | ||
| 140 | #endif | 140 | #endif |
| 141 | 141 | ||
| 142 | extern char reboot_command []; | ||
| 143 | |||
| 144 | /* XXX cli/sti -> local_irq_xxx here, check this works once SMP is fixed. */ | 142 | /* XXX cli/sti -> local_irq_xxx here, check this works once SMP is fixed. */ |
| 145 | void machine_halt(void) | 143 | void machine_halt(void) |
| 146 | { | 144 | { |
diff --git a/arch/sparc/kernel/una_asm.S b/arch/sparc/kernel/una_asm.S new file mode 100644 index 000000000000..8cc03458eb7e --- /dev/null +++ b/arch/sparc/kernel/una_asm.S | |||
| @@ -0,0 +1,153 @@ | |||
| 1 | /* una_asm.S: Kernel unaligned trap assembler helpers. | ||
| 2 | * | ||
| 3 | * Copyright (C) 1996,2005,2008 David S. Miller (davem@davemloft.net) | ||
| 4 | * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <linux/errno.h> | ||
| 8 | |||
| 9 | .text | ||
| 10 | |||
| 11 | retl_efault: | ||
| 12 | retl | ||
| 13 | mov -EFAULT, %o0 | ||
| 14 | |||
| 15 | /* int __do_int_store(unsigned long *dst_addr, int size, | ||
| 16 | * unsigned long *src_val) | ||
| 17 | * | ||
| 18 | * %o0 = dest_addr | ||
| 19 | * %o1 = size | ||
| 20 | * %o2 = src_val | ||
| 21 | * | ||
| 22 | * Return '0' on success, -EFAULT on failure. | ||
| 23 | */ | ||
| 24 | .globl __do_int_store | ||
| 25 | __do_int_store: | ||
| 26 | ld [%o2], %g1 | ||
| 27 | cmp %1, 2 | ||
| 28 | be 2f | ||
| 29 | cmp %1, 4 | ||
| 30 | be 1f | ||
| 31 | srl %g1, 24, %g2 | ||
| 32 | srl %g1, 16, %g7 | ||
| 33 | 4: stb %g2, [%o0] | ||
| 34 | srl %g1, 8, %g2 | ||
| 35 | 5: stb %g7, [%o0 + 1] | ||
| 36 | ld [%o2 + 4], %g7 | ||
| 37 | 6: stb %g2, [%o0 + 2] | ||
| 38 | srl %g7, 24, %g2 | ||
| 39 | 7: stb %g1, [%o0 + 3] | ||
| 40 | srl %g7, 16, %g1 | ||
| 41 | 8: stb %g2, [%o0 + 4] | ||
| 42 | srl %g7, 8, %g2 | ||
| 43 | 9: stb %g1, [%o0 + 5] | ||
| 44 | 10: stb %g2, [%o0 + 6] | ||
| 45 | b 0f | ||
| 46 | 11: stb %g7, [%o0 + 7] | ||
| 47 | 1: srl %g1, 16, %g7 | ||
| 48 | 12: stb %g2, [%o0] | ||
| 49 | srl %g1, 8, %g2 | ||
| 50 | 13: stb %g7, [%o0 + 1] | ||
| 51 | 14: stb %g2, [%o0 + 2] | ||
| 52 | b 0f | ||
| 53 | 15: stb %g1, [%o0 + 3] | ||
| 54 | 2: srl %g1, 8, %g2 | ||
| 55 | 16: stb %g2, [%o0] | ||
| 56 | 17: stb %g1, [%o0 + 1] | ||
| 57 | 0: retl | ||
| 58 | mov 0, %o0 | ||
| 59 | |||
| 60 | .section __ex_table,#alloc | ||
| 61 | .word 4b, retl_efault | ||
| 62 | .word 5b, retl_efault | ||
| 63 | .word 6b, retl_efault | ||
| 64 | .word 7b, retl_efault | ||
| 65 | .word 8b, retl_efault | ||
| 66 | .word 9b, retl_efault | ||
| 67 | .word 10b, retl_efault | ||
| 68 | .word 11b, retl_efault | ||
| 69 | .word 12b, retl_efault | ||
| 70 | .word 13b, retl_efault | ||
| 71 | .word 14b, retl_efault | ||
| 72 | .word 15b, retl_efault | ||
| 73 | .word 16b, retl_efault | ||
| 74 | .word 17b, retl_efault | ||
| 75 | .previous | ||
| 76 | |||
| 77 | /* int do_int_load(unsigned long *dest_reg, int size, | ||
| 78 | * unsigned long *saddr, int is_signed) | ||
| 79 | * | ||
| 80 | * %o0 = dest_reg | ||
| 81 | * %o1 = size | ||
| 82 | * %o2 = saddr | ||
| 83 | * %o3 = is_signed | ||
| 84 | * | ||
| 85 | * Return '0' on success, -EFAULT on failure. | ||
| 86 | */ | ||
| 87 | .globl do_int_load | ||
| 88 | do_int_load: | ||
| 89 | cmp %o1, 8 | ||
| 90 | be 9f | ||
| 91 | cmp %o1, 4 | ||
| 92 | be 6f | ||
| 93 | 4: ldub [%o2], %g1 | ||
| 94 | 5: ldub [%o2 + 1], %g2 | ||
| 95 | sll %g1, 8, %g1 | ||
| 96 | tst %o3 | ||
| 97 | be 3f | ||
| 98 | or %g1, %g2, %g1 | ||
| 99 | sll %g1, 16, %g1 | ||
| 100 | sra %g1, 16, %g1 | ||
| 101 | 3: b 0f | ||
| 102 | st %g1, [%o0] | ||
| 103 | 6: ldub [%o2 + 1], %g2 | ||
| 104 | sll %g1, 24, %g1 | ||
| 105 | 7: ldub [%o2 + 2], %g7 | ||
| 106 | sll %g2, 16, %g2 | ||
| 107 | 8: ldub [%o2 + 3], %g3 | ||
| 108 | sll %g7, 8, %g7 | ||
| 109 | or %g3, %g2, %g3 | ||
| 110 | or %g7, %g3, %g7 | ||
| 111 | or %g1, %g7, %g1 | ||
| 112 | b 0f | ||
| 113 | st %g1, [%o0] | ||
| 114 | 9: ldub [%o2], %g1 | ||
| 115 | 10: ldub [%o2 + 1], %g2 | ||
| 116 | sll %g1, 24, %g1 | ||
| 117 | 11: ldub [%o2 + 2], %g7 | ||
| 118 | sll %g2, 16, %g2 | ||
| 119 | 12: ldub [%o2 + 3], %g3 | ||
| 120 | sll %g7, 8, %g7 | ||
| 121 | or %g1, %g2, %g1 | ||
| 122 | or %g7, %g3, %g7 | ||
| 123 | or %g1, %g7, %g7 | ||
| 124 | 13: ldub [%o2 + 4], %g1 | ||
| 125 | st %g7, [%o0] | ||
| 126 | 14: ldub [%o2 + 5], %g2 | ||
| 127 | sll %g1, 24, %g1 | ||
| 128 | 15: ldub [%o2 + 6], %g7 | ||
| 129 | sll %g2, 16, %g2 | ||
| 130 | 16: ldub [%o2 + 7], %g3 | ||
| 131 | sll %g7, 8, %g7 | ||
| 132 | or %g1, %g2, %g1 | ||
| 133 | or %g7, %g3, %g7 | ||
| 134 | or %g1, %g7, %g7 | ||
| 135 | st %g7, [%o0 + 4] | ||
| 136 | 0: retl | ||
| 137 | mov 0, %o0 | ||
| 138 | |||
| 139 | .section __ex_table,#alloc | ||
| 140 | .word 4b, retl_efault | ||
| 141 | .word 5b, retl_efault | ||
| 142 | .word 6b, retl_efault | ||
| 143 | .word 7b, retl_efault | ||
| 144 | .word 8b, retl_efault | ||
| 145 | .word 9b, retl_efault | ||
| 146 | .word 10b, retl_efault | ||
| 147 | .word 11b, retl_efault | ||
| 148 | .word 12b, retl_efault | ||
| 149 | .word 13b, retl_efault | ||
| 150 | .word 14b, retl_efault | ||
| 151 | .word 15b, retl_efault | ||
| 152 | .word 16b, retl_efault | ||
| 153 | .previous | ||
diff --git a/arch/sparc/kernel/unaligned.c b/arch/sparc/kernel/unaligned.c index a6330fbc9dd9..33857be16661 100644 --- a/arch/sparc/kernel/unaligned.c +++ b/arch/sparc/kernel/unaligned.c | |||
| @@ -175,157 +175,31 @@ static void unaligned_panic(char *str) | |||
| 175 | panic(str); | 175 | panic(str); |
| 176 | } | 176 | } |
| 177 | 177 | ||
| 178 | #define do_integer_load(dest_reg, size, saddr, is_signed, errh) ({ \ | 178 | /* una_asm.S */ |
| 179 | __asm__ __volatile__ ( \ | 179 | extern int do_int_load(unsigned long *dest_reg, int size, |
| 180 | "cmp %1, 8\n\t" \ | 180 | unsigned long *saddr, int is_signed); |
| 181 | "be 9f\n\t" \ | 181 | extern int __do_int_store(unsigned long *dst_addr, int size, |
| 182 | " cmp %1, 4\n\t" \ | 182 | unsigned long *src_val); |
| 183 | "be 6f\n" \ | 183 | |
| 184 | "4:\t" " ldub [%2], %%l1\n" \ | 184 | static int do_int_store(int reg_num, int size, unsigned long *dst_addr, |
| 185 | "5:\t" "ldub [%2 + 1], %%l2\n\t" \ | 185 | struct pt_regs *regs) |
| 186 | "sll %%l1, 8, %%l1\n\t" \ | 186 | { |
| 187 | "tst %3\n\t" \ | 187 | unsigned long zero[2] = { 0, 0 }; |
| 188 | "be 3f\n\t" \ | 188 | unsigned long *src_val; |
| 189 | " add %%l1, %%l2, %%l1\n\t" \ | 189 | |
| 190 | "sll %%l1, 16, %%l1\n\t" \ | 190 | if (reg_num) |
| 191 | "sra %%l1, 16, %%l1\n" \ | 191 | src_val = fetch_reg_addr(reg_num, regs); |
| 192 | "3:\t" "b 0f\n\t" \ | 192 | else { |
| 193 | " st %%l1, [%0]\n" \ | 193 | src_val = &zero[0]; |
| 194 | "6:\t" "ldub [%2 + 1], %%l2\n\t" \ | 194 | if (size == 8) |
| 195 | "sll %%l1, 24, %%l1\n" \ | 195 | zero[1] = fetch_reg(1, regs); |
| 196 | "7:\t" "ldub [%2 + 2], %%g7\n\t" \ | 196 | } |
| 197 | "sll %%l2, 16, %%l2\n" \ | 197 | return __do_int_store(dst_addr, size, src_val); |
| 198 | "8:\t" "ldub [%2 + 3], %%g1\n\t" \ | 198 | } |
| 199 | "sll %%g7, 8, %%g7\n\t" \ | ||
| 200 | "or %%l1, %%l2, %%l1\n\t" \ | ||
| 201 | "or %%g7, %%g1, %%g7\n\t" \ | ||
| 202 | "or %%l1, %%g7, %%l1\n\t" \ | ||
| 203 | "b 0f\n\t" \ | ||
| 204 | " st %%l1, [%0]\n" \ | ||
| 205 | "9:\t" "ldub [%2], %%l1\n" \ | ||
| 206 | "10:\t" "ldub [%2 + 1], %%l2\n\t" \ | ||
| 207 | "sll %%l1, 24, %%l1\n" \ | ||
| 208 | "11:\t" "ldub [%2 + 2], %%g7\n\t" \ | ||
| 209 | "sll %%l2, 16, %%l2\n" \ | ||
| 210 | "12:\t" "ldub [%2 + 3], %%g1\n\t" \ | ||
| 211 | "sll %%g7, 8, %%g7\n\t" \ | ||
| 212 | "or %%l1, %%l2, %%l1\n\t" \ | ||
| 213 | "or %%g7, %%g1, %%g7\n\t" \ | ||
| 214 | "or %%l1, %%g7, %%g7\n" \ | ||
| 215 | "13:\t" "ldub [%2 + 4], %%l1\n\t" \ | ||
| 216 | "st %%g7, [%0]\n" \ | ||
| 217 | "14:\t" "ldub [%2 + 5], %%l2\n\t" \ | ||
| 218 | "sll %%l1, 24, %%l1\n" \ | ||
| 219 | "15:\t" "ldub [%2 + 6], %%g7\n\t" \ | ||
| 220 | "sll %%l2, 16, %%l2\n" \ | ||
| 221 | "16:\t" "ldub [%2 + 7], %%g1\n\t" \ | ||
| 222 | "sll %%g7, 8, %%g7\n\t" \ | ||
| 223 | "or %%l1, %%l2, %%l1\n\t" \ | ||
| 224 | "or %%g7, %%g1, %%g7\n\t" \ | ||
| 225 | "or %%l1, %%g7, %%g7\n\t" \ | ||
| 226 | "st %%g7, [%0 + 4]\n" \ | ||
| 227 | "0:\n\n\t" \ | ||
| 228 | ".section __ex_table,#alloc\n\t" \ | ||
| 229 | ".word 4b, " #errh "\n\t" \ | ||
| 230 | ".word 5b, " #errh "\n\t" \ | ||
| 231 | ".word 6b, " #errh "\n\t" \ | ||
| 232 | ".word 7b, " #errh "\n\t" \ | ||
| 233 | ".word 8b, " #errh "\n\t" \ | ||
| 234 | ".word 9b, " #errh "\n\t" \ | ||
| 235 | ".word 10b, " #errh "\n\t" \ | ||
| 236 | ".word 11b, " #errh "\n\t" \ | ||
| 237 | ".word 12b, " #errh "\n\t" \ | ||
| 238 | ".word 13b, " #errh "\n\t" \ | ||
| 239 | ".word 14b, " #errh "\n\t" \ | ||
| 240 | ".word 15b, " #errh "\n\t" \ | ||
| 241 | ".word 16b, " #errh "\n\n\t" \ | ||
| 242 | ".previous\n\t" \ | ||
| 243 | : : "r" (dest_reg), "r" (size), "r" (saddr), "r" (is_signed) \ | ||
| 244 | : "l1", "l2", "g7", "g1", "cc"); \ | ||
| 245 | }) | ||
| 246 | |||
| 247 | #define store_common(dst_addr, size, src_val, errh) ({ \ | ||
| 248 | __asm__ __volatile__ ( \ | ||
| 249 | "ld [%2], %%l1\n" \ | ||
| 250 | "cmp %1, 2\n\t" \ | ||
| 251 | "be 2f\n\t" \ | ||
| 252 | " cmp %1, 4\n\t" \ | ||
| 253 | "be 1f\n\t" \ | ||
| 254 | " srl %%l1, 24, %%l2\n\t" \ | ||
| 255 | "srl %%l1, 16, %%g7\n" \ | ||
| 256 | "4:\t" "stb %%l2, [%0]\n\t" \ | ||
| 257 | "srl %%l1, 8, %%l2\n" \ | ||
| 258 | "5:\t" "stb %%g7, [%0 + 1]\n\t" \ | ||
| 259 | "ld [%2 + 4], %%g7\n" \ | ||
| 260 | "6:\t" "stb %%l2, [%0 + 2]\n\t" \ | ||
| 261 | "srl %%g7, 24, %%l2\n" \ | ||
| 262 | "7:\t" "stb %%l1, [%0 + 3]\n\t" \ | ||
| 263 | "srl %%g7, 16, %%l1\n" \ | ||
| 264 | "8:\t" "stb %%l2, [%0 + 4]\n\t" \ | ||
| 265 | "srl %%g7, 8, %%l2\n" \ | ||
| 266 | "9:\t" "stb %%l1, [%0 + 5]\n" \ | ||
| 267 | "10:\t" "stb %%l2, [%0 + 6]\n\t" \ | ||
| 268 | "b 0f\n" \ | ||
| 269 | "11:\t" " stb %%g7, [%0 + 7]\n" \ | ||
| 270 | "1:\t" "srl %%l1, 16, %%g7\n" \ | ||
| 271 | "12:\t" "stb %%l2, [%0]\n\t" \ | ||
| 272 | "srl %%l1, 8, %%l2\n" \ | ||
| 273 | "13:\t" "stb %%g7, [%0 + 1]\n" \ | ||
| 274 | "14:\t" "stb %%l2, [%0 + 2]\n\t" \ | ||
| 275 | "b 0f\n" \ | ||
| 276 | "15:\t" " stb %%l1, [%0 + 3]\n" \ | ||
| 277 | "2:\t" "srl %%l1, 8, %%l2\n" \ | ||
| 278 | "16:\t" "stb %%l2, [%0]\n" \ | ||
| 279 | "17:\t" "stb %%l1, [%0 + 1]\n" \ | ||
| 280 | "0:\n\n\t" \ | ||
| 281 | ".section __ex_table,#alloc\n\t" \ | ||
| 282 | ".word 4b, " #errh "\n\t" \ | ||
| 283 | ".word 5b, " #errh "\n\t" \ | ||
| 284 | ".word 6b, " #errh "\n\t" \ | ||
| 285 | ".word 7b, " #errh "\n\t" \ | ||
| 286 | ".word 8b, " #errh "\n\t" \ | ||
| 287 | ".word 9b, " #errh "\n\t" \ | ||
| 288 | ".word 10b, " #errh "\n\t" \ | ||
| 289 | ".word 11b, " #errh "\n\t" \ | ||
| 290 | ".word 12b, " #errh "\n\t" \ | ||
| 291 | ".word 13b, " #errh "\n\t" \ | ||
| 292 | ".word 14b, " #errh "\n\t" \ | ||
| 293 | ".word 15b, " #errh "\n\t" \ | ||
| 294 | ".word 16b, " #errh "\n\t" \ | ||
| 295 | ".word 17b, " #errh "\n\n\t" \ | ||
| 296 | ".previous\n\t" \ | ||
| 297 | : : "r" (dst_addr), "r" (size), "r" (src_val) \ | ||
| 298 | : "l1", "l2", "g7", "g1", "cc"); \ | ||
| 299 | }) | ||
| 300 | |||
| 301 | #define do_integer_store(reg_num, size, dst_addr, regs, errh) ({ \ | ||
| 302 | unsigned long *src_val; \ | ||
| 303 | static unsigned long zero[2] = { 0, }; \ | ||
| 304 | \ | ||
| 305 | if (reg_num) src_val = fetch_reg_addr(reg_num, regs); \ | ||
| 306 | else { \ | ||
| 307 | src_val = &zero[0]; \ | ||
| 308 | if (size == 8) \ | ||
| 309 | zero[1] = fetch_reg(1, regs); \ | ||
| 310 | } \ | ||
| 311 | store_common(dst_addr, size, src_val, errh); \ | ||
| 312 | }) | ||
| 313 | 199 | ||
| 314 | extern void smp_capture(void); | 200 | extern void smp_capture(void); |
| 315 | extern void smp_release(void); | 201 | extern void smp_release(void); |
| 316 | 202 | ||
| 317 | #define do_atomic(srcdest_reg, mem, errh) ({ \ | ||
| 318 | unsigned long flags, tmp; \ | ||
| 319 | \ | ||
| 320 | smp_capture(); \ | ||
| 321 | local_irq_save(flags); \ | ||
| 322 | tmp = *srcdest_reg; \ | ||
| 323 | do_integer_load(srcdest_reg, 4, mem, 0, errh); \ | ||
| 324 | store_common(mem, 4, &tmp, errh); \ | ||
| 325 | local_irq_restore(flags); \ | ||
| 326 | smp_release(); \ | ||
| 327 | }) | ||
| 328 | |||
| 329 | static inline void advance(struct pt_regs *regs) | 203 | static inline void advance(struct pt_regs *regs) |
| 330 | { | 204 | { |
| 331 | regs->pc = regs->npc; | 205 | regs->pc = regs->npc; |
| @@ -342,9 +216,7 @@ static inline int ok_for_kernel(unsigned int insn) | |||
| 342 | return !floating_point_load_or_store_p(insn); | 216 | return !floating_point_load_or_store_p(insn); |
| 343 | } | 217 | } |
| 344 | 218 | ||
| 345 | void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) __asm__ ("kernel_mna_trap_fault"); | 219 | static void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) |
| 346 | |||
| 347 | void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) | ||
| 348 | { | 220 | { |
| 349 | unsigned long g2 = regs->u_regs [UREG_G2]; | 221 | unsigned long g2 = regs->u_regs [UREG_G2]; |
| 350 | unsigned long fixup = search_extables_range(regs->pc, &g2); | 222 | unsigned long fixup = search_extables_range(regs->pc, &g2); |
| @@ -379,48 +251,34 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn) | |||
| 379 | printk("Unsupported unaligned load/store trap for kernel at <%08lx>.\n", | 251 | printk("Unsupported unaligned load/store trap for kernel at <%08lx>.\n", |
| 380 | regs->pc); | 252 | regs->pc); |
| 381 | unaligned_panic("Wheee. Kernel does fpu/atomic unaligned load/store."); | 253 | unaligned_panic("Wheee. Kernel does fpu/atomic unaligned load/store."); |
| 382 | |||
| 383 | __asm__ __volatile__ ("\n" | ||
| 384 | "kernel_unaligned_trap_fault:\n\t" | ||
| 385 | "mov %0, %%o0\n\t" | ||
| 386 | "call kernel_mna_trap_fault\n\t" | ||
| 387 | " mov %1, %%o1\n\t" | ||
| 388 | : | ||
| 389 | : "r" (regs), "r" (insn) | ||
| 390 | : "o0", "o1", "o2", "o3", "o4", "o5", "o7", | ||
| 391 | "g1", "g2", "g3", "g4", "g5", "g7", "cc"); | ||
| 392 | } else { | 254 | } else { |
| 393 | unsigned long addr = compute_effective_address(regs, insn); | 255 | unsigned long addr = compute_effective_address(regs, insn); |
| 256 | int err; | ||
| 394 | 257 | ||
| 395 | #ifdef DEBUG_MNA | 258 | #ifdef DEBUG_MNA |
| 396 | printk("KMNA: pc=%08lx [dir=%s addr=%08lx size=%d] retpc[%08lx]\n", | 259 | printk("KMNA: pc=%08lx [dir=%s addr=%08lx size=%d] retpc[%08lx]\n", |
| 397 | regs->pc, dirstrings[dir], addr, size, regs->u_regs[UREG_RETPC]); | 260 | regs->pc, dirstrings[dir], addr, size, regs->u_regs[UREG_RETPC]); |
| 398 | #endif | 261 | #endif |
| 399 | switch(dir) { | 262 | switch (dir) { |
| 400 | case load: | 263 | case load: |
| 401 | do_integer_load(fetch_reg_addr(((insn>>25)&0x1f), regs), | 264 | err = do_int_load(fetch_reg_addr(((insn>>25)&0x1f), |
| 402 | size, (unsigned long *) addr, | 265 | regs), |
| 403 | decode_signedness(insn), | 266 | size, (unsigned long *) addr, |
| 404 | kernel_unaligned_trap_fault); | 267 | decode_signedness(insn)); |
| 405 | break; | 268 | break; |
| 406 | 269 | ||
| 407 | case store: | 270 | case store: |
| 408 | do_integer_store(((insn>>25)&0x1f), size, | 271 | err = do_int_store(((insn>>25)&0x1f), size, |
| 409 | (unsigned long *) addr, regs, | 272 | (unsigned long *) addr, regs); |
| 410 | kernel_unaligned_trap_fault); | ||
| 411 | break; | 273 | break; |
| 412 | #if 0 /* unsupported */ | ||
| 413 | case both: | ||
| 414 | do_atomic(fetch_reg_addr(((insn>>25)&0x1f), regs), | ||
| 415 | (unsigned long *) addr, | ||
| 416 | kernel_unaligned_trap_fault); | ||
| 417 | break; | ||
| 418 | #endif | ||
| 419 | default: | 274 | default: |
| 420 | panic("Impossible kernel unaligned trap."); | 275 | panic("Impossible kernel unaligned trap."); |
| 421 | /* Not reached... */ | 276 | /* Not reached... */ |
| 422 | } | 277 | } |
| 423 | advance(regs); | 278 | if (err) |
| 279 | kernel_mna_trap_fault(regs, insn); | ||
| 280 | else | ||
| 281 | advance(regs); | ||
| 424 | } | 282 | } |
| 425 | } | 283 | } |
| 426 | 284 | ||
| @@ -459,9 +317,7 @@ static inline int ok_for_user(struct pt_regs *regs, unsigned int insn, | |||
| 459 | return 0; | 317 | return 0; |
| 460 | } | 318 | } |
| 461 | 319 | ||
| 462 | void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn) __asm__ ("user_mna_trap_fault"); | 320 | static void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn) |
| 463 | |||
| 464 | void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn) | ||
| 465 | { | 321 | { |
| 466 | siginfo_t info; | 322 | siginfo_t info; |
| 467 | 323 | ||
| @@ -485,7 +341,7 @@ asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn) | |||
| 485 | if(!ok_for_user(regs, insn, dir)) { | 341 | if(!ok_for_user(regs, insn, dir)) { |
| 486 | goto kill_user; | 342 | goto kill_user; |
| 487 | } else { | 343 | } else { |
| 488 | int size = decode_access_size(insn); | 344 | int err, size = decode_access_size(insn); |
| 489 | unsigned long addr; | 345 | unsigned long addr; |
| 490 | 346 | ||
| 491 | if(floating_point_load_or_store_p(insn)) { | 347 | if(floating_point_load_or_store_p(insn)) { |
| @@ -496,48 +352,34 @@ asmlinkage void user_unaligned_trap(struct pt_regs *regs, unsigned int insn) | |||
| 496 | addr = compute_effective_address(regs, insn); | 352 | addr = compute_effective_address(regs, insn); |
| 497 | switch(dir) { | 353 | switch(dir) { |
| 498 | case load: | 354 | case load: |
| 499 | do_integer_load(fetch_reg_addr(((insn>>25)&0x1f), regs), | 355 | err = do_int_load(fetch_reg_addr(((insn>>25)&0x1f), |
| 500 | size, (unsigned long *) addr, | 356 | regs), |
| 501 | decode_signedness(insn), | 357 | size, (unsigned long *) addr, |
| 502 | user_unaligned_trap_fault); | 358 | decode_signedness(insn)); |
| 503 | break; | 359 | break; |
| 504 | 360 | ||
| 505 | case store: | 361 | case store: |
| 506 | do_integer_store(((insn>>25)&0x1f), size, | 362 | err = do_int_store(((insn>>25)&0x1f), size, |
| 507 | (unsigned long *) addr, regs, | 363 | (unsigned long *) addr, regs); |
| 508 | user_unaligned_trap_fault); | ||
| 509 | break; | 364 | break; |
| 510 | 365 | ||
| 511 | case both: | 366 | case both: |
| 512 | #if 0 /* unsupported */ | ||
| 513 | do_atomic(fetch_reg_addr(((insn>>25)&0x1f), regs), | ||
| 514 | (unsigned long *) addr, | ||
| 515 | user_unaligned_trap_fault); | ||
| 516 | #else | ||
| 517 | /* | 367 | /* |
| 518 | * This was supported in 2.4. However, we question | 368 | * This was supported in 2.4. However, we question |
| 519 | * the value of SWAP instruction across word boundaries. | 369 | * the value of SWAP instruction across word boundaries. |
| 520 | */ | 370 | */ |
| 521 | printk("Unaligned SWAP unsupported.\n"); | 371 | printk("Unaligned SWAP unsupported.\n"); |
| 522 | goto kill_user; | 372 | err = -EFAULT; |
| 523 | #endif | ||
| 524 | break; | 373 | break; |
| 525 | 374 | ||
| 526 | default: | 375 | default: |
| 527 | unaligned_panic("Impossible user unaligned trap."); | 376 | unaligned_panic("Impossible user unaligned trap."); |
| 528 | |||
| 529 | __asm__ __volatile__ ("\n" | ||
| 530 | "user_unaligned_trap_fault:\n\t" | ||
| 531 | "mov %0, %%o0\n\t" | ||
| 532 | "call user_mna_trap_fault\n\t" | ||
| 533 | " mov %1, %%o1\n\t" | ||
| 534 | : | ||
| 535 | : "r" (regs), "r" (insn) | ||
| 536 | : "o0", "o1", "o2", "o3", "o4", "o5", "o7", | ||
| 537 | "g1", "g2", "g3", "g4", "g5", "g7", "cc"); | ||
| 538 | goto out; | 377 | goto out; |
| 539 | } | 378 | } |
| 540 | advance(regs); | 379 | if (err) |
| 380 | goto kill_user; | ||
| 381 | else | ||
| 382 | advance(regs); | ||
| 541 | goto out; | 383 | goto out; |
| 542 | } | 384 | } |
| 543 | 385 | ||
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index 3af378ddb6ae..463d1be32c98 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
| @@ -10,6 +10,7 @@ config SPARC | |||
| 10 | default y | 10 | default y |
| 11 | select HAVE_OPROFILE | 11 | select HAVE_OPROFILE |
| 12 | select HAVE_KPROBES | 12 | select HAVE_KPROBES |
| 13 | select HAVE_KRETPROBES | ||
| 13 | 14 | ||
| 14 | config SPARC64 | 15 | config SPARC64 |
| 15 | bool | 16 | bool |
diff --git a/arch/sparc64/kernel/cpu.c b/arch/sparc64/kernel/cpu.c index e43db73f2b91..dd5d28e3d798 100644 --- a/arch/sparc64/kernel/cpu.c +++ b/arch/sparc64/kernel/cpu.c | |||
| @@ -30,7 +30,7 @@ struct cpu_fp_info { | |||
| 30 | char* fp_name; | 30 | char* fp_name; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | struct cpu_fp_info linux_sparc_fpu[] = { | 33 | static struct cpu_fp_info linux_sparc_fpu[] = { |
| 34 | { 0x17, 0x10, 0, "UltraSparc I integrated FPU"}, | 34 | { 0x17, 0x10, 0, "UltraSparc I integrated FPU"}, |
| 35 | { 0x22, 0x10, 0, "UltraSparc I integrated FPU"}, | 35 | { 0x22, 0x10, 0, "UltraSparc I integrated FPU"}, |
| 36 | { 0x17, 0x11, 0, "UltraSparc II integrated FPU"}, | 36 | { 0x17, 0x11, 0, "UltraSparc II integrated FPU"}, |
| @@ -46,7 +46,7 @@ struct cpu_fp_info linux_sparc_fpu[] = { | |||
| 46 | 46 | ||
| 47 | #define NSPARCFPU ARRAY_SIZE(linux_sparc_fpu) | 47 | #define NSPARCFPU ARRAY_SIZE(linux_sparc_fpu) |
| 48 | 48 | ||
| 49 | struct cpu_iu_info linux_sparc_chips[] = { | 49 | static struct cpu_iu_info linux_sparc_chips[] = { |
| 50 | { 0x17, 0x10, "TI UltraSparc I (SpitFire)"}, | 50 | { 0x17, 0x10, "TI UltraSparc I (SpitFire)"}, |
| 51 | { 0x22, 0x10, "TI UltraSparc I (SpitFire)"}, | 51 | { 0x22, 0x10, "TI UltraSparc I (SpitFire)"}, |
| 52 | { 0x17, 0x11, "TI UltraSparc II (BlackBird)"}, | 52 | { 0x17, 0x11, "TI UltraSparc II (BlackBird)"}, |
diff --git a/arch/sparc64/kernel/ds.c b/arch/sparc64/kernel/ds.c index eeb5a2fc788d..bd76482077be 100644 --- a/arch/sparc64/kernel/ds.c +++ b/arch/sparc64/kernel/ds.c | |||
| @@ -525,10 +525,10 @@ static void dr_cpu_mark(struct ds_data *resp, int cpu, int ncpus, | |||
| 525 | } | 525 | } |
| 526 | } | 526 | } |
| 527 | 527 | ||
| 528 | static int dr_cpu_configure(struct ds_info *dp, | 528 | static int __cpuinit dr_cpu_configure(struct ds_info *dp, |
| 529 | struct ds_cap_state *cp, | 529 | struct ds_cap_state *cp, |
| 530 | u64 req_num, | 530 | u64 req_num, |
| 531 | cpumask_t *mask) | 531 | cpumask_t *mask) |
| 532 | { | 532 | { |
| 533 | struct ds_data *resp; | 533 | struct ds_data *resp; |
| 534 | int resp_len, ncpus, cpu; | 534 | int resp_len, ncpus, cpu; |
| @@ -623,9 +623,9 @@ static int dr_cpu_unconfigure(struct ds_info *dp, | |||
| 623 | return 0; | 623 | return 0; |
| 624 | } | 624 | } |
| 625 | 625 | ||
| 626 | static void dr_cpu_data(struct ds_info *dp, | 626 | static void __cpuinit dr_cpu_data(struct ds_info *dp, |
| 627 | struct ds_cap_state *cp, | 627 | struct ds_cap_state *cp, |
| 628 | void *buf, int len) | 628 | void *buf, int len) |
| 629 | { | 629 | { |
| 630 | struct ds_data *data = buf; | 630 | struct ds_data *data = buf; |
| 631 | struct dr_cpu_tag *tag = (struct dr_cpu_tag *) (data + 1); | 631 | struct dr_cpu_tag *tag = (struct dr_cpu_tag *) (data + 1); |
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c index 856659bb1311..910083589569 100644 --- a/arch/sparc64/kernel/mdesc.c +++ b/arch/sparc64/kernel/mdesc.c | |||
| @@ -758,7 +758,7 @@ static void __devinit get_mondo_data(struct mdesc_handle *hp, u64 mp, | |||
| 758 | get_one_mondo_bits(val, &tb->nonresum_qmask, 2); | 758 | get_one_mondo_bits(val, &tb->nonresum_qmask, 2); |
| 759 | } | 759 | } |
| 760 | 760 | ||
| 761 | void __devinit mdesc_fill_in_cpu_data(cpumask_t mask) | 761 | void __cpuinit mdesc_fill_in_cpu_data(cpumask_t mask) |
| 762 | { | 762 | { |
| 763 | struct mdesc_handle *hp = mdesc_grab(); | 763 | struct mdesc_handle *hp = mdesc_grab(); |
| 764 | u64 mp; | 764 | u64 mp; |
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 2aafce7dfc0e..e116e38b160e 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c | |||
| @@ -114,8 +114,6 @@ void cpu_idle(void) | |||
| 114 | } | 114 | } |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | extern char reboot_command []; | ||
| 118 | |||
| 119 | void machine_halt(void) | 117 | void machine_halt(void) |
| 120 | { | 118 | { |
| 121 | sstate_halt(); | 119 | sstate_halt(); |
diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c index e2027f27c0fe..2650d0d33ac2 100644 --- a/arch/sparc64/mm/fault.c +++ b/arch/sparc64/mm/fault.c | |||
| @@ -244,16 +244,8 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code, | |||
| 244 | if (regs->tstate & TSTATE_PRIV) { | 244 | if (regs->tstate & TSTATE_PRIV) { |
| 245 | const struct exception_table_entry *entry; | 245 | const struct exception_table_entry *entry; |
| 246 | 246 | ||
| 247 | if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) { | 247 | entry = search_exception_tables(regs->tpc); |
| 248 | if (insn & 0x2000) | 248 | if (entry) { |
| 249 | asi = (regs->tstate >> 24); | ||
| 250 | else | ||
| 251 | asi = (insn >> 5); | ||
| 252 | } | ||
| 253 | |||
| 254 | /* Look in asi.h: All _S asis have LS bit set */ | ||
| 255 | if ((asi & 0x1) && | ||
| 256 | (entry = search_exception_tables(regs->tpc))) { | ||
| 257 | regs->tpc = entry->fixup; | 249 | regs->tpc = entry->fixup; |
| 258 | regs->tnpc = regs->tpc + 4; | 250 | regs->tnpc = regs->tpc + 4; |
| 259 | return; | 251 | return; |
| @@ -294,7 +286,7 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) | |||
| 294 | unsigned long tpc = regs->tpc; | 286 | unsigned long tpc = regs->tpc; |
| 295 | 287 | ||
| 296 | /* Sanity check the PC. */ | 288 | /* Sanity check the PC. */ |
| 297 | if ((tpc >= KERNBASE && tpc < (unsigned long) _etext) || | 289 | if ((tpc >= KERNBASE && tpc < (unsigned long) __init_end) || |
| 298 | (tpc >= MODULES_VADDR && tpc < MODULES_END)) { | 290 | (tpc >= MODULES_VADDR && tpc < MODULES_END)) { |
| 299 | /* Valid, no problems... */ | 291 | /* Valid, no problems... */ |
| 300 | } else { | 292 | } else { |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 9e6bca266d88..b5c30416fdac 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
| @@ -1010,7 +1010,8 @@ static struct linux_prom64_registers pall[MAX_BANKS] __initdata; | |||
| 1010 | static int pall_ents __initdata; | 1010 | static int pall_ents __initdata; |
| 1011 | 1011 | ||
| 1012 | #ifdef CONFIG_DEBUG_PAGEALLOC | 1012 | #ifdef CONFIG_DEBUG_PAGEALLOC |
| 1013 | static unsigned long kernel_map_range(unsigned long pstart, unsigned long pend, pgprot_t prot) | 1013 | static unsigned long __ref kernel_map_range(unsigned long pstart, |
| 1014 | unsigned long pend, pgprot_t prot) | ||
| 1014 | { | 1015 | { |
| 1015 | unsigned long vstart = PAGE_OFFSET + pstart; | 1016 | unsigned long vstart = PAGE_OFFSET + pstart; |
| 1016 | unsigned long vend = PAGE_OFFSET + pend; | 1017 | unsigned long vend = PAGE_OFFSET + pend; |
diff --git a/arch/sparc64/solaris/conv.h b/arch/sparc64/solaris/conv.h index 5faf59a9de39..50e58232cf2b 100644 --- a/arch/sparc64/solaris/conv.h +++ b/arch/sparc64/solaris/conv.h | |||
| @@ -28,7 +28,7 @@ extern unsigned sunos_sys_table[]; | |||
| 28 | #define SUNOS(x) ((long)sunos_sys_table[x]) | 28 | #define SUNOS(x) ((long)sunos_sys_table[x]) |
| 29 | 29 | ||
| 30 | #ifdef DEBUG_SOLARIS | 30 | #ifdef DEBUG_SOLARIS |
| 31 | #define SOLD(s) printk("%s,%d,%s(): %s\n",__FILE__,__LINE__,__FUNCTION__,(s)) | 31 | #define SOLD(s) printk("%s,%d,%s(): %s\n",__FILE__,__LINE__,__func__,(s)) |
| 32 | #define SOLDD(s) printk("solaris: "); printk s | 32 | #define SOLDD(s) printk("solaris: "); printk s |
| 33 | #else | 33 | #else |
| 34 | #define SOLD(s) | 34 | #define SOLD(s) |
diff --git a/arch/sparc64/solaris/timod.c b/arch/sparc64/solaris/timod.c index f53123c02c2b..15234fcd191a 100644 --- a/arch/sparc64/solaris/timod.c +++ b/arch/sparc64/solaris/timod.c | |||
| @@ -81,7 +81,7 @@ void mykfree(void *p) | |||
| 81 | #define MKCTL_MAGIC 0xDEADBABEBADC0DEDL | 81 | #define MKCTL_MAGIC 0xDEADBABEBADC0DEDL |
| 82 | #define PUT_MAGIC(a,m) do{(*(u64*)(a))=(m);}while(0) | 82 | #define PUT_MAGIC(a,m) do{(*(u64*)(a))=(m);}while(0) |
| 83 | #define SCHECK_MAGIC(a,m) do{if((*(u64*)(a))!=(m))printk("%s,%u,%s(): magic %08x at %p corrupted!\n",\ | 83 | #define SCHECK_MAGIC(a,m) do{if((*(u64*)(a))!=(m))printk("%s,%u,%s(): magic %08x at %p corrupted!\n",\ |
| 84 | __FILE__,__LINE__,__FUNCTION__,(m),(a));}while(0) | 84 | __FILE__,__LINE__,__func__,(m),(a));}while(0) |
| 85 | #define BUF_OFFSET sizeof(u64) | 85 | #define BUF_OFFSET sizeof(u64) |
| 86 | #define MKCTL_TRAILER sizeof(u64) | 86 | #define MKCTL_TRAILER sizeof(u64) |
| 87 | 87 | ||
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index fc50d2f959d1..e8cb9ff183e9 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c | |||
| @@ -128,8 +128,6 @@ void *get_current(void) | |||
| 128 | return current; | 128 | return current; |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | extern void schedule_tail(struct task_struct *prev); | ||
| 132 | |||
| 133 | /* | 131 | /* |
| 134 | * This is called magically, by its address being stuffed in a jmp_buf | 132 | * This is called magically, by its address being stuffed in a jmp_buf |
| 135 | * and being longjmp-d to. | 133 | * and being longjmp-d to. |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 4a88cf7695b4..6c70fed0f9a0 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -21,7 +21,8 @@ config X86 | |||
| 21 | select HAVE_IDE | 21 | select HAVE_IDE |
| 22 | select HAVE_OPROFILE | 22 | select HAVE_OPROFILE |
| 23 | select HAVE_KPROBES | 23 | select HAVE_KPROBES |
| 24 | select HAVE_KVM | 24 | select HAVE_KRETPROBES |
| 25 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) | ||
| 25 | 26 | ||
| 26 | 27 | ||
| 27 | config GENERIC_LOCKBREAK | 28 | config GENERIC_LOCKBREAK |
| @@ -65,9 +66,6 @@ config MMU | |||
| 65 | config ZONE_DMA | 66 | config ZONE_DMA |
| 66 | def_bool y | 67 | def_bool y |
| 67 | 68 | ||
| 68 | config QUICKLIST | ||
| 69 | def_bool X86_32 | ||
| 70 | |||
| 71 | config SBUS | 69 | config SBUS |
| 72 | bool | 70 | bool |
| 73 | 71 | ||
| @@ -1261,7 +1259,7 @@ menuconfig APM | |||
| 1261 | machines with more than one CPU. | 1259 | machines with more than one CPU. |
| 1262 | 1260 | ||
| 1263 | In order to use APM, you will need supporting software. For location | 1261 | In order to use APM, you will need supporting software. For location |
| 1264 | and more information, read <file:Documentation/pm.txt> and the | 1262 | and more information, read <file:Documentation/power/pm.txt> and the |
| 1265 | Battery Powered Linux mini-HOWTO, available from | 1263 | Battery Powered Linux mini-HOWTO, available from |
| 1266 | <http://www.tldp.org/docs.html#howto>. | 1264 | <http://www.tldp.org/docs.html#howto>. |
| 1267 | 1265 | ||
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index e09a6b73a1aa..9304bfba7d45 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu | |||
| @@ -377,6 +377,19 @@ config X86_OOSTORE | |||
| 377 | def_bool y | 377 | def_bool y |
| 378 | depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR | 378 | depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR |
| 379 | 379 | ||
| 380 | # | ||
| 381 | # P6_NOPs are a relatively minor optimization that require a family >= | ||
| 382 | # 6 processor, except that it is broken on certain VIA chips. | ||
| 383 | # Furthermore, AMD chips prefer a totally different sequence of NOPs | ||
| 384 | # (which work on all CPUs). As a result, disallow these if we're | ||
| 385 | # compiling X86_GENERIC but not X86_64 (these NOPs do work on all | ||
| 386 | # x86-64 capable chips); the list of processors in the right-hand clause | ||
| 387 | # are the cores that benefit from this optimization. | ||
| 388 | # | ||
| 389 | config X86_P6_NOP | ||
| 390 | def_bool y | ||
| 391 | depends on (X86_64 || !X86_GENERIC) && (M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4) | ||
| 392 | |||
| 380 | config X86_TSC | 393 | config X86_TSC |
| 381 | def_bool y | 394 | def_bool y |
| 382 | depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64 | 395 | depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64 |
| @@ -390,6 +403,7 @@ config X86_CMOV | |||
| 390 | config X86_MINIMUM_CPU_FAMILY | 403 | config X86_MINIMUM_CPU_FAMILY |
| 391 | int | 404 | int |
| 392 | default "64" if X86_64 | 405 | default "64" if X86_64 |
| 406 | default "6" if X86_32 && X86_P6_NOP | ||
| 393 | default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK) | 407 | default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK) |
| 394 | default "3" | 408 | default "3" |
| 395 | 409 | ||
diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c index 378353956b5d..e77d89f9e8aa 100644 --- a/arch/x86/boot/memory.c +++ b/arch/x86/boot/memory.c | |||
| @@ -37,6 +37,12 @@ static int detect_memory_e820(void) | |||
| 37 | "=m" (*desc) | 37 | "=m" (*desc) |
| 38 | : "D" (desc), "d" (SMAP), "a" (0xe820)); | 38 | : "D" (desc), "d" (SMAP), "a" (0xe820)); |
| 39 | 39 | ||
| 40 | /* BIOSes which terminate the chain with CF = 1 as opposed | ||
| 41 | to %ebx = 0 don't always report the SMAP signature on | ||
| 42 | the final, failing, probe. */ | ||
| 43 | if (err) | ||
| 44 | break; | ||
| 45 | |||
| 40 | /* Some BIOSes stop returning SMAP in the middle of | 46 | /* Some BIOSes stop returning SMAP in the middle of |
| 41 | the search loop. We don't know exactly how the BIOS | 47 | the search loop. We don't know exactly how the BIOS |
| 42 | screwed up the map at that point, we might have a | 48 | screwed up the map at that point, we might have a |
| @@ -47,9 +53,6 @@ static int detect_memory_e820(void) | |||
| 47 | break; | 53 | break; |
| 48 | } | 54 | } |
| 49 | 55 | ||
| 50 | if (err) | ||
| 51 | break; | ||
| 52 | |||
| 53 | count++; | 56 | count++; |
| 54 | desc++; | 57 | desc++; |
| 55 | } while (next && count < E820MAX); | 58 | } while (next && count < E820MAX); |
diff --git a/arch/x86/boot/vesa.h b/arch/x86/boot/vesa.h index ff5b73cd406f..468e444622c5 100644 --- a/arch/x86/boot/vesa.h +++ b/arch/x86/boot/vesa.h | |||
| @@ -26,17 +26,10 @@ struct vesa_general_info { | |||
| 26 | far_ptr video_mode_ptr; /* 14 */ | 26 | far_ptr video_mode_ptr; /* 14 */ |
| 27 | u16 total_memory; /* 18 */ | 27 | u16 total_memory; /* 18 */ |
| 28 | 28 | ||
| 29 | u16 oem_software_rev; /* 20 */ | 29 | u8 reserved[236]; /* 20 */ |
| 30 | far_ptr oem_vendor_name_ptr; /* 22 */ | ||
| 31 | far_ptr oem_product_name_ptr; /* 26 */ | ||
| 32 | far_ptr oem_product_rev_ptr; /* 30 */ | ||
| 33 | |||
| 34 | u8 reserved[222]; /* 34 */ | ||
| 35 | u8 oem_data[256]; /* 256 */ | ||
| 36 | } __attribute__ ((packed)); | 30 | } __attribute__ ((packed)); |
| 37 | 31 | ||
| 38 | #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24)) | 32 | #define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24)) |
| 39 | #define VBE2_MAGIC ('V' + ('B' << 8) + ('E' << 16) + ('2' << 24)) | ||
| 40 | 33 | ||
| 41 | struct vesa_mode_info { | 34 | struct vesa_mode_info { |
| 42 | u16 mode_attr; /* 0 */ | 35 | u16 mode_attr; /* 0 */ |
diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c index 662dd2f13068..419b5c273374 100644 --- a/arch/x86/boot/video-vesa.c +++ b/arch/x86/boot/video-vesa.c | |||
| @@ -37,8 +37,6 @@ static int vesa_probe(void) | |||
| 37 | 37 | ||
| 38 | video_vesa.modes = GET_HEAP(struct mode_info, 0); | 38 | video_vesa.modes = GET_HEAP(struct mode_info, 0); |
| 39 | 39 | ||
| 40 | vginfo.signature = VBE2_MAGIC; | ||
| 41 | |||
| 42 | ax = 0x4f00; | 40 | ax = 0x4f00; |
| 43 | di = (size_t)&vginfo; | 41 | di = (size_t)&vginfo; |
| 44 | asm(INT10 | 42 | asm(INT10 |
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c index 1c0503bdfb1a..5e7771a3ba2f 100644 --- a/arch/x86/ia32/ia32_signal.c +++ b/arch/x86/ia32/ia32_signal.c | |||
| @@ -500,7 +500,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka, | |||
| 500 | regs->ss = __USER32_DS; | 500 | regs->ss = __USER32_DS; |
| 501 | 501 | ||
| 502 | set_fs(USER_DS); | 502 | set_fs(USER_DS); |
| 503 | regs->flags &= ~X86_EFLAGS_TF; | 503 | regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF); |
| 504 | if (test_thread_flag(TIF_SINGLESTEP)) | 504 | if (test_thread_flag(TIF_SINGLESTEP)) |
| 505 | ptrace_notify(SIGTRAP); | 505 | ptrace_notify(SIGTRAP); |
| 506 | 506 | ||
| @@ -600,7 +600,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
| 600 | regs->ss = __USER32_DS; | 600 | regs->ss = __USER32_DS; |
| 601 | 601 | ||
| 602 | set_fs(USER_DS); | 602 | set_fs(USER_DS); |
| 603 | regs->flags &= ~X86_EFLAGS_TF; | 603 | regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF); |
| 604 | if (test_thread_flag(TIF_SINGLESTEP)) | 604 | if (test_thread_flag(TIF_SINGLESTEP)) |
| 605 | ptrace_notify(SIGTRAP); | 605 | ptrace_notify(SIGTRAP); |
| 606 | 606 | ||
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c index a33d53017997..8ea040124f7d 100644 --- a/arch/x86/kernel/asm-offsets_32.c +++ b/arch/x86/kernel/asm-offsets_32.c | |||
| @@ -128,13 +128,11 @@ void foo(void) | |||
| 128 | OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending); | 128 | OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending); |
| 129 | #endif | 129 | #endif |
| 130 | 130 | ||
| 131 | #ifdef CONFIG_LGUEST_GUEST | 131 | #if defined(CONFIG_LGUEST) || defined(CONFIG_LGUEST_GUEST) || defined(CONFIG_LGUEST_MODULE) |
| 132 | BLANK(); | 132 | BLANK(); |
| 133 | OFFSET(LGUEST_DATA_irq_enabled, lguest_data, irq_enabled); | 133 | OFFSET(LGUEST_DATA_irq_enabled, lguest_data, irq_enabled); |
| 134 | OFFSET(LGUEST_DATA_pgdir, lguest_data, pgdir); | 134 | OFFSET(LGUEST_DATA_pgdir, lguest_data, pgdir); |
| 135 | #endif | ||
| 136 | 135 | ||
| 137 | #ifdef CONFIG_LGUEST | ||
| 138 | BLANK(); | 136 | BLANK(); |
| 139 | OFFSET(LGUEST_PAGES_host_gdt_desc, lguest_pages, state.host_gdt_desc); | 137 | OFFSET(LGUEST_PAGES_host_gdt_desc, lguest_pages, state.host_gdt_desc); |
| 140 | OFFSET(LGUEST_PAGES_host_idt_desc, lguest_pages, state.host_idt_desc); | 138 | OFFSET(LGUEST_PAGES_host_idt_desc, lguest_pages, state.host_idt_desc); |
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index f86a3c4a2669..a38aafaefc23 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
| @@ -504,7 +504,7 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c) | |||
| 504 | 504 | ||
| 505 | /* Clear all flags overriden by options */ | 505 | /* Clear all flags overriden by options */ |
| 506 | for (i = 0; i < NCAPINTS; i++) | 506 | for (i = 0; i < NCAPINTS; i++) |
| 507 | c->x86_capability[i] ^= cleared_cpu_caps[i]; | 507 | c->x86_capability[i] &= ~cleared_cpu_caps[i]; |
| 508 | 508 | ||
| 509 | /* Init Machine Check Exception if available. */ | 509 | /* Init Machine Check Exception if available. */ |
| 510 | mcheck_init(c); | 510 | mcheck_init(c); |
diff --git a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c index 39f8cb18296c..c2f930d86640 100644 --- a/arch/x86/kernel/cpu/cpufreq/e_powersaver.c +++ b/arch/x86/kernel/cpu/cpufreq/e_powersaver.c | |||
| @@ -55,7 +55,6 @@ static int eps_set_state(struct eps_cpu_data *centaur, | |||
| 55 | { | 55 | { |
| 56 | struct cpufreq_freqs freqs; | 56 | struct cpufreq_freqs freqs; |
| 57 | u32 lo, hi; | 57 | u32 lo, hi; |
| 58 | u8 current_multiplier, current_voltage; | ||
| 59 | int err = 0; | 58 | int err = 0; |
| 60 | int i; | 59 | int i; |
| 61 | 60 | ||
| @@ -95,6 +94,10 @@ postchange: | |||
| 95 | rdmsr(MSR_IA32_PERF_STATUS, lo, hi); | 94 | rdmsr(MSR_IA32_PERF_STATUS, lo, hi); |
| 96 | freqs.new = centaur->fsb * ((lo >> 8) & 0xff); | 95 | freqs.new = centaur->fsb * ((lo >> 8) & 0xff); |
| 97 | 96 | ||
| 97 | #ifdef DEBUG | ||
| 98 | { | ||
| 99 | u8 current_multiplier, current_voltage; | ||
| 100 | |||
| 98 | /* Print voltage and multiplier */ | 101 | /* Print voltage and multiplier */ |
| 99 | rdmsr(MSR_IA32_PERF_STATUS, lo, hi); | 102 | rdmsr(MSR_IA32_PERF_STATUS, lo, hi); |
| 100 | current_voltage = lo & 0xff; | 103 | current_voltage = lo & 0xff; |
| @@ -103,7 +106,8 @@ postchange: | |||
| 103 | current_multiplier = (lo >> 8) & 0xff; | 106 | current_multiplier = (lo >> 8) & 0xff; |
| 104 | printk(KERN_INFO "eps: Current multiplier = %d\n", | 107 | printk(KERN_INFO "eps: Current multiplier = %d\n", |
| 105 | current_multiplier); | 108 | current_multiplier); |
| 106 | 109 | } | |
| 110 | #endif | ||
| 107 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | 111 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); |
| 108 | return err; | 112 | return err; |
| 109 | } | 113 | } |
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c index b6e136f23d3d..be83336fddba 100644 --- a/arch/x86/kernel/cpu/mtrr/main.c +++ b/arch/x86/kernel/cpu/mtrr/main.c | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | #include <asm/uaccess.h> | 43 | #include <asm/uaccess.h> |
| 44 | #include <asm/processor.h> | 44 | #include <asm/processor.h> |
| 45 | #include <asm/msr.h> | 45 | #include <asm/msr.h> |
| 46 | #include <asm/kvm_para.h> | ||
| 46 | #include "mtrr.h" | 47 | #include "mtrr.h" |
| 47 | 48 | ||
| 48 | u32 num_var_ranges = 0; | 49 | u32 num_var_ranges = 0; |
| @@ -649,6 +650,7 @@ static __init int amd_special_default_mtrr(void) | |||
| 649 | 650 | ||
| 650 | /** | 651 | /** |
| 651 | * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs | 652 | * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs |
| 653 | * @end_pfn: ending page frame number | ||
| 652 | * | 654 | * |
| 653 | * Some buggy BIOSes don't setup the MTRRs properly for systems with certain | 655 | * Some buggy BIOSes don't setup the MTRRs properly for systems with certain |
| 654 | * memory configurations. This routine checks that the highest MTRR matches | 656 | * memory configurations. This routine checks that the highest MTRR matches |
| @@ -688,8 +690,11 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn) | |||
| 688 | 690 | ||
| 689 | /* kvm/qemu doesn't have mtrr set right, don't trim them all */ | 691 | /* kvm/qemu doesn't have mtrr set right, don't trim them all */ |
| 690 | if (!highest_pfn) { | 692 | if (!highest_pfn) { |
| 691 | printk(KERN_WARNING "WARNING: strange, CPU MTRRs all blank?\n"); | 693 | if (!kvm_para_available()) { |
| 692 | WARN_ON(1); | 694 | printk(KERN_WARNING |
| 695 | "WARNING: strange, CPU MTRRs all blank?\n"); | ||
| 696 | WARN_ON(1); | ||
| 697 | } | ||
| 693 | return 0; | 698 | return 0; |
| 694 | } | 699 | } |
| 695 | 700 | ||
diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c index 200fb3f9ebfb..e8b422c1c512 100644 --- a/arch/x86/kernel/cpu/transmeta.c +++ b/arch/x86/kernel/cpu/transmeta.c | |||
| @@ -76,13 +76,6 @@ static void __cpuinit init_transmeta(struct cpuinfo_x86 *c) | |||
| 76 | /* All Transmeta CPUs have a constant TSC */ | 76 | /* All Transmeta CPUs have a constant TSC */ |
| 77 | set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); | 77 | set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); |
| 78 | 78 | ||
| 79 | /* If we can run i686 user-space code, call us an i686 */ | ||
| 80 | #define USER686 ((1 << X86_FEATURE_TSC)|\ | ||
| 81 | (1 << X86_FEATURE_CX8)|\ | ||
| 82 | (1 << X86_FEATURE_CMOV)) | ||
| 83 | if (c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686) | ||
| 84 | c->x86 = 6; | ||
| 85 | |||
| 86 | #ifdef CONFIG_SYSCTL | 79 | #ifdef CONFIG_SYSCTL |
| 87 | /* randomize_va_space slows us down enormously; | 80 | /* randomize_va_space slows us down enormously; |
| 88 | it probably triggers retranslation of x86->native bytecode */ | 81 | it probably triggers retranslation of x86->native bytecode */ |
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index 2ad9a1bc6a73..c20c9e7e08dd 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
| @@ -453,6 +453,7 @@ ENTRY(stub_execve) | |||
| 453 | CFI_REGISTER rip, r11 | 453 | CFI_REGISTER rip, r11 |
| 454 | SAVE_REST | 454 | SAVE_REST |
| 455 | FIXUP_TOP_OF_STACK %r11 | 455 | FIXUP_TOP_OF_STACK %r11 |
| 456 | movq %rsp, %rcx | ||
| 456 | call sys_execve | 457 | call sys_execve |
| 457 | RESTORE_TOP_OF_STACK %r11 | 458 | RESTORE_TOP_OF_STACK %r11 |
| 458 | movq %rax,RAX(%rsp) | 459 | movq %rax,RAX(%rsp) |
| @@ -1036,15 +1037,16 @@ ENDPROC(child_rip) | |||
| 1036 | * rdi: name, rsi: argv, rdx: envp | 1037 | * rdi: name, rsi: argv, rdx: envp |
| 1037 | * | 1038 | * |
| 1038 | * We want to fallback into: | 1039 | * We want to fallback into: |
| 1039 | * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs regs) | 1040 | * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs *regs) |
| 1040 | * | 1041 | * |
| 1041 | * do_sys_execve asm fallback arguments: | 1042 | * do_sys_execve asm fallback arguments: |
| 1042 | * rdi: name, rsi: argv, rdx: envp, fake frame on the stack | 1043 | * rdi: name, rsi: argv, rdx: envp, rcx: fake frame on the stack |
| 1043 | */ | 1044 | */ |
| 1044 | ENTRY(kernel_execve) | 1045 | ENTRY(kernel_execve) |
| 1045 | CFI_STARTPROC | 1046 | CFI_STARTPROC |
| 1046 | FAKE_STACK_FRAME $0 | 1047 | FAKE_STACK_FRAME $0 |
| 1047 | SAVE_ALL | 1048 | SAVE_ALL |
| 1049 | movq %rsp,%rcx | ||
| 1048 | call sys_execve | 1050 | call sys_execve |
| 1049 | movq %rax, RAX(%rsp) | 1051 | movq %rax, RAX(%rsp) |
| 1050 | RESTORE_REST | 1052 | RESTORE_REST |
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S index 25eb98540a41..fd8ca53943a8 100644 --- a/arch/x86/kernel/head_32.S +++ b/arch/x86/kernel/head_32.S | |||
| @@ -606,7 +606,7 @@ ENTRY(_stext) | |||
| 606 | .section ".bss.page_aligned","wa" | 606 | .section ".bss.page_aligned","wa" |
| 607 | .align PAGE_SIZE_asm | 607 | .align PAGE_SIZE_asm |
| 608 | #ifdef CONFIG_X86_PAE | 608 | #ifdef CONFIG_X86_PAE |
| 609 | ENTRY(swapper_pg_pmd) | 609 | swapper_pg_pmd: |
| 610 | .fill 1024*KPMDS,4,0 | 610 | .fill 1024*KPMDS,4,0 |
| 611 | #else | 611 | #else |
| 612 | ENTRY(swapper_pg_dir) | 612 | ENTRY(swapper_pg_dir) |
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index eb415043a929..a007454133a3 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S | |||
| @@ -379,18 +379,24 @@ NEXT_PAGE(level2_ident_pgt) | |||
| 379 | /* Since I easily can, map the first 1G. | 379 | /* Since I easily can, map the first 1G. |
| 380 | * Don't set NX because code runs from these pages. | 380 | * Don't set NX because code runs from these pages. |
| 381 | */ | 381 | */ |
| 382 | PMDS(0x0000000000000000, __PAGE_KERNEL_LARGE_EXEC, PTRS_PER_PMD) | 382 | PMDS(0, __PAGE_KERNEL_LARGE_EXEC, PTRS_PER_PMD) |
| 383 | 383 | ||
| 384 | NEXT_PAGE(level2_kernel_pgt) | 384 | NEXT_PAGE(level2_kernel_pgt) |
| 385 | /* 40MB kernel mapping. The kernel code cannot be bigger than that. | 385 | /* |
| 386 | When you change this change KERNEL_TEXT_SIZE in page.h too. */ | 386 | * 128 MB kernel mapping. We spend a full page on this pagetable |
| 387 | /* (2^48-(2*1024*1024*1024)-((2^39)*511)-((2^30)*510)) = 0 */ | 387 | * anyway. |
| 388 | PMDS(0x0000000000000000, __PAGE_KERNEL_LARGE_EXEC|_PAGE_GLOBAL, KERNEL_TEXT_SIZE/PMD_SIZE) | 388 | * |
| 389 | /* Module mapping starts here */ | 389 | * The kernel code+data+bss must not be bigger than that. |
| 390 | .fill (PTRS_PER_PMD - (KERNEL_TEXT_SIZE/PMD_SIZE)),8,0 | 390 | * |
| 391 | * (NOTE: at +128MB starts the module area, see MODULES_VADDR. | ||
| 392 | * If you want to increase this then increase MODULES_VADDR | ||
| 393 | * too.) | ||
| 394 | */ | ||
| 395 | PMDS(0, __PAGE_KERNEL_LARGE_EXEC|_PAGE_GLOBAL, | ||
| 396 | KERNEL_IMAGE_SIZE/PMD_SIZE) | ||
| 391 | 397 | ||
| 392 | NEXT_PAGE(level2_spare_pgt) | 398 | NEXT_PAGE(level2_spare_pgt) |
| 393 | .fill 512,8,0 | 399 | .fill 512, 8, 0 |
| 394 | 400 | ||
| 395 | #undef PMDS | 401 | #undef PMDS |
| 396 | #undef NEXT_PAGE | 402 | #undef NEXT_PAGE |
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index 429d084e014d..235fd6c77504 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
| @@ -368,8 +368,8 @@ static int hpet_clocksource_register(void) | |||
| 368 | return 0; | 368 | return 0; |
| 369 | } | 369 | } |
| 370 | 370 | ||
| 371 | /* | 371 | /** |
| 372 | * Try to setup the HPET timer | 372 | * hpet_enable - Try to setup the HPET timer. Returns 1 on success. |
| 373 | */ | 373 | */ |
| 374 | int __init hpet_enable(void) | 374 | int __init hpet_enable(void) |
| 375 | { | 375 | { |
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c index 763dfc407232..d2e39e69aaf8 100644 --- a/arch/x86/kernel/i387.c +++ b/arch/x86/kernel/i387.c | |||
| @@ -132,7 +132,7 @@ int xfpregs_get(struct task_struct *target, const struct user_regset *regset, | |||
| 132 | if (!cpu_has_fxsr) | 132 | if (!cpu_has_fxsr) |
| 133 | return -ENODEV; | 133 | return -ENODEV; |
| 134 | 134 | ||
| 135 | unlazy_fpu(target); | 135 | init_fpu(target); |
| 136 | 136 | ||
| 137 | return user_regset_copyout(&pos, &count, &kbuf, &ubuf, | 137 | return user_regset_copyout(&pos, &count, &kbuf, &ubuf, |
| 138 | &target->thread.i387.fxsave, 0, -1); | 138 | &target->thread.i387.fxsave, 0, -1); |
| @@ -147,7 +147,7 @@ int xfpregs_set(struct task_struct *target, const struct user_regset *regset, | |||
| 147 | if (!cpu_has_fxsr) | 147 | if (!cpu_has_fxsr) |
| 148 | return -ENODEV; | 148 | return -ENODEV; |
| 149 | 149 | ||
| 150 | unlazy_fpu(target); | 150 | init_fpu(target); |
| 151 | set_stopped_child_used_math(target); | 151 | set_stopped_child_used_math(target); |
| 152 | 152 | ||
| 153 | ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, | 153 | ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, |
| @@ -261,7 +261,7 @@ static void convert_from_fxsr(struct user_i387_ia32_struct *env, | |||
| 261 | } | 261 | } |
| 262 | #else | 262 | #else |
| 263 | env->fip = fxsave->fip; | 263 | env->fip = fxsave->fip; |
| 264 | env->fcs = fxsave->fcs; | 264 | env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16); |
| 265 | env->foo = fxsave->foo; | 265 | env->foo = fxsave->foo; |
| 266 | env->fos = fxsave->fos; | 266 | env->fos = fxsave->fos; |
| 267 | #endif | 267 | #endif |
| @@ -307,7 +307,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset, | |||
| 307 | if (!HAVE_HWFP) | 307 | if (!HAVE_HWFP) |
| 308 | return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf); | 308 | return fpregs_soft_get(target, regset, pos, count, kbuf, ubuf); |
| 309 | 309 | ||
| 310 | unlazy_fpu(target); | 310 | init_fpu(target); |
| 311 | 311 | ||
| 312 | if (!cpu_has_fxsr) | 312 | if (!cpu_has_fxsr) |
| 313 | return user_regset_copyout(&pos, &count, &kbuf, &ubuf, | 313 | return user_regset_copyout(&pos, &count, &kbuf, &ubuf, |
| @@ -332,7 +332,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset, | |||
| 332 | if (!HAVE_HWFP) | 332 | if (!HAVE_HWFP) |
| 333 | return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf); | 333 | return fpregs_soft_set(target, regset, pos, count, kbuf, ubuf); |
| 334 | 334 | ||
| 335 | unlazy_fpu(target); | 335 | init_fpu(target); |
| 336 | set_stopped_child_used_math(target); | 336 | set_stopped_child_used_math(target); |
| 337 | 337 | ||
| 338 | if (!cpu_has_fxsr) | 338 | if (!cpu_has_fxsr) |
diff --git a/arch/x86/kernel/init_task.c b/arch/x86/kernel/init_task.c index 5b3ce7934363..3d01e47777db 100644 --- a/arch/x86/kernel/init_task.c +++ b/arch/x86/kernel/init_task.c | |||
| @@ -15,6 +15,7 @@ static struct files_struct init_files = INIT_FILES; | |||
| 15 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | 15 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); |
| 16 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | 16 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); |
| 17 | struct mm_struct init_mm = INIT_MM(init_mm); | 17 | struct mm_struct init_mm = INIT_MM(init_mm); |
| 18 | EXPORT_UNUSED_SYMBOL(init_mm); /* will be removed in 2.6.26 */ | ||
| 18 | 19 | ||
| 19 | /* | 20 | /* |
| 20 | * Initial thread structure. | 21 | * Initial thread structure. |
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index a7d50a547dc2..be3c7a299f02 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c | |||
| @@ -603,11 +603,13 @@ __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p, | |||
| 603 | } | 603 | } |
| 604 | #endif | 604 | #endif |
| 605 | 605 | ||
| 606 | #ifdef X86_BTS | ||
| 606 | if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) | 607 | if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) |
| 607 | ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); | 608 | ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); |
| 608 | 609 | ||
| 609 | if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) | 610 | if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) |
| 610 | ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); | 611 | ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); |
| 612 | #endif | ||
| 611 | 613 | ||
| 612 | 614 | ||
| 613 | if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) { | 615 | if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) { |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index b0cc8f0136d8..3baf9b9f4c87 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
| @@ -604,11 +604,13 @@ static inline void __switch_to_xtra(struct task_struct *prev_p, | |||
| 604 | memset(tss->io_bitmap, 0xff, prev->io_bitmap_max); | 604 | memset(tss->io_bitmap, 0xff, prev->io_bitmap_max); |
| 605 | } | 605 | } |
| 606 | 606 | ||
| 607 | #ifdef X86_BTS | ||
| 607 | if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) | 608 | if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) |
| 608 | ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); | 609 | ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); |
| 609 | 610 | ||
| 610 | if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) | 611 | if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) |
| 611 | ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); | 612 | ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); |
| 613 | #endif | ||
| 612 | } | 614 | } |
| 613 | 615 | ||
| 614 | /* | 616 | /* |
| @@ -730,16 +732,16 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) | |||
| 730 | */ | 732 | */ |
| 731 | asmlinkage | 733 | asmlinkage |
| 732 | long sys_execve(char __user *name, char __user * __user *argv, | 734 | long sys_execve(char __user *name, char __user * __user *argv, |
| 733 | char __user * __user *envp, struct pt_regs regs) | 735 | char __user * __user *envp, struct pt_regs *regs) |
| 734 | { | 736 | { |
| 735 | long error; | 737 | long error; |
| 736 | char * filename; | 738 | char * filename; |
| 737 | 739 | ||
| 738 | filename = getname(name); | 740 | filename = getname(name); |
| 739 | error = PTR_ERR(filename); | 741 | error = PTR_ERR(filename); |
| 740 | if (IS_ERR(filename)) | 742 | if (IS_ERR(filename)) |
| 741 | return error; | 743 | return error; |
| 742 | error = do_execve(filename, argv, envp, ®s); | 744 | error = do_execve(filename, argv, envp, regs); |
| 743 | putname(filename); | 745 | putname(filename); |
| 744 | return error; | 746 | return error; |
| 745 | } | 747 | } |
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index d862e396b099..d5904eef1d31 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c | |||
| @@ -323,6 +323,16 @@ static int putreg(struct task_struct *child, | |||
| 323 | return set_flags(child, value); | 323 | return set_flags(child, value); |
| 324 | 324 | ||
| 325 | #ifdef CONFIG_X86_64 | 325 | #ifdef CONFIG_X86_64 |
| 326 | /* | ||
| 327 | * Orig_ax is really just a flag with small positive and | ||
| 328 | * negative values, so make sure to always sign-extend it | ||
| 329 | * from 32 bits so that it works correctly regardless of | ||
| 330 | * whether we come from a 32-bit environment or not. | ||
| 331 | */ | ||
| 332 | case offsetof(struct user_regs_struct, orig_ax): | ||
| 333 | value = (long) (s32) value; | ||
| 334 | break; | ||
| 335 | |||
| 326 | case offsetof(struct user_regs_struct,fs_base): | 336 | case offsetof(struct user_regs_struct,fs_base): |
| 327 | if (value >= TASK_SIZE_OF(child)) | 337 | if (value >= TASK_SIZE_OF(child)) |
| 328 | return -EIO; | 338 | return -EIO; |
| @@ -544,6 +554,8 @@ static int ptrace_set_debugreg(struct task_struct *child, | |||
| 544 | return 0; | 554 | return 0; |
| 545 | } | 555 | } |
| 546 | 556 | ||
| 557 | #ifdef X86_BTS | ||
| 558 | |||
| 547 | static int ptrace_bts_get_size(struct task_struct *child) | 559 | static int ptrace_bts_get_size(struct task_struct *child) |
| 548 | { | 560 | { |
| 549 | if (!child->thread.ds_area_msr) | 561 | if (!child->thread.ds_area_msr) |
| @@ -826,6 +838,7 @@ void ptrace_bts_take_timestamp(struct task_struct *tsk, | |||
| 826 | 838 | ||
| 827 | ptrace_bts_write_record(tsk, &rec); | 839 | ptrace_bts_write_record(tsk, &rec); |
| 828 | } | 840 | } |
| 841 | #endif /* X86_BTS */ | ||
| 829 | 842 | ||
| 830 | /* | 843 | /* |
| 831 | * Called by kernel/ptrace.c when detaching.. | 844 | * Called by kernel/ptrace.c when detaching.. |
| @@ -839,7 +852,9 @@ void ptrace_disable(struct task_struct *child) | |||
| 839 | clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); | 852 | clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); |
| 840 | #endif | 853 | #endif |
| 841 | if (child->thread.ds_area_msr) { | 854 | if (child->thread.ds_area_msr) { |
| 855 | #ifdef X86_BTS | ||
| 842 | ptrace_bts_realloc(child, 0, 0); | 856 | ptrace_bts_realloc(child, 0, 0); |
| 857 | #endif | ||
| 843 | child->thread.debugctlmsr &= ~ds_debugctl_mask(); | 858 | child->thread.debugctlmsr &= ~ds_debugctl_mask(); |
| 844 | if (!child->thread.debugctlmsr) | 859 | if (!child->thread.debugctlmsr) |
| 845 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); | 860 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); |
| @@ -961,6 +976,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
| 961 | break; | 976 | break; |
| 962 | #endif | 977 | #endif |
| 963 | 978 | ||
| 979 | /* | ||
| 980 | * These bits need more cooking - not enabled yet: | ||
| 981 | */ | ||
| 982 | #ifdef X86_BTS | ||
| 964 | case PTRACE_BTS_CONFIG: | 983 | case PTRACE_BTS_CONFIG: |
| 965 | ret = ptrace_bts_config | 984 | ret = ptrace_bts_config |
| 966 | (child, data, (struct ptrace_bts_config __user *)addr); | 985 | (child, data, (struct ptrace_bts_config __user *)addr); |
| @@ -988,6 +1007,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
| 988 | ret = ptrace_bts_drain | 1007 | ret = ptrace_bts_drain |
| 989 | (child, data, (struct bts_struct __user *) addr); | 1008 | (child, data, (struct bts_struct __user *) addr); |
| 990 | break; | 1009 | break; |
| 1010 | #endif | ||
| 991 | 1011 | ||
| 992 | default: | 1012 | default: |
| 993 | ret = ptrace_request(child, request, addr, data); | 1013 | ret = ptrace_request(child, request, addr, data); |
| @@ -1035,10 +1055,17 @@ static int putreg32(struct task_struct *child, unsigned regno, u32 value) | |||
| 1035 | R32(esi, si); | 1055 | R32(esi, si); |
| 1036 | R32(ebp, bp); | 1056 | R32(ebp, bp); |
| 1037 | R32(eax, ax); | 1057 | R32(eax, ax); |
| 1038 | R32(orig_eax, orig_ax); | ||
| 1039 | R32(eip, ip); | 1058 | R32(eip, ip); |
| 1040 | R32(esp, sp); | 1059 | R32(esp, sp); |
| 1041 | 1060 | ||
| 1061 | case offsetof(struct user32, regs.orig_eax): | ||
| 1062 | /* | ||
| 1063 | * Sign-extend the value so that orig_eax = -1 | ||
| 1064 | * causes (long)orig_ax < 0 tests to fire correctly. | ||
| 1065 | */ | ||
| 1066 | regs->orig_ax = (long) (s32) value; | ||
| 1067 | break; | ||
| 1068 | |||
| 1042 | case offsetof(struct user32, regs.eflags): | 1069 | case offsetof(struct user32, regs.eflags): |
| 1043 | return set_flags(child, value); | 1070 | return set_flags(child, value); |
| 1044 | 1071 | ||
| @@ -1226,12 +1253,14 @@ asmlinkage long sys32_ptrace(long request, u32 pid, u32 addr, u32 data) | |||
| 1226 | case PTRACE_SETOPTIONS: | 1253 | case PTRACE_SETOPTIONS: |
| 1227 | case PTRACE_SET_THREAD_AREA: | 1254 | case PTRACE_SET_THREAD_AREA: |
| 1228 | case PTRACE_GET_THREAD_AREA: | 1255 | case PTRACE_GET_THREAD_AREA: |
| 1256 | #ifdef X86_BTS | ||
| 1229 | case PTRACE_BTS_CONFIG: | 1257 | case PTRACE_BTS_CONFIG: |
| 1230 | case PTRACE_BTS_STATUS: | 1258 | case PTRACE_BTS_STATUS: |
| 1231 | case PTRACE_BTS_SIZE: | 1259 | case PTRACE_BTS_SIZE: |
| 1232 | case PTRACE_BTS_GET: | 1260 | case PTRACE_BTS_GET: |
| 1233 | case PTRACE_BTS_CLEAR: | 1261 | case PTRACE_BTS_CLEAR: |
| 1234 | case PTRACE_BTS_DRAIN: | 1262 | case PTRACE_BTS_DRAIN: |
| 1263 | #endif | ||
| 1235 | return sys_ptrace(request, pid, addr, data); | 1264 | return sys_ptrace(request, pid, addr, data); |
| 1236 | 1265 | ||
| 1237 | default: | 1266 | default: |
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 7fd6ac43e4a1..55ceb8cdef75 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
| @@ -326,6 +326,10 @@ static inline void kb_wait(void) | |||
| 326 | } | 326 | } |
| 327 | } | 327 | } |
| 328 | 328 | ||
| 329 | void __attribute__((weak)) mach_reboot_fixups(void) | ||
| 330 | { | ||
| 331 | } | ||
| 332 | |||
| 329 | static void native_machine_emergency_restart(void) | 333 | static void native_machine_emergency_restart(void) |
| 330 | { | 334 | { |
| 331 | int i; | 335 | int i; |
| @@ -337,6 +341,8 @@ static void native_machine_emergency_restart(void) | |||
| 337 | /* Could also try the reset bit in the Hammer NB */ | 341 | /* Could also try the reset bit in the Hammer NB */ |
| 338 | switch (reboot_type) { | 342 | switch (reboot_type) { |
| 339 | case BOOT_KBD: | 343 | case BOOT_KBD: |
| 344 | mach_reboot_fixups(); /* for board specific fixups */ | ||
| 345 | |||
| 340 | for (i = 0; i < 10; i++) { | 346 | for (i = 0; i < 10; i++) { |
| 341 | kb_wait(); | 347 | kb_wait(); |
| 342 | udelay(50); | 348 | udelay(50); |
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c index 6fd804f07821..7637dc91c79b 100644 --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c | |||
| @@ -1021,7 +1021,7 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c) | |||
| 1021 | 1021 | ||
| 1022 | /* Clear all flags overriden by options */ | 1022 | /* Clear all flags overriden by options */ |
| 1023 | for (i = 0; i < NCAPINTS; i++) | 1023 | for (i = 0; i < NCAPINTS; i++) |
| 1024 | c->x86_capability[i] ^= cleared_cpu_caps[i]; | 1024 | c->x86_capability[i] &= ~cleared_cpu_caps[i]; |
| 1025 | 1025 | ||
| 1026 | #ifdef CONFIG_X86_MCE | 1026 | #ifdef CONFIG_X86_MCE |
| 1027 | mcheck_init(c); | 1027 | mcheck_init(c); |
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c index caee1f002fed..0157a6f0f41f 100644 --- a/arch/x86/kernel/signal_32.c +++ b/arch/x86/kernel/signal_32.c | |||
| @@ -407,7 +407,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, | |||
| 407 | * The tracer may want to single-step inside the | 407 | * The tracer may want to single-step inside the |
| 408 | * handler too. | 408 | * handler too. |
| 409 | */ | 409 | */ |
| 410 | regs->flags &= ~TF_MASK; | 410 | regs->flags &= ~(TF_MASK | X86_EFLAGS_DF); |
| 411 | if (test_thread_flag(TIF_SINGLESTEP)) | 411 | if (test_thread_flag(TIF_SINGLESTEP)) |
| 412 | ptrace_notify(SIGTRAP); | 412 | ptrace_notify(SIGTRAP); |
| 413 | 413 | ||
| @@ -500,7 +500,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
| 500 | * The tracer may want to single-step inside the | 500 | * The tracer may want to single-step inside the |
| 501 | * handler too. | 501 | * handler too. |
| 502 | */ | 502 | */ |
| 503 | regs->flags &= ~TF_MASK; | 503 | regs->flags &= ~(TF_MASK | X86_EFLAGS_DF); |
| 504 | if (test_thread_flag(TIF_SINGLESTEP)) | 504 | if (test_thread_flag(TIF_SINGLESTEP)) |
| 505 | ptrace_notify(SIGTRAP); | 505 | ptrace_notify(SIGTRAP); |
| 506 | 506 | ||
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c index 7347bb14e306..1c83e5124c65 100644 --- a/arch/x86/kernel/signal_64.c +++ b/arch/x86/kernel/signal_64.c | |||
| @@ -295,7 +295,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
| 295 | see include/asm-x86_64/uaccess.h for details. */ | 295 | see include/asm-x86_64/uaccess.h for details. */ |
| 296 | set_fs(USER_DS); | 296 | set_fs(USER_DS); |
| 297 | 297 | ||
| 298 | regs->flags &= ~X86_EFLAGS_TF; | 298 | regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF); |
| 299 | if (test_thread_flag(TIF_SINGLESTEP)) | 299 | if (test_thread_flag(TIF_SINGLESTEP)) |
| 300 | ptrace_notify(SIGTRAP); | 300 | ptrace_notify(SIGTRAP); |
| 301 | #ifdef DEBUG_SIG | 301 | #ifdef DEBUG_SIG |
| @@ -311,6 +311,35 @@ give_sigsegv: | |||
| 311 | } | 311 | } |
| 312 | 312 | ||
| 313 | /* | 313 | /* |
| 314 | * Return -1L or the syscall number that @regs is executing. | ||
| 315 | */ | ||
| 316 | static long current_syscall(struct pt_regs *regs) | ||
| 317 | { | ||
| 318 | /* | ||
| 319 | * We always sign-extend a -1 value being set here, | ||
| 320 | * so this is always either -1L or a syscall number. | ||
| 321 | */ | ||
| 322 | return regs->orig_ax; | ||
| 323 | } | ||
| 324 | |||
| 325 | /* | ||
| 326 | * Return a value that is -EFOO if the system call in @regs->orig_ax | ||
| 327 | * returned an error. This only works for @regs from @current. | ||
| 328 | */ | ||
| 329 | static long current_syscall_ret(struct pt_regs *regs) | ||
| 330 | { | ||
| 331 | #ifdef CONFIG_IA32_EMULATION | ||
| 332 | if (test_thread_flag(TIF_IA32)) | ||
| 333 | /* | ||
| 334 | * Sign-extend the value so (int)-EFOO becomes (long)-EFOO | ||
| 335 | * and will match correctly in comparisons. | ||
| 336 | */ | ||
| 337 | return (int) regs->ax; | ||
| 338 | #endif | ||
| 339 | return regs->ax; | ||
| 340 | } | ||
| 341 | |||
| 342 | /* | ||
| 314 | * OK, we're invoking a handler | 343 | * OK, we're invoking a handler |
| 315 | */ | 344 | */ |
| 316 | 345 | ||
| @@ -327,9 +356,9 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, | |||
| 327 | #endif | 356 | #endif |
| 328 | 357 | ||
| 329 | /* Are we from a system call? */ | 358 | /* Are we from a system call? */ |
| 330 | if ((long)regs->orig_ax >= 0) { | 359 | if (current_syscall(regs) >= 0) { |
| 331 | /* If so, check system call restarting.. */ | 360 | /* If so, check system call restarting.. */ |
| 332 | switch (regs->ax) { | 361 | switch (current_syscall_ret(regs)) { |
| 333 | case -ERESTART_RESTARTBLOCK: | 362 | case -ERESTART_RESTARTBLOCK: |
| 334 | case -ERESTARTNOHAND: | 363 | case -ERESTARTNOHAND: |
| 335 | regs->ax = -EINTR; | 364 | regs->ax = -EINTR; |
| @@ -426,10 +455,9 @@ static void do_signal(struct pt_regs *regs) | |||
| 426 | } | 455 | } |
| 427 | 456 | ||
| 428 | /* Did we come from a system call? */ | 457 | /* Did we come from a system call? */ |
| 429 | if ((long)regs->orig_ax >= 0) { | 458 | if (current_syscall(regs) >= 0) { |
| 430 | /* Restart the system call - no handlers present */ | 459 | /* Restart the system call - no handlers present */ |
| 431 | long res = regs->ax; | 460 | switch (current_syscall_ret(regs)) { |
| 432 | switch (res) { | ||
| 433 | case -ERESTARTNOHAND: | 461 | case -ERESTARTNOHAND: |
| 434 | case -ERESTARTSYS: | 462 | case -ERESTARTSYS: |
| 435 | case -ERESTARTNOINTR: | 463 | case -ERESTARTNOINTR: |
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c index d53bd6fcb428..0880f2c388a9 100644 --- a/arch/x86/kernel/smpboot_64.c +++ b/arch/x86/kernel/smpboot_64.c | |||
| @@ -554,10 +554,10 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid) | |||
| 554 | int timeout; | 554 | int timeout; |
| 555 | unsigned long start_rip; | 555 | unsigned long start_rip; |
| 556 | struct create_idle c_idle = { | 556 | struct create_idle c_idle = { |
| 557 | .work = __WORK_INITIALIZER(c_idle.work, do_fork_idle), | ||
| 558 | .cpu = cpu, | 557 | .cpu = cpu, |
| 559 | .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), | 558 | .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), |
| 560 | }; | 559 | }; |
| 560 | INIT_WORK(&c_idle.work, do_fork_idle); | ||
| 561 | 561 | ||
| 562 | /* allocate memory for gdts of secondary cpus. Hotplug is considered */ | 562 | /* allocate memory for gdts of secondary cpus. Hotplug is considered */ |
| 563 | if (!cpu_gdt_descr[cpu].address && | 563 | if (!cpu_gdt_descr[cpu].address && |
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c index 02f0f61f5b11..c28c342c162f 100644 --- a/arch/x86/kernel/stacktrace.c +++ b/arch/x86/kernel/stacktrace.c | |||
| @@ -25,6 +25,8 @@ static int save_stack_stack(void *data, char *name) | |||
| 25 | static void save_stack_address(void *data, unsigned long addr, int reliable) | 25 | static void save_stack_address(void *data, unsigned long addr, int reliable) |
| 26 | { | 26 | { |
| 27 | struct stack_trace *trace = data; | 27 | struct stack_trace *trace = data; |
| 28 | if (!reliable) | ||
| 29 | return; | ||
| 28 | if (trace->skip > 0) { | 30 | if (trace->skip > 0) { |
| 29 | trace->skip--; | 31 | trace->skip--; |
| 30 | return; | 32 | return; |
| @@ -37,6 +39,8 @@ static void | |||
| 37 | save_stack_address_nosched(void *data, unsigned long addr, int reliable) | 39 | save_stack_address_nosched(void *data, unsigned long addr, int reliable) |
| 38 | { | 40 | { |
| 39 | struct stack_trace *trace = (struct stack_trace *)data; | 41 | struct stack_trace *trace = (struct stack_trace *)data; |
| 42 | if (!reliable) | ||
| 43 | return; | ||
| 40 | if (in_sched_functions(addr)) | 44 | if (in_sched_functions(addr)) |
| 41 | return; | 45 | return; |
| 42 | if (trace->skip > 0) { | 46 | if (trace->skip > 0) { |
diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c index 2ef1a5f8d675..9d406cdc847f 100644 --- a/arch/x86/kernel/step.c +++ b/arch/x86/kernel/step.c | |||
| @@ -166,7 +166,7 @@ static void enable_step(struct task_struct *child, bool block) | |||
| 166 | child->thread.debugctlmsr | DEBUGCTLMSR_BTF); | 166 | child->thread.debugctlmsr | DEBUGCTLMSR_BTF); |
| 167 | } else { | 167 | } else { |
| 168 | write_debugctlmsr(child, | 168 | write_debugctlmsr(child, |
| 169 | child->thread.debugctlmsr & ~TIF_DEBUGCTLMSR); | 169 | child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF); |
| 170 | 170 | ||
| 171 | if (!child->thread.debugctlmsr) | 171 | if (!child->thread.debugctlmsr) |
| 172 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); | 172 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); |
| @@ -189,7 +189,7 @@ void user_disable_single_step(struct task_struct *child) | |||
| 189 | * Make sure block stepping (BTF) is disabled. | 189 | * Make sure block stepping (BTF) is disabled. |
| 190 | */ | 190 | */ |
| 191 | write_debugctlmsr(child, | 191 | write_debugctlmsr(child, |
| 192 | child->thread.debugctlmsr & ~TIF_DEBUGCTLMSR); | 192 | child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF); |
| 193 | 193 | ||
| 194 | if (!child->thread.debugctlmsr) | 194 | if (!child->thread.debugctlmsr) |
| 195 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); | 195 | clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); |
diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c index 6dfd4e76661a..022bcaa3b42e 100644 --- a/arch/x86/kernel/tls.c +++ b/arch/x86/kernel/tls.c | |||
| @@ -91,7 +91,9 @@ int do_set_thread_area(struct task_struct *p, int idx, | |||
| 91 | 91 | ||
| 92 | asmlinkage int sys_set_thread_area(struct user_desc __user *u_info) | 92 | asmlinkage int sys_set_thread_area(struct user_desc __user *u_info) |
| 93 | { | 93 | { |
| 94 | return do_set_thread_area(current, -1, u_info, 1); | 94 | int ret = do_set_thread_area(current, -1, u_info, 1); |
| 95 | prevent_tail_call(ret); | ||
| 96 | return ret; | ||
| 95 | } | 97 | } |
| 96 | 98 | ||
| 97 | 99 | ||
| @@ -139,7 +141,9 @@ int do_get_thread_area(struct task_struct *p, int idx, | |||
| 139 | 141 | ||
| 140 | asmlinkage int sys_get_thread_area(struct user_desc __user *u_info) | 142 | asmlinkage int sys_get_thread_area(struct user_desc __user *u_info) |
| 141 | { | 143 | { |
| 142 | return do_get_thread_area(current, -1, u_info); | 144 | int ret = do_get_thread_area(current, -1, u_info); |
| 145 | prevent_tail_call(ret); | ||
| 146 | return ret; | ||
| 143 | } | 147 | } |
| 144 | 148 | ||
| 145 | int regset_tls_active(struct task_struct *target, | 149 | int regset_tls_active(struct task_struct *target, |
diff --git a/arch/x86/kernel/tsc_32.c b/arch/x86/kernel/tsc_32.c index 43517e324be8..f14cfd9d1f94 100644 --- a/arch/x86/kernel/tsc_32.c +++ b/arch/x86/kernel/tsc_32.c | |||
| @@ -28,7 +28,8 @@ EXPORT_SYMBOL_GPL(tsc_khz); | |||
| 28 | static int __init tsc_setup(char *str) | 28 | static int __init tsc_setup(char *str) |
| 29 | { | 29 | { |
| 30 | printk(KERN_WARNING "notsc: Kernel compiled with CONFIG_X86_TSC, " | 30 | printk(KERN_WARNING "notsc: Kernel compiled with CONFIG_X86_TSC, " |
| 31 | "cannot disable TSC.\n"); | 31 | "cannot disable TSC completely.\n"); |
| 32 | mark_tsc_unstable("user disabled TSC"); | ||
| 32 | return 1; | 33 | return 1; |
| 33 | } | 34 | } |
| 34 | #else | 35 | #else |
diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c index 3f8242774580..edff4c985485 100644 --- a/arch/x86/kernel/vsyscall_64.c +++ b/arch/x86/kernel/vsyscall_64.c | |||
| @@ -44,11 +44,6 @@ | |||
| 44 | 44 | ||
| 45 | #define __vsyscall(nr) __attribute__ ((unused,__section__(".vsyscall_" #nr))) | 45 | #define __vsyscall(nr) __attribute__ ((unused,__section__(".vsyscall_" #nr))) |
| 46 | #define __syscall_clobber "r11","cx","memory" | 46 | #define __syscall_clobber "r11","cx","memory" |
| 47 | #define __pa_vsymbol(x) \ | ||
| 48 | ({unsigned long v; \ | ||
| 49 | extern char __vsyscall_0; \ | ||
| 50 | asm("" : "=r" (v) : "0" (x)); \ | ||
| 51 | ((v - VSYSCALL_START) + __pa_symbol(&__vsyscall_0)); }) | ||
| 52 | 47 | ||
| 53 | /* | 48 | /* |
| 54 | * vsyscall_gtod_data contains data that is : | 49 | * vsyscall_gtod_data contains data that is : |
| @@ -102,7 +97,7 @@ static __always_inline void do_get_tz(struct timezone * tz) | |||
| 102 | static __always_inline int gettimeofday(struct timeval *tv, struct timezone *tz) | 97 | static __always_inline int gettimeofday(struct timeval *tv, struct timezone *tz) |
| 103 | { | 98 | { |
| 104 | int ret; | 99 | int ret; |
| 105 | asm volatile("vsysc2: syscall" | 100 | asm volatile("syscall" |
| 106 | : "=a" (ret) | 101 | : "=a" (ret) |
| 107 | : "0" (__NR_gettimeofday),"D" (tv),"S" (tz) | 102 | : "0" (__NR_gettimeofday),"D" (tv),"S" (tz) |
| 108 | : __syscall_clobber ); | 103 | : __syscall_clobber ); |
| @@ -112,7 +107,7 @@ static __always_inline int gettimeofday(struct timeval *tv, struct timezone *tz) | |||
| 112 | static __always_inline long time_syscall(long *t) | 107 | static __always_inline long time_syscall(long *t) |
| 113 | { | 108 | { |
| 114 | long secs; | 109 | long secs; |
| 115 | asm volatile("vsysc1: syscall" | 110 | asm volatile("syscall" |
| 116 | : "=a" (secs) | 111 | : "=a" (secs) |
| 117 | : "0" (__NR_time),"D" (t) : __syscall_clobber); | 112 | : "0" (__NR_time),"D" (t) : __syscall_clobber); |
| 118 | return secs; | 113 | return secs; |
| @@ -228,42 +223,11 @@ long __vsyscall(3) venosys_1(void) | |||
| 228 | 223 | ||
| 229 | #ifdef CONFIG_SYSCTL | 224 | #ifdef CONFIG_SYSCTL |
| 230 | 225 | ||
| 231 | #define SYSCALL 0x050f | 226 | static int |
| 232 | #define NOP2 0x9090 | 227 | vsyscall_sysctl_change(ctl_table *ctl, int write, struct file * filp, |
| 233 | 228 | void __user *buffer, size_t *lenp, loff_t *ppos) | |
| 234 | /* | ||
| 235 | * NOP out syscall in vsyscall page when not needed. | ||
| 236 | */ | ||
| 237 | static int vsyscall_sysctl_change(ctl_table *ctl, int write, struct file * filp, | ||
| 238 | void __user *buffer, size_t *lenp, loff_t *ppos) | ||
| 239 | { | 229 | { |
| 240 | extern u16 vsysc1, vsysc2; | 230 | return proc_dointvec(ctl, write, filp, buffer, lenp, ppos); |
| 241 | u16 __iomem *map1; | ||
| 242 | u16 __iomem *map2; | ||
| 243 | int ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); | ||
| 244 | if (!write) | ||
| 245 | return ret; | ||
| 246 | /* gcc has some trouble with __va(__pa()), so just do it this | ||
| 247 | way. */ | ||
| 248 | map1 = ioremap(__pa_vsymbol(&vsysc1), 2); | ||
| 249 | if (!map1) | ||
| 250 | return -ENOMEM; | ||
| 251 | map2 = ioremap(__pa_vsymbol(&vsysc2), 2); | ||
| 252 | if (!map2) { | ||
| 253 | ret = -ENOMEM; | ||
| 254 | goto out; | ||
| 255 | } | ||
| 256 | if (!vsyscall_gtod_data.sysctl_enabled) { | ||
| 257 | writew(SYSCALL, map1); | ||
| 258 | writew(SYSCALL, map2); | ||
| 259 | } else { | ||
| 260 | writew(NOP2, map1); | ||
| 261 | writew(NOP2, map2); | ||
| 262 | } | ||
| 263 | iounmap(map2); | ||
| 264 | out: | ||
| 265 | iounmap(map1); | ||
| 266 | return ret; | ||
| 267 | } | 231 | } |
| 268 | 232 | ||
| 269 | static ctl_table kernel_table2[] = { | 233 | static ctl_table kernel_table2[] = { |
| @@ -279,7 +243,6 @@ static ctl_table kernel_root_table2[] = { | |||
| 279 | .child = kernel_table2 }, | 243 | .child = kernel_table2 }, |
| 280 | {} | 244 | {} |
| 281 | }; | 245 | }; |
| 282 | |||
| 283 | #endif | 246 | #endif |
| 284 | 247 | ||
| 285 | /* Assume __initcall executes before all user space. Hopefully kmod | 248 | /* Assume __initcall executes before all user space. Hopefully kmod |
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 2cbee9479ce4..68a6b1511934 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
| @@ -647,6 +647,10 @@ static void start_apic_timer(struct kvm_lapic *apic) | |||
| 647 | apic->timer.period = apic_get_reg(apic, APIC_TMICT) * | 647 | apic->timer.period = apic_get_reg(apic, APIC_TMICT) * |
| 648 | APIC_BUS_CYCLE_NS * apic->timer.divide_count; | 648 | APIC_BUS_CYCLE_NS * apic->timer.divide_count; |
| 649 | atomic_set(&apic->timer.pending, 0); | 649 | atomic_set(&apic->timer.pending, 0); |
| 650 | |||
| 651 | if (!apic->timer.period) | ||
| 652 | return; | ||
| 653 | |||
| 650 | hrtimer_start(&apic->timer.dev, | 654 | hrtimer_start(&apic->timer.dev, |
| 651 | ktime_add_ns(now, apic->timer.period), | 655 | ktime_add_ns(now, apic->timer.period), |
| 652 | HRTIMER_MODE_ABS); | 656 | HRTIMER_MODE_ABS); |
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 8efdcdbebb03..d8172aabc660 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
| @@ -681,8 +681,7 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu, | |||
| 681 | unsigned level, | 681 | unsigned level, |
| 682 | int metaphysical, | 682 | int metaphysical, |
| 683 | unsigned access, | 683 | unsigned access, |
| 684 | u64 *parent_pte, | 684 | u64 *parent_pte) |
| 685 | bool *new_page) | ||
| 686 | { | 685 | { |
| 687 | union kvm_mmu_page_role role; | 686 | union kvm_mmu_page_role role; |
| 688 | unsigned index; | 687 | unsigned index; |
| @@ -722,8 +721,6 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu, | |||
| 722 | vcpu->arch.mmu.prefetch_page(vcpu, sp); | 721 | vcpu->arch.mmu.prefetch_page(vcpu, sp); |
| 723 | if (!metaphysical) | 722 | if (!metaphysical) |
| 724 | rmap_write_protect(vcpu->kvm, gfn); | 723 | rmap_write_protect(vcpu->kvm, gfn); |
| 725 | if (new_page) | ||
| 726 | *new_page = 1; | ||
| 727 | return sp; | 724 | return sp; |
| 728 | } | 725 | } |
| 729 | 726 | ||
| @@ -876,11 +873,18 @@ static void page_header_update_slot(struct kvm *kvm, void *pte, gfn_t gfn) | |||
| 876 | 873 | ||
| 877 | struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva) | 874 | struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva) |
| 878 | { | 875 | { |
| 876 | struct page *page; | ||
| 877 | |||
| 879 | gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, gva); | 878 | gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, gva); |
| 880 | 879 | ||
| 881 | if (gpa == UNMAPPED_GVA) | 880 | if (gpa == UNMAPPED_GVA) |
| 882 | return NULL; | 881 | return NULL; |
| 883 | return gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); | 882 | |
| 883 | down_read(¤t->mm->mmap_sem); | ||
| 884 | page = gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); | ||
| 885 | up_read(¤t->mm->mmap_sem); | ||
| 886 | |||
| 887 | return page; | ||
| 884 | } | 888 | } |
| 885 | 889 | ||
| 886 | static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte, | 890 | static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte, |
| @@ -999,8 +1003,7 @@ static int __nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, int write, | |||
| 999 | >> PAGE_SHIFT; | 1003 | >> PAGE_SHIFT; |
| 1000 | new_table = kvm_mmu_get_page(vcpu, pseudo_gfn, | 1004 | new_table = kvm_mmu_get_page(vcpu, pseudo_gfn, |
| 1001 | v, level - 1, | 1005 | v, level - 1, |
| 1002 | 1, ACC_ALL, &table[index], | 1006 | 1, ACC_ALL, &table[index]); |
| 1003 | NULL); | ||
| 1004 | if (!new_table) { | 1007 | if (!new_table) { |
| 1005 | pgprintk("nonpaging_map: ENOMEM\n"); | 1008 | pgprintk("nonpaging_map: ENOMEM\n"); |
| 1006 | kvm_release_page_clean(page); | 1009 | kvm_release_page_clean(page); |
| @@ -1020,15 +1023,18 @@ static int nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, int write, gfn_t gfn) | |||
| 1020 | 1023 | ||
| 1021 | struct page *page; | 1024 | struct page *page; |
| 1022 | 1025 | ||
| 1026 | down_read(&vcpu->kvm->slots_lock); | ||
| 1027 | |||
| 1023 | down_read(¤t->mm->mmap_sem); | 1028 | down_read(¤t->mm->mmap_sem); |
| 1024 | page = gfn_to_page(vcpu->kvm, gfn); | 1029 | page = gfn_to_page(vcpu->kvm, gfn); |
| 1030 | up_read(¤t->mm->mmap_sem); | ||
| 1025 | 1031 | ||
| 1026 | spin_lock(&vcpu->kvm->mmu_lock); | 1032 | spin_lock(&vcpu->kvm->mmu_lock); |
| 1027 | kvm_mmu_free_some_pages(vcpu); | 1033 | kvm_mmu_free_some_pages(vcpu); |
| 1028 | r = __nonpaging_map(vcpu, v, write, gfn, page); | 1034 | r = __nonpaging_map(vcpu, v, write, gfn, page); |
| 1029 | spin_unlock(&vcpu->kvm->mmu_lock); | 1035 | spin_unlock(&vcpu->kvm->mmu_lock); |
| 1030 | 1036 | ||
| 1031 | up_read(¤t->mm->mmap_sem); | 1037 | up_read(&vcpu->kvm->slots_lock); |
| 1032 | 1038 | ||
| 1033 | return r; | 1039 | return r; |
| 1034 | } | 1040 | } |
| @@ -1090,7 +1096,7 @@ static void mmu_alloc_roots(struct kvm_vcpu *vcpu) | |||
| 1090 | 1096 | ||
| 1091 | ASSERT(!VALID_PAGE(root)); | 1097 | ASSERT(!VALID_PAGE(root)); |
| 1092 | sp = kvm_mmu_get_page(vcpu, root_gfn, 0, | 1098 | sp = kvm_mmu_get_page(vcpu, root_gfn, 0, |
| 1093 | PT64_ROOT_LEVEL, 0, ACC_ALL, NULL, NULL); | 1099 | PT64_ROOT_LEVEL, 0, ACC_ALL, NULL); |
| 1094 | root = __pa(sp->spt); | 1100 | root = __pa(sp->spt); |
| 1095 | ++sp->root_count; | 1101 | ++sp->root_count; |
| 1096 | vcpu->arch.mmu.root_hpa = root; | 1102 | vcpu->arch.mmu.root_hpa = root; |
| @@ -1111,7 +1117,7 @@ static void mmu_alloc_roots(struct kvm_vcpu *vcpu) | |||
| 1111 | root_gfn = 0; | 1117 | root_gfn = 0; |
| 1112 | sp = kvm_mmu_get_page(vcpu, root_gfn, i << 30, | 1118 | sp = kvm_mmu_get_page(vcpu, root_gfn, i << 30, |
| 1113 | PT32_ROOT_LEVEL, !is_paging(vcpu), | 1119 | PT32_ROOT_LEVEL, !is_paging(vcpu), |
| 1114 | ACC_ALL, NULL, NULL); | 1120 | ACC_ALL, NULL); |
| 1115 | root = __pa(sp->spt); | 1121 | root = __pa(sp->spt); |
| 1116 | ++sp->root_count; | 1122 | ++sp->root_count; |
| 1117 | vcpu->arch.mmu.pae_root[i] = root | PT_PRESENT_MASK; | 1123 | vcpu->arch.mmu.pae_root[i] = root | PT_PRESENT_MASK; |
| @@ -1172,7 +1178,7 @@ void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu) | |||
| 1172 | 1178 | ||
| 1173 | static void paging_new_cr3(struct kvm_vcpu *vcpu) | 1179 | static void paging_new_cr3(struct kvm_vcpu *vcpu) |
| 1174 | { | 1180 | { |
| 1175 | pgprintk("%s: cr3 %lx\n", __FUNCTION__, vcpu->cr3); | 1181 | pgprintk("%s: cr3 %lx\n", __FUNCTION__, vcpu->arch.cr3); |
| 1176 | mmu_free_roots(vcpu); | 1182 | mmu_free_roots(vcpu); |
| 1177 | } | 1183 | } |
| 1178 | 1184 | ||
| @@ -1362,6 +1368,7 @@ static void mmu_guess_page_from_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, | |||
| 1362 | gfn_t gfn; | 1368 | gfn_t gfn; |
| 1363 | int r; | 1369 | int r; |
| 1364 | u64 gpte = 0; | 1370 | u64 gpte = 0; |
| 1371 | struct page *page; | ||
| 1365 | 1372 | ||
| 1366 | if (bytes != 4 && bytes != 8) | 1373 | if (bytes != 4 && bytes != 8) |
| 1367 | return; | 1374 | return; |
| @@ -1389,6 +1396,11 @@ static void mmu_guess_page_from_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, | |||
| 1389 | if (!is_present_pte(gpte)) | 1396 | if (!is_present_pte(gpte)) |
| 1390 | return; | 1397 | return; |
| 1391 | gfn = (gpte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT; | 1398 | gfn = (gpte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT; |
| 1399 | |||
| 1400 | down_read(¤t->mm->mmap_sem); | ||
| 1401 | page = gfn_to_page(vcpu->kvm, gfn); | ||
| 1402 | up_read(¤t->mm->mmap_sem); | ||
| 1403 | |||
| 1392 | vcpu->arch.update_pte.gfn = gfn; | 1404 | vcpu->arch.update_pte.gfn = gfn; |
| 1393 | vcpu->arch.update_pte.page = gfn_to_page(vcpu->kvm, gfn); | 1405 | vcpu->arch.update_pte.page = gfn_to_page(vcpu->kvm, gfn); |
| 1394 | } | 1406 | } |
| @@ -1496,9 +1508,9 @@ int kvm_mmu_unprotect_page_virt(struct kvm_vcpu *vcpu, gva_t gva) | |||
| 1496 | gpa_t gpa; | 1508 | gpa_t gpa; |
| 1497 | int r; | 1509 | int r; |
| 1498 | 1510 | ||
| 1499 | down_read(¤t->mm->mmap_sem); | 1511 | down_read(&vcpu->kvm->slots_lock); |
| 1500 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, gva); | 1512 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, gva); |
| 1501 | up_read(¤t->mm->mmap_sem); | 1513 | up_read(&vcpu->kvm->slots_lock); |
| 1502 | 1514 | ||
| 1503 | spin_lock(&vcpu->kvm->mmu_lock); | 1515 | spin_lock(&vcpu->kvm->mmu_lock); |
| 1504 | r = kvm_mmu_unprotect_page(vcpu->kvm, gpa >> PAGE_SHIFT); | 1516 | r = kvm_mmu_unprotect_page(vcpu->kvm, gpa >> PAGE_SHIFT); |
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h index 03ba8608fe0f..ecc0856268c4 100644 --- a/arch/x86/kvm/paging_tmpl.h +++ b/arch/x86/kvm/paging_tmpl.h | |||
| @@ -91,7 +91,10 @@ static bool FNAME(cmpxchg_gpte)(struct kvm *kvm, | |||
| 91 | pt_element_t *table; | 91 | pt_element_t *table; |
| 92 | struct page *page; | 92 | struct page *page; |
| 93 | 93 | ||
| 94 | down_read(¤t->mm->mmap_sem); | ||
| 94 | page = gfn_to_page(kvm, table_gfn); | 95 | page = gfn_to_page(kvm, table_gfn); |
| 96 | up_read(¤t->mm->mmap_sem); | ||
| 97 | |||
| 95 | table = kmap_atomic(page, KM_USER0); | 98 | table = kmap_atomic(page, KM_USER0); |
| 96 | 99 | ||
| 97 | ret = CMPXCHG(&table[index], orig_pte, new_pte); | 100 | ret = CMPXCHG(&table[index], orig_pte, new_pte); |
| @@ -140,7 +143,7 @@ walk: | |||
| 140 | } | 143 | } |
| 141 | #endif | 144 | #endif |
| 142 | ASSERT((!is_long_mode(vcpu) && is_pae(vcpu)) || | 145 | ASSERT((!is_long_mode(vcpu) && is_pae(vcpu)) || |
| 143 | (vcpu->cr3 & CR3_NONPAE_RESERVED_BITS) == 0); | 146 | (vcpu->arch.cr3 & CR3_NONPAE_RESERVED_BITS) == 0); |
| 144 | 147 | ||
| 145 | pt_access = ACC_ALL; | 148 | pt_access = ACC_ALL; |
| 146 | 149 | ||
| @@ -297,7 +300,6 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr, | |||
| 297 | u64 shadow_pte; | 300 | u64 shadow_pte; |
| 298 | int metaphysical; | 301 | int metaphysical; |
| 299 | gfn_t table_gfn; | 302 | gfn_t table_gfn; |
| 300 | bool new_page = 0; | ||
| 301 | 303 | ||
| 302 | shadow_ent = ((u64 *)__va(shadow_addr)) + index; | 304 | shadow_ent = ((u64 *)__va(shadow_addr)) + index; |
| 303 | if (level == PT_PAGE_TABLE_LEVEL) | 305 | if (level == PT_PAGE_TABLE_LEVEL) |
| @@ -319,8 +321,8 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr, | |||
| 319 | } | 321 | } |
| 320 | shadow_page = kvm_mmu_get_page(vcpu, table_gfn, addr, level-1, | 322 | shadow_page = kvm_mmu_get_page(vcpu, table_gfn, addr, level-1, |
| 321 | metaphysical, access, | 323 | metaphysical, access, |
| 322 | shadow_ent, &new_page); | 324 | shadow_ent); |
| 323 | if (new_page && !metaphysical) { | 325 | if (!metaphysical) { |
| 324 | int r; | 326 | int r; |
| 325 | pt_element_t curr_pte; | 327 | pt_element_t curr_pte; |
| 326 | r = kvm_read_guest_atomic(vcpu->kvm, | 328 | r = kvm_read_guest_atomic(vcpu->kvm, |
| @@ -378,7 +380,7 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, | |||
| 378 | if (r) | 380 | if (r) |
| 379 | return r; | 381 | return r; |
| 380 | 382 | ||
| 381 | down_read(¤t->mm->mmap_sem); | 383 | down_read(&vcpu->kvm->slots_lock); |
| 382 | /* | 384 | /* |
| 383 | * Look up the shadow pte for the faulting address. | 385 | * Look up the shadow pte for the faulting address. |
| 384 | */ | 386 | */ |
| @@ -392,11 +394,13 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, | |||
| 392 | pgprintk("%s: guest page fault\n", __FUNCTION__); | 394 | pgprintk("%s: guest page fault\n", __FUNCTION__); |
| 393 | inject_page_fault(vcpu, addr, walker.error_code); | 395 | inject_page_fault(vcpu, addr, walker.error_code); |
| 394 | vcpu->arch.last_pt_write_count = 0; /* reset fork detector */ | 396 | vcpu->arch.last_pt_write_count = 0; /* reset fork detector */ |
| 395 | up_read(¤t->mm->mmap_sem); | 397 | up_read(&vcpu->kvm->slots_lock); |
| 396 | return 0; | 398 | return 0; |
| 397 | } | 399 | } |
| 398 | 400 | ||
| 401 | down_read(¤t->mm->mmap_sem); | ||
| 399 | page = gfn_to_page(vcpu->kvm, walker.gfn); | 402 | page = gfn_to_page(vcpu->kvm, walker.gfn); |
| 403 | up_read(¤t->mm->mmap_sem); | ||
| 400 | 404 | ||
| 401 | spin_lock(&vcpu->kvm->mmu_lock); | 405 | spin_lock(&vcpu->kvm->mmu_lock); |
| 402 | kvm_mmu_free_some_pages(vcpu); | 406 | kvm_mmu_free_some_pages(vcpu); |
| @@ -413,14 +417,14 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, | |||
| 413 | */ | 417 | */ |
| 414 | if (shadow_pte && is_io_pte(*shadow_pte)) { | 418 | if (shadow_pte && is_io_pte(*shadow_pte)) { |
| 415 | spin_unlock(&vcpu->kvm->mmu_lock); | 419 | spin_unlock(&vcpu->kvm->mmu_lock); |
| 416 | up_read(¤t->mm->mmap_sem); | 420 | up_read(&vcpu->kvm->slots_lock); |
| 417 | return 1; | 421 | return 1; |
| 418 | } | 422 | } |
| 419 | 423 | ||
| 420 | ++vcpu->stat.pf_fixed; | 424 | ++vcpu->stat.pf_fixed; |
| 421 | kvm_mmu_audit(vcpu, "post page fault (fixed)"); | 425 | kvm_mmu_audit(vcpu, "post page fault (fixed)"); |
| 422 | spin_unlock(&vcpu->kvm->mmu_lock); | 426 | spin_unlock(&vcpu->kvm->mmu_lock); |
| 423 | up_read(¤t->mm->mmap_sem); | 427 | up_read(&vcpu->kvm->slots_lock); |
| 424 | 428 | ||
| 425 | return write_pt; | 429 | return write_pt; |
| 426 | } | 430 | } |
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index de755cb1431d..1a582f1090e8 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
| @@ -792,6 +792,10 @@ static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) | |||
| 792 | vcpu->arch.cr0 = cr0; | 792 | vcpu->arch.cr0 = cr0; |
| 793 | cr0 |= X86_CR0_PG | X86_CR0_WP; | 793 | cr0 |= X86_CR0_PG | X86_CR0_WP; |
| 794 | cr0 &= ~(X86_CR0_CD | X86_CR0_NW); | 794 | cr0 &= ~(X86_CR0_CD | X86_CR0_NW); |
| 795 | if (!vcpu->fpu_active) { | ||
| 796 | svm->vmcb->control.intercept_exceptions |= (1 << NM_VECTOR); | ||
| 797 | cr0 |= X86_CR0_TS; | ||
| 798 | } | ||
| 795 | svm->vmcb->save.cr0 = cr0; | 799 | svm->vmcb->save.cr0 = cr0; |
| 796 | } | 800 | } |
| 797 | 801 | ||
| @@ -1096,6 +1100,24 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 *data) | |||
| 1096 | case MSR_IA32_SYSENTER_ESP: | 1100 | case MSR_IA32_SYSENTER_ESP: |
| 1097 | *data = svm->vmcb->save.sysenter_esp; | 1101 | *data = svm->vmcb->save.sysenter_esp; |
| 1098 | break; | 1102 | break; |
| 1103 | /* Nobody will change the following 5 values in the VMCB so | ||
| 1104 | we can safely return them on rdmsr. They will always be 0 | ||
| 1105 | until LBRV is implemented. */ | ||
| 1106 | case MSR_IA32_DEBUGCTLMSR: | ||
| 1107 | *data = svm->vmcb->save.dbgctl; | ||
| 1108 | break; | ||
| 1109 | case MSR_IA32_LASTBRANCHFROMIP: | ||
| 1110 | *data = svm->vmcb->save.br_from; | ||
| 1111 | break; | ||
| 1112 | case MSR_IA32_LASTBRANCHTOIP: | ||
| 1113 | *data = svm->vmcb->save.br_to; | ||
| 1114 | break; | ||
| 1115 | case MSR_IA32_LASTINTFROMIP: | ||
| 1116 | *data = svm->vmcb->save.last_excp_from; | ||
| 1117 | break; | ||
| 1118 | case MSR_IA32_LASTINTTOIP: | ||
| 1119 | *data = svm->vmcb->save.last_excp_to; | ||
| 1120 | break; | ||
| 1099 | default: | 1121 | default: |
| 1100 | return kvm_get_msr_common(vcpu, ecx, data); | 1122 | return kvm_get_msr_common(vcpu, ecx, data); |
| 1101 | } | 1123 | } |
| @@ -1156,6 +1178,10 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data) | |||
| 1156 | case MSR_IA32_SYSENTER_ESP: | 1178 | case MSR_IA32_SYSENTER_ESP: |
| 1157 | svm->vmcb->save.sysenter_esp = data; | 1179 | svm->vmcb->save.sysenter_esp = data; |
| 1158 | break; | 1180 | break; |
| 1181 | case MSR_IA32_DEBUGCTLMSR: | ||
| 1182 | pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n", | ||
| 1183 | __FUNCTION__, data); | ||
| 1184 | break; | ||
| 1159 | case MSR_K7_EVNTSEL0: | 1185 | case MSR_K7_EVNTSEL0: |
| 1160 | case MSR_K7_EVNTSEL1: | 1186 | case MSR_K7_EVNTSEL1: |
| 1161 | case MSR_K7_EVNTSEL2: | 1187 | case MSR_K7_EVNTSEL2: |
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index ad36447e696e..94ea724638fd 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c | |||
| @@ -638,6 +638,7 @@ static void setup_msrs(struct vcpu_vmx *vmx) | |||
| 638 | { | 638 | { |
| 639 | int save_nmsrs; | 639 | int save_nmsrs; |
| 640 | 640 | ||
| 641 | vmx_load_host_state(vmx); | ||
| 641 | save_nmsrs = 0; | 642 | save_nmsrs = 0; |
| 642 | #ifdef CONFIG_X86_64 | 643 | #ifdef CONFIG_X86_64 |
| 643 | if (is_long_mode(&vmx->vcpu)) { | 644 | if (is_long_mode(&vmx->vcpu)) { |
| @@ -1477,7 +1478,7 @@ static int alloc_apic_access_page(struct kvm *kvm) | |||
| 1477 | struct kvm_userspace_memory_region kvm_userspace_mem; | 1478 | struct kvm_userspace_memory_region kvm_userspace_mem; |
| 1478 | int r = 0; | 1479 | int r = 0; |
| 1479 | 1480 | ||
| 1480 | down_write(¤t->mm->mmap_sem); | 1481 | down_write(&kvm->slots_lock); |
| 1481 | if (kvm->arch.apic_access_page) | 1482 | if (kvm->arch.apic_access_page) |
| 1482 | goto out; | 1483 | goto out; |
| 1483 | kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT; | 1484 | kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT; |
| @@ -1487,9 +1488,12 @@ static int alloc_apic_access_page(struct kvm *kvm) | |||
| 1487 | r = __kvm_set_memory_region(kvm, &kvm_userspace_mem, 0); | 1488 | r = __kvm_set_memory_region(kvm, &kvm_userspace_mem, 0); |
| 1488 | if (r) | 1489 | if (r) |
| 1489 | goto out; | 1490 | goto out; |
| 1491 | |||
| 1492 | down_read(¤t->mm->mmap_sem); | ||
| 1490 | kvm->arch.apic_access_page = gfn_to_page(kvm, 0xfee00); | 1493 | kvm->arch.apic_access_page = gfn_to_page(kvm, 0xfee00); |
| 1494 | up_read(¤t->mm->mmap_sem); | ||
| 1491 | out: | 1495 | out: |
| 1492 | up_write(¤t->mm->mmap_sem); | 1496 | up_write(&kvm->slots_lock); |
| 1493 | return r; | 1497 | return r; |
| 1494 | } | 1498 | } |
| 1495 | 1499 | ||
| @@ -1602,9 +1606,6 @@ static int vmx_vcpu_setup(struct vcpu_vmx *vmx) | |||
| 1602 | vmcs_writel(CR0_GUEST_HOST_MASK, ~0UL); | 1606 | vmcs_writel(CR0_GUEST_HOST_MASK, ~0UL); |
| 1603 | vmcs_writel(CR4_GUEST_HOST_MASK, KVM_GUEST_CR4_MASK); | 1607 | vmcs_writel(CR4_GUEST_HOST_MASK, KVM_GUEST_CR4_MASK); |
| 1604 | 1608 | ||
| 1605 | if (vm_need_virtualize_apic_accesses(vmx->vcpu.kvm)) | ||
| 1606 | if (alloc_apic_access_page(vmx->vcpu.kvm) != 0) | ||
| 1607 | return -ENOMEM; | ||
| 1608 | 1609 | ||
| 1609 | return 0; | 1610 | return 0; |
| 1610 | } | 1611 | } |
| @@ -2534,6 +2535,9 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id) | |||
| 2534 | put_cpu(); | 2535 | put_cpu(); |
| 2535 | if (err) | 2536 | if (err) |
| 2536 | goto free_vmcs; | 2537 | goto free_vmcs; |
| 2538 | if (vm_need_virtualize_apic_accesses(kvm)) | ||
| 2539 | if (alloc_apic_access_page(kvm) != 0) | ||
| 2540 | goto free_vmcs; | ||
| 2537 | 2541 | ||
| 2538 | return &vmx->vcpu; | 2542 | return &vmx->vcpu; |
| 2539 | 2543 | ||
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index cf5308148689..6b01552bd1f1 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
| @@ -46,6 +46,9 @@ | |||
| 46 | #define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM | 46 | #define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM |
| 47 | #define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU | 47 | #define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU |
| 48 | 48 | ||
| 49 | static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, | ||
| 50 | struct kvm_cpuid_entry2 __user *entries); | ||
| 51 | |||
| 49 | struct kvm_x86_ops *kvm_x86_ops; | 52 | struct kvm_x86_ops *kvm_x86_ops; |
| 50 | 53 | ||
| 51 | struct kvm_stats_debugfs_item debugfs_entries[] = { | 54 | struct kvm_stats_debugfs_item debugfs_entries[] = { |
| @@ -181,7 +184,7 @@ int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3) | |||
| 181 | int ret; | 184 | int ret; |
| 182 | u64 pdpte[ARRAY_SIZE(vcpu->arch.pdptrs)]; | 185 | u64 pdpte[ARRAY_SIZE(vcpu->arch.pdptrs)]; |
| 183 | 186 | ||
| 184 | down_read(¤t->mm->mmap_sem); | 187 | down_read(&vcpu->kvm->slots_lock); |
| 185 | ret = kvm_read_guest_page(vcpu->kvm, pdpt_gfn, pdpte, | 188 | ret = kvm_read_guest_page(vcpu->kvm, pdpt_gfn, pdpte, |
| 186 | offset * sizeof(u64), sizeof(pdpte)); | 189 | offset * sizeof(u64), sizeof(pdpte)); |
| 187 | if (ret < 0) { | 190 | if (ret < 0) { |
| @@ -198,7 +201,7 @@ int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3) | |||
| 198 | 201 | ||
| 199 | memcpy(vcpu->arch.pdptrs, pdpte, sizeof(vcpu->arch.pdptrs)); | 202 | memcpy(vcpu->arch.pdptrs, pdpte, sizeof(vcpu->arch.pdptrs)); |
| 200 | out: | 203 | out: |
| 201 | up_read(¤t->mm->mmap_sem); | 204 | up_read(&vcpu->kvm->slots_lock); |
| 202 | 205 | ||
| 203 | return ret; | 206 | return ret; |
| 204 | } | 207 | } |
| @@ -212,13 +215,13 @@ static bool pdptrs_changed(struct kvm_vcpu *vcpu) | |||
| 212 | if (is_long_mode(vcpu) || !is_pae(vcpu)) | 215 | if (is_long_mode(vcpu) || !is_pae(vcpu)) |
| 213 | return false; | 216 | return false; |
| 214 | 217 | ||
| 215 | down_read(¤t->mm->mmap_sem); | 218 | down_read(&vcpu->kvm->slots_lock); |
| 216 | r = kvm_read_guest(vcpu->kvm, vcpu->arch.cr3 & ~31u, pdpte, sizeof(pdpte)); | 219 | r = kvm_read_guest(vcpu->kvm, vcpu->arch.cr3 & ~31u, pdpte, sizeof(pdpte)); |
| 217 | if (r < 0) | 220 | if (r < 0) |
| 218 | goto out; | 221 | goto out; |
| 219 | changed = memcmp(pdpte, vcpu->arch.pdptrs, sizeof(pdpte)) != 0; | 222 | changed = memcmp(pdpte, vcpu->arch.pdptrs, sizeof(pdpte)) != 0; |
| 220 | out: | 223 | out: |
| 221 | up_read(¤t->mm->mmap_sem); | 224 | up_read(&vcpu->kvm->slots_lock); |
| 222 | 225 | ||
| 223 | return changed; | 226 | return changed; |
| 224 | } | 227 | } |
| @@ -356,7 +359,7 @@ void set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3) | |||
| 356 | */ | 359 | */ |
| 357 | } | 360 | } |
| 358 | 361 | ||
| 359 | down_read(¤t->mm->mmap_sem); | 362 | down_read(&vcpu->kvm->slots_lock); |
| 360 | /* | 363 | /* |
| 361 | * Does the new cr3 value map to physical memory? (Note, we | 364 | * Does the new cr3 value map to physical memory? (Note, we |
| 362 | * catch an invalid cr3 even in real-mode, because it would | 365 | * catch an invalid cr3 even in real-mode, because it would |
| @@ -372,7 +375,7 @@ void set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3) | |||
| 372 | vcpu->arch.cr3 = cr3; | 375 | vcpu->arch.cr3 = cr3; |
| 373 | vcpu->arch.mmu.new_cr3(vcpu); | 376 | vcpu->arch.mmu.new_cr3(vcpu); |
| 374 | } | 377 | } |
| 375 | up_read(¤t->mm->mmap_sem); | 378 | up_read(&vcpu->kvm->slots_lock); |
| 376 | } | 379 | } |
| 377 | EXPORT_SYMBOL_GPL(set_cr3); | 380 | EXPORT_SYMBOL_GPL(set_cr3); |
| 378 | 381 | ||
| @@ -484,6 +487,10 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data) | |||
| 484 | pr_unimpl(vcpu, "%s: MSR_IA32_MCG_STATUS 0x%llx, nop\n", | 487 | pr_unimpl(vcpu, "%s: MSR_IA32_MCG_STATUS 0x%llx, nop\n", |
| 485 | __FUNCTION__, data); | 488 | __FUNCTION__, data); |
| 486 | break; | 489 | break; |
| 490 | case MSR_IA32_MCG_CTL: | ||
| 491 | pr_unimpl(vcpu, "%s: MSR_IA32_MCG_CTL 0x%llx, nop\n", | ||
| 492 | __FUNCTION__, data); | ||
| 493 | break; | ||
| 487 | case MSR_IA32_UCODE_REV: | 494 | case MSR_IA32_UCODE_REV: |
| 488 | case MSR_IA32_UCODE_WRITE: | 495 | case MSR_IA32_UCODE_WRITE: |
| 489 | case 0x200 ... 0x2ff: /* MTRRs */ | 496 | case 0x200 ... 0x2ff: /* MTRRs */ |
| @@ -526,6 +533,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata) | |||
| 526 | case MSR_IA32_MC0_CTL: | 533 | case MSR_IA32_MC0_CTL: |
| 527 | case MSR_IA32_MCG_STATUS: | 534 | case MSR_IA32_MCG_STATUS: |
| 528 | case MSR_IA32_MCG_CAP: | 535 | case MSR_IA32_MCG_CAP: |
| 536 | case MSR_IA32_MCG_CTL: | ||
| 529 | case MSR_IA32_MC0_MISC: | 537 | case MSR_IA32_MC0_MISC: |
| 530 | case MSR_IA32_MC0_MISC+4: | 538 | case MSR_IA32_MC0_MISC+4: |
| 531 | case MSR_IA32_MC0_MISC+8: | 539 | case MSR_IA32_MC0_MISC+8: |
| @@ -727,6 +735,24 @@ long kvm_arch_dev_ioctl(struct file *filp, | |||
| 727 | r = 0; | 735 | r = 0; |
| 728 | break; | 736 | break; |
| 729 | } | 737 | } |
| 738 | case KVM_GET_SUPPORTED_CPUID: { | ||
| 739 | struct kvm_cpuid2 __user *cpuid_arg = argp; | ||
| 740 | struct kvm_cpuid2 cpuid; | ||
| 741 | |||
| 742 | r = -EFAULT; | ||
| 743 | if (copy_from_user(&cpuid, cpuid_arg, sizeof cpuid)) | ||
| 744 | goto out; | ||
| 745 | r = kvm_dev_ioctl_get_supported_cpuid(&cpuid, | ||
| 746 | cpuid_arg->entries); | ||
| 747 | if (r) | ||
| 748 | goto out; | ||
| 749 | |||
| 750 | r = -EFAULT; | ||
| 751 | if (copy_to_user(cpuid_arg, &cpuid, sizeof cpuid)) | ||
| 752 | goto out; | ||
| 753 | r = 0; | ||
| 754 | break; | ||
| 755 | } | ||
| 730 | default: | 756 | default: |
| 731 | r = -EINVAL; | 757 | r = -EINVAL; |
| 732 | } | 758 | } |
| @@ -974,8 +1000,7 @@ static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, | |||
| 974 | put_cpu(); | 1000 | put_cpu(); |
| 975 | } | 1001 | } |
| 976 | 1002 | ||
| 977 | static int kvm_vm_ioctl_get_supported_cpuid(struct kvm *kvm, | 1003 | static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, |
| 978 | struct kvm_cpuid2 *cpuid, | ||
| 979 | struct kvm_cpuid_entry2 __user *entries) | 1004 | struct kvm_cpuid_entry2 __user *entries) |
| 980 | { | 1005 | { |
| 981 | struct kvm_cpuid_entry2 *cpuid_entries; | 1006 | struct kvm_cpuid_entry2 *cpuid_entries; |
| @@ -1207,12 +1232,12 @@ static int kvm_vm_ioctl_set_nr_mmu_pages(struct kvm *kvm, | |||
| 1207 | if (kvm_nr_mmu_pages < KVM_MIN_ALLOC_MMU_PAGES) | 1232 | if (kvm_nr_mmu_pages < KVM_MIN_ALLOC_MMU_PAGES) |
| 1208 | return -EINVAL; | 1233 | return -EINVAL; |
| 1209 | 1234 | ||
| 1210 | down_write(¤t->mm->mmap_sem); | 1235 | down_write(&kvm->slots_lock); |
| 1211 | 1236 | ||
| 1212 | kvm_mmu_change_mmu_pages(kvm, kvm_nr_mmu_pages); | 1237 | kvm_mmu_change_mmu_pages(kvm, kvm_nr_mmu_pages); |
| 1213 | kvm->arch.n_requested_mmu_pages = kvm_nr_mmu_pages; | 1238 | kvm->arch.n_requested_mmu_pages = kvm_nr_mmu_pages; |
| 1214 | 1239 | ||
| 1215 | up_write(¤t->mm->mmap_sem); | 1240 | up_write(&kvm->slots_lock); |
| 1216 | return 0; | 1241 | return 0; |
| 1217 | } | 1242 | } |
| 1218 | 1243 | ||
| @@ -1261,7 +1286,7 @@ static int kvm_vm_ioctl_set_memory_alias(struct kvm *kvm, | |||
| 1261 | < alias->target_phys_addr) | 1286 | < alias->target_phys_addr) |
| 1262 | goto out; | 1287 | goto out; |
| 1263 | 1288 | ||
| 1264 | down_write(¤t->mm->mmap_sem); | 1289 | down_write(&kvm->slots_lock); |
| 1265 | 1290 | ||
| 1266 | p = &kvm->arch.aliases[alias->slot]; | 1291 | p = &kvm->arch.aliases[alias->slot]; |
| 1267 | p->base_gfn = alias->guest_phys_addr >> PAGE_SHIFT; | 1292 | p->base_gfn = alias->guest_phys_addr >> PAGE_SHIFT; |
| @@ -1275,7 +1300,7 @@ static int kvm_vm_ioctl_set_memory_alias(struct kvm *kvm, | |||
| 1275 | 1300 | ||
| 1276 | kvm_mmu_zap_all(kvm); | 1301 | kvm_mmu_zap_all(kvm); |
| 1277 | 1302 | ||
| 1278 | up_write(¤t->mm->mmap_sem); | 1303 | up_write(&kvm->slots_lock); |
| 1279 | 1304 | ||
| 1280 | return 0; | 1305 | return 0; |
| 1281 | 1306 | ||
| @@ -1351,7 +1376,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, | |||
| 1351 | struct kvm_memory_slot *memslot; | 1376 | struct kvm_memory_slot *memslot; |
| 1352 | int is_dirty = 0; | 1377 | int is_dirty = 0; |
| 1353 | 1378 | ||
| 1354 | down_write(¤t->mm->mmap_sem); | 1379 | down_write(&kvm->slots_lock); |
| 1355 | 1380 | ||
| 1356 | r = kvm_get_dirty_log(kvm, log, &is_dirty); | 1381 | r = kvm_get_dirty_log(kvm, log, &is_dirty); |
| 1357 | if (r) | 1382 | if (r) |
| @@ -1367,7 +1392,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, | |||
| 1367 | } | 1392 | } |
| 1368 | r = 0; | 1393 | r = 0; |
| 1369 | out: | 1394 | out: |
| 1370 | up_write(¤t->mm->mmap_sem); | 1395 | up_write(&kvm->slots_lock); |
| 1371 | return r; | 1396 | return r; |
| 1372 | } | 1397 | } |
| 1373 | 1398 | ||
| @@ -1487,24 +1512,6 @@ long kvm_arch_vm_ioctl(struct file *filp, | |||
| 1487 | r = 0; | 1512 | r = 0; |
| 1488 | break; | 1513 | break; |
| 1489 | } | 1514 | } |
| 1490 | case KVM_GET_SUPPORTED_CPUID: { | ||
| 1491 | struct kvm_cpuid2 __user *cpuid_arg = argp; | ||
| 1492 | struct kvm_cpuid2 cpuid; | ||
| 1493 | |||
| 1494 | r = -EFAULT; | ||
| 1495 | if (copy_from_user(&cpuid, cpuid_arg, sizeof cpuid)) | ||
| 1496 | goto out; | ||
| 1497 | r = kvm_vm_ioctl_get_supported_cpuid(kvm, &cpuid, | ||
| 1498 | cpuid_arg->entries); | ||
| 1499 | if (r) | ||
| 1500 | goto out; | ||
| 1501 | |||
| 1502 | r = -EFAULT; | ||
| 1503 | if (copy_to_user(cpuid_arg, &cpuid, sizeof cpuid)) | ||
| 1504 | goto out; | ||
| 1505 | r = 0; | ||
| 1506 | break; | ||
| 1507 | } | ||
| 1508 | default: | 1515 | default: |
| 1509 | ; | 1516 | ; |
| 1510 | } | 1517 | } |
| @@ -1563,7 +1570,7 @@ int emulator_read_std(unsigned long addr, | |||
| 1563 | void *data = val; | 1570 | void *data = val; |
| 1564 | int r = X86EMUL_CONTINUE; | 1571 | int r = X86EMUL_CONTINUE; |
| 1565 | 1572 | ||
| 1566 | down_read(¤t->mm->mmap_sem); | 1573 | down_read(&vcpu->kvm->slots_lock); |
| 1567 | while (bytes) { | 1574 | while (bytes) { |
| 1568 | gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); | 1575 | gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); |
| 1569 | unsigned offset = addr & (PAGE_SIZE-1); | 1576 | unsigned offset = addr & (PAGE_SIZE-1); |
| @@ -1585,7 +1592,7 @@ int emulator_read_std(unsigned long addr, | |||
| 1585 | addr += tocopy; | 1592 | addr += tocopy; |
| 1586 | } | 1593 | } |
| 1587 | out: | 1594 | out: |
| 1588 | up_read(¤t->mm->mmap_sem); | 1595 | up_read(&vcpu->kvm->slots_lock); |
| 1589 | return r; | 1596 | return r; |
| 1590 | } | 1597 | } |
| 1591 | EXPORT_SYMBOL_GPL(emulator_read_std); | 1598 | EXPORT_SYMBOL_GPL(emulator_read_std); |
| @@ -1604,9 +1611,9 @@ static int emulator_read_emulated(unsigned long addr, | |||
| 1604 | return X86EMUL_CONTINUE; | 1611 | return X86EMUL_CONTINUE; |
| 1605 | } | 1612 | } |
| 1606 | 1613 | ||
| 1607 | down_read(¤t->mm->mmap_sem); | 1614 | down_read(&vcpu->kvm->slots_lock); |
| 1608 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); | 1615 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); |
| 1609 | up_read(¤t->mm->mmap_sem); | 1616 | up_read(&vcpu->kvm->slots_lock); |
| 1610 | 1617 | ||
| 1611 | /* For APIC access vmexit */ | 1618 | /* For APIC access vmexit */ |
| 1612 | if ((gpa & PAGE_MASK) == APIC_DEFAULT_PHYS_BASE) | 1619 | if ((gpa & PAGE_MASK) == APIC_DEFAULT_PHYS_BASE) |
| @@ -1644,14 +1651,14 @@ static int emulator_write_phys(struct kvm_vcpu *vcpu, gpa_t gpa, | |||
| 1644 | { | 1651 | { |
| 1645 | int ret; | 1652 | int ret; |
| 1646 | 1653 | ||
| 1647 | down_read(¤t->mm->mmap_sem); | 1654 | down_read(&vcpu->kvm->slots_lock); |
| 1648 | ret = kvm_write_guest(vcpu->kvm, gpa, val, bytes); | 1655 | ret = kvm_write_guest(vcpu->kvm, gpa, val, bytes); |
| 1649 | if (ret < 0) { | 1656 | if (ret < 0) { |
| 1650 | up_read(¤t->mm->mmap_sem); | 1657 | up_read(&vcpu->kvm->slots_lock); |
| 1651 | return 0; | 1658 | return 0; |
| 1652 | } | 1659 | } |
| 1653 | kvm_mmu_pte_write(vcpu, gpa, val, bytes); | 1660 | kvm_mmu_pte_write(vcpu, gpa, val, bytes); |
| 1654 | up_read(¤t->mm->mmap_sem); | 1661 | up_read(&vcpu->kvm->slots_lock); |
| 1655 | return 1; | 1662 | return 1; |
| 1656 | } | 1663 | } |
| 1657 | 1664 | ||
| @@ -1663,9 +1670,9 @@ static int emulator_write_emulated_onepage(unsigned long addr, | |||
| 1663 | struct kvm_io_device *mmio_dev; | 1670 | struct kvm_io_device *mmio_dev; |
| 1664 | gpa_t gpa; | 1671 | gpa_t gpa; |
| 1665 | 1672 | ||
| 1666 | down_read(¤t->mm->mmap_sem); | 1673 | down_read(&vcpu->kvm->slots_lock); |
| 1667 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); | 1674 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); |
| 1668 | up_read(¤t->mm->mmap_sem); | 1675 | up_read(&vcpu->kvm->slots_lock); |
| 1669 | 1676 | ||
| 1670 | if (gpa == UNMAPPED_GVA) { | 1677 | if (gpa == UNMAPPED_GVA) { |
| 1671 | kvm_inject_page_fault(vcpu, addr, 2); | 1678 | kvm_inject_page_fault(vcpu, addr, 2); |
| @@ -1742,7 +1749,7 @@ static int emulator_cmpxchg_emulated(unsigned long addr, | |||
| 1742 | char *kaddr; | 1749 | char *kaddr; |
| 1743 | u64 val; | 1750 | u64 val; |
| 1744 | 1751 | ||
| 1745 | down_read(¤t->mm->mmap_sem); | 1752 | down_read(&vcpu->kvm->slots_lock); |
| 1746 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); | 1753 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); |
| 1747 | 1754 | ||
| 1748 | if (gpa == UNMAPPED_GVA || | 1755 | if (gpa == UNMAPPED_GVA || |
| @@ -1753,13 +1760,17 @@ static int emulator_cmpxchg_emulated(unsigned long addr, | |||
| 1753 | goto emul_write; | 1760 | goto emul_write; |
| 1754 | 1761 | ||
| 1755 | val = *(u64 *)new; | 1762 | val = *(u64 *)new; |
| 1763 | |||
| 1764 | down_read(¤t->mm->mmap_sem); | ||
| 1756 | page = gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); | 1765 | page = gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); |
| 1766 | up_read(¤t->mm->mmap_sem); | ||
| 1767 | |||
| 1757 | kaddr = kmap_atomic(page, KM_USER0); | 1768 | kaddr = kmap_atomic(page, KM_USER0); |
| 1758 | set_64bit((u64 *)(kaddr + offset_in_page(gpa)), val); | 1769 | set_64bit((u64 *)(kaddr + offset_in_page(gpa)), val); |
| 1759 | kunmap_atomic(kaddr, KM_USER0); | 1770 | kunmap_atomic(kaddr, KM_USER0); |
| 1760 | kvm_release_page_dirty(page); | 1771 | kvm_release_page_dirty(page); |
| 1761 | emul_write: | 1772 | emul_write: |
| 1762 | up_read(¤t->mm->mmap_sem); | 1773 | up_read(&vcpu->kvm->slots_lock); |
| 1763 | } | 1774 | } |
| 1764 | #endif | 1775 | #endif |
| 1765 | 1776 | ||
| @@ -2152,10 +2163,10 @@ int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, | |||
| 2152 | kvm_x86_ops->skip_emulated_instruction(vcpu); | 2163 | kvm_x86_ops->skip_emulated_instruction(vcpu); |
| 2153 | 2164 | ||
| 2154 | for (i = 0; i < nr_pages; ++i) { | 2165 | for (i = 0; i < nr_pages; ++i) { |
| 2155 | down_read(¤t->mm->mmap_sem); | 2166 | down_read(&vcpu->kvm->slots_lock); |
| 2156 | page = gva_to_page(vcpu, address + i * PAGE_SIZE); | 2167 | page = gva_to_page(vcpu, address + i * PAGE_SIZE); |
| 2157 | vcpu->arch.pio.guest_pages[i] = page; | 2168 | vcpu->arch.pio.guest_pages[i] = page; |
| 2158 | up_read(¤t->mm->mmap_sem); | 2169 | up_read(&vcpu->kvm->slots_lock); |
| 2159 | if (!page) { | 2170 | if (!page) { |
| 2160 | kvm_inject_gp(vcpu, 0); | 2171 | kvm_inject_gp(vcpu, 0); |
| 2161 | free_pio_guest_pages(vcpu); | 2172 | free_pio_guest_pages(vcpu); |
| @@ -2478,8 +2489,9 @@ static void vapic_enter(struct kvm_vcpu *vcpu) | |||
| 2478 | 2489 | ||
| 2479 | down_read(¤t->mm->mmap_sem); | 2490 | down_read(¤t->mm->mmap_sem); |
| 2480 | page = gfn_to_page(vcpu->kvm, apic->vapic_addr >> PAGE_SHIFT); | 2491 | page = gfn_to_page(vcpu->kvm, apic->vapic_addr >> PAGE_SHIFT); |
| 2481 | vcpu->arch.apic->vapic_page = page; | ||
| 2482 | up_read(¤t->mm->mmap_sem); | 2492 | up_read(¤t->mm->mmap_sem); |
| 2493 | |||
| 2494 | vcpu->arch.apic->vapic_page = page; | ||
| 2483 | } | 2495 | } |
| 2484 | 2496 | ||
| 2485 | static void vapic_exit(struct kvm_vcpu *vcpu) | 2497 | static void vapic_exit(struct kvm_vcpu *vcpu) |
| @@ -2861,8 +2873,8 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, | |||
| 2861 | kvm_x86_ops->decache_cr4_guest_bits(vcpu); | 2873 | kvm_x86_ops->decache_cr4_guest_bits(vcpu); |
| 2862 | 2874 | ||
| 2863 | mmu_reset_needed |= vcpu->arch.cr0 != sregs->cr0; | 2875 | mmu_reset_needed |= vcpu->arch.cr0 != sregs->cr0; |
| 2864 | vcpu->arch.cr0 = sregs->cr0; | ||
| 2865 | kvm_x86_ops->set_cr0(vcpu, sregs->cr0); | 2876 | kvm_x86_ops->set_cr0(vcpu, sregs->cr0); |
| 2877 | vcpu->arch.cr0 = sregs->cr0; | ||
| 2866 | 2878 | ||
| 2867 | mmu_reset_needed |= vcpu->arch.cr4 != sregs->cr4; | 2879 | mmu_reset_needed |= vcpu->arch.cr4 != sregs->cr4; |
| 2868 | kvm_x86_ops->set_cr4(vcpu, sregs->cr4); | 2880 | kvm_x86_ops->set_cr4(vcpu, sregs->cr4); |
| @@ -2952,9 +2964,9 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu, | |||
| 2952 | gpa_t gpa; | 2964 | gpa_t gpa; |
| 2953 | 2965 | ||
| 2954 | vcpu_load(vcpu); | 2966 | vcpu_load(vcpu); |
| 2955 | down_read(¤t->mm->mmap_sem); | 2967 | down_read(&vcpu->kvm->slots_lock); |
| 2956 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, vaddr); | 2968 | gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, vaddr); |
| 2957 | up_read(¤t->mm->mmap_sem); | 2969 | up_read(&vcpu->kvm->slots_lock); |
| 2958 | tr->physical_address = gpa; | 2970 | tr->physical_address = gpa; |
| 2959 | tr->valid = gpa != UNMAPPED_GVA; | 2971 | tr->valid = gpa != UNMAPPED_GVA; |
| 2960 | tr->writeable = 1; | 2972 | tr->writeable = 1; |
| @@ -3227,11 +3239,13 @@ int kvm_arch_set_memory_region(struct kvm *kvm, | |||
| 3227 | */ | 3239 | */ |
| 3228 | if (!user_alloc) { | 3240 | if (!user_alloc) { |
| 3229 | if (npages && !old.rmap) { | 3241 | if (npages && !old.rmap) { |
| 3242 | down_write(¤t->mm->mmap_sem); | ||
| 3230 | memslot->userspace_addr = do_mmap(NULL, 0, | 3243 | memslot->userspace_addr = do_mmap(NULL, 0, |
| 3231 | npages * PAGE_SIZE, | 3244 | npages * PAGE_SIZE, |
| 3232 | PROT_READ | PROT_WRITE, | 3245 | PROT_READ | PROT_WRITE, |
| 3233 | MAP_SHARED | MAP_ANONYMOUS, | 3246 | MAP_SHARED | MAP_ANONYMOUS, |
| 3234 | 0); | 3247 | 0); |
| 3248 | up_write(¤t->mm->mmap_sem); | ||
| 3235 | 3249 | ||
| 3236 | if (IS_ERR((void *)memslot->userspace_addr)) | 3250 | if (IS_ERR((void *)memslot->userspace_addr)) |
| 3237 | return PTR_ERR((void *)memslot->userspace_addr); | 3251 | return PTR_ERR((void *)memslot->userspace_addr); |
| @@ -3239,8 +3253,10 @@ int kvm_arch_set_memory_region(struct kvm *kvm, | |||
| 3239 | if (!old.user_alloc && old.rmap) { | 3253 | if (!old.user_alloc && old.rmap) { |
| 3240 | int ret; | 3254 | int ret; |
| 3241 | 3255 | ||
| 3256 | down_write(¤t->mm->mmap_sem); | ||
| 3242 | ret = do_munmap(current->mm, old.userspace_addr, | 3257 | ret = do_munmap(current->mm, old.userspace_addr, |
| 3243 | old.npages * PAGE_SIZE); | 3258 | old.npages * PAGE_SIZE); |
| 3259 | up_write(¤t->mm->mmap_sem); | ||
| 3244 | if (ret < 0) | 3260 | if (ret < 0) |
| 3245 | printk(KERN_WARNING | 3261 | printk(KERN_WARNING |
| 3246 | "kvm_vm_ioctl_set_memory_region: " | 3262 | "kvm_vm_ioctl_set_memory_region: " |
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 5afdde4895dc..a104c532ff70 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
| @@ -57,6 +57,7 @@ | |||
| 57 | #include <linux/lguest_launcher.h> | 57 | #include <linux/lguest_launcher.h> |
| 58 | #include <linux/virtio_console.h> | 58 | #include <linux/virtio_console.h> |
| 59 | #include <linux/pm.h> | 59 | #include <linux/pm.h> |
| 60 | #include <asm/lguest.h> | ||
| 60 | #include <asm/paravirt.h> | 61 | #include <asm/paravirt.h> |
| 61 | #include <asm/param.h> | 62 | #include <asm/param.h> |
| 62 | #include <asm/page.h> | 63 | #include <asm/page.h> |
| @@ -75,15 +76,6 @@ | |||
| 75 | * behaving in simplified but equivalent ways. In particular, the Guest is the | 76 | * behaving in simplified but equivalent ways. In particular, the Guest is the |
| 76 | * same kernel as the Host (or at least, built from the same source code). :*/ | 77 | * same kernel as the Host (or at least, built from the same source code). :*/ |
| 77 | 78 | ||
| 78 | /* Declarations for definitions in lguest_guest.S */ | ||
| 79 | extern char lguest_noirq_start[], lguest_noirq_end[]; | ||
| 80 | extern const char lgstart_cli[], lgend_cli[]; | ||
| 81 | extern const char lgstart_sti[], lgend_sti[]; | ||
| 82 | extern const char lgstart_popf[], lgend_popf[]; | ||
| 83 | extern const char lgstart_pushf[], lgend_pushf[]; | ||
| 84 | extern const char lgstart_iret[], lgend_iret[]; | ||
| 85 | extern void lguest_iret(void); | ||
| 86 | |||
| 87 | struct lguest_data lguest_data = { | 79 | struct lguest_data lguest_data = { |
| 88 | .hcall_status = { [0 ... LHCALL_RING_SIZE-1] = 0xFF }, | 80 | .hcall_status = { [0 ... LHCALL_RING_SIZE-1] = 0xFF }, |
| 89 | .noirq_start = (u32)lguest_noirq_start, | 81 | .noirq_start = (u32)lguest_noirq_start, |
| @@ -92,7 +84,6 @@ struct lguest_data lguest_data = { | |||
| 92 | .blocked_interrupts = { 1 }, /* Block timer interrupts */ | 84 | .blocked_interrupts = { 1 }, /* Block timer interrupts */ |
| 93 | .syscall_vec = SYSCALL_VECTOR, | 85 | .syscall_vec = SYSCALL_VECTOR, |
| 94 | }; | 86 | }; |
| 95 | static cycle_t clock_base; | ||
| 96 | 87 | ||
| 97 | /*G:037 async_hcall() is pretty simple: I'm quite proud of it really. We have a | 88 | /*G:037 async_hcall() is pretty simple: I'm quite proud of it really. We have a |
| 98 | * ring buffer of stored hypercalls which the Host will run though next time we | 89 | * ring buffer of stored hypercalls which the Host will run though next time we |
| @@ -335,8 +326,8 @@ static void lguest_cpuid(unsigned int *ax, unsigned int *bx, | |||
| 335 | case 1: /* Basic feature request. */ | 326 | case 1: /* Basic feature request. */ |
| 336 | /* We only allow kernel to see SSE3, CMPXCHG16B and SSSE3 */ | 327 | /* We only allow kernel to see SSE3, CMPXCHG16B and SSSE3 */ |
| 337 | *cx &= 0x00002201; | 328 | *cx &= 0x00002201; |
| 338 | /* SSE, SSE2, FXSR, MMX, CMOV, CMPXCHG8B, FPU. */ | 329 | /* SSE, SSE2, FXSR, MMX, CMOV, CMPXCHG8B, TSC, FPU. */ |
| 339 | *dx &= 0x07808101; | 330 | *dx &= 0x07808111; |
| 340 | /* The Host can do a nice optimization if it knows that the | 331 | /* The Host can do a nice optimization if it knows that the |
| 341 | * kernel mappings (addresses above 0xC0000000 or whatever | 332 | * kernel mappings (addresses above 0xC0000000 or whatever |
| 342 | * PAGE_OFFSET is set to) haven't changed. But Linux calls | 333 | * PAGE_OFFSET is set to) haven't changed. But Linux calls |
| @@ -603,19 +594,25 @@ static unsigned long lguest_get_wallclock(void) | |||
| 603 | return lguest_data.time.tv_sec; | 594 | return lguest_data.time.tv_sec; |
| 604 | } | 595 | } |
| 605 | 596 | ||
| 597 | /* The TSC is a Time Stamp Counter. The Host tells us what speed it runs at, | ||
| 598 | * or 0 if it's unusable as a reliable clock source. This matches what we want | ||
| 599 | * here: if we return 0 from this function, the x86 TSC clock will not register | ||
| 600 | * itself. */ | ||
| 601 | static unsigned long lguest_cpu_khz(void) | ||
| 602 | { | ||
| 603 | return lguest_data.tsc_khz; | ||
| 604 | } | ||
| 605 | |||
| 606 | /* If we can't use the TSC, the kernel falls back to our "lguest_clock", where | ||
| 607 | * we read the time value given to us by the Host. */ | ||
| 606 | static cycle_t lguest_clock_read(void) | 608 | static cycle_t lguest_clock_read(void) |
| 607 | { | 609 | { |
| 608 | unsigned long sec, nsec; | 610 | unsigned long sec, nsec; |
| 609 | 611 | ||
| 610 | /* If the Host tells the TSC speed, we can trust that. */ | 612 | /* Since the time is in two parts (seconds and nanoseconds), we risk |
| 611 | if (lguest_data.tsc_khz) | 613 | * reading it just as it's changing from 99 & 0.999999999 to 100 and 0, |
| 612 | return native_read_tsc(); | 614 | * and getting 99 and 0. As Linux tends to come apart under the stress |
| 613 | 615 | * of time travel, we must be careful: */ | |
| 614 | /* If we can't use the TSC, we read the time value written by the Host. | ||
| 615 | * Since it's in two parts (seconds and nanoseconds), we risk reading | ||
| 616 | * it just as it's changing from 99 & 0.999999999 to 100 and 0, and | ||
| 617 | * getting 99 and 0. As Linux tends to come apart under the stress of | ||
| 618 | * time travel, we must be careful: */ | ||
| 619 | do { | 616 | do { |
| 620 | /* First we read the seconds part. */ | 617 | /* First we read the seconds part. */ |
| 621 | sec = lguest_data.time.tv_sec; | 618 | sec = lguest_data.time.tv_sec; |
| @@ -630,14 +627,14 @@ static cycle_t lguest_clock_read(void) | |||
| 630 | /* Now if the seconds part has changed, try again. */ | 627 | /* Now if the seconds part has changed, try again. */ |
| 631 | } while (unlikely(lguest_data.time.tv_sec != sec)); | 628 | } while (unlikely(lguest_data.time.tv_sec != sec)); |
| 632 | 629 | ||
| 633 | /* Our non-TSC clock is in real nanoseconds. */ | 630 | /* Our lguest clock is in real nanoseconds. */ |
| 634 | return sec*1000000000ULL + nsec; | 631 | return sec*1000000000ULL + nsec; |
| 635 | } | 632 | } |
| 636 | 633 | ||
| 637 | /* This is what we tell the kernel is our clocksource. */ | 634 | /* This is the fallback clocksource: lower priority than the TSC clocksource. */ |
| 638 | static struct clocksource lguest_clock = { | 635 | static struct clocksource lguest_clock = { |
| 639 | .name = "lguest", | 636 | .name = "lguest", |
| 640 | .rating = 400, | 637 | .rating = 200, |
| 641 | .read = lguest_clock_read, | 638 | .read = lguest_clock_read, |
| 642 | .mask = CLOCKSOURCE_MASK(64), | 639 | .mask = CLOCKSOURCE_MASK(64), |
| 643 | .mult = 1 << 22, | 640 | .mult = 1 << 22, |
| @@ -645,12 +642,6 @@ static struct clocksource lguest_clock = { | |||
| 645 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 642 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
| 646 | }; | 643 | }; |
| 647 | 644 | ||
| 648 | /* The "scheduler clock" is just our real clock, adjusted to start at zero */ | ||
| 649 | static unsigned long long lguest_sched_clock(void) | ||
| 650 | { | ||
| 651 | return cyc2ns(&lguest_clock, lguest_clock_read() - clock_base); | ||
| 652 | } | ||
| 653 | |||
| 654 | /* We also need a "struct clock_event_device": Linux asks us to set it to go | 645 | /* We also need a "struct clock_event_device": Linux asks us to set it to go |
| 655 | * off some time in the future. Actually, James Morris figured all this out, I | 646 | * off some time in the future. Actually, James Morris figured all this out, I |
| 656 | * just applied the patch. */ | 647 | * just applied the patch. */ |
| @@ -720,19 +711,8 @@ static void lguest_time_init(void) | |||
| 720 | /* Set up the timer interrupt (0) to go to our simple timer routine */ | 711 | /* Set up the timer interrupt (0) to go to our simple timer routine */ |
| 721 | set_irq_handler(0, lguest_time_irq); | 712 | set_irq_handler(0, lguest_time_irq); |
| 722 | 713 | ||
| 723 | /* Our clock structure looks like arch/x86/kernel/tsc_32.c if we can | ||
| 724 | * use the TSC, otherwise it's a dumb nanosecond-resolution clock. | ||
| 725 | * Either way, the "rating" is set so high that it's always chosen over | ||
| 726 | * any other clocksource. */ | ||
| 727 | if (lguest_data.tsc_khz) | ||
| 728 | lguest_clock.mult = clocksource_khz2mult(lguest_data.tsc_khz, | ||
| 729 | lguest_clock.shift); | ||
| 730 | clock_base = lguest_clock_read(); | ||
| 731 | clocksource_register(&lguest_clock); | 714 | clocksource_register(&lguest_clock); |
| 732 | 715 | ||
| 733 | /* Now we've set up our clock, we can use it as the scheduler clock */ | ||
| 734 | pv_time_ops.sched_clock = lguest_sched_clock; | ||
| 735 | |||
| 736 | /* We can't set cpumask in the initializer: damn C limitations! Set it | 716 | /* We can't set cpumask in the initializer: damn C limitations! Set it |
| 737 | * here and register our timer device. */ | 717 | * here and register our timer device. */ |
| 738 | lguest_clockevent.cpumask = cpumask_of_cpu(0); | 718 | lguest_clockevent.cpumask = cpumask_of_cpu(0); |
| @@ -1003,6 +983,7 @@ __init void lguest_init(void) | |||
| 1003 | /* time operations */ | 983 | /* time operations */ |
| 1004 | pv_time_ops.get_wallclock = lguest_get_wallclock; | 984 | pv_time_ops.get_wallclock = lguest_get_wallclock; |
| 1005 | pv_time_ops.time_init = lguest_time_init; | 985 | pv_time_ops.time_init = lguest_time_init; |
| 986 | pv_time_ops.get_cpu_khz = lguest_cpu_khz; | ||
| 1006 | 987 | ||
| 1007 | /* Now is a good time to look at the implementations of these functions | 988 | /* Now is a good time to look at the implementations of these functions |
| 1008 | * before returning to the rest of lguest_init(). */ | 989 | * before returning to the rest of lguest_init(). */ |
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index bb652f5a93fb..a02a14f0f324 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
| @@ -172,8 +172,9 @@ set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot) | |||
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | /* | 174 | /* |
| 175 | * The head.S code sets up the kernel high mapping from: | 175 | * The head.S code sets up the kernel high mapping: |
| 176 | * __START_KERNEL_map to __START_KERNEL_map + KERNEL_TEXT_SIZE | 176 | * |
| 177 | * from __START_KERNEL_map to __START_KERNEL_map + size (== _end-_text) | ||
| 177 | * | 178 | * |
| 178 | * phys_addr holds the negative offset to the kernel, which is added | 179 | * phys_addr holds the negative offset to the kernel, which is added |
| 179 | * to the compile time generated pmds. This results in invalid pmds up | 180 | * to the compile time generated pmds. This results in invalid pmds up |
| @@ -515,14 +516,6 @@ void __init mem_init(void) | |||
| 515 | 516 | ||
| 516 | /* clear_bss() already clear the empty_zero_page */ | 517 | /* clear_bss() already clear the empty_zero_page */ |
| 517 | 518 | ||
| 518 | /* temporary debugging - double check it's true: */ | ||
| 519 | { | ||
| 520 | int i; | ||
| 521 | |||
| 522 | for (i = 0; i < 1024; i++) | ||
| 523 | WARN_ON_ONCE(empty_zero_page[i]); | ||
| 524 | } | ||
| 525 | |||
| 526 | reservedpages = 0; | 519 | reservedpages = 0; |
| 527 | 520 | ||
| 528 | /* this will put all low memory onto the freelists */ | 521 | /* this will put all low memory onto the freelists */ |
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 882328efc3db..8fe576baa148 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
| @@ -134,8 +134,6 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, | |||
| 134 | return NULL; | 134 | return NULL; |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | WARN_ON_ONCE(page_is_ram(pfn)); | ||
| 138 | |||
| 139 | switch (mode) { | 137 | switch (mode) { |
| 140 | case IOR_MODE_UNCACHED: | 138 | case IOR_MODE_UNCACHED: |
| 141 | default: | 139 | default: |
| @@ -162,7 +160,7 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, | |||
| 162 | area->phys_addr = phys_addr; | 160 | area->phys_addr = phys_addr; |
| 163 | vaddr = (unsigned long) area->addr; | 161 | vaddr = (unsigned long) area->addr; |
| 164 | if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { | 162 | if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { |
| 165 | remove_vm_area((void *)(vaddr & PAGE_MASK)); | 163 | free_vm_area(area); |
| 166 | return NULL; | 164 | return NULL; |
| 167 | } | 165 | } |
| 168 | 166 | ||
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c index 59898fb0a4aa..8ccfee10f5b5 100644 --- a/arch/x86/mm/numa_64.c +++ b/arch/x86/mm/numa_64.c | |||
| @@ -622,13 +622,17 @@ void __init init_cpu_to_node(void) | |||
| 622 | int i; | 622 | int i; |
| 623 | 623 | ||
| 624 | for (i = 0; i < NR_CPUS; i++) { | 624 | for (i = 0; i < NR_CPUS; i++) { |
| 625 | int node; | ||
| 625 | u16 apicid = x86_cpu_to_apicid_init[i]; | 626 | u16 apicid = x86_cpu_to_apicid_init[i]; |
| 626 | 627 | ||
| 627 | if (apicid == BAD_APICID) | 628 | if (apicid == BAD_APICID) |
| 628 | continue; | 629 | continue; |
| 629 | if (apicid_to_node[apicid] == NUMA_NO_NODE) | 630 | node = apicid_to_node[apicid]; |
| 631 | if (node == NUMA_NO_NODE) | ||
| 630 | continue; | 632 | continue; |
| 631 | numa_set_node(i, apicid_to_node[apicid]); | 633 | if (!node_online(node)) |
| 634 | continue; | ||
| 635 | numa_set_node(i, node); | ||
| 632 | } | 636 | } |
| 633 | } | 637 | } |
| 634 | 638 | ||
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 464d8fc21ce6..14e48b5a94ba 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
| @@ -44,6 +44,12 @@ static inline unsigned long highmap_end_pfn(void) | |||
| 44 | 44 | ||
| 45 | #endif | 45 | #endif |
| 46 | 46 | ||
| 47 | #ifdef CONFIG_DEBUG_PAGEALLOC | ||
| 48 | # define debug_pagealloc 1 | ||
| 49 | #else | ||
| 50 | # define debug_pagealloc 0 | ||
| 51 | #endif | ||
| 52 | |||
| 47 | static inline int | 53 | static inline int |
| 48 | within(unsigned long addr, unsigned long start, unsigned long end) | 54 | within(unsigned long addr, unsigned long start, unsigned long end) |
| 49 | { | 55 | { |
| @@ -355,45 +361,48 @@ out_unlock: | |||
| 355 | 361 | ||
| 356 | static LIST_HEAD(page_pool); | 362 | static LIST_HEAD(page_pool); |
| 357 | static unsigned long pool_size, pool_pages, pool_low; | 363 | static unsigned long pool_size, pool_pages, pool_low; |
| 358 | static unsigned long pool_used, pool_failed, pool_refill; | 364 | static unsigned long pool_used, pool_failed; |
| 359 | 365 | ||
| 360 | static void cpa_fill_pool(void) | 366 | static void cpa_fill_pool(struct page **ret) |
| 361 | { | 367 | { |
| 362 | struct page *p; | ||
| 363 | gfp_t gfp = GFP_KERNEL; | 368 | gfp_t gfp = GFP_KERNEL; |
| 369 | unsigned long flags; | ||
| 370 | struct page *p; | ||
| 364 | 371 | ||
| 365 | /* Do not allocate from interrupt context */ | ||
| 366 | if (in_irq() || irqs_disabled()) | ||
| 367 | return; | ||
| 368 | /* | 372 | /* |
| 369 | * Check unlocked. I does not matter when we have one more | 373 | * Avoid recursion (on debug-pagealloc) and also signal |
| 370 | * page in the pool. The bit lock avoids recursive pool | 374 | * our priority to get to these pagetables: |
| 371 | * allocations: | ||
| 372 | */ | 375 | */ |
| 373 | if (pool_pages >= pool_size || test_and_set_bit_lock(0, &pool_refill)) | 376 | if (current->flags & PF_MEMALLOC) |
| 374 | return; | 377 | return; |
| 378 | current->flags |= PF_MEMALLOC; | ||
| 375 | 379 | ||
| 376 | #ifdef CONFIG_DEBUG_PAGEALLOC | ||
| 377 | /* | 380 | /* |
| 378 | * We could do: | 381 | * Allocate atomically from atomic contexts: |
| 379 | * gfp = in_atomic() ? GFP_ATOMIC : GFP_KERNEL; | ||
| 380 | * but this fails on !PREEMPT kernels | ||
| 381 | */ | 382 | */ |
| 382 | gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN; | 383 | if (in_atomic() || irqs_disabled() || debug_pagealloc) |
| 383 | #endif | 384 | gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN; |
| 384 | 385 | ||
| 385 | while (pool_pages < pool_size) { | 386 | while (pool_pages < pool_size || (ret && !*ret)) { |
| 386 | p = alloc_pages(gfp, 0); | 387 | p = alloc_pages(gfp, 0); |
| 387 | if (!p) { | 388 | if (!p) { |
| 388 | pool_failed++; | 389 | pool_failed++; |
| 389 | break; | 390 | break; |
| 390 | } | 391 | } |
| 391 | spin_lock_irq(&pgd_lock); | 392 | /* |
| 393 | * If the call site needs a page right now, provide it: | ||
| 394 | */ | ||
| 395 | if (ret && !*ret) { | ||
| 396 | *ret = p; | ||
| 397 | continue; | ||
| 398 | } | ||
| 399 | spin_lock_irqsave(&pgd_lock, flags); | ||
| 392 | list_add(&p->lru, &page_pool); | 400 | list_add(&p->lru, &page_pool); |
| 393 | pool_pages++; | 401 | pool_pages++; |
| 394 | spin_unlock_irq(&pgd_lock); | 402 | spin_unlock_irqrestore(&pgd_lock, flags); |
| 395 | } | 403 | } |
| 396 | clear_bit_unlock(0, &pool_refill); | 404 | |
| 405 | current->flags &= ~PF_MEMALLOC; | ||
| 397 | } | 406 | } |
| 398 | 407 | ||
| 399 | #define SHIFT_MB (20 - PAGE_SHIFT) | 408 | #define SHIFT_MB (20 - PAGE_SHIFT) |
| @@ -414,11 +423,15 @@ void __init cpa_init(void) | |||
| 414 | * GiB. Shift MiB to Gib and multiply the result by | 423 | * GiB. Shift MiB to Gib and multiply the result by |
| 415 | * POOL_PAGES_PER_GB: | 424 | * POOL_PAGES_PER_GB: |
| 416 | */ | 425 | */ |
| 417 | gb = ((si.totalram >> SHIFT_MB) + ROUND_MB_GB) >> SHIFT_MB_GB; | 426 | if (debug_pagealloc) { |
| 418 | pool_size = POOL_PAGES_PER_GB * gb; | 427 | gb = ((si.totalram >> SHIFT_MB) + ROUND_MB_GB) >> SHIFT_MB_GB; |
| 428 | pool_size = POOL_PAGES_PER_GB * gb; | ||
| 429 | } else { | ||
| 430 | pool_size = 1; | ||
| 431 | } | ||
| 419 | pool_low = pool_size; | 432 | pool_low = pool_size; |
| 420 | 433 | ||
| 421 | cpa_fill_pool(); | 434 | cpa_fill_pool(NULL); |
| 422 | printk(KERN_DEBUG | 435 | printk(KERN_DEBUG |
| 423 | "CPA: page pool initialized %lu of %lu pages preallocated\n", | 436 | "CPA: page pool initialized %lu of %lu pages preallocated\n", |
| 424 | pool_pages, pool_size); | 437 | pool_pages, pool_size); |
| @@ -440,16 +453,20 @@ static int split_large_page(pte_t *kpte, unsigned long address) | |||
| 440 | spin_lock_irqsave(&pgd_lock, flags); | 453 | spin_lock_irqsave(&pgd_lock, flags); |
| 441 | if (list_empty(&page_pool)) { | 454 | if (list_empty(&page_pool)) { |
| 442 | spin_unlock_irqrestore(&pgd_lock, flags); | 455 | spin_unlock_irqrestore(&pgd_lock, flags); |
| 443 | return -ENOMEM; | 456 | base = NULL; |
| 457 | cpa_fill_pool(&base); | ||
| 458 | if (!base) | ||
| 459 | return -ENOMEM; | ||
| 460 | spin_lock_irqsave(&pgd_lock, flags); | ||
| 461 | } else { | ||
| 462 | base = list_first_entry(&page_pool, struct page, lru); | ||
| 463 | list_del(&base->lru); | ||
| 464 | pool_pages--; | ||
| 465 | |||
| 466 | if (pool_pages < pool_low) | ||
| 467 | pool_low = pool_pages; | ||
| 444 | } | 468 | } |
| 445 | 469 | ||
| 446 | base = list_first_entry(&page_pool, struct page, lru); | ||
| 447 | list_del(&base->lru); | ||
| 448 | pool_pages--; | ||
| 449 | |||
| 450 | if (pool_pages < pool_low) | ||
| 451 | pool_low = pool_pages; | ||
| 452 | |||
| 453 | /* | 470 | /* |
| 454 | * Check for races, another CPU might have split this page | 471 | * Check for races, another CPU might have split this page |
| 455 | * up for us already: | 472 | * up for us already: |
| @@ -734,7 +751,8 @@ static int change_page_attr_set_clr(unsigned long addr, int numpages, | |||
| 734 | cpa_flush_all(cache); | 751 | cpa_flush_all(cache); |
| 735 | 752 | ||
| 736 | out: | 753 | out: |
| 737 | cpa_fill_pool(); | 754 | cpa_fill_pool(NULL); |
| 755 | |||
| 738 | return ret; | 756 | return ret; |
| 739 | } | 757 | } |
| 740 | 758 | ||
| @@ -897,7 +915,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable) | |||
| 897 | * Try to refill the page pool here. We can do this only after | 915 | * Try to refill the page pool here. We can do this only after |
| 898 | * the tlb flush. | 916 | * the tlb flush. |
| 899 | */ | 917 | */ |
| 900 | cpa_fill_pool(); | 918 | cpa_fill_pool(NULL); |
| 901 | } | 919 | } |
| 902 | 920 | ||
| 903 | #ifdef CONFIG_HIBERNATION | 921 | #ifdef CONFIG_HIBERNATION |
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c index 73aba7125203..2f9e9afcb9f4 100644 --- a/arch/x86/mm/pgtable_32.c +++ b/arch/x86/mm/pgtable_32.c | |||
| @@ -342,12 +342,16 @@ static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp) | |||
| 342 | 342 | ||
| 343 | pgd_t *pgd_alloc(struct mm_struct *mm) | 343 | pgd_t *pgd_alloc(struct mm_struct *mm) |
| 344 | { | 344 | { |
| 345 | pgd_t *pgd = quicklist_alloc(0, GFP_KERNEL, pgd_ctor); | 345 | pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO); |
| 346 | 346 | ||
| 347 | mm->pgd = pgd; /* so that alloc_pd can use it */ | 347 | /* so that alloc_pd can use it */ |
| 348 | mm->pgd = pgd; | ||
| 349 | if (pgd) | ||
| 350 | pgd_ctor(pgd); | ||
| 348 | 351 | ||
| 349 | if (pgd && !pgd_prepopulate_pmd(mm, pgd)) { | 352 | if (pgd && !pgd_prepopulate_pmd(mm, pgd)) { |
| 350 | quicklist_free(0, pgd_dtor, pgd); | 353 | pgd_dtor(pgd); |
| 354 | free_page((unsigned long)pgd); | ||
| 351 | pgd = NULL; | 355 | pgd = NULL; |
| 352 | } | 356 | } |
| 353 | 357 | ||
| @@ -357,12 +361,8 @@ pgd_t *pgd_alloc(struct mm_struct *mm) | |||
| 357 | void pgd_free(struct mm_struct *mm, pgd_t *pgd) | 361 | void pgd_free(struct mm_struct *mm, pgd_t *pgd) |
| 358 | { | 362 | { |
| 359 | pgd_mop_up_pmds(mm, pgd); | 363 | pgd_mop_up_pmds(mm, pgd); |
| 360 | quicklist_free(0, pgd_dtor, pgd); | 364 | pgd_dtor(pgd); |
| 361 | } | 365 | free_page((unsigned long)pgd); |
| 362 | |||
| 363 | void check_pgt_cache(void) | ||
| 364 | { | ||
| 365 | quicklist_trim(0, pgd_dtor, 25, 16); | ||
| 366 | } | 366 | } |
| 367 | 367 | ||
| 368 | void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) | 368 | void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) |
diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c index 10ac8c316c46..2f7109ac4c15 100644 --- a/arch/x86/pci/pcbios.c +++ b/arch/x86/pci/pcbios.c | |||
| @@ -198,6 +198,11 @@ static int pci_bios_read(unsigned int seg, unsigned int bus, | |||
| 198 | "b" (bx), | 198 | "b" (bx), |
| 199 | "D" ((long)reg), | 199 | "D" ((long)reg), |
| 200 | "S" (&pci_indirect)); | 200 | "S" (&pci_indirect)); |
| 201 | /* | ||
| 202 | * Zero-extend the result beyond 8 bits, do not trust the | ||
| 203 | * BIOS having done it: | ||
| 204 | */ | ||
| 205 | *value &= 0xff; | ||
| 201 | break; | 206 | break; |
| 202 | case 2: | 207 | case 2: |
| 203 | __asm__("lcall *(%%esi); cld\n\t" | 208 | __asm__("lcall *(%%esi); cld\n\t" |
| @@ -210,6 +215,11 @@ static int pci_bios_read(unsigned int seg, unsigned int bus, | |||
| 210 | "b" (bx), | 215 | "b" (bx), |
| 211 | "D" ((long)reg), | 216 | "D" ((long)reg), |
| 212 | "S" (&pci_indirect)); | 217 | "S" (&pci_indirect)); |
| 218 | /* | ||
| 219 | * Zero-extend the result beyond 16 bits, do not trust the | ||
| 220 | * BIOS having done it: | ||
| 221 | */ | ||
| 222 | *value &= 0xffff; | ||
| 213 | break; | 223 | break; |
| 214 | case 4: | 224 | case 4: |
| 215 | __asm__("lcall *(%%esi); cld\n\t" | 225 | __asm__("lcall *(%%esi); cld\n\t" |
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile index f385a4b4a484..0a8f4742ef51 100644 --- a/arch/x86/vdso/Makefile +++ b/arch/x86/vdso/Makefile | |||
| @@ -50,7 +50,9 @@ obj-$(VDSO64-y) += vdso-syms.lds | |||
| 50 | sed-vdsosym := -e 's/^00*/0/' \ | 50 | sed-vdsosym := -e 's/^00*/0/' \ |
| 51 | -e 's/^\([0-9a-fA-F]*\) . \(VDSO[a-zA-Z0-9_]*\)$$/\2 = 0x\1;/p' | 51 | -e 's/^\([0-9a-fA-F]*\) . \(VDSO[a-zA-Z0-9_]*\)$$/\2 = 0x\1;/p' |
| 52 | quiet_cmd_vdsosym = VDSOSYM $@ | 52 | quiet_cmd_vdsosym = VDSOSYM $@ |
| 53 | cmd_vdsosym = $(NM) $< | sed -n $(sed-vdsosym) | LC_ALL=C sort > $@ | 53 | define cmd_vdsosym |
| 54 | $(NM) $< | LC_ALL=C sed -n $(sed-vdsosym) | LC_ALL=C sort > $@ | ||
| 55 | endef | ||
| 54 | 56 | ||
| 55 | $(obj)/%-syms.lds: $(obj)/%.so.dbg FORCE | 57 | $(obj)/%-syms.lds: $(obj)/%.so.dbg FORCE |
| 56 | $(call if_changed,vdsosym) | 58 | $(call if_changed,vdsosym) |
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 49e5358f481a..8b9ee27805fd 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
| @@ -153,6 +153,7 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx, | |||
| 153 | if (*ax == 1) | 153 | if (*ax == 1) |
| 154 | maskedx = ~((1 << X86_FEATURE_APIC) | /* disable APIC */ | 154 | maskedx = ~((1 << X86_FEATURE_APIC) | /* disable APIC */ |
| 155 | (1 << X86_FEATURE_ACPI) | /* disable ACPI */ | 155 | (1 << X86_FEATURE_ACPI) | /* disable ACPI */ |
| 156 | (1 << X86_FEATURE_SEP) | /* disable SEP */ | ||
| 156 | (1 << X86_FEATURE_ACC)); /* thermal monitoring */ | 157 | (1 << X86_FEATURE_ACC)); /* thermal monitoring */ |
| 157 | 158 | ||
| 158 | asm(XEN_EMULATE_PREFIX "cpuid" | 159 | asm(XEN_EMULATE_PREFIX "cpuid" |
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 3bad4773a2f3..2341492bf7a0 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
| @@ -38,7 +38,8 @@ char * __init xen_memory_setup(void) | |||
| 38 | unsigned long max_pfn = xen_start_info->nr_pages; | 38 | unsigned long max_pfn = xen_start_info->nr_pages; |
| 39 | 39 | ||
| 40 | e820.nr_map = 0; | 40 | e820.nr_map = 0; |
| 41 | add_memory_region(0, PFN_PHYS(max_pfn), E820_RAM); | 41 | add_memory_region(0, LOWMEMSIZE(), E820_RAM); |
| 42 | add_memory_region(HIGH_MEMORY, PFN_PHYS(max_pfn)-HIGH_MEMORY, E820_RAM); | ||
| 42 | 43 | ||
| 43 | return "Xen"; | 44 | return "Xen"; |
| 44 | } | 45 | } |
