aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/it8152.c5
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/kernel/sys_oabi-compat.c24
-rw-r--r--arch/avr32/kernel/setup.c1
-rw-r--r--arch/avr32/kernel/traps.c4
-rw-r--r--arch/mips/Makefile7
-rw-r--r--arch/mips/au1000/common/cputable.c36
-rw-r--r--arch/mips/au1000/common/setup.c13
-rw-r--r--arch/mips/au1000/common/time.c24
-rw-r--r--arch/mips/au1000/xxs1500/board_setup.c3
-rw-r--r--arch/mips/au1000/xxs1500/irqmap.c2
-rw-r--r--arch/mips/configs/bigsur_defconfig939
-rw-r--r--arch/mips/kernel/i8253.c1
-rw-r--r--arch/mips/kernel/time.c2
-rw-r--r--arch/mips/kernel/vpe.c21
-rw-r--r--arch/mips/mm/tlbex.c1
-rw-r--r--arch/mips/pci/pci-bcm1480.c6
-rw-r--r--arch/mips/pci/pci-bcm1480ht.c21
-rw-r--r--arch/powerpc/configs/pasemi_defconfig142
-rw-r--r--arch/powerpc/kernel/process.c10
-rw-r--r--arch/powerpc/oprofile/cell/vma_map.c37
-rw-r--r--arch/powerpc/platforms/pseries/xics.c2
-rw-r--r--arch/sparc64/defconfig12
-rw-r--r--arch/sparc64/kernel/cpu.c10
-rw-r--r--arch/sparc64/kernel/entry.S30
-rw-r--r--arch/sparc64/kernel/entry.h196
-rw-r--r--arch/sparc64/kernel/iommu.c8
-rw-r--r--arch/sparc64/kernel/irq.c21
-rw-r--r--arch/sparc64/kernel/ptrace.c20
-rw-r--r--arch/sparc64/kernel/setup.c5
-rw-r--r--arch/sparc64/kernel/signal.c3
-rw-r--r--arch/sparc64/kernel/smp.c3
-rw-r--r--arch/sparc64/kernel/stacktrace.c4
-rw-r--r--arch/sparc64/kernel/sys_sparc.c14
-rw-r--r--arch/sparc64/kernel/systbls.h53
-rw-r--r--arch/sparc64/kernel/time.c66
-rw-r--r--arch/sparc64/kernel/traps.c49
-rw-r--r--arch/sparc64/mm/init.c5
-rw-r--r--arch/sparc64/mm/tlb.c3
-rw-r--r--arch/um/drivers/net_kern.c6
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-smi.c39
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c42
-rw-r--r--arch/x86/kernel/io_delay.c8
-rw-r--r--arch/x86/kernel/mfgpt_32.c1
-rw-r--r--arch/x86/kernel/ptrace.c169
-rw-r--r--arch/x86/kernel/setup_32.c9
-rw-r--r--arch/x86/kernel/setup_64.c2
-rw-r--r--arch/x86/lguest/boot.c108
-rw-r--r--arch/x86/lguest/i386_head.S15
-rw-r--r--arch/x86/mach-rdc321x/gpio.c199
-rw-r--r--arch/x86/mach-rdc321x/platform.c2
-rw-r--r--arch/x86/mm/discontig_32.c1
-rw-r--r--arch/x86/mm/fault.c10
-rw-r--r--arch/x86/mm/highmem_32.c6
-rw-r--r--arch/x86/mm/hugetlbpage.c2
-rw-r--r--arch/x86/mm/ioremap.c6
-rw-r--r--arch/x86/mm/pageattr.c2
-rw-r--r--arch/x86/xen/enlighten.c47
-rw-r--r--arch/x86/xen/xen-asm.S9
59 files changed, 1598 insertions, 890 deletions
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
index 538262241483..5fe9588db077 100644
--- a/arch/arm/common/it8152.c
+++ b/arch/arm/common/it8152.c
@@ -120,6 +120,7 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
120 time, when they all three were 0. */ 120 time, when they all three were 0. */
121 bits_pd = __raw_readl(IT8152_INTC_PDCNIRR); 121 bits_pd = __raw_readl(IT8152_INTC_PDCNIRR);
122 bits_lp = __raw_readl(IT8152_INTC_LPCNIRR); 122 bits_lp = __raw_readl(IT8152_INTC_LPCNIRR);
123 bits_ld = __raw_readl(IT8152_INTC_LDCNIRR);
123 if (!(bits_ld | bits_lp | bits_pd)) 124 if (!(bits_ld | bits_lp | bits_pd))
124 return; 125 return;
125 } 126 }
@@ -133,14 +134,14 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
133 134
134 bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1); 135 bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
135 while (bits_lp) { 136 while (bits_lp) {
136 i = __ffs(bits_pd); 137 i = __ffs(bits_lp);
137 it8152_irq(IT8152_LP_IRQ(i)); 138 it8152_irq(IT8152_LP_IRQ(i));
138 bits_lp &= ~(1 << i); 139 bits_lp &= ~(1 << i);
139 } 140 }
140 141
141 bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1); 142 bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
142 while (bits_ld) { 143 while (bits_ld) {
143 i = __ffs(bits_pd); 144 i = __ffs(bits_ld);
144 it8152_irq(IT8152_LD_IRQ(i)); 145 it8152_irq(IT8152_LD_IRQ(i));
145 bits_ld &= ~(1 << i); 146 bits_ld &= ~(1 << i);
146 } 147 }
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 283e14fff993..7e97b7376563 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -336,7 +336,7 @@
336 CALL(sys_mknodat) 336 CALL(sys_mknodat)
337/* 325 */ CALL(sys_fchownat) 337/* 325 */ CALL(sys_fchownat)
338 CALL(sys_futimesat) 338 CALL(sys_futimesat)
339 CALL(sys_fstatat64) 339 CALL(ABI(sys_fstatat64, sys_oabi_fstatat64))
340 CALL(sys_unlinkat) 340 CALL(sys_unlinkat)
341 CALL(sys_renameat) 341 CALL(sys_renameat)
342/* 330 */ CALL(sys_linkat) 342/* 330 */ CALL(sys_linkat)
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
index e8b98046895b..96ab5f52949c 100644
--- a/arch/arm/kernel/sys_oabi-compat.c
+++ b/arch/arm/kernel/sys_oabi-compat.c
@@ -25,6 +25,7 @@
25 * sys_stat64: 25 * sys_stat64:
26 * sys_lstat64: 26 * sys_lstat64:
27 * sys_fstat64: 27 * sys_fstat64:
28 * sys_fstatat64:
28 * 29 *
29 * struct stat64 has different sizes and some members are shifted 30 * struct stat64 has different sizes and some members are shifted
30 * Compatibility wrappers are needed for them and provided below. 31 * Compatibility wrappers are needed for them and provided below.
@@ -169,6 +170,29 @@ asmlinkage long sys_oabi_fstat64(unsigned long fd,
169 return error; 170 return error;
170} 171}
171 172
173asmlinkage long sys_oabi_fstatat64(int dfd,
174 char __user *filename,
175 struct oldabi_stat64 __user *statbuf,
176 int flag)
177{
178 struct kstat stat;
179 int error = -EINVAL;
180
181 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
182 goto out;
183
184 if (flag & AT_SYMLINK_NOFOLLOW)
185 error = vfs_lstat_fd(dfd, filename, &stat);
186 else
187 error = vfs_stat_fd(dfd, filename, &stat);
188
189 if (!error)
190 error = cp_oldabi_stat64(&stat, statbuf);
191
192out:
193 return error;
194}
195
172struct oabi_flock64 { 196struct oabi_flock64 {
173 short l_type; 197 short l_type;
174 short l_whence; 198 short l_whence;
diff --git a/arch/avr32/kernel/setup.c b/arch/avr32/kernel/setup.c
index e66a07a928cd..2687b730e2d0 100644
--- a/arch/avr32/kernel/setup.c
+++ b/arch/avr32/kernel/setup.c
@@ -163,6 +163,7 @@ add_reserved_region(resource_size_t start, resource_size_t end,
163 new->start = start; 163 new->start = start;
164 new->end = end; 164 new->end = end;
165 new->name = name; 165 new->name = name;
166 new->sibling = next;
166 new->flags = IORESOURCE_MEM; 167 new->flags = IORESOURCE_MEM;
167 168
168 *pprev = new; 169 *pprev = new;
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c
index cf6f686d9b0b..b835c4c01368 100644
--- a/arch/avr32/kernel/traps.c
+++ b/arch/avr32/kernel/traps.c
@@ -178,6 +178,7 @@ static int do_cop_absent(u32 insn)
178 return 0; 178 return 0;
179} 179}
180 180
181#ifdef CONFIG_BUG
181int is_valid_bugaddr(unsigned long pc) 182int is_valid_bugaddr(unsigned long pc)
182{ 183{
183 unsigned short opcode; 184 unsigned short opcode;
@@ -189,6 +190,7 @@ int is_valid_bugaddr(unsigned long pc)
189 190
190 return opcode == AVR32_BUG_OPCODE; 191 return opcode == AVR32_BUG_OPCODE;
191} 192}
193#endif
192 194
193asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) 195asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
194{ 196{
@@ -197,6 +199,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
197 void __user *pc; 199 void __user *pc;
198 long code; 200 long code;
199 201
202#ifdef CONFIG_BUG
200 if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) { 203 if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) {
201 enum bug_trap_type type; 204 enum bug_trap_type type;
202 205
@@ -211,6 +214,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
211 die("Kernel BUG", regs, SIGKILL); 214 die("Kernel BUG", regs, SIGKILL);
212 } 215 }
213 } 216 }
217#endif
214 218
215 local_irq_enable(); 219 local_irq_enable();
216 220
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 72097dacabd3..1c62381f5c23 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -482,10 +482,13 @@ endif
482# be 16kb aligned or the handling of the current variable will break. 482# be 16kb aligned or the handling of the current variable will break.
483# Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys 483# Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys
484# 484#
485#core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ arch/mips/arc/arc_con.o 485ifdef CONFIG_SGI_IP28
486 ifeq ($(call cc-option-yn,-mr10k-cache-barrier=1), n)
487 $(error gcc doesn't support needed option -mr10k-cache-barrier=1)
488 endif
489endif
486core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ 490core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/
487cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=1 -Iinclude/asm-mips/mach-ip28 491cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=1 -Iinclude/asm-mips/mach-ip28
488#cflags-$(CONFIG_SGI_IP28) += -Iinclude/asm-mips/mach-ip28
489load-$(CONFIG_SGI_IP28) += 0xa800000020004000 492load-$(CONFIG_SGI_IP28) += 0xa800000020004000
490 493
491# 494#
diff --git a/arch/mips/au1000/common/cputable.c b/arch/mips/au1000/common/cputable.c
index d8df5fdb045f..5c0d35d6e22a 100644
--- a/arch/mips/au1000/common/cputable.c
+++ b/arch/mips/au1000/common/cputable.c
@@ -22,24 +22,24 @@ struct cpu_spec* cur_cpu_spec[NR_CPUS];
22/* With some thought, we can probably use the mask to reduce the 22/* With some thought, we can probably use the mask to reduce the
23 * size of the table. 23 * size of the table.
24 */ 24 */
25struct cpu_spec cpu_specs[] = { 25struct cpu_spec cpu_specs[] = {
26 { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0 }, 26 { 0xffffffff, 0x00030100, "Au1000 DA", 1, 0, 1 },
27 { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0 }, 27 { 0xffffffff, 0x00030201, "Au1000 HA", 1, 0, 1 },
28 { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0 }, 28 { 0xffffffff, 0x00030202, "Au1000 HB", 1, 0, 1 },
29 { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1 }, 29 { 0xffffffff, 0x00030203, "Au1000 HC", 1, 1, 0 },
30 { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1 }, 30 { 0xffffffff, 0x00030204, "Au1000 HD", 1, 1, 0 },
31 { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1 }, 31 { 0xffffffff, 0x01030200, "Au1500 AB", 1, 1, 0 },
32 { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1 }, 32 { 0xffffffff, 0x01030201, "Au1500 AC", 0, 1, 0 },
33 { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1 }, 33 { 0xffffffff, 0x01030202, "Au1500 AD", 0, 1, 0 },
34 { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1 }, 34 { 0xffffffff, 0x02030200, "Au1100 AB", 1, 1, 0 },
35 { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1 }, 35 { 0xffffffff, 0x02030201, "Au1100 BA", 1, 1, 0 },
36 { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1 }, 36 { 0xffffffff, 0x02030202, "Au1100 BC", 1, 1, 0 },
37 { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1 }, 37 { 0xffffffff, 0x02030203, "Au1100 BD", 0, 1, 0 },
38 { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1 }, 38 { 0xffffffff, 0x02030204, "Au1100 BE", 0, 1, 0 },
39 { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1 }, 39 { 0xffffffff, 0x03030200, "Au1550 AA", 0, 1, 0 },
40 { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0 }, 40 { 0xffffffff, 0x04030200, "Au1200 AB", 0, 0, 0 },
41 { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0 }, 41 { 0xffffffff, 0x04030201, "Au1200 AC", 1, 0, 0 },
42 { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0 }, 42 { 0x00000000, 0x00000000, "Unknown Au1xxx", 1, 0, 0 }
43}; 43};
44 44
45void 45void
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c
index d885e3848ec6..9e4ab80caab6 100644
--- a/arch/mips/au1000/common/setup.c
+++ b/arch/mips/au1000/common/setup.c
@@ -57,7 +57,7 @@ void __init plat_mem_setup(void)
57{ 57{
58 struct cpu_spec *sp; 58 struct cpu_spec *sp;
59 char *argptr; 59 char *argptr;
60 unsigned long prid, cpupll, bclk = 1; 60 unsigned long prid, cpufreq, bclk = 1;
61 61
62 set_cpuspec(); 62 set_cpuspec();
63 sp = cur_cpu_spec[0]; 63 sp = cur_cpu_spec[0];
@@ -65,8 +65,15 @@ void __init plat_mem_setup(void)
65 board_setup(); /* board specific setup */ 65 board_setup(); /* board specific setup */
66 66
67 prid = read_c0_prid(); 67 prid = read_c0_prid();
68 cpupll = (au_readl(0xB1900060) & 0x3F) * 12; 68 if (sp->cpu_pll_wo)
69 printk("(PRId %08lx) @ %ldMHZ\n", prid, cpupll); 69#ifdef CONFIG_SOC_AU1000_FREQUENCY
70 cpufreq = CONFIG_SOC_AU1000_FREQUENCY / 1000000;
71#else
72 cpufreq = 396;
73#endif
74 else
75 cpufreq = (au_readl(SYS_CPUPLL) & 0x3F) * 12;
76 printk(KERN_INFO "(PRID %08lx) @ %ld MHz\n", prid, cpufreq);
70 77
71 bclk = sp->cpu_bclk; 78 bclk = sp->cpu_bclk;
72 if (bclk) 79 if (bclk)
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c
index f113b512d7b1..e122bbc6cd88 100644
--- a/arch/mips/au1000/common/time.c
+++ b/arch/mips/au1000/common/time.c
@@ -209,18 +209,22 @@ unsigned long cal_r4koff(void)
209 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); 209 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S);
210 au_writel(0, SYS_TOYWRITE); 210 au_writel(0, SYS_TOYWRITE);
211 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); 211 while (au_readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S);
212 } else
213 no_au1xxx_32khz = 1;
212 214
213 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * 215 /*
214 AU1000_SRC_CLK; 216 * On early Au1000, sys_cpupll was write-only. Since these
215 } 217 * silicon versions of Au1000 are not sold by AMD, we don't bend
216 else { 218 * over backwards trying to determine the frequency.
217 /* The 32KHz oscillator isn't running, so assume there 219 */
218 * isn't one and grab the processor speed from the PLL. 220 if (cur_cpu_spec[0]->cpu_pll_wo)
219 * NOTE: some old silicon doesn't allow reading the PLL. 221#ifdef CONFIG_SOC_AU1000_FREQUENCY
220 */ 222 cpu_speed = CONFIG_SOC_AU1000_FREQUENCY;
223#else
224 cpu_speed = 396000000;
225#endif
226 else
221 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK; 227 cpu_speed = (au_readl(SYS_CPUPLL) & 0x0000003f) * AU1000_SRC_CLK;
222 no_au1xxx_32khz = 1;
223 }
224 mips_hpt_frequency = cpu_speed; 228 mips_hpt_frequency = cpu_speed;
225 // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16) 229 // Equation: Baudrate = CPU / (SD * 2 * CLKDIV * 16)
226 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16)); 230 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2) * 16));
diff --git a/arch/mips/au1000/xxs1500/board_setup.c b/arch/mips/au1000/xxs1500/board_setup.c
index a9237f41933d..b2e413e597a8 100644
--- a/arch/mips/au1000/xxs1500/board_setup.c
+++ b/arch/mips/au1000/xxs1500/board_setup.c
@@ -33,11 +33,10 @@
33#include <asm/cpu.h> 33#include <asm/cpu.h>
34#include <asm/bootinfo.h> 34#include <asm/bootinfo.h>
35#include <asm/irq.h> 35#include <asm/irq.h>
36#include <asm/keyboard.h>
37#include <asm/mipsregs.h> 36#include <asm/mipsregs.h>
38#include <asm/reboot.h> 37#include <asm/reboot.h>
39#include <asm/pgtable.h> 38#include <asm/pgtable.h>
40#include <asm/au1000.h> 39#include <asm/mach-au1x00/au1000.h>
41 40
42void board_reset(void) 41void board_reset(void)
43{ 42{
diff --git a/arch/mips/au1000/xxs1500/irqmap.c b/arch/mips/au1000/xxs1500/irqmap.c
index 389349295d70..a343da134334 100644
--- a/arch/mips/au1000/xxs1500/irqmap.c
+++ b/arch/mips/au1000/xxs1500/irqmap.c
@@ -45,7 +45,7 @@
45#include <asm/io.h> 45#include <asm/io.h>
46#include <asm/mipsregs.h> 46#include <asm/mipsregs.h>
47#include <asm/system.h> 47#include <asm/system.h>
48#include <asm/au1000.h> 48#include <asm/mach-au1x00/au1000.h>
49 49
50struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { 50struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
51 { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0}, 51 { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index abf70d74e9d7..3b42cea2e402 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_defconfig
@@ -1,58 +1,48 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.25-rc7
4# Tue Feb 20 21:47:22 2007 4# Mon Mar 31 08:11:19 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_MIPS_MTX1 is not set
13# CONFIG_MIPS_BOSPORUS is not set
14# CONFIG_MIPS_PB1000 is not set
15# CONFIG_MIPS_PB1100 is not set
16# CONFIG_MIPS_PB1500 is not set
17# CONFIG_MIPS_PB1550 is not set
18# CONFIG_MIPS_PB1200 is not set
19# CONFIG_MIPS_DB1000 is not set
20# CONFIG_MIPS_DB1100 is not set
21# CONFIG_MIPS_DB1500 is not set
22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
26# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set
29# CONFIG_MIPS_ATLAS is not set 19# CONFIG_MIPS_ATLAS is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_MIPS_SEAD is not set 21# CONFIG_MIPS_SEAD is not set
32# CONFIG_WR_PPMC is not set
33# CONFIG_MIPS_SIM is not set 22# CONFIG_MIPS_SIM is not set
34# CONFIG_MOMENCO_JAGUAR_ATX is not set 23# CONFIG_MARKEINS is not set
35# CONFIG_MIPS_XXS1500 is not set 24# CONFIG_MACH_VR41XX is not set
36# CONFIG_PNX8550_JBS is not set 25# CONFIG_PNX8550_JBS is not set
37# CONFIG_PNX8550_STB810 is not set 26# CONFIG_PNX8550_STB810 is not set
38# CONFIG_MACH_VR41XX is not set 27# CONFIG_PMC_MSP is not set
39# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
40# CONFIG_MARKEINS is not set
41# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
42# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
43# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
44CONFIG_SIBYTE_BIGSUR=y
45# CONFIG_SIBYTE_SWARM is not set
46# CONFIG_SIBYTE_SENTOSA is not set
47# CONFIG_SIBYTE_RHONE is not set
48# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_LITTLESUR is not set
50# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
51# CONFIG_SIBYTE_CRHONE is not set 35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37# CONFIG_SIBYTE_SWARM is not set
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40CONFIG_SIBYTE_BIGSUR=y
52# CONFIG_SNI_RM is not set 41# CONFIG_SNI_RM is not set
53# CONFIG_TOSHIBA_JMR3927 is not set 42# CONFIG_TOSHIBA_JMR3927 is not set
54# CONFIG_TOSHIBA_RBTX4927 is not set 43# CONFIG_TOSHIBA_RBTX4927 is not set
55# CONFIG_TOSHIBA_RBTX4938 is not set 44# CONFIG_TOSHIBA_RBTX4938 is not set
45# CONFIG_WR_PPMC is not set
56CONFIG_SIBYTE_BCM1x80=y 46CONFIG_SIBYTE_BCM1x80=y
57CONFIG_SIBYTE_SB1xxx_SOC=y 47CONFIG_SIBYTE_SB1xxx_SOC=y
58# CONFIG_CPU_SB1_PASS_1 is not set 48# CONFIG_CPU_SB1_PASS_1 is not set
@@ -68,9 +58,11 @@ CONFIG_SIBYTE_CFE=y
68# CONFIG_SIBYTE_CFE_CONSOLE is not set 58# CONFIG_SIBYTE_CFE_CONSOLE is not set
69# CONFIG_SIBYTE_BUS_WATCHER is not set 59# CONFIG_SIBYTE_BUS_WATCHER is not set
70# CONFIG_SIBYTE_TBPROF is not set 60# CONFIG_SIBYTE_TBPROF is not set
61CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y
71CONFIG_RWSEM_GENERIC_SPINLOCK=y 62CONFIG_RWSEM_GENERIC_SPINLOCK=y
72# CONFIG_ARCH_HAS_ILOG2_U32 is not set 63# CONFIG_ARCH_HAS_ILOG2_U32 is not set
73# CONFIG_ARCH_HAS_ILOG2_U64 is not set 64# CONFIG_ARCH_HAS_ILOG2_U64 is not set
65CONFIG_ARCH_SUPPORTS_OPROFILE=y
74CONFIG_GENERIC_FIND_NEXT_BIT=y 66CONFIG_GENERIC_FIND_NEXT_BIT=y
75CONFIG_GENERIC_HWEIGHT=y 67CONFIG_GENERIC_HWEIGHT=y
76CONFIG_GENERIC_CALIBRATE_DELAY=y 68CONFIG_GENERIC_CALIBRATE_DELAY=y
@@ -81,11 +73,17 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
81# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 73# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
82CONFIG_CEVT_BCM1480=y 74CONFIG_CEVT_BCM1480=y
83CONFIG_CSRC_BCM1480=y 75CONFIG_CSRC_BCM1480=y
76CONFIG_CFE=y
84CONFIG_DMA_COHERENT=y 77CONFIG_DMA_COHERENT=y
78CONFIG_EARLY_PRINTK=y
79CONFIG_SYS_HAS_EARLY_PRINTK=y
80# CONFIG_HOTPLUG_CPU is not set
81# CONFIG_NO_IOPORT is not set
85CONFIG_CPU_BIG_ENDIAN=y 82CONFIG_CPU_BIG_ENDIAN=y
86# CONFIG_CPU_LITTLE_ENDIAN is not set 83# CONFIG_CPU_LITTLE_ENDIAN is not set
87CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 84CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
88CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 85CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
86CONFIG_IRQ_CPU=y
89CONFIG_SWAP_IO_SPACE=y 87CONFIG_SWAP_IO_SPACE=y
90CONFIG_BOOT_ELF32=y 88CONFIG_BOOT_ELF32=y
91CONFIG_MIPS_L1_CACHE_SHIFT=5 89CONFIG_MIPS_L1_CACHE_SHIFT=5
@@ -93,10 +91,6 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
93# 91#
94# CPU selection 92# CPU selection
95# 93#
96CONFIG_TICK_ONESHOT=y
97CONFIG_NO_HZ=y
98CONFIG_HIGH_RES_TIMERS=y
99CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
100# CONFIG_CPU_LOONGSON2 is not set 94# CONFIG_CPU_LOONGSON2 is not set
101# CONFIG_CPU_MIPS32_R1 is not set 95# CONFIG_CPU_MIPS32_R1 is not set
102# CONFIG_CPU_MIPS32_R2 is not set 96# CONFIG_CPU_MIPS32_R2 is not set
@@ -137,14 +131,15 @@ CONFIG_PAGE_SIZE_4KB=y
137CONFIG_MIPS_MT_DISABLED=y 131CONFIG_MIPS_MT_DISABLED=y
138# CONFIG_MIPS_MT_SMP is not set 132# CONFIG_MIPS_MT_SMP is not set
139# CONFIG_MIPS_MT_SMTC is not set 133# CONFIG_MIPS_MT_SMTC is not set
140# CONFIG_MIPS_VPE_LOADER is not set
141CONFIG_CPU_HAS_LLSC=y 134CONFIG_CPU_HAS_LLSC=y
142CONFIG_CPU_HAS_SYNC=y 135CONFIG_CPU_HAS_SYNC=y
143CONFIG_GENERIC_HARDIRQS=y 136CONFIG_GENERIC_HARDIRQS=y
144CONFIG_GENERIC_IRQ_PROBE=y 137CONFIG_GENERIC_IRQ_PROBE=y
145CONFIG_IRQ_PER_CPU=y 138CONFIG_IRQ_PER_CPU=y
146CONFIG_CPU_SUPPORTS_HIGHMEM=y 139CONFIG_CPU_SUPPORTS_HIGHMEM=y
140CONFIG_SYS_SUPPORTS_HIGHMEM=y
147CONFIG_ARCH_FLATMEM_ENABLE=y 141CONFIG_ARCH_FLATMEM_ENABLE=y
142CONFIG_ARCH_POPULATES_NODE_MAP=y
148CONFIG_SELECT_MEMORY_MODEL=y 143CONFIG_SELECT_MEMORY_MODEL=y
149CONFIG_FLATMEM_MANUAL=y 144CONFIG_FLATMEM_MANUAL=y
150# CONFIG_DISCONTIGMEM_MANUAL is not set 145# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -152,13 +147,19 @@ CONFIG_FLATMEM_MANUAL=y
152CONFIG_FLATMEM=y 147CONFIG_FLATMEM=y
153CONFIG_FLAT_NODE_MEM_MAP=y 148CONFIG_FLAT_NODE_MEM_MAP=y
154# CONFIG_SPARSEMEM_STATIC is not set 149# CONFIG_SPARSEMEM_STATIC is not set
150# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
155CONFIG_SPLIT_PTLOCK_CPUS=4 151CONFIG_SPLIT_PTLOCK_CPUS=4
156CONFIG_RESOURCES_64BIT=y 152CONFIG_RESOURCES_64BIT=y
157CONFIG_ZONE_DMA_FLAG=1 153CONFIG_ZONE_DMA_FLAG=0
154CONFIG_VIRT_TO_BUS=y
158CONFIG_SMP=y 155CONFIG_SMP=y
159CONFIG_SYS_SUPPORTS_SMP=y 156CONFIG_SYS_SUPPORTS_SMP=y
160CONFIG_NR_CPUS_DEFAULT_4=y 157CONFIG_NR_CPUS_DEFAULT_4=y
161CONFIG_NR_CPUS=4 158CONFIG_NR_CPUS=4
159CONFIG_TICK_ONESHOT=y
160CONFIG_NO_HZ=y
161CONFIG_HIGH_RES_TIMERS=y
162CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
162# CONFIG_HZ_48 is not set 163# CONFIG_HZ_48 is not set
163# CONFIG_HZ_100 is not set 164# CONFIG_HZ_100 is not set
164# CONFIG_HZ_128 is not set 165# CONFIG_HZ_128 is not set
@@ -171,38 +172,45 @@ CONFIG_HZ=1000
171CONFIG_PREEMPT_NONE=y 172CONFIG_PREEMPT_NONE=y
172# CONFIG_PREEMPT_VOLUNTARY is not set 173# CONFIG_PREEMPT_VOLUNTARY is not set
173# CONFIG_PREEMPT is not set 174# CONFIG_PREEMPT is not set
174# CONFIG_PREEMPT_BKL is not set
175# CONFIG_KEXEC is not set 175# CONFIG_KEXEC is not set
176CONFIG_SECCOMP=y
176CONFIG_LOCKDEP_SUPPORT=y 177CONFIG_LOCKDEP_SUPPORT=y
177CONFIG_STACKTRACE_SUPPORT=y 178CONFIG_STACKTRACE_SUPPORT=y
178CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 179CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
179 180
180# 181#
181# Code maturity level options 182# General setup
182# 183#
183CONFIG_EXPERIMENTAL=y 184CONFIG_EXPERIMENTAL=y
184CONFIG_LOCK_KERNEL=y 185CONFIG_LOCK_KERNEL=y
185CONFIG_INIT_ENV_ARG_LIMIT=32 186CONFIG_INIT_ENV_ARG_LIMIT=32
186
187#
188# General setup
189#
190CONFIG_LOCALVERSION="" 187CONFIG_LOCALVERSION=""
191CONFIG_LOCALVERSION_AUTO=y 188CONFIG_LOCALVERSION_AUTO=y
192CONFIG_SWAP=y 189CONFIG_SWAP=y
193CONFIG_SYSVIPC=y 190CONFIG_SYSVIPC=y
194# CONFIG_IPC_NS is not set
195CONFIG_SYSVIPC_SYSCTL=y 191CONFIG_SYSVIPC_SYSCTL=y
196# CONFIG_POSIX_MQUEUE is not set 192CONFIG_POSIX_MQUEUE=y
197# CONFIG_BSD_PROCESS_ACCT is not set 193CONFIG_BSD_PROCESS_ACCT=y
198# CONFIG_TASKSTATS is not set 194CONFIG_BSD_PROCESS_ACCT_V3=y
199# CONFIG_UTS_NS is not set 195CONFIG_TASKSTATS=y
200# CONFIG_AUDIT is not set 196CONFIG_TASK_DELAY_ACCT=y
197CONFIG_TASK_XACCT=y
198CONFIG_TASK_IO_ACCOUNTING=y
199CONFIG_AUDIT=y
201CONFIG_IKCONFIG=y 200CONFIG_IKCONFIG=y
202CONFIG_IKCONFIG_PROC=y 201CONFIG_IKCONFIG_PROC=y
203# CONFIG_CPUSETS is not set 202CONFIG_LOG_BUF_SHIFT=16
203# CONFIG_CGROUPS is not set
204CONFIG_GROUP_SCHED=y
205CONFIG_FAIR_GROUP_SCHED=y
206# CONFIG_RT_GROUP_SCHED is not set
207CONFIG_USER_SCHED=y
208# CONFIG_CGROUP_SCHED is not set
204CONFIG_SYSFS_DEPRECATED=y 209CONFIG_SYSFS_DEPRECATED=y
205# CONFIG_RELAY is not set 210CONFIG_SYSFS_DEPRECATED_V2=y
211CONFIG_RELAY=y
212# CONFIG_NAMESPACES is not set
213CONFIG_BLK_DEV_INITRD=y
206CONFIG_INITRAMFS_SOURCE="" 214CONFIG_INITRAMFS_SOURCE=""
207# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 215# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
208CONFIG_SYSCTL=y 216CONFIG_SYSCTL=y
@@ -211,24 +219,33 @@ CONFIG_EMBEDDED=y
211CONFIG_KALLSYMS=y 219CONFIG_KALLSYMS=y
212# CONFIG_KALLSYMS_ALL is not set 220# CONFIG_KALLSYMS_ALL is not set
213# CONFIG_KALLSYMS_EXTRA_PASS is not set 221# CONFIG_KALLSYMS_EXTRA_PASS is not set
214# CONFIG_HOTPLUG is not set 222CONFIG_HOTPLUG=y
215CONFIG_PRINTK=y 223CONFIG_PRINTK=y
216CONFIG_BUG=y 224CONFIG_BUG=y
217CONFIG_ELF_CORE=y 225CONFIG_ELF_CORE=y
226CONFIG_COMPAT_BRK=y
218CONFIG_BASE_FULL=y 227CONFIG_BASE_FULL=y
219CONFIG_FUTEX=y 228CONFIG_FUTEX=y
229CONFIG_ANON_INODES=y
220CONFIG_EPOLL=y 230CONFIG_EPOLL=y
231CONFIG_SIGNALFD=y
232CONFIG_TIMERFD=y
233CONFIG_EVENTFD=y
221CONFIG_SHMEM=y 234CONFIG_SHMEM=y
222CONFIG_SLAB=y
223CONFIG_VM_EVENT_COUNTERS=y 235CONFIG_VM_EVENT_COUNTERS=y
236CONFIG_SLAB=y
237# CONFIG_SLUB is not set
238# CONFIG_SLOB is not set
239# CONFIG_PROFILING is not set
240# CONFIG_MARKERS is not set
241CONFIG_HAVE_OPROFILE=y
242# CONFIG_HAVE_KPROBES is not set
243# CONFIG_HAVE_KRETPROBES is not set
244CONFIG_PROC_PAGE_MONITOR=y
245CONFIG_SLABINFO=y
224CONFIG_RT_MUTEXES=y 246CONFIG_RT_MUTEXES=y
225# CONFIG_TINY_SHMEM is not set 247# CONFIG_TINY_SHMEM is not set
226CONFIG_BASE_SMALL=0 248CONFIG_BASE_SMALL=0
227# CONFIG_SLOB is not set
228
229#
230# Loadable module support
231#
232CONFIG_MODULES=y 249CONFIG_MODULES=y
233CONFIG_MODULE_UNLOAD=y 250CONFIG_MODULE_UNLOAD=y
234# CONFIG_MODULE_FORCE_UNLOAD is not set 251# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -236,12 +253,10 @@ CONFIG_MODVERSIONS=y
236CONFIG_MODULE_SRCVERSION_ALL=y 253CONFIG_MODULE_SRCVERSION_ALL=y
237CONFIG_KMOD=y 254CONFIG_KMOD=y
238CONFIG_STOP_MACHINE=y 255CONFIG_STOP_MACHINE=y
239
240#
241# Block layer
242#
243CONFIG_BLOCK=y 256CONFIG_BLOCK=y
244# CONFIG_BLK_DEV_IO_TRACE is not set 257# CONFIG_BLK_DEV_IO_TRACE is not set
258# CONFIG_BLK_DEV_BSG is not set
259CONFIG_BLOCK_COMPAT=y
245 260
246# 261#
247# IO Schedulers 262# IO Schedulers
@@ -255,6 +270,7 @@ CONFIG_DEFAULT_AS=y
255# CONFIG_DEFAULT_CFQ is not set 270# CONFIG_DEFAULT_CFQ is not set
256# CONFIG_DEFAULT_NOOP is not set 271# CONFIG_DEFAULT_NOOP is not set
257CONFIG_DEFAULT_IOSCHED="anticipatory" 272CONFIG_DEFAULT_IOSCHED="anticipatory"
273CONFIG_CLASSIC_RCU=y
258 274
259# 275#
260# Bus options (PCI, PCMCIA, EISA, ISA, TC) 276# Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -262,23 +278,19 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
262CONFIG_HW_HAS_PCI=y 278CONFIG_HW_HAS_PCI=y
263CONFIG_PCI=y 279CONFIG_PCI=y
264CONFIG_PCI_DOMAINS=y 280CONFIG_PCI_DOMAINS=y
281# CONFIG_ARCH_SUPPORTS_MSI is not set
282CONFIG_PCI_LEGACY=y
265CONFIG_PCI_DEBUG=y 283CONFIG_PCI_DEBUG=y
266CONFIG_MMU=y 284CONFIG_MMU=y
267 285CONFIG_ZONE_DMA32=y
268# 286# CONFIG_PCCARD is not set
269# PCCARD (PCMCIA/CardBus) support 287# CONFIG_HOTPLUG_PCI is not set
270#
271
272#
273# PCI Hotplug Support
274#
275 288
276# 289#
277# Executable file formats 290# Executable file formats
278# 291#
279CONFIG_BINFMT_ELF=y 292CONFIG_BINFMT_ELF=y
280# CONFIG_BINFMT_MISC is not set 293# CONFIG_BINFMT_MISC is not set
281# CONFIG_BUILD_ELF64 is not set
282CONFIG_MIPS32_COMPAT=y 294CONFIG_MIPS32_COMPAT=y
283CONFIG_COMPAT=y 295CONFIG_COMPAT=y
284CONFIG_SYSVIPC_COMPAT=y 296CONFIG_SYSVIPC_COMPAT=y
@@ -292,7 +304,6 @@ CONFIG_BINFMT_ELF32=y
292CONFIG_PM=y 304CONFIG_PM=y
293# CONFIG_PM_LEGACY is not set 305# CONFIG_PM_LEGACY is not set
294# CONFIG_PM_DEBUG is not set 306# CONFIG_PM_DEBUG is not set
295# CONFIG_PM_SYSFS_DEPRECATED is not set
296 307
297# 308#
298# Networking 309# Networking
@@ -302,7 +313,6 @@ CONFIG_NET=y
302# 313#
303# Networking options 314# Networking options
304# 315#
305# CONFIG_NETDEBUG is not set
306CONFIG_PACKET=y 316CONFIG_PACKET=y
307CONFIG_PACKET_MMAP=y 317CONFIG_PACKET_MMAP=y
308CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -310,10 +320,11 @@ CONFIG_XFRM=y
310CONFIG_XFRM_USER=m 320CONFIG_XFRM_USER=m
311# CONFIG_XFRM_SUB_POLICY is not set 321# CONFIG_XFRM_SUB_POLICY is not set
312CONFIG_XFRM_MIGRATE=y 322CONFIG_XFRM_MIGRATE=y
323# CONFIG_XFRM_STATISTICS is not set
313CONFIG_NET_KEY=y 324CONFIG_NET_KEY=y
314CONFIG_NET_KEY_MIGRATE=y 325CONFIG_NET_KEY_MIGRATE=y
315CONFIG_INET=y 326CONFIG_INET=y
316# CONFIG_IP_MULTICAST is not set 327CONFIG_IP_MULTICAST=y
317# CONFIG_IP_ADVANCED_ROUTER is not set 328# CONFIG_IP_ADVANCED_ROUTER is not set
318CONFIG_IP_FIB_HASH=y 329CONFIG_IP_FIB_HASH=y
319CONFIG_IP_PNP=y 330CONFIG_IP_PNP=y
@@ -322,41 +333,141 @@ CONFIG_IP_PNP_BOOTP=y
322# CONFIG_IP_PNP_RARP is not set 333# CONFIG_IP_PNP_RARP is not set
323# CONFIG_NET_IPIP is not set 334# CONFIG_NET_IPIP is not set
324# CONFIG_NET_IPGRE is not set 335# CONFIG_NET_IPGRE is not set
336CONFIG_IP_MROUTE=y
337CONFIG_IP_PIMSM_V1=y
338CONFIG_IP_PIMSM_V2=y
325# CONFIG_ARPD is not set 339# CONFIG_ARPD is not set
326# CONFIG_SYN_COOKIES is not set 340# CONFIG_SYN_COOKIES is not set
327# CONFIG_INET_AH is not set 341CONFIG_INET_AH=m
328# CONFIG_INET_ESP is not set 342CONFIG_INET_ESP=m
329# CONFIG_INET_IPCOMP is not set 343CONFIG_INET_IPCOMP=m
330# CONFIG_INET_XFRM_TUNNEL is not set 344CONFIG_INET_XFRM_TUNNEL=m
331# CONFIG_INET_TUNNEL is not set 345CONFIG_INET_TUNNEL=m
332CONFIG_INET_XFRM_MODE_TRANSPORT=m 346CONFIG_INET_XFRM_MODE_TRANSPORT=m
333CONFIG_INET_XFRM_MODE_TUNNEL=m 347CONFIG_INET_XFRM_MODE_TUNNEL=m
334CONFIG_INET_XFRM_MODE_BEET=y 348CONFIG_INET_XFRM_MODE_BEET=y
349# CONFIG_INET_LRO is not set
335CONFIG_INET_DIAG=y 350CONFIG_INET_DIAG=y
336CONFIG_INET_TCP_DIAG=y 351CONFIG_INET_TCP_DIAG=y
337# CONFIG_TCP_CONG_ADVANCED is not set 352# CONFIG_TCP_CONG_ADVANCED is not set
338CONFIG_TCP_CONG_CUBIC=y 353CONFIG_TCP_CONG_CUBIC=y
339CONFIG_DEFAULT_TCP_CONG="cubic" 354CONFIG_DEFAULT_TCP_CONG="cubic"
340CONFIG_TCP_MD5SIG=y 355CONFIG_TCP_MD5SIG=y
341# CONFIG_IPV6 is not set 356CONFIG_IP_VS=m
342# CONFIG_INET6_XFRM_TUNNEL is not set 357# CONFIG_IP_VS_DEBUG is not set
343# CONFIG_INET6_TUNNEL is not set 358CONFIG_IP_VS_TAB_BITS=12
359
360#
361# IPVS transport protocol load balancing support
362#
363CONFIG_IP_VS_PROTO_TCP=y
364CONFIG_IP_VS_PROTO_UDP=y
365CONFIG_IP_VS_PROTO_ESP=y
366CONFIG_IP_VS_PROTO_AH=y
367
368#
369# IPVS scheduler
370#
371CONFIG_IP_VS_RR=m
372CONFIG_IP_VS_WRR=m
373CONFIG_IP_VS_LC=m
374CONFIG_IP_VS_WLC=m
375CONFIG_IP_VS_LBLC=m
376CONFIG_IP_VS_LBLCR=m
377CONFIG_IP_VS_DH=m
378CONFIG_IP_VS_SH=m
379CONFIG_IP_VS_SED=m
380CONFIG_IP_VS_NQ=m
381
382#
383# IPVS application helper
384#
385CONFIG_IP_VS_FTP=m
386CONFIG_IPV6=m
387CONFIG_IPV6_PRIVACY=y
388CONFIG_IPV6_ROUTER_PREF=y
389CONFIG_IPV6_ROUTE_INFO=y
390CONFIG_IPV6_OPTIMISTIC_DAD=y
391CONFIG_INET6_AH=m
392CONFIG_INET6_ESP=m
393CONFIG_INET6_IPCOMP=m
394CONFIG_IPV6_MIP6=m
395CONFIG_INET6_XFRM_TUNNEL=m
396CONFIG_INET6_TUNNEL=m
397CONFIG_INET6_XFRM_MODE_TRANSPORT=m
398CONFIG_INET6_XFRM_MODE_TUNNEL=m
399CONFIG_INET6_XFRM_MODE_BEET=m
400CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
401CONFIG_IPV6_SIT=m
402CONFIG_IPV6_TUNNEL=m
403CONFIG_IPV6_MULTIPLE_TABLES=y
404CONFIG_IPV6_SUBTREES=y
344CONFIG_NETWORK_SECMARK=y 405CONFIG_NETWORK_SECMARK=y
345# CONFIG_NETFILTER is not set 406CONFIG_NETFILTER=y
346 407# CONFIG_NETFILTER_DEBUG is not set
347# 408# CONFIG_NETFILTER_ADVANCED is not set
348# DCCP Configuration (EXPERIMENTAL) 409
349# 410#
411# Core Netfilter Configuration
412#
413CONFIG_NETFILTER_NETLINK=m
414CONFIG_NETFILTER_NETLINK_LOG=m
415CONFIG_NF_CONNTRACK=m
416CONFIG_NF_CONNTRACK_SECMARK=y
417CONFIG_NF_CONNTRACK_FTP=m
418CONFIG_NF_CONNTRACK_IRC=m
419CONFIG_NF_CONNTRACK_SIP=m
420CONFIG_NF_CT_NETLINK=m
421CONFIG_NETFILTER_XTABLES=m
422CONFIG_NETFILTER_XT_TARGET_MARK=m
423CONFIG_NETFILTER_XT_TARGET_NFLOG=m
424CONFIG_NETFILTER_XT_TARGET_SECMARK=m
425CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
426CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
427CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
428CONFIG_NETFILTER_XT_MATCH_MARK=m
429CONFIG_NETFILTER_XT_MATCH_POLICY=m
430CONFIG_NETFILTER_XT_MATCH_STATE=m
431
432#
433# IP: Netfilter Configuration
434#
435CONFIG_NF_CONNTRACK_IPV4=m
436CONFIG_NF_CONNTRACK_PROC_COMPAT=y
437CONFIG_IP_NF_IPTABLES=m
438CONFIG_IP_NF_FILTER=m
439CONFIG_IP_NF_TARGET_REJECT=m
440CONFIG_IP_NF_TARGET_LOG=m
441CONFIG_IP_NF_TARGET_ULOG=m
442CONFIG_NF_NAT=m
443CONFIG_NF_NAT_NEEDED=y
444CONFIG_IP_NF_TARGET_MASQUERADE=m
445CONFIG_NF_NAT_FTP=m
446CONFIG_NF_NAT_IRC=m
447# CONFIG_NF_NAT_TFTP is not set
448# CONFIG_NF_NAT_AMANDA is not set
449# CONFIG_NF_NAT_PPTP is not set
450# CONFIG_NF_NAT_H323 is not set
451CONFIG_NF_NAT_SIP=m
452CONFIG_IP_NF_MANGLE=m
453
454#
455# IPv6: Netfilter Configuration
456#
457CONFIG_NF_CONNTRACK_IPV6=m
458CONFIG_IP6_NF_IPTABLES=m
459CONFIG_IP6_NF_MATCH_IPV6HEADER=m
460CONFIG_IP6_NF_FILTER=m
461CONFIG_IP6_NF_TARGET_LOG=m
462CONFIG_IP6_NF_TARGET_REJECT=m
463CONFIG_IP6_NF_MANGLE=m
350# CONFIG_IP_DCCP is not set 464# CONFIG_IP_DCCP is not set
351 465CONFIG_IP_SCTP=m
352# 466# CONFIG_SCTP_DBG_MSG is not set
353# SCTP Configuration (EXPERIMENTAL) 467# CONFIG_SCTP_DBG_OBJCNT is not set
354# 468# CONFIG_SCTP_HMAC_NONE is not set
355# CONFIG_IP_SCTP is not set 469# CONFIG_SCTP_HMAC_SHA1 is not set
356 470CONFIG_SCTP_HMAC_MD5=y
357#
358# TIPC Configuration (EXPERIMENTAL)
359#
360# CONFIG_TIPC is not set 471# CONFIG_TIPC is not set
361# CONFIG_ATM is not set 472# CONFIG_ATM is not set
362# CONFIG_BRIDGE is not set 473# CONFIG_BRIDGE is not set
@@ -369,10 +480,6 @@ CONFIG_NETWORK_SECMARK=y
369# CONFIG_LAPB is not set 480# CONFIG_LAPB is not set
370# CONFIG_ECONET is not set 481# CONFIG_ECONET is not set
371# CONFIG_WAN_ROUTER is not set 482# CONFIG_WAN_ROUTER is not set
372
373#
374# QoS and/or fair queueing
375#
376# CONFIG_NET_SCHED is not set 483# CONFIG_NET_SCHED is not set
377 484
378# 485#
@@ -380,9 +487,21 @@ CONFIG_NETWORK_SECMARK=y
380# 487#
381# CONFIG_NET_PKTGEN is not set 488# CONFIG_NET_PKTGEN is not set
382# CONFIG_HAMRADIO is not set 489# CONFIG_HAMRADIO is not set
490# CONFIG_CAN is not set
383# CONFIG_IRDA is not set 491# CONFIG_IRDA is not set
384# CONFIG_BT is not set 492# CONFIG_BT is not set
493# CONFIG_AF_RXRPC is not set
494CONFIG_FIB_RULES=y
495
496#
497# Wireless
498#
499# CONFIG_CFG80211 is not set
500# CONFIG_WIRELESS_EXT is not set
501# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set 502# CONFIG_IEEE80211 is not set
503# CONFIG_RFKILL is not set
504# CONFIG_NET_9P is not set
386 505
387# 506#
388# Device Drivers 507# Device Drivers
@@ -391,85 +510,70 @@ CONFIG_NETWORK_SECMARK=y
391# 510#
392# Generic Driver Options 511# Generic Driver Options
393# 512#
513CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
394CONFIG_STANDALONE=y 514CONFIG_STANDALONE=y
395CONFIG_PREVENT_FIRMWARE_BUILD=y 515CONFIG_PREVENT_FIRMWARE_BUILD=y
516CONFIG_FW_LOADER=m
396# CONFIG_DEBUG_DRIVER is not set 517# CONFIG_DEBUG_DRIVER is not set
397# CONFIG_DEBUG_DEVRES is not set 518# CONFIG_DEBUG_DEVRES is not set
398# CONFIG_SYS_HYPERVISOR is not set 519# CONFIG_SYS_HYPERVISOR is not set
399
400#
401# Connector - unified userspace <-> kernelspace linker
402#
403# CONFIG_CONNECTOR is not set 520# CONFIG_CONNECTOR is not set
404
405#
406# Memory Technology Devices (MTD)
407#
408# CONFIG_MTD is not set 521# CONFIG_MTD is not set
409
410#
411# Parallel port support
412#
413# CONFIG_PARPORT is not set 522# CONFIG_PARPORT is not set
414 523CONFIG_BLK_DEV=y
415#
416# Plug and Play support
417#
418# CONFIG_PNPACPI is not set
419
420#
421# Block devices
422#
423# CONFIG_BLK_CPQ_DA is not set 524# CONFIG_BLK_CPQ_DA is not set
424# CONFIG_BLK_CPQ_CISS_DA is not set 525# CONFIG_BLK_CPQ_CISS_DA is not set
425# CONFIG_BLK_DEV_DAC960 is not set 526# CONFIG_BLK_DEV_DAC960 is not set
426# CONFIG_BLK_DEV_UMEM is not set 527# CONFIG_BLK_DEV_UMEM is not set
427# CONFIG_BLK_DEV_COW_COMMON is not set 528# CONFIG_BLK_DEV_COW_COMMON is not set
428CONFIG_BLK_DEV_LOOP=m 529CONFIG_BLK_DEV_LOOP=m
429# CONFIG_BLK_DEV_CRYPTOLOOP is not set 530CONFIG_BLK_DEV_CRYPTOLOOP=m
430CONFIG_BLK_DEV_NBD=m 531CONFIG_BLK_DEV_NBD=m
431# CONFIG_BLK_DEV_SX8 is not set 532# CONFIG_BLK_DEV_SX8 is not set
432# CONFIG_BLK_DEV_RAM is not set 533# CONFIG_BLK_DEV_RAM is not set
433CONFIG_BLK_DEV_INITRD=y
434# CONFIG_CDROM_PKTCDVD is not set 534# CONFIG_CDROM_PKTCDVD is not set
435# CONFIG_ATA_OVER_ETH is not set 535# CONFIG_ATA_OVER_ETH is not set
436 536CONFIG_MISC_DEVICES=y
437# 537# CONFIG_PHANTOM is not set
438# Misc devices 538# CONFIG_EEPROM_93CX6 is not set
439#
440CONFIG_SGI_IOC4=m 539CONFIG_SGI_IOC4=m
441# CONFIG_TIFM_CORE is not set 540# CONFIG_TIFM_CORE is not set
442 541# CONFIG_ENCLOSURE_SERVICES is not set
443# 542CONFIG_HAVE_IDE=y
444# ATA/ATAPI/MFM/RLL support
445#
446CONFIG_IDE=y 543CONFIG_IDE=y
447CONFIG_IDE_MAX_HWIFS=4 544CONFIG_IDE_MAX_HWIFS=4
448CONFIG_BLK_DEV_IDE=y 545CONFIG_BLK_DEV_IDE=y
449 546
450# 547#
451# Please see Documentation/ide.txt for help/info on IDE drives 548# Please see Documentation/ide/ide.txt for help/info on IDE drives
452# 549#
453# CONFIG_BLK_DEV_IDE_SATA is not set 550# CONFIG_BLK_DEV_IDE_SATA is not set
454CONFIG_BLK_DEV_IDEDISK=y 551CONFIG_BLK_DEV_IDEDISK=y
455# CONFIG_IDEDISK_MULTI_MODE is not set 552# CONFIG_IDEDISK_MULTI_MODE is not set
456CONFIG_BLK_DEV_IDECD=y 553CONFIG_BLK_DEV_IDECD=y
554CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
457CONFIG_BLK_DEV_IDETAPE=y 555CONFIG_BLK_DEV_IDETAPE=y
458CONFIG_BLK_DEV_IDEFLOPPY=y 556CONFIG_BLK_DEV_IDEFLOPPY=y
557# CONFIG_BLK_DEV_IDESCSI is not set
459# CONFIG_IDE_TASK_IOCTL is not set 558# CONFIG_IDE_TASK_IOCTL is not set
559CONFIG_IDE_PROC_FS=y
460 560
461# 561#
462# IDE chipset support/bugfixes 562# IDE chipset support/bugfixes
463# 563#
464CONFIG_IDE_GENERIC=y 564CONFIG_IDE_GENERIC=y
565# CONFIG_BLK_DEV_PLATFORM is not set
566CONFIG_BLK_DEV_IDEDMA_SFF=y
567
568#
569# PCI IDE chipsets support
570#
465CONFIG_BLK_DEV_IDEPCI=y 571CONFIG_BLK_DEV_IDEPCI=y
466# CONFIG_IDEPCI_SHARE_IRQ is not set 572CONFIG_IDEPCI_PCIBUS_ORDER=y
467# CONFIG_BLK_DEV_OFFBOARD is not set 573# CONFIG_BLK_DEV_OFFBOARD is not set
468CONFIG_BLK_DEV_GENERIC=y 574CONFIG_BLK_DEV_GENERIC=y
469# CONFIG_BLK_DEV_OPTI621 is not set 575# CONFIG_BLK_DEV_OPTI621 is not set
470CONFIG_BLK_DEV_IDEDMA_PCI=y 576CONFIG_BLK_DEV_IDEDMA_PCI=y
471# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
472# CONFIG_IDEDMA_PCI_AUTO is not set
473# CONFIG_BLK_DEV_AEC62XX is not set 577# CONFIG_BLK_DEV_AEC62XX is not set
474# CONFIG_BLK_DEV_ALI15X3 is not set 578# CONFIG_BLK_DEV_ALI15X3 is not set
475# CONFIG_BLK_DEV_AMD74XX is not set 579# CONFIG_BLK_DEV_AMD74XX is not set
@@ -495,87 +599,196 @@ CONFIG_BLK_DEV_IT8213=m
495# CONFIG_BLK_DEV_VIA82CXXX is not set 599# CONFIG_BLK_DEV_VIA82CXXX is not set
496CONFIG_BLK_DEV_TC86C001=m 600CONFIG_BLK_DEV_TC86C001=m
497# CONFIG_BLK_DEV_IDE_SWARM is not set 601# CONFIG_BLK_DEV_IDE_SWARM is not set
498# CONFIG_IDE_ARM is not set
499CONFIG_BLK_DEV_IDEDMA=y 602CONFIG_BLK_DEV_IDEDMA=y
500# CONFIG_IDEDMA_IVB is not set 603CONFIG_IDE_ARCH_OBSOLETE_INIT=y
501# CONFIG_IDEDMA_AUTO is not set
502# CONFIG_BLK_DEV_HD is not set 604# CONFIG_BLK_DEV_HD is not set
503 605
504# 606#
505# SCSI device support 607# SCSI device support
506# 608#
507# CONFIG_RAID_ATTRS is not set 609# CONFIG_RAID_ATTRS is not set
508# CONFIG_SCSI is not set 610CONFIG_SCSI=y
611CONFIG_SCSI_DMA=y
612# CONFIG_SCSI_TGT is not set
509# CONFIG_SCSI_NETLINK is not set 613# CONFIG_SCSI_NETLINK is not set
510 614CONFIG_SCSI_PROC_FS=y
511# 615
512# Serial ATA (prod) and Parallel ATA (experimental) drivers 616#
513# 617# SCSI support type (disk, tape, CD-ROM)
514# CONFIG_ATA is not set 618#
515 619CONFIG_BLK_DEV_SD=y
516# 620# CONFIG_CHR_DEV_ST is not set
517# Multi-device support (RAID and LVM) 621# CONFIG_CHR_DEV_OSST is not set
518# 622# CONFIG_BLK_DEV_SR is not set
623# CONFIG_CHR_DEV_SG is not set
624# CONFIG_CHR_DEV_SCH is not set
625
626#
627# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
628#
629# CONFIG_SCSI_MULTI_LUN is not set
630# CONFIG_SCSI_CONSTANTS is not set
631# CONFIG_SCSI_LOGGING is not set
632# CONFIG_SCSI_SCAN_ASYNC is not set
633CONFIG_SCSI_WAIT_SCAN=m
634
635#
636# SCSI Transports
637#
638# CONFIG_SCSI_SPI_ATTRS is not set
639# CONFIG_SCSI_FC_ATTRS is not set
640# CONFIG_SCSI_ISCSI_ATTRS is not set
641# CONFIG_SCSI_SAS_LIBSAS is not set
642# CONFIG_SCSI_SRP_ATTRS is not set
643CONFIG_SCSI_LOWLEVEL=y
644# CONFIG_ISCSI_TCP is not set
645# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
646# CONFIG_SCSI_3W_9XXX is not set
647# CONFIG_SCSI_ACARD is not set
648# CONFIG_SCSI_AACRAID is not set
649# CONFIG_SCSI_AIC7XXX is not set
650# CONFIG_SCSI_AIC7XXX_OLD is not set
651# CONFIG_SCSI_AIC79XX is not set
652# CONFIG_SCSI_AIC94XX is not set
653# CONFIG_SCSI_ADVANSYS is not set
654# CONFIG_SCSI_ARCMSR is not set
655# CONFIG_MEGARAID_NEWGEN is not set
656# CONFIG_MEGARAID_LEGACY is not set
657# CONFIG_MEGARAID_SAS is not set
658# CONFIG_SCSI_HPTIOP is not set
659# CONFIG_SCSI_DMX3191D is not set
660# CONFIG_SCSI_FUTURE_DOMAIN is not set
661# CONFIG_SCSI_IPS is not set
662# CONFIG_SCSI_INITIO is not set
663# CONFIG_SCSI_INIA100 is not set
664# CONFIG_SCSI_MVSAS is not set
665# CONFIG_SCSI_STEX is not set
666# CONFIG_SCSI_SYM53C8XX_2 is not set
667# CONFIG_SCSI_IPR is not set
668# CONFIG_SCSI_QLOGIC_1280 is not set
669# CONFIG_SCSI_QLA_FC is not set
670# CONFIG_SCSI_QLA_ISCSI is not set
671# CONFIG_SCSI_LPFC is not set
672# CONFIG_SCSI_DC395x is not set
673# CONFIG_SCSI_DC390T is not set
674# CONFIG_SCSI_DEBUG is not set
675# CONFIG_SCSI_SRP is not set
676CONFIG_ATA=y
677# CONFIG_ATA_NONSTANDARD is not set
678# CONFIG_SATA_AHCI is not set
679# CONFIG_SATA_SVW is not set
680# CONFIG_ATA_PIIX is not set
681# CONFIG_SATA_MV is not set
682# CONFIG_SATA_NV is not set
683# CONFIG_PDC_ADMA is not set
684# CONFIG_SATA_QSTOR is not set
685# CONFIG_SATA_PROMISE is not set
686# CONFIG_SATA_SX4 is not set
687# CONFIG_SATA_SIL is not set
688CONFIG_SATA_SIL24=y
689# CONFIG_SATA_SIS is not set
690# CONFIG_SATA_ULI is not set
691# CONFIG_SATA_VIA is not set
692# CONFIG_SATA_VITESSE is not set
693# CONFIG_SATA_INIC162X is not set
694# CONFIG_PATA_ALI is not set
695# CONFIG_PATA_AMD is not set
696# CONFIG_PATA_ARTOP is not set
697# CONFIG_PATA_ATIIXP is not set
698# CONFIG_PATA_CMD640_PCI is not set
699# CONFIG_PATA_CMD64X is not set
700# CONFIG_PATA_CS5520 is not set
701# CONFIG_PATA_CS5530 is not set
702# CONFIG_PATA_CYPRESS is not set
703# CONFIG_PATA_EFAR is not set
704# CONFIG_ATA_GENERIC is not set
705# CONFIG_PATA_HPT366 is not set
706# CONFIG_PATA_HPT37X is not set
707# CONFIG_PATA_HPT3X2N is not set
708# CONFIG_PATA_HPT3X3 is not set
709# CONFIG_PATA_IT821X is not set
710# CONFIG_PATA_IT8213 is not set
711# CONFIG_PATA_JMICRON is not set
712# CONFIG_PATA_TRIFLEX is not set
713# CONFIG_PATA_MARVELL is not set
714# CONFIG_PATA_MPIIX is not set
715# CONFIG_PATA_OLDPIIX is not set
716# CONFIG_PATA_NETCELL is not set
717# CONFIG_PATA_NINJA32 is not set
718# CONFIG_PATA_NS87410 is not set
719# CONFIG_PATA_NS87415 is not set
720# CONFIG_PATA_OPTI is not set
721# CONFIG_PATA_OPTIDMA is not set
722# CONFIG_PATA_PDC_OLD is not set
723# CONFIG_PATA_RADISYS is not set
724# CONFIG_PATA_RZ1000 is not set
725# CONFIG_PATA_SC1200 is not set
726# CONFIG_PATA_SERVERWORKS is not set
727# CONFIG_PATA_PDC2027X is not set
728CONFIG_PATA_SIL680=y
729# CONFIG_PATA_SIS is not set
730# CONFIG_PATA_VIA is not set
731# CONFIG_PATA_WINBOND is not set
732# CONFIG_PATA_PLATFORM is not set
519# CONFIG_MD is not set 733# CONFIG_MD is not set
520
521#
522# Fusion MPT device support
523#
524# CONFIG_FUSION is not set 734# CONFIG_FUSION is not set
525 735
526# 736#
527# IEEE 1394 (FireWire) support 737# IEEE 1394 (FireWire) support
528# 738#
739# CONFIG_FIREWIRE is not set
529# CONFIG_IEEE1394 is not set 740# CONFIG_IEEE1394 is not set
530
531#
532# I2O device support
533#
534# CONFIG_I2O is not set 741# CONFIG_I2O is not set
535
536#
537# Network device support
538#
539CONFIG_NETDEVICES=y 742CONFIG_NETDEVICES=y
743# CONFIG_NETDEVICES_MULTIQUEUE is not set
540# CONFIG_DUMMY is not set 744# CONFIG_DUMMY is not set
541# CONFIG_BONDING is not set 745# CONFIG_BONDING is not set
746# CONFIG_MACVLAN is not set
542# CONFIG_EQUALIZER is not set 747# CONFIG_EQUALIZER is not set
543# CONFIG_TUN is not set 748# CONFIG_TUN is not set
544 749# CONFIG_VETH is not set
545#
546# ARCnet devices
547#
548# CONFIG_ARCNET is not set 750# CONFIG_ARCNET is not set
549 751CONFIG_PHYLIB=y
550# 752
551# PHY device support 753#
552# 754# MII PHY device drivers
553# CONFIG_PHYLIB is not set 755#
554 756# CONFIG_MARVELL_PHY is not set
555# 757# CONFIG_DAVICOM_PHY is not set
556# Ethernet (10 or 100Mbit) 758# CONFIG_QSEMI_PHY is not set
557# 759# CONFIG_LXT_PHY is not set
760# CONFIG_CICADA_PHY is not set
761# CONFIG_VITESSE_PHY is not set
762# CONFIG_SMSC_PHY is not set
763# CONFIG_BROADCOM_PHY is not set
764# CONFIG_ICPLUS_PHY is not set
765# CONFIG_REALTEK_PHY is not set
766# CONFIG_FIXED_PHY is not set
767# CONFIG_MDIO_BITBANG is not set
558CONFIG_NET_ETHERNET=y 768CONFIG_NET_ETHERNET=y
559CONFIG_MII=y 769CONFIG_MII=y
770# CONFIG_AX88796 is not set
560# CONFIG_HAPPYMEAL is not set 771# CONFIG_HAPPYMEAL is not set
561# CONFIG_SUNGEM is not set 772# CONFIG_SUNGEM is not set
562# CONFIG_CASSINI is not set 773# CONFIG_CASSINI is not set
563# CONFIG_NET_VENDOR_3COM is not set 774# CONFIG_NET_VENDOR_3COM is not set
564# CONFIG_DM9000 is not set 775# CONFIG_DM9000 is not set
565
566#
567# Tulip family network device support
568#
569# CONFIG_NET_TULIP is not set 776# CONFIG_NET_TULIP is not set
570# CONFIG_HP100 is not set 777# CONFIG_HP100 is not set
778# CONFIG_IBM_NEW_EMAC_ZMII is not set
779# CONFIG_IBM_NEW_EMAC_RGMII is not set
780# CONFIG_IBM_NEW_EMAC_TAH is not set
781# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
571# CONFIG_NET_PCI is not set 782# CONFIG_NET_PCI is not set
572 783# CONFIG_B44 is not set
573# 784CONFIG_NETDEV_1000=y
574# Ethernet (1000 Mbit)
575#
576# CONFIG_ACENIC is not set 785# CONFIG_ACENIC is not set
577# CONFIG_DL2K is not set 786# CONFIG_DL2K is not set
578# CONFIG_E1000 is not set 787# CONFIG_E1000 is not set
788# CONFIG_E1000E is not set
789# CONFIG_E1000E_ENABLED is not set
790# CONFIG_IP1000 is not set
791# CONFIG_IGB is not set
579# CONFIG_NS83820 is not set 792# CONFIG_NS83820 is not set
580# CONFIG_HAMACHI is not set 793# CONFIG_HAMACHI is not set
581# CONFIG_YELLOWFIN is not set 794# CONFIG_YELLOWFIN is not set
@@ -585,52 +798,53 @@ CONFIG_SB1250_MAC=y
585# CONFIG_SKGE is not set 798# CONFIG_SKGE is not set
586# CONFIG_SKY2 is not set 799# CONFIG_SKY2 is not set
587# CONFIG_SK98LIN is not set 800# CONFIG_SK98LIN is not set
801# CONFIG_VIA_VELOCITY is not set
588# CONFIG_TIGON3 is not set 802# CONFIG_TIGON3 is not set
589# CONFIG_BNX2 is not set 803# CONFIG_BNX2 is not set
590# CONFIG_QLA3XXX is not set 804# CONFIG_QLA3XXX is not set
591# CONFIG_ATL1 is not set 805# CONFIG_ATL1 is not set
592 806CONFIG_NETDEV_10000=y
593#
594# Ethernet (10000 Mbit)
595#
596# CONFIG_CHELSIO_T1 is not set 807# CONFIG_CHELSIO_T1 is not set
597CONFIG_CHELSIO_T3=m 808CONFIG_CHELSIO_T3=m
809# CONFIG_IXGBE is not set
598# CONFIG_IXGB is not set 810# CONFIG_IXGB is not set
599# CONFIG_S2IO is not set 811# CONFIG_S2IO is not set
600# CONFIG_MYRI10GE is not set 812# CONFIG_MYRI10GE is not set
601CONFIG_NETXEN_NIC=m 813CONFIG_NETXEN_NIC=m
602 814# CONFIG_NIU is not set
603# 815# CONFIG_MLX4_CORE is not set
604# Token Ring devices 816# CONFIG_TEHUTI is not set
605# 817# CONFIG_BNX2X is not set
606# CONFIG_TR is not set 818# CONFIG_TR is not set
607 819
608# 820#
609# Wireless LAN (non-hamradio) 821# Wireless LAN
610#
611# CONFIG_NET_RADIO is not set
612
613#
614# Wan interfaces
615# 822#
823# CONFIG_WLAN_PRE80211 is not set
824# CONFIG_WLAN_80211 is not set
616# CONFIG_WAN is not set 825# CONFIG_WAN is not set
617# CONFIG_FDDI is not set 826# CONFIG_FDDI is not set
618# CONFIG_HIPPI is not set 827# CONFIG_HIPPI is not set
619# CONFIG_PPP is not set 828CONFIG_PPP=m
620# CONFIG_SLIP is not set 829CONFIG_PPP_MULTILINK=y
621# CONFIG_SHAPER is not set 830CONFIG_PPP_FILTER=y
831CONFIG_PPP_ASYNC=m
832CONFIG_PPP_SYNC_TTY=m
833CONFIG_PPP_DEFLATE=m
834CONFIG_PPP_BSDCOMP=m
835CONFIG_PPP_MPPE=m
836CONFIG_PPPOE=m
837CONFIG_PPPOL2TP=m
838CONFIG_SLIP=m
839CONFIG_SLIP_COMPRESSED=y
840CONFIG_SLHC=m
841CONFIG_SLIP_SMART=y
842CONFIG_SLIP_MODE_SLIP6=y
843# CONFIG_NET_FC is not set
622# CONFIG_NETCONSOLE is not set 844# CONFIG_NETCONSOLE is not set
623# CONFIG_NETPOLL is not set 845# CONFIG_NETPOLL is not set
624# CONFIG_NET_POLL_CONTROLLER is not set 846# CONFIG_NET_POLL_CONTROLLER is not set
625
626#
627# ISDN subsystem
628#
629# CONFIG_ISDN is not set 847# CONFIG_ISDN is not set
630
631#
632# Telephony Support
633#
634# CONFIG_PHONE is not set 848# CONFIG_PHONE is not set
635 849
636# 850#
@@ -660,17 +874,16 @@ CONFIG_SERIAL_NONSTANDARD=y
660# CONFIG_DIGIEPCA is not set 874# CONFIG_DIGIEPCA is not set
661# CONFIG_MOXA_INTELLIO is not set 875# CONFIG_MOXA_INTELLIO is not set
662# CONFIG_MOXA_SMARTIO is not set 876# CONFIG_MOXA_SMARTIO is not set
663CONFIG_MOXA_SMARTIO_NEW=m
664# CONFIG_ISI is not set 877# CONFIG_ISI is not set
665# CONFIG_SYNCLINKMP is not set 878# CONFIG_SYNCLINKMP is not set
666# CONFIG_SYNCLINK_GT is not set 879# CONFIG_SYNCLINK_GT is not set
667# CONFIG_N_HDLC is not set 880# CONFIG_N_HDLC is not set
881# CONFIG_RISCOM8 is not set
668# CONFIG_SPECIALIX is not set 882# CONFIG_SPECIALIX is not set
669# CONFIG_SX is not set 883# CONFIG_SX is not set
670# CONFIG_RIO is not set 884# CONFIG_RIO is not set
671# CONFIG_STALDRV is not set 885# CONFIG_STALDRV is not set
672CONFIG_SERIAL_SB1250_DUART=y 886# CONFIG_NOZOMI is not set
673CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
674 887
675# 888#
676# Serial drivers 889# Serial drivers
@@ -680,39 +893,24 @@ CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
680# 893#
681# Non-8250 serial port support 894# Non-8250 serial port support
682# 895#
896CONFIG_SERIAL_SB1250_DUART=y
897CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
898CONFIG_SERIAL_CORE=y
899CONFIG_SERIAL_CORE_CONSOLE=y
683# CONFIG_SERIAL_JSM is not set 900# CONFIG_SERIAL_JSM is not set
684CONFIG_UNIX98_PTYS=y 901CONFIG_UNIX98_PTYS=y
685CONFIG_LEGACY_PTYS=y 902CONFIG_LEGACY_PTYS=y
686CONFIG_LEGACY_PTY_COUNT=256 903CONFIG_LEGACY_PTY_COUNT=256
687
688#
689# IPMI
690#
691# CONFIG_IPMI_HANDLER is not set 904# CONFIG_IPMI_HANDLER is not set
692
693#
694# Watchdog Cards
695#
696# CONFIG_WATCHDOG is not set
697# CONFIG_HW_RANDOM is not set 905# CONFIG_HW_RANDOM is not set
698# CONFIG_RTC is not set 906# CONFIG_RTC is not set
699CONFIG_GEN_RTC=y
700# CONFIG_GEN_RTC_X is not set
701# CONFIG_DTLK is not set
702# CONFIG_R3964 is not set 907# CONFIG_R3964 is not set
703# CONFIG_APPLICOM is not set 908# CONFIG_APPLICOM is not set
704# CONFIG_DRM is not set
705# CONFIG_RAW_DRIVER is not set 909# CONFIG_RAW_DRIVER is not set
706
707#
708# TPM devices
709#
710# CONFIG_TCG_TPM is not set 910# CONFIG_TCG_TPM is not set
711 911CONFIG_DEVPORT=y
712#
713# I2C support
714#
715CONFIG_I2C=y 912CONFIG_I2C=y
913CONFIG_I2C_BOARDINFO=y
716CONFIG_I2C_CHARDEV=y 914CONFIG_I2C_CHARDEV=y
717 915
718# 916#
@@ -736,29 +934,30 @@ CONFIG_I2C_CHARDEV=y
736# CONFIG_I2C_NFORCE2 is not set 934# CONFIG_I2C_NFORCE2 is not set
737# CONFIG_I2C_OCORES is not set 935# CONFIG_I2C_OCORES is not set
738# CONFIG_I2C_PARPORT_LIGHT is not set 936# CONFIG_I2C_PARPORT_LIGHT is not set
739# CONFIG_I2C_PASEMI is not set
740# CONFIG_I2C_PROSAVAGE is not set 937# CONFIG_I2C_PROSAVAGE is not set
741# CONFIG_I2C_SAVAGE4 is not set 938# CONFIG_I2C_SAVAGE4 is not set
742CONFIG_I2C_SIBYTE=y 939CONFIG_I2C_SIBYTE=y
940# CONFIG_I2C_SIMTEC is not set
743# CONFIG_I2C_SIS5595 is not set 941# CONFIG_I2C_SIS5595 is not set
744# CONFIG_I2C_SIS630 is not set 942# CONFIG_I2C_SIS630 is not set
745# CONFIG_I2C_SIS96X is not set 943# CONFIG_I2C_SIS96X is not set
944# CONFIG_I2C_TAOS_EVM is not set
746# CONFIG_I2C_STUB is not set 945# CONFIG_I2C_STUB is not set
747# CONFIG_I2C_VIA is not set 946# CONFIG_I2C_VIA is not set
748# CONFIG_I2C_VIAPRO is not set 947# CONFIG_I2C_VIAPRO is not set
749# CONFIG_I2C_VOODOO3 is not set 948# CONFIG_I2C_VOODOO3 is not set
750# CONFIG_I2C_PCA_ISA is not set
751 949
752# 950#
753# Miscellaneous I2C Chip support 951# Miscellaneous I2C Chip support
754# 952#
755CONFIG_SENSORS_DS1337=y 953# CONFIG_DS1682 is not set
756CONFIG_SENSORS_DS1374=y
757CONFIG_SENSORS_EEPROM=y 954CONFIG_SENSORS_EEPROM=y
758CONFIG_SENSORS_PCF8574=y 955CONFIG_SENSORS_PCF8574=y
759CONFIG_SENSORS_PCA9539=y 956# CONFIG_PCF8575 is not set
760CONFIG_SENSORS_PCF8591=y 957CONFIG_SENSORS_PCF8591=y
958# CONFIG_TPS65010 is not set
761CONFIG_SENSORS_MAX6875=y 959CONFIG_SENSORS_MAX6875=y
960# CONFIG_SENSORS_TSL2550 is not set
762CONFIG_I2C_DEBUG_CORE=y 961CONFIG_I2C_DEBUG_CORE=y
763CONFIG_I2C_DEBUG_ALGO=y 962CONFIG_I2C_DEBUG_ALGO=y
764CONFIG_I2C_DEBUG_BUS=y 963CONFIG_I2C_DEBUG_BUS=y
@@ -769,43 +968,49 @@ CONFIG_I2C_DEBUG_CHIP=y
769# 968#
770# CONFIG_SPI is not set 969# CONFIG_SPI is not set
771# CONFIG_SPI_MASTER is not set 970# CONFIG_SPI_MASTER is not set
971# CONFIG_W1 is not set
972# CONFIG_POWER_SUPPLY is not set
973# CONFIG_HWMON is not set
974# CONFIG_THERMAL is not set
975# CONFIG_WATCHDOG is not set
772 976
773# 977#
774# Dallas's 1-wire bus 978# Sonics Silicon Backplane
775# 979#
776# CONFIG_W1 is not set 980CONFIG_SSB_POSSIBLE=y
981# CONFIG_SSB is not set
777 982
778# 983#
779# Hardware Monitoring support 984# Multifunction device drivers
780# 985#
781# CONFIG_HWMON is not set 986# CONFIG_MFD_SM501 is not set
782# CONFIG_HWMON_VID is not set
783 987
784# 988#
785# Multimedia devices 989# Multimedia devices
786# 990#
787# CONFIG_VIDEO_DEV is not set 991# CONFIG_VIDEO_DEV is not set
788 992# CONFIG_DVB_CORE is not set
789# 993# CONFIG_DAB is not set
790# Digital Video Broadcasting Devices
791#
792# CONFIG_DVB is not set
793 994
794# 995#
795# Graphics support 996# Graphics support
796# 997#
797# CONFIG_FIRMWARE_EDID is not set 998# CONFIG_DRM is not set
999# CONFIG_VGASTATE is not set
1000# CONFIG_VIDEO_OUTPUT_CONTROL is not set
798# CONFIG_FB is not set 1001# CONFIG_FB is not set
799# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1002# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
800 1003
801# 1004#
802# Sound 1005# Display device support
803# 1006#
804# CONFIG_SOUND is not set 1007# CONFIG_DISPLAY_SUPPORT is not set
805 1008
806# 1009#
807# USB support 1010# Sound
808# 1011#
1012# CONFIG_SOUND is not set
1013CONFIG_USB_SUPPORT=y
809CONFIG_USB_ARCH_HAS_HCD=y 1014CONFIG_USB_ARCH_HAS_HCD=y
810CONFIG_USB_ARCH_HAS_OHCI=y 1015CONFIG_USB_ARCH_HAS_OHCI=y
811CONFIG_USB_ARCH_HAS_EHCI=y 1016CONFIG_USB_ARCH_HAS_EHCI=y
@@ -814,104 +1019,73 @@ CONFIG_USB_ARCH_HAS_EHCI=y
814# 1019#
815# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1020# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
816# 1021#
817
818#
819# USB Gadget Support
820#
821# CONFIG_USB_GADGET is not set 1022# CONFIG_USB_GADGET is not set
822
823#
824# MMC/SD Card support
825#
826# CONFIG_MMC is not set 1023# CONFIG_MMC is not set
827 1024# CONFIG_MEMSTICK is not set
828#
829# LED devices
830#
831# CONFIG_NEW_LEDS is not set 1025# CONFIG_NEW_LEDS is not set
832
833#
834# LED drivers
835#
836
837#
838# LED Triggers
839#
840
841#
842# InfiniBand support
843#
844# CONFIG_INFINIBAND is not set 1026# CONFIG_INFINIBAND is not set
845 1027CONFIG_RTC_LIB=y
846#
847# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
848#
849
850#
851# Real Time Clock
852#
853# CONFIG_RTC_CLASS is not set 1028# CONFIG_RTC_CLASS is not set
854 1029
855# 1030#
856# DMA Engine support 1031# Userspace I/O
857#
858# CONFIG_DMA_ENGINE is not set
859
860#
861# DMA Clients
862#
863
864#
865# DMA Devices
866#
867
868#
869# Auxiliary Display support
870#
871
872#
873# Virtualization
874# 1032#
1033# CONFIG_UIO is not set
875 1034
876# 1035#
877# File systems 1036# File systems
878# 1037#
879CONFIG_EXT2_FS=y 1038CONFIG_EXT2_FS=m
880CONFIG_EXT2_FS_XATTR=y 1039CONFIG_EXT2_FS_XATTR=y
881CONFIG_EXT2_FS_POSIX_ACL=y 1040# CONFIG_EXT2_FS_POSIX_ACL is not set
882CONFIG_EXT2_FS_SECURITY=y 1041# CONFIG_EXT2_FS_SECURITY is not set
883# CONFIG_EXT2_FS_XIP is not set 1042# CONFIG_EXT2_FS_XIP is not set
884# CONFIG_EXT3_FS is not set 1043CONFIG_EXT3_FS=y
1044CONFIG_EXT3_FS_XATTR=y
1045# CONFIG_EXT3_FS_POSIX_ACL is not set
1046# CONFIG_EXT3_FS_SECURITY is not set
885# CONFIG_EXT4DEV_FS is not set 1047# CONFIG_EXT4DEV_FS is not set
1048CONFIG_JBD=y
886CONFIG_FS_MBCACHE=y 1049CONFIG_FS_MBCACHE=y
887# CONFIG_REISERFS_FS is not set 1050# CONFIG_REISERFS_FS is not set
888# CONFIG_JFS_FS is not set 1051# CONFIG_JFS_FS is not set
889CONFIG_FS_POSIX_ACL=y 1052# CONFIG_FS_POSIX_ACL is not set
890# CONFIG_XFS_FS is not set 1053# CONFIG_XFS_FS is not set
891# CONFIG_GFS2_FS is not set 1054# CONFIG_GFS2_FS is not set
892# CONFIG_OCFS2_FS is not set 1055# CONFIG_OCFS2_FS is not set
893# CONFIG_MINIX_FS is not set 1056CONFIG_DNOTIFY=y
894# CONFIG_ROMFS_FS is not set
895CONFIG_INOTIFY=y 1057CONFIG_INOTIFY=y
896CONFIG_INOTIFY_USER=y 1058CONFIG_INOTIFY_USER=y
897# CONFIG_QUOTA is not set 1059CONFIG_QUOTA=y
898CONFIG_DNOTIFY=y 1060CONFIG_QUOTA_NETLINK_INTERFACE=y
899# CONFIG_AUTOFS_FS is not set 1061# CONFIG_PRINT_QUOTA_WARNING is not set
900# CONFIG_AUTOFS4_FS is not set 1062# CONFIG_QFMT_V1 is not set
901# CONFIG_FUSE_FS is not set 1063CONFIG_QFMT_V2=m
1064CONFIG_QUOTACTL=y
1065CONFIG_AUTOFS_FS=m
1066CONFIG_AUTOFS4_FS=m
1067CONFIG_FUSE_FS=m
902 1068
903# 1069#
904# CD-ROM/DVD Filesystems 1070# CD-ROM/DVD Filesystems
905# 1071#
906# CONFIG_ISO9660_FS is not set 1072CONFIG_ISO9660_FS=m
907# CONFIG_UDF_FS is not set 1073CONFIG_JOLIET=y
1074CONFIG_ZISOFS=y
1075CONFIG_UDF_FS=m
1076CONFIG_UDF_NLS=y
908 1077
909# 1078#
910# DOS/FAT/NT Filesystems 1079# DOS/FAT/NT Filesystems
911# 1080#
912# CONFIG_MSDOS_FS is not set 1081CONFIG_FAT_FS=m
913# CONFIG_VFAT_FS is not set 1082CONFIG_MSDOS_FS=m
914# CONFIG_NTFS_FS is not set 1083CONFIG_VFAT_FS=m
1084CONFIG_FAT_DEFAULT_CODEPAGE=437
1085CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1086CONFIG_NTFS_FS=m
1087# CONFIG_NTFS_DEBUG is not set
1088CONFIG_NTFS_RW=y
915 1089
916# 1090#
917# Pseudo filesystems 1091# Pseudo filesystems
@@ -923,7 +1097,6 @@ CONFIG_SYSFS=y
923CONFIG_TMPFS=y 1097CONFIG_TMPFS=y
924# CONFIG_TMPFS_POSIX_ACL is not set 1098# CONFIG_TMPFS_POSIX_ACL is not set
925# CONFIG_HUGETLB_PAGE is not set 1099# CONFIG_HUGETLB_PAGE is not set
926CONFIG_RAMFS=y
927CONFIG_CONFIGFS_FS=m 1100CONFIG_CONFIGFS_FS=m
928 1101
929# 1102#
@@ -939,14 +1112,13 @@ CONFIG_CONFIGFS_FS=m
939# CONFIG_EFS_FS is not set 1112# CONFIG_EFS_FS is not set
940# CONFIG_CRAMFS is not set 1113# CONFIG_CRAMFS is not set
941# CONFIG_VXFS_FS is not set 1114# CONFIG_VXFS_FS is not set
1115# CONFIG_MINIX_FS is not set
942# CONFIG_HPFS_FS is not set 1116# CONFIG_HPFS_FS is not set
943# CONFIG_QNX4FS_FS is not set 1117# CONFIG_QNX4FS_FS is not set
1118# CONFIG_ROMFS_FS is not set
944# CONFIG_SYSV_FS is not set 1119# CONFIG_SYSV_FS is not set
945# CONFIG_UFS_FS is not set 1120# CONFIG_UFS_FS is not set
946 1121CONFIG_NETWORK_FILESYSTEMS=y
947#
948# Network File Systems
949#
950CONFIG_NFS_FS=y 1122CONFIG_NFS_FS=y
951CONFIG_NFS_V3=y 1123CONFIG_NFS_V3=y
952# CONFIG_NFS_V3_ACL is not set 1124# CONFIG_NFS_V3_ACL is not set
@@ -958,6 +1130,7 @@ CONFIG_LOCKD=y
958CONFIG_LOCKD_V4=y 1130CONFIG_LOCKD_V4=y
959CONFIG_NFS_COMMON=y 1131CONFIG_NFS_COMMON=y
960CONFIG_SUNRPC=y 1132CONFIG_SUNRPC=y
1133# CONFIG_SUNRPC_BIND34 is not set
961# CONFIG_RPCSEC_GSS_KRB5 is not set 1134# CONFIG_RPCSEC_GSS_KRB5 is not set
962# CONFIG_RPCSEC_GSS_SPKM3 is not set 1135# CONFIG_RPCSEC_GSS_SPKM3 is not set
963# CONFIG_SMB_FS is not set 1136# CONFIG_SMB_FS is not set
@@ -965,37 +1138,61 @@ CONFIG_SUNRPC=y
965# CONFIG_NCP_FS is not set 1138# CONFIG_NCP_FS is not set
966# CONFIG_CODA_FS is not set 1139# CONFIG_CODA_FS is not set
967# CONFIG_AFS_FS is not set 1140# CONFIG_AFS_FS is not set
968# CONFIG_9P_FS is not set
969 1141
970# 1142#
971# Partition Types 1143# Partition Types
972# 1144#
973# CONFIG_PARTITION_ADVANCED is not set 1145# CONFIG_PARTITION_ADVANCED is not set
974CONFIG_MSDOS_PARTITION=y 1146CONFIG_MSDOS_PARTITION=y
975 1147CONFIG_NLS=m
976# 1148CONFIG_NLS_DEFAULT="iso8859-1"
977# Native Language Support 1149CONFIG_NLS_CODEPAGE_437=m
978# 1150CONFIG_NLS_CODEPAGE_737=m
979# CONFIG_NLS is not set 1151CONFIG_NLS_CODEPAGE_775=m
980 1152CONFIG_NLS_CODEPAGE_850=m
981# 1153CONFIG_NLS_CODEPAGE_852=m
982# Distributed Lock Manager 1154CONFIG_NLS_CODEPAGE_855=m
983# 1155CONFIG_NLS_CODEPAGE_857=m
1156CONFIG_NLS_CODEPAGE_860=m
1157CONFIG_NLS_CODEPAGE_861=m
1158CONFIG_NLS_CODEPAGE_862=m
1159CONFIG_NLS_CODEPAGE_863=m
1160CONFIG_NLS_CODEPAGE_864=m
1161CONFIG_NLS_CODEPAGE_865=m
1162CONFIG_NLS_CODEPAGE_866=m
1163CONFIG_NLS_CODEPAGE_869=m
1164CONFIG_NLS_CODEPAGE_936=m
1165CONFIG_NLS_CODEPAGE_950=m
1166CONFIG_NLS_CODEPAGE_932=m
1167CONFIG_NLS_CODEPAGE_949=m
1168CONFIG_NLS_CODEPAGE_874=m
1169CONFIG_NLS_ISO8859_8=m
1170CONFIG_NLS_CODEPAGE_1250=m
1171CONFIG_NLS_CODEPAGE_1251=m
1172CONFIG_NLS_ASCII=m
1173CONFIG_NLS_ISO8859_1=m
1174CONFIG_NLS_ISO8859_2=m
1175CONFIG_NLS_ISO8859_3=m
1176CONFIG_NLS_ISO8859_4=m
1177CONFIG_NLS_ISO8859_5=m
1178CONFIG_NLS_ISO8859_6=m
1179CONFIG_NLS_ISO8859_7=m
1180CONFIG_NLS_ISO8859_9=m
1181CONFIG_NLS_ISO8859_13=m
1182CONFIG_NLS_ISO8859_14=m
1183CONFIG_NLS_ISO8859_15=m
1184CONFIG_NLS_KOI8_R=m
1185CONFIG_NLS_KOI8_U=m
1186CONFIG_NLS_UTF8=m
984CONFIG_DLM=m 1187CONFIG_DLM=m
985CONFIG_DLM_TCP=y
986# CONFIG_DLM_SCTP is not set
987# CONFIG_DLM_DEBUG is not set 1188# CONFIG_DLM_DEBUG is not set
988 1189
989# 1190#
990# Profiling support
991#
992# CONFIG_PROFILING is not set
993
994#
995# Kernel hacking 1191# Kernel hacking
996# 1192#
997CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1193CONFIG_TRACE_IRQFLAGS_SUPPORT=y
998# CONFIG_PRINTK_TIME is not set 1194# CONFIG_PRINTK_TIME is not set
1195CONFIG_ENABLE_WARN_DEPRECATED=y
999CONFIG_ENABLE_MUST_CHECK=y 1196CONFIG_ENABLE_MUST_CHECK=y
1000CONFIG_MAGIC_SYSRQ=y 1197CONFIG_MAGIC_SYSRQ=y
1001# CONFIG_UNUSED_SYMBOLS is not set 1198# CONFIG_UNUSED_SYMBOLS is not set
@@ -1003,8 +1200,8 @@ CONFIG_MAGIC_SYSRQ=y
1003# CONFIG_HEADERS_CHECK is not set 1200# CONFIG_HEADERS_CHECK is not set
1004CONFIG_DEBUG_KERNEL=y 1201CONFIG_DEBUG_KERNEL=y
1005# CONFIG_DEBUG_SHIRQ is not set 1202# CONFIG_DEBUG_SHIRQ is not set
1006CONFIG_LOG_BUF_SHIFT=16
1007CONFIG_DETECT_SOFTLOCKUP=y 1203CONFIG_DETECT_SOFTLOCKUP=y
1204CONFIG_SCHED_DEBUG=y
1008# CONFIG_SCHEDSTATS is not set 1205# CONFIG_SCHEDSTATS is not set
1009# CONFIG_TIMER_STATS is not set 1206# CONFIG_TIMER_STATS is not set
1010# CONFIG_DEBUG_SLAB is not set 1207# CONFIG_DEBUG_SLAB is not set
@@ -1014,15 +1211,19 @@ CONFIG_DETECT_SOFTLOCKUP=y
1014CONFIG_DEBUG_MUTEXES=y 1211CONFIG_DEBUG_MUTEXES=y
1015# CONFIG_DEBUG_LOCK_ALLOC is not set 1212# CONFIG_DEBUG_LOCK_ALLOC is not set
1016# CONFIG_PROVE_LOCKING is not set 1213# CONFIG_PROVE_LOCKING is not set
1214# CONFIG_LOCK_STAT is not set
1017# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1215# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1018# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1216# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1019# CONFIG_DEBUG_KOBJECT is not set 1217# CONFIG_DEBUG_KOBJECT is not set
1020# CONFIG_DEBUG_INFO is not set 1218# CONFIG_DEBUG_INFO is not set
1021# CONFIG_DEBUG_VM is not set 1219# CONFIG_DEBUG_VM is not set
1022# CONFIG_DEBUG_LIST is not set 1220# CONFIG_DEBUG_LIST is not set
1023CONFIG_FORCED_INLINING=y 1221# CONFIG_DEBUG_SG is not set
1222# CONFIG_BOOT_PRINTK_DELAY is not set
1024# CONFIG_RCU_TORTURE_TEST is not set 1223# CONFIG_RCU_TORTURE_TEST is not set
1025CONFIG_CROSSCOMPILE=y 1224# CONFIG_BACKTRACE_SELF_TEST is not set
1225# CONFIG_FAULT_INJECTION is not set
1226# CONFIG_SAMPLES is not set
1026CONFIG_CMDLINE="" 1227CONFIG_CMDLINE=""
1027# CONFIG_DEBUG_STACK_USAGE is not set 1228# CONFIG_DEBUG_STACK_USAGE is not set
1028# CONFIG_SB1XXX_CORELIS is not set 1229# CONFIG_SB1XXX_CORELIS is not set
@@ -1034,23 +1235,22 @@ CONFIG_CMDLINE=""
1034CONFIG_KEYS=y 1235CONFIG_KEYS=y
1035CONFIG_KEYS_DEBUG_PROC_KEYS=y 1236CONFIG_KEYS_DEBUG_PROC_KEYS=y
1036# CONFIG_SECURITY is not set 1237# CONFIG_SECURITY is not set
1037 1238# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1038#
1039# Cryptographic options
1040#
1041CONFIG_CRYPTO=y 1239CONFIG_CRYPTO=y
1042CONFIG_CRYPTO_ALGAPI=y 1240CONFIG_CRYPTO_ALGAPI=y
1043CONFIG_CRYPTO_BLKCIPHER=m 1241CONFIG_CRYPTO_AEAD=m
1242CONFIG_CRYPTO_BLKCIPHER=y
1243CONFIG_CRYPTO_SEQIV=m
1044CONFIG_CRYPTO_HASH=y 1244CONFIG_CRYPTO_HASH=y
1045CONFIG_CRYPTO_MANAGER=y 1245CONFIG_CRYPTO_MANAGER=y
1046CONFIG_CRYPTO_HMAC=y 1246CONFIG_CRYPTO_HMAC=y
1047CONFIG_CRYPTO_XCBC=m 1247CONFIG_CRYPTO_XCBC=m
1048CONFIG_CRYPTO_NULL=y 1248CONFIG_CRYPTO_NULL=y
1049CONFIG_CRYPTO_MD4=y 1249CONFIG_CRYPTO_MD4=m
1050CONFIG_CRYPTO_MD5=y 1250CONFIG_CRYPTO_MD5=y
1051CONFIG_CRYPTO_SHA1=y 1251CONFIG_CRYPTO_SHA1=m
1052CONFIG_CRYPTO_SHA256=y 1252CONFIG_CRYPTO_SHA256=m
1053CONFIG_CRYPTO_SHA512=y 1253CONFIG_CRYPTO_SHA512=m
1054CONFIG_CRYPTO_WP512=m 1254CONFIG_CRYPTO_WP512=m
1055CONFIG_CRYPTO_TGR192=m 1255CONFIG_CRYPTO_TGR192=m
1056CONFIG_CRYPTO_GF128MUL=m 1256CONFIG_CRYPTO_GF128MUL=m
@@ -1058,39 +1258,50 @@ CONFIG_CRYPTO_ECB=m
1058CONFIG_CRYPTO_CBC=m 1258CONFIG_CRYPTO_CBC=m
1059CONFIG_CRYPTO_PCBC=m 1259CONFIG_CRYPTO_PCBC=m
1060CONFIG_CRYPTO_LRW=m 1260CONFIG_CRYPTO_LRW=m
1061CONFIG_CRYPTO_DES=y 1261CONFIG_CRYPTO_XTS=m
1262CONFIG_CRYPTO_CTR=m
1263CONFIG_CRYPTO_GCM=m
1264CONFIG_CRYPTO_CCM=m
1265# CONFIG_CRYPTO_CRYPTD is not set
1266CONFIG_CRYPTO_DES=m
1062CONFIG_CRYPTO_FCRYPT=m 1267CONFIG_CRYPTO_FCRYPT=m
1063CONFIG_CRYPTO_BLOWFISH=y 1268CONFIG_CRYPTO_BLOWFISH=m
1064CONFIG_CRYPTO_TWOFISH=y 1269CONFIG_CRYPTO_TWOFISH=m
1065CONFIG_CRYPTO_TWOFISH_COMMON=y 1270CONFIG_CRYPTO_TWOFISH_COMMON=m
1066CONFIG_CRYPTO_SERPENT=y 1271CONFIG_CRYPTO_SERPENT=m
1067CONFIG_CRYPTO_AES=m 1272CONFIG_CRYPTO_AES=m
1068# CONFIG_CRYPTO_CAST5 is not set 1273CONFIG_CRYPTO_CAST5=m
1069# CONFIG_CRYPTO_CAST6 is not set 1274CONFIG_CRYPTO_CAST6=m
1070CONFIG_CRYPTO_TEA=m 1275CONFIG_CRYPTO_TEA=m
1071# CONFIG_CRYPTO_ARC4 is not set 1276CONFIG_CRYPTO_ARC4=m
1072CONFIG_CRYPTO_KHAZAD=m 1277CONFIG_CRYPTO_KHAZAD=m
1073CONFIG_CRYPTO_ANUBIS=m 1278CONFIG_CRYPTO_ANUBIS=m
1074CONFIG_CRYPTO_DEFLATE=y 1279CONFIG_CRYPTO_SEED=m
1075CONFIG_CRYPTO_MICHAEL_MIC=y 1280CONFIG_CRYPTO_SALSA20=m
1281CONFIG_CRYPTO_DEFLATE=m
1282CONFIG_CRYPTO_MICHAEL_MIC=m
1076# CONFIG_CRYPTO_CRC32C is not set 1283# CONFIG_CRYPTO_CRC32C is not set
1077CONFIG_CRYPTO_CAMELLIA=m 1284CONFIG_CRYPTO_CAMELLIA=m
1078# CONFIG_CRYPTO_TEST is not set 1285# CONFIG_CRYPTO_TEST is not set
1079 1286CONFIG_CRYPTO_AUTHENC=m
1080# 1287# CONFIG_CRYPTO_LZO is not set
1081# Hardware crypto devices 1288CONFIG_CRYPTO_HW=y
1082# 1289# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1083 1290
1084# 1291#
1085# Library routines 1292# Library routines
1086# 1293#
1087CONFIG_BITREVERSE=y 1294CONFIG_BITREVERSE=y
1088# CONFIG_CRC_CCITT is not set 1295CONFIG_CRC_CCITT=m
1089# CONFIG_CRC16 is not set 1296# CONFIG_CRC16 is not set
1297# CONFIG_CRC_ITU_T is not set
1090CONFIG_CRC32=y 1298CONFIG_CRC32=y
1091# CONFIG_LIBCRC32C is not set 1299# CONFIG_CRC7 is not set
1092CONFIG_ZLIB_INFLATE=y 1300CONFIG_LIBCRC32C=m
1093CONFIG_ZLIB_DEFLATE=y 1301CONFIG_AUDIT_GENERIC=y
1302CONFIG_ZLIB_INFLATE=m
1303CONFIG_ZLIB_DEFLATE=m
1094CONFIG_PLIST=y 1304CONFIG_PLIST=y
1095CONFIG_HAS_IOMEM=y 1305CONFIG_HAS_IOMEM=y
1096CONFIG_HAS_IOPORT=y 1306CONFIG_HAS_IOPORT=y
1307CONFIG_HAS_DMA=y
diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c
index fc4aa07b6d35..38fa1a194bf4 100644
--- a/arch/mips/kernel/i8253.c
+++ b/arch/mips/kernel/i8253.c
@@ -15,6 +15,7 @@
15#include <asm/time.h> 15#include <asm/time.h>
16 16
17DEFINE_SPINLOCK(i8253_lock); 17DEFINE_SPINLOCK(i8253_lock);
18EXPORT_SYMBOL(i8253_lock);
18 19
19/* 20/*
20 * Initialize the PIT timer. 21 * Initialize the PIT timer.
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 9f85d4cecc5b..b45a7093ca2d 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -157,6 +157,6 @@ void __init time_init(void)
157{ 157{
158 plat_time_init(); 158 plat_time_init();
159 159
160 if (mips_clockevent_init() || !cpu_has_mfc0_count_bug()) 160 if (!mips_clockevent_init() || !cpu_has_mfc0_count_bug())
161 init_mips_clocksource(); 161 init_mips_clocksource();
162} 162}
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index eed2dc4273e0..39804c584edd 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -262,13 +262,21 @@ void dump_mtregs(void)
262/* Find some VPE program space */ 262/* Find some VPE program space */
263static void *alloc_progmem(unsigned long len) 263static void *alloc_progmem(unsigned long len)
264{ 264{
265 void *addr;
266
265#ifdef CONFIG_MIPS_VPE_LOADER_TOM 267#ifdef CONFIG_MIPS_VPE_LOADER_TOM
266 /* this means you must tell linux to use less memory than you physically have */ 268 /*
267 return pfn_to_kaddr(max_pfn); 269 * This means you must tell Linux to use less memory than you
270 * physically have, for example by passing a mem= boot argument.
271 */
272 addr = pfn_to_kaddr(max_pfn);
273 memset(addr, 0, len);
268#else 274#else
269 // simple grab some mem for now 275 /* simple grab some mem for now */
270 return kmalloc(len, GFP_KERNEL); 276 addr = kzalloc(len, GFP_KERNEL);
271#endif 277#endif
278
279 return addr;
272} 280}
273 281
274static void release_progmem(void *ptr) 282static void release_progmem(void *ptr)
@@ -884,9 +892,10 @@ static int vpe_elfload(struct vpe * v)
884 } 892 }
885 893
886 v->load_addr = alloc_progmem(mod.core_size); 894 v->load_addr = alloc_progmem(mod.core_size);
887 memset(v->load_addr, 0, mod.core_size); 895 if (!v->load_addr)
896 return -ENOMEM;
888 897
889 printk("VPE loader: loading to %p\n", v->load_addr); 898 pr_info("VPE loader: loading to %p\n", v->load_addr);
890 899
891 if (relocate) { 900 if (relocate) {
892 for (i = 0; i < hdr->e_shnum; i++) { 901 for (i = 0; i < hdr->e_shnum; i++) {
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 3a93d4ce2703..382738ca8a0b 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -307,6 +307,7 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
307 case CPU_R12000: 307 case CPU_R12000:
308 case CPU_R14000: 308 case CPU_R14000:
309 case CPU_4KC: 309 case CPU_4KC:
310 case CPU_4KEC:
310 case CPU_SB1: 311 case CPU_SB1:
311 case CPU_SB1A: 312 case CPU_SB1A:
312 case CPU_4KSC: 313 case CPU_4KSC:
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c
index ab68c4318a30..87e2c8f54e2d 100644
--- a/arch/mips/pci/pci-bcm1480.c
+++ b/arch/mips/pci/pci-bcm1480.c
@@ -185,8 +185,8 @@ static struct resource bcm1480_mem_resource = {
185 185
186static struct resource bcm1480_io_resource = { 186static struct resource bcm1480_io_resource = {
187 .name = "BCM1480 PCI I/O", 187 .name = "BCM1480 PCI I/O",
188 .start = 0x2c000000UL, 188 .start = A_BCM1480_PHYS_PCI_IO_MATCH_BYTES,
189 .end = 0x2dffffffUL, 189 .end = A_BCM1480_PHYS_PCI_IO_MATCH_BYTES + 0x1ffffffUL,
190 .flags = IORESOURCE_IO, 190 .flags = IORESOURCE_IO,
191}; 191};
192 192
@@ -194,6 +194,7 @@ struct pci_controller bcm1480_controller = {
194 .pci_ops = &bcm1480_pci_ops, 194 .pci_ops = &bcm1480_pci_ops,
195 .mem_resource = &bcm1480_mem_resource, 195 .mem_resource = &bcm1480_mem_resource,
196 .io_resource = &bcm1480_io_resource, 196 .io_resource = &bcm1480_io_resource,
197 .io_offset = A_BCM1480_PHYS_PCI_IO_MATCH_BYTES,
197}; 198};
198 199
199 200
@@ -251,6 +252,7 @@ static int __init bcm1480_pcibios_init(void)
251 252
252 bcm1480_controller.io_map_base = (unsigned long) 253 bcm1480_controller.io_map_base = (unsigned long)
253 ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536); 254 ioremap(A_BCM1480_PHYS_PCI_IO_MATCH_BYTES, 65536);
255 bcm1480_controller.io_map_base -= bcm1480_controller.io_offset;
254 set_io_port_base(bcm1480_controller.io_map_base); 256 set_io_port_base(bcm1480_controller.io_map_base);
255 isa_slot_offset = (unsigned long) 257 isa_slot_offset = (unsigned long)
256 ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024); 258 ioremap(A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES, 1024*1024);
diff --git a/arch/mips/pci/pci-bcm1480ht.c b/arch/mips/pci/pci-bcm1480ht.c
index 005e7fecab08..f54f45412b0b 100644
--- a/arch/mips/pci/pci-bcm1480ht.c
+++ b/arch/mips/pci/pci-bcm1480ht.c
@@ -180,8 +180,8 @@ static struct resource bcm1480ht_mem_resource = {
180 180
181static struct resource bcm1480ht_io_resource = { 181static struct resource bcm1480ht_io_resource = {
182 .name = "BCM1480 HT I/O", 182 .name = "BCM1480 HT I/O",
183 .start = 0x00000000UL, 183 .start = A_BCM1480_PHYS_HT_IO_MATCH_BYTES,
184 .end = 0x01ffffffUL, 184 .end = A_BCM1480_PHYS_HT_IO_MATCH_BYTES + 0x01ffffffUL,
185 .flags = IORESOURCE_IO, 185 .flags = IORESOURCE_IO,
186}; 186};
187 187
@@ -191,29 +191,22 @@ struct pci_controller bcm1480ht_controller = {
191 .io_resource = &bcm1480ht_io_resource, 191 .io_resource = &bcm1480ht_io_resource,
192 .index = 1, 192 .index = 1,
193 .get_busno = bcm1480ht_pcibios_get_busno, 193 .get_busno = bcm1480ht_pcibios_get_busno,
194 .io_offset = A_BCM1480_PHYS_HT_IO_MATCH_BYTES,
194}; 195};
195 196
196static int __init bcm1480ht_pcibios_init(void) 197static int __init bcm1480ht_pcibios_init(void)
197{ 198{
198 uint32_t cmdreg;
199
200 ht_cfg_space = ioremap(A_BCM1480_PHYS_HT_CFG_MATCH_BITS, 16*1024*1024); 199 ht_cfg_space = ioremap(A_BCM1480_PHYS_HT_CFG_MATCH_BITS, 16*1024*1024);
201 200
202 /* 201 /* CFE doesn't always init all HT paths, so we always scan */
203 * See if the PCI bus has been configured by the firmware.
204 */
205 cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0),
206 PCI_COMMAND));
207 if (!(cmdreg & PCI_COMMAND_MASTER)) {
208 printk("HT: Skipping HT probe. Bus is not initialized.\n");
209 iounmap(ht_cfg_space);
210 return 1; /* XXX */
211 }
212 bcm1480ht_bus_status |= PCI_BUS_ENABLED; 202 bcm1480ht_bus_status |= PCI_BUS_ENABLED;
213 203
214 ht_eoi_space = (unsigned long) 204 ht_eoi_space = (unsigned long)
215 ioremap(A_BCM1480_PHYS_HT_SPECIAL_MATCH_BYTES, 205 ioremap(A_BCM1480_PHYS_HT_SPECIAL_MATCH_BYTES,
216 4 * 1024 * 1024); 206 4 * 1024 * 1024);
207 bcm1480ht_controller.io_map_base = (unsigned long)
208 ioremap(A_BCM1480_PHYS_HT_IO_MATCH_BYTES, 65536);
209 bcm1480ht_controller.io_map_base -= bcm1480ht_controller.io_offset;
217 210
218 register_pci_controller(&bcm1480ht_controller); 211 register_pci_controller(&bcm1480ht_controller);
219 212
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 797f0dfebde2..09f306248f2e 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_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-rc6
4# Tue Jan 15 10:26:10 2008 4# Tue Mar 25 10:25:48 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y 27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y 28CONFIG_GENERIC_CLOCKEVENTS=y
29CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y
30CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 32CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 33CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,19 @@ CONFIG_SYSVIPC_SYSCTL=y
67# CONFIG_POSIX_MQUEUE is not set 68# CONFIG_POSIX_MQUEUE is not set
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=17 73CONFIG_LOG_BUF_SHIFT=17
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
76CONFIG_FAIR_GROUP_SCHED=y 75# CONFIG_GROUP_SCHED is not set
77CONFIG_FAIR_USER_SCHED=y
78# CONFIG_FAIR_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 76CONFIG_SYSFS_DEPRECATED=y
77CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79CONFIG_NAMESPACES=y
80# CONFIG_UTS_NS is not set
81# CONFIG_IPC_NS is not set
82# CONFIG_USER_NS is not set
83# CONFIG_PID_NS is not set
81CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +94,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
92CONFIG_BUG=y 95CONFIG_BUG=y
93CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 99CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 101CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 105CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +108,15 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
104CONFIG_SLUB=y 109CONFIG_SLUB=y
105# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111CONFIG_PROFILING=y
112# CONFIG_MARKERS is not set
113CONFIG_OPROFILE=y
114CONFIG_HAVE_OPROFILE=y
115# CONFIG_KPROBES is not set
116CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y
118CONFIG_PROC_PAGE_MONITOR=y
119CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
107# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
108CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
@@ -130,6 +144,7 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 144# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 145# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 146CONFIG_DEFAULT_IOSCHED="anticipatory"
147CONFIG_CLASSIC_RCU=y
133 148
134# 149#
135# Platform support 150# Platform support
@@ -140,8 +155,8 @@ CONFIG_PPC_MULTIPLATFORM=y
140# CONFIG_PPC_86xx is not set 155# CONFIG_PPC_86xx is not set
141# CONFIG_PPC_PSERIES is not set 156# CONFIG_PPC_PSERIES is not set
142# CONFIG_PPC_ISERIES is not set 157# CONFIG_PPC_ISERIES is not set
143# CONFIG_PPC_MPC52xx is not set 158# CONFIG_PPC_MPC512x is not set
144# CONFIG_PPC_MPC5200 is not set 159# CONFIG_PPC_MPC5121 is not set
145# CONFIG_PPC_PMAC is not set 160# CONFIG_PPC_PMAC is not set
146# CONFIG_PPC_MAPLE is not set 161# CONFIG_PPC_MAPLE is not set
147CONFIG_PPC_PASEMI=y 162CONFIG_PPC_PASEMI=y
@@ -159,6 +174,7 @@ CONFIG_PPC_PASEMI_MDIO=y
159# CONFIG_PPC_IBM_CELL_BLADE is not set 174# CONFIG_PPC_IBM_CELL_BLADE is not set
160# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
161CONFIG_PPC_NATIVE=y 176CONFIG_PPC_NATIVE=y
177# CONFIG_IPIC is not set
162CONFIG_MPIC=y 178CONFIG_MPIC=y
163# CONFIG_MPIC_WEIRD is not set 179# CONFIG_MPIC_WEIRD is not set
164# CONFIG_PPC_I8259 is not set 180# CONFIG_PPC_I8259 is not set
@@ -189,7 +205,6 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y
189# CPU Frequency drivers 205# CPU Frequency drivers
190# 206#
191CONFIG_PPC_PASEMI_CPUFREQ=y 207CONFIG_PPC_PASEMI_CPUFREQ=y
192# CONFIG_CPM2 is not set
193# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
194 209
195# 210#
@@ -204,16 +219,20 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
204# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
205CONFIG_HZ_1000=y 220CONFIG_HZ_1000=y
206CONFIG_HZ=1000 221CONFIG_HZ=1000
222# CONFIG_SCHED_HRTICK is not set
207CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
208# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
209# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
210# CONFIG_PREEMPT_BKL is not set
211CONFIG_BINFMT_ELF=y 226CONFIG_BINFMT_ELF=y
227CONFIG_COMPAT_BINFMT_ELF=y
212# CONFIG_BINFMT_MISC is not set 228# CONFIG_BINFMT_MISC is not set
213CONFIG_FORCE_MAX_ZONEORDER=9 229CONFIG_FORCE_MAX_ZONEORDER=9
214CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 230CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
215CONFIG_IOMMU_VMERGE=y 231CONFIG_IOMMU_VMERGE=y
232CONFIG_IOMMU_HELPER=y
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 233CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
234CONFIG_ARCH_HAS_WALK_MEMORY=y
235CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
217# CONFIG_KEXEC is not set 236# CONFIG_KEXEC is not set
218# CONFIG_CRASH_DUMP is not set 237# CONFIG_CRASH_DUMP is not set
219# CONFIG_IRQ_ALL_CPUS is not set 238# CONFIG_IRQ_ALL_CPUS is not set
@@ -236,12 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
237CONFIG_PPC_HAS_HASH_64K=y 256CONFIG_PPC_HAS_HASH_64K=y
238CONFIG_PPC_64K_PAGES=y 257CONFIG_PPC_64K_PAGES=y
258# CONFIG_PPC_SUBPAGE_PROT is not set
239# CONFIG_SCHED_SMT is not set 259# CONFIG_SCHED_SMT is not set
240CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
242# CONFIG_PM is not set 262# CONFIG_PM is not set
243# CONFIG_SECCOMP is not set 263# CONFIG_SECCOMP is not set
244# CONFIG_WANT_DEVICE_TREE is not set
245CONFIG_ISA_DMA_API=y 264CONFIG_ISA_DMA_API=y
246 265
247# 266#
@@ -290,6 +309,7 @@ CONFIG_XFRM=y
290CONFIG_XFRM_USER=y 309CONFIG_XFRM_USER=y
291# CONFIG_XFRM_SUB_POLICY is not set 310# CONFIG_XFRM_SUB_POLICY is not set
292# CONFIG_XFRM_MIGRATE is not set 311# CONFIG_XFRM_MIGRATE is not set
312# CONFIG_XFRM_STATISTICS is not set
293CONFIG_NET_KEY=y 313CONFIG_NET_KEY=y
294# CONFIG_NET_KEY_MIGRATE is not set 314# CONFIG_NET_KEY_MIGRATE is not set
295CONFIG_INET=y 315CONFIG_INET=y
@@ -346,6 +366,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
346# 366#
347# CONFIG_NET_PKTGEN is not set 367# CONFIG_NET_PKTGEN is not set
348# CONFIG_HAMRADIO is not set 368# CONFIG_HAMRADIO is not set
369# CONFIG_CAN is not set
349# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
350# CONFIG_BT is not set 371# CONFIG_BT is not set
351# CONFIG_AF_RXRPC is not set 372# CONFIG_AF_RXRPC is not set
@@ -441,8 +462,10 @@ CONFIG_MTD_NAND=y
441CONFIG_MTD_NAND_IDS=y 462CONFIG_MTD_NAND_IDS=y
442# CONFIG_MTD_NAND_DISKONCHIP is not set 463# CONFIG_MTD_NAND_DISKONCHIP is not set
443# CONFIG_MTD_NAND_CAFE is not set 464# CONFIG_MTD_NAND_CAFE is not set
465CONFIG_MTD_NAND_PASEMI=y
444# CONFIG_MTD_NAND_PLATFORM is not set 466# CONFIG_MTD_NAND_PLATFORM is not set
445# CONFIG_MTD_ALAUDA is not set 467# CONFIG_MTD_ALAUDA is not set
468# CONFIG_MTD_NAND_FSL_ELBC is not set
446# CONFIG_MTD_ONENAND is not set 469# CONFIG_MTD_ONENAND is not set
447 470
448# 471#
@@ -465,7 +488,7 @@ CONFIG_BLK_DEV_LOOP=y
465CONFIG_BLK_DEV_RAM=y 488CONFIG_BLK_DEV_RAM=y
466CONFIG_BLK_DEV_RAM_COUNT=16 489CONFIG_BLK_DEV_RAM_COUNT=16
467CONFIG_BLK_DEV_RAM_SIZE=16384 490CONFIG_BLK_DEV_RAM_SIZE=16384
468CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 491# CONFIG_BLK_DEV_XIP is not set
469# CONFIG_CDROM_PKTCDVD is not set 492# CONFIG_CDROM_PKTCDVD is not set
470# CONFIG_ATA_OVER_ETH is not set 493# CONFIG_ATA_OVER_ETH is not set
471CONFIG_MISC_DEVICES=y 494CONFIG_MISC_DEVICES=y
@@ -473,11 +496,13 @@ CONFIG_MISC_DEVICES=y
473# CONFIG_EEPROM_93CX6 is not set 496# CONFIG_EEPROM_93CX6 is not set
474# CONFIG_SGI_IOC4 is not set 497# CONFIG_SGI_IOC4 is not set
475# CONFIG_TIFM_CORE is not set 498# CONFIG_TIFM_CORE is not set
499# CONFIG_ENCLOSURE_SERVICES is not set
500CONFIG_HAVE_IDE=y
476CONFIG_IDE=y 501CONFIG_IDE=y
477CONFIG_BLK_DEV_IDE=y 502CONFIG_BLK_DEV_IDE=y
478 503
479# 504#
480# Please see Documentation/ide.txt for help/info on IDE drives 505# Please see Documentation/ide/ide.txt for help/info on IDE drives
481# 506#
482# CONFIG_BLK_DEV_IDE_SATA is not set 507# CONFIG_BLK_DEV_IDE_SATA is not set
483CONFIG_BLK_DEV_IDEDISK=y 508CONFIG_BLK_DEV_IDEDISK=y
@@ -485,6 +510,7 @@ CONFIG_IDEDISK_MULTI_MODE=y
485# CONFIG_BLK_DEV_IDECS is not set 510# CONFIG_BLK_DEV_IDECS is not set
486# CONFIG_BLK_DEV_DELKIN is not set 511# CONFIG_BLK_DEV_DELKIN is not set
487CONFIG_BLK_DEV_IDECD=y 512CONFIG_BLK_DEV_IDECD=y
513CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
488# CONFIG_BLK_DEV_IDETAPE is not set 514# CONFIG_BLK_DEV_IDETAPE is not set
489# CONFIG_BLK_DEV_IDEFLOPPY is not set 515# CONFIG_BLK_DEV_IDEFLOPPY is not set
490CONFIG_BLK_DEV_IDESCSI=y 516CONFIG_BLK_DEV_IDESCSI=y
@@ -500,7 +526,6 @@ CONFIG_IDE_PROC_FS=y
500# 526#
501# PCI IDE chipsets support 527# PCI IDE chipsets support
502# 528#
503# CONFIG_IDEPCI_PCIBUS_ORDER is not set
504# CONFIG_BLK_DEV_GENERIC is not set 529# CONFIG_BLK_DEV_GENERIC is not set
505# CONFIG_BLK_DEV_OPTI621 is not set 530# CONFIG_BLK_DEV_OPTI621 is not set
506# CONFIG_BLK_DEV_AEC62XX is not set 531# CONFIG_BLK_DEV_AEC62XX is not set
@@ -528,7 +553,6 @@ CONFIG_IDE_PROC_FS=y
528# CONFIG_BLK_DEV_TRM290 is not set 553# CONFIG_BLK_DEV_TRM290 is not set
529# CONFIG_BLK_DEV_VIA82CXXX is not set 554# CONFIG_BLK_DEV_VIA82CXXX is not set
530# CONFIG_BLK_DEV_TC86C001 is not set 555# CONFIG_BLK_DEV_TC86C001 is not set
531# CONFIG_IDE_ARM is not set
532# CONFIG_BLK_DEV_IDEDMA is not set 556# CONFIG_BLK_DEV_IDEDMA is not set
533CONFIG_IDE_ARCH_OBSOLETE_INIT=y 557CONFIG_IDE_ARCH_OBSOLETE_INIT=y
534# CONFIG_BLK_DEV_HD is not set 558# CONFIG_BLK_DEV_HD is not set
@@ -593,6 +617,7 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_SCSI_IPS is not set 617# CONFIG_SCSI_IPS is not set
594# CONFIG_SCSI_INITIO is not set 618# CONFIG_SCSI_INITIO is not set
595# CONFIG_SCSI_INIA100 is not set 619# CONFIG_SCSI_INIA100 is not set
620# CONFIG_SCSI_MVSAS is not set
596# CONFIG_SCSI_STEX is not set 621# CONFIG_SCSI_STEX is not set
597# CONFIG_SCSI_SYM53C8XX_2 is not set 622# CONFIG_SCSI_SYM53C8XX_2 is not set
598# CONFIG_SCSI_IPR is not set 623# CONFIG_SCSI_IPR is not set
@@ -646,6 +671,7 @@ CONFIG_ATA_GENERIC=y
646# CONFIG_PATA_MPIIX is not set 671# CONFIG_PATA_MPIIX is not set
647# CONFIG_PATA_OLDPIIX is not set 672# CONFIG_PATA_OLDPIIX is not set
648# CONFIG_PATA_NETCELL is not set 673# CONFIG_PATA_NETCELL is not set
674# CONFIG_PATA_NINJA32 is not set
649# CONFIG_PATA_NS87410 is not set 675# CONFIG_PATA_NS87410 is not set
650# CONFIG_PATA_NS87415 is not set 676# CONFIG_PATA_NS87415 is not set
651# CONFIG_PATA_OPTI is not set 677# CONFIG_PATA_OPTI is not set
@@ -699,7 +725,6 @@ CONFIG_DUMMY=y
699# CONFIG_EQUALIZER is not set 725# CONFIG_EQUALIZER is not set
700# CONFIG_TUN is not set 726# CONFIG_TUN is not set
701# CONFIG_VETH is not set 727# CONFIG_VETH is not set
702# CONFIG_IP1000 is not set
703# CONFIG_ARCNET is not set 728# CONFIG_ARCNET is not set
704CONFIG_PHYLIB=y 729CONFIG_PHYLIB=y
705 730
@@ -715,6 +740,7 @@ CONFIG_MARVELL_PHY=y
715# CONFIG_SMSC_PHY is not set 740# CONFIG_SMSC_PHY is not set
716# CONFIG_BROADCOM_PHY is not set 741# CONFIG_BROADCOM_PHY is not set
717# CONFIG_ICPLUS_PHY is not set 742# CONFIG_ICPLUS_PHY is not set
743# CONFIG_REALTEK_PHY is not set
718# CONFIG_FIXED_PHY is not set 744# CONFIG_FIXED_PHY is not set
719# CONFIG_MDIO_BITBANG is not set 745# CONFIG_MDIO_BITBANG is not set
720CONFIG_NET_ETHERNET=y 746CONFIG_NET_ETHERNET=y
@@ -742,6 +768,7 @@ CONFIG_NET_PCI=y
742# CONFIG_NE2K_PCI is not set 768# CONFIG_NE2K_PCI is not set
743# CONFIG_8139CP is not set 769# CONFIG_8139CP is not set
744# CONFIG_8139TOO is not set 770# CONFIG_8139TOO is not set
771# CONFIG_R6040 is not set
745# CONFIG_SIS900 is not set 772# CONFIG_SIS900 is not set
746# CONFIG_EPIC100 is not set 773# CONFIG_EPIC100 is not set
747# CONFIG_SUNDANCE is not set 774# CONFIG_SUNDANCE is not set
@@ -754,6 +781,9 @@ CONFIG_E1000=y
754CONFIG_E1000_NAPI=y 781CONFIG_E1000_NAPI=y
755# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 782# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
756# CONFIG_E1000E is not set 783# CONFIG_E1000E is not set
784# CONFIG_E1000E_ENABLED is not set
785# CONFIG_IP1000 is not set
786# CONFIG_IGB is not set
757# CONFIG_NS83820 is not set 787# CONFIG_NS83820 is not set
758# CONFIG_HAMACHI is not set 788# CONFIG_HAMACHI is not set
759# CONFIG_YELLOWFIN is not set 789# CONFIG_YELLOWFIN is not set
@@ -779,6 +809,7 @@ CONFIG_NETDEV_10000=y
779CONFIG_PASEMI_MAC=y 809CONFIG_PASEMI_MAC=y
780# CONFIG_MLX4_CORE is not set 810# CONFIG_MLX4_CORE is not set
781# CONFIG_TEHUTI is not set 811# CONFIG_TEHUTI is not set
812# CONFIG_BNX2X is not set
782# CONFIG_TR is not set 813# CONFIG_TR is not set
783 814
784# 815#
@@ -802,7 +833,6 @@ CONFIG_PASEMI_MAC=y
802# CONFIG_PPP is not set 833# CONFIG_PPP is not set
803# CONFIG_SLIP is not set 834# CONFIG_SLIP is not set
804# CONFIG_NET_FC is not set 835# CONFIG_NET_FC is not set
805# CONFIG_SHAPER is not set
806# CONFIG_NETCONSOLE is not set 836# CONFIG_NETCONSOLE is not set
807# CONFIG_NETPOLL is not set 837# CONFIG_NETPOLL is not set
808# CONFIG_NET_POLL_CONTROLLER is not set 838# CONFIG_NET_POLL_CONTROLLER is not set
@@ -861,6 +891,7 @@ CONFIG_VT_CONSOLE=y
861CONFIG_HW_CONSOLE=y 891CONFIG_HW_CONSOLE=y
862# CONFIG_VT_HW_CONSOLE_BINDING is not set 892# CONFIG_VT_HW_CONSOLE_BINDING is not set
863# CONFIG_SERIAL_NONSTANDARD is not set 893# CONFIG_SERIAL_NONSTANDARD is not set
894# CONFIG_NOZOMI is not set
864 895
865# 896#
866# Serial drivers 897# Serial drivers
@@ -886,8 +917,7 @@ CONFIG_LEGACY_PTY_COUNT=4
886# CONFIG_IPMI_HANDLER is not set 917# CONFIG_IPMI_HANDLER is not set
887CONFIG_HW_RANDOM=y 918CONFIG_HW_RANDOM=y
888CONFIG_HW_RANDOM_PASEMI=y 919CONFIG_HW_RANDOM_PASEMI=y
889CONFIG_GEN_RTC=y 920# CONFIG_GEN_RTC is not set
890CONFIG_GEN_RTC_X=y
891# CONFIG_R3964 is not set 921# CONFIG_R3964 is not set
892# CONFIG_APPLICOM is not set 922# CONFIG_APPLICOM is not set
893 923
@@ -897,6 +927,7 @@ CONFIG_GEN_RTC_X=y
897# CONFIG_SYNCLINK_CS is not set 927# CONFIG_SYNCLINK_CS is not set
898# CONFIG_CARDMAN_4000 is not set 928# CONFIG_CARDMAN_4000 is not set
899# CONFIG_CARDMAN_4040 is not set 929# CONFIG_CARDMAN_4040 is not set
930# CONFIG_IPWIRELESS is not set
900CONFIG_RAW_DRIVER=y 931CONFIG_RAW_DRIVER=y
901CONFIG_MAX_RAW_DEVS=256 932CONFIG_MAX_RAW_DEVS=256
902# CONFIG_HANGCHECK_TIMER is not set 933# CONFIG_HANGCHECK_TIMER is not set
@@ -944,13 +975,12 @@ CONFIG_I2C_PASEMI=y
944# 975#
945# Miscellaneous I2C Chip support 976# Miscellaneous I2C Chip support
946# 977#
947# CONFIG_SENSORS_DS1337 is not set
948# CONFIG_SENSORS_DS1374 is not set
949# CONFIG_DS1682 is not set 978# CONFIG_DS1682 is not set
950CONFIG_SENSORS_EEPROM=y 979CONFIG_SENSORS_EEPROM=y
951# CONFIG_SENSORS_PCF8574 is not set 980# CONFIG_SENSORS_PCF8574 is not set
952# CONFIG_SENSORS_PCA9539 is not set 981# CONFIG_PCF8575 is not set
953# CONFIG_SENSORS_PCF8591 is not set 982# CONFIG_SENSORS_PCF8591 is not set
983# CONFIG_TPS65010 is not set
954# CONFIG_SENSORS_MAX6875 is not set 984# CONFIG_SENSORS_MAX6875 is not set
955# CONFIG_SENSORS_TSL2550 is not set 985# CONFIG_SENSORS_TSL2550 is not set
956# CONFIG_I2C_DEBUG_CORE is not set 986# CONFIG_I2C_DEBUG_CORE is not set
@@ -975,6 +1005,7 @@ CONFIG_HWMON_VID=y
975# CONFIG_SENSORS_ADM1031 is not set 1005# CONFIG_SENSORS_ADM1031 is not set
976# CONFIG_SENSORS_ADM9240 is not set 1006# CONFIG_SENSORS_ADM9240 is not set
977# CONFIG_SENSORS_ADT7470 is not set 1007# CONFIG_SENSORS_ADT7470 is not set
1008# CONFIG_SENSORS_ADT7473 is not set
978# CONFIG_SENSORS_ATXP1 is not set 1009# CONFIG_SENSORS_ATXP1 is not set
979# CONFIG_SENSORS_DS1621 is not set 1010# CONFIG_SENSORS_DS1621 is not set
980# CONFIG_SENSORS_I5K_AMB is not set 1011# CONFIG_SENSORS_I5K_AMB is not set
@@ -1004,6 +1035,7 @@ CONFIG_SENSORS_LM90=y
1004# CONFIG_SENSORS_SMSC47M1 is not set 1035# CONFIG_SENSORS_SMSC47M1 is not set
1005# CONFIG_SENSORS_SMSC47M192 is not set 1036# CONFIG_SENSORS_SMSC47M192 is not set
1006# CONFIG_SENSORS_SMSC47B397 is not set 1037# CONFIG_SENSORS_SMSC47B397 is not set
1038# CONFIG_SENSORS_ADS7828 is not set
1007# CONFIG_SENSORS_THMC50 is not set 1039# CONFIG_SENSORS_THMC50 is not set
1008# CONFIG_SENSORS_VIA686A is not set 1040# CONFIG_SENSORS_VIA686A is not set
1009# CONFIG_SENSORS_VT1211 is not set 1041# CONFIG_SENSORS_VT1211 is not set
@@ -1013,9 +1045,11 @@ CONFIG_SENSORS_LM90=y
1013# CONFIG_SENSORS_W83792D is not set 1045# CONFIG_SENSORS_W83792D is not set
1014# CONFIG_SENSORS_W83793 is not set 1046# CONFIG_SENSORS_W83793 is not set
1015# CONFIG_SENSORS_W83L785TS is not set 1047# CONFIG_SENSORS_W83L785TS is not set
1048# CONFIG_SENSORS_W83L786NG is not set
1016# CONFIG_SENSORS_W83627HF is not set 1049# CONFIG_SENSORS_W83627HF is not set
1017# CONFIG_SENSORS_W83627EHF is not set 1050# CONFIG_SENSORS_W83627EHF is not set
1018# CONFIG_HWMON_DEBUG_CHIP is not set 1051# CONFIG_HWMON_DEBUG_CHIP is not set
1052# CONFIG_THERMAL is not set
1019# CONFIG_WATCHDOG is not set 1053# CONFIG_WATCHDOG is not set
1020 1054
1021# 1055#
@@ -1183,6 +1217,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1183# CONFIG_SND_BT87X is not set 1217# CONFIG_SND_BT87X is not set
1184# CONFIG_SND_CA0106 is not set 1218# CONFIG_SND_CA0106 is not set
1185# CONFIG_SND_CMIPCI is not set 1219# CONFIG_SND_CMIPCI is not set
1220# CONFIG_SND_OXYGEN is not set
1186# CONFIG_SND_CS4281 is not set 1221# CONFIG_SND_CS4281 is not set
1187# CONFIG_SND_CS46XX is not set 1222# CONFIG_SND_CS46XX is not set
1188# CONFIG_SND_CS5530 is not set 1223# CONFIG_SND_CS5530 is not set
@@ -1208,6 +1243,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1208# CONFIG_SND_HDA_INTEL is not set 1243# CONFIG_SND_HDA_INTEL is not set
1209# CONFIG_SND_HDSP is not set 1244# CONFIG_SND_HDSP is not set
1210# CONFIG_SND_HDSPM is not set 1245# CONFIG_SND_HDSPM is not set
1246# CONFIG_SND_HIFIER is not set
1211# CONFIG_SND_ICE1712 is not set 1247# CONFIG_SND_ICE1712 is not set
1212# CONFIG_SND_ICE1724 is not set 1248# CONFIG_SND_ICE1724 is not set
1213# CONFIG_SND_INTEL8X0 is not set 1249# CONFIG_SND_INTEL8X0 is not set
@@ -1225,6 +1261,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1225# CONFIG_SND_TRIDENT is not set 1261# CONFIG_SND_TRIDENT is not set
1226# CONFIG_SND_VIA82XX is not set 1262# CONFIG_SND_VIA82XX is not set
1227# CONFIG_SND_VIA82XX_MODEM is not set 1263# CONFIG_SND_VIA82XX_MODEM is not set
1264# CONFIG_SND_VIRTUOSO is not set
1228# CONFIG_SND_VX222 is not set 1265# CONFIG_SND_VX222 is not set
1229# CONFIG_SND_YMFPCI is not set 1266# CONFIG_SND_YMFPCI is not set
1230 1267
@@ -1259,6 +1296,10 @@ CONFIG_SND_USB_USX2Y=y
1259# 1296#
1260 1297
1261# 1298#
1299# ALSA SoC audio for Freescale SOCs
1300#
1301
1302#
1262# Open Sound System 1303# Open Sound System
1263# 1304#
1264# CONFIG_SOUND_PRIME is not set 1305# CONFIG_SOUND_PRIME is not set
@@ -1280,6 +1321,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1280CONFIG_USB_ARCH_HAS_EHCI=y 1321CONFIG_USB_ARCH_HAS_EHCI=y
1281CONFIG_USB=y 1322CONFIG_USB=y
1282# CONFIG_USB_DEBUG is not set 1323# CONFIG_USB_DEBUG is not set
1324# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1283 1325
1284# 1326#
1285# Miscellaneous USB options 1327# Miscellaneous USB options
@@ -1293,17 +1335,14 @@ CONFIG_USB_DEVICEFS=y
1293# USB Host Controller Drivers 1335# USB Host Controller Drivers
1294# 1336#
1295CONFIG_USB_EHCI_HCD=y 1337CONFIG_USB_EHCI_HCD=y
1296# CONFIG_USB_EHCI_SPLIT_ISO is not set
1297# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1338# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1298# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1339# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1340CONFIG_USB_EHCI_HCD_PPC_OF=y
1299# CONFIG_USB_ISP116X_HCD is not set 1341# CONFIG_USB_ISP116X_HCD is not set
1300CONFIG_USB_OHCI_HCD=y 1342CONFIG_USB_OHCI_HCD=y
1301CONFIG_USB_OHCI_HCD_PPC_OF=y 1343# CONFIG_USB_OHCI_HCD_PPC_OF is not set
1302CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1344# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1303# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 1345# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1304CONFIG_USB_OHCI_HCD_PCI=y
1305CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1306CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1307CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1346CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1308CONFIG_USB_UHCI_HCD=y 1347CONFIG_USB_UHCI_HCD=y
1309CONFIG_USB_SL811_HCD=y 1348CONFIG_USB_SL811_HCD=y
@@ -1348,10 +1387,6 @@ CONFIG_USB_LIBUSUAL=y
1348# 1387#
1349# USB port drivers 1388# USB port drivers
1350# 1389#
1351
1352#
1353# USB Serial Converter support
1354#
1355# CONFIG_USB_SERIAL is not set 1390# CONFIG_USB_SERIAL is not set
1356 1391
1357# 1392#
@@ -1377,16 +1412,9 @@ CONFIG_USB_LIBUSUAL=y
1377# CONFIG_USB_TRANCEVIBRATOR is not set 1412# CONFIG_USB_TRANCEVIBRATOR is not set
1378# CONFIG_USB_IOWARRIOR is not set 1413# CONFIG_USB_IOWARRIOR is not set
1379# CONFIG_USB_TEST is not set 1414# CONFIG_USB_TEST is not set
1380
1381#
1382# USB DSL modem support
1383#
1384
1385#
1386# USB Gadget Support
1387#
1388# CONFIG_USB_GADGET is not set 1415# CONFIG_USB_GADGET is not set
1389# CONFIG_MMC is not set 1416# CONFIG_MMC is not set
1417# CONFIG_MEMSTICK is not set
1390# CONFIG_NEW_LEDS is not set 1418# CONFIG_NEW_LEDS is not set
1391# CONFIG_INFINIBAND is not set 1419# CONFIG_INFINIBAND is not set
1392CONFIG_EDAC=y 1420CONFIG_EDAC=y
@@ -1425,6 +1453,7 @@ CONFIG_RTC_DRV_DS1307=y
1425# CONFIG_RTC_DRV_PCF8563 is not set 1453# CONFIG_RTC_DRV_PCF8563 is not set
1426# CONFIG_RTC_DRV_PCF8583 is not set 1454# CONFIG_RTC_DRV_PCF8583 is not set
1427# CONFIG_RTC_DRV_M41T80 is not set 1455# CONFIG_RTC_DRV_M41T80 is not set
1456# CONFIG_RTC_DRV_S35390A is not set
1428 1457
1429# 1458#
1430# SPI RTC drivers 1459# SPI RTC drivers
@@ -1434,9 +1463,10 @@ CONFIG_RTC_DRV_DS1307=y
1434# Platform RTC drivers 1463# Platform RTC drivers
1435# 1464#
1436# CONFIG_RTC_DRV_CMOS is not set 1465# CONFIG_RTC_DRV_CMOS is not set
1466# CONFIG_RTC_DRV_DS1511 is not set
1437# CONFIG_RTC_DRV_DS1553 is not set 1467# CONFIG_RTC_DRV_DS1553 is not set
1438# CONFIG_RTC_DRV_STK17TA8 is not set
1439# CONFIG_RTC_DRV_DS1742 is not set 1468# CONFIG_RTC_DRV_DS1742 is not set
1469# CONFIG_RTC_DRV_STK17TA8 is not set
1440# CONFIG_RTC_DRV_M48T86 is not set 1470# CONFIG_RTC_DRV_M48T86 is not set
1441# CONFIG_RTC_DRV_M48T59 is not set 1471# CONFIG_RTC_DRV_M48T59 is not set
1442# CONFIG_RTC_DRV_V3020 is not set 1472# CONFIG_RTC_DRV_V3020 is not set
@@ -1444,6 +1474,7 @@ CONFIG_RTC_DRV_DS1307=y
1444# 1474#
1445# on-CPU RTC drivers 1475# on-CPU RTC drivers
1446# 1476#
1477# CONFIG_DMADEVICES is not set
1447 1478
1448# 1479#
1449# Userspace I/O 1480# Userspace I/O
@@ -1471,12 +1502,10 @@ CONFIG_FS_POSIX_ACL=y
1471# CONFIG_XFS_FS is not set 1502# CONFIG_XFS_FS is not set
1472# CONFIG_GFS2_FS is not set 1503# CONFIG_GFS2_FS is not set
1473# CONFIG_OCFS2_FS is not set 1504# CONFIG_OCFS2_FS is not set
1474# CONFIG_MINIX_FS is not set 1505CONFIG_DNOTIFY=y
1475# CONFIG_ROMFS_FS is not set
1476CONFIG_INOTIFY=y 1506CONFIG_INOTIFY=y
1477CONFIG_INOTIFY_USER=y 1507CONFIG_INOTIFY_USER=y
1478# CONFIG_QUOTA is not set 1508# CONFIG_QUOTA is not set
1479CONFIG_DNOTIFY=y
1480CONFIG_AUTOFS_FS=y 1509CONFIG_AUTOFS_FS=y
1481CONFIG_AUTOFS4_FS=y 1510CONFIG_AUTOFS4_FS=y
1482# CONFIG_FUSE_FS is not set 1511# CONFIG_FUSE_FS is not set
@@ -1536,8 +1565,10 @@ CONFIG_JFFS2_RTIME=y
1536# CONFIG_JFFS2_RUBIN is not set 1565# CONFIG_JFFS2_RUBIN is not set
1537# CONFIG_CRAMFS is not set 1566# CONFIG_CRAMFS is not set
1538# CONFIG_VXFS_FS is not set 1567# CONFIG_VXFS_FS is not set
1568# CONFIG_MINIX_FS is not set
1539# CONFIG_HPFS_FS is not set 1569# CONFIG_HPFS_FS is not set
1540# CONFIG_QNX4FS_FS is not set 1570# CONFIG_QNX4FS_FS is not set
1571# CONFIG_ROMFS_FS is not set
1541# CONFIG_SYSV_FS is not set 1572# CONFIG_SYSV_FS is not set
1542# CONFIG_UFS_FS is not set 1573# CONFIG_UFS_FS is not set
1543CONFIG_NETWORK_FILESYSTEMS=y 1574CONFIG_NETWORK_FILESYSTEMS=y
@@ -1629,7 +1660,6 @@ CONFIG_NLS_ISO8859_1=y
1629# CONFIG_NLS_KOI8_U is not set 1660# CONFIG_NLS_KOI8_U is not set
1630# CONFIG_NLS_UTF8 is not set 1661# CONFIG_NLS_UTF8 is not set
1631# CONFIG_DLM is not set 1662# CONFIG_DLM is not set
1632# CONFIG_UCC_SLOW is not set
1633 1663
1634# 1664#
1635# Library routines 1665# Library routines
@@ -1647,11 +1677,6 @@ CONFIG_PLIST=y
1647CONFIG_HAS_IOMEM=y 1677CONFIG_HAS_IOMEM=y
1648CONFIG_HAS_IOPORT=y 1678CONFIG_HAS_IOPORT=y
1649CONFIG_HAS_DMA=y 1679CONFIG_HAS_DMA=y
1650CONFIG_INSTRUMENTATION=y
1651CONFIG_PROFILING=y
1652CONFIG_OPROFILE=y
1653# CONFIG_KPROBES is not set
1654# CONFIG_MARKERS is not set
1655 1680
1656# 1681#
1657# Kernel hacking 1682# Kernel hacking
@@ -1670,6 +1695,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1670# CONFIG_SCHEDSTATS is not set 1695# CONFIG_SCHEDSTATS is not set
1671# CONFIG_TIMER_STATS is not set 1696# CONFIG_TIMER_STATS is not set
1672# CONFIG_SLUB_DEBUG_ON is not set 1697# CONFIG_SLUB_DEBUG_ON is not set
1698# CONFIG_SLUB_STATS is not set
1673# CONFIG_DEBUG_RT_MUTEXES is not set 1699# CONFIG_DEBUG_RT_MUTEXES is not set
1674# CONFIG_RT_MUTEX_TESTER is not set 1700# CONFIG_RT_MUTEX_TESTER is not set
1675# CONFIG_DEBUG_SPINLOCK is not set 1701# CONFIG_DEBUG_SPINLOCK is not set
@@ -1682,9 +1708,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
1682# CONFIG_DEBUG_VM is not set 1708# CONFIG_DEBUG_VM is not set
1683# CONFIG_DEBUG_LIST is not set 1709# CONFIG_DEBUG_LIST is not set
1684# CONFIG_DEBUG_SG is not set 1710# CONFIG_DEBUG_SG is not set
1685# CONFIG_FORCED_INLINING is not set
1686# CONFIG_BOOT_PRINTK_DELAY is not set 1711# CONFIG_BOOT_PRINTK_DELAY is not set
1687# CONFIG_RCU_TORTURE_TEST is not set 1712# CONFIG_RCU_TORTURE_TEST is not set
1713# CONFIG_BACKTRACE_SELF_TEST is not set
1688# CONFIG_FAULT_INJECTION is not set 1714# CONFIG_FAULT_INJECTION is not set
1689# CONFIG_SAMPLES is not set 1715# CONFIG_SAMPLES is not set
1690# CONFIG_DEBUG_STACKOVERFLOW is not set 1716# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -1710,7 +1736,9 @@ CONFIG_ASYNC_MEMCPY=y
1710CONFIG_ASYNC_XOR=y 1736CONFIG_ASYNC_XOR=y
1711CONFIG_CRYPTO=y 1737CONFIG_CRYPTO=y
1712CONFIG_CRYPTO_ALGAPI=y 1738CONFIG_CRYPTO_ALGAPI=y
1739CONFIG_CRYPTO_AEAD=y
1713CONFIG_CRYPTO_BLKCIPHER=y 1740CONFIG_CRYPTO_BLKCIPHER=y
1741# CONFIG_CRYPTO_SEQIV is not set
1714CONFIG_CRYPTO_HASH=y 1742CONFIG_CRYPTO_HASH=y
1715CONFIG_CRYPTO_MANAGER=y 1743CONFIG_CRYPTO_MANAGER=y
1716CONFIG_CRYPTO_HMAC=y 1744CONFIG_CRYPTO_HMAC=y
@@ -1729,6 +1757,9 @@ CONFIG_CRYPTO_CBC=y
1729# CONFIG_CRYPTO_PCBC is not set 1757# CONFIG_CRYPTO_PCBC is not set
1730# CONFIG_CRYPTO_LRW is not set 1758# CONFIG_CRYPTO_LRW is not set
1731# CONFIG_CRYPTO_XTS is not set 1759# CONFIG_CRYPTO_XTS is not set
1760# CONFIG_CRYPTO_CTR is not set
1761# CONFIG_CRYPTO_GCM is not set
1762# CONFIG_CRYPTO_CCM is not set
1732# CONFIG_CRYPTO_CRYPTD is not set 1763# CONFIG_CRYPTO_CRYPTD is not set
1733CONFIG_CRYPTO_DES=y 1764CONFIG_CRYPTO_DES=y
1734# CONFIG_CRYPTO_FCRYPT is not set 1765# CONFIG_CRYPTO_FCRYPT is not set
@@ -1743,11 +1774,14 @@ CONFIG_CRYPTO_AES=y
1743# CONFIG_CRYPTO_KHAZAD is not set 1774# CONFIG_CRYPTO_KHAZAD is not set
1744# CONFIG_CRYPTO_ANUBIS is not set 1775# CONFIG_CRYPTO_ANUBIS is not set
1745# CONFIG_CRYPTO_SEED is not set 1776# CONFIG_CRYPTO_SEED is not set
1777# CONFIG_CRYPTO_SALSA20 is not set
1746# CONFIG_CRYPTO_DEFLATE is not set 1778# CONFIG_CRYPTO_DEFLATE is not set
1747# CONFIG_CRYPTO_MICHAEL_MIC is not set 1779# CONFIG_CRYPTO_MICHAEL_MIC is not set
1748# CONFIG_CRYPTO_CRC32C is not set 1780# CONFIG_CRYPTO_CRC32C is not set
1749# CONFIG_CRYPTO_CAMELLIA is not set 1781# CONFIG_CRYPTO_CAMELLIA is not set
1750# CONFIG_CRYPTO_TEST is not set 1782# CONFIG_CRYPTO_TEST is not set
1751# CONFIG_CRYPTO_AUTHENC is not set 1783CONFIG_CRYPTO_AUTHENC=y
1784# CONFIG_CRYPTO_LZO is not set
1752CONFIG_CRYPTO_HW=y 1785CONFIG_CRYPTO_HW=y
1786# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1753# CONFIG_PPC_CLOCK is not set 1787# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 59311ec0d422..4ec605521504 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -241,8 +241,12 @@ void discard_lazy_cpu_state(void)
241} 241}
242#endif /* CONFIG_SMP */ 242#endif /* CONFIG_SMP */
243 243
244static DEFINE_PER_CPU(unsigned long, current_dabr);
245
244int set_dabr(unsigned long dabr) 246int set_dabr(unsigned long dabr)
245{ 247{
248 __get_cpu_var(current_dabr) = dabr;
249
246#ifdef CONFIG_PPC_MERGE /* XXX for now */ 250#ifdef CONFIG_PPC_MERGE /* XXX for now */
247 if (ppc_md.set_dabr) 251 if (ppc_md.set_dabr)
248 return ppc_md.set_dabr(dabr); 252 return ppc_md.set_dabr(dabr);
@@ -259,8 +263,6 @@ int set_dabr(unsigned long dabr)
259DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); 263DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array);
260#endif 264#endif
261 265
262static DEFINE_PER_CPU(unsigned long, current_dabr);
263
264struct task_struct *__switch_to(struct task_struct *prev, 266struct task_struct *__switch_to(struct task_struct *prev,
265 struct task_struct *new) 267 struct task_struct *new)
266{ 268{
@@ -325,10 +327,8 @@ struct task_struct *__switch_to(struct task_struct *prev,
325 327
326#endif /* CONFIG_SMP */ 328#endif /* CONFIG_SMP */
327 329
328 if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr)) { 330 if (unlikely(__get_cpu_var(current_dabr) != new->thread.dabr))
329 set_dabr(new->thread.dabr); 331 set_dabr(new->thread.dabr);
330 __get_cpu_var(current_dabr) = new->thread.dabr;
331 }
332 332
333 new_thread = &new->thread; 333 new_thread = &new->thread;
334 old_thread = &current->thread; 334 old_thread = &current->thread;
diff --git a/arch/powerpc/oprofile/cell/vma_map.c b/arch/powerpc/oprofile/cell/vma_map.c
index 76ec1d16aef7..9a932177e70e 100644
--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
@@ -92,7 +92,7 @@ vma_map_add(struct vma_to_fileoffset_map *map, unsigned int vma,
92 * A pointer to the first vma_map in the generated list 92 * A pointer to the first vma_map in the generated list
93 * of vma_maps is returned. */ 93 * of vma_maps is returned. */
94struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, 94struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
95 unsigned long spu_elf_start) 95 unsigned long __spu_elf_start)
96{ 96{
97 static const unsigned char expected[EI_PAD] = { 97 static const unsigned char expected[EI_PAD] = {
98 [EI_MAG0] = ELFMAG0, 98 [EI_MAG0] = ELFMAG0,
@@ -107,9 +107,11 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
107 107
108 int grd_val; 108 int grd_val;
109 struct vma_to_fileoffset_map *map = NULL; 109 struct vma_to_fileoffset_map *map = NULL;
110 void __user *spu_elf_start = (void __user *)__spu_elf_start;
110 struct spu_overlay_info ovly; 111 struct spu_overlay_info ovly;
111 unsigned int overlay_tbl_offset = -1; 112 unsigned int overlay_tbl_offset = -1;
112 unsigned long phdr_start, shdr_start; 113 Elf32_Phdr __user *phdr_start;
114 Elf32_Shdr __user *shdr_start;
113 Elf32_Ehdr ehdr; 115 Elf32_Ehdr ehdr;
114 Elf32_Phdr phdr; 116 Elf32_Phdr phdr;
115 Elf32_Shdr shdr, shdr_str; 117 Elf32_Shdr shdr, shdr_str;
@@ -121,12 +123,12 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
121 unsigned int ovly_buf_table_sym = 0; 123 unsigned int ovly_buf_table_sym = 0;
122 unsigned int ovly_table_end_sym = 0; 124 unsigned int ovly_table_end_sym = 0;
123 unsigned int ovly_buf_table_end_sym = 0; 125 unsigned int ovly_buf_table_end_sym = 0;
124 unsigned long ovly_table; 126 struct spu_overlay_info __user *ovly_table;
125 unsigned int n_ovlys; 127 unsigned int n_ovlys;
126 128
127 /* Get and validate ELF header. */ 129 /* Get and validate ELF header. */
128 130
129 if (copy_from_user(&ehdr, (void *) spu_elf_start, sizeof (ehdr))) 131 if (copy_from_user(&ehdr, spu_elf_start, sizeof (ehdr)))
130 goto fail; 132 goto fail;
131 133
132 if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) { 134 if (memcmp(ehdr.e_ident, expected, EI_PAD) != 0) {
@@ -152,9 +154,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
152 154
153 /* Traverse program headers. */ 155 /* Traverse program headers. */
154 for (i = 0; i < ehdr.e_phnum; i++) { 156 for (i = 0; i < ehdr.e_phnum; i++) {
155 if (copy_from_user(&phdr, 157 if (copy_from_user(&phdr, phdr_start + i, sizeof(phdr)))
156 (void *) (phdr_start + i * sizeof(phdr)),
157 sizeof(phdr)))
158 goto fail; 158 goto fail;
159 159
160 if (phdr.p_type != PT_LOAD) 160 if (phdr.p_type != PT_LOAD)
@@ -171,9 +171,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
171 pr_debug("SPU_PROF: Created non-overlay maps\n"); 171 pr_debug("SPU_PROF: Created non-overlay maps\n");
172 /* Traverse section table and search for overlay-related symbols. */ 172 /* Traverse section table and search for overlay-related symbols. */
173 for (i = 0; i < ehdr.e_shnum; i++) { 173 for (i = 0; i < ehdr.e_shnum; i++) {
174 if (copy_from_user(&shdr, 174 if (copy_from_user(&shdr, shdr_start + i, sizeof(shdr)))
175 (void *) (shdr_start + i * sizeof(shdr)),
176 sizeof(shdr)))
177 goto fail; 175 goto fail;
178 176
179 if (shdr.sh_type != SHT_SYMTAB) 177 if (shdr.sh_type != SHT_SYMTAB)
@@ -182,8 +180,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
182 continue; 180 continue;
183 181
184 if (copy_from_user(&shdr_str, 182 if (copy_from_user(&shdr_str,
185 (void *) (shdr_start + shdr.sh_link * 183 shdr_start + shdr.sh_link,
186 sizeof(shdr)),
187 sizeof(shdr))) 184 sizeof(shdr)))
188 goto fail; 185 goto fail;
189 186
@@ -191,15 +188,15 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
191 goto fail;; 188 goto fail;;
192 189
193 for (j = 0; j < shdr.sh_size / sizeof (sym); j++) { 190 for (j = 0; j < shdr.sh_size / sizeof (sym); j++) {
194 if (copy_from_user(&sym, (void *) (spu_elf_start + 191 if (copy_from_user(&sym, spu_elf_start +
195 shdr.sh_offset + j * 192 shdr.sh_offset +
196 sizeof (sym)), 193 j * sizeof (sym),
197 sizeof (sym))) 194 sizeof (sym)))
198 goto fail; 195 goto fail;
199 196
200 if (copy_from_user(name, (void *) 197 if (copy_from_user(name,
201 (spu_elf_start + shdr_str.sh_offset + 198 spu_elf_start + shdr_str.sh_offset +
202 sym.st_name), 199 sym.st_name,
203 20)) 200 20))
204 goto fail; 201 goto fail;
205 202
@@ -245,9 +242,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
245 242
246 /* Traverse overlay table. */ 243 /* Traverse overlay table. */
247 for (i = 0; i < n_ovlys; i++) { 244 for (i = 0; i < n_ovlys; i++) {
248 if (copy_from_user(&ovly, (void *) 245 if (copy_from_user(&ovly, ovly_table + i, sizeof (ovly)))
249 (ovly_table + i * sizeof (ovly)),
250 sizeof (ovly)))
251 goto fail; 246 goto fail;
252 247
253 /* The ovly.vma/size/offset arguments are analogous to the same 248 /* The ovly.vma/size/offset arguments are analogous to the same
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index ca52b587166d..a977f200db89 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -763,7 +763,7 @@ void xics_request_IPIs(void)
763} 763}
764#endif /* CONFIG_SMP */ 764#endif /* CONFIG_SMP */
765 765
766void xics_teardown_cpu() 766void xics_teardown_cpu(void)
767{ 767{
768 int cpu = smp_processor_id(); 768 int cpu = smp_processor_id();
769 769
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 250958d1e3cb..9d4bd2229493 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/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.25-rc1 3# Linux kernel version: 2.6.25-rc3
4# Sun Feb 17 22:44:12 2008 4# Wed Mar 26 04:33:35 2008
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -55,9 +55,11 @@ CONFIG_POSIX_MQUEUE=y
55# CONFIG_IKCONFIG is not set 55# CONFIG_IKCONFIG is not set
56CONFIG_LOG_BUF_SHIFT=18 56CONFIG_LOG_BUF_SHIFT=18
57# CONFIG_CGROUPS is not set 57# CONFIG_CGROUPS is not set
58CONFIG_GROUP_SCHED=y
58CONFIG_FAIR_GROUP_SCHED=y 59CONFIG_FAIR_GROUP_SCHED=y
59CONFIG_FAIR_USER_SCHED=y 60CONFIG_RT_GROUP_SCHED=y
60# CONFIG_FAIR_CGROUP_SCHED is not set 61CONFIG_USER_SCHED=y
62# CONFIG_CGROUP_SCHED is not set
61CONFIG_SYSFS_DEPRECATED=y 63CONFIG_SYSFS_DEPRECATED=y
62CONFIG_RELAY=y 64CONFIG_RELAY=y
63CONFIG_NAMESPACES=y 65CONFIG_NAMESPACES=y
@@ -482,6 +484,7 @@ CONFIG_SCSI_LOWLEVEL=y
482# CONFIG_SCSI_IPS is not set 484# CONFIG_SCSI_IPS is not set
483# CONFIG_SCSI_INITIO is not set 485# CONFIG_SCSI_INITIO is not set
484# CONFIG_SCSI_INIA100 is not set 486# CONFIG_SCSI_INIA100 is not set
487# CONFIG_SCSI_MVSAS is not set
485# CONFIG_SCSI_STEX is not set 488# CONFIG_SCSI_STEX is not set
486# CONFIG_SCSI_SYM53C8XX_2 is not set 489# CONFIG_SCSI_SYM53C8XX_2 is not set
487# CONFIG_SCSI_QLOGIC_1280 is not set 490# CONFIG_SCSI_QLOGIC_1280 is not set
@@ -810,6 +813,7 @@ CONFIG_HWMON=y
810# CONFIG_SENSORS_ADM1031 is not set 813# CONFIG_SENSORS_ADM1031 is not set
811# CONFIG_SENSORS_ADM9240 is not set 814# CONFIG_SENSORS_ADM9240 is not set
812# CONFIG_SENSORS_ADT7470 is not set 815# CONFIG_SENSORS_ADT7470 is not set
816# CONFIG_SENSORS_ADT7473 is not set
813# CONFIG_SENSORS_ATXP1 is not set 817# CONFIG_SENSORS_ATXP1 is not set
814# CONFIG_SENSORS_DS1621 is not set 818# CONFIG_SENSORS_DS1621 is not set
815# CONFIG_SENSORS_I5K_AMB is not set 819# CONFIG_SENSORS_I5K_AMB is not set
diff --git a/arch/sparc64/kernel/cpu.c b/arch/sparc64/kernel/cpu.c
index dd5d28e3d798..0097c08dc600 100644
--- a/arch/sparc64/kernel/cpu.c
+++ b/arch/sparc64/kernel/cpu.c
@@ -15,6 +15,8 @@
15#include <asm/spitfire.h> 15#include <asm/spitfire.h>
16#include <asm/oplib.h> 16#include <asm/oplib.h>
17 17
18#include "entry.h"
19
18DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; 20DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 };
19 21
20struct cpu_iu_info { 22struct cpu_iu_info {
@@ -65,8 +67,6 @@ static struct cpu_iu_info linux_sparc_chips[] = {
65char *sparc_cpu_type; 67char *sparc_cpu_type;
66char *sparc_fpu_type; 68char *sparc_fpu_type;
67 69
68unsigned int fsr_storage;
69
70static void __init sun4v_cpu_probe(void) 70static void __init sun4v_cpu_probe(void)
71{ 71{
72 switch (sun4v_chip_type) { 72 switch (sun4v_chip_type) {
@@ -94,8 +94,10 @@ void __init cpu_probe(void)
94 unsigned long ver, fpu_vers, manuf, impl, fprs; 94 unsigned long ver, fpu_vers, manuf, impl, fprs;
95 int i; 95 int i;
96 96
97 if (tlb_type == hypervisor) 97 if (tlb_type == hypervisor) {
98 return sun4v_cpu_probe(); 98 sun4v_cpu_probe();
99 return;
100 }
99 101
100 fprs = fprs_read(); 102 fprs = fprs_read();
101 fprs_write(FPRS_FEF); 103 fprs_write(FPRS_FEF);
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
index 6be4d2d2904e..49eca4b1cf25 100644
--- a/arch/sparc64/kernel/entry.S
+++ b/arch/sparc64/kernel/entry.S
@@ -1705,6 +1705,36 @@ __flushw_user:
17052: retl 17052: retl
1706 nop 1706 nop
1707 1707
1708 /* Flush %fp and %i7 to the stack for all register
1709 * windows active inside of the cpu. This allows
1710 * show_stack_trace() to avoid using an expensive
1711 * 'flushw'.
1712 */
1713 .globl stack_trace_flush
1714 .type stack_trace_flush,#function
1715stack_trace_flush:
1716 rdpr %pstate, %o0
1717 wrpr %o0, PSTATE_IE, %pstate
1718
1719 rdpr %cwp, %g1
1720 rdpr %canrestore, %g2
1721 sub %g1, 1, %g3
1722
17231: brz,pn %g2, 2f
1724 sub %g2, 1, %g2
1725 wrpr %g3, %cwp
1726 stx %fp, [%sp + STACK_BIAS + RW_V9_I6]
1727 stx %i7, [%sp + STACK_BIAS + RW_V9_I7]
1728 ba,pt %xcc, 1b
1729 sub %g3, 1, %g3
1730
17312: wrpr %g1, %cwp
1732 wrpr %o0, %pstate
1733
1734 retl
1735 nop
1736 .size stack_trace_flush,.-stack_trace_flush
1737
1708#ifdef CONFIG_SMP 1738#ifdef CONFIG_SMP
1709 .globl hard_smp_processor_id 1739 .globl hard_smp_processor_id
1710hard_smp_processor_id: 1740hard_smp_processor_id:
diff --git a/arch/sparc64/kernel/entry.h b/arch/sparc64/kernel/entry.h
new file mode 100644
index 000000000000..4a91e9c6d31b
--- /dev/null
+++ b/arch/sparc64/kernel/entry.h
@@ -0,0 +1,196 @@
1#ifndef _ENTRY_H
2#define _ENTRY_H
3
4#include <linux/kernel.h>
5#include <linux/types.h>
6#include <linux/init.h>
7
8extern char *sparc_cpu_type;
9extern char *sparc_fpu_type;
10
11extern void __init per_cpu_patch(void);
12extern void __init sun4v_patch(void);
13extern void __init boot_cpu_id_too_large(int cpu);
14extern unsigned int dcache_parity_tl1_occurred;
15extern unsigned int icache_parity_tl1_occurred;
16
17extern asmlinkage void update_perfctrs(void);
18extern asmlinkage void sparc_breakpoint(struct pt_regs *regs);
19extern void timer_interrupt(int irq, struct pt_regs *regs);
20
21extern void do_notify_resume(struct pt_regs *regs,
22 unsigned long orig_i0,
23 int restart_syscall,
24 unsigned long thread_info_flags);
25
26extern asmlinkage void syscall_trace(struct pt_regs *regs,
27 int syscall_exit_p);
28
29extern void bad_trap_tl1(struct pt_regs *regs, long lvl);
30
31extern void do_fpe_common(struct pt_regs *regs);
32extern void do_fpieee(struct pt_regs *regs);
33extern void do_fpother(struct pt_regs *regs);
34extern void do_tof(struct pt_regs *regs);
35extern void do_div0(struct pt_regs *regs);
36extern void do_illegal_instruction(struct pt_regs *regs);
37extern void mem_address_unaligned(struct pt_regs *regs,
38 unsigned long sfar,
39 unsigned long sfsr);
40extern void sun4v_do_mna(struct pt_regs *regs,
41 unsigned long addr,
42 unsigned long type_ctx);
43extern void do_privop(struct pt_regs *regs);
44extern void do_privact(struct pt_regs *regs);
45extern void do_cee(struct pt_regs *regs);
46extern void do_cee_tl1(struct pt_regs *regs);
47extern void do_dae_tl1(struct pt_regs *regs);
48extern void do_iae_tl1(struct pt_regs *regs);
49extern void do_div0_tl1(struct pt_regs *regs);
50extern void do_fpdis_tl1(struct pt_regs *regs);
51extern void do_fpieee_tl1(struct pt_regs *regs);
52extern void do_fpother_tl1(struct pt_regs *regs);
53extern void do_ill_tl1(struct pt_regs *regs);
54extern void do_irq_tl1(struct pt_regs *regs);
55extern void do_lddfmna_tl1(struct pt_regs *regs);
56extern void do_stdfmna_tl1(struct pt_regs *regs);
57extern void do_paw(struct pt_regs *regs);
58extern void do_paw_tl1(struct pt_regs *regs);
59extern void do_vaw(struct pt_regs *regs);
60extern void do_vaw_tl1(struct pt_regs *regs);
61extern void do_tof_tl1(struct pt_regs *regs);
62extern void do_getpsr(struct pt_regs *regs);
63
64extern void spitfire_insn_access_exception(struct pt_regs *regs,
65 unsigned long sfsr,
66 unsigned long sfar);
67extern void spitfire_insn_access_exception_tl1(struct pt_regs *regs,
68 unsigned long sfsr,
69 unsigned long sfar);
70extern void spitfire_data_access_exception(struct pt_regs *regs,
71 unsigned long sfsr,
72 unsigned long sfar);
73extern void spitfire_data_access_exception_tl1(struct pt_regs *regs,
74 unsigned long sfsr,
75 unsigned long sfar);
76extern void spitfire_access_error(struct pt_regs *regs,
77 unsigned long status_encoded,
78 unsigned long afar);
79
80extern void cheetah_fecc_handler(struct pt_regs *regs,
81 unsigned long afsr,
82 unsigned long afar);
83extern void cheetah_cee_handler(struct pt_regs *regs,
84 unsigned long afsr,
85 unsigned long afar);
86extern void cheetah_deferred_handler(struct pt_regs *regs,
87 unsigned long afsr,
88 unsigned long afar);
89extern void cheetah_plus_parity_error(int type, struct pt_regs *regs);
90
91extern void sun4v_insn_access_exception(struct pt_regs *regs,
92 unsigned long addr,
93 unsigned long type_ctx);
94extern void sun4v_insn_access_exception_tl1(struct pt_regs *regs,
95 unsigned long addr,
96 unsigned long type_ctx);
97extern void sun4v_data_access_exception(struct pt_regs *regs,
98 unsigned long addr,
99 unsigned long type_ctx);
100extern void sun4v_data_access_exception_tl1(struct pt_regs *regs,
101 unsigned long addr,
102 unsigned long type_ctx);
103extern void sun4v_resum_error(struct pt_regs *regs,
104 unsigned long offset);
105extern void sun4v_resum_overflow(struct pt_regs *regs);
106extern void sun4v_nonresum_error(struct pt_regs *regs,
107 unsigned long offset);
108extern void sun4v_nonresum_overflow(struct pt_regs *regs);
109
110extern unsigned long sun4v_err_itlb_vaddr;
111extern unsigned long sun4v_err_itlb_ctx;
112extern unsigned long sun4v_err_itlb_pte;
113extern unsigned long sun4v_err_itlb_error;
114
115extern void sun4v_itlb_error_report(struct pt_regs *regs, int tl);
116
117extern unsigned long sun4v_err_dtlb_vaddr;
118extern unsigned long sun4v_err_dtlb_ctx;
119extern unsigned long sun4v_err_dtlb_pte;
120extern unsigned long sun4v_err_dtlb_error;
121
122extern void sun4v_dtlb_error_report(struct pt_regs *regs, int tl);
123extern void hypervisor_tlbop_error(unsigned long err,
124 unsigned long op);
125extern void hypervisor_tlbop_error_xcall(unsigned long err,
126 unsigned long op);
127
128/* WARNING: The error trap handlers in assembly know the precise
129 * layout of the following structure.
130 *
131 * C-level handlers in traps.c use this information to log the
132 * error and then determine how to recover (if possible).
133 */
134struct cheetah_err_info {
135/*0x00*/u64 afsr;
136/*0x08*/u64 afar;
137
138 /* D-cache state */
139/*0x10*/u64 dcache_data[4]; /* The actual data */
140/*0x30*/u64 dcache_index; /* D-cache index */
141/*0x38*/u64 dcache_tag; /* D-cache tag/valid */
142/*0x40*/u64 dcache_utag; /* D-cache microtag */
143/*0x48*/u64 dcache_stag; /* D-cache snooptag */
144
145 /* I-cache state */
146/*0x50*/u64 icache_data[8]; /* The actual insns + predecode */
147/*0x90*/u64 icache_index; /* I-cache index */
148/*0x98*/u64 icache_tag; /* I-cache phys tag */
149/*0xa0*/u64 icache_utag; /* I-cache microtag */
150/*0xa8*/u64 icache_stag; /* I-cache snooptag */
151/*0xb0*/u64 icache_upper; /* I-cache upper-tag */
152/*0xb8*/u64 icache_lower; /* I-cache lower-tag */
153
154 /* E-cache state */
155/*0xc0*/u64 ecache_data[4]; /* 32 bytes from staging registers */
156/*0xe0*/u64 ecache_index; /* E-cache index */
157/*0xe8*/u64 ecache_tag; /* E-cache tag/state */
158
159/*0xf0*/u64 __pad[32 - 30];
160};
161#define CHAFSR_INVALID ((u64)-1L)
162
163/* This is allocated at boot time based upon the largest hardware
164 * cpu ID in the system. We allocate two entries per cpu, one for
165 * TL==0 logging and one for TL >= 1 logging.
166 */
167extern struct cheetah_err_info *cheetah_error_log;
168
169/* UPA nodes send interrupt packet to UltraSparc with first data reg
170 * value low 5 (7 on Starfire) bits holding the IRQ identifier being
171 * delivered. We must translate this into a non-vector IRQ so we can
172 * set the softint on this cpu.
173 *
174 * To make processing these packets efficient and race free we use
175 * an array of irq buckets below. The interrupt vector handler in
176 * entry.S feeds incoming packets into per-cpu pil-indexed lists.
177 *
178 * If you make changes to ino_bucket, please update hand coded assembler
179 * of the vectored interrupt trap handler(s) in entry.S and sun4v_ivec.S
180 */
181struct ino_bucket {
182/*0x00*/unsigned long __irq_chain_pa;
183
184 /* Virtual interrupt number assigned to this INO. */
185/*0x08*/unsigned int __virt_irq;
186/*0x0c*/unsigned int __pad;
187};
188
189extern struct ino_bucket *ivector_table;
190extern unsigned long ivector_table_pa;
191
192extern void handler_irq(int irq, struct pt_regs *regs);
193extern void init_irqwork_curcpu(void);
194extern void __cpuinit sun4v_register_mondo_queues(int this_cpu);
195
196#endif /* _ENTRY_H */
diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c
index fbaab3497bfd..b781d3d54fb8 100644
--- a/arch/sparc64/kernel/iommu.c
+++ b/arch/sparc64/kernel/iommu.c
@@ -626,7 +626,7 @@ static int dma_4u_map_sg(struct device *dev, struct scatterlist *sglist,
626iommu_map_failed: 626iommu_map_failed:
627 for_each_sg(sglist, s, nelems, i) { 627 for_each_sg(sglist, s, nelems, i) {
628 if (s->dma_length != 0) { 628 if (s->dma_length != 0) {
629 unsigned long vaddr, npages, entry, i; 629 unsigned long vaddr, npages, entry, j;
630 iopte_t *base; 630 iopte_t *base;
631 631
632 vaddr = s->dma_address & IO_PAGE_MASK; 632 vaddr = s->dma_address & IO_PAGE_MASK;
@@ -637,8 +637,8 @@ iommu_map_failed:
637 >> IO_PAGE_SHIFT; 637 >> IO_PAGE_SHIFT;
638 base = iommu->page_table + entry; 638 base = iommu->page_table + entry;
639 639
640 for (i = 0; i < npages; i++) 640 for (j = 0; j < npages; j++)
641 iopte_make_dummy(iommu, base + i); 641 iopte_make_dummy(iommu, base + j);
642 642
643 s->dma_address = DMA_ERROR_CODE; 643 s->dma_address = DMA_ERROR_CODE;
644 s->dma_length = 0; 644 s->dma_length = 0;
@@ -803,7 +803,7 @@ static void dma_4u_sync_sg_for_cpu(struct device *dev,
803 spin_unlock_irqrestore(&iommu->lock, flags); 803 spin_unlock_irqrestore(&iommu->lock, flags);
804} 804}
805 805
806const struct dma_ops sun4u_dma_ops = { 806static const struct dma_ops sun4u_dma_ops = {
807 .alloc_coherent = dma_4u_alloc_coherent, 807 .alloc_coherent = dma_4u_alloc_coherent,
808 .free_coherent = dma_4u_free_coherent, 808 .free_coherent = dma_4u_free_coherent,
809 .map_single = dma_4u_map_single, 809 .map_single = dma_4u_map_single,
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 5ec06c8c7fea..eb88bd6e674e 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -44,27 +44,10 @@
44#include <asm/hypervisor.h> 44#include <asm/hypervisor.h>
45#include <asm/cacheflush.h> 45#include <asm/cacheflush.h>
46 46
47/* UPA nodes send interrupt packet to UltraSparc with first data reg 47#include "entry.h"
48 * value low 5 (7 on Starfire) bits holding the IRQ identifier being
49 * delivered. We must translate this into a non-vector IRQ so we can
50 * set the softint on this cpu.
51 *
52 * To make processing these packets efficient and race free we use
53 * an array of irq buckets below. The interrupt vector handler in
54 * entry.S feeds incoming packets into per-cpu pil-indexed lists.
55 *
56 * If you make changes to ino_bucket, please update hand coded assembler
57 * of the vectored interrupt trap handler(s) in entry.S and sun4v_ivec.S
58 */
59struct ino_bucket {
60/*0x00*/unsigned long __irq_chain_pa;
61
62 /* Virtual interrupt number assigned to this INO. */
63/*0x08*/unsigned int __virt_irq;
64/*0x0c*/unsigned int __pad;
65};
66 48
67#define NUM_IVECS (IMAP_INR + 1) 49#define NUM_IVECS (IMAP_INR + 1)
50
68struct ino_bucket *ivector_table; 51struct ino_bucket *ivector_table;
69unsigned long ivector_table_pa; 52unsigned long ivector_table_pa;
70 53
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index 9a1ba1fe859d..aaae865e7932 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -35,6 +35,9 @@
35#include <asm/spitfire.h> 35#include <asm/spitfire.h>
36#include <asm/page.h> 36#include <asm/page.h>
37#include <asm/cpudata.h> 37#include <asm/cpudata.h>
38#include <asm/cacheflush.h>
39
40#include "entry.h"
38 41
39/* #define ALLOW_INIT_TRACING */ 42/* #define ALLOW_INIT_TRACING */
40 43
@@ -67,6 +70,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
67 if (tlb_type == hypervisor) 70 if (tlb_type == hypervisor)
68 return; 71 return;
69 72
73 preempt_disable();
74
70#ifdef DCACHE_ALIASING_POSSIBLE 75#ifdef DCACHE_ALIASING_POSSIBLE
71 /* If bit 13 of the kernel address we used to access the 76 /* If bit 13 of the kernel address we used to access the
72 * user page is the same as the virtual address that page 77 * user page is the same as the virtual address that page
@@ -105,6 +110,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page,
105 for (; start < end; start += icache_line_size) 110 for (; start < end; start += icache_line_size)
106 flushi(start); 111 flushi(start);
107 } 112 }
113
114 preempt_enable();
108} 115}
109 116
110enum sparc_regset { 117enum sparc_regset {
@@ -382,6 +389,7 @@ static const struct user_regset_view user_sparc64_view = {
382 .regsets = sparc64_regsets, .n = ARRAY_SIZE(sparc64_regsets) 389 .regsets = sparc64_regsets, .n = ARRAY_SIZE(sparc64_regsets)
383}; 390};
384 391
392#ifdef CONFIG_COMPAT
385static int genregs32_get(struct task_struct *target, 393static int genregs32_get(struct task_struct *target,
386 const struct user_regset *regset, 394 const struct user_regset *regset,
387 unsigned int pos, unsigned int count, 395 unsigned int pos, unsigned int count,
@@ -676,14 +684,18 @@ static const struct user_regset_view user_sparc32_view = {
676 .name = "sparc", .e_machine = EM_SPARC, 684 .name = "sparc", .e_machine = EM_SPARC,
677 .regsets = sparc32_regsets, .n = ARRAY_SIZE(sparc32_regsets) 685 .regsets = sparc32_regsets, .n = ARRAY_SIZE(sparc32_regsets)
678}; 686};
687#endif /* CONFIG_COMPAT */
679 688
680const struct user_regset_view *task_user_regset_view(struct task_struct *task) 689const struct user_regset_view *task_user_regset_view(struct task_struct *task)
681{ 690{
691#ifdef CONFIG_COMPAT
682 if (test_tsk_thread_flag(task, TIF_32BIT)) 692 if (test_tsk_thread_flag(task, TIF_32BIT))
683 return &user_sparc32_view; 693 return &user_sparc32_view;
694#endif
684 return &user_sparc64_view; 695 return &user_sparc64_view;
685} 696}
686 697
698#ifdef CONFIG_COMPAT
687struct compat_fps { 699struct compat_fps {
688 unsigned int regs[32]; 700 unsigned int regs[32];
689 unsigned int fsr; 701 unsigned int fsr;
@@ -798,6 +810,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
798 810
799 return ret; 811 return ret;
800} 812}
813#endif /* CONFIG_COMPAT */
801 814
802struct fps { 815struct fps {
803 unsigned int regs[64]; 816 unsigned int regs[64];
@@ -807,11 +820,14 @@ struct fps {
807long arch_ptrace(struct task_struct *child, long request, long addr, long data) 820long arch_ptrace(struct task_struct *child, long request, long addr, long data)
808{ 821{
809 const struct user_regset_view *view = task_user_regset_view(child); 822 const struct user_regset_view *view = task_user_regset_view(child);
810 struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
811 unsigned long addr2 = task_pt_regs(current)->u_regs[UREG_I4]; 823 unsigned long addr2 = task_pt_regs(current)->u_regs[UREG_I4];
812 struct fps __user *fps = (struct fps __user *) addr; 824 struct pt_regs __user *pregs;
825 struct fps __user *fps;
813 int ret; 826 int ret;
814 827
828 pregs = (struct pt_regs __user *) (unsigned long) addr;
829 fps = (struct fps __user *) (unsigned long) addr;
830
815 switch (request) { 831 switch (request) {
816 case PTRACE_PEEKUSR: 832 case PTRACE_PEEKUSR:
817 ret = (addr != 0) ? -EIO : 0; 833 ret = (addr != 0) ? -EIO : 0;
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index d036dbe72864..6acb4c51cfe4 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -51,6 +51,8 @@
51#include <net/ipconfig.h> 51#include <net/ipconfig.h>
52#endif 52#endif
53 53
54#include "entry.h"
55
54/* Used to synchronize accesses to NatSemi SUPER I/O chip configure 56/* Used to synchronize accesses to NatSemi SUPER I/O chip configure
55 * operations in asm/ns87303.h 57 * operations in asm/ns87303.h
56 */ 58 */
@@ -335,9 +337,6 @@ void __init setup_arch(char **cmdline_p)
335 337
336/* BUFFER is PAGE_SIZE bytes long. */ 338/* BUFFER is PAGE_SIZE bytes long. */
337 339
338extern char *sparc_cpu_type;
339extern char *sparc_fpu_type;
340
341extern void smp_info(struct seq_file *); 340extern void smp_info(struct seq_file *);
342extern void smp_bogo(struct seq_file *); 341extern void smp_bogo(struct seq_file *);
343extern void mmu_info(struct seq_file *); 342extern void mmu_info(struct seq_file *);
diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c
index fb13775b3682..94a9d64208ee 100644
--- a/arch/sparc64/kernel/signal.c
+++ b/arch/sparc64/kernel/signal.c
@@ -32,6 +32,9 @@
32#include <asm/siginfo.h> 32#include <asm/siginfo.h>
33#include <asm/visasm.h> 33#include <asm/visasm.h>
34 34
35#include "entry.h"
36#include "systbls.h"
37
35#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 38#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
36 39
37/* {set, get}context() needed for 64-bit SparcLinux userland. */ 40/* {set, get}context() needed for 64-bit SparcLinux userland. */
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 5a1126b363a4..59f020d69d4c 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1,6 +1,6 @@
1/* smp.c: Sparc64 SMP support. 1/* smp.c: Sparc64 SMP support.
2 * 2 *
3 * Copyright (C) 1997, 2007 David S. Miller (davem@davemloft.net) 3 * Copyright (C) 1997, 2007, 2008 David S. Miller (davem@davemloft.net)
4 */ 4 */
5 5
6#include <linux/module.h> 6#include <linux/module.h>
@@ -30,6 +30,7 @@
30#include <asm/cpudata.h> 30#include <asm/cpudata.h>
31#include <asm/hvtramp.h> 31#include <asm/hvtramp.h>
32#include <asm/io.h> 32#include <asm/io.h>
33#include <asm/timer.h>
33 34
34#include <asm/irq.h> 35#include <asm/irq.h>
35#include <asm/irq_regs.h> 36#include <asm/irq_regs.h>
diff --git a/arch/sparc64/kernel/stacktrace.c b/arch/sparc64/kernel/stacktrace.c
index 47f92a59be18..84d39e873e88 100644
--- a/arch/sparc64/kernel/stacktrace.c
+++ b/arch/sparc64/kernel/stacktrace.c
@@ -2,13 +2,15 @@
2#include <linux/stacktrace.h> 2#include <linux/stacktrace.h>
3#include <linux/thread_info.h> 3#include <linux/thread_info.h>
4#include <asm/ptrace.h> 4#include <asm/ptrace.h>
5#include <asm/stacktrace.h>
5 6
6void save_stack_trace(struct stack_trace *trace) 7void save_stack_trace(struct stack_trace *trace)
7{ 8{
8 unsigned long ksp, fp, thread_base; 9 unsigned long ksp, fp, thread_base;
9 struct thread_info *tp = task_thread_info(current); 10 struct thread_info *tp = task_thread_info(current);
10 11
11 flushw_all(); 12 stack_trace_flush();
13
12 __asm__ __volatile__( 14 __asm__ __volatile__(
13 "mov %%fp, %0" 15 "mov %%fp, %0"
14 : "=r" (ksp) 16 : "=r" (ksp)
diff --git a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c
index 134d801579f9..f952745d0f3d 100644
--- a/arch/sparc64/kernel/sys_sparc.c
+++ b/arch/sparc64/kernel/sys_sparc.c
@@ -1,5 +1,4 @@
1/* $Id: sys_sparc.c,v 1.57 2002/02/09 19:49:30 davem Exp $ 1/* linux/arch/sparc64/kernel/sys_sparc.c
2 * linux/arch/sparc64/kernel/sys_sparc.c
3 * 2 *
4 * This file contains various random system calls that 3 * This file contains various random system calls that
5 * have a non-standard calling sequence on the Linux/sparc 4 * have a non-standard calling sequence on the Linux/sparc
@@ -30,6 +29,9 @@
30#include <asm/perfctr.h> 29#include <asm/perfctr.h>
31#include <asm/unistd.h> 30#include <asm/unistd.h>
32 31
32#include "entry.h"
33#include "systbls.h"
34
33/* #define DEBUG_UNIMP_SYSCALL */ 35/* #define DEBUG_UNIMP_SYSCALL */
34 36
35asmlinkage unsigned long sys_getpagesize(void) 37asmlinkage unsigned long sys_getpagesize(void)
@@ -445,7 +447,8 @@ asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second,
445 goto out; 447 goto out;
446 case SEMTIMEDOP: 448 case SEMTIMEDOP:
447 err = sys_semtimedop(first, ptr, (unsigned)second, 449 err = sys_semtimedop(first, ptr, (unsigned)second,
448 (const struct timespec __user *) fifth); 450 (const struct timespec __user *)
451 (unsigned long) fifth);
449 goto out; 452 goto out;
450 case SEMGET: 453 case SEMGET:
451 err = sys_semget(first, (int)second, (int)third); 454 err = sys_semget(first, (int)second, (int)third);
@@ -788,7 +791,7 @@ asmlinkage long sys_utrap_install(utrap_entry_t type,
788 } else { 791 } else {
789 if ((utrap_handler_t)current_thread_info()->utraps[type] != new_p && 792 if ((utrap_handler_t)current_thread_info()->utraps[type] != new_p &&
790 current_thread_info()->utraps[0] > 1) { 793 current_thread_info()->utraps[0] > 1) {
791 long *p = current_thread_info()->utraps; 794 unsigned long *p = current_thread_info()->utraps;
792 795
793 current_thread_info()->utraps = 796 current_thread_info()->utraps =
794 kmalloc((UT_TRAP_INSTRUCTION_31+1)*sizeof(long), 797 kmalloc((UT_TRAP_INSTRUCTION_31+1)*sizeof(long),
@@ -816,7 +819,8 @@ asmlinkage long sys_utrap_install(utrap_entry_t type,
816 return 0; 819 return 0;
817} 820}
818 821
819long sparc_memory_ordering(unsigned long model, struct pt_regs *regs) 822asmlinkage long sparc_memory_ordering(unsigned long model,
823 struct pt_regs *regs)
820{ 824{
821 if (model >= 3) 825 if (model >= 3)
822 return -EINVAL; 826 return -EINVAL;
diff --git a/arch/sparc64/kernel/systbls.h b/arch/sparc64/kernel/systbls.h
new file mode 100644
index 000000000000..8a0d20a35d0c
--- /dev/null
+++ b/arch/sparc64/kernel/systbls.h
@@ -0,0 +1,53 @@
1#ifndef _SYSTBLS_H
2#define _SYSTBLS_H
3
4#include <linux/kernel.h>
5#include <linux/types.h>
6#include <linux/utsname.h>
7#include <asm/utrap.h>
8#include <asm/signal.h>
9
10extern asmlinkage unsigned long sys_getpagesize(void);
11extern asmlinkage unsigned long sparc_brk(unsigned long brk);
12extern asmlinkage long sparc_pipe(struct pt_regs *regs);
13extern asmlinkage long sys_ipc(unsigned int call, int first,
14 unsigned long second,
15 unsigned long third,
16 void __user *ptr, long fifth);
17extern asmlinkage long sparc64_newuname(struct new_utsname __user *name);
18extern asmlinkage long sparc64_personality(unsigned long personality);
19extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
20 unsigned long prot, unsigned long flags,
21 unsigned long fd, unsigned long off);
22extern asmlinkage long sys64_munmap(unsigned long addr, size_t len);
23extern asmlinkage unsigned long sys64_mremap(unsigned long addr,
24 unsigned long old_len,
25 unsigned long new_len,
26 unsigned long flags,
27 unsigned long new_addr);
28extern asmlinkage unsigned long c_sys_nis_syscall(struct pt_regs *regs);
29extern asmlinkage long sys_getdomainname(char __user *name, int len);
30extern asmlinkage long solaris_syscall(struct pt_regs *regs);
31extern asmlinkage long sunos_syscall(struct pt_regs *regs);
32extern asmlinkage long sys_utrap_install(utrap_entry_t type,
33 utrap_handler_t new_p,
34 utrap_handler_t new_d,
35 utrap_handler_t __user *old_p,
36 utrap_handler_t __user *old_d);
37extern asmlinkage long sparc_memory_ordering(unsigned long model,
38 struct pt_regs *regs);
39extern asmlinkage long sys_rt_sigaction(int sig,
40 const struct sigaction __user *act,
41 struct sigaction __user *oact,
42 void __user *restorer,
43 size_t sigsetsize);
44extern asmlinkage long sys_perfctr(int opcode, unsigned long arg0,
45 unsigned long arg1, unsigned long arg2);
46
47extern asmlinkage void sparc64_set_context(struct pt_regs *regs);
48extern asmlinkage void sparc64_get_context(struct pt_regs *regs);
49extern asmlinkage long sys_sigpause(unsigned int set);
50extern asmlinkage long sys_sigsuspend(old_sigset_t set);
51extern void do_rt_sigreturn(struct pt_regs *regs);
52
53#endif /* _SYSTBLS_H */
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c
index d204f1ab1d4c..e5d238970c7e 100644
--- a/arch/sparc64/kernel/time.c
+++ b/arch/sparc64/kernel/time.c
@@ -1,7 +1,6 @@
1/* $Id: time.c,v 1.42 2002/01/23 14:33:55 davem Exp $ 1/* time.c: UltraSparc timer and TOD clock support.
2 * time.c: UltraSparc timer and TOD clock support.
3 * 2 *
4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1997, 2008 David S. Miller (davem@davemloft.net)
5 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) 4 * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be)
6 * 5 *
7 * Based largely on code which is: 6 * Based largely on code which is:
@@ -48,6 +47,8 @@
48#include <asm/uaccess.h> 47#include <asm/uaccess.h>
49#include <asm/irq_regs.h> 48#include <asm/irq_regs.h>
50 49
50#include "entry.h"
51
51DEFINE_SPINLOCK(mostek_lock); 52DEFINE_SPINLOCK(mostek_lock);
52DEFINE_SPINLOCK(rtc_lock); 53DEFINE_SPINLOCK(rtc_lock);
53void __iomem *mstk48t02_regs = NULL; 54void __iomem *mstk48t02_regs = NULL;
@@ -508,6 +509,37 @@ static int __init has_low_battery(void)
508 return (data1 == data2); /* Was the write blocked? */ 509 return (data1 == data2); /* Was the write blocked? */
509} 510}
510 511
512static void __init mostek_set_system_time(void __iomem *mregs)
513{
514 unsigned int year, mon, day, hour, min, sec;
515 u8 tmp;
516
517 spin_lock_irq(&mostek_lock);
518
519 /* Traditional Mostek chip. */
520 tmp = mostek_read(mregs + MOSTEK_CREG);
521 tmp |= MSTK_CREG_READ;
522 mostek_write(mregs + MOSTEK_CREG, tmp);
523
524 sec = MSTK_REG_SEC(mregs);
525 min = MSTK_REG_MIN(mregs);
526 hour = MSTK_REG_HOUR(mregs);
527 day = MSTK_REG_DOM(mregs);
528 mon = MSTK_REG_MONTH(mregs);
529 year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) );
530
531 xtime.tv_sec = mktime(year, mon, day, hour, min, sec);
532 xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
533 set_normalized_timespec(&wall_to_monotonic,
534 -xtime.tv_sec, -xtime.tv_nsec);
535
536 tmp = mostek_read(mregs + MOSTEK_CREG);
537 tmp &= ~MSTK_CREG_READ;
538 mostek_write(mregs + MOSTEK_CREG, tmp);
539
540 spin_unlock_irq(&mostek_lock);
541}
542
511/* Probe for the real time clock chip. */ 543/* Probe for the real time clock chip. */
512static void __init set_system_time(void) 544static void __init set_system_time(void)
513{ 545{
@@ -520,7 +552,6 @@ static void __init set_system_time(void)
520 unsigned long dregs = 0UL; 552 unsigned long dregs = 0UL;
521 void __iomem *bregs = 0UL; 553 void __iomem *bregs = 0UL;
522#endif 554#endif
523 u8 tmp;
524 555
525 if (!mregs && !dregs && !bregs) { 556 if (!mregs && !dregs && !bregs) {
526 prom_printf("Something wrong, clock regs not mapped yet.\n"); 557 prom_printf("Something wrong, clock regs not mapped yet.\n");
@@ -528,20 +559,11 @@ static void __init set_system_time(void)
528 } 559 }
529 560
530 if (mregs) { 561 if (mregs) {
531 spin_lock_irq(&mostek_lock); 562 mostek_set_system_time(mregs);
532 563 return;
533 /* Traditional Mostek chip. */ 564 }
534 tmp = mostek_read(mregs + MOSTEK_CREG);
535 tmp |= MSTK_CREG_READ;
536 mostek_write(mregs + MOSTEK_CREG, tmp);
537 565
538 sec = MSTK_REG_SEC(mregs); 566 if (bregs) {
539 min = MSTK_REG_MIN(mregs);
540 hour = MSTK_REG_HOUR(mregs);
541 day = MSTK_REG_DOM(mregs);
542 mon = MSTK_REG_MONTH(mregs);
543 year = MSTK_CVT_YEAR( MSTK_REG_YEAR(mregs) );
544 } else if (bregs) {
545 unsigned char val = readb(bregs + 0x0e); 567 unsigned char val = readb(bregs + 0x0e);
546 unsigned int century; 568 unsigned int century;
547 569
@@ -596,14 +618,6 @@ static void __init set_system_time(void)
596 xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); 618 xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
597 set_normalized_timespec(&wall_to_monotonic, 619 set_normalized_timespec(&wall_to_monotonic,
598 -xtime.tv_sec, -xtime.tv_nsec); 620 -xtime.tv_sec, -xtime.tv_nsec);
599
600 if (mregs) {
601 tmp = mostek_read(mregs + MOSTEK_CREG);
602 tmp &= ~MSTK_CREG_READ;
603 mostek_write(mregs + MOSTEK_CREG, tmp);
604
605 spin_unlock_irq(&mostek_lock);
606 }
607} 621}
608 622
609/* davem suggests we keep this within the 4M locked kernel image */ 623/* davem suggests we keep this within the 4M locked kernel image */
@@ -1027,7 +1041,7 @@ void __init time_init(void)
1027 setup_clockevent_multiplier(clock); 1041 setup_clockevent_multiplier(clock);
1028 1042
1029 sparc64_clockevent.max_delta_ns = 1043 sparc64_clockevent.max_delta_ns =
1030 clockevent_delta2ns(0x7fffffffffffffff, &sparc64_clockevent); 1044 clockevent_delta2ns(0x7fffffffffffffffUL, &sparc64_clockevent);
1031 sparc64_clockevent.min_delta_ns = 1045 sparc64_clockevent.min_delta_ns =
1032 clockevent_delta2ns(0xF, &sparc64_clockevent); 1046 clockevent_delta2ns(0xF, &sparc64_clockevent);
1033 1047
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 007f5317c0de..96da847023f3 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -42,6 +42,7 @@
42#endif 42#endif
43#include <asm/prom.h> 43#include <asm/prom.h>
44 44
45#include "entry.h"
45 46
46/* When an irrecoverable trap occurs at tl > 0, the trap entry 47/* When an irrecoverable trap occurs at tl > 0, the trap entry
47 * code logs the trap state registers at every level in the trap 48 * code logs the trap state registers at every level in the trap
@@ -77,11 +78,6 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
77 } 78 }
78} 79}
79 80
80void do_call_debug(struct pt_regs *regs)
81{
82 notify_die(DIE_CALL, "debug call", regs, 0, 255, SIGINT);
83}
84
85void bad_trap(struct pt_regs *regs, long lvl) 81void bad_trap(struct pt_regs *regs, long lvl)
86{ 82{
87 char buffer[32]; 83 char buffer[32];
@@ -550,41 +546,6 @@ static unsigned long ecache_flush_physbase;
550static unsigned long ecache_flush_linesize; 546static unsigned long ecache_flush_linesize;
551static unsigned long ecache_flush_size; 547static unsigned long ecache_flush_size;
552 548
553/* WARNING: The error trap handlers in assembly know the precise
554 * layout of the following structure.
555 *
556 * C-level handlers below use this information to log the error
557 * and then determine how to recover (if possible).
558 */
559struct cheetah_err_info {
560/*0x00*/u64 afsr;
561/*0x08*/u64 afar;
562
563 /* D-cache state */
564/*0x10*/u64 dcache_data[4]; /* The actual data */
565/*0x30*/u64 dcache_index; /* D-cache index */
566/*0x38*/u64 dcache_tag; /* D-cache tag/valid */
567/*0x40*/u64 dcache_utag; /* D-cache microtag */
568/*0x48*/u64 dcache_stag; /* D-cache snooptag */
569
570 /* I-cache state */
571/*0x50*/u64 icache_data[8]; /* The actual insns + predecode */
572/*0x90*/u64 icache_index; /* I-cache index */
573/*0x98*/u64 icache_tag; /* I-cache phys tag */
574/*0xa0*/u64 icache_utag; /* I-cache microtag */
575/*0xa8*/u64 icache_stag; /* I-cache snooptag */
576/*0xb0*/u64 icache_upper; /* I-cache upper-tag */
577/*0xb8*/u64 icache_lower; /* I-cache lower-tag */
578
579 /* E-cache state */
580/*0xc0*/u64 ecache_data[4]; /* 32 bytes from staging registers */
581/*0xe0*/u64 ecache_index; /* E-cache index */
582/*0xe8*/u64 ecache_tag; /* E-cache tag/state */
583
584/*0xf0*/u64 __pad[32 - 30];
585};
586#define CHAFSR_INVALID ((u64)-1L)
587
588/* This table is ordered in priority of errors and matches the 549/* This table is ordered in priority of errors and matches the
589 * AFAR overwrite policy as well. 550 * AFAR overwrite policy as well.
590 */ 551 */
@@ -758,10 +719,6 @@ static struct afsr_error_table __jalapeno_error_table[] = {
758static struct afsr_error_table *cheetah_error_table; 719static struct afsr_error_table *cheetah_error_table;
759static unsigned long cheetah_afsr_errors; 720static unsigned long cheetah_afsr_errors;
760 721
761/* This is allocated at boot time based upon the largest hardware
762 * cpu ID in the system. We allocate two entries per cpu, one for
763 * TL==0 logging and one for TL >= 1 logging.
764 */
765struct cheetah_err_info *cheetah_error_log; 722struct cheetah_err_info *cheetah_error_log;
766 723
767static inline struct cheetah_err_info *cheetah_get_error_log(unsigned long afsr) 724static inline struct cheetah_err_info *cheetah_get_error_log(unsigned long afsr)
@@ -2102,7 +2059,7 @@ void do_div0(struct pt_regs *regs)
2102 force_sig_info(SIGFPE, &info, current); 2059 force_sig_info(SIGFPE, &info, current);
2103} 2060}
2104 2061
2105void instruction_dump (unsigned int *pc) 2062static void instruction_dump(unsigned int *pc)
2106{ 2063{
2107 int i; 2064 int i;
2108 2065
@@ -2115,7 +2072,7 @@ void instruction_dump (unsigned int *pc)
2115 printk("\n"); 2072 printk("\n");
2116} 2073}
2117 2074
2118static void user_instruction_dump (unsigned int __user *pc) 2075static void user_instruction_dump(unsigned int __user *pc)
2119{ 2076{
2120 int i; 2077 int i;
2121 unsigned int buf[9]; 2078 unsigned int buf[9];
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 466fd6cffac9..f37078d96407 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -46,6 +46,7 @@
46#include <asm/prom.h> 46#include <asm/prom.h>
47#include <asm/sstate.h> 47#include <asm/sstate.h>
48#include <asm/mdesc.h> 48#include <asm/mdesc.h>
49#include <asm/cpudata.h>
49 50
50#define MAX_PHYS_ADDRESS (1UL << 42UL) 51#define MAX_PHYS_ADDRESS (1UL << 42UL)
51#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) 52#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL)
@@ -1273,10 +1274,6 @@ void __cpuinit sun4v_ktsb_register(void)
1273 1274
1274/* paging_init() sets up the page tables */ 1275/* paging_init() sets up the page tables */
1275 1276
1276extern void cheetah_ecache_flush_init(void);
1277extern void sun4v_patch_tlb_handlers(void);
1278
1279extern void cpu_probe(void);
1280extern void central_probe(void); 1277extern void central_probe(void);
1281 1278
1282static unsigned long last_valid_pfn; 1279static unsigned long last_valid_pfn;
diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c
index 3f10fc921b00..a0f000b293de 100644
--- a/arch/sparc64/mm/tlb.c
+++ b/arch/sparc64/mm/tlb.c
@@ -23,10 +23,11 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers) = { 0, };
23 23
24void flush_tlb_pending(void) 24void flush_tlb_pending(void)
25{ 25{
26 struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); 26 struct mmu_gather *mp;
27 27
28 preempt_disable(); 28 preempt_disable();
29 29
30 mp = &__get_cpu_var(mmu_gathers);
30 if (mp->tlb_nr) { 31 if (mp->tlb_nr) {
31 flush_tsb_user(mp); 32 flush_tsb_user(mp);
32 33
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c
index 1e8f41a99511..1d43bdfc20c4 100644
--- a/arch/um/drivers/net_kern.c
+++ b/arch/um/drivers/net_kern.c
@@ -256,11 +256,7 @@ static struct net_device_stats *uml_net_get_stats(struct net_device *dev)
256 256
257static void uml_net_set_multicast_list(struct net_device *dev) 257static void uml_net_set_multicast_list(struct net_device *dev)
258{ 258{
259 if (dev->flags & IFF_PROMISC) 259 return;
260 return;
261 else if (dev->mc_count)
262 dev->flags |= IFF_ALLMULTI;
263 else dev->flags &= ~IFF_ALLMULTI;
264} 260}
265 261
266static void uml_net_tx_timeout(struct net_device *dev) 262static void uml_net_tx_timeout(struct net_device *dev)
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c b/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c
index f2b5a621d27b..8a85c93bd62a 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-smi.c
@@ -63,7 +63,7 @@ static struct cpufreq_frequency_table speedstep_freqs[] = {
63 */ 63 */
64static int speedstep_smi_ownership (void) 64static int speedstep_smi_ownership (void)
65{ 65{
66 u32 command, result, magic; 66 u32 command, result, magic, dummy;
67 u32 function = GET_SPEEDSTEP_OWNER; 67 u32 function = GET_SPEEDSTEP_OWNER;
68 unsigned char magic_data[] = "Copyright (c) 1999 Intel Corporation"; 68 unsigned char magic_data[] = "Copyright (c) 1999 Intel Corporation";
69 69
@@ -73,8 +73,11 @@ static int speedstep_smi_ownership (void)
73 dprintk("trying to obtain ownership with command %x at port %x\n", command, smi_port); 73 dprintk("trying to obtain ownership with command %x at port %x\n", command, smi_port);
74 74
75 __asm__ __volatile__( 75 __asm__ __volatile__(
76 "push %%ebp\n"
76 "out %%al, (%%dx)\n" 77 "out %%al, (%%dx)\n"
77 : "=D" (result) 78 "pop %%ebp\n"
79 : "=D" (result), "=a" (dummy), "=b" (dummy), "=c" (dummy), "=d" (dummy),
80 "=S" (dummy)
78 : "a" (command), "b" (function), "c" (0), "d" (smi_port), 81 : "a" (command), "b" (function), "c" (0), "d" (smi_port),
79 "D" (0), "S" (magic) 82 "D" (0), "S" (magic)
80 : "memory" 83 : "memory"
@@ -96,7 +99,7 @@ static int speedstep_smi_ownership (void)
96 */ 99 */
97static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high) 100static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high)
98{ 101{
99 u32 command, result = 0, edi, high_mhz, low_mhz; 102 u32 command, result = 0, edi, high_mhz, low_mhz, dummy;
100 u32 state=0; 103 u32 state=0;
101 u32 function = GET_SPEEDSTEP_FREQS; 104 u32 function = GET_SPEEDSTEP_FREQS;
102 105
@@ -109,10 +112,12 @@ static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high)
109 112
110 dprintk("trying to determine frequencies with command %x at port %x\n", command, smi_port); 113 dprintk("trying to determine frequencies with command %x at port %x\n", command, smi_port);
111 114
112 __asm__ __volatile__("movl $0, %%edi\n" 115 __asm__ __volatile__(
116 "push %%ebp\n"
113 "out %%al, (%%dx)\n" 117 "out %%al, (%%dx)\n"
114 : "=a" (result), "=b" (high_mhz), "=c" (low_mhz), "=d" (state), "=D" (edi) 118 "pop %%ebp"
115 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0) 119 : "=a" (result), "=b" (high_mhz), "=c" (low_mhz), "=d" (state), "=D" (edi), "=S" (dummy)
120 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0), "D" (0)
116 ); 121 );
117 122
118 dprintk("result %x, low_freq %u, high_freq %u\n", result, low_mhz, high_mhz); 123 dprintk("result %x, low_freq %u, high_freq %u\n", result, low_mhz, high_mhz);
@@ -135,16 +140,18 @@ static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high)
135static int speedstep_get_state (void) 140static int speedstep_get_state (void)
136{ 141{
137 u32 function=GET_SPEEDSTEP_STATE; 142 u32 function=GET_SPEEDSTEP_STATE;
138 u32 result, state, edi, command; 143 u32 result, state, edi, command, dummy;
139 144
140 command = (smi_sig & 0xffffff00) | (smi_cmd & 0xff); 145 command = (smi_sig & 0xffffff00) | (smi_cmd & 0xff);
141 146
142 dprintk("trying to determine current setting with command %x at port %x\n", command, smi_port); 147 dprintk("trying to determine current setting with command %x at port %x\n", command, smi_port);
143 148
144 __asm__ __volatile__("movl $0, %%edi\n" 149 __asm__ __volatile__(
150 "push %%ebp\n"
145 "out %%al, (%%dx)\n" 151 "out %%al, (%%dx)\n"
146 : "=a" (result), "=b" (state), "=D" (edi) 152 "pop %%ebp\n"
147 : "a" (command), "b" (function), "c" (0), "d" (smi_port), "S" (0) 153 : "=a" (result), "=b" (state), "=D" (edi), "=c" (dummy), "=d" (dummy), "=S" (dummy)
154 : "a" (command), "b" (function), "c" (0), "d" (smi_port), "S" (0), "D" (0)
148 ); 155 );
149 156
150 dprintk("state is %x, result is %x\n", state, result); 157 dprintk("state is %x, result is %x\n", state, result);
@@ -160,7 +167,7 @@ static int speedstep_get_state (void)
160 */ 167 */
161static void speedstep_set_state (unsigned int state) 168static void speedstep_set_state (unsigned int state)
162{ 169{
163 unsigned int result = 0, command, new_state; 170 unsigned int result = 0, command, new_state, dummy;
164 unsigned long flags; 171 unsigned long flags;
165 unsigned int function=SET_SPEEDSTEP_STATE; 172 unsigned int function=SET_SPEEDSTEP_STATE;
166 unsigned int retry = 0; 173 unsigned int retry = 0;
@@ -182,10 +189,12 @@ static void speedstep_set_state (unsigned int state)
182 } 189 }
183 retry++; 190 retry++;
184 __asm__ __volatile__( 191 __asm__ __volatile__(
185 "movl $0, %%edi\n" 192 "push %%ebp\n"
186 "out %%al, (%%dx)\n" 193 "out %%al, (%%dx)\n"
187 : "=b" (new_state), "=D" (result) 194 "pop %%ebp"
188 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0) 195 : "=b" (new_state), "=D" (result), "=c" (dummy), "=a" (dummy),
196 "=d" (dummy), "=S" (dummy)
197 : "a" (command), "b" (function), "c" (state), "d" (smi_port), "S" (0), "D" (0)
189 ); 198 );
190 } while ((new_state != state) && (retry <= SMI_TRIES)); 199 } while ((new_state != state) && (retry <= SMI_TRIES));
191 200
@@ -195,7 +204,7 @@ static void speedstep_set_state (unsigned int state)
195 if (new_state == state) { 204 if (new_state == state) {
196 dprintk("change to %u MHz succeeded after %u tries with result %u\n", (speedstep_freqs[new_state].frequency / 1000), retry, result); 205 dprintk("change to %u MHz succeeded after %u tries with result %u\n", (speedstep_freqs[new_state].frequency / 1000), retry, result);
197 } else { 206 } else {
198 printk(KERN_ERR "cpufreq: change failed with new_state %u and result %u\n", new_state, result); 207 printk(KERN_ERR "cpufreq: change to state %u failed with new_state %u and result %u\n", state, new_state, result);
199 } 208 }
200 209
201 return; 210 return;
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 103d61a59b19..3e18db4cefee 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -176,12 +176,13 @@ static inline void k8_enable_fixed_iorrs(void)
176} 176}
177 177
178/** 178/**
179 * Checks and updates an fixed-range MTRR if it differs from the value it 179 * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have
180 * should have. If K8 extentions are wanted, update the K8 SYSCFG MSR also. 180 * @msr: MSR address of the MTTR which should be checked and updated
181 * see AMD publication no. 24593, chapter 7.8.1, page 233 for more information 181 * @changed: pointer which indicates whether the MTRR needed to be changed
182 * \param msr MSR address of the MTTR which should be checked and updated 182 * @msrwords: pointer to the MSR values which the MSR should have
183 * \param changed pointer which indicates whether the MTRR needed to be changed 183 *
184 * \param msrwords pointer to the MSR values which the MSR should have 184 * If K8 extentions are wanted, update the K8 SYSCFG MSR also.
185 * See AMD publication no. 24593, chapter 7.8.1, page 233 for more information.
185 */ 186 */
186static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords) 187static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
187{ 188{
@@ -199,12 +200,15 @@ static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
199 } 200 }
200} 201}
201 202
203/**
204 * generic_get_free_region - Get a free MTRR.
205 * @base: The starting (base) address of the region.
206 * @size: The size (in bytes) of the region.
207 * @replace_reg: mtrr index to be replaced; set to invalid value if none.
208 *
209 * Returns: The index of the region on success, else negative on error.
210 */
202int generic_get_free_region(unsigned long base, unsigned long size, int replace_reg) 211int generic_get_free_region(unsigned long base, unsigned long size, int replace_reg)
203/* [SUMMARY] Get a free MTRR.
204 <base> The starting (base) address of the region.
205 <size> The size (in bytes) of the region.
206 [RETURNS] The index of the region on success, else -1 on error.
207*/
208{ 212{
209 int i, max; 213 int i, max;
210 mtrr_type ltype; 214 mtrr_type ltype;
@@ -249,8 +253,8 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
249} 253}
250 254
251/** 255/**
252 * Checks and updates the fixed-range MTRRs if they differ from the saved set 256 * set_fixed_ranges - checks & updates the fixed-range MTRRs if they differ from the saved set
253 * \param frs pointer to fixed-range MTRR values, saved by get_fixed_ranges() 257 * @frs: pointer to fixed-range MTRR values, saved by get_fixed_ranges()
254 */ 258 */
255static int set_fixed_ranges(mtrr_type * frs) 259static int set_fixed_ranges(mtrr_type * frs)
256{ 260{
@@ -294,13 +298,13 @@ static bool set_mtrr_var_ranges(unsigned int index, struct mtrr_var_range *vr)
294 298
295static u32 deftype_lo, deftype_hi; 299static u32 deftype_lo, deftype_hi;
296 300
301/**
302 * set_mtrr_state - Set the MTRR state for this CPU.
303 *
304 * NOTE: The CPU must already be in a safe state for MTRR changes.
305 * RETURNS: 0 if no changes made, else a mask indicating what was changed.
306 */
297static unsigned long set_mtrr_state(void) 307static unsigned long set_mtrr_state(void)
298/* [SUMMARY] Set the MTRR state for this CPU.
299 <state> The MTRR state information to read.
300 <ctxt> Some relevant CPU context.
301 [NOTE] The CPU must already be in a safe state for MTRR changes.
302 [RETURNS] 0 if no changes made, else a mask indication what was changed.
303*/
304{ 308{
305 unsigned int i; 309 unsigned int i;
306 unsigned long change_mask = 0; 310 unsigned long change_mask = 0;
diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
index c706a3061553..5921e5f0a640 100644
--- a/arch/x86/kernel/io_delay.c
+++ b/arch/x86/kernel/io_delay.c
@@ -78,6 +78,14 @@ static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
78 }, 78 },
79 { 79 {
80 .callback = dmi_io_delay_0xed_port, 80 .callback = dmi_io_delay_0xed_port,
81 .ident = "HP Pavilion dv6000",
82 .matches = {
83 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
84 DMI_MATCH(DMI_BOARD_NAME, "30B8")
85 }
86 },
87 {
88 .callback = dmi_io_delay_0xed_port,
81 .ident = "HP Pavilion tx1000", 89 .ident = "HP Pavilion tx1000",
82 .matches = { 90 .matches = {
83 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), 91 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
diff --git a/arch/x86/kernel/mfgpt_32.c b/arch/x86/kernel/mfgpt_32.c
index 027fc067b399..b402c0f3f192 100644
--- a/arch/x86/kernel/mfgpt_32.c
+++ b/arch/x86/kernel/mfgpt_32.c
@@ -30,6 +30,7 @@
30 30
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/interrupt.h> 32#include <linux/interrupt.h>
33#include <linux/module.h>
33#include <asm/geode.h> 34#include <asm/geode.h>
34 35
35static struct mfgpt_timer_t { 36static struct mfgpt_timer_t {
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index d5904eef1d31..eb92ccbb3502 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -600,21 +600,6 @@ static int ptrace_bts_read_record(struct task_struct *child,
600 return sizeof(ret); 600 return sizeof(ret);
601} 601}
602 602
603static int ptrace_bts_write_record(struct task_struct *child,
604 const struct bts_struct *in)
605{
606 int retval;
607
608 if (!child->thread.ds_area_msr)
609 return -ENXIO;
610
611 retval = ds_write_bts((void *)child->thread.ds_area_msr, in);
612 if (retval)
613 return retval;
614
615 return sizeof(*in);
616}
617
618static int ptrace_bts_clear(struct task_struct *child) 603static int ptrace_bts_clear(struct task_struct *child)
619{ 604{
620 if (!child->thread.ds_area_msr) 605 if (!child->thread.ds_area_msr)
@@ -657,75 +642,6 @@ static int ptrace_bts_drain(struct task_struct *child,
657 return end; 642 return end;
658} 643}
659 644
660static int ptrace_bts_realloc(struct task_struct *child,
661 int size, int reduce_size)
662{
663 unsigned long rlim, vm;
664 int ret, old_size;
665
666 if (size < 0)
667 return -EINVAL;
668
669 old_size = ds_get_bts_size((void *)child->thread.ds_area_msr);
670 if (old_size < 0)
671 return old_size;
672
673 ret = ds_free((void **)&child->thread.ds_area_msr);
674 if (ret < 0)
675 goto out;
676
677 size >>= PAGE_SHIFT;
678 old_size >>= PAGE_SHIFT;
679
680 current->mm->total_vm -= old_size;
681 current->mm->locked_vm -= old_size;
682
683 if (size == 0)
684 goto out;
685
686 rlim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
687 vm = current->mm->total_vm + size;
688 if (rlim < vm) {
689 ret = -ENOMEM;
690
691 if (!reduce_size)
692 goto out;
693
694 size = rlim - current->mm->total_vm;
695 if (size <= 0)
696 goto out;
697 }
698
699 rlim = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
700 vm = current->mm->locked_vm + size;
701 if (rlim < vm) {
702 ret = -ENOMEM;
703
704 if (!reduce_size)
705 goto out;
706
707 size = rlim - current->mm->locked_vm;
708 if (size <= 0)
709 goto out;
710 }
711
712 ret = ds_allocate((void **)&child->thread.ds_area_msr,
713 size << PAGE_SHIFT);
714 if (ret < 0)
715 goto out;
716
717 current->mm->total_vm += size;
718 current->mm->locked_vm += size;
719
720out:
721 if (child->thread.ds_area_msr)
722 set_tsk_thread_flag(child, TIF_DS_AREA_MSR);
723 else
724 clear_tsk_thread_flag(child, TIF_DS_AREA_MSR);
725
726 return ret;
727}
728
729static int ptrace_bts_config(struct task_struct *child, 645static int ptrace_bts_config(struct task_struct *child,
730 long cfg_size, 646 long cfg_size,
731 const struct ptrace_bts_config __user *ucfg) 647 const struct ptrace_bts_config __user *ucfg)
@@ -828,6 +744,91 @@ static int ptrace_bts_status(struct task_struct *child,
828 return sizeof(cfg); 744 return sizeof(cfg);
829} 745}
830 746
747
748static int ptrace_bts_write_record(struct task_struct *child,
749 const struct bts_struct *in)
750{
751 int retval;
752
753 if (!child->thread.ds_area_msr)
754 return -ENXIO;
755
756 retval = ds_write_bts((void *)child->thread.ds_area_msr, in);
757 if (retval)
758 return retval;
759
760 return sizeof(*in);
761}
762
763static int ptrace_bts_realloc(struct task_struct *child,
764 int size, int reduce_size)
765{
766 unsigned long rlim, vm;
767 int ret, old_size;
768
769 if (size < 0)
770 return -EINVAL;
771
772 old_size = ds_get_bts_size((void *)child->thread.ds_area_msr);
773 if (old_size < 0)
774 return old_size;
775
776 ret = ds_free((void **)&child->thread.ds_area_msr);
777 if (ret < 0)
778 goto out;
779
780 size >>= PAGE_SHIFT;
781 old_size >>= PAGE_SHIFT;
782
783 current->mm->total_vm -= old_size;
784 current->mm->locked_vm -= old_size;
785
786 if (size == 0)
787 goto out;
788
789 rlim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
790 vm = current->mm->total_vm + size;
791 if (rlim < vm) {
792 ret = -ENOMEM;
793
794 if (!reduce_size)
795 goto out;
796
797 size = rlim - current->mm->total_vm;
798 if (size <= 0)
799 goto out;
800 }
801
802 rlim = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
803 vm = current->mm->locked_vm + size;
804 if (rlim < vm) {
805 ret = -ENOMEM;
806
807 if (!reduce_size)
808 goto out;
809
810 size = rlim - current->mm->locked_vm;
811 if (size <= 0)
812 goto out;
813 }
814
815 ret = ds_allocate((void **)&child->thread.ds_area_msr,
816 size << PAGE_SHIFT);
817 if (ret < 0)
818 goto out;
819
820 current->mm->total_vm += size;
821 current->mm->locked_vm += size;
822
823out:
824 if (child->thread.ds_area_msr)
825 set_tsk_thread_flag(child, TIF_DS_AREA_MSR);
826 else
827 clear_tsk_thread_flag(child, TIF_DS_AREA_MSR);
828
829 return ret;
830}
831
831void ptrace_bts_take_timestamp(struct task_struct *tsk, 832void ptrace_bts_take_timestamp(struct task_struct *tsk,
832 enum bts_qualifier qualifier) 833 enum bts_qualifier qualifier)
833{ 834{
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index a1d7071a51c9..2b3e5d45176b 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -406,8 +406,6 @@ static unsigned long __init setup_memory(void)
406 */ 406 */
407 min_low_pfn = PFN_UP(init_pg_tables_end); 407 min_low_pfn = PFN_UP(init_pg_tables_end);
408 408
409 find_max_pfn();
410
411 max_low_pfn = find_max_low_pfn(); 409 max_low_pfn = find_max_low_pfn();
412 410
413#ifdef CONFIG_HIGHMEM 411#ifdef CONFIG_HIGHMEM
@@ -764,12 +762,13 @@ void __init setup_arch(char **cmdline_p)
764 if (efi_enabled) 762 if (efi_enabled)
765 efi_init(); 763 efi_init();
766 764
767 max_low_pfn = setup_memory();
768
769 /* update e820 for memory not covered by WB MTRRs */ 765 /* update e820 for memory not covered by WB MTRRs */
766 find_max_pfn();
770 mtrr_bp_init(); 767 mtrr_bp_init();
771 if (mtrr_trim_uncached_memory(max_pfn)) 768 if (mtrr_trim_uncached_memory(max_pfn))
772 max_low_pfn = setup_memory(); 769 find_max_pfn();
770
771 max_low_pfn = setup_memory();
773 772
774#ifdef CONFIG_VMI 773#ifdef CONFIG_VMI
775 /* 774 /*
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 7637dc91c79b..f4f7ecfb898c 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -801,7 +801,7 @@ static void __cpuinit srat_detect_node(void)
801 /* Don't do the funky fallback heuristics the AMD version employs 801 /* Don't do the funky fallback heuristics the AMD version employs
802 for now. */ 802 for now. */
803 node = apicid_to_node[apicid]; 803 node = apicid_to_node[apicid];
804 if (node == NUMA_NO_NODE) 804 if (node == NUMA_NO_NODE || !node_online(node))
805 node = first_node(node_online_map); 805 node = first_node(node_online_map);
806 numa_set_node(cpu, node); 806 numa_set_node(cpu, node);
807 807
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index a104c532ff70..3335b4595efd 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -10,21 +10,19 @@
10 * (such as the example in Documentation/lguest/lguest.c) is called the 10 * (such as the example in Documentation/lguest/lguest.c) is called the
11 * Launcher. 11 * Launcher.
12 * 12 *
13 * Secondly, we only run specially modified Guests, not normal kernels. When 13 * Secondly, we only run specially modified Guests, not normal kernels: setting
14 * you set CONFIG_LGUEST to 'y' or 'm', this automatically sets 14 * CONFIG_LGUEST_GUEST to "y" compiles this file into the kernel so it knows
15 * CONFIG_LGUEST_GUEST=y, which compiles this file into the kernel so it knows 15 * how to be a Guest at boot time. This means that you can use the same kernel
16 * how to be a Guest. This means that you can use the same kernel you boot 16 * you boot normally (ie. as a Host) as a Guest.
17 * normally (ie. as a Host) as a Guest.
18 * 17 *
19 * These Guests know that they cannot do privileged operations, such as disable 18 * These Guests know that they cannot do privileged operations, such as disable
20 * interrupts, and that they have to ask the Host to do such things explicitly. 19 * interrupts, and that they have to ask the Host to do such things explicitly.
21 * This file consists of all the replacements for such low-level native 20 * This file consists of all the replacements for such low-level native
22 * hardware operations: these special Guest versions call the Host. 21 * hardware operations: these special Guest versions call the Host.
23 * 22 *
24 * So how does the kernel know it's a Guest? The Guest starts at a special 23 * So how does the kernel know it's a Guest? We'll see that later, but let's
25 * entry point marked with a magic string, which sets up a few things then 24 * just say that we end up here where we replace the native functions various
26 * calls here. We replace the native functions various "paravirt" structures 25 * "paravirt" structures with our Guest versions, then boot like normal. :*/
27 * with our Guest versions, then boot like normal. :*/
28 26
29/* 27/*
30 * Copyright (C) 2006, Rusty Russell <rusty@rustcorp.com.au> IBM Corporation. 28 * Copyright (C) 2006, Rusty Russell <rusty@rustcorp.com.au> IBM Corporation.
@@ -134,7 +132,7 @@ static void async_hcall(unsigned long call, unsigned long arg1,
134 * lguest_leave_lazy_mode(). 132 * lguest_leave_lazy_mode().
135 * 133 *
136 * So, when we're in lazy mode, we call async_hcall() to store the call for 134 * So, when we're in lazy mode, we call async_hcall() to store the call for
137 * future processing. */ 135 * future processing: */
138static void lazy_hcall(unsigned long call, 136static void lazy_hcall(unsigned long call,
139 unsigned long arg1, 137 unsigned long arg1,
140 unsigned long arg2, 138 unsigned long arg2,
@@ -147,7 +145,7 @@ static void lazy_hcall(unsigned long call,
147} 145}
148 146
149/* When lazy mode is turned off reset the per-cpu lazy mode variable and then 147/* When lazy mode is turned off reset the per-cpu lazy mode variable and then
150 * issue a hypercall to flush any stored calls. */ 148 * issue the do-nothing hypercall to flush any stored calls. */
151static void lguest_leave_lazy_mode(void) 149static void lguest_leave_lazy_mode(void)
152{ 150{
153 paravirt_leave_lazy(paravirt_get_lazy_mode()); 151 paravirt_leave_lazy(paravirt_get_lazy_mode());
@@ -164,7 +162,7 @@ static void lguest_leave_lazy_mode(void)
164 * 162 *
165 * So instead we keep an "irq_enabled" field inside our "struct lguest_data", 163 * So instead we keep an "irq_enabled" field inside our "struct lguest_data",
166 * which the Guest can update with a single instruction. The Host knows to 164 * which the Guest can update with a single instruction. The Host knows to
167 * check there when it wants to deliver an interrupt. 165 * check there before it tries to deliver an interrupt.
168 */ 166 */
169 167
170/* save_flags() is expected to return the processor state (ie. "flags"). The 168/* save_flags() is expected to return the processor state (ie. "flags"). The
@@ -196,10 +194,15 @@ static void irq_enable(void)
196/*M:003 Note that we don't check for outstanding interrupts when we re-enable 194/*M:003 Note that we don't check for outstanding interrupts when we re-enable
197 * them (or when we unmask an interrupt). This seems to work for the moment, 195 * them (or when we unmask an interrupt). This seems to work for the moment,
198 * since interrupts are rare and we'll just get the interrupt on the next timer 196 * since interrupts are rare and we'll just get the interrupt on the next timer
199 * tick, but when we turn on CONFIG_NO_HZ, we should revisit this. One way 197 * tick, but now we can run with CONFIG_NO_HZ, we should revisit this. One way
200 * would be to put the "irq_enabled" field in a page by itself, and have the 198 * would be to put the "irq_enabled" field in a page by itself, and have the
201 * Host write-protect it when an interrupt comes in when irqs are disabled. 199 * Host write-protect it when an interrupt comes in when irqs are disabled.
202 * There will then be a page fault as soon as interrupts are re-enabled. :*/ 200 * There will then be a page fault as soon as interrupts are re-enabled.
201 *
202 * A better method is to implement soft interrupt disable generally for x86:
203 * instead of disabling interrupts, we set a flag. If an interrupt does come
204 * in, we then disable them for real. This is uncommon, so we could simply use
205 * a hypercall for interrupt control and not worry about efficiency. :*/
203 206
204/*G:034 207/*G:034
205 * The Interrupt Descriptor Table (IDT). 208 * The Interrupt Descriptor Table (IDT).
@@ -212,6 +215,10 @@ static void irq_enable(void)
212static void lguest_write_idt_entry(gate_desc *dt, 215static void lguest_write_idt_entry(gate_desc *dt,
213 int entrynum, const gate_desc *g) 216 int entrynum, const gate_desc *g)
214{ 217{
218 /* The gate_desc structure is 8 bytes long: we hand it to the Host in
219 * two 32-bit chunks. The whole 32-bit kernel used to hand descriptors
220 * around like this; typesafety wasn't a big concern in Linux's early
221 * years. */
215 u32 *desc = (u32 *)g; 222 u32 *desc = (u32 *)g;
216 /* Keep the local copy up to date. */ 223 /* Keep the local copy up to date. */
217 native_write_idt_entry(dt, entrynum, g); 224 native_write_idt_entry(dt, entrynum, g);
@@ -243,7 +250,8 @@ static void lguest_load_idt(const struct desc_ptr *desc)
243 * 250 *
244 * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY 251 * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY
245 * hypercall and use that repeatedly to load a new IDT. I don't think it 252 * hypercall and use that repeatedly to load a new IDT. I don't think it
246 * really matters, but wouldn't it be nice if they were the same? 253 * really matters, but wouldn't it be nice if they were the same? Wouldn't
254 * it be even better if you were the one to send the patch to fix it?
247 */ 255 */
248static void lguest_load_gdt(const struct desc_ptr *desc) 256static void lguest_load_gdt(const struct desc_ptr *desc)
249{ 257{
@@ -298,9 +306,9 @@ static void lguest_load_tr_desc(void)
298 306
299/* The "cpuid" instruction is a way of querying both the CPU identity 307/* The "cpuid" instruction is a way of querying both the CPU identity
300 * (manufacturer, model, etc) and its features. It was introduced before the 308 * (manufacturer, model, etc) and its features. It was introduced before the
301 * Pentium in 1993 and keeps getting extended by both Intel and AMD. As you 309 * Pentium in 1993 and keeps getting extended by both Intel, AMD and others.
302 * might imagine, after a decade and a half this treatment, it is now a giant 310 * As you might imagine, after a decade and a half this treatment, it is now a
303 * ball of hair. Its entry in the current Intel manual runs to 28 pages. 311 * giant ball of hair. Its entry in the current Intel manual runs to 28 pages.
304 * 312 *
305 * This instruction even it has its own Wikipedia entry. The Wikipedia entry 313 * This instruction even it has its own Wikipedia entry. The Wikipedia entry
306 * has been translated into 4 languages. I am not making this up! 314 * has been translated into 4 languages. I am not making this up!
@@ -594,17 +602,17 @@ static unsigned long lguest_get_wallclock(void)
594 return lguest_data.time.tv_sec; 602 return lguest_data.time.tv_sec;
595} 603}
596 604
597/* The TSC is a Time Stamp Counter. The Host tells us what speed it runs at, 605/* The TSC is an Intel thing called the Time Stamp Counter. The Host tells us
598 * or 0 if it's unusable as a reliable clock source. This matches what we want 606 * what speed it runs at, or 0 if it's unusable as a reliable clock source.
599 * here: if we return 0 from this function, the x86 TSC clock will not register 607 * This matches what we want here: if we return 0 from this function, the x86
600 * itself. */ 608 * TSC clock will give up and not register itself. */
601static unsigned long lguest_cpu_khz(void) 609static unsigned long lguest_cpu_khz(void)
602{ 610{
603 return lguest_data.tsc_khz; 611 return lguest_data.tsc_khz;
604} 612}
605 613
606/* If we can't use the TSC, the kernel falls back to our "lguest_clock", where 614/* If we can't use the TSC, the kernel falls back to our lower-priority
607 * we read the time value given to us by the Host. */ 615 * "lguest_clock", where we read the time value given to us by the Host. */
608static cycle_t lguest_clock_read(void) 616static cycle_t lguest_clock_read(void)
609{ 617{
610 unsigned long sec, nsec; 618 unsigned long sec, nsec;
@@ -648,12 +656,16 @@ static struct clocksource lguest_clock = {
648static int lguest_clockevent_set_next_event(unsigned long delta, 656static int lguest_clockevent_set_next_event(unsigned long delta,
649 struct clock_event_device *evt) 657 struct clock_event_device *evt)
650{ 658{
659 /* FIXME: I don't think this can ever happen, but James tells me he had
660 * to put this code in. Maybe we should remove it now. Anyone? */
651 if (delta < LG_CLOCK_MIN_DELTA) { 661 if (delta < LG_CLOCK_MIN_DELTA) {
652 if (printk_ratelimit()) 662 if (printk_ratelimit())
653 printk(KERN_DEBUG "%s: small delta %lu ns\n", 663 printk(KERN_DEBUG "%s: small delta %lu ns\n",
654 __FUNCTION__, delta); 664 __FUNCTION__, delta);
655 return -ETIME; 665 return -ETIME;
656 } 666 }
667
668 /* Please wake us this far in the future. */
657 hcall(LHCALL_SET_CLOCKEVENT, delta, 0, 0); 669 hcall(LHCALL_SET_CLOCKEVENT, delta, 0, 0);
658 return 0; 670 return 0;
659} 671}
@@ -738,7 +750,7 @@ static void lguest_time_init(void)
738 * will not tolerate us trying to use that), the stack pointer, and the number 750 * will not tolerate us trying to use that), the stack pointer, and the number
739 * of pages in the stack. */ 751 * of pages in the stack. */
740static void lguest_load_sp0(struct tss_struct *tss, 752static void lguest_load_sp0(struct tss_struct *tss,
741 struct thread_struct *thread) 753 struct thread_struct *thread)
742{ 754{
743 lazy_hcall(LHCALL_SET_STACK, __KERNEL_DS|0x1, thread->sp0, 755 lazy_hcall(LHCALL_SET_STACK, __KERNEL_DS|0x1, thread->sp0,
744 THREAD_SIZE/PAGE_SIZE); 756 THREAD_SIZE/PAGE_SIZE);
@@ -786,9 +798,8 @@ static void lguest_safe_halt(void)
786 hcall(LHCALL_HALT, 0, 0, 0); 798 hcall(LHCALL_HALT, 0, 0, 0);
787} 799}
788 800
789/* Perhaps CRASH isn't the best name for this hypercall, but we use it to get a 801/* The SHUTDOWN hypercall takes a string to describe what's happening, and
790 * message out when we're crashing as well as elegant termination like powering 802 * an argument which says whether this to restart (reboot) the Guest or not.
791 * off.
792 * 803 *
793 * Note that the Host always prefers that the Guest speak in physical addresses 804 * Note that the Host always prefers that the Guest speak in physical addresses
794 * rather than virtual addresses, so we use __pa() here. */ 805 * rather than virtual addresses, so we use __pa() here. */
@@ -816,8 +827,9 @@ static struct notifier_block paniced = {
816/* Setting up memory is fairly easy. */ 827/* Setting up memory is fairly easy. */
817static __init char *lguest_memory_setup(void) 828static __init char *lguest_memory_setup(void)
818{ 829{
819 /* We do this here and not earlier because lockcheck barfs if we do it 830 /* We do this here and not earlier because lockcheck used to barf if we
820 * before start_kernel() */ 831 * did it before start_kernel(). I think we fixed that, so it'd be
832 * nice to move it back to lguest_init. Patch welcome... */
821 atomic_notifier_chain_register(&panic_notifier_list, &paniced); 833 atomic_notifier_chain_register(&panic_notifier_list, &paniced);
822 834
823 /* The Linux bootloader header contains an "e820" memory map: the 835 /* The Linux bootloader header contains an "e820" memory map: the
@@ -850,12 +862,19 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
850 return len; 862 return len;
851} 863}
852 864
865/* Rebooting also tells the Host we're finished, but the RESTART flag tells the
866 * Launcher to reboot us. */
867static void lguest_restart(char *reason)
868{
869 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0);
870}
871
853/*G:050 872/*G:050
854 * Patching (Powerfully Placating Performance Pedants) 873 * Patching (Powerfully Placating Performance Pedants)
855 * 874 *
856 * We have already seen that pv_ops structures let us replace simple 875 * We have already seen that pv_ops structures let us replace simple native
857 * native instructions with calls to the appropriate back end all throughout 876 * instructions with calls to the appropriate back end all throughout the
858 * the kernel. This allows the same kernel to run as a Guest and as a native 877 * kernel. This allows the same kernel to run as a Guest and as a native
859 * kernel, but it's slow because of all the indirect branches. 878 * kernel, but it's slow because of all the indirect branches.
860 * 879 *
861 * Remember that David Wheeler quote about "Any problem in computer science can 880 * Remember that David Wheeler quote about "Any problem in computer science can
@@ -908,14 +927,9 @@ static unsigned lguest_patch(u8 type, u16 clobber, void *ibuf,
908 return insn_len; 927 return insn_len;
909} 928}
910 929
911static void lguest_restart(char *reason) 930/*G:030 Once we get to lguest_init(), we know we're a Guest. The various
912{ 931 * pv_ops structures in the kernel provide points for (almost) every routine we
913 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0); 932 * have to override to avoid privileged instructions. */
914}
915
916/*G:030 Once we get to lguest_init(), we know we're a Guest. The pv_ops
917 * structures in the kernel provide points for (almost) every routine we have
918 * to override to avoid privileged instructions. */
919__init void lguest_init(void) 933__init void lguest_init(void)
920{ 934{
921 /* We're under lguest, paravirt is enabled, and we're running at 935 /* We're under lguest, paravirt is enabled, and we're running at
@@ -1003,9 +1017,9 @@ __init void lguest_init(void)
1003 * the normal data segment to get through booting. */ 1017 * the normal data segment to get through booting. */
1004 asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); 1018 asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory");
1005 1019
1006 /* The Host uses the top of the Guest's virtual address space for the 1020 /* The Host<->Guest Switcher lives at the top of our address space, and
1007 * Host<->Guest Switcher, and it tells us how big that is in 1021 * the Host told us how big it is when we made LGUEST_INIT hypercall:
1008 * lguest_data.reserve_mem, set up on the LGUEST_INIT hypercall. */ 1022 * it put the answer in lguest_data.reserve_mem */
1009 reserve_top_address(lguest_data.reserve_mem); 1023 reserve_top_address(lguest_data.reserve_mem);
1010 1024
1011 /* If we don't initialize the lock dependency checker now, it crashes 1025 /* If we don't initialize the lock dependency checker now, it crashes
@@ -1027,6 +1041,7 @@ __init void lguest_init(void)
1027 /* Math is always hard! */ 1041 /* Math is always hard! */
1028 new_cpu_data.hard_math = 1; 1042 new_cpu_data.hard_math = 1;
1029 1043
1044 /* We don't have features. We have puppies! Puppies! */
1030#ifdef CONFIG_X86_MCE 1045#ifdef CONFIG_X86_MCE
1031 mce_disabled = 1; 1046 mce_disabled = 1;
1032#endif 1047#endif
@@ -1044,10 +1059,11 @@ __init void lguest_init(void)
1044 virtio_cons_early_init(early_put_chars); 1059 virtio_cons_early_init(early_put_chars);
1045 1060
1046 /* Last of all, we set the power management poweroff hook to point to 1061 /* Last of all, we set the power management poweroff hook to point to
1047 * the Guest routine to power off. */ 1062 * the Guest routine to power off, and the reboot hook to our restart
1063 * routine. */
1048 pm_power_off = lguest_power_off; 1064 pm_power_off = lguest_power_off;
1049
1050 machine_ops.restart = lguest_restart; 1065 machine_ops.restart = lguest_restart;
1066
1051 /* Now we're set up, call start_kernel() in init/main.c and we proceed 1067 /* Now we're set up, call start_kernel() in init/main.c and we proceed
1052 * to boot as normal. It never returns. */ 1068 * to boot as normal. It never returns. */
1053 start_kernel(); 1069 start_kernel();
diff --git a/arch/x86/lguest/i386_head.S b/arch/x86/lguest/i386_head.S
index 95b6fbcded63..5c7cef34c9e7 100644
--- a/arch/x86/lguest/i386_head.S
+++ b/arch/x86/lguest/i386_head.S
@@ -5,13 +5,20 @@
5#include <asm/thread_info.h> 5#include <asm/thread_info.h>
6#include <asm/processor-flags.h> 6#include <asm/processor-flags.h>
7 7
8/*G:020 This is where we begin: head.S notes that the boot header's platform 8/*G:020 Our story starts with the kernel booting into startup_32 in
9 * type field is "1" (lguest), so calls us here. 9 * arch/x86/kernel/head_32.S. It expects a boot header, which is created by
10 * the bootloader (the Launcher in our case).
11 *
12 * The startup_32 function does very little: it clears the uninitialized global
13 * C variables which we expect to be zero (ie. BSS) and then copies the boot
14 * header and kernel command line somewhere safe. Finally it checks the
15 * 'hardware_subarch' field. This was introduced in 2.6.24 for lguest and Xen:
16 * if it's set to '1' (lguest's assigned number), then it calls us here.
10 * 17 *
11 * WARNING: be very careful here! We're running at addresses equal to physical 18 * WARNING: be very careful here! We're running at addresses equal to physical
12 * addesses (around 0), not above PAGE_OFFSET as most code expectes 19 * addesses (around 0), not above PAGE_OFFSET as most code expectes
13 * (eg. 0xC0000000). Jumps are relative, so they're OK, but we can't touch any 20 * (eg. 0xC0000000). Jumps are relative, so they're OK, but we can't touch any
14 * data. 21 * data without remembering to subtract __PAGE_OFFSET!
15 * 22 *
16 * The .section line puts this code in .init.text so it will be discarded after 23 * The .section line puts this code in .init.text so it will be discarded after
17 * boot. */ 24 * boot. */
@@ -24,7 +31,7 @@ ENTRY(lguest_entry)
24 int $LGUEST_TRAP_ENTRY 31 int $LGUEST_TRAP_ENTRY
25 32
26 /* The Host put the toplevel pagetable in lguest_data.pgdir. The movsl 33 /* The Host put the toplevel pagetable in lguest_data.pgdir. The movsl
27 * instruction uses %esi implicitly as the source for the copy we' 34 * instruction uses %esi implicitly as the source for the copy we're
28 * about to do. */ 35 * about to do. */
29 movl lguest_data - __PAGE_OFFSET + LGUEST_DATA_pgdir, %esi 36 movl lguest_data - __PAGE_OFFSET + LGUEST_DATA_pgdir, %esi
30 37
diff --git a/arch/x86/mach-rdc321x/gpio.c b/arch/x86/mach-rdc321x/gpio.c
index 031269163bd6..247f33d3a407 100644
--- a/arch/x86/mach-rdc321x/gpio.c
+++ b/arch/x86/mach-rdc321x/gpio.c
@@ -1,91 +1,194 @@
1/* 1/*
2 * Copyright (C) 2007, OpenWrt.org, Florian Fainelli <florian@openwrt.org> 2 * GPIO support for RDC SoC R3210/R8610
3 * RDC321x architecture specific GPIO support 3 *
4 * Copyright (C) 2007, Florian Fainelli <florian@openwrt.org>
5 * Copyright (C) 2008, Volker Weiss <dev@tintuc.de>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
4 * 20 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */ 21 */
10 22
11#include <linux/autoconf.h> 23
12#include <linux/init.h> 24#include <linux/spinlock.h>
13#include <linux/io.h> 25#include <linux/io.h>
14#include <linux/types.h> 26#include <linux/types.h>
15#include <linux/module.h> 27#include <linux/module.h>
16#include <linux/delay.h>
17 28
29#include <asm/gpio.h>
18#include <asm/mach-rdc321x/rdc321x_defs.h> 30#include <asm/mach-rdc321x/rdc321x_defs.h>
19 31
20static inline int rdc_gpio_is_valid(unsigned gpio) 32
33/* spin lock to protect our private copy of GPIO data register plus
34 the access to PCI conf registers. */
35static DEFINE_SPINLOCK(gpio_lock);
36
37/* copy of GPIO data registers */
38static u32 gpio_data_reg1;
39static u32 gpio_data_reg2;
40
41static u32 gpio_request_data[2];
42
43
44static inline void rdc321x_conf_write(unsigned addr, u32 value)
21{ 45{
22 return (gpio <= RDC_MAX_GPIO); 46 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
47 outl(value, RDC3210_CFGREG_DATA);
23} 48}
24 49
25static unsigned int rdc_gpio_read(unsigned gpio) 50static inline void rdc321x_conf_or(unsigned addr, u32 value)
26{ 51{
27 unsigned int val; 52 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
28 53 value |= inl(RDC3210_CFGREG_DATA);
29 val = 0x80000000 | (7 << 11) | ((gpio&0x20?0x84:0x48)); 54 outl(value, RDC3210_CFGREG_DATA);
30 outl(val, RDC3210_CFGREG_ADDR);
31 udelay(10);
32 val = inl(RDC3210_CFGREG_DATA);
33 val |= (0x1 << (gpio & 0x1F));
34 outl(val, RDC3210_CFGREG_DATA);
35 udelay(10);
36 val = 0x80000000 | (7 << 11) | ((gpio&0x20?0x88:0x4C));
37 outl(val, RDC3210_CFGREG_ADDR);
38 udelay(10);
39 val = inl(RDC3210_CFGREG_DATA);
40
41 return val;
42} 55}
43 56
44static void rdc_gpio_write(unsigned int val) 57static inline u32 rdc321x_conf_read(unsigned addr)
45{ 58{
46 if (val) { 59 outl((1 << 31) | (7 << 11) | addr, RDC3210_CFGREG_ADDR);
47 outl(val, RDC3210_CFGREG_DATA); 60
48 udelay(10); 61 return inl(RDC3210_CFGREG_DATA);
49 }
50} 62}
51 63
52int rdc_gpio_get_value(unsigned gpio) 64/* configure pin as GPIO */
65static void rdc321x_configure_gpio(unsigned gpio)
66{
67 unsigned long flags;
68
69 spin_lock_irqsave(&gpio_lock, flags);
70 rdc321x_conf_or(gpio < 32
71 ? RDC321X_GPIO_CTRL_REG1 : RDC321X_GPIO_CTRL_REG2,
72 1 << (gpio & 0x1f));
73 spin_unlock_irqrestore(&gpio_lock, flags);
74}
75
76/* initially setup the 2 copies of the gpio data registers.
77 This function must be called by the platform setup code. */
78void __init rdc321x_gpio_setup()
79{
80 /* this might not be, what others (BIOS, bootloader, etc.)
81 wrote to these registers before, but it's a good guess. Still
82 better than just using 0xffffffff. */
83
84 gpio_data_reg1 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG1);
85 gpio_data_reg2 = rdc321x_conf_read(RDC321X_GPIO_DATA_REG2);
86}
87
88/* determine, if gpio number is valid */
89static inline int rdc321x_is_gpio(unsigned gpio)
90{
91 return gpio <= RDC321X_MAX_GPIO;
92}
93
94/* request GPIO */
95int rdc_gpio_request(unsigned gpio, const char *label)
53{ 96{
54 if (rdc_gpio_is_valid(gpio)) 97 unsigned long flags;
55 return (int)rdc_gpio_read(gpio); 98
56 else 99 if (!rdc321x_is_gpio(gpio))
57 return -EINVAL; 100 return -EINVAL;
101
102 spin_lock_irqsave(&gpio_lock, flags);
103 if (gpio_request_data[(gpio & 0x20) ? 1 : 0] & (1 << (gpio & 0x1f)))
104 goto inuse;
105 gpio_request_data[(gpio & 0x20) ? 1 : 0] |= (1 << (gpio & 0x1f));
106 spin_unlock_irqrestore(&gpio_lock, flags);
107
108 return 0;
109inuse:
110 spin_unlock_irqrestore(&gpio_lock, flags);
111 return -EINVAL;
58} 112}
59EXPORT_SYMBOL(rdc_gpio_get_value); 113EXPORT_SYMBOL(rdc_gpio_request);
60 114
61void rdc_gpio_set_value(unsigned gpio, int value) 115/* release previously-claimed GPIO */
116void rdc_gpio_free(unsigned gpio)
62{ 117{
63 unsigned int val; 118 unsigned long flags;
64 119
65 if (!rdc_gpio_is_valid(gpio)) 120 if (!rdc321x_is_gpio(gpio))
66 return; 121 return;
67 122
68 val = rdc_gpio_read(gpio); 123 spin_lock_irqsave(&gpio_lock, flags);
124 gpio_request_data[(gpio & 0x20) ? 1 : 0] &= ~(1 << (gpio & 0x1f));
125 spin_unlock_irqrestore(&gpio_lock, flags);
126}
127EXPORT_SYMBOL(rdc_gpio_free);
128
129/* read GPIO pin */
130int rdc_gpio_get_value(unsigned gpio)
131{
132 u32 reg;
133 unsigned long flags;
134
135 spin_lock_irqsave(&gpio_lock, flags);
136 reg = rdc321x_conf_read(gpio < 32
137 ? RDC321X_GPIO_DATA_REG1 : RDC321X_GPIO_DATA_REG2);
138 spin_unlock_irqrestore(&gpio_lock, flags);
69 139
70 if (value) 140 return (1 << (gpio & 0x1f)) & reg ? 1 : 0;
71 val &= ~(0x1 << (gpio & 0x1F)); 141}
72 else 142EXPORT_SYMBOL(rdc_gpio_get_value);
73 val |= (0x1 << (gpio & 0x1F));
74 143
75 rdc_gpio_write(val); 144/* set GPIO pin to value */
145void rdc_gpio_set_value(unsigned gpio, int value)
146{
147 unsigned long flags;
148 u32 reg;
149
150 reg = 1 << (gpio & 0x1f);
151 if (gpio < 32) {
152 spin_lock_irqsave(&gpio_lock, flags);
153 if (value)
154 gpio_data_reg1 |= reg;
155 else
156 gpio_data_reg1 &= ~reg;
157 rdc321x_conf_write(RDC321X_GPIO_DATA_REG1, gpio_data_reg1);
158 spin_unlock_irqrestore(&gpio_lock, flags);
159 } else {
160 spin_lock_irqsave(&gpio_lock, flags);
161 if (value)
162 gpio_data_reg2 |= reg;
163 else
164 gpio_data_reg2 &= ~reg;
165 rdc321x_conf_write(RDC321X_GPIO_DATA_REG2, gpio_data_reg2);
166 spin_unlock_irqrestore(&gpio_lock, flags);
167 }
76} 168}
77EXPORT_SYMBOL(rdc_gpio_set_value); 169EXPORT_SYMBOL(rdc_gpio_set_value);
78 170
171/* configure GPIO pin as input */
79int rdc_gpio_direction_input(unsigned gpio) 172int rdc_gpio_direction_input(unsigned gpio)
80{ 173{
174 if (!rdc321x_is_gpio(gpio))
175 return -EINVAL;
176
177 rdc321x_configure_gpio(gpio);
178
81 return 0; 179 return 0;
82} 180}
83EXPORT_SYMBOL(rdc_gpio_direction_input); 181EXPORT_SYMBOL(rdc_gpio_direction_input);
84 182
183/* configure GPIO pin as output and set value */
85int rdc_gpio_direction_output(unsigned gpio, int value) 184int rdc_gpio_direction_output(unsigned gpio, int value)
86{ 185{
186 if (!rdc321x_is_gpio(gpio))
187 return -EINVAL;
188
189 gpio_set_value(gpio, value);
190 rdc321x_configure_gpio(gpio);
191
87 return 0; 192 return 0;
88} 193}
89EXPORT_SYMBOL(rdc_gpio_direction_output); 194EXPORT_SYMBOL(rdc_gpio_direction_output);
90
91
diff --git a/arch/x86/mach-rdc321x/platform.c b/arch/x86/mach-rdc321x/platform.c
index dda6024a5862..a037041817c7 100644
--- a/arch/x86/mach-rdc321x/platform.c
+++ b/arch/x86/mach-rdc321x/platform.c
@@ -62,6 +62,8 @@ static struct platform_device *rdc321x_devs[] = {
62 62
63static int __init rdc_board_setup(void) 63static int __init rdc_board_setup(void)
64{ 64{
65 rdc321x_gpio_setup();
66
65 return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs)); 67 return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
66} 68}
67 69
diff --git a/arch/x86/mm/discontig_32.c b/arch/x86/mm/discontig_32.c
index c394ca0720b8..8e25e06ff730 100644
--- a/arch/x86/mm/discontig_32.c
+++ b/arch/x86/mm/discontig_32.c
@@ -324,7 +324,6 @@ unsigned long __init setup_memory(void)
324 * this space and use it to adjust the boundary between ZONE_NORMAL 324 * this space and use it to adjust the boundary between ZONE_NORMAL
325 * and ZONE_HIGHMEM. 325 * and ZONE_HIGHMEM.
326 */ 326 */
327 find_max_pfn();
328 get_memcfg_numa(); 327 get_memcfg_numa();
329 328
330 kva_pages = calculate_numa_remap_pages(); 329 kva_pages = calculate_numa_remap_pages();
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index fdc667422df9..ec08d8389850 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -91,12 +91,10 @@ static int is_prefetch(struct pt_regs *regs, unsigned long addr,
91 int prefetch = 0; 91 int prefetch = 0;
92 unsigned char *max_instr; 92 unsigned char *max_instr;
93 93
94#ifdef CONFIG_X86_32 94 /*
95 if (!(__supported_pte_mask & _PAGE_NX)) 95 * If it was a exec (instruction fetch) fault on NX page, then
96 return 0; 96 * do not ignore the fault:
97#endif 97 */
98
99 /* If it was a exec fault on NX page, ignore */
100 if (error_code & PF_INSTR) 98 if (error_code & PF_INSTR)
101 return 0; 99 return 0;
102 100
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
index 3d936f232704..9cf33d3ee5bc 100644
--- a/arch/x86/mm/highmem_32.c
+++ b/arch/x86/mm/highmem_32.c
@@ -73,15 +73,15 @@ void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot)
73{ 73{
74 enum fixed_addresses idx; 74 enum fixed_addresses idx;
75 unsigned long vaddr; 75 unsigned long vaddr;
76 /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
77
78 debug_kmap_atomic_prot(type);
79 76
77 /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
80 pagefault_disable(); 78 pagefault_disable();
81 79
82 if (!PageHighMem(page)) 80 if (!PageHighMem(page))
83 return page_address(page); 81 return page_address(page);
84 82
83 debug_kmap_atomic_prot(type);
84
85 idx = type + KM_TYPE_NR*smp_processor_id(); 85 idx = type + KM_TYPE_NR*smp_processor_id();
86 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 86 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
87 BUG_ON(!pte_none(*(kmap_pte-idx))); 87 BUG_ON(!pte_none(*(kmap_pte-idx)));
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
index 4fbafb4bc2f0..0b3d567e686d 100644
--- a/arch/x86/mm/hugetlbpage.c
+++ b/arch/x86/mm/hugetlbpage.c
@@ -178,7 +178,7 @@ follow_huge_addr(struct mm_struct *mm, unsigned long address, int write)
178 178
179 page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)]; 179 page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)];
180 180
181 WARN_ON(!PageCompound(page)); 181 WARN_ON(!PageHead(page));
182 182
183 return page; 183 return page;
184} 184}
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 4afaba0ed722..794895c6dcc9 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -137,7 +137,11 @@ static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size,
137 switch (mode) { 137 switch (mode) {
138 case IOR_MODE_UNCACHED: 138 case IOR_MODE_UNCACHED:
139 default: 139 default:
140 prot = PAGE_KERNEL_NOCACHE; 140 /*
141 * FIXME: we will use UC MINUS for now, as video fb drivers
142 * depend on it. Upcoming ioremap_wc() will fix this behavior.
143 */
144 prot = PAGE_KERNEL_UC_MINUS;
141 break; 145 break;
142 case IOR_MODE_CACHED: 146 case IOR_MODE_CACHED:
143 prot = PAGE_KERNEL; 147 prot = PAGE_KERNEL;
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 14e48b5a94ba..7b79f6be4e7d 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -771,7 +771,7 @@ static inline int change_page_attr_clear(unsigned long addr, int numpages,
771int set_memory_uc(unsigned long addr, int numpages) 771int set_memory_uc(unsigned long addr, int numpages)
772{ 772{
773 return change_page_attr_set(addr, numpages, 773 return change_page_attr_set(addr, numpages,
774 __pgprot(_PAGE_PCD | _PAGE_PWT)); 774 __pgprot(_PAGE_PCD));
775} 775}
776EXPORT_SYMBOL(set_memory_uc); 776EXPORT_SYMBOL(set_memory_uc);
777 777
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 8b9ee27805fd..de4e6f05840b 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -95,7 +95,7 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&dummy_shared_info;
95 * 95 *
96 * 0: not available, 1: available 96 * 0: not available, 1: available
97 */ 97 */
98static int have_vcpu_info_placement = 0; 98static int have_vcpu_info_placement = 1;
99 99
100static void __init xen_vcpu_setup(int cpu) 100static void __init xen_vcpu_setup(int cpu)
101{ 101{
@@ -103,6 +103,7 @@ static void __init xen_vcpu_setup(int cpu)
103 int err; 103 int err;
104 struct vcpu_info *vcpup; 104 struct vcpu_info *vcpup;
105 105
106 BUG_ON(HYPERVISOR_shared_info == &dummy_shared_info);
106 per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu]; 107 per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu];
107 108
108 if (!have_vcpu_info_placement) 109 if (!have_vcpu_info_placement)
@@ -805,33 +806,43 @@ static __init void xen_pagetable_setup_start(pgd_t *base)
805 PFN_DOWN(__pa(xen_start_info->pt_base))); 806 PFN_DOWN(__pa(xen_start_info->pt_base)));
806} 807}
807 808
808static __init void xen_pagetable_setup_done(pgd_t *base) 809static __init void setup_shared_info(void)
809{ 810{
810 /* This will work as long as patching hasn't happened yet
811 (which it hasn't) */
812 pv_mmu_ops.alloc_pt = xen_alloc_pt;
813 pv_mmu_ops.alloc_pd = xen_alloc_pd;
814 pv_mmu_ops.release_pt = xen_release_pt;
815 pv_mmu_ops.release_pd = xen_release_pt;
816 pv_mmu_ops.set_pte = xen_set_pte;
817
818 if (!xen_feature(XENFEAT_auto_translated_physmap)) { 811 if (!xen_feature(XENFEAT_auto_translated_physmap)) {
812 unsigned long addr = fix_to_virt(FIX_PARAVIRT_BOOTMAP);
813
819 /* 814 /*
820 * Create a mapping for the shared info page. 815 * Create a mapping for the shared info page.
821 * Should be set_fixmap(), but shared_info is a machine 816 * Should be set_fixmap(), but shared_info is a machine
822 * address with no corresponding pseudo-phys address. 817 * address with no corresponding pseudo-phys address.
823 */ 818 */
824 set_pte_mfn(fix_to_virt(FIX_PARAVIRT_BOOTMAP), 819 set_pte_mfn(addr,
825 PFN_DOWN(xen_start_info->shared_info), 820 PFN_DOWN(xen_start_info->shared_info),
826 PAGE_KERNEL); 821 PAGE_KERNEL);
827 822
828 HYPERVISOR_shared_info = 823 HYPERVISOR_shared_info = (struct shared_info *)addr;
829 (struct shared_info *)fix_to_virt(FIX_PARAVIRT_BOOTMAP);
830
831 } else 824 } else
832 HYPERVISOR_shared_info = 825 HYPERVISOR_shared_info =
833 (struct shared_info *)__va(xen_start_info->shared_info); 826 (struct shared_info *)__va(xen_start_info->shared_info);
834 827
828#ifndef CONFIG_SMP
829 /* In UP this is as good a place as any to set up shared info */
830 xen_setup_vcpu_info_placement();
831#endif
832}
833
834static __init void xen_pagetable_setup_done(pgd_t *base)
835{
836 /* This will work as long as patching hasn't happened yet
837 (which it hasn't) */
838 pv_mmu_ops.alloc_pt = xen_alloc_pt;
839 pv_mmu_ops.alloc_pd = xen_alloc_pd;
840 pv_mmu_ops.release_pt = xen_release_pt;
841 pv_mmu_ops.release_pd = xen_release_pt;
842 pv_mmu_ops.set_pte = xen_set_pte;
843
844 setup_shared_info();
845
835 /* Actually pin the pagetable down, but we can't set PG_pinned 846 /* Actually pin the pagetable down, but we can't set PG_pinned
836 yet because the page structures don't exist yet. */ 847 yet because the page structures don't exist yet. */
837 { 848 {
@@ -1182,15 +1193,9 @@ asmlinkage void __init xen_start_kernel(void)
1182 x86_write_percpu(xen_cr3, __pa(pgd)); 1193 x86_write_percpu(xen_cr3, __pa(pgd));
1183 x86_write_percpu(xen_current_cr3, __pa(pgd)); 1194 x86_write_percpu(xen_current_cr3, __pa(pgd));
1184 1195
1185#ifdef CONFIG_SMP
1186 /* Don't do the full vcpu_info placement stuff until we have a 1196 /* Don't do the full vcpu_info placement stuff until we have a
1187 possible map. */ 1197 possible map and a non-dummy shared_info. */
1188 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; 1198 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
1189#else
1190 /* May as well do it now, since there's no good time to call
1191 it later on UP. */
1192 xen_setup_vcpu_info_placement();
1193#endif
1194 1199
1195 pv_info.kernel_rpl = 1; 1200 pv_info.kernel_rpl = 1;
1196 if (xen_feature(XENFEAT_supervisor_mode_kernel)) 1201 if (xen_feature(XENFEAT_supervisor_mode_kernel))
diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 1a43b60c0c62..6b7190449d07 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -33,12 +33,17 @@
33 events, then enter the hypervisor to get them handled. 33 events, then enter the hypervisor to get them handled.
34 */ 34 */
35ENTRY(xen_irq_enable_direct) 35ENTRY(xen_irq_enable_direct)
36 /* Clear mask and test pending */ 36 /* Unmask events */
37 andw $0x00ff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending 37 movb $0, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask
38
38 /* Preempt here doesn't matter because that will deal with 39 /* Preempt here doesn't matter because that will deal with
39 any pending interrupts. The pending check may end up being 40 any pending interrupts. The pending check may end up being
40 run on the wrong CPU, but that doesn't hurt. */ 41 run on the wrong CPU, but that doesn't hurt. */
42
43 /* Test for pending */
44 testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending
41 jz 1f 45 jz 1f
46
422: call check_events 472: call check_events
431: 481:
44ENDPATCH(xen_irq_enable_direct) 49ENDPATCH(xen_irq_enable_direct)