diff options
author | Paul Mackerras <paulus@samba.org> | 2008-03-13 00:26:33 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-03-13 00:26:33 -0400 |
commit | bed04a4413376265746053be2a9cfbfc80c98ec9 (patch) | |
tree | 8f582294a655f70496cd08aedeb86de31dbad140 /arch | |
parent | e37c772e36a7943b2e0bd8f48312e78474c0df15 (diff) | |
parent | c463be3520065ef8c05e3cbdf946c69604e91ceb (diff) |
Merge branch 'linux-2.6'
Diffstat (limited to 'arch')
284 files changed, 3337 insertions, 5175 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/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index 26d3789dfdd0..e07a23fc5b74 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #endif | 31 | #endif |
32 | 32 | ||
33 | #define DEBUG_NODIRECT 0 | 33 | #define DEBUG_NODIRECT 0 |
34 | #define DEBUG_FORCEDAC 0 | ||
35 | 34 | ||
36 | #define ISA_DMA_MASK 0x00ffffff | 35 | #define ISA_DMA_MASK 0x00ffffff |
37 | 36 | ||
@@ -126,39 +125,66 @@ iommu_arena_new(struct pci_controller *hose, dma_addr_t base, | |||
126 | return iommu_arena_new_node(0, hose, base, window_size, align); | 125 | return iommu_arena_new_node(0, hose, base, window_size, align); |
127 | } | 126 | } |
128 | 127 | ||
128 | static inline int is_span_boundary(unsigned int index, unsigned int nr, | ||
129 | unsigned long shift, | ||
130 | unsigned long boundary_size) | ||
131 | { | ||
132 | shift = (shift + index) & (boundary_size - 1); | ||
133 | return shift + nr > boundary_size; | ||
134 | } | ||
135 | |||
129 | /* Must be called with the arena lock held */ | 136 | /* Must be called with the arena lock held */ |
130 | static long | 137 | static long |
131 | iommu_arena_find_pages(struct pci_iommu_arena *arena, long n, long mask) | 138 | iommu_arena_find_pages(struct device *dev, struct pci_iommu_arena *arena, |
139 | long n, long mask) | ||
132 | { | 140 | { |
133 | unsigned long *ptes; | 141 | unsigned long *ptes; |
134 | long i, p, nent; | 142 | long i, p, nent; |
143 | int pass = 0; | ||
144 | unsigned long base; | ||
145 | unsigned long boundary_size; | ||
146 | |||
147 | base = arena->dma_base >> PAGE_SHIFT; | ||
148 | if (dev) { | ||
149 | boundary_size = dma_get_seg_boundary(dev) + 1; | ||
150 | BUG_ON(!is_power_of_2(boundary_size)); | ||
151 | boundary_size >>= PAGE_SHIFT; | ||
152 | } else { | ||
153 | boundary_size = 1UL << (32 - PAGE_SHIFT); | ||
154 | } | ||
135 | 155 | ||
136 | /* Search forward for the first mask-aligned sequence of N free ptes */ | 156 | /* Search forward for the first mask-aligned sequence of N free ptes */ |
137 | ptes = arena->ptes; | 157 | ptes = arena->ptes; |
138 | nent = arena->size >> PAGE_SHIFT; | 158 | nent = arena->size >> PAGE_SHIFT; |
139 | p = (arena->next_entry + mask) & ~mask; | 159 | p = ALIGN(arena->next_entry, mask + 1); |
140 | i = 0; | 160 | i = 0; |
161 | |||
162 | again: | ||
141 | while (i < n && p+i < nent) { | 163 | while (i < n && p+i < nent) { |
164 | if (!i && is_span_boundary(p, n, base, boundary_size)) { | ||
165 | p = ALIGN(p + 1, mask + 1); | ||
166 | goto again; | ||
167 | } | ||
168 | |||
142 | if (ptes[p+i]) | 169 | if (ptes[p+i]) |
143 | p = (p + i + 1 + mask) & ~mask, i = 0; | 170 | p = ALIGN(p + i + 1, mask + 1), i = 0; |
144 | else | 171 | else |
145 | i = i + 1; | 172 | i = i + 1; |
146 | } | 173 | } |
147 | 174 | ||
148 | if (i < n) { | 175 | if (i < n) { |
149 | /* Reached the end. Flush the TLB and restart the | 176 | if (pass < 1) { |
150 | search from the beginning. */ | 177 | /* |
151 | alpha_mv.mv_pci_tbi(arena->hose, 0, -1); | 178 | * Reached the end. Flush the TLB and restart |
152 | 179 | * the search from the beginning. | |
153 | p = 0, i = 0; | 180 | */ |
154 | while (i < n && p+i < nent) { | 181 | alpha_mv.mv_pci_tbi(arena->hose, 0, -1); |
155 | if (ptes[p+i]) | 182 | |
156 | p = (p + i + 1 + mask) & ~mask, i = 0; | 183 | pass++; |
157 | else | 184 | p = 0; |
158 | i = i + 1; | 185 | i = 0; |
159 | } | 186 | goto again; |
160 | 187 | } else | |
161 | if (i < n) | ||
162 | return -1; | 188 | return -1; |
163 | } | 189 | } |
164 | 190 | ||
@@ -168,7 +194,8 @@ iommu_arena_find_pages(struct pci_iommu_arena *arena, long n, long mask) | |||
168 | } | 194 | } |
169 | 195 | ||
170 | static long | 196 | static long |
171 | iommu_arena_alloc(struct pci_iommu_arena *arena, long n, unsigned int align) | 197 | iommu_arena_alloc(struct device *dev, struct pci_iommu_arena *arena, long n, |
198 | unsigned int align) | ||
172 | { | 199 | { |
173 | unsigned long flags; | 200 | unsigned long flags; |
174 | unsigned long *ptes; | 201 | unsigned long *ptes; |
@@ -179,7 +206,7 @@ iommu_arena_alloc(struct pci_iommu_arena *arena, long n, unsigned int align) | |||
179 | /* Search for N empty ptes */ | 206 | /* Search for N empty ptes */ |
180 | ptes = arena->ptes; | 207 | ptes = arena->ptes; |
181 | mask = max(align, arena->align_entry) - 1; | 208 | mask = max(align, arena->align_entry) - 1; |
182 | p = iommu_arena_find_pages(arena, n, mask); | 209 | p = iommu_arena_find_pages(dev, arena, n, mask); |
183 | if (p < 0) { | 210 | if (p < 0) { |
184 | spin_unlock_irqrestore(&arena->lock, flags); | 211 | spin_unlock_irqrestore(&arena->lock, flags); |
185 | return -1; | 212 | return -1; |
@@ -229,6 +256,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, | |||
229 | unsigned long paddr; | 256 | unsigned long paddr; |
230 | dma_addr_t ret; | 257 | dma_addr_t ret; |
231 | unsigned int align = 0; | 258 | unsigned int align = 0; |
259 | struct device *dev = pdev ? &pdev->dev : NULL; | ||
232 | 260 | ||
233 | paddr = __pa(cpu_addr); | 261 | paddr = __pa(cpu_addr); |
234 | 262 | ||
@@ -276,7 +304,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, | |||
276 | /* Force allocation to 64KB boundary for ISA bridges. */ | 304 | /* Force allocation to 64KB boundary for ISA bridges. */ |
277 | if (pdev && pdev == isa_bridge) | 305 | if (pdev && pdev == isa_bridge) |
278 | align = 8; | 306 | align = 8; |
279 | dma_ofs = iommu_arena_alloc(arena, npages, align); | 307 | dma_ofs = iommu_arena_alloc(dev, arena, npages, align); |
280 | if (dma_ofs < 0) { | 308 | if (dma_ofs < 0) { |
281 | printk(KERN_WARNING "pci_map_single failed: " | 309 | printk(KERN_WARNING "pci_map_single failed: " |
282 | "could not allocate dma page tables\n"); | 310 | "could not allocate dma page tables\n"); |
@@ -563,7 +591,7 @@ sg_fill(struct device *dev, struct scatterlist *leader, struct scatterlist *end, | |||
563 | 591 | ||
564 | paddr &= ~PAGE_MASK; | 592 | paddr &= ~PAGE_MASK; |
565 | npages = calc_npages(paddr + size); | 593 | npages = calc_npages(paddr + size); |
566 | dma_ofs = iommu_arena_alloc(arena, npages, 0); | 594 | dma_ofs = iommu_arena_alloc(dev, arena, npages, 0); |
567 | if (dma_ofs < 0) { | 595 | if (dma_ofs < 0) { |
568 | /* If we attempted a direct map above but failed, die. */ | 596 | /* If we attempted a direct map above but failed, die. */ |
569 | if (leader->dma_address == 0) | 597 | if (leader->dma_address == 0) |
@@ -830,7 +858,7 @@ iommu_reserve(struct pci_iommu_arena *arena, long pg_count, long align_mask) | |||
830 | 858 | ||
831 | /* Search for N empty ptes. */ | 859 | /* Search for N empty ptes. */ |
832 | ptes = arena->ptes; | 860 | ptes = arena->ptes; |
833 | p = iommu_arena_find_pages(arena, pg_count, align_mask); | 861 | p = iommu_arena_find_pages(NULL, arena, pg_count, align_mask); |
834 | if (p < 0) { | 862 | if (p < 0) { |
835 | spin_unlock_irqrestore(&arena->lock, flags); | 863 | spin_unlock_irqrestore(&arena->lock, flags); |
836 | return -1; | 864 | 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/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/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/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/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/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/powerpc/Kconfig b/arch/powerpc/Kconfig index e4e13e0bca16..ef12db07b22f 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 | select HAVE_LMB | 94 | select HAVE_LMB |
94 | 95 | ||
95 | config EARLY_PRINTK | 96 | config EARLY_PRINTK |
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-uboot_defconfig b/arch/powerpc/configs/adder875-uboot_defconfig deleted file mode 100644 index 1faf7ef59a23..000000000000 --- a/arch/powerpc/configs/adder875-uboot_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:18 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-uboot.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-redboot_defconfig b/arch/powerpc/configs/adder875_defconfig index cab5f9b64567..a3cc94a2ff06 100644 --- a/arch/powerpc/configs/adder875-redboot_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:38 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-redboot.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 4cc53f92377e..0b018b29cda8 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -530,10 +530,10 @@ void __init htab_initialize(void) | |||
530 | } else { | 530 | } else { |
531 | /* Find storage for the HPT. Must be contiguous in | 531 | /* Find storage for the HPT. Must be contiguous in |
532 | * the absolute address space. On cell we want it to be | 532 | * the absolute address space. On cell we want it to be |
533 | * in the first 1 Gig. | 533 | * in the first 2 Gig so we can use it for IOMMU hacks. |
534 | */ | 534 | */ |
535 | if (machine_is(cell)) | 535 | if (machine_is(cell)) |
536 | limit = 0x40000000; | 536 | limit = 0x80000000; |
537 | else | 537 | else |
538 | limit = 0; | 538 | limit = 0; |
539 | 539 | ||
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 61381586895f..d6a732503ea6 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 b18d24d249fa..2667a9dee11d 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..237fc128143d 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 | ||
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 | } |