diff options
Diffstat (limited to 'arch')
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 | ||
173 | asmlinkage 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 | |||
192 | out: | ||
193 | return error; | ||
194 | } | ||
195 | |||
172 | struct oabi_flock64 { | 196 | struct 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 | ||
181 | int is_valid_bugaddr(unsigned long pc) | 182 | int 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 | ||
193 | asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs) | 195 | asmlinkage 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 | 485 | ifdef 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 | ||
489 | endif | ||
486 | core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ | 490 | core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ |
487 | cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=1 -Iinclude/asm-mips/mach-ip28 | 491 | cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=1 -Iinclude/asm-mips/mach-ip28 |
488 | #cflags-$(CONFIG_SGI_IP28) += -Iinclude/asm-mips/mach-ip28 | ||
489 | load-$(CONFIG_SGI_IP28) += 0xa800000020004000 | 492 | load-$(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 | */ |
25 | struct cpu_spec cpu_specs[] = { | 25 | struct 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 | ||
45 | void | 45 | void |
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 | ||
42 | void board_reset(void) | 41 | void 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 | ||
50 | struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { | 50 | struct 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 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_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 |
44 | CONFIG_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 | ||
40 | CONFIG_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 | ||
56 | CONFIG_SIBYTE_BCM1x80=y | 46 | CONFIG_SIBYTE_BCM1x80=y |
57 | CONFIG_SIBYTE_SB1xxx_SOC=y | 47 | CONFIG_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 |
61 | CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y | ||
71 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 62 | CONFIG_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 |
65 | CONFIG_ARCH_SUPPORTS_OPROFILE=y | ||
74 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 66 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
75 | CONFIG_GENERIC_HWEIGHT=y | 67 | CONFIG_GENERIC_HWEIGHT=y |
76 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 68 | CONFIG_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 |
82 | CONFIG_CEVT_BCM1480=y | 74 | CONFIG_CEVT_BCM1480=y |
83 | CONFIG_CSRC_BCM1480=y | 75 | CONFIG_CSRC_BCM1480=y |
76 | CONFIG_CFE=y | ||
84 | CONFIG_DMA_COHERENT=y | 77 | CONFIG_DMA_COHERENT=y |
78 | CONFIG_EARLY_PRINTK=y | ||
79 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
80 | # CONFIG_HOTPLUG_CPU is not set | ||
81 | # CONFIG_NO_IOPORT is not set | ||
85 | CONFIG_CPU_BIG_ENDIAN=y | 82 | CONFIG_CPU_BIG_ENDIAN=y |
86 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 83 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
87 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 84 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
88 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 85 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
86 | CONFIG_IRQ_CPU=y | ||
89 | CONFIG_SWAP_IO_SPACE=y | 87 | CONFIG_SWAP_IO_SPACE=y |
90 | CONFIG_BOOT_ELF32=y | 88 | CONFIG_BOOT_ELF32=y |
91 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 89 | CONFIG_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 | # |
96 | CONFIG_TICK_ONESHOT=y | ||
97 | CONFIG_NO_HZ=y | ||
98 | CONFIG_HIGH_RES_TIMERS=y | ||
99 | CONFIG_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 | |||
137 | CONFIG_MIPS_MT_DISABLED=y | 131 | CONFIG_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 | ||
141 | CONFIG_CPU_HAS_LLSC=y | 134 | CONFIG_CPU_HAS_LLSC=y |
142 | CONFIG_CPU_HAS_SYNC=y | 135 | CONFIG_CPU_HAS_SYNC=y |
143 | CONFIG_GENERIC_HARDIRQS=y | 136 | CONFIG_GENERIC_HARDIRQS=y |
144 | CONFIG_GENERIC_IRQ_PROBE=y | 137 | CONFIG_GENERIC_IRQ_PROBE=y |
145 | CONFIG_IRQ_PER_CPU=y | 138 | CONFIG_IRQ_PER_CPU=y |
146 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | 139 | CONFIG_CPU_SUPPORTS_HIGHMEM=y |
140 | CONFIG_SYS_SUPPORTS_HIGHMEM=y | ||
147 | CONFIG_ARCH_FLATMEM_ENABLE=y | 141 | CONFIG_ARCH_FLATMEM_ENABLE=y |
142 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
148 | CONFIG_SELECT_MEMORY_MODEL=y | 143 | CONFIG_SELECT_MEMORY_MODEL=y |
149 | CONFIG_FLATMEM_MANUAL=y | 144 | CONFIG_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 | |||
152 | CONFIG_FLATMEM=y | 147 | CONFIG_FLATMEM=y |
153 | CONFIG_FLAT_NODE_MEM_MAP=y | 148 | CONFIG_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 | ||
155 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 151 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
156 | CONFIG_RESOURCES_64BIT=y | 152 | CONFIG_RESOURCES_64BIT=y |
157 | CONFIG_ZONE_DMA_FLAG=1 | 153 | CONFIG_ZONE_DMA_FLAG=0 |
154 | CONFIG_VIRT_TO_BUS=y | ||
158 | CONFIG_SMP=y | 155 | CONFIG_SMP=y |
159 | CONFIG_SYS_SUPPORTS_SMP=y | 156 | CONFIG_SYS_SUPPORTS_SMP=y |
160 | CONFIG_NR_CPUS_DEFAULT_4=y | 157 | CONFIG_NR_CPUS_DEFAULT_4=y |
161 | CONFIG_NR_CPUS=4 | 158 | CONFIG_NR_CPUS=4 |
159 | CONFIG_TICK_ONESHOT=y | ||
160 | CONFIG_NO_HZ=y | ||
161 | CONFIG_HIGH_RES_TIMERS=y | ||
162 | CONFIG_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 | |||
171 | CONFIG_PREEMPT_NONE=y | 172 | CONFIG_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 |
176 | CONFIG_SECCOMP=y | ||
176 | CONFIG_LOCKDEP_SUPPORT=y | 177 | CONFIG_LOCKDEP_SUPPORT=y |
177 | CONFIG_STACKTRACE_SUPPORT=y | 178 | CONFIG_STACKTRACE_SUPPORT=y |
178 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 179 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
179 | 180 | ||
180 | # | 181 | # |
181 | # Code maturity level options | 182 | # General setup |
182 | # | 183 | # |
183 | CONFIG_EXPERIMENTAL=y | 184 | CONFIG_EXPERIMENTAL=y |
184 | CONFIG_LOCK_KERNEL=y | 185 | CONFIG_LOCK_KERNEL=y |
185 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 186 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
186 | |||
187 | # | ||
188 | # General setup | ||
189 | # | ||
190 | CONFIG_LOCALVERSION="" | 187 | CONFIG_LOCALVERSION="" |
191 | CONFIG_LOCALVERSION_AUTO=y | 188 | CONFIG_LOCALVERSION_AUTO=y |
192 | CONFIG_SWAP=y | 189 | CONFIG_SWAP=y |
193 | CONFIG_SYSVIPC=y | 190 | CONFIG_SYSVIPC=y |
194 | # CONFIG_IPC_NS is not set | ||
195 | CONFIG_SYSVIPC_SYSCTL=y | 191 | CONFIG_SYSVIPC_SYSCTL=y |
196 | # CONFIG_POSIX_MQUEUE is not set | 192 | CONFIG_POSIX_MQUEUE=y |
197 | # CONFIG_BSD_PROCESS_ACCT is not set | 193 | CONFIG_BSD_PROCESS_ACCT=y |
198 | # CONFIG_TASKSTATS is not set | 194 | CONFIG_BSD_PROCESS_ACCT_V3=y |
199 | # CONFIG_UTS_NS is not set | 195 | CONFIG_TASKSTATS=y |
200 | # CONFIG_AUDIT is not set | 196 | CONFIG_TASK_DELAY_ACCT=y |
197 | CONFIG_TASK_XACCT=y | ||
198 | CONFIG_TASK_IO_ACCOUNTING=y | ||
199 | CONFIG_AUDIT=y | ||
201 | CONFIG_IKCONFIG=y | 200 | CONFIG_IKCONFIG=y |
202 | CONFIG_IKCONFIG_PROC=y | 201 | CONFIG_IKCONFIG_PROC=y |
203 | # CONFIG_CPUSETS is not set | 202 | CONFIG_LOG_BUF_SHIFT=16 |
203 | # CONFIG_CGROUPS is not set | ||
204 | CONFIG_GROUP_SCHED=y | ||
205 | CONFIG_FAIR_GROUP_SCHED=y | ||
206 | # CONFIG_RT_GROUP_SCHED is not set | ||
207 | CONFIG_USER_SCHED=y | ||
208 | # CONFIG_CGROUP_SCHED is not set | ||
204 | CONFIG_SYSFS_DEPRECATED=y | 209 | CONFIG_SYSFS_DEPRECATED=y |
205 | # CONFIG_RELAY is not set | 210 | CONFIG_SYSFS_DEPRECATED_V2=y |
211 | CONFIG_RELAY=y | ||
212 | # CONFIG_NAMESPACES is not set | ||
213 | CONFIG_BLK_DEV_INITRD=y | ||
206 | CONFIG_INITRAMFS_SOURCE="" | 214 | CONFIG_INITRAMFS_SOURCE="" |
207 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 215 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
208 | CONFIG_SYSCTL=y | 216 | CONFIG_SYSCTL=y |
@@ -211,24 +219,33 @@ CONFIG_EMBEDDED=y | |||
211 | CONFIG_KALLSYMS=y | 219 | CONFIG_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 | 222 | CONFIG_HOTPLUG=y |
215 | CONFIG_PRINTK=y | 223 | CONFIG_PRINTK=y |
216 | CONFIG_BUG=y | 224 | CONFIG_BUG=y |
217 | CONFIG_ELF_CORE=y | 225 | CONFIG_ELF_CORE=y |
226 | CONFIG_COMPAT_BRK=y | ||
218 | CONFIG_BASE_FULL=y | 227 | CONFIG_BASE_FULL=y |
219 | CONFIG_FUTEX=y | 228 | CONFIG_FUTEX=y |
229 | CONFIG_ANON_INODES=y | ||
220 | CONFIG_EPOLL=y | 230 | CONFIG_EPOLL=y |
231 | CONFIG_SIGNALFD=y | ||
232 | CONFIG_TIMERFD=y | ||
233 | CONFIG_EVENTFD=y | ||
221 | CONFIG_SHMEM=y | 234 | CONFIG_SHMEM=y |
222 | CONFIG_SLAB=y | ||
223 | CONFIG_VM_EVENT_COUNTERS=y | 235 | CONFIG_VM_EVENT_COUNTERS=y |
236 | CONFIG_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 | ||
241 | CONFIG_HAVE_OPROFILE=y | ||
242 | # CONFIG_HAVE_KPROBES is not set | ||
243 | # CONFIG_HAVE_KRETPROBES is not set | ||
244 | CONFIG_PROC_PAGE_MONITOR=y | ||
245 | CONFIG_SLABINFO=y | ||
224 | CONFIG_RT_MUTEXES=y | 246 | CONFIG_RT_MUTEXES=y |
225 | # CONFIG_TINY_SHMEM is not set | 247 | # CONFIG_TINY_SHMEM is not set |
226 | CONFIG_BASE_SMALL=0 | 248 | CONFIG_BASE_SMALL=0 |
227 | # CONFIG_SLOB is not set | ||
228 | |||
229 | # | ||
230 | # Loadable module support | ||
231 | # | ||
232 | CONFIG_MODULES=y | 249 | CONFIG_MODULES=y |
233 | CONFIG_MODULE_UNLOAD=y | 250 | CONFIG_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 | |||
236 | CONFIG_MODULE_SRCVERSION_ALL=y | 253 | CONFIG_MODULE_SRCVERSION_ALL=y |
237 | CONFIG_KMOD=y | 254 | CONFIG_KMOD=y |
238 | CONFIG_STOP_MACHINE=y | 255 | CONFIG_STOP_MACHINE=y |
239 | |||
240 | # | ||
241 | # Block layer | ||
242 | # | ||
243 | CONFIG_BLOCK=y | 256 | CONFIG_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 | ||
259 | CONFIG_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 |
257 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 272 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
273 | CONFIG_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" | |||
262 | CONFIG_HW_HAS_PCI=y | 278 | CONFIG_HW_HAS_PCI=y |
263 | CONFIG_PCI=y | 279 | CONFIG_PCI=y |
264 | CONFIG_PCI_DOMAINS=y | 280 | CONFIG_PCI_DOMAINS=y |
281 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
282 | CONFIG_PCI_LEGACY=y | ||
265 | CONFIG_PCI_DEBUG=y | 283 | CONFIG_PCI_DEBUG=y |
266 | CONFIG_MMU=y | 284 | CONFIG_MMU=y |
267 | 285 | CONFIG_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 | # |
279 | CONFIG_BINFMT_ELF=y | 292 | CONFIG_BINFMT_ELF=y |
280 | # CONFIG_BINFMT_MISC is not set | 293 | # CONFIG_BINFMT_MISC is not set |
281 | # CONFIG_BUILD_ELF64 is not set | ||
282 | CONFIG_MIPS32_COMPAT=y | 294 | CONFIG_MIPS32_COMPAT=y |
283 | CONFIG_COMPAT=y | 295 | CONFIG_COMPAT=y |
284 | CONFIG_SYSVIPC_COMPAT=y | 296 | CONFIG_SYSVIPC_COMPAT=y |
@@ -292,7 +304,6 @@ CONFIG_BINFMT_ELF32=y | |||
292 | CONFIG_PM=y | 304 | CONFIG_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 | ||
306 | CONFIG_PACKET=y | 316 | CONFIG_PACKET=y |
307 | CONFIG_PACKET_MMAP=y | 317 | CONFIG_PACKET_MMAP=y |
308 | CONFIG_UNIX=y | 318 | CONFIG_UNIX=y |
@@ -310,10 +320,11 @@ CONFIG_XFRM=y | |||
310 | CONFIG_XFRM_USER=m | 320 | CONFIG_XFRM_USER=m |
311 | # CONFIG_XFRM_SUB_POLICY is not set | 321 | # CONFIG_XFRM_SUB_POLICY is not set |
312 | CONFIG_XFRM_MIGRATE=y | 322 | CONFIG_XFRM_MIGRATE=y |
323 | # CONFIG_XFRM_STATISTICS is not set | ||
313 | CONFIG_NET_KEY=y | 324 | CONFIG_NET_KEY=y |
314 | CONFIG_NET_KEY_MIGRATE=y | 325 | CONFIG_NET_KEY_MIGRATE=y |
315 | CONFIG_INET=y | 326 | CONFIG_INET=y |
316 | # CONFIG_IP_MULTICAST is not set | 327 | CONFIG_IP_MULTICAST=y |
317 | # CONFIG_IP_ADVANCED_ROUTER is not set | 328 | # CONFIG_IP_ADVANCED_ROUTER is not set |
318 | CONFIG_IP_FIB_HASH=y | 329 | CONFIG_IP_FIB_HASH=y |
319 | CONFIG_IP_PNP=y | 330 | CONFIG_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 |
336 | CONFIG_IP_MROUTE=y | ||
337 | CONFIG_IP_PIMSM_V1=y | ||
338 | CONFIG_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 | 341 | CONFIG_INET_AH=m |
328 | # CONFIG_INET_ESP is not set | 342 | CONFIG_INET_ESP=m |
329 | # CONFIG_INET_IPCOMP is not set | 343 | CONFIG_INET_IPCOMP=m |
330 | # CONFIG_INET_XFRM_TUNNEL is not set | 344 | CONFIG_INET_XFRM_TUNNEL=m |
331 | # CONFIG_INET_TUNNEL is not set | 345 | CONFIG_INET_TUNNEL=m |
332 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 346 | CONFIG_INET_XFRM_MODE_TRANSPORT=m |
333 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 347 | CONFIG_INET_XFRM_MODE_TUNNEL=m |
334 | CONFIG_INET_XFRM_MODE_BEET=y | 348 | CONFIG_INET_XFRM_MODE_BEET=y |
349 | # CONFIG_INET_LRO is not set | ||
335 | CONFIG_INET_DIAG=y | 350 | CONFIG_INET_DIAG=y |
336 | CONFIG_INET_TCP_DIAG=y | 351 | CONFIG_INET_TCP_DIAG=y |
337 | # CONFIG_TCP_CONG_ADVANCED is not set | 352 | # CONFIG_TCP_CONG_ADVANCED is not set |
338 | CONFIG_TCP_CONG_CUBIC=y | 353 | CONFIG_TCP_CONG_CUBIC=y |
339 | CONFIG_DEFAULT_TCP_CONG="cubic" | 354 | CONFIG_DEFAULT_TCP_CONG="cubic" |
340 | CONFIG_TCP_MD5SIG=y | 355 | CONFIG_TCP_MD5SIG=y |
341 | # CONFIG_IPV6 is not set | 356 | CONFIG_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 | 358 | CONFIG_IP_VS_TAB_BITS=12 |
359 | |||
360 | # | ||
361 | # IPVS transport protocol load balancing support | ||
362 | # | ||
363 | CONFIG_IP_VS_PROTO_TCP=y | ||
364 | CONFIG_IP_VS_PROTO_UDP=y | ||
365 | CONFIG_IP_VS_PROTO_ESP=y | ||
366 | CONFIG_IP_VS_PROTO_AH=y | ||
367 | |||
368 | # | ||
369 | # IPVS scheduler | ||
370 | # | ||
371 | CONFIG_IP_VS_RR=m | ||
372 | CONFIG_IP_VS_WRR=m | ||
373 | CONFIG_IP_VS_LC=m | ||
374 | CONFIG_IP_VS_WLC=m | ||
375 | CONFIG_IP_VS_LBLC=m | ||
376 | CONFIG_IP_VS_LBLCR=m | ||
377 | CONFIG_IP_VS_DH=m | ||
378 | CONFIG_IP_VS_SH=m | ||
379 | CONFIG_IP_VS_SED=m | ||
380 | CONFIG_IP_VS_NQ=m | ||
381 | |||
382 | # | ||
383 | # IPVS application helper | ||
384 | # | ||
385 | CONFIG_IP_VS_FTP=m | ||
386 | CONFIG_IPV6=m | ||
387 | CONFIG_IPV6_PRIVACY=y | ||
388 | CONFIG_IPV6_ROUTER_PREF=y | ||
389 | CONFIG_IPV6_ROUTE_INFO=y | ||
390 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
391 | CONFIG_INET6_AH=m | ||
392 | CONFIG_INET6_ESP=m | ||
393 | CONFIG_INET6_IPCOMP=m | ||
394 | CONFIG_IPV6_MIP6=m | ||
395 | CONFIG_INET6_XFRM_TUNNEL=m | ||
396 | CONFIG_INET6_TUNNEL=m | ||
397 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
398 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
399 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
400 | CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m | ||
401 | CONFIG_IPV6_SIT=m | ||
402 | CONFIG_IPV6_TUNNEL=m | ||
403 | CONFIG_IPV6_MULTIPLE_TABLES=y | ||
404 | CONFIG_IPV6_SUBTREES=y | ||
344 | CONFIG_NETWORK_SECMARK=y | 405 | CONFIG_NETWORK_SECMARK=y |
345 | # CONFIG_NETFILTER is not set | 406 | CONFIG_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 | # | ||
413 | CONFIG_NETFILTER_NETLINK=m | ||
414 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
415 | CONFIG_NF_CONNTRACK=m | ||
416 | CONFIG_NF_CONNTRACK_SECMARK=y | ||
417 | CONFIG_NF_CONNTRACK_FTP=m | ||
418 | CONFIG_NF_CONNTRACK_IRC=m | ||
419 | CONFIG_NF_CONNTRACK_SIP=m | ||
420 | CONFIG_NF_CT_NETLINK=m | ||
421 | CONFIG_NETFILTER_XTABLES=m | ||
422 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
423 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | ||
424 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | ||
425 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | ||
426 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | ||
427 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
428 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
429 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
430 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
431 | |||
432 | # | ||
433 | # IP: Netfilter Configuration | ||
434 | # | ||
435 | CONFIG_NF_CONNTRACK_IPV4=m | ||
436 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | ||
437 | CONFIG_IP_NF_IPTABLES=m | ||
438 | CONFIG_IP_NF_FILTER=m | ||
439 | CONFIG_IP_NF_TARGET_REJECT=m | ||
440 | CONFIG_IP_NF_TARGET_LOG=m | ||
441 | CONFIG_IP_NF_TARGET_ULOG=m | ||
442 | CONFIG_NF_NAT=m | ||
443 | CONFIG_NF_NAT_NEEDED=y | ||
444 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
445 | CONFIG_NF_NAT_FTP=m | ||
446 | CONFIG_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 | ||
451 | CONFIG_NF_NAT_SIP=m | ||
452 | CONFIG_IP_NF_MANGLE=m | ||
453 | |||
454 | # | ||
455 | # IPv6: Netfilter Configuration | ||
456 | # | ||
457 | CONFIG_NF_CONNTRACK_IPV6=m | ||
458 | CONFIG_IP6_NF_IPTABLES=m | ||
459 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
460 | CONFIG_IP6_NF_FILTER=m | ||
461 | CONFIG_IP6_NF_TARGET_LOG=m | ||
462 | CONFIG_IP6_NF_TARGET_REJECT=m | ||
463 | CONFIG_IP6_NF_MANGLE=m | ||
350 | # CONFIG_IP_DCCP is not set | 464 | # CONFIG_IP_DCCP is not set |
351 | 465 | CONFIG_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 | 470 | CONFIG_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 | ||
494 | CONFIG_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 | # |
513 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
394 | CONFIG_STANDALONE=y | 514 | CONFIG_STANDALONE=y |
395 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 515 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
516 | CONFIG_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 | 523 | CONFIG_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 |
428 | CONFIG_BLK_DEV_LOOP=m | 529 | CONFIG_BLK_DEV_LOOP=m |
429 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 530 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
430 | CONFIG_BLK_DEV_NBD=m | 531 | CONFIG_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 |
433 | CONFIG_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 | 536 | CONFIG_MISC_DEVICES=y | |
437 | # | 537 | # CONFIG_PHANTOM is not set |
438 | # Misc devices | 538 | # CONFIG_EEPROM_93CX6 is not set |
439 | # | ||
440 | CONFIG_SGI_IOC4=m | 539 | CONFIG_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 | # | 542 | CONFIG_HAVE_IDE=y |
444 | # ATA/ATAPI/MFM/RLL support | ||
445 | # | ||
446 | CONFIG_IDE=y | 543 | CONFIG_IDE=y |
447 | CONFIG_IDE_MAX_HWIFS=4 | 544 | CONFIG_IDE_MAX_HWIFS=4 |
448 | CONFIG_BLK_DEV_IDE=y | 545 | CONFIG_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 |
454 | CONFIG_BLK_DEV_IDEDISK=y | 551 | CONFIG_BLK_DEV_IDEDISK=y |
455 | # CONFIG_IDEDISK_MULTI_MODE is not set | 552 | # CONFIG_IDEDISK_MULTI_MODE is not set |
456 | CONFIG_BLK_DEV_IDECD=y | 553 | CONFIG_BLK_DEV_IDECD=y |
554 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
457 | CONFIG_BLK_DEV_IDETAPE=y | 555 | CONFIG_BLK_DEV_IDETAPE=y |
458 | CONFIG_BLK_DEV_IDEFLOPPY=y | 556 | CONFIG_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 |
559 | CONFIG_IDE_PROC_FS=y | ||
460 | 560 | ||
461 | # | 561 | # |
462 | # IDE chipset support/bugfixes | 562 | # IDE chipset support/bugfixes |
463 | # | 563 | # |
464 | CONFIG_IDE_GENERIC=y | 564 | CONFIG_IDE_GENERIC=y |
565 | # CONFIG_BLK_DEV_PLATFORM is not set | ||
566 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
567 | |||
568 | # | ||
569 | # PCI IDE chipsets support | ||
570 | # | ||
465 | CONFIG_BLK_DEV_IDEPCI=y | 571 | CONFIG_BLK_DEV_IDEPCI=y |
466 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 572 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
467 | # CONFIG_BLK_DEV_OFFBOARD is not set | 573 | # CONFIG_BLK_DEV_OFFBOARD is not set |
468 | CONFIG_BLK_DEV_GENERIC=y | 574 | CONFIG_BLK_DEV_GENERIC=y |
469 | # CONFIG_BLK_DEV_OPTI621 is not set | 575 | # CONFIG_BLK_DEV_OPTI621 is not set |
470 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 576 | CONFIG_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 |
496 | CONFIG_BLK_DEV_TC86C001=m | 600 | CONFIG_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 | ||
499 | CONFIG_BLK_DEV_IDEDMA=y | 602 | CONFIG_BLK_DEV_IDEDMA=y |
500 | # CONFIG_IDEDMA_IVB is not set | 603 | CONFIG_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 | 610 | CONFIG_SCSI=y |
611 | CONFIG_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 | 614 | CONFIG_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 | 619 | CONFIG_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 | ||
633 | CONFIG_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 | ||
643 | CONFIG_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 | ||
676 | CONFIG_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 | ||
688 | CONFIG_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 | ||
728 | CONFIG_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 | # | ||
539 | CONFIG_NETDEVICES=y | 742 | CONFIG_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 | 751 | CONFIG_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 | ||
558 | CONFIG_NET_ETHERNET=y | 768 | CONFIG_NET_ETHERNET=y |
559 | CONFIG_MII=y | 769 | CONFIG_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 | # | 784 | CONFIG_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 | 806 | CONFIG_NETDEV_10000=y | |
593 | # | ||
594 | # Ethernet (10000 Mbit) | ||
595 | # | ||
596 | # CONFIG_CHELSIO_T1 is not set | 807 | # CONFIG_CHELSIO_T1 is not set |
597 | CONFIG_CHELSIO_T3=m | 808 | CONFIG_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 |
601 | CONFIG_NETXEN_NIC=m | 813 | CONFIG_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 | 828 | CONFIG_PPP=m |
620 | # CONFIG_SLIP is not set | 829 | CONFIG_PPP_MULTILINK=y |
621 | # CONFIG_SHAPER is not set | 830 | CONFIG_PPP_FILTER=y |
831 | CONFIG_PPP_ASYNC=m | ||
832 | CONFIG_PPP_SYNC_TTY=m | ||
833 | CONFIG_PPP_DEFLATE=m | ||
834 | CONFIG_PPP_BSDCOMP=m | ||
835 | CONFIG_PPP_MPPE=m | ||
836 | CONFIG_PPPOE=m | ||
837 | CONFIG_PPPOL2TP=m | ||
838 | CONFIG_SLIP=m | ||
839 | CONFIG_SLIP_COMPRESSED=y | ||
840 | CONFIG_SLHC=m | ||
841 | CONFIG_SLIP_SMART=y | ||
842 | CONFIG_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 |
663 | CONFIG_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 |
672 | CONFIG_SERIAL_SB1250_DUART=y | 886 | # CONFIG_NOZOMI is not set |
673 | CONFIG_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 | # |
896 | CONFIG_SERIAL_SB1250_DUART=y | ||
897 | CONFIG_SERIAL_SB1250_DUART_CONSOLE=y | ||
898 | CONFIG_SERIAL_CORE=y | ||
899 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
683 | # CONFIG_SERIAL_JSM is not set | 900 | # CONFIG_SERIAL_JSM is not set |
684 | CONFIG_UNIX98_PTYS=y | 901 | CONFIG_UNIX98_PTYS=y |
685 | CONFIG_LEGACY_PTYS=y | 902 | CONFIG_LEGACY_PTYS=y |
686 | CONFIG_LEGACY_PTY_COUNT=256 | 903 | CONFIG_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 |
699 | CONFIG_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 | 911 | CONFIG_DEVPORT=y | |
712 | # | ||
713 | # I2C support | ||
714 | # | ||
715 | CONFIG_I2C=y | 912 | CONFIG_I2C=y |
913 | CONFIG_I2C_BOARDINFO=y | ||
716 | CONFIG_I2C_CHARDEV=y | 914 | CONFIG_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 |
742 | CONFIG_I2C_SIBYTE=y | 939 | CONFIG_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 | # |
755 | CONFIG_SENSORS_DS1337=y | 953 | # CONFIG_DS1682 is not set |
756 | CONFIG_SENSORS_DS1374=y | ||
757 | CONFIG_SENSORS_EEPROM=y | 954 | CONFIG_SENSORS_EEPROM=y |
758 | CONFIG_SENSORS_PCF8574=y | 955 | CONFIG_SENSORS_PCF8574=y |
759 | CONFIG_SENSORS_PCA9539=y | 956 | # CONFIG_PCF8575 is not set |
760 | CONFIG_SENSORS_PCF8591=y | 957 | CONFIG_SENSORS_PCF8591=y |
958 | # CONFIG_TPS65010 is not set | ||
761 | CONFIG_SENSORS_MAX6875=y | 959 | CONFIG_SENSORS_MAX6875=y |
960 | # CONFIG_SENSORS_TSL2550 is not set | ||
762 | CONFIG_I2C_DEBUG_CORE=y | 961 | CONFIG_I2C_DEBUG_CORE=y |
763 | CONFIG_I2C_DEBUG_ALGO=y | 962 | CONFIG_I2C_DEBUG_ALGO=y |
764 | CONFIG_I2C_DEBUG_BUS=y | 963 | CONFIG_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 | 980 | CONFIG_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 | ||
1013 | CONFIG_USB_SUPPORT=y | ||
809 | CONFIG_USB_ARCH_HAS_HCD=y | 1014 | CONFIG_USB_ARCH_HAS_HCD=y |
810 | CONFIG_USB_ARCH_HAS_OHCI=y | 1015 | CONFIG_USB_ARCH_HAS_OHCI=y |
811 | CONFIG_USB_ARCH_HAS_EHCI=y | 1016 | CONFIG_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 | 1027 | CONFIG_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 | # |
879 | CONFIG_EXT2_FS=y | 1038 | CONFIG_EXT2_FS=m |
880 | CONFIG_EXT2_FS_XATTR=y | 1039 | CONFIG_EXT2_FS_XATTR=y |
881 | CONFIG_EXT2_FS_POSIX_ACL=y | 1040 | # CONFIG_EXT2_FS_POSIX_ACL is not set |
882 | CONFIG_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 | 1043 | CONFIG_EXT3_FS=y |
1044 | CONFIG_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 |
1048 | CONFIG_JBD=y | ||
886 | CONFIG_FS_MBCACHE=y | 1049 | CONFIG_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 |
889 | CONFIG_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 | 1056 | CONFIG_DNOTIFY=y |
894 | # CONFIG_ROMFS_FS is not set | ||
895 | CONFIG_INOTIFY=y | 1057 | CONFIG_INOTIFY=y |
896 | CONFIG_INOTIFY_USER=y | 1058 | CONFIG_INOTIFY_USER=y |
897 | # CONFIG_QUOTA is not set | 1059 | CONFIG_QUOTA=y |
898 | CONFIG_DNOTIFY=y | 1060 | CONFIG_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 | 1063 | CONFIG_QFMT_V2=m |
1064 | CONFIG_QUOTACTL=y | ||
1065 | CONFIG_AUTOFS_FS=m | ||
1066 | CONFIG_AUTOFS4_FS=m | ||
1067 | CONFIG_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 | 1072 | CONFIG_ISO9660_FS=m |
907 | # CONFIG_UDF_FS is not set | 1073 | CONFIG_JOLIET=y |
1074 | CONFIG_ZISOFS=y | ||
1075 | CONFIG_UDF_FS=m | ||
1076 | CONFIG_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 | 1081 | CONFIG_FAT_FS=m |
913 | # CONFIG_VFAT_FS is not set | 1082 | CONFIG_MSDOS_FS=m |
914 | # CONFIG_NTFS_FS is not set | 1083 | CONFIG_VFAT_FS=m |
1084 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
1085 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
1086 | CONFIG_NTFS_FS=m | ||
1087 | # CONFIG_NTFS_DEBUG is not set | ||
1088 | CONFIG_NTFS_RW=y | ||
915 | 1089 | ||
916 | # | 1090 | # |
917 | # Pseudo filesystems | 1091 | # Pseudo filesystems |
@@ -923,7 +1097,6 @@ CONFIG_SYSFS=y | |||
923 | CONFIG_TMPFS=y | 1097 | CONFIG_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 |
926 | CONFIG_RAMFS=y | ||
927 | CONFIG_CONFIGFS_FS=m | 1100 | CONFIG_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 | 1121 | CONFIG_NETWORK_FILESYSTEMS=y | |
947 | # | ||
948 | # Network File Systems | ||
949 | # | ||
950 | CONFIG_NFS_FS=y | 1122 | CONFIG_NFS_FS=y |
951 | CONFIG_NFS_V3=y | 1123 | CONFIG_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 | |||
958 | CONFIG_LOCKD_V4=y | 1130 | CONFIG_LOCKD_V4=y |
959 | CONFIG_NFS_COMMON=y | 1131 | CONFIG_NFS_COMMON=y |
960 | CONFIG_SUNRPC=y | 1132 | CONFIG_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 |
974 | CONFIG_MSDOS_PARTITION=y | 1146 | CONFIG_MSDOS_PARTITION=y |
975 | 1147 | CONFIG_NLS=m | |
976 | # | 1148 | CONFIG_NLS_DEFAULT="iso8859-1" |
977 | # Native Language Support | 1149 | CONFIG_NLS_CODEPAGE_437=m |
978 | # | 1150 | CONFIG_NLS_CODEPAGE_737=m |
979 | # CONFIG_NLS is not set | 1151 | CONFIG_NLS_CODEPAGE_775=m |
980 | 1152 | CONFIG_NLS_CODEPAGE_850=m | |
981 | # | 1153 | CONFIG_NLS_CODEPAGE_852=m |
982 | # Distributed Lock Manager | 1154 | CONFIG_NLS_CODEPAGE_855=m |
983 | # | 1155 | CONFIG_NLS_CODEPAGE_857=m |
1156 | CONFIG_NLS_CODEPAGE_860=m | ||
1157 | CONFIG_NLS_CODEPAGE_861=m | ||
1158 | CONFIG_NLS_CODEPAGE_862=m | ||
1159 | CONFIG_NLS_CODEPAGE_863=m | ||
1160 | CONFIG_NLS_CODEPAGE_864=m | ||
1161 | CONFIG_NLS_CODEPAGE_865=m | ||
1162 | CONFIG_NLS_CODEPAGE_866=m | ||
1163 | CONFIG_NLS_CODEPAGE_869=m | ||
1164 | CONFIG_NLS_CODEPAGE_936=m | ||
1165 | CONFIG_NLS_CODEPAGE_950=m | ||
1166 | CONFIG_NLS_CODEPAGE_932=m | ||
1167 | CONFIG_NLS_CODEPAGE_949=m | ||
1168 | CONFIG_NLS_CODEPAGE_874=m | ||
1169 | CONFIG_NLS_ISO8859_8=m | ||
1170 | CONFIG_NLS_CODEPAGE_1250=m | ||
1171 | CONFIG_NLS_CODEPAGE_1251=m | ||
1172 | CONFIG_NLS_ASCII=m | ||
1173 | CONFIG_NLS_ISO8859_1=m | ||
1174 | CONFIG_NLS_ISO8859_2=m | ||
1175 | CONFIG_NLS_ISO8859_3=m | ||
1176 | CONFIG_NLS_ISO8859_4=m | ||
1177 | CONFIG_NLS_ISO8859_5=m | ||
1178 | CONFIG_NLS_ISO8859_6=m | ||
1179 | CONFIG_NLS_ISO8859_7=m | ||
1180 | CONFIG_NLS_ISO8859_9=m | ||
1181 | CONFIG_NLS_ISO8859_13=m | ||
1182 | CONFIG_NLS_ISO8859_14=m | ||
1183 | CONFIG_NLS_ISO8859_15=m | ||
1184 | CONFIG_NLS_KOI8_R=m | ||
1185 | CONFIG_NLS_KOI8_U=m | ||
1186 | CONFIG_NLS_UTF8=m | ||
984 | CONFIG_DLM=m | 1187 | CONFIG_DLM=m |
985 | CONFIG_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 | # |
997 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1193 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
998 | # CONFIG_PRINTK_TIME is not set | 1194 | # CONFIG_PRINTK_TIME is not set |
1195 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
999 | CONFIG_ENABLE_MUST_CHECK=y | 1196 | CONFIG_ENABLE_MUST_CHECK=y |
1000 | CONFIG_MAGIC_SYSRQ=y | 1197 | CONFIG_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 |
1004 | CONFIG_DEBUG_KERNEL=y | 1201 | CONFIG_DEBUG_KERNEL=y |
1005 | # CONFIG_DEBUG_SHIRQ is not set | 1202 | # CONFIG_DEBUG_SHIRQ is not set |
1006 | CONFIG_LOG_BUF_SHIFT=16 | ||
1007 | CONFIG_DETECT_SOFTLOCKUP=y | 1203 | CONFIG_DETECT_SOFTLOCKUP=y |
1204 | CONFIG_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 | |||
1014 | CONFIG_DEBUG_MUTEXES=y | 1211 | CONFIG_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 |
1023 | CONFIG_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 |
1025 | CONFIG_CROSSCOMPILE=y | 1224 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1225 | # CONFIG_FAULT_INJECTION is not set | ||
1226 | # CONFIG_SAMPLES is not set | ||
1026 | CONFIG_CMDLINE="" | 1227 | CONFIG_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="" | |||
1034 | CONFIG_KEYS=y | 1235 | CONFIG_KEYS=y |
1035 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1236 | CONFIG_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 | # | ||
1041 | CONFIG_CRYPTO=y | 1239 | CONFIG_CRYPTO=y |
1042 | CONFIG_CRYPTO_ALGAPI=y | 1240 | CONFIG_CRYPTO_ALGAPI=y |
1043 | CONFIG_CRYPTO_BLKCIPHER=m | 1241 | CONFIG_CRYPTO_AEAD=m |
1242 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1243 | CONFIG_CRYPTO_SEQIV=m | ||
1044 | CONFIG_CRYPTO_HASH=y | 1244 | CONFIG_CRYPTO_HASH=y |
1045 | CONFIG_CRYPTO_MANAGER=y | 1245 | CONFIG_CRYPTO_MANAGER=y |
1046 | CONFIG_CRYPTO_HMAC=y | 1246 | CONFIG_CRYPTO_HMAC=y |
1047 | CONFIG_CRYPTO_XCBC=m | 1247 | CONFIG_CRYPTO_XCBC=m |
1048 | CONFIG_CRYPTO_NULL=y | 1248 | CONFIG_CRYPTO_NULL=y |
1049 | CONFIG_CRYPTO_MD4=y | 1249 | CONFIG_CRYPTO_MD4=m |
1050 | CONFIG_CRYPTO_MD5=y | 1250 | CONFIG_CRYPTO_MD5=y |
1051 | CONFIG_CRYPTO_SHA1=y | 1251 | CONFIG_CRYPTO_SHA1=m |
1052 | CONFIG_CRYPTO_SHA256=y | 1252 | CONFIG_CRYPTO_SHA256=m |
1053 | CONFIG_CRYPTO_SHA512=y | 1253 | CONFIG_CRYPTO_SHA512=m |
1054 | CONFIG_CRYPTO_WP512=m | 1254 | CONFIG_CRYPTO_WP512=m |
1055 | CONFIG_CRYPTO_TGR192=m | 1255 | CONFIG_CRYPTO_TGR192=m |
1056 | CONFIG_CRYPTO_GF128MUL=m | 1256 | CONFIG_CRYPTO_GF128MUL=m |
@@ -1058,39 +1258,50 @@ CONFIG_CRYPTO_ECB=m | |||
1058 | CONFIG_CRYPTO_CBC=m | 1258 | CONFIG_CRYPTO_CBC=m |
1059 | CONFIG_CRYPTO_PCBC=m | 1259 | CONFIG_CRYPTO_PCBC=m |
1060 | CONFIG_CRYPTO_LRW=m | 1260 | CONFIG_CRYPTO_LRW=m |
1061 | CONFIG_CRYPTO_DES=y | 1261 | CONFIG_CRYPTO_XTS=m |
1262 | CONFIG_CRYPTO_CTR=m | ||
1263 | CONFIG_CRYPTO_GCM=m | ||
1264 | CONFIG_CRYPTO_CCM=m | ||
1265 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1266 | CONFIG_CRYPTO_DES=m | ||
1062 | CONFIG_CRYPTO_FCRYPT=m | 1267 | CONFIG_CRYPTO_FCRYPT=m |
1063 | CONFIG_CRYPTO_BLOWFISH=y | 1268 | CONFIG_CRYPTO_BLOWFISH=m |
1064 | CONFIG_CRYPTO_TWOFISH=y | 1269 | CONFIG_CRYPTO_TWOFISH=m |
1065 | CONFIG_CRYPTO_TWOFISH_COMMON=y | 1270 | CONFIG_CRYPTO_TWOFISH_COMMON=m |
1066 | CONFIG_CRYPTO_SERPENT=y | 1271 | CONFIG_CRYPTO_SERPENT=m |
1067 | CONFIG_CRYPTO_AES=m | 1272 | CONFIG_CRYPTO_AES=m |
1068 | # CONFIG_CRYPTO_CAST5 is not set | 1273 | CONFIG_CRYPTO_CAST5=m |
1069 | # CONFIG_CRYPTO_CAST6 is not set | 1274 | CONFIG_CRYPTO_CAST6=m |
1070 | CONFIG_CRYPTO_TEA=m | 1275 | CONFIG_CRYPTO_TEA=m |
1071 | # CONFIG_CRYPTO_ARC4 is not set | 1276 | CONFIG_CRYPTO_ARC4=m |
1072 | CONFIG_CRYPTO_KHAZAD=m | 1277 | CONFIG_CRYPTO_KHAZAD=m |
1073 | CONFIG_CRYPTO_ANUBIS=m | 1278 | CONFIG_CRYPTO_ANUBIS=m |
1074 | CONFIG_CRYPTO_DEFLATE=y | 1279 | CONFIG_CRYPTO_SEED=m |
1075 | CONFIG_CRYPTO_MICHAEL_MIC=y | 1280 | CONFIG_CRYPTO_SALSA20=m |
1281 | CONFIG_CRYPTO_DEFLATE=m | ||
1282 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1076 | # CONFIG_CRYPTO_CRC32C is not set | 1283 | # CONFIG_CRYPTO_CRC32C is not set |
1077 | CONFIG_CRYPTO_CAMELLIA=m | 1284 | CONFIG_CRYPTO_CAMELLIA=m |
1078 | # CONFIG_CRYPTO_TEST is not set | 1285 | # CONFIG_CRYPTO_TEST is not set |
1079 | 1286 | CONFIG_CRYPTO_AUTHENC=m | |
1080 | # | 1287 | # CONFIG_CRYPTO_LZO is not set |
1081 | # Hardware crypto devices | 1288 | CONFIG_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 | # |
1087 | CONFIG_BITREVERSE=y | 1294 | CONFIG_BITREVERSE=y |
1088 | # CONFIG_CRC_CCITT is not set | 1295 | CONFIG_CRC_CCITT=m |
1089 | # CONFIG_CRC16 is not set | 1296 | # CONFIG_CRC16 is not set |
1297 | # CONFIG_CRC_ITU_T is not set | ||
1090 | CONFIG_CRC32=y | 1298 | CONFIG_CRC32=y |
1091 | # CONFIG_LIBCRC32C is not set | 1299 | # CONFIG_CRC7 is not set |
1092 | CONFIG_ZLIB_INFLATE=y | 1300 | CONFIG_LIBCRC32C=m |
1093 | CONFIG_ZLIB_DEFLATE=y | 1301 | CONFIG_AUDIT_GENERIC=y |
1302 | CONFIG_ZLIB_INFLATE=m | ||
1303 | CONFIG_ZLIB_DEFLATE=m | ||
1094 | CONFIG_PLIST=y | 1304 | CONFIG_PLIST=y |
1095 | CONFIG_HAS_IOMEM=y | 1305 | CONFIG_HAS_IOMEM=y |
1096 | CONFIG_HAS_IOPORT=y | 1306 | CONFIG_HAS_IOPORT=y |
1307 | CONFIG_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 | ||
17 | DEFINE_SPINLOCK(i8253_lock); | 17 | DEFINE_SPINLOCK(i8253_lock); |
18 | EXPORT_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 */ |
263 | static void *alloc_progmem(unsigned long len) | 263 | static 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 | ||
274 | static void release_progmem(void *ptr) | 282 | static 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 | ||
186 | static struct resource bcm1480_io_resource = { | 186 | static 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 | ||
181 | static struct resource bcm1480ht_io_resource = { | 181 | static 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 | ||
196 | static int __init bcm1480ht_pcibios_init(void) | 197 | static 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 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 27 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 28 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 29 | CONFIG_GENERIC_HARDIRQS=y |
30 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
30 | CONFIG_IRQ_PER_CPU=y | 31 | CONFIG_IRQ_PER_CPU=y |
31 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
32 | CONFIG_ARCH_HAS_ILOG2_U32=y | 33 | CONFIG_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 |
74 | CONFIG_LOG_BUF_SHIFT=17 | 73 | CONFIG_LOG_BUF_SHIFT=17 |
75 | # CONFIG_CGROUPS is not set | 74 | # CONFIG_CGROUPS is not set |
76 | CONFIG_FAIR_GROUP_SCHED=y | 75 | # CONFIG_GROUP_SCHED is not set |
77 | CONFIG_FAIR_USER_SCHED=y | ||
78 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
79 | CONFIG_SYSFS_DEPRECATED=y | 76 | CONFIG_SYSFS_DEPRECATED=y |
77 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
80 | # CONFIG_RELAY is not set | 78 | # CONFIG_RELAY is not set |
79 | CONFIG_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 | ||
81 | CONFIG_BLK_DEV_INITRD=y | 84 | CONFIG_BLK_DEV_INITRD=y |
82 | CONFIG_INITRAMFS_SOURCE="" | 85 | CONFIG_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 | |||
91 | CONFIG_PRINTK=y | 94 | CONFIG_PRINTK=y |
92 | CONFIG_BUG=y | 95 | CONFIG_BUG=y |
93 | CONFIG_ELF_CORE=y | 96 | CONFIG_ELF_CORE=y |
97 | CONFIG_COMPAT_BRK=y | ||
94 | CONFIG_BASE_FULL=y | 98 | CONFIG_BASE_FULL=y |
95 | CONFIG_FUTEX=y | 99 | CONFIG_FUTEX=y |
96 | CONFIG_ANON_INODES=y | 100 | CONFIG_ANON_INODES=y |
97 | CONFIG_EPOLL=y | 101 | CONFIG_EPOLL=y |
98 | CONFIG_SIGNALFD=y | 102 | CONFIG_SIGNALFD=y |
103 | CONFIG_TIMERFD=y | ||
99 | CONFIG_EVENTFD=y | 104 | CONFIG_EVENTFD=y |
100 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
101 | CONFIG_VM_EVENT_COUNTERS=y | 106 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -103,6 +108,15 @@ CONFIG_SLUB_DEBUG=y | |||
103 | # CONFIG_SLAB is not set | 108 | # CONFIG_SLAB is not set |
104 | CONFIG_SLUB=y | 109 | CONFIG_SLUB=y |
105 | # CONFIG_SLOB is not set | 110 | # CONFIG_SLOB is not set |
111 | CONFIG_PROFILING=y | ||
112 | # CONFIG_MARKERS is not set | ||
113 | CONFIG_OPROFILE=y | ||
114 | CONFIG_HAVE_OPROFILE=y | ||
115 | # CONFIG_KPROBES is not set | ||
116 | CONFIG_HAVE_KPROBES=y | ||
117 | CONFIG_HAVE_KRETPROBES=y | ||
118 | CONFIG_PROC_PAGE_MONITOR=y | ||
119 | CONFIG_SLABINFO=y | ||
106 | CONFIG_RT_MUTEXES=y | 120 | CONFIG_RT_MUTEXES=y |
107 | # CONFIG_TINY_SHMEM is not set | 121 | # CONFIG_TINY_SHMEM is not set |
108 | CONFIG_BASE_SMALL=0 | 122 | CONFIG_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 |
132 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 146 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
147 | CONFIG_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 |
147 | CONFIG_PPC_PASEMI=y | 162 | CONFIG_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 |
161 | CONFIG_PPC_NATIVE=y | 176 | CONFIG_PPC_NATIVE=y |
177 | # CONFIG_IPIC is not set | ||
162 | CONFIG_MPIC=y | 178 | CONFIG_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 | # |
191 | CONFIG_PPC_PASEMI_CPUFREQ=y | 207 | CONFIG_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 |
205 | CONFIG_HZ_1000=y | 220 | CONFIG_HZ_1000=y |
206 | CONFIG_HZ=1000 | 221 | CONFIG_HZ=1000 |
222 | # CONFIG_SCHED_HRTICK is not set | ||
207 | CONFIG_PREEMPT_NONE=y | 223 | CONFIG_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 | ||
211 | CONFIG_BINFMT_ELF=y | 226 | CONFIG_BINFMT_ELF=y |
227 | CONFIG_COMPAT_BINFMT_ELF=y | ||
212 | # CONFIG_BINFMT_MISC is not set | 228 | # CONFIG_BINFMT_MISC is not set |
213 | CONFIG_FORCE_MAX_ZONEORDER=9 | 229 | CONFIG_FORCE_MAX_ZONEORDER=9 |
214 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 230 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
215 | CONFIG_IOMMU_VMERGE=y | 231 | CONFIG_IOMMU_VMERGE=y |
232 | CONFIG_IOMMU_HELPER=y | ||
216 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 233 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
234 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
235 | CONFIG_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 | |||
236 | CONFIG_BOUNCE=y | 255 | CONFIG_BOUNCE=y |
237 | CONFIG_PPC_HAS_HASH_64K=y | 256 | CONFIG_PPC_HAS_HASH_64K=y |
238 | CONFIG_PPC_64K_PAGES=y | 257 | CONFIG_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 |
240 | CONFIG_PROC_DEVICETREE=y | 260 | CONFIG_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 | ||
245 | CONFIG_ISA_DMA_API=y | 264 | CONFIG_ISA_DMA_API=y |
246 | 265 | ||
247 | # | 266 | # |
@@ -290,6 +309,7 @@ CONFIG_XFRM=y | |||
290 | CONFIG_XFRM_USER=y | 309 | CONFIG_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 | ||
293 | CONFIG_NET_KEY=y | 313 | CONFIG_NET_KEY=y |
294 | # CONFIG_NET_KEY_MIGRATE is not set | 314 | # CONFIG_NET_KEY_MIGRATE is not set |
295 | CONFIG_INET=y | 315 | CONFIG_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 | |||
441 | CONFIG_MTD_NAND_IDS=y | 462 | CONFIG_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 |
465 | CONFIG_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 | |||
465 | CONFIG_BLK_DEV_RAM=y | 488 | CONFIG_BLK_DEV_RAM=y |
466 | CONFIG_BLK_DEV_RAM_COUNT=16 | 489 | CONFIG_BLK_DEV_RAM_COUNT=16 |
467 | CONFIG_BLK_DEV_RAM_SIZE=16384 | 490 | CONFIG_BLK_DEV_RAM_SIZE=16384 |
468 | CONFIG_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 |
471 | CONFIG_MISC_DEVICES=y | 494 | CONFIG_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 | ||
500 | CONFIG_HAVE_IDE=y | ||
476 | CONFIG_IDE=y | 501 | CONFIG_IDE=y |
477 | CONFIG_BLK_DEV_IDE=y | 502 | CONFIG_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 |
483 | CONFIG_BLK_DEV_IDEDISK=y | 508 | CONFIG_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 |
487 | CONFIG_BLK_DEV_IDECD=y | 512 | CONFIG_BLK_DEV_IDECD=y |
513 | CONFIG_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 |
490 | CONFIG_BLK_DEV_IDESCSI=y | 516 | CONFIG_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 |
533 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 557 | CONFIG_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 |
704 | CONFIG_PHYLIB=y | 729 | CONFIG_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 |
720 | CONFIG_NET_ETHERNET=y | 746 | CONFIG_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 | |||
754 | CONFIG_E1000_NAPI=y | 781 | CONFIG_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 | |||
779 | CONFIG_PASEMI_MAC=y | 809 | CONFIG_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 | |||
861 | CONFIG_HW_CONSOLE=y | 891 | CONFIG_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 |
887 | CONFIG_HW_RANDOM=y | 918 | CONFIG_HW_RANDOM=y |
888 | CONFIG_HW_RANDOM_PASEMI=y | 919 | CONFIG_HW_RANDOM_PASEMI=y |
889 | CONFIG_GEN_RTC=y | 920 | # CONFIG_GEN_RTC is not set |
890 | CONFIG_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 | ||
900 | CONFIG_RAW_DRIVER=y | 931 | CONFIG_RAW_DRIVER=y |
901 | CONFIG_MAX_RAW_DEVS=256 | 932 | CONFIG_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 |
950 | CONFIG_SENSORS_EEPROM=y | 979 | CONFIG_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 | |||
1280 | CONFIG_USB_ARCH_HAS_EHCI=y | 1321 | CONFIG_USB_ARCH_HAS_EHCI=y |
1281 | CONFIG_USB=y | 1322 | CONFIG_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 | # |
1295 | CONFIG_USB_EHCI_HCD=y | 1337 | CONFIG_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 |
1340 | CONFIG_USB_EHCI_HCD_PPC_OF=y | ||
1299 | # CONFIG_USB_ISP116X_HCD is not set | 1341 | # CONFIG_USB_ISP116X_HCD is not set |
1300 | CONFIG_USB_OHCI_HCD=y | 1342 | CONFIG_USB_OHCI_HCD=y |
1301 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 1343 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
1302 | CONFIG_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 |
1304 | CONFIG_USB_OHCI_HCD_PCI=y | ||
1305 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | ||
1306 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | ||
1307 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1346 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1308 | CONFIG_USB_UHCI_HCD=y | 1347 | CONFIG_USB_UHCI_HCD=y |
1309 | CONFIG_USB_SL811_HCD=y | 1348 | CONFIG_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 |
1392 | CONFIG_EDAC=y | 1420 | CONFIG_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 | 1505 | CONFIG_DNOTIFY=y |
1475 | # CONFIG_ROMFS_FS is not set | ||
1476 | CONFIG_INOTIFY=y | 1506 | CONFIG_INOTIFY=y |
1477 | CONFIG_INOTIFY_USER=y | 1507 | CONFIG_INOTIFY_USER=y |
1478 | # CONFIG_QUOTA is not set | 1508 | # CONFIG_QUOTA is not set |
1479 | CONFIG_DNOTIFY=y | ||
1480 | CONFIG_AUTOFS_FS=y | 1509 | CONFIG_AUTOFS_FS=y |
1481 | CONFIG_AUTOFS4_FS=y | 1510 | CONFIG_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 |
1543 | CONFIG_NETWORK_FILESYSTEMS=y | 1574 | CONFIG_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 | |||
1647 | CONFIG_HAS_IOMEM=y | 1677 | CONFIG_HAS_IOMEM=y |
1648 | CONFIG_HAS_IOPORT=y | 1678 | CONFIG_HAS_IOPORT=y |
1649 | CONFIG_HAS_DMA=y | 1679 | CONFIG_HAS_DMA=y |
1650 | CONFIG_INSTRUMENTATION=y | ||
1651 | CONFIG_PROFILING=y | ||
1652 | CONFIG_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 | |||
1710 | CONFIG_ASYNC_XOR=y | 1736 | CONFIG_ASYNC_XOR=y |
1711 | CONFIG_CRYPTO=y | 1737 | CONFIG_CRYPTO=y |
1712 | CONFIG_CRYPTO_ALGAPI=y | 1738 | CONFIG_CRYPTO_ALGAPI=y |
1739 | CONFIG_CRYPTO_AEAD=y | ||
1713 | CONFIG_CRYPTO_BLKCIPHER=y | 1740 | CONFIG_CRYPTO_BLKCIPHER=y |
1741 | # CONFIG_CRYPTO_SEQIV is not set | ||
1714 | CONFIG_CRYPTO_HASH=y | 1742 | CONFIG_CRYPTO_HASH=y |
1715 | CONFIG_CRYPTO_MANAGER=y | 1743 | CONFIG_CRYPTO_MANAGER=y |
1716 | CONFIG_CRYPTO_HMAC=y | 1744 | CONFIG_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 |
1733 | CONFIG_CRYPTO_DES=y | 1764 | CONFIG_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 | 1783 | CONFIG_CRYPTO_AUTHENC=y |
1784 | # CONFIG_CRYPTO_LZO is not set | ||
1752 | CONFIG_CRYPTO_HW=y | 1785 | CONFIG_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 | ||
244 | static DEFINE_PER_CPU(unsigned long, current_dabr); | ||
245 | |||
244 | int set_dabr(unsigned long dabr) | 246 | int 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) | |||
259 | DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); | 263 | DEFINE_PER_CPU(struct cpu_usage, cpu_usage_array); |
260 | #endif | 264 | #endif |
261 | 265 | ||
262 | static DEFINE_PER_CPU(unsigned long, current_dabr); | ||
263 | |||
264 | struct task_struct *__switch_to(struct task_struct *prev, | 266 | struct 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 = ¤t->thread; | 334 | old_thread = ¤t->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. */ |
94 | struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu, | 94 | struct 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 | ||
766 | void xics_teardown_cpu() | 766 | void 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 | # |
6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
@@ -55,9 +55,11 @@ CONFIG_POSIX_MQUEUE=y | |||
55 | # CONFIG_IKCONFIG is not set | 55 | # CONFIG_IKCONFIG is not set |
56 | CONFIG_LOG_BUF_SHIFT=18 | 56 | CONFIG_LOG_BUF_SHIFT=18 |
57 | # CONFIG_CGROUPS is not set | 57 | # CONFIG_CGROUPS is not set |
58 | CONFIG_GROUP_SCHED=y | ||
58 | CONFIG_FAIR_GROUP_SCHED=y | 59 | CONFIG_FAIR_GROUP_SCHED=y |
59 | CONFIG_FAIR_USER_SCHED=y | 60 | CONFIG_RT_GROUP_SCHED=y |
60 | # CONFIG_FAIR_CGROUP_SCHED is not set | 61 | CONFIG_USER_SCHED=y |
62 | # CONFIG_CGROUP_SCHED is not set | ||
61 | CONFIG_SYSFS_DEPRECATED=y | 63 | CONFIG_SYSFS_DEPRECATED=y |
62 | CONFIG_RELAY=y | 64 | CONFIG_RELAY=y |
63 | CONFIG_NAMESPACES=y | 65 | CONFIG_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 | |||
18 | DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; | 20 | DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; |
19 | 21 | ||
20 | struct cpu_iu_info { | 22 | struct cpu_iu_info { |
@@ -65,8 +67,6 @@ static struct cpu_iu_info linux_sparc_chips[] = { | |||
65 | char *sparc_cpu_type; | 67 | char *sparc_cpu_type; |
66 | char *sparc_fpu_type; | 68 | char *sparc_fpu_type; |
67 | 69 | ||
68 | unsigned int fsr_storage; | ||
69 | |||
70 | static void __init sun4v_cpu_probe(void) | 70 | static 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: | |||
1705 | 2: retl | 1705 | 2: 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 | ||
1715 | stack_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 | |||
1723 | 1: 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 | |||
1731 | 2: 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 |
1710 | hard_smp_processor_id: | 1740 | hard_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 | |||
8 | extern char *sparc_cpu_type; | ||
9 | extern char *sparc_fpu_type; | ||
10 | |||
11 | extern void __init per_cpu_patch(void); | ||
12 | extern void __init sun4v_patch(void); | ||
13 | extern void __init boot_cpu_id_too_large(int cpu); | ||
14 | extern unsigned int dcache_parity_tl1_occurred; | ||
15 | extern unsigned int icache_parity_tl1_occurred; | ||
16 | |||
17 | extern asmlinkage void update_perfctrs(void); | ||
18 | extern asmlinkage void sparc_breakpoint(struct pt_regs *regs); | ||
19 | extern void timer_interrupt(int irq, struct pt_regs *regs); | ||
20 | |||
21 | extern void do_notify_resume(struct pt_regs *regs, | ||
22 | unsigned long orig_i0, | ||
23 | int restart_syscall, | ||
24 | unsigned long thread_info_flags); | ||
25 | |||
26 | extern asmlinkage void syscall_trace(struct pt_regs *regs, | ||
27 | int syscall_exit_p); | ||
28 | |||
29 | extern void bad_trap_tl1(struct pt_regs *regs, long lvl); | ||
30 | |||
31 | extern void do_fpe_common(struct pt_regs *regs); | ||
32 | extern void do_fpieee(struct pt_regs *regs); | ||
33 | extern void do_fpother(struct pt_regs *regs); | ||
34 | extern void do_tof(struct pt_regs *regs); | ||
35 | extern void do_div0(struct pt_regs *regs); | ||
36 | extern void do_illegal_instruction(struct pt_regs *regs); | ||
37 | extern void mem_address_unaligned(struct pt_regs *regs, | ||
38 | unsigned long sfar, | ||
39 | unsigned long sfsr); | ||
40 | extern void sun4v_do_mna(struct pt_regs *regs, | ||
41 | unsigned long addr, | ||
42 | unsigned long type_ctx); | ||
43 | extern void do_privop(struct pt_regs *regs); | ||
44 | extern void do_privact(struct pt_regs *regs); | ||
45 | extern void do_cee(struct pt_regs *regs); | ||
46 | extern void do_cee_tl1(struct pt_regs *regs); | ||
47 | extern void do_dae_tl1(struct pt_regs *regs); | ||
48 | extern void do_iae_tl1(struct pt_regs *regs); | ||
49 | extern void do_div0_tl1(struct pt_regs *regs); | ||
50 | extern void do_fpdis_tl1(struct pt_regs *regs); | ||
51 | extern void do_fpieee_tl1(struct pt_regs *regs); | ||
52 | extern void do_fpother_tl1(struct pt_regs *regs); | ||
53 | extern void do_ill_tl1(struct pt_regs *regs); | ||
54 | extern void do_irq_tl1(struct pt_regs *regs); | ||
55 | extern void do_lddfmna_tl1(struct pt_regs *regs); | ||
56 | extern void do_stdfmna_tl1(struct pt_regs *regs); | ||
57 | extern void do_paw(struct pt_regs *regs); | ||
58 | extern void do_paw_tl1(struct pt_regs *regs); | ||
59 | extern void do_vaw(struct pt_regs *regs); | ||
60 | extern void do_vaw_tl1(struct pt_regs *regs); | ||
61 | extern void do_tof_tl1(struct pt_regs *regs); | ||
62 | extern void do_getpsr(struct pt_regs *regs); | ||
63 | |||
64 | extern void spitfire_insn_access_exception(struct pt_regs *regs, | ||
65 | unsigned long sfsr, | ||
66 | unsigned long sfar); | ||
67 | extern void spitfire_insn_access_exception_tl1(struct pt_regs *regs, | ||
68 | unsigned long sfsr, | ||
69 | unsigned long sfar); | ||
70 | extern void spitfire_data_access_exception(struct pt_regs *regs, | ||
71 | unsigned long sfsr, | ||
72 | unsigned long sfar); | ||
73 | extern void spitfire_data_access_exception_tl1(struct pt_regs *regs, | ||
74 | unsigned long sfsr, | ||
75 | unsigned long sfar); | ||
76 | extern void spitfire_access_error(struct pt_regs *regs, | ||
77 | unsigned long status_encoded, | ||
78 | unsigned long afar); | ||
79 | |||
80 | extern void cheetah_fecc_handler(struct pt_regs *regs, | ||
81 | unsigned long afsr, | ||
82 | unsigned long afar); | ||
83 | extern void cheetah_cee_handler(struct pt_regs *regs, | ||
84 | unsigned long afsr, | ||
85 | unsigned long afar); | ||
86 | extern void cheetah_deferred_handler(struct pt_regs *regs, | ||
87 | unsigned long afsr, | ||
88 | unsigned long afar); | ||
89 | extern void cheetah_plus_parity_error(int type, struct pt_regs *regs); | ||
90 | |||
91 | extern void sun4v_insn_access_exception(struct pt_regs *regs, | ||
92 | unsigned long addr, | ||
93 | unsigned long type_ctx); | ||
94 | extern void sun4v_insn_access_exception_tl1(struct pt_regs *regs, | ||
95 | unsigned long addr, | ||
96 | unsigned long type_ctx); | ||
97 | extern void sun4v_data_access_exception(struct pt_regs *regs, | ||
98 | unsigned long addr, | ||
99 | unsigned long type_ctx); | ||
100 | extern void sun4v_data_access_exception_tl1(struct pt_regs *regs, | ||
101 | unsigned long addr, | ||
102 | unsigned long type_ctx); | ||
103 | extern void sun4v_resum_error(struct pt_regs *regs, | ||
104 | unsigned long offset); | ||
105 | extern void sun4v_resum_overflow(struct pt_regs *regs); | ||
106 | extern void sun4v_nonresum_error(struct pt_regs *regs, | ||
107 | unsigned long offset); | ||
108 | extern void sun4v_nonresum_overflow(struct pt_regs *regs); | ||
109 | |||
110 | extern unsigned long sun4v_err_itlb_vaddr; | ||
111 | extern unsigned long sun4v_err_itlb_ctx; | ||
112 | extern unsigned long sun4v_err_itlb_pte; | ||
113 | extern unsigned long sun4v_err_itlb_error; | ||
114 | |||
115 | extern void sun4v_itlb_error_report(struct pt_regs *regs, int tl); | ||
116 | |||
117 | extern unsigned long sun4v_err_dtlb_vaddr; | ||
118 | extern unsigned long sun4v_err_dtlb_ctx; | ||
119 | extern unsigned long sun4v_err_dtlb_pte; | ||
120 | extern unsigned long sun4v_err_dtlb_error; | ||
121 | |||
122 | extern void sun4v_dtlb_error_report(struct pt_regs *regs, int tl); | ||
123 | extern void hypervisor_tlbop_error(unsigned long err, | ||
124 | unsigned long op); | ||
125 | extern 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 | */ | ||
134 | struct 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 | */ | ||
167 | extern 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 | */ | ||
181 | struct 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 | |||
189 | extern struct ino_bucket *ivector_table; | ||
190 | extern unsigned long ivector_table_pa; | ||
191 | |||
192 | extern void handler_irq(int irq, struct pt_regs *regs); | ||
193 | extern void init_irqwork_curcpu(void); | ||
194 | extern 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, | |||
626 | iommu_map_failed: | 626 | iommu_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 | ||
806 | const struct dma_ops sun4u_dma_ops = { | 806 | static 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 | */ | ||
59 | struct 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 | |||
68 | struct ino_bucket *ivector_table; | 51 | struct ino_bucket *ivector_table; |
69 | unsigned long ivector_table_pa; | 52 | unsigned 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 | ||
110 | enum sparc_regset { | 117 | enum 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 | ||
385 | static int genregs32_get(struct task_struct *target, | 393 | static 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 | ||
680 | const struct user_regset_view *task_user_regset_view(struct task_struct *task) | 689 | const 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 | ||
687 | struct compat_fps { | 699 | struct 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 | ||
802 | struct fps { | 815 | struct fps { |
803 | unsigned int regs[64]; | 816 | unsigned int regs[64]; |
@@ -807,11 +820,14 @@ struct fps { | |||
807 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) | 820 | long 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 | ||
338 | extern char *sparc_cpu_type; | ||
339 | extern char *sparc_fpu_type; | ||
340 | |||
341 | extern void smp_info(struct seq_file *); | 340 | extern void smp_info(struct seq_file *); |
342 | extern void smp_bogo(struct seq_file *); | 341 | extern void smp_bogo(struct seq_file *); |
343 | extern void mmu_info(struct seq_file *); | 342 | extern 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 | ||
6 | void save_stack_trace(struct stack_trace *trace) | 7 | void 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 | ||
35 | asmlinkage unsigned long sys_getpagesize(void) | 37 | asmlinkage 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 | ||
819 | long sparc_memory_ordering(unsigned long model, struct pt_regs *regs) | 822 | asmlinkage 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 | |||
10 | extern asmlinkage unsigned long sys_getpagesize(void); | ||
11 | extern asmlinkage unsigned long sparc_brk(unsigned long brk); | ||
12 | extern asmlinkage long sparc_pipe(struct pt_regs *regs); | ||
13 | extern asmlinkage long sys_ipc(unsigned int call, int first, | ||
14 | unsigned long second, | ||
15 | unsigned long third, | ||
16 | void __user *ptr, long fifth); | ||
17 | extern asmlinkage long sparc64_newuname(struct new_utsname __user *name); | ||
18 | extern asmlinkage long sparc64_personality(unsigned long personality); | ||
19 | extern 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); | ||
22 | extern asmlinkage long sys64_munmap(unsigned long addr, size_t len); | ||
23 | extern 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); | ||
28 | extern asmlinkage unsigned long c_sys_nis_syscall(struct pt_regs *regs); | ||
29 | extern asmlinkage long sys_getdomainname(char __user *name, int len); | ||
30 | extern asmlinkage long solaris_syscall(struct pt_regs *regs); | ||
31 | extern asmlinkage long sunos_syscall(struct pt_regs *regs); | ||
32 | extern 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); | ||
37 | extern asmlinkage long sparc_memory_ordering(unsigned long model, | ||
38 | struct pt_regs *regs); | ||
39 | extern 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); | ||
44 | extern asmlinkage long sys_perfctr(int opcode, unsigned long arg0, | ||
45 | unsigned long arg1, unsigned long arg2); | ||
46 | |||
47 | extern asmlinkage void sparc64_set_context(struct pt_regs *regs); | ||
48 | extern asmlinkage void sparc64_get_context(struct pt_regs *regs); | ||
49 | extern asmlinkage long sys_sigpause(unsigned int set); | ||
50 | extern asmlinkage long sys_sigsuspend(old_sigset_t set); | ||
51 | extern 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 | |||
51 | DEFINE_SPINLOCK(mostek_lock); | 52 | DEFINE_SPINLOCK(mostek_lock); |
52 | DEFINE_SPINLOCK(rtc_lock); | 53 | DEFINE_SPINLOCK(rtc_lock); |
53 | void __iomem *mstk48t02_regs = NULL; | 54 | void __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 | ||
512 | static 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. */ |
512 | static void __init set_system_time(void) | 544 | static 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 | ||
80 | void do_call_debug(struct pt_regs *regs) | ||
81 | { | ||
82 | notify_die(DIE_CALL, "debug call", regs, 0, 255, SIGINT); | ||
83 | } | ||
84 | |||
85 | void bad_trap(struct pt_regs *regs, long lvl) | 81 | void 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; | |||
550 | static unsigned long ecache_flush_linesize; | 546 | static unsigned long ecache_flush_linesize; |
551 | static unsigned long ecache_flush_size; | 547 | static 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 | */ | ||
559 | struct 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[] = { | |||
758 | static struct afsr_error_table *cheetah_error_table; | 719 | static struct afsr_error_table *cheetah_error_table; |
759 | static unsigned long cheetah_afsr_errors; | 720 | static 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 | */ | ||
765 | struct cheetah_err_info *cheetah_error_log; | 722 | struct cheetah_err_info *cheetah_error_log; |
766 | 723 | ||
767 | static inline struct cheetah_err_info *cheetah_get_error_log(unsigned long afsr) | 724 | static 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 | ||
2105 | void instruction_dump (unsigned int *pc) | 2062 | static 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 | ||
2118 | static void user_instruction_dump (unsigned int __user *pc) | 2075 | static 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 | ||
1276 | extern void cheetah_ecache_flush_init(void); | ||
1277 | extern void sun4v_patch_tlb_handlers(void); | ||
1278 | |||
1279 | extern void cpu_probe(void); | ||
1280 | extern void central_probe(void); | 1277 | extern void central_probe(void); |
1281 | 1278 | ||
1282 | static unsigned long last_valid_pfn; | 1279 | static 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 | ||
24 | void flush_tlb_pending(void) | 24 | void 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 | ||
257 | static void uml_net_set_multicast_list(struct net_device *dev) | 257 | static 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 | ||
266 | static void uml_net_tx_timeout(struct net_device *dev) | 262 | static 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 | */ |
64 | static int speedstep_smi_ownership (void) | 64 | static 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 | */ |
97 | static int speedstep_smi_get_freqs (unsigned int *low, unsigned int *high) | 100 | static 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) | |||
135 | static int speedstep_get_state (void) | 140 | static 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 | */ |
161 | static void speedstep_set_state (unsigned int state) | 168 | static 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 | */ |
186 | static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords) | 187 | static 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 | */ | ||
202 | int generic_get_free_region(unsigned long base, unsigned long size, int replace_reg) | 211 | int 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 | */ |
255 | static int set_fixed_ranges(mtrr_type * frs) | 259 | static 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 | ||
295 | static u32 deftype_lo, deftype_hi; | 299 | static 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 | */ | ||
297 | static unsigned long set_mtrr_state(void) | 307 | static 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 | ||
35 | static struct mfgpt_timer_t { | 36 | static 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 | ||
603 | static 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 | |||
618 | static int ptrace_bts_clear(struct task_struct *child) | 603 | static 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 | ||
660 | static 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 | |||
720 | out: | ||
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 | |||
729 | static int ptrace_bts_config(struct task_struct *child, | 645 | static 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 | |||
748 | static 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 | |||
763 | static 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 | |||
823 | out: | ||
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 | |||
831 | void ptrace_bts_take_timestamp(struct task_struct *tsk, | 832 | void 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: */ |
138 | static void lazy_hcall(unsigned long call, | 136 | static 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. */ |
151 | static void lguest_leave_lazy_mode(void) | 149 | static 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) | |||
212 | static void lguest_write_idt_entry(gate_desc *dt, | 215 | static 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 | */ |
248 | static void lguest_load_gdt(const struct desc_ptr *desc) | 256 | static 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. */ |
601 | static unsigned long lguest_cpu_khz(void) | 609 | static 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. */ |
608 | static cycle_t lguest_clock_read(void) | 616 | static 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 = { | |||
648 | static int lguest_clockevent_set_next_event(unsigned long delta, | 656 | static 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. */ |
740 | static void lguest_load_sp0(struct tss_struct *tss, | 752 | static 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. */ |
817 | static __init char *lguest_memory_setup(void) | 828 | static __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. */ | ||
867 | static 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 | ||
911 | static 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 | ||
20 | static 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. */ | ||
35 | static DEFINE_SPINLOCK(gpio_lock); | ||
36 | |||
37 | /* copy of GPIO data registers */ | ||
38 | static u32 gpio_data_reg1; | ||
39 | static u32 gpio_data_reg2; | ||
40 | |||
41 | static u32 gpio_request_data[2]; | ||
42 | |||
43 | |||
44 | static 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 | ||
25 | static unsigned int rdc_gpio_read(unsigned gpio) | 50 | static 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 | ||
44 | static void rdc_gpio_write(unsigned int val) | 57 | static 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 | ||
52 | int rdc_gpio_get_value(unsigned gpio) | 64 | /* configure pin as GPIO */ |
65 | static 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. */ | ||
78 | void __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 */ | ||
89 | static inline int rdc321x_is_gpio(unsigned gpio) | ||
90 | { | ||
91 | return gpio <= RDC321X_MAX_GPIO; | ||
92 | } | ||
93 | |||
94 | /* request GPIO */ | ||
95 | int 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; | ||
109 | inuse: | ||
110 | spin_unlock_irqrestore(&gpio_lock, flags); | ||
111 | return -EINVAL; | ||
58 | } | 112 | } |
59 | EXPORT_SYMBOL(rdc_gpio_get_value); | 113 | EXPORT_SYMBOL(rdc_gpio_request); |
60 | 114 | ||
61 | void rdc_gpio_set_value(unsigned gpio, int value) | 115 | /* release previously-claimed GPIO */ |
116 | void 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 | } | ||
127 | EXPORT_SYMBOL(rdc_gpio_free); | ||
128 | |||
129 | /* read GPIO pin */ | ||
130 | int 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 | 142 | EXPORT_SYMBOL(rdc_gpio_get_value); |
73 | val |= (0x1 << (gpio & 0x1F)); | ||
74 | 143 | ||
75 | rdc_gpio_write(val); | 144 | /* set GPIO pin to value */ |
145 | void 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 | } |
77 | EXPORT_SYMBOL(rdc_gpio_set_value); | 169 | EXPORT_SYMBOL(rdc_gpio_set_value); |
78 | 170 | ||
171 | /* configure GPIO pin as input */ | ||
79 | int rdc_gpio_direction_input(unsigned gpio) | 172 | int 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 | } |
83 | EXPORT_SYMBOL(rdc_gpio_direction_input); | 181 | EXPORT_SYMBOL(rdc_gpio_direction_input); |
84 | 182 | ||
183 | /* configure GPIO pin as output and set value */ | ||
85 | int rdc_gpio_direction_output(unsigned gpio, int value) | 184 | int 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 | } |
89 | EXPORT_SYMBOL(rdc_gpio_direction_output); | 194 | EXPORT_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 | ||
63 | static int __init rdc_board_setup(void) | 63 | static 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, | |||
771 | int set_memory_uc(unsigned long addr, int numpages) | 771 | int 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 | } |
776 | EXPORT_SYMBOL(set_memory_uc); | 776 | EXPORT_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 | */ |
98 | static int have_vcpu_info_placement = 0; | 98 | static int have_vcpu_info_placement = 1; |
99 | 99 | ||
100 | static void __init xen_vcpu_setup(int cpu) | 100 | static 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 | ||
808 | static __init void xen_pagetable_setup_done(pgd_t *base) | 809 | static __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 | |||
834 | static __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 | */ |
35 | ENTRY(xen_irq_enable_direct) | 35 | ENTRY(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 | |||
42 | 2: call check_events | 47 | 2: call check_events |
43 | 1: | 48 | 1: |
44 | ENDPATCH(xen_irq_enable_direct) | 49 | ENDPATCH(xen_irq_enable_direct) |