diff options
Diffstat (limited to 'arch')
413 files changed, 4791 insertions, 3984 deletions
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index 9006063e7369..da677f829f76 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c | |||
@@ -151,8 +151,13 @@ handle_irq(int irq, struct pt_regs * regs) | |||
151 | } | 151 | } |
152 | 152 | ||
153 | irq_enter(); | 153 | irq_enter(); |
154 | /* | ||
155 | * __do_IRQ() must be called with IPL_MAX. Note that we do not | ||
156 | * explicitly enable interrupts afterwards - some MILO PALcode | ||
157 | * (namely LX164 one) seems to have severe problems with RTI | ||
158 | * at IPL 0. | ||
159 | */ | ||
154 | local_irq_disable(); | 160 | local_irq_disable(); |
155 | __do_IRQ(irq, regs); | 161 | __do_IRQ(irq, regs); |
156 | local_irq_enable(); | ||
157 | irq_exit(); | 162 | irq_exit(); |
158 | } | 163 | } |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4a63a8e2e452..32ba00bd0a2f 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -10,9 +10,9 @@ config ARM | |||
10 | default y | 10 | default y |
11 | help | 11 | help |
12 | The ARM series is a line of low-power-consumption RISC chip designs | 12 | The ARM series is a line of low-power-consumption RISC chip designs |
13 | licensed by ARM ltd and targeted at embedded applications and | 13 | licensed by ARM Ltd and targeted at embedded applications and |
14 | handhelds such as the Compaq IPAQ. ARM-based PCs are no longer | 14 | handhelds such as the Compaq IPAQ. ARM-based PCs are no longer |
15 | manufactured, but legacy ARM-based PC hardware remains popular in | 15 | manufactured, but legacy ARM-based PC hardware remains popular in |
16 | Europe. There is an ARM Linux project with a web page at | 16 | Europe. There is an ARM Linux project with a web page at |
17 | <http://www.arm.linux.org.uk/>. | 17 | <http://www.arm.linux.org.uk/>. |
18 | 18 | ||
@@ -78,51 +78,68 @@ menu "System Type" | |||
78 | 78 | ||
79 | choice | 79 | choice |
80 | prompt "ARM system type" | 80 | prompt "ARM system type" |
81 | default ARCH_RPC | 81 | default ARCH_VERSATILE |
82 | 82 | ||
83 | config ARCH_CLPS7500 | 83 | config ARCH_CLPS7500 |
84 | bool "Cirrus-CL-PS7500FE" | 84 | bool "Cirrus-CL-PS7500FE" |
85 | select TIMER_ACORN | 85 | select TIMER_ACORN |
86 | select ISA | 86 | select ISA |
87 | help | ||
88 | Support for the Cirrus Logic PS7500FE system-on-a-chip. | ||
87 | 89 | ||
88 | config ARCH_CLPS711X | 90 | config ARCH_CLPS711X |
89 | bool "CLPS711x/EP721x-based" | 91 | bool "CLPS711x/EP721x-based" |
92 | help | ||
93 | Support for Cirrus Logic 711x/721x based boards. | ||
90 | 94 | ||
91 | config ARCH_CO285 | 95 | config ARCH_CO285 |
92 | bool "Co-EBSA285" | 96 | bool "Co-EBSA285" |
93 | select FOOTBRIDGE | 97 | select FOOTBRIDGE |
94 | select FOOTBRIDGE_ADDIN | 98 | select FOOTBRIDGE_ADDIN |
99 | help | ||
100 | Support for Intel's EBSA285 companion chip. | ||
95 | 101 | ||
96 | config ARCH_EBSA110 | 102 | config ARCH_EBSA110 |
97 | bool "EBSA-110" | 103 | bool "EBSA-110" |
98 | select ISA | 104 | select ISA |
99 | help | 105 | help |
100 | This is an evaluation board for the StrongARM processor available | 106 | This is an evaluation board for the StrongARM processor available |
101 | from Digital. It has limited hardware on-board, including an onboard | 107 | from Digital. It has limited hardware on-board, including an |
102 | Ethernet interface, two PCMCIA sockets, two serial ports and a | 108 | Ethernet interface, two PCMCIA sockets, two serial ports and a |
103 | parallel port. | 109 | parallel port. |
104 | 110 | ||
105 | config ARCH_FOOTBRIDGE | 111 | config ARCH_FOOTBRIDGE |
106 | bool "FootBridge" | 112 | bool "FootBridge" |
107 | select FOOTBRIDGE | 113 | select FOOTBRIDGE |
114 | help | ||
115 | Support for systems based on the DC21285 companion chip | ||
116 | ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. | ||
108 | 117 | ||
109 | config ARCH_INTEGRATOR | 118 | config ARCH_INTEGRATOR |
110 | bool "Integrator" | 119 | bool "Integrator" |
111 | select ARM_AMBA | 120 | select ARM_AMBA |
112 | select ICST525 | 121 | select ICST525 |
122 | help | ||
123 | Support for ARM's Integrator platform. | ||
113 | 124 | ||
114 | config ARCH_IOP3XX | 125 | config ARCH_IOP3XX |
115 | bool "IOP3xx-based" | 126 | bool "IOP3xx-based" |
116 | select PCI | 127 | select PCI |
128 | help | ||
129 | Support for Intel's IOP3XX (XScale) family of processors. | ||
117 | 130 | ||
118 | config ARCH_IXP4XX | 131 | config ARCH_IXP4XX |
119 | bool "IXP4xx-based" | 132 | bool "IXP4xx-based" |
120 | select DMABOUNCE | 133 | select DMABOUNCE |
121 | select PCI | 134 | select PCI |
135 | help | ||
136 | Support for Intel's IXP4XX (XScale) family of processors. | ||
122 | 137 | ||
123 | config ARCH_IXP2000 | 138 | config ARCH_IXP2000 |
124 | bool "IXP2400/2800-based" | 139 | bool "IXP2400/2800-based" |
125 | select PCI | 140 | select PCI |
141 | help | ||
142 | Support for Intel's IXP2400/2800 (XScale) family of processors. | ||
126 | 143 | ||
127 | config ARCH_L7200 | 144 | config ARCH_L7200 |
128 | bool "LinkUp-L7200" | 145 | bool "LinkUp-L7200" |
@@ -140,6 +157,8 @@ config ARCH_L7200 | |||
140 | config ARCH_PXA | 157 | config ARCH_PXA |
141 | bool "PXA2xx-based" | 158 | bool "PXA2xx-based" |
142 | select ARCH_MTD_XIP | 159 | select ARCH_MTD_XIP |
160 | help | ||
161 | Support for Intel's PXA2XX processor line. | ||
143 | 162 | ||
144 | config ARCH_RPC | 163 | config ARCH_RPC |
145 | bool "RiscPC" | 164 | bool "RiscPC" |
@@ -157,19 +176,24 @@ config ARCH_SA1100 | |||
157 | select ISA | 176 | select ISA |
158 | select ARCH_DISCONTIGMEM_ENABLE | 177 | select ARCH_DISCONTIGMEM_ENABLE |
159 | select ARCH_MTD_XIP | 178 | select ARCH_MTD_XIP |
179 | help | ||
180 | Support for StrongARM 11x0 based boards. | ||
160 | 181 | ||
161 | config ARCH_S3C2410 | 182 | config ARCH_S3C2410 |
162 | bool "Samsung S3C2410" | 183 | bool "Samsung S3C2410" |
163 | help | 184 | help |
164 | Samsung S3C2410X CPU based systems, such as the Simtec Electronics | 185 | Samsung S3C2410X CPU based systems, such as the Simtec Electronics |
165 | BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or | 186 | BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or |
166 | the Samsung SMDK2410 development board (and derviatives). | 187 | the Samsung SMDK2410 development board (and derivatives). |
167 | 188 | ||
168 | config ARCH_SHARK | 189 | config ARCH_SHARK |
169 | bool "Shark" | 190 | bool "Shark" |
170 | select ISA | 191 | select ISA |
171 | select ISA_DMA | 192 | select ISA_DMA |
172 | select PCI | 193 | select PCI |
194 | help | ||
195 | Support for the StrongARM based Digital DNARD machine, also known | ||
196 | as "Shark" (<http://www.shark-linux.de/shark.html>). | ||
173 | 197 | ||
174 | config ARCH_LH7A40X | 198 | config ARCH_LH7A40X |
175 | bool "Sharp LH7A40X" | 199 | bool "Sharp LH7A40X" |
@@ -181,6 +205,8 @@ config ARCH_LH7A40X | |||
181 | 205 | ||
182 | config ARCH_OMAP | 206 | config ARCH_OMAP |
183 | bool "TI OMAP" | 207 | bool "TI OMAP" |
208 | help | ||
209 | Support for TI's OMAP platform (OMAP1 and OMAP2). | ||
184 | 210 | ||
185 | config ARCH_VERSATILE | 211 | config ARCH_VERSATILE |
186 | bool "Versatile" | 212 | bool "Versatile" |
@@ -199,6 +225,8 @@ config ARCH_REALVIEW | |||
199 | 225 | ||
200 | config ARCH_IMX | 226 | config ARCH_IMX |
201 | bool "IMX" | 227 | bool "IMX" |
228 | help | ||
229 | Support for Motorola's i.MX family of processors (MX1, MXL). | ||
202 | 230 | ||
203 | config ARCH_H720X | 231 | config ARCH_H720X |
204 | bool "Hynix-HMS720x-based" | 232 | bool "Hynix-HMS720x-based" |
@@ -215,8 +243,8 @@ config ARCH_AAEC2000 | |||
215 | config ARCH_AT91RM9200 | 243 | config ARCH_AT91RM9200 |
216 | bool "AT91RM9200" | 244 | bool "AT91RM9200" |
217 | help | 245 | help |
218 | Say Y here if you intend to run this kernel on an AT91RM9200-based | 246 | Say Y here if you intend to run this kernel on an Atmel |
219 | board. | 247 | AT91RM9200-based board. |
220 | 248 | ||
221 | endchoice | 249 | endchoice |
222 | 250 | ||
@@ -422,8 +450,8 @@ config AEABI | |||
422 | To use this you need GCC version 4.0.0 or later. | 450 | To use this you need GCC version 4.0.0 or later. |
423 | 451 | ||
424 | config OABI_COMPAT | 452 | config OABI_COMPAT |
425 | bool "Allow old ABI binaries to run with this kernel" | 453 | bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" |
426 | depends on AEABI | 454 | depends on AEABI && EXPERIMENTAL |
427 | default y | 455 | default y |
428 | help | 456 | help |
429 | This option preserves the old syscall interface along with the | 457 | This option preserves the old syscall interface along with the |
@@ -771,6 +799,8 @@ source "drivers/i2c/Kconfig" | |||
771 | 799 | ||
772 | source "drivers/spi/Kconfig" | 800 | source "drivers/spi/Kconfig" |
773 | 801 | ||
802 | source "drivers/w1/Kconfig" | ||
803 | |||
774 | source "drivers/hwmon/Kconfig" | 804 | source "drivers/hwmon/Kconfig" |
775 | 805 | ||
776 | #source "drivers/l3/Kconfig" | 806 | #source "drivers/l3/Kconfig" |
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index 159ad7ed7a40..d31b1cb7eea0 100644 --- a/arch/arm/common/locomo.c +++ b/arch/arm/common/locomo.c | |||
@@ -629,6 +629,22 @@ static int locomo_resume(struct platform_device *dev) | |||
629 | } | 629 | } |
630 | #endif | 630 | #endif |
631 | 631 | ||
632 | |||
633 | #define LCM_ALC_EN 0x8000 | ||
634 | |||
635 | void frontlight_set(struct locomo *lchip, int duty, int vr, int bpwf) | ||
636 | { | ||
637 | unsigned long flags; | ||
638 | |||
639 | spin_lock_irqsave(&lchip->lock, flags); | ||
640 | locomo_writel(bpwf, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); | ||
641 | udelay(100); | ||
642 | locomo_writel(duty, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD); | ||
643 | locomo_writel(bpwf | LCM_ALC_EN, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); | ||
644 | spin_unlock_irqrestore(&lchip->lock, flags); | ||
645 | } | ||
646 | |||
647 | |||
632 | /** | 648 | /** |
633 | * locomo_probe - probe for a single LoCoMo chip. | 649 | * locomo_probe - probe for a single LoCoMo chip. |
634 | * @phys_addr: physical address of device. | 650 | * @phys_addr: physical address of device. |
@@ -688,6 +704,11 @@ __locomo_probe(struct device *me, struct resource *mem, int irq) | |||
688 | /* FrontLight */ | 704 | /* FrontLight */ |
689 | locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); | 705 | locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); |
690 | locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD); | 706 | locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD); |
707 | |||
708 | /* Same constants can be used for collie and poodle | ||
709 | (depending on CONFIG options in original sharp code)? */ | ||
710 | frontlight_set(lchip, 163, 0, 148); | ||
711 | |||
691 | /* Longtime timer */ | 712 | /* Longtime timer */ |
692 | locomo_writel(0, lchip->base + LOCOMO_LTINT); | 713 | locomo_writel(0, lchip->base + LOCOMO_LTINT); |
693 | /* SPI */ | 714 | /* SPI */ |
diff --git a/arch/arm/common/rtctime.c b/arch/arm/common/rtctime.c index 48b1e19b131f..e851d86c212c 100644 --- a/arch/arm/common/rtctime.c +++ b/arch/arm/common/rtctime.c | |||
@@ -128,19 +128,27 @@ EXPORT_SYMBOL(rtc_tm_to_time); | |||
128 | /* | 128 | /* |
129 | * Calculate the next alarm time given the requested alarm time mask | 129 | * Calculate the next alarm time given the requested alarm time mask |
130 | * and the current time. | 130 | * and the current time. |
131 | * | ||
132 | * FIXME: for now, we just copy the alarm time because we're lazy (and | ||
133 | * is therefore buggy - setting a 10am alarm at 8pm will not result in | ||
134 | * the alarm triggering.) | ||
135 | */ | 131 | */ |
136 | void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc_time *alrm) | 132 | void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc_time *alrm) |
137 | { | 133 | { |
134 | unsigned long next_time; | ||
135 | unsigned long now_time; | ||
136 | |||
138 | next->tm_year = now->tm_year; | 137 | next->tm_year = now->tm_year; |
139 | next->tm_mon = now->tm_mon; | 138 | next->tm_mon = now->tm_mon; |
140 | next->tm_mday = now->tm_mday; | 139 | next->tm_mday = now->tm_mday; |
141 | next->tm_hour = alrm->tm_hour; | 140 | next->tm_hour = alrm->tm_hour; |
142 | next->tm_min = alrm->tm_min; | 141 | next->tm_min = alrm->tm_min; |
143 | next->tm_sec = alrm->tm_sec; | 142 | next->tm_sec = alrm->tm_sec; |
143 | |||
144 | rtc_tm_to_time(now, &now_time); | ||
145 | rtc_tm_to_time(next, &next_time); | ||
146 | |||
147 | if (next_time < now_time) { | ||
148 | /* Advance one day */ | ||
149 | next_time += 60 * 60 * 24; | ||
150 | rtc_time_to_tm(next_time, next); | ||
151 | } | ||
144 | } | 152 | } |
145 | 153 | ||
146 | static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) | 154 | static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) |
diff --git a/arch/arm/configs/enp2611_defconfig b/arch/arm/configs/enp2611_defconfig index 9592e3925c79..5fdaf3ce9d56 100644 --- a/arch/arm/configs/enp2611_defconfig +++ b/arch/arm/configs/enp2611_defconfig | |||
@@ -171,7 +171,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
171 | # | 171 | # |
172 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 172 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
173 | CONFIG_ZBOOT_ROM_BSS=0x0 | 173 | CONFIG_ZBOOT_ROM_BSS=0x0 |
174 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware" | 174 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0" |
175 | # CONFIG_XIP_KERNEL is not set | 175 | # CONFIG_XIP_KERNEL is not set |
176 | 176 | ||
177 | # | 177 | # |
diff --git a/arch/arm/configs/ixdp2400_defconfig b/arch/arm/configs/ixdp2400_defconfig index d9d6bb86a6fa..c67fc449a11f 100644 --- a/arch/arm/configs/ixdp2400_defconfig +++ b/arch/arm/configs/ixdp2400_defconfig | |||
@@ -172,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
172 | # | 172 | # |
173 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
174 | CONFIG_ZBOOT_ROM_BSS=0x0 | 174 | CONFIG_ZBOOT_ROM_BSS=0x0 |
175 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware" | 175 | CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0" |
176 | # CONFIG_XIP_KERNEL is not set | 176 | # CONFIG_XIP_KERNEL is not set |
177 | 177 | ||
178 | # | 178 | # |
diff --git a/arch/arm/configs/ixdp2401_defconfig b/arch/arm/configs/ixdp2401_defconfig index 2dc9d499c7d7..60d66e82c51f 100644 --- a/arch/arm/configs/ixdp2401_defconfig +++ b/arch/arm/configs/ixdp2401_defconfig | |||
@@ -172,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
172 | # | 172 | # |
173 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
174 | CONFIG_ZBOOT_ROM_BSS=0x0 | 174 | CONFIG_ZBOOT_ROM_BSS=0x0 |
175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware" | 175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0" |
176 | # CONFIG_XIP_KERNEL is not set | 176 | # CONFIG_XIP_KERNEL is not set |
177 | 177 | ||
178 | # | 178 | # |
diff --git a/arch/arm/configs/ixdp2801_defconfig b/arch/arm/configs/ixdp2801_defconfig index ea8f4b478fa3..f54f3dcc5b33 100644 --- a/arch/arm/configs/ixdp2801_defconfig +++ b/arch/arm/configs/ixdp2801_defconfig | |||
@@ -172,7 +172,7 @@ CONFIG_ALIGNMENT_TRAP=y | |||
172 | # | 172 | # |
173 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 173 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
174 | CONFIG_ZBOOT_ROM_BSS=0x0 | 174 | CONFIG_ZBOOT_ROM_BSS=0x0 |
175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0 pci=firmware ixdp2x01_clock=50000000" | 175 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0" |
176 | # CONFIG_XIP_KERNEL is not set | 176 | # CONFIG_XIP_KERNEL is not set |
177 | 177 | ||
178 | # | 178 | # |
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig index 1964ccd8a71f..6695b07cf1ba 100644 --- a/arch/arm/configs/s3c2410_defconfig +++ b/arch/arm/configs/s3c2410_defconfig | |||
@@ -1,11 +1,10 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.15-rc1 | 3 | # Linux kernel version: 2.6.16-rc2 |
4 | # Sun Nov 13 17:41:24 2005 | 4 | # Mon Feb 6 11:17:23 2006 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 8 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
11 | 10 | ||
@@ -28,27 +27,31 @@ CONFIG_SYSVIPC=y | |||
28 | # CONFIG_BSD_PROCESS_ACCT is not set | 27 | # CONFIG_BSD_PROCESS_ACCT is not set |
29 | CONFIG_SYSCTL=y | 28 | CONFIG_SYSCTL=y |
30 | # CONFIG_AUDIT is not set | 29 | # CONFIG_AUDIT is not set |
31 | # CONFIG_HOTPLUG is not set | ||
32 | CONFIG_KOBJECT_UEVENT=y | ||
33 | # CONFIG_IKCONFIG is not set | 30 | # CONFIG_IKCONFIG is not set |
34 | CONFIG_INITRAMFS_SOURCE="" | 31 | CONFIG_INITRAMFS_SOURCE="" |
32 | CONFIG_UID16=y | ||
33 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
35 | # CONFIG_EMBEDDED is not set | 34 | # CONFIG_EMBEDDED is not set |
36 | CONFIG_KALLSYMS=y | 35 | CONFIG_KALLSYMS=y |
37 | # CONFIG_KALLSYMS_ALL is not set | 36 | # CONFIG_KALLSYMS_ALL is not set |
38 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
38 | CONFIG_HOTPLUG=y | ||
39 | CONFIG_PRINTK=y | 39 | CONFIG_PRINTK=y |
40 | CONFIG_BUG=y | 40 | CONFIG_BUG=y |
41 | CONFIG_ELF_CORE=y | ||
41 | CONFIG_BASE_FULL=y | 42 | CONFIG_BASE_FULL=y |
42 | CONFIG_FUTEX=y | 43 | CONFIG_FUTEX=y |
43 | CONFIG_EPOLL=y | 44 | CONFIG_EPOLL=y |
44 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
45 | CONFIG_SHMEM=y | 45 | CONFIG_SHMEM=y |
46 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 46 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
47 | CONFIG_CC_ALIGN_LABELS=0 | 47 | CONFIG_CC_ALIGN_LABELS=0 |
48 | CONFIG_CC_ALIGN_LOOPS=0 | 48 | CONFIG_CC_ALIGN_LOOPS=0 |
49 | CONFIG_CC_ALIGN_JUMPS=0 | 49 | CONFIG_CC_ALIGN_JUMPS=0 |
50 | CONFIG_SLAB=y | ||
50 | # CONFIG_TINY_SHMEM is not set | 51 | # CONFIG_TINY_SHMEM is not set |
51 | CONFIG_BASE_SMALL=0 | 52 | CONFIG_BASE_SMALL=0 |
53 | # CONFIG_SLOB is not set | ||
54 | CONFIG_OBSOLETE_INTERMODULE=y | ||
52 | 55 | ||
53 | # | 56 | # |
54 | # Loadable module support | 57 | # Loadable module support |
@@ -102,6 +105,7 @@ CONFIG_ARCH_S3C2410=y | |||
102 | # CONFIG_ARCH_IMX is not set | 105 | # CONFIG_ARCH_IMX is not set |
103 | # CONFIG_ARCH_H720X is not set | 106 | # CONFIG_ARCH_H720X is not set |
104 | # CONFIG_ARCH_AAEC2000 is not set | 107 | # CONFIG_ARCH_AAEC2000 is not set |
108 | # CONFIG_ARCH_AT91RM9200 is not set | ||
105 | 109 | ||
106 | # | 110 | # |
107 | # S3C24XX Implementations | 111 | # S3C24XX Implementations |
@@ -160,7 +164,6 @@ CONFIG_CPU_TLB_V4WBI=y | |||
160 | # Bus support | 164 | # Bus support |
161 | # | 165 | # |
162 | CONFIG_ISA=y | 166 | CONFIG_ISA=y |
163 | CONFIG_ISA_DMA_API=y | ||
164 | 167 | ||
165 | # | 168 | # |
166 | # PCCARD (PCMCIA/CardBus) support | 169 | # PCCARD (PCMCIA/CardBus) support |
@@ -172,6 +175,7 @@ CONFIG_ISA_DMA_API=y | |||
172 | # | 175 | # |
173 | # CONFIG_PREEMPT is not set | 176 | # CONFIG_PREEMPT is not set |
174 | # CONFIG_NO_IDLE_HZ is not set | 177 | # CONFIG_NO_IDLE_HZ is not set |
178 | # CONFIG_AEABI is not set | ||
175 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | 179 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set |
176 | CONFIG_SELECT_MEMORY_MODEL=y | 180 | CONFIG_SELECT_MEMORY_MODEL=y |
177 | CONFIG_FLATMEM_MANUAL=y | 181 | CONFIG_FLATMEM_MANUAL=y |
@@ -214,6 +218,8 @@ CONFIG_BINFMT_AOUT=y | |||
214 | # Power management options | 218 | # Power management options |
215 | # | 219 | # |
216 | CONFIG_PM=y | 220 | CONFIG_PM=y |
221 | CONFIG_PM_LEGACY=y | ||
222 | # CONFIG_PM_DEBUG is not set | ||
217 | CONFIG_APM=y | 223 | CONFIG_APM=y |
218 | 224 | ||
219 | # | 225 | # |
@@ -259,6 +265,11 @@ CONFIG_TCP_CONG_BIC=y | |||
259 | # SCTP Configuration (EXPERIMENTAL) | 265 | # SCTP Configuration (EXPERIMENTAL) |
260 | # | 266 | # |
261 | # CONFIG_IP_SCTP is not set | 267 | # CONFIG_IP_SCTP is not set |
268 | |||
269 | # | ||
270 | # TIPC Configuration (EXPERIMENTAL) | ||
271 | # | ||
272 | # CONFIG_TIPC is not set | ||
262 | # CONFIG_ATM is not set | 273 | # CONFIG_ATM is not set |
263 | # CONFIG_BRIDGE is not set | 274 | # CONFIG_BRIDGE is not set |
264 | # CONFIG_VLAN_8021Q is not set | 275 | # CONFIG_VLAN_8021Q is not set |
@@ -276,7 +287,6 @@ CONFIG_TCP_CONG_BIC=y | |||
276 | # QoS and/or fair queueing | 287 | # QoS and/or fair queueing |
277 | # | 288 | # |
278 | # CONFIG_NET_SCHED is not set | 289 | # CONFIG_NET_SCHED is not set |
279 | # CONFIG_NET_CLS_ROUTE is not set | ||
280 | 290 | ||
281 | # | 291 | # |
282 | # Network testing | 292 | # Network testing |
@@ -300,6 +310,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
300 | # CONFIG_DEBUG_DRIVER is not set | 310 | # CONFIG_DEBUG_DRIVER is not set |
301 | 311 | ||
302 | # | 312 | # |
313 | # Connector - unified userspace <-> kernelspace linker | ||
314 | # | ||
315 | # CONFIG_CONNECTOR is not set | ||
316 | |||
317 | # | ||
303 | # Memory Technology Devices (MTD) | 318 | # Memory Technology Devices (MTD) |
304 | # | 319 | # |
305 | CONFIG_MTD=y | 320 | CONFIG_MTD=y |
@@ -412,8 +427,6 @@ CONFIG_PARPORT_1284=y | |||
412 | # | 427 | # |
413 | # Block devices | 428 | # Block devices |
414 | # | 429 | # |
415 | # CONFIG_BLK_DEV_XD is not set | ||
416 | # CONFIG_PARIDE is not set | ||
417 | # CONFIG_BLK_DEV_COW_COMMON is not set | 430 | # CONFIG_BLK_DEV_COW_COMMON is not set |
418 | CONFIG_BLK_DEV_LOOP=y | 431 | CONFIG_BLK_DEV_LOOP=y |
419 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 432 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
@@ -502,7 +515,6 @@ CONFIG_NETDEVICES=y | |||
502 | CONFIG_NET_ETHERNET=y | 515 | CONFIG_NET_ETHERNET=y |
503 | CONFIG_MII=y | 516 | CONFIG_MII=y |
504 | # CONFIG_NET_VENDOR_3COM is not set | 517 | # CONFIG_NET_VENDOR_3COM is not set |
505 | # CONFIG_LANCE is not set | ||
506 | # CONFIG_NET_VENDOR_SMC is not set | 518 | # CONFIG_NET_VENDOR_SMC is not set |
507 | # CONFIG_SMC91X is not set | 519 | # CONFIG_SMC91X is not set |
508 | CONFIG_DM9000=y | 520 | CONFIG_DM9000=y |
@@ -607,11 +619,11 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
607 | # CONFIG_ROCKETPORT is not set | 619 | # CONFIG_ROCKETPORT is not set |
608 | # CONFIG_CYCLADES is not set | 620 | # CONFIG_CYCLADES is not set |
609 | # CONFIG_DIGIEPCA is not set | 621 | # CONFIG_DIGIEPCA is not set |
610 | # CONFIG_ESPSERIAL is not set | ||
611 | # CONFIG_MOXA_INTELLIO is not set | 622 | # CONFIG_MOXA_INTELLIO is not set |
612 | # CONFIG_MOXA_SMARTIO is not set | 623 | # CONFIG_MOXA_SMARTIO is not set |
613 | # CONFIG_ISI is not set | 624 | # CONFIG_ISI is not set |
614 | # CONFIG_SYNCLINKMP is not set | 625 | # CONFIG_SYNCLINKMP is not set |
626 | # CONFIG_SYNCLINK_GT is not set | ||
615 | # CONFIG_N_HDLC is not set | 627 | # CONFIG_N_HDLC is not set |
616 | # CONFIG_RISCOM8 is not set | 628 | # CONFIG_RISCOM8 is not set |
617 | # CONFIG_SPECIALIX is not set | 629 | # CONFIG_SPECIALIX is not set |
@@ -625,6 +637,7 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
625 | CONFIG_SERIAL_8250=y | 637 | CONFIG_SERIAL_8250=y |
626 | CONFIG_SERIAL_8250_CONSOLE=y | 638 | CONFIG_SERIAL_8250_CONSOLE=y |
627 | CONFIG_SERIAL_8250_NR_UARTS=8 | 639 | CONFIG_SERIAL_8250_NR_UARTS=8 |
640 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
628 | CONFIG_SERIAL_8250_EXTENDED=y | 641 | CONFIG_SERIAL_8250_EXTENDED=y |
629 | CONFIG_SERIAL_8250_MANY_PORTS=y | 642 | CONFIG_SERIAL_8250_MANY_PORTS=y |
630 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 643 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
@@ -687,6 +700,7 @@ CONFIG_S3C2410_RTC=y | |||
687 | # | 700 | # |
688 | # TPM devices | 701 | # TPM devices |
689 | # | 702 | # |
703 | # CONFIG_TCG_TPM is not set | ||
690 | # CONFIG_TELCLOCK is not set | 704 | # CONFIG_TELCLOCK is not set |
691 | 705 | ||
692 | # | 706 | # |
@@ -731,6 +745,12 @@ CONFIG_SENSORS_EEPROM=m | |||
731 | # CONFIG_I2C_DEBUG_CHIP is not set | 745 | # CONFIG_I2C_DEBUG_CHIP is not set |
732 | 746 | ||
733 | # | 747 | # |
748 | # SPI support | ||
749 | # | ||
750 | # CONFIG_SPI is not set | ||
751 | # CONFIG_SPI_MASTER is not set | ||
752 | |||
753 | # | ||
734 | # Hardware Monitoring support | 754 | # Hardware Monitoring support |
735 | # | 755 | # |
736 | CONFIG_HWMON=y | 756 | CONFIG_HWMON=y |
@@ -863,6 +883,7 @@ CONFIG_FS_MBCACHE=y | |||
863 | # CONFIG_JFS_FS is not set | 883 | # CONFIG_JFS_FS is not set |
864 | # CONFIG_FS_POSIX_ACL is not set | 884 | # CONFIG_FS_POSIX_ACL is not set |
865 | # CONFIG_XFS_FS is not set | 885 | # CONFIG_XFS_FS is not set |
886 | # CONFIG_OCFS2_FS is not set | ||
866 | # CONFIG_MINIX_FS is not set | 887 | # CONFIG_MINIX_FS is not set |
867 | CONFIG_ROMFS_FS=y | 888 | CONFIG_ROMFS_FS=y |
868 | CONFIG_INOTIFY=y | 889 | CONFIG_INOTIFY=y |
@@ -897,6 +918,7 @@ CONFIG_SYSFS=y | |||
897 | # CONFIG_HUGETLB_PAGE is not set | 918 | # CONFIG_HUGETLB_PAGE is not set |
898 | CONFIG_RAMFS=y | 919 | CONFIG_RAMFS=y |
899 | # CONFIG_RELAYFS_FS is not set | 920 | # CONFIG_RELAYFS_FS is not set |
921 | # CONFIG_CONFIGFS_FS is not set | ||
900 | 922 | ||
901 | # | 923 | # |
902 | # Miscellaneous filesystems | 924 | # Miscellaneous filesystems |
@@ -965,6 +987,7 @@ CONFIG_SOLARIS_X86_PARTITION=y | |||
965 | # CONFIG_SGI_PARTITION is not set | 987 | # CONFIG_SGI_PARTITION is not set |
966 | # CONFIG_ULTRIX_PARTITION is not set | 988 | # CONFIG_ULTRIX_PARTITION is not set |
967 | # CONFIG_SUN_PARTITION is not set | 989 | # CONFIG_SUN_PARTITION is not set |
990 | # CONFIG_KARMA_PARTITION is not set | ||
968 | # CONFIG_EFI_PARTITION is not set | 991 | # CONFIG_EFI_PARTITION is not set |
969 | 992 | ||
970 | # | 993 | # |
@@ -1020,12 +1043,13 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1020 | # Kernel hacking | 1043 | # Kernel hacking |
1021 | # | 1044 | # |
1022 | # CONFIG_PRINTK_TIME is not set | 1045 | # CONFIG_PRINTK_TIME is not set |
1023 | CONFIG_DEBUG_KERNEL=y | ||
1024 | CONFIG_MAGIC_SYSRQ=y | 1046 | CONFIG_MAGIC_SYSRQ=y |
1047 | CONFIG_DEBUG_KERNEL=y | ||
1025 | CONFIG_LOG_BUF_SHIFT=16 | 1048 | CONFIG_LOG_BUF_SHIFT=16 |
1026 | CONFIG_DETECT_SOFTLOCKUP=y | 1049 | CONFIG_DETECT_SOFTLOCKUP=y |
1027 | # CONFIG_SCHEDSTATS is not set | 1050 | # CONFIG_SCHEDSTATS is not set |
1028 | # CONFIG_DEBUG_SLAB is not set | 1051 | # CONFIG_DEBUG_SLAB is not set |
1052 | CONFIG_DEBUG_MUTEXES=y | ||
1029 | # CONFIG_DEBUG_SPINLOCK is not set | 1053 | # CONFIG_DEBUG_SPINLOCK is not set |
1030 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1054 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1031 | # CONFIG_DEBUG_KOBJECT is not set | 1055 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1034,6 +1058,7 @@ CONFIG_DEBUG_INFO=y | |||
1034 | # CONFIG_DEBUG_FS is not set | 1058 | # CONFIG_DEBUG_FS is not set |
1035 | # CONFIG_DEBUG_VM is not set | 1059 | # CONFIG_DEBUG_VM is not set |
1036 | CONFIG_FRAME_POINTER=y | 1060 | CONFIG_FRAME_POINTER=y |
1061 | CONFIG_FORCED_INLINING=y | ||
1037 | # CONFIG_RCU_TORTURE_TEST is not set | 1062 | # CONFIG_RCU_TORTURE_TEST is not set |
1038 | CONFIG_DEBUG_USER=y | 1063 | CONFIG_DEBUG_USER=y |
1039 | # CONFIG_DEBUG_WAITQ is not set | 1064 | # CONFIG_DEBUG_WAITQ is not set |
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index 0abbce8c70bc..b324dcac1c56 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c | |||
@@ -57,7 +57,9 @@ int main(void) | |||
57 | DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value)); | 57 | DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value)); |
58 | DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate)); | 58 | DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate)); |
59 | DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate)); | 59 | DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate)); |
60 | DEFINE(TI_IWMMXT_STATE, (offsetof(struct thread_info, fpstate)+4)&~7); | 60 | #ifdef CONFIG_IWMMXT |
61 | DEFINE(TI_IWMMXT_STATE, offsetof(struct thread_info, fpstate.iwmmxt)); | ||
62 | #endif | ||
61 | BLANK(); | 63 | BLANK(); |
62 | DEFINE(S_R0, offsetof(struct pt_regs, ARM_r0)); | 64 | DEFINE(S_R0, offsetof(struct pt_regs, ARM_r0)); |
63 | DEFINE(S_R1, offsetof(struct pt_regs, ARM_r1)); | 65 | DEFINE(S_R1, offsetof(struct pt_regs, ARM_r1)); |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index d058e7c12568..3173924a9b60 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
@@ -111,7 +111,7 @@ | |||
111 | CALL(sys_statfs) | 111 | CALL(sys_statfs) |
112 | /* 100 */ CALL(sys_fstatfs) | 112 | /* 100 */ CALL(sys_fstatfs) |
113 | CALL(sys_ni_syscall) | 113 | CALL(sys_ni_syscall) |
114 | CALL(OBSOLETE(sys_socketcall)) | 114 | CALL(OBSOLETE(ABI(sys_socketcall, sys_oabi_socketcall))) |
115 | CALL(sys_syslog) | 115 | CALL(sys_syslog) |
116 | CALL(sys_setitimer) | 116 | CALL(sys_setitimer) |
117 | /* 105 */ CALL(sys_getitimer) | 117 | /* 105 */ CALL(sys_getitimer) |
@@ -291,21 +291,21 @@ | |||
291 | CALL(sys_mq_getsetattr) | 291 | CALL(sys_mq_getsetattr) |
292 | /* 280 */ CALL(sys_waitid) | 292 | /* 280 */ CALL(sys_waitid) |
293 | CALL(sys_socket) | 293 | CALL(sys_socket) |
294 | CALL(sys_bind) | 294 | CALL(ABI(sys_bind, sys_oabi_bind)) |
295 | CALL(sys_connect) | 295 | CALL(ABI(sys_connect, sys_oabi_connect)) |
296 | CALL(sys_listen) | 296 | CALL(sys_listen) |
297 | /* 285 */ CALL(sys_accept) | 297 | /* 285 */ CALL(sys_accept) |
298 | CALL(sys_getsockname) | 298 | CALL(sys_getsockname) |
299 | CALL(sys_getpeername) | 299 | CALL(sys_getpeername) |
300 | CALL(sys_socketpair) | 300 | CALL(sys_socketpair) |
301 | CALL(sys_send) | 301 | CALL(sys_send) |
302 | /* 290 */ CALL(sys_sendto) | 302 | /* 290 */ CALL(ABI(sys_sendto, sys_oabi_sendto)) |
303 | CALL(sys_recv) | 303 | CALL(sys_recv) |
304 | CALL(sys_recvfrom) | 304 | CALL(sys_recvfrom) |
305 | CALL(sys_shutdown) | 305 | CALL(sys_shutdown) |
306 | CALL(sys_setsockopt) | 306 | CALL(sys_setsockopt) |
307 | /* 295 */ CALL(sys_getsockopt) | 307 | /* 295 */ CALL(sys_getsockopt) |
308 | CALL(sys_sendmsg) | 308 | CALL(ABI(sys_sendmsg, sys_oabi_sendmsg)) |
309 | CALL(sys_recvmsg) | 309 | CALL(sys_recvmsg) |
310 | CALL(ABI(sys_semop, sys_oabi_semop)) | 310 | CALL(ABI(sys_semop, sys_oabi_semop)) |
311 | CALL(sys_semget) | 311 | CALL(sys_semget) |
diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c index 7195add42e74..60cfa7f3226c 100644 --- a/arch/arm/kernel/compat.c +++ b/arch/arm/kernel/compat.c | |||
@@ -27,6 +27,8 @@ | |||
27 | 27 | ||
28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
29 | 29 | ||
30 | #include "compat.h" | ||
31 | |||
30 | /* | 32 | /* |
31 | * Usage: | 33 | * Usage: |
32 | * - do not go blindly adding fields, add them at the end | 34 | * - do not go blindly adding fields, add them at the end |
diff --git a/arch/arm/kernel/compat.h b/arch/arm/kernel/compat.h new file mode 100644 index 000000000000..27e61a68bd1c --- /dev/null +++ b/arch/arm/kernel/compat.h | |||
@@ -0,0 +1,13 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/kernel/compat.h | ||
3 | * | ||
4 | * Copyright (C) 2001 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | extern void convert_to_tag_list(struct tag *tags); | ||
12 | |||
13 | extern void squash_mem_tags(struct tag *tag); | ||
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index d401d908c463..ec48d70c6d8b 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -333,10 +333,14 @@ __pabt_svc: | |||
333 | @ from the exception stack | 333 | @ from the exception stack |
334 | 334 | ||
335 | #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) | 335 | #if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) |
336 | #ifndef CONFIG_MMU | ||
337 | #warning "NPTL on non MMU needs fixing" | ||
338 | #else | ||
336 | @ make sure our user space atomic helper is aborted | 339 | @ make sure our user space atomic helper is aborted |
337 | cmp r2, #TASK_SIZE | 340 | cmp r2, #TASK_SIZE |
338 | bichs r3, r3, #PSR_Z_BIT | 341 | bichs r3, r3, #PSR_Z_BIT |
339 | #endif | 342 | #endif |
343 | #endif | ||
340 | 344 | ||
341 | @ | 345 | @ |
342 | @ We are now ready to fill in the remaining blanks on the stack: | 346 | @ We are now ready to fill in the remaining blanks on the stack: |
@@ -562,7 +566,7 @@ ENTRY(__switch_to) | |||
562 | ldr r6, [r2, #TI_CPU_DOMAIN]! | 566 | ldr r6, [r2, #TI_CPU_DOMAIN]! |
563 | #endif | 567 | #endif |
564 | #if __LINUX_ARM_ARCH__ >= 6 | 568 | #if __LINUX_ARM_ARCH__ >= 6 |
565 | #ifdef CONFIG_CPU_MPCORE | 569 | #ifdef CONFIG_CPU_32v6K |
566 | clrex | 570 | clrex |
567 | #else | 571 | #else |
568 | strex r5, r4, [ip] @ Clear exclusive monitor | 572 | strex r5, r4, [ip] @ Clear exclusive monitor |
@@ -705,7 +709,12 @@ __kuser_memory_barrier: @ 0xffff0fa0 | |||
705 | * The C flag is also set if *ptr was changed to allow for assembly | 709 | * The C flag is also set if *ptr was changed to allow for assembly |
706 | * optimization in the calling code. | 710 | * optimization in the calling code. |
707 | * | 711 | * |
708 | * Note: this routine already includes memory barriers as needed. | 712 | * Notes: |
713 | * | ||
714 | * - This routine already includes memory barriers as needed. | ||
715 | * | ||
716 | * - A failure might be transient, i.e. it is possible, although unlikely, | ||
717 | * that "failure" be returned even if *ptr == oldval. | ||
709 | * | 718 | * |
710 | * For example, a user space atomic_add implementation could look like this: | 719 | * For example, a user space atomic_add implementation could look like this: |
711 | * | 720 | * |
@@ -756,12 +765,18 @@ __kuser_cmpxchg: @ 0xffff0fc0 | |||
756 | * exception happening just after the str instruction which would | 765 | * exception happening just after the str instruction which would |
757 | * clear the Z flag although the exchange was done. | 766 | * clear the Z flag although the exchange was done. |
758 | */ | 767 | */ |
768 | #ifdef CONFIG_MMU | ||
759 | teq ip, ip @ set Z flag | 769 | teq ip, ip @ set Z flag |
760 | ldr ip, [r2] @ load current val | 770 | ldr ip, [r2] @ load current val |
761 | add r3, r2, #1 @ prepare store ptr | 771 | add r3, r2, #1 @ prepare store ptr |
762 | teqeq ip, r0 @ compare with oldval if still allowed | 772 | teqeq ip, r0 @ compare with oldval if still allowed |
763 | streq r1, [r3, #-1]! @ store newval if still allowed | 773 | streq r1, [r3, #-1]! @ store newval if still allowed |
764 | subs r0, r2, r3 @ if r2 == r3 the str occured | 774 | subs r0, r2, r3 @ if r2 == r3 the str occured |
775 | #else | ||
776 | #warning "NPTL on non MMU needs fixing" | ||
777 | mov r0, #-1 | ||
778 | adds r0, r0, #0 | ||
779 | #endif | ||
765 | mov pc, lr | 780 | mov pc, lr |
766 | 781 | ||
767 | #else | 782 | #else |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 4b4e4cf79c80..489c069e5c3e 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/kallsyms.h> | 27 | #include <linux/kallsyms.h> |
28 | #include <linux/init.h> | 28 | #include <linux/init.h> |
29 | #include <linux/cpu.h> | 29 | #include <linux/cpu.h> |
30 | #include <linux/elfcore.h> | ||
30 | 31 | ||
31 | #include <asm/leds.h> | 32 | #include <asm/leds.h> |
32 | #include <asm/processor.h> | 33 | #include <asm/processor.h> |
@@ -83,7 +84,7 @@ EXPORT_SYMBOL(pm_power_off); | |||
83 | * This is our default idle handler. We need to disable | 84 | * This is our default idle handler. We need to disable |
84 | * interrupts here to ensure we don't miss a wakeup call. | 85 | * interrupts here to ensure we don't miss a wakeup call. |
85 | */ | 86 | */ |
86 | void default_idle(void) | 87 | static void default_idle(void) |
87 | { | 88 | { |
88 | if (hlt_counter) | 89 | if (hlt_counter) |
89 | cpu_relax(); | 90 | cpu_relax(); |
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index 7b6256bb590e..a1d1b2906e8d 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
@@ -610,15 +610,12 @@ static int ptrace_setfpregs(struct task_struct *tsk, void __user *ufp) | |||
610 | static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) | 610 | static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) |
611 | { | 611 | { |
612 | struct thread_info *thread = task_thread_info(tsk); | 612 | struct thread_info *thread = task_thread_info(tsk); |
613 | void *ptr = &thread->fpstate; | ||
614 | 613 | ||
615 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) | 614 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) |
616 | return -ENODATA; | 615 | return -ENODATA; |
617 | iwmmxt_task_disable(thread); /* force it to ram */ | 616 | iwmmxt_task_disable(thread); /* force it to ram */ |
618 | /* The iWMMXt state is stored doubleword-aligned. */ | 617 | return copy_to_user(ufp, &thread->fpstate.iwmmxt, IWMMXT_SIZE) |
619 | if (((long) ptr) & 4) | 618 | ? -EFAULT : 0; |
620 | ptr += 4; | ||
621 | return copy_to_user(ufp, ptr, 0x98) ? -EFAULT : 0; | ||
622 | } | 619 | } |
623 | 620 | ||
624 | /* | 621 | /* |
@@ -627,15 +624,12 @@ static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) | |||
627 | static int ptrace_setwmmxregs(struct task_struct *tsk, void __user *ufp) | 624 | static int ptrace_setwmmxregs(struct task_struct *tsk, void __user *ufp) |
628 | { | 625 | { |
629 | struct thread_info *thread = task_thread_info(tsk); | 626 | struct thread_info *thread = task_thread_info(tsk); |
630 | void *ptr = &thread->fpstate; | ||
631 | 627 | ||
632 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) | 628 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) |
633 | return -EACCES; | 629 | return -EACCES; |
634 | iwmmxt_task_release(thread); /* force a reload */ | 630 | iwmmxt_task_release(thread); /* force a reload */ |
635 | /* The iWMMXt state is stored doubleword-aligned. */ | 631 | return copy_from_user(&thread->fpstate.iwmmxt, ufp, IWMMXT_SIZE) |
636 | if (((long) ptr) & 4) | 632 | ? -EFAULT : 0; |
637 | ptr += 4; | ||
638 | return copy_from_user(ptr, ufp, 0x98) ? -EFAULT : 0; | ||
639 | } | 633 | } |
640 | 634 | ||
641 | #endif | 635 | #endif |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index c45d10d07bde..08974cbe9824 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/root_dev.h> | 23 | #include <linux/root_dev.h> |
24 | #include <linux/cpu.h> | 24 | #include <linux/cpu.h> |
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/smp.h> | ||
26 | 27 | ||
27 | #include <asm/cpu.h> | 28 | #include <asm/cpu.h> |
28 | #include <asm/elf.h> | 29 | #include <asm/elf.h> |
@@ -36,6 +37,8 @@ | |||
36 | #include <asm/mach/irq.h> | 37 | #include <asm/mach/irq.h> |
37 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
38 | 39 | ||
40 | #include "compat.h" | ||
41 | |||
39 | #ifndef MEM_SIZE | 42 | #ifndef MEM_SIZE |
40 | #define MEM_SIZE (16*1024*1024) | 43 | #define MEM_SIZE (16*1024*1024) |
41 | #endif | 44 | #endif |
@@ -52,10 +55,7 @@ static int __init fpe_setup(char *line) | |||
52 | __setup("fpe=", fpe_setup); | 55 | __setup("fpe=", fpe_setup); |
53 | #endif | 56 | #endif |
54 | 57 | ||
55 | extern unsigned int mem_fclk_21285; | ||
56 | extern void paging_init(struct meminfo *, struct machine_desc *desc); | 58 | extern void paging_init(struct meminfo *, struct machine_desc *desc); |
57 | extern void convert_to_tag_list(struct tag *tags); | ||
58 | extern void squash_mem_tags(struct tag *tag); | ||
59 | extern void reboot_setup(char *str); | 59 | extern void reboot_setup(char *str); |
60 | extern int root_mountflags; | 60 | extern int root_mountflags; |
61 | extern void _stext, _text, _etext, __data_start, _edata, _end; | 61 | extern void _stext, _text, _etext, __data_start, _edata, _end; |
@@ -771,6 +771,10 @@ void __init setup_arch(char **cmdline_p) | |||
771 | paging_init(&meminfo, mdesc); | 771 | paging_init(&meminfo, mdesc); |
772 | request_standard_resources(&meminfo, mdesc); | 772 | request_standard_resources(&meminfo, mdesc); |
773 | 773 | ||
774 | #ifdef CONFIG_SMP | ||
775 | smp_init_cpus(); | ||
776 | #endif | ||
777 | |||
774 | cpu_init(); | 778 | cpu_init(); |
775 | 779 | ||
776 | /* | 780 | /* |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 7338948bd7d3..02aa300c4633 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -338,7 +338,6 @@ void __init smp_prepare_boot_cpu(void) | |||
338 | 338 | ||
339 | per_cpu(cpu_data, cpu).idle = current; | 339 | per_cpu(cpu_data, cpu).idle = current; |
340 | 340 | ||
341 | cpu_set(cpu, cpu_possible_map); | ||
342 | cpu_set(cpu, cpu_present_map); | 341 | cpu_set(cpu, cpu_present_map); |
343 | cpu_set(cpu, cpu_online_map); | 342 | cpu_set(cpu, cpu_online_map); |
344 | } | 343 | } |
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index eafa8e5284af..8e2f9bc3368b 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
@@ -59,6 +59,17 @@ | |||
59 | * struct sembuf loses its padding with EABI. Since arrays of them are | 59 | * struct sembuf loses its padding with EABI. Since arrays of them are |
60 | * used they have to be copyed to remove the padding. Compatibility wrappers | 60 | * used they have to be copyed to remove the padding. Compatibility wrappers |
61 | * provided below. | 61 | * provided below. |
62 | * | ||
63 | * sys_bind: | ||
64 | * sys_connect: | ||
65 | * sys_sendmsg: | ||
66 | * sys_sendto: | ||
67 | * sys_socketcall: | ||
68 | * | ||
69 | * struct sockaddr_un loses its padding with EABI. Since the size of the | ||
70 | * structure is used as a validation test in unix_mkname(), we need to | ||
71 | * change the length argument to 110 whenever it is 112. Compatibility | ||
72 | * wrappers provided below. | ||
62 | */ | 73 | */ |
63 | 74 | ||
64 | #include <linux/syscalls.h> | 75 | #include <linux/syscalls.h> |
@@ -67,6 +78,8 @@ | |||
67 | #include <linux/fcntl.h> | 78 | #include <linux/fcntl.h> |
68 | #include <linux/eventpoll.h> | 79 | #include <linux/eventpoll.h> |
69 | #include <linux/sem.h> | 80 | #include <linux/sem.h> |
81 | #include <linux/socket.h> | ||
82 | #include <linux/net.h> | ||
70 | #include <asm/ipc.h> | 83 | #include <asm/ipc.h> |
71 | #include <asm/uaccess.h> | 84 | #include <asm/uaccess.h> |
72 | 85 | ||
@@ -337,3 +350,91 @@ asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third, | |||
337 | return sys_ipc(call, first, second, third, ptr, fifth); | 350 | return sys_ipc(call, first, second, third, ptr, fifth); |
338 | } | 351 | } |
339 | } | 352 | } |
353 | |||
354 | asmlinkage long sys_oabi_bind(int fd, struct sockaddr __user *addr, int addrlen) | ||
355 | { | ||
356 | sa_family_t sa_family; | ||
357 | if (addrlen == 112 && | ||
358 | get_user(sa_family, &addr->sa_family) == 0 && | ||
359 | sa_family == AF_UNIX) | ||
360 | addrlen = 110; | ||
361 | return sys_bind(fd, addr, addrlen); | ||
362 | } | ||
363 | |||
364 | asmlinkage long sys_oabi_connect(int fd, struct sockaddr __user *addr, int addrlen) | ||
365 | { | ||
366 | sa_family_t sa_family; | ||
367 | if (addrlen == 112 && | ||
368 | get_user(sa_family, &addr->sa_family) == 0 && | ||
369 | sa_family == AF_UNIX) | ||
370 | addrlen = 110; | ||
371 | return sys_connect(fd, addr, addrlen); | ||
372 | } | ||
373 | |||
374 | asmlinkage long sys_oabi_sendto(int fd, void __user *buff, | ||
375 | size_t len, unsigned flags, | ||
376 | struct sockaddr __user *addr, | ||
377 | int addrlen) | ||
378 | { | ||
379 | sa_family_t sa_family; | ||
380 | if (addrlen == 112 && | ||
381 | get_user(sa_family, &addr->sa_family) == 0 && | ||
382 | sa_family == AF_UNIX) | ||
383 | addrlen = 110; | ||
384 | return sys_sendto(fd, buff, len, flags, addr, addrlen); | ||
385 | } | ||
386 | |||
387 | asmlinkage long sys_oabi_sendmsg(int fd, struct msghdr __user *msg, unsigned flags) | ||
388 | { | ||
389 | struct sockaddr __user *addr; | ||
390 | int msg_namelen; | ||
391 | sa_family_t sa_family; | ||
392 | if (msg && | ||
393 | get_user(msg_namelen, &msg->msg_namelen) == 0 && | ||
394 | msg_namelen == 112 && | ||
395 | get_user(addr, &msg->msg_name) == 0 && | ||
396 | get_user(sa_family, &addr->sa_family) == 0 && | ||
397 | sa_family == AF_UNIX) | ||
398 | { | ||
399 | /* | ||
400 | * HACK ALERT: there is a limit to how much backward bending | ||
401 | * we should do for what is actually a transitional | ||
402 | * compatibility layer. This already has known flaws with | ||
403 | * a few ioctls that we don't intend to fix. Therefore | ||
404 | * consider this blatent hack as another one... and take care | ||
405 | * to run for cover. In most cases it will "just work fine". | ||
406 | * If it doesn't, well, tough. | ||
407 | */ | ||
408 | put_user(110, &msg->msg_namelen); | ||
409 | } | ||
410 | return sys_sendmsg(fd, msg, flags); | ||
411 | } | ||
412 | |||
413 | asmlinkage long sys_oabi_socketcall(int call, unsigned long __user *args) | ||
414 | { | ||
415 | unsigned long r = -EFAULT, a[6]; | ||
416 | |||
417 | switch (call) { | ||
418 | case SYS_BIND: | ||
419 | if (copy_from_user(a, args, 3 * sizeof(long)) == 0) | ||
420 | r = sys_oabi_bind(a[0], (struct sockaddr __user *)a[1], a[2]); | ||
421 | break; | ||
422 | case SYS_CONNECT: | ||
423 | if (copy_from_user(a, args, 3 * sizeof(long)) == 0) | ||
424 | r = sys_oabi_connect(a[0], (struct sockaddr __user *)a[1], a[2]); | ||
425 | break; | ||
426 | case SYS_SENDTO: | ||
427 | if (copy_from_user(a, args, 6 * sizeof(long)) == 0) | ||
428 | r = sys_oabi_sendto(a[0], (void __user *)a[1], a[2], a[3], | ||
429 | (struct sockaddr __user *)a[4], a[5]); | ||
430 | break; | ||
431 | case SYS_SENDMSG: | ||
432 | if (copy_from_user(a, args, 3 * sizeof(long)) == 0) | ||
433 | r = sys_oabi_sendmsg(a[0], (struct msghdr __user *)a[1], a[2]); | ||
434 | break; | ||
435 | default: | ||
436 | r = sys_socketcall(call, args); | ||
437 | } | ||
438 | |||
439 | return r; | ||
440 | } | ||
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index d7d932c02866..d6bd435a6857 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -422,12 +422,14 @@ static int timer_dyn_tick_disable(void) | |||
422 | void timer_dyn_reprogram(void) | 422 | void timer_dyn_reprogram(void) |
423 | { | 423 | { |
424 | struct dyn_tick_timer *dyn_tick = system_timer->dyn_tick; | 424 | struct dyn_tick_timer *dyn_tick = system_timer->dyn_tick; |
425 | unsigned long next, seq; | ||
425 | 426 | ||
426 | if (dyn_tick) { | 427 | if (dyn_tick && (dyn_tick->state & DYN_TICK_ENABLED)) { |
427 | write_seqlock(&xtime_lock); | 428 | next = next_timer_interrupt(); |
428 | if (dyn_tick->state & DYN_TICK_ENABLED) | 429 | do { |
430 | seq = read_seqbegin(&xtime_lock); | ||
429 | dyn_tick->reprogram(next_timer_interrupt() - jiffies); | 431 | dyn_tick->reprogram(next_timer_interrupt() - jiffies); |
430 | write_sequnlock(&xtime_lock); | 432 | } while (read_seqretry(&xtime_lock, seq)); |
431 | } | 433 | } |
432 | } | 434 | } |
433 | 435 | ||
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 10235b01582e..03924bcc6129 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/personality.h> | 19 | #include <linux/personality.h> |
20 | #include <linux/ptrace.h> | 20 | #include <linux/ptrace.h> |
21 | #include <linux/kallsyms.h> | 21 | #include <linux/kallsyms.h> |
22 | #include <linux/delay.h> | ||
22 | #include <linux/init.h> | 23 | #include <linux/init.h> |
23 | 24 | ||
24 | #include <asm/atomic.h> | 25 | #include <asm/atomic.h> |
@@ -231,6 +232,13 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err) | |||
231 | __die(str, err, thread, regs); | 232 | __die(str, err, thread, regs); |
232 | bust_spinlocks(0); | 233 | bust_spinlocks(0); |
233 | spin_unlock_irq(&die_lock); | 234 | spin_unlock_irq(&die_lock); |
235 | |||
236 | if (panic_on_oops) { | ||
237 | printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n"); | ||
238 | ssleep(5); | ||
239 | panic("Fatal exception"); | ||
240 | } | ||
241 | |||
234 | do_exit(SIGSEGV); | 242 | do_exit(SIGSEGV); |
235 | } | 243 | } |
236 | 244 | ||
diff --git a/arch/arm/lib/muldi3.S b/arch/arm/lib/muldi3.S index 72d594184b8a..d89c60615794 100644 --- a/arch/arm/lib/muldi3.S +++ b/arch/arm/lib/muldi3.S | |||
@@ -29,8 +29,8 @@ ENTRY(__aeabi_lmul) | |||
29 | 29 | ||
30 | mul xh, yl, xh | 30 | mul xh, yl, xh |
31 | mla xh, xl, yh, xh | 31 | mla xh, xl, yh, xh |
32 | mov ip, xl, asr #16 | 32 | mov ip, xl, lsr #16 |
33 | mov yh, yl, asr #16 | 33 | mov yh, yl, lsr #16 |
34 | bic xl, xl, ip, lsl #16 | 34 | bic xl, xl, ip, lsl #16 |
35 | bic yl, yl, yh, lsl #16 | 35 | bic yl, yl, yh, lsl #16 |
36 | mla xh, yh, ip, xh | 36 | mla xh, yh, ip, xh |
diff --git a/arch/arm/mach-at91rm9200/devices.c b/arch/arm/mach-at91rm9200/devices.c index 8df3e5245651..57eedd5beaf6 100644 --- a/arch/arm/mach-at91rm9200/devices.c +++ b/arch/arm/mach-at91rm9200/devices.c | |||
@@ -100,8 +100,10 @@ void __init at91_add_device_udc(struct at91_udc_data *data) | |||
100 | at91_set_gpio_input(data->vbus_pin, 0); | 100 | at91_set_gpio_input(data->vbus_pin, 0); |
101 | at91_set_deglitch(data->vbus_pin, 1); | 101 | at91_set_deglitch(data->vbus_pin, 1); |
102 | } | 102 | } |
103 | if (data->pullup_pin) | 103 | if (data->pullup_pin) { |
104 | at91_set_gpio_output(data->pullup_pin, 0); | 104 | at91_set_gpio_output(data->pullup_pin, 0); |
105 | at91_set_multi_drive(data->pullup_pin, 1); | ||
106 | } | ||
105 | 107 | ||
106 | udc_data = *data; | 108 | udc_data = *data; |
107 | platform_device_register(&at91rm9200_udc_device); | 109 | platform_device_register(&at91rm9200_udc_device); |
diff --git a/arch/arm/mach-at91rm9200/gpio.c b/arch/arm/mach-at91rm9200/gpio.c index 2fd2ef583e4d..0e396feec468 100644 --- a/arch/arm/mach-at91rm9200/gpio.c +++ b/arch/arm/mach-at91rm9200/gpio.c | |||
@@ -159,6 +159,23 @@ int __init_or_module at91_set_deglitch(unsigned pin, int is_on) | |||
159 | } | 159 | } |
160 | EXPORT_SYMBOL(at91_set_deglitch); | 160 | EXPORT_SYMBOL(at91_set_deglitch); |
161 | 161 | ||
162 | /* | ||
163 | * enable/disable the multi-driver; This is only valid for output and | ||
164 | * allows the output pin to run as an open collector output. | ||
165 | */ | ||
166 | int __init_or_module at91_set_multi_drive(unsigned pin, int is_on) | ||
167 | { | ||
168 | void __iomem *pio = pin_to_controller(pin); | ||
169 | unsigned mask = pin_to_mask(pin); | ||
170 | |||
171 | if (!pio) | ||
172 | return -EINVAL; | ||
173 | |||
174 | __raw_writel(mask, pio + (is_on ? PIO_MDER : PIO_MDDR)); | ||
175 | return 0; | ||
176 | } | ||
177 | EXPORT_SYMBOL(at91_set_multi_drive); | ||
178 | |||
162 | /*--------------------------------------------------------------------------*/ | 179 | /*--------------------------------------------------------------------------*/ |
163 | 180 | ||
164 | 181 | ||
@@ -257,8 +274,18 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs | |||
257 | gpio = &irq_desc[pin]; | 274 | gpio = &irq_desc[pin]; |
258 | 275 | ||
259 | while (isr) { | 276 | while (isr) { |
260 | if (isr & 1) | 277 | if (isr & 1) { |
261 | gpio->handle(pin, gpio, regs); | 278 | if (unlikely(gpio->disable_depth)) { |
279 | /* | ||
280 | * The core ARM interrupt handler lazily disables IRQs so | ||
281 | * another IRQ must be generated before it actually gets | ||
282 | * here to be disabled on the GPIO controller. | ||
283 | */ | ||
284 | gpio_irq_mask(pin); | ||
285 | } | ||
286 | else | ||
287 | gpio->handle(pin, gpio, regs); | ||
288 | } | ||
262 | pin++; | 289 | pin++; |
263 | gpio++; | 290 | gpio++; |
264 | isr >>= 1; | 291 | isr >>= 1; |
diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig index 0793dcf54f2e..0e2b641268ad 100644 --- a/arch/arm/mach-clps711x/Kconfig +++ b/arch/arm/mach-clps711x/Kconfig | |||
@@ -24,6 +24,8 @@ config ARCH_CEIVA | |||
24 | 24 | ||
25 | config ARCH_CLEP7312 | 25 | config ARCH_CLEP7312 |
26 | bool "CLEP7312" | 26 | bool "CLEP7312" |
27 | help | ||
28 | Boards based on the Cirrus Logic 7212/7312 chips. | ||
27 | 29 | ||
28 | config ARCH_EDB7211 | 30 | config ARCH_EDB7211 |
29 | bool "EDB7211" | 31 | bool "EDB7211" |
diff --git a/arch/arm/mach-imx/mx1ads.c b/arch/arm/mach-imx/mx1ads.c index dc31e3fd6c57..8ab1b040288c 100644 --- a/arch/arm/mach-imx/mx1ads.c +++ b/arch/arm/mach-imx/mx1ads.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
29 | #include "generic.h" | 29 | #include "generic.h" |
30 | #include <asm/serial.h> | ||
31 | 30 | ||
32 | static struct resource cs89x0_resources[] = { | 31 | static struct resource cs89x0_resources[] = { |
33 | [0] = { | 32 | [0] = { |
diff --git a/arch/arm/mach-integrator/platsmp.c b/arch/arm/mach-integrator/platsmp.c index ea10bd8c972c..1bc8534ef0c6 100644 --- a/arch/arm/mach-integrator/platsmp.c +++ b/arch/arm/mach-integrator/platsmp.c | |||
@@ -140,6 +140,18 @@ static void __init poke_milo(void) | |||
140 | mb(); | 140 | mb(); |
141 | } | 141 | } |
142 | 142 | ||
143 | /* | ||
144 | * Initialise the CPU possible map early - this describes the CPUs | ||
145 | * which may be present or become present in the system. | ||
146 | */ | ||
147 | void __init smp_init_cpus(void) | ||
148 | { | ||
149 | unsigned int i, ncores = get_core_count(); | ||
150 | |||
151 | for (i = 0; i < ncores; i++) | ||
152 | cpu_set(i, cpu_possible_map); | ||
153 | } | ||
154 | |||
143 | void __init smp_prepare_cpus(unsigned int max_cpus) | 155 | void __init smp_prepare_cpus(unsigned int max_cpus) |
144 | { | 156 | { |
145 | unsigned int ncores = get_core_count(); | 157 | unsigned int ncores = get_core_count(); |
@@ -176,14 +188,11 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
176 | max_cpus = ncores; | 188 | max_cpus = ncores; |
177 | 189 | ||
178 | /* | 190 | /* |
179 | * Initialise the possible/present maps. | 191 | * Initialise the present map, which describes the set of CPUs |
180 | * cpu_possible_map describes the set of CPUs which may be present | 192 | * actually populated at the present time. |
181 | * cpu_present_map describes the set of CPUs populated | ||
182 | */ | 193 | */ |
183 | for (i = 0; i < max_cpus; i++) { | 194 | for (i = 0; i < max_cpus; i++) |
184 | cpu_set(i, cpu_possible_map); | ||
185 | cpu_set(i, cpu_present_map); | 195 | cpu_set(i, cpu_present_map); |
186 | } | ||
187 | 196 | ||
188 | /* | 197 | /* |
189 | * Do we need any more CPUs? If so, then let them know where | 198 | * Do we need any more CPUs? If so, then let them know where |
diff --git a/arch/arm/mach-iop3xx/iop321-setup.c b/arch/arm/mach-iop3xx/iop321-setup.c index e4f4c52d93d4..0ebbcb20c6ae 100644 --- a/arch/arm/mach-iop3xx/iop321-setup.c +++ b/arch/arm/mach-iop3xx/iop321-setup.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/config.h> | 15 | #include <linux/config.h> |
16 | #include <linux/init.h> | ||
17 | #include <linux/major.h> | 16 | #include <linux/major.h> |
18 | #include <linux/fs.h> | 17 | #include <linux/fs.h> |
19 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
diff --git a/arch/arm/mach-iop3xx/iop331-setup.c b/arch/arm/mach-iop3xx/iop331-setup.c index 63585485123e..2d6abe5be14d 100644 --- a/arch/arm/mach-iop3xx/iop331-setup.c +++ b/arch/arm/mach-iop3xx/iop331-setup.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/config.h> | 14 | #include <linux/config.h> |
15 | #include <linux/init.h> | ||
16 | #include <linux/major.h> | 15 | #include <linux/major.h> |
17 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
18 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index 9e5a13bb39d0..52fac89e95b5 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
@@ -106,6 +106,7 @@ static void __init enp2611_pci_preinit(void) | |||
106 | { | 106 | { |
107 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); | 107 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); |
108 | ixp2000_pci_preinit(); | 108 | ixp2000_pci_preinit(); |
109 | pcibios_setup("firmware"); | ||
109 | } | 110 | } |
110 | 111 | ||
111 | static inline int enp2611_pci_valid_device(struct pci_bus *bus, | 112 | static inline int enp2611_pci_valid_device(struct pci_bus *bus, |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index 7c782403042a..09101271298e 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
@@ -68,6 +68,7 @@ void __init ixdp2400_pci_preinit(void) | |||
68 | { | 68 | { |
69 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); | 69 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00100000); |
70 | ixp2000_pci_preinit(); | 70 | ixp2000_pci_preinit(); |
71 | pcibios_setup("firmware"); | ||
71 | } | 72 | } |
72 | 73 | ||
73 | int ixdp2400_pci_setup(int nr, struct pci_sys_data *sys) | 74 | int ixdp2400_pci_setup(int nr, struct pci_sys_data *sys) |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 10f06606d460..150519fb38ec 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -212,6 +212,7 @@ void __init ixdp2x01_pci_preinit(void) | |||
212 | { | 212 | { |
213 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00000000); | 213 | ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00000000); |
214 | ixp2000_pci_preinit(); | 214 | ixp2000_pci_preinit(); |
215 | pcibios_setup("firmware"); | ||
215 | } | 216 | } |
216 | 217 | ||
217 | #define DEVPIN(dev, pin) ((pin) | ((dev) << 3)) | 218 | #define DEVPIN(dev, pin) ((pin) | ((dev) << 3)) |
@@ -299,7 +300,9 @@ struct hw_pci ixdp2x01_pci __initdata = { | |||
299 | 300 | ||
300 | int __init ixdp2x01_pci_init(void) | 301 | int __init ixdp2x01_pci_init(void) |
301 | { | 302 | { |
302 | pci_common_init(&ixdp2x01_pci); | 303 | if (machine_is_ixdp2401() || machine_is_ixdp2801()) |
304 | pci_common_init(&ixdp2x01_pci); | ||
305 | |||
303 | return 0; | 306 | return 0; |
304 | } | 307 | } |
305 | 308 | ||
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index daadc78e271b..5bf50a2a737d 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig | |||
@@ -8,11 +8,9 @@ menu "Intel IXP4xx Implementation Options" | |||
8 | 8 | ||
9 | comment "IXP4xx Platforms" | 9 | comment "IXP4xx Platforms" |
10 | 10 | ||
11 | # This entry is placed on top because otherwise it would have | ||
12 | # been shown as a submenu. | ||
13 | config MACH_NSLU2 | 11 | config MACH_NSLU2 |
14 | bool | 12 | bool |
15 | prompt "NSLU2" if !(MACH_IXDP465 || MACH_IXDPG425 || ARCH_IXDP425 || ARCH_ADI_COYOTE || ARCH_AVILA || ARCH_IXCDP1100 || ARCH_PRPMC1100 || MACH_GTWX5715) | 13 | prompt "Linksys NSLU2" |
16 | help | 14 | help |
17 | Say 'Y' here if you want your kernel to support Linksys's | 15 | Say 'Y' here if you want your kernel to support Linksys's |
18 | NSLU2 NAS device. For more information on this platform, | 16 | NSLU2 NAS device. For more information on this platform, |
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index 4bdc9d4526cd..fbadf3021b9e 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
@@ -111,24 +111,30 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type) | |||
111 | if (line < 0) | 111 | if (line < 0) |
112 | return -EINVAL; | 112 | return -EINVAL; |
113 | 113 | ||
114 | if (type & IRQT_BOTHEDGE) { | 114 | switch (type){ |
115 | case IRQT_BOTHEDGE: | ||
115 | int_style = IXP4XX_GPIO_STYLE_TRANSITIONAL; | 116 | int_style = IXP4XX_GPIO_STYLE_TRANSITIONAL; |
116 | irq_type = IXP4XX_IRQ_EDGE; | 117 | irq_type = IXP4XX_IRQ_EDGE; |
117 | } else if (type & IRQT_RISING) { | 118 | break; |
119 | case IRQT_RISING: | ||
118 | int_style = IXP4XX_GPIO_STYLE_RISING_EDGE; | 120 | int_style = IXP4XX_GPIO_STYLE_RISING_EDGE; |
119 | irq_type = IXP4XX_IRQ_EDGE; | 121 | irq_type = IXP4XX_IRQ_EDGE; |
120 | } else if (type & IRQT_FALLING) { | 122 | break; |
123 | case IRQT_FALLING: | ||
121 | int_style = IXP4XX_GPIO_STYLE_FALLING_EDGE; | 124 | int_style = IXP4XX_GPIO_STYLE_FALLING_EDGE; |
122 | irq_type = IXP4XX_IRQ_EDGE; | 125 | irq_type = IXP4XX_IRQ_EDGE; |
123 | } else if (type & IRQT_HIGH) { | 126 | break; |
127 | case IRQT_HIGH: | ||
124 | int_style = IXP4XX_GPIO_STYLE_ACTIVE_HIGH; | 128 | int_style = IXP4XX_GPIO_STYLE_ACTIVE_HIGH; |
125 | irq_type = IXP4XX_IRQ_LEVEL; | 129 | irq_type = IXP4XX_IRQ_LEVEL; |
126 | } else if (type & IRQT_LOW) { | 130 | break; |
131 | case IRQT_LOW: | ||
127 | int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW; | 132 | int_style = IXP4XX_GPIO_STYLE_ACTIVE_LOW; |
128 | irq_type = IXP4XX_IRQ_LEVEL; | 133 | irq_type = IXP4XX_IRQ_LEVEL; |
129 | } else | 134 | break; |
135 | default: | ||
130 | return -EINVAL; | 136 | return -EINVAL; |
131 | 137 | } | |
132 | ixp4xx_config_irq(irq, irq_type); | 138 | ixp4xx_config_irq(irq, irq_type); |
133 | 139 | ||
134 | if (line >= 8) { /* pins 8-15 */ | 140 | if (line >= 8) { /* pins 8-15 */ |
diff --git a/arch/arm/mach-ixp4xx/nas100d-power.c b/arch/arm/mach-ixp4xx/nas100d-power.c index 2bec69bfa715..99d333d7ebdd 100644 --- a/arch/arm/mach-ixp4xx/nas100d-power.c +++ b/arch/arm/mach-ixp4xx/nas100d-power.c | |||
@@ -56,6 +56,9 @@ static int __init nas100d_power_init(void) | |||
56 | 56 | ||
57 | static void __exit nas100d_power_exit(void) | 57 | static void __exit nas100d_power_exit(void) |
58 | { | 58 | { |
59 | if (!(machine_is_nas100d())) | ||
60 | return; | ||
61 | |||
59 | free_irq(NAS100D_RB_IRQ, NULL); | 62 | free_irq(NAS100D_RB_IRQ, NULL); |
60 | } | 63 | } |
61 | 64 | ||
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c index 856d56f3b2ae..a3b4c6ac5708 100644 --- a/arch/arm/mach-ixp4xx/nas100d-setup.c +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c | |||
@@ -113,6 +113,9 @@ static void __init nas100d_init(void) | |||
113 | { | 113 | { |
114 | ixp4xx_sys_init(); | 114 | ixp4xx_sys_init(); |
115 | 115 | ||
116 | /* gpio 14 and 15 are _not_ clocks */ | ||
117 | *IXP4XX_GPIO_GPCLKR = 0; | ||
118 | |||
116 | nas100d_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); | 119 | nas100d_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); |
117 | nas100d_flash_resource.end = | 120 | nas100d_flash_resource.end = |
118 | IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; | 121 | IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; |
diff --git a/arch/arm/mach-ixp4xx/nslu2-power.c b/arch/arm/mach-ixp4xx/nslu2-power.c index b0ad9e901f6e..d80c362bc539 100644 --- a/arch/arm/mach-ixp4xx/nslu2-power.c +++ b/arch/arm/mach-ixp4xx/nslu2-power.c | |||
@@ -77,6 +77,9 @@ static int __init nslu2_power_init(void) | |||
77 | 77 | ||
78 | static void __exit nslu2_power_exit(void) | 78 | static void __exit nslu2_power_exit(void) |
79 | { | 79 | { |
80 | if (!(machine_is_nslu2())) | ||
81 | return; | ||
82 | |||
80 | free_irq(NSLU2_RB_IRQ, NULL); | 83 | free_irq(NSLU2_RB_IRQ, NULL); |
81 | free_irq(NSLU2_PB_IRQ, NULL); | 84 | free_irq(NSLU2_PB_IRQ, NULL); |
82 | } | 85 | } |
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c index da9340a53434..55411f21d838 100644 --- a/arch/arm/mach-ixp4xx/nslu2-setup.c +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c | |||
@@ -27,8 +27,6 @@ static struct flash_platform_data nslu2_flash_data = { | |||
27 | }; | 27 | }; |
28 | 28 | ||
29 | static struct resource nslu2_flash_resource = { | 29 | static struct resource nslu2_flash_resource = { |
30 | .start = NSLU2_FLASH_BASE, | ||
31 | .end = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE, | ||
32 | .flags = IORESOURCE_MEM, | 30 | .flags = IORESOURCE_MEM, |
33 | }; | 31 | }; |
34 | 32 | ||
@@ -52,6 +50,12 @@ static struct platform_device nslu2_i2c_controller = { | |||
52 | .num_resources = 0, | 50 | .num_resources = 0, |
53 | }; | 51 | }; |
54 | 52 | ||
53 | static struct platform_device nslu2_beeper = { | ||
54 | .name = "ixp4xx-beeper", | ||
55 | .id = NSLU2_GPIO_BUZZ, | ||
56 | .num_resources = 0, | ||
57 | }; | ||
58 | |||
55 | static struct resource nslu2_uart_resources[] = { | 59 | static struct resource nslu2_uart_resources[] = { |
56 | { | 60 | { |
57 | .start = IXP4XX_UART1_BASE_PHYS, | 61 | .start = IXP4XX_UART1_BASE_PHYS, |
@@ -99,6 +103,7 @@ static struct platform_device *nslu2_devices[] __initdata = { | |||
99 | &nslu2_i2c_controller, | 103 | &nslu2_i2c_controller, |
100 | &nslu2_flash, | 104 | &nslu2_flash, |
101 | &nslu2_uart, | 105 | &nslu2_uart, |
106 | &nslu2_beeper, | ||
102 | }; | 107 | }; |
103 | 108 | ||
104 | static void nslu2_power_off(void) | 109 | static void nslu2_power_off(void) |
@@ -116,6 +121,10 @@ static void __init nslu2_init(void) | |||
116 | { | 121 | { |
117 | ixp4xx_sys_init(); | 122 | ixp4xx_sys_init(); |
118 | 123 | ||
124 | nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); | ||
125 | nslu2_flash_resource.end = | ||
126 | IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1; | ||
127 | |||
119 | pm_power_off = nslu2_power_off; | 128 | pm_power_off = nslu2_power_off; |
120 | 129 | ||
121 | platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices)); | 130 | platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices)); |
diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index bdc20b51b076..a177e78b2b87 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c | |||
@@ -30,6 +30,7 @@ | |||
30 | 30 | ||
31 | static void __init omap_generic_init_irq(void) | 31 | static void __init omap_generic_init_irq(void) |
32 | { | 32 | { |
33 | omap1_init_common_hw(); | ||
33 | omap_init_irq(); | 34 | omap_init_irq(); |
34 | } | 35 | } |
35 | 36 | ||
@@ -104,7 +105,7 @@ static void __init omap_generic_init(void) | |||
104 | 105 | ||
105 | static void __init omap_generic_map_io(void) | 106 | static void __init omap_generic_map_io(void) |
106 | { | 107 | { |
107 | omap_map_common_io(); | 108 | omap1_map_common_io(); |
108 | } | 109 | } |
109 | 110 | ||
110 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") | 111 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index 9533c36a92df..89f0cc74a519 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
@@ -128,6 +128,7 @@ static void __init h2_init_smc91x(void) | |||
128 | 128 | ||
129 | static void __init h2_init_irq(void) | 129 | static void __init h2_init_irq(void) |
130 | { | 130 | { |
131 | omap1_init_common_hw(); | ||
131 | omap_init_irq(); | 132 | omap_init_irq(); |
132 | omap_gpio_init(); | 133 | omap_gpio_init(); |
133 | h2_init_smc91x(); | 134 | h2_init_smc91x(); |
@@ -194,7 +195,7 @@ static void __init h2_init(void) | |||
194 | 195 | ||
195 | static void __init h2_map_io(void) | 196 | static void __init h2_map_io(void) |
196 | { | 197 | { |
197 | omap_map_common_io(); | 198 | omap1_map_common_io(); |
198 | } | 199 | } |
199 | 200 | ||
200 | MACHINE_START(OMAP_H2, "TI-H2") | 201 | MACHINE_START(OMAP_H2, "TI-H2") |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index d665efc1c344..d9f386265996 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -203,6 +203,7 @@ static void __init h3_init_smc91x(void) | |||
203 | 203 | ||
204 | void h3_init_irq(void) | 204 | void h3_init_irq(void) |
205 | { | 205 | { |
206 | omap1_init_common_hw(); | ||
206 | omap_init_irq(); | 207 | omap_init_irq(); |
207 | omap_gpio_init(); | 208 | omap_gpio_init(); |
208 | h3_init_smc91x(); | 209 | h3_init_smc91x(); |
@@ -210,7 +211,7 @@ void h3_init_irq(void) | |||
210 | 211 | ||
211 | static void __init h3_map_io(void) | 212 | static void __init h3_map_io(void) |
212 | { | 213 | { |
213 | omap_map_common_io(); | 214 | omap1_map_common_io(); |
214 | } | 215 | } |
215 | 216 | ||
216 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") | 217 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") |
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index 652f37c7f906..a04e4332915e 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c | |||
@@ -181,6 +181,7 @@ static void __init innovator_init_smc91x(void) | |||
181 | 181 | ||
182 | void innovator_init_irq(void) | 182 | void innovator_init_irq(void) |
183 | { | 183 | { |
184 | omap1_init_common_hw(); | ||
184 | omap_init_irq(); | 185 | omap_init_irq(); |
185 | omap_gpio_init(); | 186 | omap_gpio_init(); |
186 | #ifdef CONFIG_ARCH_OMAP15XX | 187 | #ifdef CONFIG_ARCH_OMAP15XX |
@@ -285,7 +286,7 @@ static void __init innovator_init(void) | |||
285 | 286 | ||
286 | static void __init innovator_map_io(void) | 287 | static void __init innovator_map_io(void) |
287 | { | 288 | { |
288 | omap_map_common_io(); | 289 | omap1_map_common_io(); |
289 | 290 | ||
290 | #ifdef CONFIG_ARCH_OMAP15XX | 291 | #ifdef CONFIG_ARCH_OMAP15XX |
291 | if (cpu_is_omap1510()) { | 292 | if (cpu_is_omap1510()) { |
diff --git a/arch/arm/mach-omap1/board-netstar.c b/arch/arm/mach-omap1/board-netstar.c index 58f783930d45..60d5f8a3339c 100644 --- a/arch/arm/mach-omap1/board-netstar.c +++ b/arch/arm/mach-omap1/board-netstar.c | |||
@@ -65,6 +65,7 @@ static struct omap_board_config_kernel netstar_config[] = { | |||
65 | 65 | ||
66 | static void __init netstar_init_irq(void) | 66 | static void __init netstar_init_irq(void) |
67 | { | 67 | { |
68 | omap1_init_common_hw(); | ||
68 | omap_init_irq(); | 69 | omap_init_irq(); |
69 | omap_gpio_init(); | 70 | omap_gpio_init(); |
70 | } | 71 | } |
@@ -108,7 +109,7 @@ static void __init netstar_init(void) | |||
108 | 109 | ||
109 | static void __init netstar_map_io(void) | 110 | static void __init netstar_map_io(void) |
110 | { | 111 | { |
111 | omap_map_common_io(); | 112 | omap1_map_common_io(); |
112 | } | 113 | } |
113 | 114 | ||
114 | #define MACHINE_PANICED 1 | 115 | #define MACHINE_PANICED 1 |
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index e5d126e8f276..543fa136106d 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
@@ -169,6 +169,7 @@ static void __init osk_init_cf(void) | |||
169 | 169 | ||
170 | static void __init osk_init_irq(void) | 170 | static void __init osk_init_irq(void) |
171 | { | 171 | { |
172 | omap1_init_common_hw(); | ||
172 | omap_init_irq(); | 173 | omap_init_irq(); |
173 | omap_gpio_init(); | 174 | omap_gpio_init(); |
174 | osk_init_smc91x(); | 175 | osk_init_smc91x(); |
@@ -269,7 +270,7 @@ static void __init osk_init(void) | |||
269 | 270 | ||
270 | static void __init osk_map_io(void) | 271 | static void __init osk_map_io(void) |
271 | { | 272 | { |
272 | omap_map_common_io(); | 273 | omap1_map_common_io(); |
273 | } | 274 | } |
274 | 275 | ||
275 | MACHINE_START(OMAP_OSK, "TI-OSK") | 276 | MACHINE_START(OMAP_OSK, "TI-OSK") |
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 67fada207622..e488f7236775 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c | |||
@@ -34,6 +34,7 @@ | |||
34 | 34 | ||
35 | static void __init omap_generic_init_irq(void) | 35 | static void __init omap_generic_init_irq(void) |
36 | { | 36 | { |
37 | omap1_init_common_hw(); | ||
37 | omap_init_irq(); | 38 | omap_init_irq(); |
38 | } | 39 | } |
39 | 40 | ||
@@ -72,7 +73,7 @@ static void __init omap_generic_init(void) | |||
72 | 73 | ||
73 | static void __init omap_generic_map_io(void) | 74 | static void __init omap_generic_map_io(void) |
74 | { | 75 | { |
75 | omap_map_common_io(); | 76 | omap1_map_common_io(); |
76 | } | 77 | } |
77 | 78 | ||
78 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") | 79 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 88708a0c52a2..3913a3cc0ce6 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
@@ -144,6 +144,7 @@ static void __init perseus2_init_smc91x(void) | |||
144 | 144 | ||
145 | void omap_perseus2_init_irq(void) | 145 | void omap_perseus2_init_irq(void) |
146 | { | 146 | { |
147 | omap1_init_common_hw(); | ||
147 | omap_init_irq(); | 148 | omap_init_irq(); |
148 | omap_gpio_init(); | 149 | omap_gpio_init(); |
149 | perseus2_init_smc91x(); | 150 | perseus2_init_smc91x(); |
@@ -160,7 +161,7 @@ static struct map_desc omap_perseus2_io_desc[] __initdata = { | |||
160 | 161 | ||
161 | static void __init omap_perseus2_map_io(void) | 162 | static void __init omap_perseus2_map_io(void) |
162 | { | 163 | { |
163 | omap_map_common_io(); | 164 | omap1_map_common_io(); |
164 | iotable_init(omap_perseus2_io_desc, | 165 | iotable_init(omap_perseus2_io_desc, |
165 | ARRAY_SIZE(omap_perseus2_io_desc)); | 166 | ARRAY_SIZE(omap_perseus2_io_desc)); |
166 | 167 | ||
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index 959b4b847c87..bfd5fdd1a875 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c | |||
@@ -162,6 +162,7 @@ static struct omap_board_config_kernel voiceblue_config[] = { | |||
162 | 162 | ||
163 | static void __init voiceblue_init_irq(void) | 163 | static void __init voiceblue_init_irq(void) |
164 | { | 164 | { |
165 | omap1_init_common_hw(); | ||
165 | omap_init_irq(); | 166 | omap_init_irq(); |
166 | omap_gpio_init(); | 167 | omap_gpio_init(); |
167 | } | 168 | } |
@@ -206,7 +207,7 @@ static void __init voiceblue_init(void) | |||
206 | 207 | ||
207 | static void __init voiceblue_map_io(void) | 208 | static void __init voiceblue_map_io(void) |
208 | { | 209 | { |
209 | omap_map_common_io(); | 210 | omap1_map_common_io(); |
210 | } | 211 | } |
211 | 212 | ||
212 | #define MACHINE_PANICED 1 | 213 | #define MACHINE_PANICED 1 |
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index a7a19f75b9e1..82d556be79c5 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | 15 | ||
16 | #include <asm/tlb.h> | ||
16 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
17 | #include <asm/io.h> | 18 | #include <asm/io.h> |
18 | #include <asm/arch/mux.h> | 19 | #include <asm/arch/mux.h> |
@@ -83,15 +84,24 @@ static struct map_desc omap16xx_io_desc[] __initdata = { | |||
83 | }; | 84 | }; |
84 | #endif | 85 | #endif |
85 | 86 | ||
86 | static int initialized = 0; | 87 | /* |
87 | 88 | * Maps common IO regions for omap1. This should only get called from | |
88 | static void __init _omap_map_io(void) | 89 | * board specific init. |
90 | */ | ||
91 | void __init omap1_map_common_io(void) | ||
89 | { | 92 | { |
90 | initialized = 1; | ||
91 | |||
92 | /* We have to initialize the IO space mapping before we can run | ||
93 | * cpu_is_omapxxx() macros. */ | ||
94 | iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc)); | 93 | iotable_init(omap_io_desc, ARRAY_SIZE(omap_io_desc)); |
94 | |||
95 | /* Normally devicemaps_init() would flush caches and tlb after | ||
96 | * mdesc->map_io(), but we must also do it here because of the CPU | ||
97 | * revision check below. | ||
98 | */ | ||
99 | local_flush_tlb_all(); | ||
100 | flush_cache_all(); | ||
101 | |||
102 | /* We want to check CPU revision early for cpu_is_omapxxxx() macros. | ||
103 | * IO space mapping must be initialized before we can do that. | ||
104 | */ | ||
95 | omap_check_revision(); | 105 | omap_check_revision(); |
96 | 106 | ||
97 | #ifdef CONFIG_ARCH_OMAP730 | 107 | #ifdef CONFIG_ARCH_OMAP730 |
@@ -111,7 +121,14 @@ static void __init _omap_map_io(void) | |||
111 | #endif | 121 | #endif |
112 | 122 | ||
113 | omap_sram_init(); | 123 | omap_sram_init(); |
124 | } | ||
114 | 125 | ||
126 | /* | ||
127 | * Common low-level hardware init for omap1. This should only get called from | ||
128 | * board specific init. | ||
129 | */ | ||
130 | void __init omap1_init_common_hw() | ||
131 | { | ||
115 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort | 132 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort |
116 | * on a Posted Write in the TIPB Bridge". | 133 | * on a Posted Write in the TIPB Bridge". |
117 | */ | 134 | */ |
@@ -121,16 +138,7 @@ static void __init _omap_map_io(void) | |||
121 | /* Must init clocks early to assure that timer interrupt works | 138 | /* Must init clocks early to assure that timer interrupt works |
122 | */ | 139 | */ |
123 | omap1_clk_init(); | 140 | omap1_clk_init(); |
124 | } | ||
125 | 141 | ||
126 | /* | 142 | omap1_mux_init(); |
127 | * This should only get called from board specific init | ||
128 | */ | ||
129 | void __init omap_map_common_io(void) | ||
130 | { | ||
131 | if (!initialized) { | ||
132 | _omap_map_io(); | ||
133 | omap1_mux_init(); | ||
134 | } | ||
135 | } | 143 | } |
136 | 144 | ||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index b937123e5c65..eaecbf422d8c 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -33,6 +33,7 @@ | |||
33 | 33 | ||
34 | static void __init omap_generic_init_irq(void) | 34 | static void __init omap_generic_init_irq(void) |
35 | { | 35 | { |
36 | omap2_init_common_hw(); | ||
36 | omap_init_irq(); | 37 | omap_init_irq(); |
37 | } | 38 | } |
38 | 39 | ||
@@ -64,7 +65,7 @@ static void __init omap_generic_init(void) | |||
64 | 65 | ||
65 | static void __init omap_generic_map_io(void) | 66 | static void __init omap_generic_map_io(void) |
66 | { | 67 | { |
67 | omap_map_common_io(); | 68 | omap2_map_common_io(); |
68 | } | 69 | } |
69 | 70 | ||
70 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") | 71 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index c3c35d40378a..a300d634d8a5 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
@@ -136,6 +136,7 @@ static inline void __init h4_init_smc91x(void) | |||
136 | 136 | ||
137 | static void __init omap_h4_init_irq(void) | 137 | static void __init omap_h4_init_irq(void) |
138 | { | 138 | { |
139 | omap2_init_common_hw(); | ||
139 | omap_init_irq(); | 140 | omap_init_irq(); |
140 | omap_gpio_init(); | 141 | omap_gpio_init(); |
141 | h4_init_smc91x(); | 142 | h4_init_smc91x(); |
@@ -181,7 +182,7 @@ static void __init omap_h4_init(void) | |||
181 | 182 | ||
182 | static void __init omap_h4_map_io(void) | 183 | static void __init omap_h4_map_io(void) |
183 | { | 184 | { |
184 | omap_map_common_io(); | 185 | omap2_map_common_io(); |
185 | } | 186 | } |
186 | 187 | ||
187 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") | 188 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index 4a222f59f2cf..4303d988c4bf 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -182,7 +182,7 @@ static const struct icst307_params realview_oscvco_params = { | |||
182 | static void realview_oscvco_set(struct clk *clk, struct icst307_vco vco) | 182 | static void realview_oscvco_set(struct clk *clk, struct icst307_vco vco) |
183 | { | 183 | { |
184 | void __iomem *sys_lock = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LOCK_OFFSET; | 184 | void __iomem *sys_lock = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LOCK_OFFSET; |
185 | void __iomem *sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC1_OFFSET; | 185 | void __iomem *sys_osc = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_OSC4_OFFSET; |
186 | u32 val; | 186 | u32 val; |
187 | 187 | ||
188 | val = readl(sys_osc) & ~0x7ffff; | 188 | val = readl(sys_osc) & ~0x7ffff; |
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c index a8fbd76d8be5..b8484e15dacb 100644 --- a/arch/arm/mach-realview/platsmp.c +++ b/arch/arm/mach-realview/platsmp.c | |||
@@ -143,6 +143,18 @@ static void __init poke_milo(void) | |||
143 | mb(); | 143 | mb(); |
144 | } | 144 | } |
145 | 145 | ||
146 | /* | ||
147 | * Initialise the CPU possible map early - this describes the CPUs | ||
148 | * which may be present or become present in the system. | ||
149 | */ | ||
150 | void __init smp_init_cpus(void) | ||
151 | { | ||
152 | unsigned int i, ncores = get_core_count(); | ||
153 | |||
154 | for (i = 0; i < ncores; i++) | ||
155 | cpu_set(i, cpu_possible_map); | ||
156 | } | ||
157 | |||
146 | void __init smp_prepare_cpus(unsigned int max_cpus) | 158 | void __init smp_prepare_cpus(unsigned int max_cpus) |
147 | { | 159 | { |
148 | unsigned int ncores = get_core_count(); | 160 | unsigned int ncores = get_core_count(); |
@@ -179,14 +191,11 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
179 | local_timer_setup(cpu); | 191 | local_timer_setup(cpu); |
180 | 192 | ||
181 | /* | 193 | /* |
182 | * Initialise the possible/present maps. | 194 | * Initialise the present map, which describes the set of CPUs |
183 | * cpu_possible_map describes the set of CPUs which may be present | 195 | * actually populated at the present time. |
184 | * cpu_present_map describes the set of CPUs populated | ||
185 | */ | 196 | */ |
186 | for (i = 0; i < max_cpus; i++) { | 197 | for (i = 0; i < max_cpus; i++) |
187 | cpu_set(i, cpu_possible_map); | ||
188 | cpu_set(i, cpu_present_map); | 198 | cpu_set(i, cpu_present_map); |
189 | } | ||
190 | 199 | ||
191 | /* | 200 | /* |
192 | * Do we need any more CPUs? If so, then let them know where | 201 | * Do we need any more CPUs? If so, then let them know where |
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c index af2f3d52b61b..08489efdaf06 100644 --- a/arch/arm/mach-s3c2410/clock.c +++ b/arch/arm/mach-s3c2410/clock.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <linux/mutex.h> | 40 | #include <linux/mutex.h> |
41 | 41 | ||
42 | #include <asm/hardware.h> | 42 | #include <asm/hardware.h> |
43 | #include <asm/atomic.h> | ||
44 | #include <asm/irq.h> | 43 | #include <asm/irq.h> |
45 | #include <asm/io.h> | 44 | #include <asm/io.h> |
46 | 45 | ||
@@ -59,22 +58,18 @@ static DEFINE_MUTEX(clocks_mutex); | |||
59 | void inline s3c24xx_clk_enable(unsigned int clocks, unsigned int enable) | 58 | void inline s3c24xx_clk_enable(unsigned int clocks, unsigned int enable) |
60 | { | 59 | { |
61 | unsigned long clkcon; | 60 | unsigned long clkcon; |
62 | unsigned long flags; | ||
63 | |||
64 | local_irq_save(flags); | ||
65 | 61 | ||
66 | clkcon = __raw_readl(S3C2410_CLKCON); | 62 | clkcon = __raw_readl(S3C2410_CLKCON); |
67 | clkcon &= ~clocks; | ||
68 | 63 | ||
69 | if (enable) | 64 | if (enable) |
70 | clkcon |= clocks; | 65 | clkcon |= clocks; |
66 | else | ||
67 | clkcon &= ~clocks; | ||
71 | 68 | ||
72 | /* ensure none of the special function bits set */ | 69 | /* ensure none of the special function bits set */ |
73 | clkcon &= ~(S3C2410_CLKCON_IDLE|S3C2410_CLKCON_POWER); | 70 | clkcon &= ~(S3C2410_CLKCON_IDLE|S3C2410_CLKCON_POWER); |
74 | 71 | ||
75 | __raw_writel(clkcon, S3C2410_CLKCON); | 72 | __raw_writel(clkcon, S3C2410_CLKCON); |
76 | |||
77 | local_irq_restore(flags); | ||
78 | } | 73 | } |
79 | 74 | ||
80 | /* enable and disable calls for use with the clk struct */ | 75 | /* enable and disable calls for use with the clk struct */ |
@@ -138,16 +133,32 @@ void clk_put(struct clk *clk) | |||
138 | 133 | ||
139 | int clk_enable(struct clk *clk) | 134 | int clk_enable(struct clk *clk) |
140 | { | 135 | { |
141 | if (IS_ERR(clk)) | 136 | if (IS_ERR(clk) || clk == NULL) |
142 | return -EINVAL; | 137 | return -EINVAL; |
143 | 138 | ||
144 | return (clk->enable)(clk, 1); | 139 | clk_enable(clk->parent); |
140 | |||
141 | mutex_lock(&clocks_mutex); | ||
142 | |||
143 | if ((clk->usage++) == 0) | ||
144 | (clk->enable)(clk, 1); | ||
145 | |||
146 | mutex_unlock(&clocks_mutex); | ||
147 | return 0; | ||
145 | } | 148 | } |
146 | 149 | ||
147 | void clk_disable(struct clk *clk) | 150 | void clk_disable(struct clk *clk) |
148 | { | 151 | { |
149 | if (!IS_ERR(clk)) | 152 | if (IS_ERR(clk) || clk == NULL) |
153 | return; | ||
154 | |||
155 | mutex_lock(&clocks_mutex); | ||
156 | |||
157 | if ((--clk->usage) == 0) | ||
150 | (clk->enable)(clk, 0); | 158 | (clk->enable)(clk, 0); |
159 | |||
160 | mutex_unlock(&clocks_mutex); | ||
161 | clk_disable(clk->parent); | ||
151 | } | 162 | } |
152 | 163 | ||
153 | 164 | ||
@@ -361,6 +372,14 @@ int s3c24xx_register_clock(struct clk *clk) | |||
361 | if (clk->enable == NULL) | 372 | if (clk->enable == NULL) |
362 | clk->enable = clk_null_enable; | 373 | clk->enable = clk_null_enable; |
363 | 374 | ||
375 | /* if this is a standard clock, set the usage state */ | ||
376 | |||
377 | if (clk->ctrlbit) { | ||
378 | unsigned long clkcon = __raw_readl(S3C2410_CLKCON); | ||
379 | |||
380 | clk->usage = (clkcon & clk->ctrlbit) ? 1 : 0; | ||
381 | } | ||
382 | |||
364 | /* add to the list of available clocks */ | 383 | /* add to the list of available clocks */ |
365 | 384 | ||
366 | mutex_lock(&clocks_mutex); | 385 | mutex_lock(&clocks_mutex); |
@@ -402,6 +421,8 @@ int __init s3c24xx_setup_clocks(unsigned long xtal, | |||
402 | * the LCD clock if it is not needed. | 421 | * the LCD clock if it is not needed. |
403 | */ | 422 | */ |
404 | 423 | ||
424 | mutex_lock(&clocks_mutex); | ||
425 | |||
405 | s3c24xx_clk_enable(S3C2410_CLKCON_NAND, 0); | 426 | s3c24xx_clk_enable(S3C2410_CLKCON_NAND, 0); |
406 | s3c24xx_clk_enable(S3C2410_CLKCON_USBH, 0); | 427 | s3c24xx_clk_enable(S3C2410_CLKCON_USBH, 0); |
407 | s3c24xx_clk_enable(S3C2410_CLKCON_USBD, 0); | 428 | s3c24xx_clk_enable(S3C2410_CLKCON_USBD, 0); |
@@ -409,6 +430,8 @@ int __init s3c24xx_setup_clocks(unsigned long xtal, | |||
409 | s3c24xx_clk_enable(S3C2410_CLKCON_IIC, 0); | 430 | s3c24xx_clk_enable(S3C2410_CLKCON_IIC, 0); |
410 | s3c24xx_clk_enable(S3C2410_CLKCON_SPI, 0); | 431 | s3c24xx_clk_enable(S3C2410_CLKCON_SPI, 0); |
411 | 432 | ||
433 | mutex_unlock(&clocks_mutex); | ||
434 | |||
412 | /* assume uart clocks are correctly setup */ | 435 | /* assume uart clocks are correctly setup */ |
413 | 436 | ||
414 | /* register our clocks */ | 437 | /* register our clocks */ |
diff --git a/arch/arm/mach-s3c2410/clock.h b/arch/arm/mach-s3c2410/clock.h index 177d5c8decf7..eb5c95d1e7f2 100644 --- a/arch/arm/mach-s3c2410/clock.h +++ b/arch/arm/mach-s3c2410/clock.h | |||
@@ -16,6 +16,7 @@ struct clk { | |||
16 | struct clk *parent; | 16 | struct clk *parent; |
17 | const char *name; | 17 | const char *name; |
18 | int id; | 18 | int id; |
19 | int usage; | ||
19 | unsigned long rate; | 20 | unsigned long rate; |
20 | unsigned long ctrlbit; | 21 | unsigned long ctrlbit; |
21 | int (*enable)(struct clk *, int enable); | 22 | int (*enable)(struct clk *, int enable); |
diff --git a/arch/arm/mach-s3c2410/devs.c b/arch/arm/mach-s3c2410/devs.c index b8d994a24d1c..ca09ba516e4c 100644 --- a/arch/arm/mach-s3c2410/devs.c +++ b/arch/arm/mach-s3c2410/devs.c | |||
@@ -275,6 +275,11 @@ static struct resource s3c_adc_resource[] = { | |||
275 | }, | 275 | }, |
276 | [1] = { | 276 | [1] = { |
277 | .start = IRQ_TC, | 277 | .start = IRQ_TC, |
278 | .end = IRQ_TC, | ||
279 | .flags = IORESOURCE_IRQ, | ||
280 | }, | ||
281 | [2] = { | ||
282 | .start = IRQ_ADC, | ||
278 | .end = IRQ_ADC, | 283 | .end = IRQ_ADC, |
279 | .flags = IORESOURCE_IRQ, | 284 | .flags = IORESOURCE_IRQ, |
280 | } | 285 | } |
@@ -329,11 +334,17 @@ static struct resource s3c_spi0_resource[] = { | |||
329 | 334 | ||
330 | }; | 335 | }; |
331 | 336 | ||
337 | static u64 s3c_device_spi0_dmamask = 0xffffffffUL; | ||
338 | |||
332 | struct platform_device s3c_device_spi0 = { | 339 | struct platform_device s3c_device_spi0 = { |
333 | .name = "s3c2410-spi", | 340 | .name = "s3c2410-spi", |
334 | .id = 0, | 341 | .id = 0, |
335 | .num_resources = ARRAY_SIZE(s3c_spi0_resource), | 342 | .num_resources = ARRAY_SIZE(s3c_spi0_resource), |
336 | .resource = s3c_spi0_resource, | 343 | .resource = s3c_spi0_resource, |
344 | .dev = { | ||
345 | .dma_mask = &s3c_device_spi0_dmamask, | ||
346 | .coherent_dma_mask = 0xffffffffUL | ||
347 | } | ||
337 | }; | 348 | }; |
338 | 349 | ||
339 | EXPORT_SYMBOL(s3c_device_spi0); | 350 | EXPORT_SYMBOL(s3c_device_spi0); |
@@ -354,11 +365,17 @@ static struct resource s3c_spi1_resource[] = { | |||
354 | 365 | ||
355 | }; | 366 | }; |
356 | 367 | ||
368 | static u64 s3c_device_spi1_dmamask = 0xffffffffUL; | ||
369 | |||
357 | struct platform_device s3c_device_spi1 = { | 370 | struct platform_device s3c_device_spi1 = { |
358 | .name = "s3c2410-spi", | 371 | .name = "s3c2410-spi", |
359 | .id = 1, | 372 | .id = 1, |
360 | .num_resources = ARRAY_SIZE(s3c_spi1_resource), | 373 | .num_resources = ARRAY_SIZE(s3c_spi1_resource), |
361 | .resource = s3c_spi1_resource, | 374 | .resource = s3c_spi1_resource, |
375 | .dev = { | ||
376 | .dma_mask = &s3c_device_spi1_dmamask, | ||
377 | .coherent_dma_mask = 0xffffffffUL | ||
378 | } | ||
362 | }; | 379 | }; |
363 | 380 | ||
364 | EXPORT_SYMBOL(s3c_device_spi1); | 381 | EXPORT_SYMBOL(s3c_device_spi1); |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 1c316f14ed94..646a3a5d33a5 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -46,10 +46,11 @@ | |||
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/mach-types.h> | 47 | #include <asm/mach-types.h> |
48 | 48 | ||
49 | //#include <asm/debug-ll.h> | 49 | |
50 | #include <asm/arch/regs-serial.h> | 50 | #include <asm/arch/regs-serial.h> |
51 | #include <asm/arch/regs-lcd.h> | 51 | #include <asm/arch/regs-lcd.h> |
52 | 52 | ||
53 | #include <asm/arch/h1940-latch.h> | ||
53 | #include <asm/arch/fb.h> | 54 | #include <asm/arch/fb.h> |
54 | 55 | ||
55 | #include <linux/serial_core.h> | 56 | #include <linux/serial_core.h> |
@@ -59,7 +60,12 @@ | |||
59 | #include "cpu.h" | 60 | #include "cpu.h" |
60 | 61 | ||
61 | static struct map_desc h1940_iodesc[] __initdata = { | 62 | static struct map_desc h1940_iodesc[] __initdata = { |
62 | /* nothing here yet */ | 63 | [0] = { |
64 | .virtual = (unsigned long)H1940_LATCH, | ||
65 | .pfn = __phys_to_pfn(H1940_PA_LATCH), | ||
66 | .length = SZ_16K, | ||
67 | .type = MT_DEVICE | ||
68 | }, | ||
63 | }; | 69 | }; |
64 | 70 | ||
65 | #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK | 71 | #define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK |
@@ -92,6 +98,25 @@ static struct s3c2410_uartcfg h1940_uartcfgs[] = { | |||
92 | } | 98 | } |
93 | }; | 99 | }; |
94 | 100 | ||
101 | /* Board control latch control */ | ||
102 | |||
103 | static unsigned int latch_state = H1940_LATCH_DEFAULT; | ||
104 | |||
105 | void h1940_latch_control(unsigned int clear, unsigned int set) | ||
106 | { | ||
107 | unsigned long flags; | ||
108 | |||
109 | local_irq_save(flags); | ||
110 | |||
111 | latch_state &= ~clear; | ||
112 | latch_state |= set; | ||
113 | |||
114 | __raw_writel(latch_state, H1940_LATCH); | ||
115 | |||
116 | local_irq_restore(flags); | ||
117 | } | ||
118 | |||
119 | EXPORT_SYMBOL_GPL(h1940_latch_control); | ||
95 | 120 | ||
96 | 121 | ||
97 | /** | 122 | /** |
diff --git a/arch/arm/mach-s3c2410/s3c2400.h b/arch/arm/mach-s3c2410/s3c2400.h new file mode 100644 index 000000000000..8b2394e1ed40 --- /dev/null +++ b/arch/arm/mach-s3c2410/s3c2400.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* arch/arm/mach-s3c2410/s3c2400.h | ||
2 | * | ||
3 | * Copyright (c) 2004 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * Header file for S3C2400 cpu support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | * | ||
12 | * Modifications: | ||
13 | * 09-Fev-2006 LCVR First version, based on s3c2410.h | ||
14 | */ | ||
15 | |||
16 | #ifdef CONFIG_CPU_S3C2400 | ||
17 | |||
18 | extern int s3c2400_init(void); | ||
19 | |||
20 | extern void s3c2400_map_io(struct map_desc *mach_desc, int size); | ||
21 | |||
22 | extern void s3c2400_init_uarts(struct s3c2410_uartcfg *cfg, int no); | ||
23 | |||
24 | extern void s3c2400_init_clocks(int xtal); | ||
25 | |||
26 | #else | ||
27 | #define s3c2400_init_clocks NULL | ||
28 | #define s3c2400_init_uarts NULL | ||
29 | #define s3c2400_map_io NULL | ||
30 | #define s3c2400_init NULL | ||
31 | #endif | ||
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c index b80d57d51699..722fbabc9cfb 100644 --- a/arch/arm/mach-versatile/pci.c +++ b/arch/arm/mach-versatile/pci.c | |||
@@ -240,6 +240,14 @@ int __init pci_versatile_setup(int nr, struct pci_sys_data *sys) | |||
240 | int i; | 240 | int i; |
241 | int myslot = -1; | 241 | int myslot = -1; |
242 | unsigned long val; | 242 | unsigned long val; |
243 | void __iomem *local_pci_cfg_base; | ||
244 | |||
245 | val = __raw_readl(SYS_PCICTL); | ||
246 | if (!(val & 1)) { | ||
247 | printk("Not plugged into PCI backplane!\n"); | ||
248 | ret = -EIO; | ||
249 | goto out; | ||
250 | } | ||
243 | 251 | ||
244 | if (nr == 0) { | 252 | if (nr == 0) { |
245 | sys->mem_offset = 0; | 253 | sys->mem_offset = 0; |
@@ -253,48 +261,45 @@ int __init pci_versatile_setup(int nr, struct pci_sys_data *sys) | |||
253 | goto out; | 261 | goto out; |
254 | } | 262 | } |
255 | 263 | ||
256 | __raw_writel(VERSATILE_PCI_MEM_BASE0 >> 28,PCI_IMAP0); | ||
257 | __raw_writel(VERSATILE_PCI_MEM_BASE1 >> 28,PCI_IMAP1); | ||
258 | __raw_writel(VERSATILE_PCI_MEM_BASE2 >> 28,PCI_IMAP2); | ||
259 | |||
260 | __raw_writel(1, SYS_PCICTL); | ||
261 | |||
262 | val = __raw_readl(SYS_PCICTL); | ||
263 | if (!(val & 1)) { | ||
264 | printk("Not plugged into PCI backplane!\n"); | ||
265 | ret = -EIO; | ||
266 | goto out; | ||
267 | } | ||
268 | |||
269 | /* | 264 | /* |
270 | * We need to discover the PCI core first to configure itself | 265 | * We need to discover the PCI core first to configure itself |
271 | * before the main PCI probing is performed | 266 | * before the main PCI probing is performed |
272 | */ | 267 | */ |
273 | for (i=0; i<32; i++) { | 268 | for (i=0; i<32; i++) |
274 | if ((__raw_readl(VERSATILE_PCI_VIRT_BASE+(i<<11)+DEVICE_ID_OFFSET) == VP_PCI_DEVICE_ID) && | 269 | if ((__raw_readl(VERSATILE_PCI_VIRT_BASE+(i<<11)+DEVICE_ID_OFFSET) == VP_PCI_DEVICE_ID) && |
275 | (__raw_readl(VERSATILE_PCI_VIRT_BASE+(i<<11)+CLASS_ID_OFFSET) == VP_PCI_CLASS_ID)) { | 270 | (__raw_readl(VERSATILE_PCI_VIRT_BASE+(i<<11)+CLASS_ID_OFFSET) == VP_PCI_CLASS_ID)) { |
276 | myslot = i; | 271 | myslot = i; |
277 | |||
278 | __raw_writel(myslot, PCI_SELFID); | ||
279 | val = __raw_readl(VERSATILE_PCI_CFG_VIRT_BASE+(myslot<<11)+CSR_OFFSET); | ||
280 | val |= (1<<2); | ||
281 | __raw_writel(val, VERSATILE_PCI_CFG_VIRT_BASE+(myslot<<11)+CSR_OFFSET); | ||
282 | break; | 272 | break; |
283 | } | 273 | } |
284 | } | ||
285 | 274 | ||
286 | if (myslot == -1) { | 275 | if (myslot == -1) { |
287 | printk("Cannot find PCI core!\n"); | 276 | printk("Cannot find PCI core!\n"); |
288 | ret = -EIO; | 277 | ret = -EIO; |
289 | } else { | 278 | goto out; |
290 | printk("PCI core found (slot %d)\n",myslot); | ||
291 | /* Do not to map Versatile FPGA PCI device | ||
292 | into memory space as we are short of | ||
293 | mappable memory */ | ||
294 | pci_slot_ignore |= (1 << myslot); | ||
295 | ret = 1; | ||
296 | } | 279 | } |
297 | 280 | ||
281 | printk("PCI core found (slot %d)\n",myslot); | ||
282 | |||
283 | __raw_writel(myslot, PCI_SELFID); | ||
284 | local_pci_cfg_base = (void *) VERSATILE_PCI_CFG_VIRT_BASE + (myslot << 11); | ||
285 | |||
286 | val = __raw_readl(local_pci_cfg_base + CSR_OFFSET); | ||
287 | val |= PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE; | ||
288 | __raw_writel(val, local_pci_cfg_base + CSR_OFFSET); | ||
289 | |||
290 | /* | ||
291 | * Configure the PCI inbound memory windows to be 1:1 mapped to SDRAM | ||
292 | */ | ||
293 | __raw_writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_0); | ||
294 | __raw_writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_1); | ||
295 | __raw_writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_2); | ||
296 | |||
297 | /* | ||
298 | * Do not to map Versatile FPGA PCI device into memory space | ||
299 | */ | ||
300 | pci_slot_ignore |= (1 << myslot); | ||
301 | ret = 1; | ||
302 | |||
298 | out: | 303 | out: |
299 | return ret; | 304 | return ret; |
300 | } | 305 | } |
@@ -305,18 +310,18 @@ struct pci_bus *pci_versatile_scan_bus(int nr, struct pci_sys_data *sys) | |||
305 | return pci_scan_bus(sys->busnr, &pci_versatile_ops, sys); | 310 | return pci_scan_bus(sys->busnr, &pci_versatile_ops, sys); |
306 | } | 311 | } |
307 | 312 | ||
308 | /* | ||
309 | * V3_LB_BASE? - local bus address | ||
310 | * V3_LB_MAP? - pci bus address | ||
311 | */ | ||
312 | void __init pci_versatile_preinit(void) | 313 | void __init pci_versatile_preinit(void) |
313 | { | 314 | { |
314 | } | 315 | __raw_writel(VERSATILE_PCI_MEM_BASE0 >> 28, PCI_IMAP0); |
316 | __raw_writel(VERSATILE_PCI_MEM_BASE1 >> 28, PCI_IMAP1); | ||
317 | __raw_writel(VERSATILE_PCI_MEM_BASE2 >> 28, PCI_IMAP2); | ||
315 | 318 | ||
316 | void __init pci_versatile_postinit(void) | 319 | __raw_writel(PHYS_OFFSET >> 28, PCI_SMAP0); |
317 | { | 320 | __raw_writel(PHYS_OFFSET >> 28, PCI_SMAP1); |
318 | } | 321 | __raw_writel(PHYS_OFFSET >> 28, PCI_SMAP2); |
319 | 322 | ||
323 | __raw_writel(1, SYS_PCICTL); | ||
324 | } | ||
320 | 325 | ||
321 | /* | 326 | /* |
322 | * map the specified device/slot/pin to an IRQ. Different backplanes may need to modify this. | 327 | * map the specified device/slot/pin to an IRQ. Different backplanes may need to modify this. |
@@ -326,16 +331,15 @@ static int __init versatile_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | |||
326 | int irq; | 331 | int irq; |
327 | int devslot = PCI_SLOT(dev->devfn); | 332 | int devslot = PCI_SLOT(dev->devfn); |
328 | 333 | ||
329 | /* slot, pin, irq | 334 | /* slot, pin, irq |
330 | 24 1 27 | 335 | * 24 1 27 |
331 | 25 1 28 untested | 336 | * 25 1 28 |
332 | 26 1 29 | 337 | * 26 1 29 |
333 | 27 1 30 untested | 338 | * 27 1 30 |
334 | */ | 339 | */ |
335 | 340 | irq = 27 + ((slot + pin - 1) & 3); | |
336 | irq = 27 + ((slot + pin + 2) % 3); /* Fudged */ | ||
337 | 341 | ||
338 | printk("map irq: slot %d, pin %d, devslot %d, irq: %d\n",slot,pin,devslot,irq); | 342 | printk("PCI map irq: slot %d, pin %d, devslot %d, irq: %d\n",slot,pin,devslot,irq); |
339 | 343 | ||
340 | return irq; | 344 | return irq; |
341 | } | 345 | } |
@@ -347,7 +351,6 @@ static struct hw_pci versatile_pci __initdata = { | |||
347 | .setup = pci_versatile_setup, | 351 | .setup = pci_versatile_setup, |
348 | .scan = pci_versatile_scan_bus, | 352 | .scan = pci_versatile_scan_bus, |
349 | .preinit = pci_versatile_preinit, | 353 | .preinit = pci_versatile_preinit, |
350 | .postinit = pci_versatile_postinit, | ||
351 | }; | 354 | }; |
352 | 355 | ||
353 | static int __init versatile_pci_init(void) | 356 | static int __init versatile_pci_init(void) |
diff --git a/arch/arm/mm/abort-ev6.S b/arch/arm/mm/abort-ev6.S index dbd346033122..8a7f65ba14b7 100644 --- a/arch/arm/mm/abort-ev6.S +++ b/arch/arm/mm/abort-ev6.S | |||
@@ -20,7 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | .align 5 | 21 | .align 5 |
22 | ENTRY(v6_early_abort) | 22 | ENTRY(v6_early_abort) |
23 | #ifdef CONFIG_CPU_MPCORE | 23 | #ifdef CONFIG_CPU_32v6K |
24 | clrex | 24 | clrex |
25 | #else | 25 | #else |
26 | strex r0, r1, [sp] @ Clear the exclusive monitor | 26 | strex r0, r1, [sp] @ Clear the exclusive monitor |
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S index d921c1024ae0..2c6c2a7c05a0 100644 --- a/arch/arm/mm/cache-v6.S +++ b/arch/arm/mm/cache-v6.S | |||
@@ -96,15 +96,16 @@ ENTRY(v6_coherent_user_range) | |||
96 | #ifdef HARVARD_CACHE | 96 | #ifdef HARVARD_CACHE |
97 | bic r0, r0, #CACHE_LINE_SIZE - 1 | 97 | bic r0, r0, #CACHE_LINE_SIZE - 1 |
98 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D line | 98 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D line |
99 | mcr p15, 0, r0, c7, c5, 1 @ invalidate I line | ||
100 | add r0, r0, #CACHE_LINE_SIZE | 99 | add r0, r0, #CACHE_LINE_SIZE |
101 | cmp r0, r1 | 100 | cmp r0, r1 |
102 | blo 1b | 101 | blo 1b |
103 | #endif | 102 | #endif |
104 | mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB | ||
105 | #ifdef HARVARD_CACHE | ||
106 | mov r0, #0 | 103 | mov r0, #0 |
104 | #ifdef HARVARD_CACHE | ||
107 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer | 105 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer |
106 | mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate | ||
107 | #else | ||
108 | mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB | ||
108 | #endif | 109 | #endif |
109 | mov pc, lr | 110 | mov pc, lr |
110 | 111 | ||
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 330695b6b19d..b103e56806bd 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -24,14 +24,16 @@ | |||
24 | static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) | 24 | static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr) |
25 | { | 25 | { |
26 | unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); | 26 | unsigned long to = ALIAS_FLUSH_START + (CACHE_COLOUR(vaddr) << PAGE_SHIFT); |
27 | const int zero = 0; | ||
27 | 28 | ||
28 | set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL)); | 29 | set_pte(TOP_PTE(to), pfn_pte(pfn, PAGE_KERNEL)); |
29 | flush_tlb_kernel_page(to); | 30 | flush_tlb_kernel_page(to); |
30 | 31 | ||
31 | asm( "mcrr p15, 0, %1, %0, c14\n" | 32 | asm( "mcrr p15, 0, %1, %0, c14\n" |
32 | " mcrr p15, 0, %1, %0, c5\n" | 33 | " mcr p15, 0, %2, c7, c10, 4\n" |
34 | " mcr p15, 0, %2, c7, c5, 0\n" | ||
33 | : | 35 | : |
34 | : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES) | 36 | : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero) |
35 | : "cc"); | 37 | : "cc"); |
36 | } | 38 | } |
37 | 39 | ||
diff --git a/arch/arm/mm/tlb-v6.S b/arch/arm/mm/tlb-v6.S index 6f76b89ef46e..fd6adde39091 100644 --- a/arch/arm/mm/tlb-v6.S +++ b/arch/arm/mm/tlb-v6.S | |||
@@ -80,6 +80,7 @@ ENTRY(v6wbi_flush_kern_tlb_range) | |||
80 | add r0, r0, #PAGE_SZ | 80 | add r0, r0, #PAGE_SZ |
81 | cmp r0, r1 | 81 | cmp r0, r1 |
82 | blo 1b | 82 | blo 1b |
83 | mcr p15, 0, r2, c7, c10, 4 @ data synchronization barrier | ||
83 | mov pc, lr | 84 | mov pc, lr |
84 | 85 | ||
85 | .section ".text.init", #alloc, #execinstr | 86 | .section ".text.init", #alloc, #execinstr |
diff --git a/arch/arm/plat-omap/pm.c b/arch/arm/plat-omap/pm.c index 1a24e2c10714..093efd786f21 100644 --- a/arch/arm/plat-omap/pm.c +++ b/arch/arm/plat-omap/pm.c | |||
@@ -38,7 +38,6 @@ | |||
38 | #include <linux/pm.h> | 38 | #include <linux/pm.h> |
39 | #include <linux/sched.h> | 39 | #include <linux/sched.h> |
40 | #include <linux/proc_fs.h> | 40 | #include <linux/proc_fs.h> |
41 | #include <linux/pm.h> | ||
42 | #include <linux/interrupt.h> | 41 | #include <linux/interrupt.h> |
43 | 42 | ||
44 | #include <asm/io.h> | 43 | #include <asm/io.h> |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 792f66375830..ee82763b02b8 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | 18 | ||
19 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
20 | #include <asm/tlb.h> | ||
20 | #include <asm/io.h> | 21 | #include <asm/io.h> |
21 | #include <asm/cacheflush.h> | 22 | #include <asm/cacheflush.h> |
22 | 23 | ||
@@ -96,6 +97,14 @@ void __init omap_map_sram(void) | |||
96 | omap_sram_io_desc[0].length); | 97 | omap_sram_io_desc[0].length); |
97 | 98 | ||
98 | /* | 99 | /* |
100 | * Normally devicemaps_init() would flush caches and tlb after | ||
101 | * mdesc->map_io(), but since we're called from map_io(), we | ||
102 | * must do it here. | ||
103 | */ | ||
104 | local_flush_tlb_all(); | ||
105 | flush_cache_all(); | ||
106 | |||
107 | /* | ||
99 | * Looks like we need to preserve some bootloader code at the | 108 | * Looks like we need to preserve some bootloader code at the |
100 | * beginning of SRAM for jumping to flash for reboot to work... | 109 | * beginning of SRAM for jumping to flash for reboot to work... |
101 | */ | 110 | */ |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index d0f9bb5e9023..8ab5300dcb94 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
@@ -12,7 +12,7 @@ | |||
12 | # | 12 | # |
13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new |
14 | # | 14 | # |
15 | # Last update: Mon Jan 9 12:56:42 2006 | 15 | # Last update: Mon Feb 20 10:18:02 2006 |
16 | # | 16 | # |
17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
18 | # | 18 | # |
@@ -904,7 +904,7 @@ wg302v2 MACH_WG302V2 WG302V2 890 | |||
904 | eb42x MACH_EB42X EB42X 891 | 904 | eb42x MACH_EB42X EB42X 891 |
905 | iq331es MACH_IQ331ES IQ331ES 892 | 905 | iq331es MACH_IQ331ES IQ331ES 892 |
906 | cosydsp MACH_COSYDSP COSYDSP 893 | 906 | cosydsp MACH_COSYDSP COSYDSP 893 |
907 | uplat7d MACH_UPLAT7D UPLAT7D 894 | 907 | uplat7d_proto MACH_UPLAT7D UPLAT7D 894 |
908 | ptdavinci MACH_PTDAVINCI PTDAVINCI 895 | 908 | ptdavinci MACH_PTDAVINCI PTDAVINCI 895 |
909 | mbus MACH_MBUS MBUS 896 | 909 | mbus MACH_MBUS MBUS 896 |
910 | nadia2vb MACH_NADIA2VB NADIA2VB 897 | 910 | nadia2vb MACH_NADIA2VB NADIA2VB 897 |
@@ -938,3 +938,34 @@ auckland MACH_AUCKLAND AUCKLAND 924 | |||
938 | ak3220m MACH_AK3320M AK3320M 925 | 938 | ak3220m MACH_AK3320M AK3320M 925 |
939 | duramax MACH_DURAMAX DURAMAX 926 | 939 | duramax MACH_DURAMAX DURAMAX 926 |
940 | n35 MACH_N35 N35 927 | 940 | n35 MACH_N35 N35 927 |
941 | pronghorn MACH_PRONGHORN PRONGHORN 928 | ||
942 | fundy MACH_FUNDY FUNDY 929 | ||
943 | logicpd_pxa270 MACH_LOGICPD_PXA270 LOGICPD_PXA270 930 | ||
944 | cpu777 MACH_CPU777 CPU777 931 | ||
945 | simicon9201 MACH_SIMICON9201 SIMICON9201 932 | ||
946 | leap2_hpm MACH_LEAP2_HPM LEAP2_HPM 933 | ||
947 | cm922txa10 MACH_CM922TXA10 CM922TXA10 934 | ||
948 | sandgate MACH_PXA PXA 935 | ||
949 | sandgate2 MACH_SANDGATE2 SANDGATE2 936 | ||
950 | sandgate2g MACH_SANDGATE2G SANDGATE2G 937 | ||
951 | sandgate2p MACH_SANDGATE2P SANDGATE2P 938 | ||
952 | fred_jack MACH_FRED_JACK FRED_JACK 939 | ||
953 | ttg_color1 MACH_TTG_COLOR1 TTG_COLOR1 940 | ||
954 | nxeb500hmi MACH_NXEB500HMI NXEB500HMI 941 | ||
955 | netdcu8 MACH_NETDCU8 NETDCU8 942 | ||
956 | ml675050_cpu_boa MACH_ML675050_CPU_BOA ML675050_CPU_BOA 943 | ||
957 | ng_fvx538 MACH_NG_FVX538 NG_FVX538 944 | ||
958 | ng_fvs338 MACH_NG_FVS338 NG_FVS338 945 | ||
959 | pnx4103 MACH_PNX4103 PNX4103 946 | ||
960 | hesdb MACH_HESDB HESDB 947 | ||
961 | xsilo MACH_XSILO XSILO 948 | ||
962 | espresso MACH_ESPRESSO ESPRESSO 949 | ||
963 | emlc MACH_EMLC EMLC 950 | ||
964 | sisteron MACH_SISTERON SISTERON 951 | ||
965 | rx1950 MACH_RX1950 RX1950 952 | ||
966 | tsc_venus MACH_TSC_VENUS TSC_VENUS 953 | ||
967 | ds101j MACH_DS101J DS101J 954 | ||
968 | mxc300_30ads MACH_MXC30030ADS MXC30030ADS 955 | ||
969 | fujitsu_wimaxsoc MACH_FUJITSU_WIMAXSOC FUJITSU_WIMAXSOC 956 | ||
970 | dualpcmodem MACH_DUALPCMODEM DUALPCMODEM 957 | ||
971 | gesbc9312 MACH_GESBC9312 GESBC9312 958 | ||
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index 60a617aff8ba..e08383712370 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -25,6 +25,10 @@ config GENERIC_HARDIRQS | |||
25 | bool | 25 | bool |
26 | default n | 26 | default n |
27 | 27 | ||
28 | config TIME_LOW_RES | ||
29 | bool | ||
30 | default y | ||
31 | |||
28 | mainmenu "Fujitsu FR-V Kernel Configuration" | 32 | mainmenu "Fujitsu FR-V Kernel Configuration" |
29 | 33 | ||
30 | source "init/Kconfig" | 34 | source "init/Kconfig" |
diff --git a/arch/frv/Makefile b/arch/frv/Makefile index 90c0fb8d9dc3..d163747d17c0 100644 --- a/arch/frv/Makefile +++ b/arch/frv/Makefile | |||
@@ -81,7 +81,7 @@ endif | |||
81 | # - reserve CC3 for use with atomic ops | 81 | # - reserve CC3 for use with atomic ops |
82 | # - all the extra registers are dealt with only at context switch time | 82 | # - all the extra registers are dealt with only at context switch time |
83 | CFLAGS += -mno-fdpic -mgpr-32 -msoft-float -mno-media | 83 | CFLAGS += -mno-fdpic -mgpr-32 -msoft-float -mno-media |
84 | CFLAGS += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 | 84 | CFLAGS += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 -ffixed-icc2 |
85 | AFLAGS += -mno-fdpic | 85 | AFLAGS += -mno-fdpic |
86 | ASFLAGS += -mno-fdpic | 86 | ASFLAGS += -mno-fdpic |
87 | 87 | ||
diff --git a/arch/frv/kernel/break.S b/arch/frv/kernel/break.S index 33233dc23e29..687c48d62dde 100644 --- a/arch/frv/kernel/break.S +++ b/arch/frv/kernel/break.S | |||
@@ -200,12 +200,20 @@ __break_step: | |||
200 | movsg bpcsr,gr2 | 200 | movsg bpcsr,gr2 |
201 | sethi.p %hi(__entry_kernel_external_interrupt),gr3 | 201 | sethi.p %hi(__entry_kernel_external_interrupt),gr3 |
202 | setlo %lo(__entry_kernel_external_interrupt),gr3 | 202 | setlo %lo(__entry_kernel_external_interrupt),gr3 |
203 | subcc gr2,gr3,gr0,icc0 | 203 | subcc.p gr2,gr3,gr0,icc0 |
204 | sethi %hi(__entry_uspace_external_interrupt),gr3 | ||
205 | setlo.p %lo(__entry_uspace_external_interrupt),gr3 | ||
204 | beq icc0,#2,__break_step_kernel_external_interrupt | 206 | beq icc0,#2,__break_step_kernel_external_interrupt |
205 | sethi.p %hi(__entry_uspace_external_interrupt),gr3 | 207 | subcc.p gr2,gr3,gr0,icc0 |
206 | setlo %lo(__entry_uspace_external_interrupt),gr3 | 208 | sethi %hi(__entry_kernel_external_interrupt_virtually_disabled),gr3 |
207 | subcc gr2,gr3,gr0,icc0 | 209 | setlo.p %lo(__entry_kernel_external_interrupt_virtually_disabled),gr3 |
208 | beq icc0,#2,__break_step_uspace_external_interrupt | 210 | beq icc0,#2,__break_step_uspace_external_interrupt |
211 | subcc.p gr2,gr3,gr0,icc0 | ||
212 | sethi %hi(__entry_kernel_external_interrupt_virtual_reenable),gr3 | ||
213 | setlo.p %lo(__entry_kernel_external_interrupt_virtual_reenable),gr3 | ||
214 | beq icc0,#2,__break_step_kernel_external_interrupt_virtually_disabled | ||
215 | subcc gr2,gr3,gr0,icc0 | ||
216 | beq icc0,#2,__break_step_kernel_external_interrupt_virtual_reenable | ||
209 | 217 | ||
210 | LEDS 0x2007,gr2 | 218 | LEDS 0x2007,gr2 |
211 | 219 | ||
@@ -254,6 +262,9 @@ __break_step_kernel_softprog_interrupt: | |||
254 | # step through an external interrupt from kernel mode | 262 | # step through an external interrupt from kernel mode |
255 | .globl __break_step_kernel_external_interrupt | 263 | .globl __break_step_kernel_external_interrupt |
256 | __break_step_kernel_external_interrupt: | 264 | __break_step_kernel_external_interrupt: |
265 | # deal with virtual interrupt disablement | ||
266 | beq icc2,#0,__break_step_kernel_external_interrupt_virtually_disabled | ||
267 | |||
257 | sethi.p %hi(__entry_kernel_external_interrupt_reentry),gr3 | 268 | sethi.p %hi(__entry_kernel_external_interrupt_reentry),gr3 |
258 | setlo %lo(__entry_kernel_external_interrupt_reentry),gr3 | 269 | setlo %lo(__entry_kernel_external_interrupt_reentry),gr3 |
259 | 270 | ||
@@ -294,6 +305,64 @@ __break_return_as_kernel_prologue: | |||
294 | #endif | 305 | #endif |
295 | rett #1 | 306 | rett #1 |
296 | 307 | ||
308 | # we single-stepped into an interrupt handler whilst interrupts were merely virtually disabled | ||
309 | # need to really disable interrupts, set flag, fix up and return | ||
310 | __break_step_kernel_external_interrupt_virtually_disabled: | ||
311 | movsg psr,gr2 | ||
312 | andi gr2,#~PSR_PIL,gr2 | ||
313 | ori gr2,#PSR_PIL_14,gr2 /* debugging interrupts only */ | ||
314 | movgs gr2,psr | ||
315 | |||
316 | ldi @(gr31,#REG_CCR),gr3 | ||
317 | movgs gr3,ccr | ||
318 | subcc.p gr0,gr0,gr0,icc2 /* leave Z set, clear C */ | ||
319 | |||
320 | # exceptions must've been enabled and we must've been in supervisor mode | ||
321 | setlos BPSR_BET|BPSR_BS,gr3 | ||
322 | movgs gr3,bpsr | ||
323 | |||
324 | # return to where the interrupt happened | ||
325 | movsg pcsr,gr2 | ||
326 | movgs gr2,bpcsr | ||
327 | |||
328 | lddi.p @(gr31,#REG_GR(2)),gr2 | ||
329 | |||
330 | xor gr31,gr31,gr31 | ||
331 | movgs gr0,brr | ||
332 | #ifdef CONFIG_MMU | ||
333 | movsg scr3,gr31 | ||
334 | #endif | ||
335 | rett #1 | ||
336 | |||
337 | # we stepped through into the virtual interrupt reenablement trap | ||
338 | # | ||
339 | # we also want to single step anyway, but after fixing up so that we get an event on the | ||
340 | # instruction after the broken-into exception returns | ||
341 | .globl __break_step_kernel_external_interrupt_virtual_reenable | ||
342 | __break_step_kernel_external_interrupt_virtual_reenable: | ||
343 | movsg psr,gr2 | ||
344 | andi gr2,#~PSR_PIL,gr2 | ||
345 | movgs gr2,psr | ||
346 | |||
347 | ldi @(gr31,#REG_CCR),gr3 | ||
348 | movgs gr3,ccr | ||
349 | subicc gr0,#1,gr0,icc2 /* clear Z, set C */ | ||
350 | |||
351 | # save the adjusted ICC2 | ||
352 | movsg ccr,gr3 | ||
353 | sti gr3,@(gr31,#REG_CCR) | ||
354 | |||
355 | # exceptions must've been enabled and we must've been in supervisor mode | ||
356 | setlos BPSR_BET|BPSR_BS,gr3 | ||
357 | movgs gr3,bpsr | ||
358 | |||
359 | # return to where the trap happened | ||
360 | movsg pcsr,gr2 | ||
361 | movgs gr2,bpcsr | ||
362 | |||
363 | # and then process the single step | ||
364 | bra __break_continue | ||
365 | |||
297 | # step through an internal exception from uspace mode | 366 | # step through an internal exception from uspace mode |
298 | .globl __break_step_uspace_softprog_interrupt | 367 | .globl __break_step_uspace_softprog_interrupt |
299 | __break_step_uspace_softprog_interrupt: | 368 | __break_step_uspace_softprog_interrupt: |
diff --git a/arch/frv/kernel/entry-table.S b/arch/frv/kernel/entry-table.S index 9b9243e2103c..81568acea9cd 100644 --- a/arch/frv/kernel/entry-table.S +++ b/arch/frv/kernel/entry-table.S | |||
@@ -116,6 +116,8 @@ __break_kerneltrap_fixup_table: | |||
116 | .long __break_step_uspace_external_interrupt | 116 | .long __break_step_uspace_external_interrupt |
117 | .section .trap.kernel | 117 | .section .trap.kernel |
118 | .org \tbr_tt | 118 | .org \tbr_tt |
119 | # deal with virtual interrupt disablement | ||
120 | beq icc2,#0,__entry_kernel_external_interrupt_virtually_disabled | ||
119 | bra __entry_kernel_external_interrupt | 121 | bra __entry_kernel_external_interrupt |
120 | .section .trap.fixup.kernel | 122 | .section .trap.fixup.kernel |
121 | .org \tbr_tt >> 2 | 123 | .org \tbr_tt >> 2 |
@@ -259,25 +261,52 @@ __trap_fixup_kernel_data_tlb_miss: | |||
259 | .org TBR_TT_TRAP0 | 261 | .org TBR_TT_TRAP0 |
260 | .rept 127 | 262 | .rept 127 |
261 | bra __entry_uspace_softprog_interrupt | 263 | bra __entry_uspace_softprog_interrupt |
262 | bra __break_step_uspace_softprog_interrupt | 264 | .long 0,0,0 |
263 | .long 0,0 | ||
264 | .endr | 265 | .endr |
265 | .org TBR_TT_BREAK | 266 | .org TBR_TT_BREAK |
266 | bra __entry_break | 267 | bra __entry_break |
267 | .long 0,0,0 | 268 | .long 0,0,0 |
268 | 269 | ||
270 | .section .trap.fixup.user | ||
271 | .org TBR_TT_TRAP0 >> 2 | ||
272 | .rept 127 | ||
273 | .long __break_step_uspace_softprog_interrupt | ||
274 | .endr | ||
275 | .org TBR_TT_BREAK >> 2 | ||
276 | .long 0 | ||
277 | |||
269 | # miscellaneous kernel mode entry points | 278 | # miscellaneous kernel mode entry points |
270 | .section .trap.kernel | 279 | .section .trap.kernel |
271 | .org TBR_TT_TRAP0 | 280 | .org TBR_TT_TRAP0 |
272 | .rept 127 | ||
273 | bra __entry_kernel_softprog_interrupt | 281 | bra __entry_kernel_softprog_interrupt |
274 | bra __break_step_kernel_softprog_interrupt | 282 | .org TBR_TT_TRAP1 |
275 | .long 0,0 | 283 | bra __entry_kernel_softprog_interrupt |
284 | |||
285 | # trap #2 in kernel - reenable interrupts | ||
286 | .org TBR_TT_TRAP2 | ||
287 | bra __entry_kernel_external_interrupt_virtual_reenable | ||
288 | |||
289 | # miscellaneous kernel traps | ||
290 | .org TBR_TT_TRAP3 | ||
291 | .rept 124 | ||
292 | bra __entry_kernel_softprog_interrupt | ||
293 | .long 0,0,0 | ||
276 | .endr | 294 | .endr |
277 | .org TBR_TT_BREAK | 295 | .org TBR_TT_BREAK |
278 | bra __entry_break | 296 | bra __entry_break |
279 | .long 0,0,0 | 297 | .long 0,0,0 |
280 | 298 | ||
299 | .section .trap.fixup.kernel | ||
300 | .org TBR_TT_TRAP0 >> 2 | ||
301 | .long __break_step_kernel_softprog_interrupt | ||
302 | .long __break_step_kernel_softprog_interrupt | ||
303 | .long __break_step_kernel_external_interrupt_virtual_reenable | ||
304 | .rept 124 | ||
305 | .long __break_step_kernel_softprog_interrupt | ||
306 | .endr | ||
307 | .org TBR_TT_BREAK >> 2 | ||
308 | .long 0 | ||
309 | |||
281 | # miscellaneous debug mode entry points | 310 | # miscellaneous debug mode entry points |
282 | .section .trap.break | 311 | .section .trap.break |
283 | .org TBR_TT_BREAK | 312 | .org TBR_TT_BREAK |
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S index 5f6548388b74..1d21c8d34d8a 100644 --- a/arch/frv/kernel/entry.S +++ b/arch/frv/kernel/entry.S | |||
@@ -141,7 +141,10 @@ __entry_uspace_external_interrupt_reentry: | |||
141 | 141 | ||
142 | movsg gner0,gr4 | 142 | movsg gner0,gr4 |
143 | movsg gner1,gr5 | 143 | movsg gner1,gr5 |
144 | stdi gr4,@(gr28,#REG_GNER0) | 144 | stdi.p gr4,@(gr28,#REG_GNER0) |
145 | |||
146 | # interrupts start off fully disabled in the interrupt handler | ||
147 | subcc gr0,gr0,gr0,icc2 /* set Z and clear C */ | ||
145 | 148 | ||
146 | # set up kernel global registers | 149 | # set up kernel global registers |
147 | sethi.p %hi(__kernel_current_task),gr5 | 150 | sethi.p %hi(__kernel_current_task),gr5 |
@@ -193,9 +196,8 @@ __entry_uspace_external_interrupt_reentry: | |||
193 | .type __entry_kernel_external_interrupt,@function | 196 | .type __entry_kernel_external_interrupt,@function |
194 | __entry_kernel_external_interrupt: | 197 | __entry_kernel_external_interrupt: |
195 | LEDS 0x6210 | 198 | LEDS 0x6210 |
196 | 199 | // sub sp,gr15,gr31 | |
197 | sub sp,gr15,gr31 | 200 | // LEDS32 |
198 | LEDS32 | ||
199 | 201 | ||
200 | # set up the stack pointer | 202 | # set up the stack pointer |
201 | or.p sp,gr0,gr30 | 203 | or.p sp,gr0,gr30 |
@@ -231,7 +233,10 @@ __entry_kernel_external_interrupt_reentry: | |||
231 | stdi gr24,@(gr28,#REG_GR(24)) | 233 | stdi gr24,@(gr28,#REG_GR(24)) |
232 | stdi gr26,@(gr28,#REG_GR(26)) | 234 | stdi gr26,@(gr28,#REG_GR(26)) |
233 | sti gr29,@(gr28,#REG_GR(29)) | 235 | sti gr29,@(gr28,#REG_GR(29)) |
234 | stdi gr30,@(gr28,#REG_GR(30)) | 236 | stdi.p gr30,@(gr28,#REG_GR(30)) |
237 | |||
238 | # note virtual interrupts will be fully enabled upon return | ||
239 | subicc gr0,#1,gr0,icc2 /* clear Z, set C */ | ||
235 | 240 | ||
236 | movsg tbr ,gr20 | 241 | movsg tbr ,gr20 |
237 | movsg psr ,gr22 | 242 | movsg psr ,gr22 |
@@ -267,7 +272,10 @@ __entry_kernel_external_interrupt_reentry: | |||
267 | 272 | ||
268 | movsg gner0,gr4 | 273 | movsg gner0,gr4 |
269 | movsg gner1,gr5 | 274 | movsg gner1,gr5 |
270 | stdi gr4,@(gr28,#REG_GNER0) | 275 | stdi.p gr4,@(gr28,#REG_GNER0) |
276 | |||
277 | # interrupts start off fully disabled in the interrupt handler | ||
278 | subcc gr0,gr0,gr0,icc2 /* set Z and clear C */ | ||
271 | 279 | ||
272 | # set the return address | 280 | # set the return address |
273 | sethi.p %hi(__entry_return_from_kernel_interrupt),gr4 | 281 | sethi.p %hi(__entry_return_from_kernel_interrupt),gr4 |
@@ -291,6 +299,45 @@ __entry_kernel_external_interrupt_reentry: | |||
291 | 299 | ||
292 | .size __entry_kernel_external_interrupt,.-__entry_kernel_external_interrupt | 300 | .size __entry_kernel_external_interrupt,.-__entry_kernel_external_interrupt |
293 | 301 | ||
302 | ############################################################################### | ||
303 | # | ||
304 | # deal with interrupts that were actually virtually disabled | ||
305 | # - we need to really disable them, flag the fact and return immediately | ||
306 | # - if you change this, you must alter break.S also | ||
307 | # | ||
308 | ############################################################################### | ||
309 | .balign L1_CACHE_BYTES | ||
310 | .globl __entry_kernel_external_interrupt_virtually_disabled | ||
311 | .type __entry_kernel_external_interrupt_virtually_disabled,@function | ||
312 | __entry_kernel_external_interrupt_virtually_disabled: | ||
313 | movsg psr,gr30 | ||
314 | andi gr30,#~PSR_PIL,gr30 | ||
315 | ori gr30,#PSR_PIL_14,gr30 ; debugging interrupts only | ||
316 | movgs gr30,psr | ||
317 | subcc gr0,gr0,gr0,icc2 ; leave Z set, clear C | ||
318 | rett #0 | ||
319 | |||
320 | .size __entry_kernel_external_interrupt_virtually_disabled,.-__entry_kernel_external_interrupt_virtually_disabled | ||
321 | |||
322 | ############################################################################### | ||
323 | # | ||
324 | # deal with re-enablement of interrupts that were pending when virtually re-enabled | ||
325 | # - set ICC2.C, re-enable the real interrupts and return | ||
326 | # - we can clear ICC2.Z because we shouldn't be here if it's not 0 [due to TIHI] | ||
327 | # - if you change this, you must alter break.S also | ||
328 | # | ||
329 | ############################################################################### | ||
330 | .balign L1_CACHE_BYTES | ||
331 | .globl __entry_kernel_external_interrupt_virtual_reenable | ||
332 | .type __entry_kernel_external_interrupt_virtual_reenable,@function | ||
333 | __entry_kernel_external_interrupt_virtual_reenable: | ||
334 | movsg psr,gr30 | ||
335 | andi gr30,#~PSR_PIL,gr30 ; re-enable interrupts | ||
336 | movgs gr30,psr | ||
337 | subicc gr0,#1,gr0,icc2 ; clear Z, set C | ||
338 | rett #0 | ||
339 | |||
340 | .size __entry_kernel_external_interrupt_virtual_reenable,.-__entry_kernel_external_interrupt_virtual_reenable | ||
294 | 341 | ||
295 | ############################################################################### | 342 | ############################################################################### |
296 | # | 343 | # |
@@ -335,6 +382,7 @@ __entry_uspace_softprog_interrupt_reentry: | |||
335 | 382 | ||
336 | sethi.p %hi(__entry_return_from_user_exception),gr23 | 383 | sethi.p %hi(__entry_return_from_user_exception),gr23 |
337 | setlo %lo(__entry_return_from_user_exception),gr23 | 384 | setlo %lo(__entry_return_from_user_exception),gr23 |
385 | |||
338 | bra __entry_common | 386 | bra __entry_common |
339 | 387 | ||
340 | .size __entry_uspace_softprog_interrupt,.-__entry_uspace_softprog_interrupt | 388 | .size __entry_uspace_softprog_interrupt,.-__entry_uspace_softprog_interrupt |
@@ -495,7 +543,10 @@ __entry_common: | |||
495 | 543 | ||
496 | movsg gner0,gr4 | 544 | movsg gner0,gr4 |
497 | movsg gner1,gr5 | 545 | movsg gner1,gr5 |
498 | stdi gr4,@(gr28,#REG_GNER0) | 546 | stdi.p gr4,@(gr28,#REG_GNER0) |
547 | |||
548 | # set up virtual interrupt disablement | ||
549 | subicc gr0,#1,gr0,icc2 /* clear Z flag, set C flag */ | ||
499 | 550 | ||
500 | # set up kernel global registers | 551 | # set up kernel global registers |
501 | sethi.p %hi(__kernel_current_task),gr5 | 552 | sethi.p %hi(__kernel_current_task),gr5 |
@@ -1418,11 +1469,27 @@ sys_call_table: | |||
1418 | .long sys_add_key | 1469 | .long sys_add_key |
1419 | .long sys_request_key | 1470 | .long sys_request_key |
1420 | .long sys_keyctl | 1471 | .long sys_keyctl |
1421 | .long sys_ni_syscall // sys_vperfctr_open | 1472 | .long sys_ioprio_set |
1422 | .long sys_ni_syscall // sys_vperfctr_control /* 290 */ | 1473 | .long sys_ioprio_get /* 290 */ |
1423 | .long sys_ni_syscall // sys_vperfctr_unlink | 1474 | .long sys_inotify_init |
1424 | .long sys_ni_syscall // sys_vperfctr_iresume | 1475 | .long sys_inotify_add_watch |
1425 | .long sys_ni_syscall // sys_vperfctr_read | 1476 | .long sys_inotify_rm_watch |
1477 | .long sys_migrate_pages | ||
1478 | .long sys_openat /* 295 */ | ||
1479 | .long sys_mkdirat | ||
1480 | .long sys_mknodat | ||
1481 | .long sys_fchownat | ||
1482 | .long sys_futimesat | ||
1483 | .long sys_newfstatat /* 300 */ | ||
1484 | .long sys_unlinkat | ||
1485 | .long sys_renameat | ||
1486 | .long sys_linkat | ||
1487 | .long sys_symlinkat | ||
1488 | .long sys_readlinkat /* 305 */ | ||
1489 | .long sys_fchmodat | ||
1490 | .long sys_faccessat | ||
1491 | .long sys_pselect6 | ||
1492 | .long sys_ppoll | ||
1426 | 1493 | ||
1427 | 1494 | ||
1428 | syscall_table_size = (. - sys_call_table) | 1495 | syscall_table_size = (. - sys_call_table) |
diff --git a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S index c73b4fe9f6ca..29a5265489b7 100644 --- a/arch/frv/kernel/head.S +++ b/arch/frv/kernel/head.S | |||
@@ -513,6 +513,9 @@ __head_mmu_enabled: | |||
513 | movgs gr0,ccr | 513 | movgs gr0,ccr |
514 | movgs gr0,cccr | 514 | movgs gr0,cccr |
515 | 515 | ||
516 | # initialise the virtual interrupt handling | ||
517 | subcc gr0,gr0,gr0,icc2 /* set Z, clear C */ | ||
518 | |||
516 | #ifdef CONFIG_MMU | 519 | #ifdef CONFIG_MMU |
517 | movgs gr3,scr2 | 520 | movgs gr3,scr2 |
518 | movgs gr3,scr3 | 521 | movgs gr3,scr3 |
diff --git a/arch/frv/kernel/irq.c b/arch/frv/kernel/irq.c index 59580c59c62c..27ab4c30aac6 100644 --- a/arch/frv/kernel/irq.c +++ b/arch/frv/kernel/irq.c | |||
@@ -287,18 +287,11 @@ asmlinkage void do_IRQ(void) | |||
287 | struct irq_source *source; | 287 | struct irq_source *source; |
288 | int level, cpu; | 288 | int level, cpu; |
289 | 289 | ||
290 | irq_enter(); | ||
291 | |||
290 | level = (__frame->tbr >> 4) & 0xf; | 292 | level = (__frame->tbr >> 4) & 0xf; |
291 | cpu = smp_processor_id(); | 293 | cpu = smp_processor_id(); |
292 | 294 | ||
293 | #if 0 | ||
294 | { | ||
295 | static u32 irqcount; | ||
296 | *(volatile u32 *) 0xe1200004 = ~((irqcount++ << 8) | level); | ||
297 | *(volatile u16 *) 0xffc00100 = (u16) ~0x9999; | ||
298 | mb(); | ||
299 | } | ||
300 | #endif | ||
301 | |||
302 | if ((unsigned long) __frame - (unsigned long) (current + 1) < 512) | 295 | if ((unsigned long) __frame - (unsigned long) (current + 1) < 512) |
303 | BUG(); | 296 | BUG(); |
304 | 297 | ||
@@ -308,40 +301,12 @@ asmlinkage void do_IRQ(void) | |||
308 | 301 | ||
309 | kstat_this_cpu.irqs[level]++; | 302 | kstat_this_cpu.irqs[level]++; |
310 | 303 | ||
311 | irq_enter(); | ||
312 | |||
313 | for (source = frv_irq_levels[level].sources; source; source = source->next) | 304 | for (source = frv_irq_levels[level].sources; source; source = source->next) |
314 | source->doirq(source); | 305 | source->doirq(source); |
315 | 306 | ||
316 | irq_exit(); | ||
317 | |||
318 | __clr_MASK(level); | 307 | __clr_MASK(level); |
319 | 308 | ||
320 | /* only process softirqs if we didn't interrupt another interrupt handler */ | 309 | irq_exit(); |
321 | if ((__frame->psr & PSR_PIL) == PSR_PIL_0) | ||
322 | if (local_softirq_pending()) | ||
323 | do_softirq(); | ||
324 | |||
325 | #ifdef CONFIG_PREEMPT | ||
326 | local_irq_disable(); | ||
327 | while (--current->preempt_count == 0) { | ||
328 | if (!(__frame->psr & PSR_S) || | ||
329 | current->need_resched == 0 || | ||
330 | in_interrupt()) | ||
331 | break; | ||
332 | current->preempt_count++; | ||
333 | local_irq_enable(); | ||
334 | preempt_schedule(); | ||
335 | local_irq_disable(); | ||
336 | } | ||
337 | #endif | ||
338 | |||
339 | #if 0 | ||
340 | { | ||
341 | *(volatile u16 *) 0xffc00100 = (u16) ~0x6666; | ||
342 | mb(); | ||
343 | } | ||
344 | #endif | ||
345 | 310 | ||
346 | } /* end do_IRQ() */ | 311 | } /* end do_IRQ() */ |
347 | 312 | ||
diff --git a/arch/frv/mm/kmap.c b/arch/frv/mm/kmap.c index 539f45e6d15e..c54f18e65ea6 100644 --- a/arch/frv/mm/kmap.c +++ b/arch/frv/mm/kmap.c | |||
@@ -44,15 +44,6 @@ void iounmap(void *addr) | |||
44 | } | 44 | } |
45 | 45 | ||
46 | /* | 46 | /* |
47 | * __iounmap unmaps nearly everything, so be careful | ||
48 | * it doesn't free currently pointer/page tables anymore but it | ||
49 | * wans't used anyway and might be added later. | ||
50 | */ | ||
51 | void __iounmap(void *addr, unsigned long size) | ||
52 | { | ||
53 | } | ||
54 | |||
55 | /* | ||
56 | * Set new cache mode for some kernel address space. | 47 | * Set new cache mode for some kernel address space. |
57 | * The caller must push data for that range itself, if such data may already | 48 | * The caller must push data for that range itself, if such data may already |
58 | * be in the cache. | 49 | * be in the cache. |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 80940d712acf..98308b018a35 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -33,6 +33,10 @@ config GENERIC_CALIBRATE_DELAY | |||
33 | bool | 33 | bool |
34 | default y | 34 | default y |
35 | 35 | ||
36 | config TIME_LOW_RES | ||
37 | bool | ||
38 | default y | ||
39 | |||
36 | config ISA | 40 | config ISA |
37 | bool | 41 | bool |
38 | default y | 42 | default y |
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu index a380167a13cf..582797db9603 100644 --- a/arch/h8300/Kconfig.cpu +++ b/arch/h8300/Kconfig.cpu | |||
@@ -169,7 +169,7 @@ endif | |||
169 | 169 | ||
170 | config CPU_H8300H | 170 | config CPU_H8300H |
171 | bool | 171 | bool |
172 | depends on (H8002 || H83007 || H83048 || H83068) | 172 | depends on (H83002 || H83007 || H83048 || H83068) |
173 | default y | 173 | default y |
174 | 174 | ||
175 | config CPU_H8S | 175 | config CPU_H8S |
diff --git a/arch/h8300/Kconfig.debug b/arch/h8300/Kconfig.debug index 55034d08abff..e0e9bcb015a9 100644 --- a/arch/h8300/Kconfig.debug +++ b/arch/h8300/Kconfig.debug | |||
@@ -34,7 +34,7 @@ config GDB_DEBUG | |||
34 | help | 34 | help |
35 | gdb stub exception support | 35 | gdb stub exception support |
36 | 36 | ||
37 | config CONFIG_SH_STANDARD_BIOS | 37 | config SH_STANDARD_BIOS |
38 | bool "Use gdb protocol serial console" | 38 | bool "Use gdb protocol serial console" |
39 | depends on (!H8300H_SIM && !H8S_SIM) | 39 | depends on (!H8300H_SIM && !H8S_SIM) |
40 | help | 40 | help |
diff --git a/arch/h8300/defconfig b/arch/h8300/defconfig index 9d9b491cfc2c..8f1ec3297150 100644 --- a/arch/h8300/defconfig +++ b/arch/h8300/defconfig | |||
@@ -328,7 +328,7 @@ CONFIG_FULLDEBUG=y | |||
328 | CONFIG_NO_KERNEL_MSG=y | 328 | CONFIG_NO_KERNEL_MSG=y |
329 | # CONFIG_SYSCALL_PRINT is not set | 329 | # CONFIG_SYSCALL_PRINT is not set |
330 | # CONFIG_GDB_DEBUG is not set | 330 | # CONFIG_GDB_DEBUG is not set |
331 | # CONFIG_CONFIG_SH_STANDARD_BIOS is not set | 331 | # CONFIG_SH_STANDARD_BIOS is not set |
332 | # CONFIG_DEFAULT_CMDLINE is not set | 332 | # CONFIG_DEFAULT_CMDLINE is not set |
333 | # CONFIG_BLKDEV_RESERVE is not set | 333 | # CONFIG_BLKDEV_RESERVE is not set |
334 | 334 | ||
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c index ed79ae20e88d..dd344f112cfe 100644 --- a/arch/h8300/kernel/process.c +++ b/arch/h8300/kernel/process.c | |||
@@ -45,6 +45,9 @@ | |||
45 | #include <asm/setup.h> | 45 | #include <asm/setup.h> |
46 | #include <asm/pgtable.h> | 46 | #include <asm/pgtable.h> |
47 | 47 | ||
48 | void (*pm_power_off)(void) = NULL; | ||
49 | EXPORT_SYMBOL(pm_power_off); | ||
50 | |||
48 | asmlinkage void ret_from_fork(void); | 51 | asmlinkage void ret_from_fork(void); |
49 | 52 | ||
50 | /* | 53 | /* |
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 0afec8566e7b..5b1a7d46d1d9 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -733,7 +733,7 @@ config PHYSICAL_START | |||
733 | 733 | ||
734 | config HOTPLUG_CPU | 734 | config HOTPLUG_CPU |
735 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" | 735 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" |
736 | depends on SMP && HOTPLUG && EXPERIMENTAL | 736 | depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER |
737 | ---help--- | 737 | ---help--- |
738 | Say Y here to experiment with turning CPUs off and on. CPUs | 738 | Say Y here to experiment with turning CPUs off and on. CPUs |
739 | can be controlled through /sys/devices/system/cpu. | 739 | can be controlled through /sys/devices/system/cpu. |
@@ -1060,6 +1060,7 @@ source "arch/i386/oprofile/Kconfig" | |||
1060 | 1060 | ||
1061 | config KPROBES | 1061 | config KPROBES |
1062 | bool "Kprobes (EXPERIMENTAL)" | 1062 | bool "Kprobes (EXPERIMENTAL)" |
1063 | depends on EXPERIMENTAL && MODULES | ||
1063 | help | 1064 | help |
1064 | Kprobes allows you to trap at almost any kernel address and | 1065 | Kprobes allows you to trap at almost any kernel address and |
1065 | execute a callback function. register_kprobe() establishes | 1066 | execute a callback function. register_kprobe() establishes |
diff --git a/arch/i386/boot/.gitignore b/arch/i386/boot/.gitignore new file mode 100644 index 000000000000..495f20c085de --- /dev/null +++ b/arch/i386/boot/.gitignore | |||
@@ -0,0 +1,3 @@ | |||
1 | bootsect | ||
2 | bzImage | ||
3 | setup | ||
diff --git a/arch/i386/boot/tools/.gitignore b/arch/i386/boot/tools/.gitignore new file mode 100644 index 000000000000..378eac25d311 --- /dev/null +++ b/arch/i386/boot/tools/.gitignore | |||
@@ -0,0 +1 @@ | |||
build | |||
diff --git a/arch/i386/kernel/.gitignore b/arch/i386/kernel/.gitignore new file mode 100644 index 000000000000..40836ad9079c --- /dev/null +++ b/arch/i386/kernel/.gitignore | |||
@@ -0,0 +1 @@ | |||
vsyscall.lds | |||
diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile index 60c3f76dfca4..65656c033d70 100644 --- a/arch/i386/kernel/Makefile +++ b/arch/i386/kernel/Makefile | |||
@@ -7,11 +7,11 @@ extra-y := head.o init_task.o vmlinux.lds | |||
7 | obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \ | 7 | obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \ |
8 | ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \ | 8 | ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \ |
9 | pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \ | 9 | pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \ |
10 | quirks.o i8237.o | 10 | quirks.o i8237.o topology.o |
11 | 11 | ||
12 | obj-y += cpu/ | 12 | obj-y += cpu/ |
13 | obj-y += timers/ | 13 | obj-y += timers/ |
14 | obj-$(CONFIG_ACPI) += acpi/ | 14 | obj-y += acpi/ |
15 | obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o | 15 | obj-$(CONFIG_X86_BIOS_REBOOT) += reboot.o |
16 | obj-$(CONFIG_MCA) += mca.o | 16 | obj-$(CONFIG_MCA) += mca.o |
17 | obj-$(CONFIG_X86_MSR) += msr.o | 17 | obj-$(CONFIG_X86_MSR) += msr.o |
diff --git a/arch/i386/kernel/acpi/Makefile b/arch/i386/kernel/acpi/Makefile index d51c7313cae8..7e9ac99354f4 100644 --- a/arch/i386/kernel/acpi/Makefile +++ b/arch/i386/kernel/acpi/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | obj-y := boot.o | 1 | obj-$(CONFIG_ACPI) += boot.o |
2 | obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o | 2 | obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o |
3 | obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o | 3 | obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o |
4 | 4 | ||
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 79577f0ace98..f1a21945963d 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -1111,9 +1111,6 @@ int __init acpi_boot_table_init(void) | |||
1111 | disable_acpi(); | 1111 | disable_acpi(); |
1112 | return error; | 1112 | return error; |
1113 | } | 1113 | } |
1114 | #ifdef __i386__ | ||
1115 | check_acpi_pci(); | ||
1116 | #endif | ||
1117 | 1114 | ||
1118 | acpi_table_parse(ACPI_BOOT, acpi_parse_sbf); | 1115 | acpi_table_parse(ACPI_BOOT, acpi_parse_sbf); |
1119 | 1116 | ||
diff --git a/arch/i386/kernel/acpi/earlyquirk.c b/arch/i386/kernel/acpi/earlyquirk.c index f1b9d2a46dab..2e3b643a4dc4 100644 --- a/arch/i386/kernel/acpi/earlyquirk.c +++ b/arch/i386/kernel/acpi/earlyquirk.c | |||
@@ -7,14 +7,22 @@ | |||
7 | #include <linux/pci.h> | 7 | #include <linux/pci.h> |
8 | #include <asm/pci-direct.h> | 8 | #include <asm/pci-direct.h> |
9 | #include <asm/acpi.h> | 9 | #include <asm/acpi.h> |
10 | #include <asm/apic.h> | ||
10 | 11 | ||
11 | static int __init check_bridge(int vendor, int device) | 12 | static int __init check_bridge(int vendor, int device) |
12 | { | 13 | { |
14 | #ifdef CONFIG_ACPI | ||
13 | /* According to Nvidia all timer overrides are bogus. Just ignore | 15 | /* According to Nvidia all timer overrides are bogus. Just ignore |
14 | them all. */ | 16 | them all. */ |
15 | if (vendor == PCI_VENDOR_ID_NVIDIA) { | 17 | if (vendor == PCI_VENDOR_ID_NVIDIA) { |
16 | acpi_skip_timer_override = 1; | 18 | acpi_skip_timer_override = 1; |
17 | } | 19 | } |
20 | #endif | ||
21 | if (vendor == PCI_VENDOR_ID_ATI && timer_over_8254 == 1) { | ||
22 | timer_over_8254 = 0; | ||
23 | printk(KERN_INFO "ATI board detected. Disabling timer routing " | ||
24 | "over 8254.\n"); | ||
25 | } | ||
18 | return 0; | 26 | return 0; |
19 | } | 27 | } |
20 | 28 | ||
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index f39e09ef64ec..776c90989e06 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -570,16 +570,18 @@ void __devinit setup_local_APIC(void) | |||
570 | */ | 570 | */ |
571 | void lapic_shutdown(void) | 571 | void lapic_shutdown(void) |
572 | { | 572 | { |
573 | unsigned long flags; | ||
574 | |||
573 | if (!cpu_has_apic) | 575 | if (!cpu_has_apic) |
574 | return; | 576 | return; |
575 | 577 | ||
576 | local_irq_disable(); | 578 | local_irq_save(flags); |
577 | clear_local_APIC(); | 579 | clear_local_APIC(); |
578 | 580 | ||
579 | if (enabled_via_apicbase) | 581 | if (enabled_via_apicbase) |
580 | disable_local_APIC(); | 582 | disable_local_APIC(); |
581 | 583 | ||
582 | local_irq_enable(); | 584 | local_irq_restore(flags); |
583 | } | 585 | } |
584 | 586 | ||
585 | #ifdef CONFIG_PM | 587 | #ifdef CONFIG_PM |
diff --git a/arch/i386/kernel/cpu/common.c b/arch/i386/kernel/cpu/common.c index 7eb9213734a3..e6bd095ae108 100644 --- a/arch/i386/kernel/cpu/common.c +++ b/arch/i386/kernel/cpu/common.c | |||
@@ -4,6 +4,7 @@ | |||
4 | #include <linux/smp.h> | 4 | #include <linux/smp.h> |
5 | #include <linux/module.h> | 5 | #include <linux/module.h> |
6 | #include <linux/percpu.h> | 6 | #include <linux/percpu.h> |
7 | #include <linux/bootmem.h> | ||
7 | #include <asm/semaphore.h> | 8 | #include <asm/semaphore.h> |
8 | #include <asm/processor.h> | 9 | #include <asm/processor.h> |
9 | #include <asm/i387.h> | 10 | #include <asm/i387.h> |
@@ -18,6 +19,9 @@ | |||
18 | 19 | ||
19 | #include "cpu.h" | 20 | #include "cpu.h" |
20 | 21 | ||
22 | DEFINE_PER_CPU(struct Xgt_desc_struct, cpu_gdt_descr); | ||
23 | EXPORT_PER_CPU_SYMBOL(cpu_gdt_descr); | ||
24 | |||
21 | DEFINE_PER_CPU(unsigned char, cpu_16bit_stack[CPU_16BIT_STACK_SIZE]); | 25 | DEFINE_PER_CPU(unsigned char, cpu_16bit_stack[CPU_16BIT_STACK_SIZE]); |
22 | EXPORT_PER_CPU_SYMBOL(cpu_16bit_stack); | 26 | EXPORT_PER_CPU_SYMBOL(cpu_16bit_stack); |
23 | 27 | ||
@@ -274,10 +278,10 @@ void __devinit generic_identify(struct cpuinfo_x86 * c) | |||
274 | c->x86_capability[4] = excap; | 278 | c->x86_capability[4] = excap; |
275 | c->x86 = (tfms >> 8) & 15; | 279 | c->x86 = (tfms >> 8) & 15; |
276 | c->x86_model = (tfms >> 4) & 15; | 280 | c->x86_model = (tfms >> 4) & 15; |
277 | if (c->x86 == 0xf) { | 281 | if (c->x86 == 0xf) |
278 | c->x86 += (tfms >> 20) & 0xff; | 282 | c->x86 += (tfms >> 20) & 0xff; |
283 | if (c->x86 >= 0x6) | ||
279 | c->x86_model += ((tfms >> 16) & 0xF) << 4; | 284 | c->x86_model += ((tfms >> 16) & 0xF) << 4; |
280 | } | ||
281 | c->x86_mask = tfms & 15; | 285 | c->x86_mask = tfms & 15; |
282 | } else { | 286 | } else { |
283 | /* Have CPUID level 0 only - unheard of */ | 287 | /* Have CPUID level 0 only - unheard of */ |
@@ -571,8 +575,9 @@ void __devinit cpu_init(void) | |||
571 | int cpu = smp_processor_id(); | 575 | int cpu = smp_processor_id(); |
572 | struct tss_struct * t = &per_cpu(init_tss, cpu); | 576 | struct tss_struct * t = &per_cpu(init_tss, cpu); |
573 | struct thread_struct *thread = ¤t->thread; | 577 | struct thread_struct *thread = ¤t->thread; |
574 | struct desc_struct *gdt = get_cpu_gdt_table(cpu); | 578 | struct desc_struct *gdt; |
575 | __u32 stk16_off = (__u32)&per_cpu(cpu_16bit_stack, cpu); | 579 | __u32 stk16_off = (__u32)&per_cpu(cpu_16bit_stack, cpu); |
580 | struct Xgt_desc_struct *cpu_gdt_descr = &per_cpu(cpu_gdt_descr, cpu); | ||
576 | 581 | ||
577 | if (cpu_test_and_set(cpu, cpu_initialized)) { | 582 | if (cpu_test_and_set(cpu, cpu_initialized)) { |
578 | printk(KERN_WARNING "CPU#%d already initialized!\n", cpu); | 583 | printk(KERN_WARNING "CPU#%d already initialized!\n", cpu); |
@@ -590,6 +595,25 @@ void __devinit cpu_init(void) | |||
590 | } | 595 | } |
591 | 596 | ||
592 | /* | 597 | /* |
598 | * This is a horrible hack to allocate the GDT. The problem | ||
599 | * is that cpu_init() is called really early for the boot CPU | ||
600 | * (and hence needs bootmem) but much later for the secondary | ||
601 | * CPUs, when bootmem will have gone away | ||
602 | */ | ||
603 | if (NODE_DATA(0)->bdata->node_bootmem_map) { | ||
604 | gdt = (struct desc_struct *)alloc_bootmem_pages(PAGE_SIZE); | ||
605 | /* alloc_bootmem_pages panics on failure, so no check */ | ||
606 | memset(gdt, 0, PAGE_SIZE); | ||
607 | } else { | ||
608 | gdt = (struct desc_struct *)get_zeroed_page(GFP_KERNEL); | ||
609 | if (unlikely(!gdt)) { | ||
610 | printk(KERN_CRIT "CPU%d failed to allocate GDT\n", cpu); | ||
611 | for (;;) | ||
612 | local_irq_enable(); | ||
613 | } | ||
614 | } | ||
615 | |||
616 | /* | ||
593 | * Initialize the per-CPU GDT with the boot GDT, | 617 | * Initialize the per-CPU GDT with the boot GDT, |
594 | * and set up the GDT descriptor: | 618 | * and set up the GDT descriptor: |
595 | */ | 619 | */ |
@@ -601,10 +625,10 @@ void __devinit cpu_init(void) | |||
601 | ((((__u64)stk16_off) << 32) & 0xff00000000000000ULL) | | 625 | ((((__u64)stk16_off) << 32) & 0xff00000000000000ULL) | |
602 | (CPU_16BIT_STACK_SIZE - 1); | 626 | (CPU_16BIT_STACK_SIZE - 1); |
603 | 627 | ||
604 | cpu_gdt_descr[cpu].size = GDT_SIZE - 1; | 628 | cpu_gdt_descr->size = GDT_SIZE - 1; |
605 | cpu_gdt_descr[cpu].address = (unsigned long)gdt; | 629 | cpu_gdt_descr->address = (unsigned long)gdt; |
606 | 630 | ||
607 | load_gdt(&cpu_gdt_descr[cpu]); | 631 | load_gdt(cpu_gdt_descr); |
608 | load_idt(&idt_descr); | 632 | load_idt(&idt_descr); |
609 | 633 | ||
610 | /* | 634 | /* |
diff --git a/arch/i386/kernel/cpu/transmeta.c b/arch/i386/kernel/cpu/transmeta.c index bdbeb77f4e22..7214c9b577ab 100644 --- a/arch/i386/kernel/cpu/transmeta.c +++ b/arch/i386/kernel/cpu/transmeta.c | |||
@@ -1,4 +1,5 @@ | |||
1 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
2 | #include <linux/mm.h> | ||
2 | #include <linux/init.h> | 3 | #include <linux/init.h> |
3 | #include <asm/processor.h> | 4 | #include <asm/processor.h> |
4 | #include <asm/msr.h> | 5 | #include <asm/msr.h> |
diff --git a/arch/i386/kernel/efi.c b/arch/i386/kernel/efi.c index ecad519fd395..c9cad7ba0d2d 100644 --- a/arch/i386/kernel/efi.c +++ b/arch/i386/kernel/efi.c | |||
@@ -70,10 +70,13 @@ static void efi_call_phys_prelog(void) | |||
70 | { | 70 | { |
71 | unsigned long cr4; | 71 | unsigned long cr4; |
72 | unsigned long temp; | 72 | unsigned long temp; |
73 | struct Xgt_desc_struct *cpu_gdt_descr; | ||
73 | 74 | ||
74 | spin_lock(&efi_rt_lock); | 75 | spin_lock(&efi_rt_lock); |
75 | local_irq_save(efi_rt_eflags); | 76 | local_irq_save(efi_rt_eflags); |
76 | 77 | ||
78 | cpu_gdt_descr = &per_cpu(cpu_gdt_descr, 0); | ||
79 | |||
77 | /* | 80 | /* |
78 | * If I don't have PSE, I should just duplicate two entries in page | 81 | * If I don't have PSE, I should just duplicate two entries in page |
79 | * directory. If I have PSE, I just need to duplicate one entry in | 82 | * directory. If I have PSE, I just need to duplicate one entry in |
@@ -103,17 +106,18 @@ static void efi_call_phys_prelog(void) | |||
103 | */ | 106 | */ |
104 | local_flush_tlb(); | 107 | local_flush_tlb(); |
105 | 108 | ||
106 | cpu_gdt_descr[0].address = __pa(cpu_gdt_descr[0].address); | 109 | cpu_gdt_descr->address = __pa(cpu_gdt_descr->address); |
107 | load_gdt((struct Xgt_desc_struct *) __pa(&cpu_gdt_descr[0])); | 110 | load_gdt(cpu_gdt_descr); |
108 | } | 111 | } |
109 | 112 | ||
110 | static void efi_call_phys_epilog(void) | 113 | static void efi_call_phys_epilog(void) |
111 | { | 114 | { |
112 | unsigned long cr4; | 115 | unsigned long cr4; |
116 | struct Xgt_desc_struct *cpu_gdt_descr = &per_cpu(cpu_gdt_descr, 0); | ||
117 | |||
118 | cpu_gdt_descr->address = __va(cpu_gdt_descr->address); | ||
119 | load_gdt(cpu_gdt_descr); | ||
113 | 120 | ||
114 | cpu_gdt_descr[0].address = | ||
115 | (unsigned long) __va(cpu_gdt_descr[0].address); | ||
116 | load_gdt(&cpu_gdt_descr[0]); | ||
117 | cr4 = read_cr4(); | 121 | cr4 = read_cr4(); |
118 | 122 | ||
119 | if (cr4 & X86_CR4_PSE) { | 123 | if (cr4 & X86_CR4_PSE) { |
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S index 5884469f6bfe..e0b7c632efbc 100644 --- a/arch/i386/kernel/head.S +++ b/arch/i386/kernel/head.S | |||
@@ -398,7 +398,11 @@ ignore_int: | |||
398 | pushl 32(%esp) | 398 | pushl 32(%esp) |
399 | pushl 40(%esp) | 399 | pushl 40(%esp) |
400 | pushl $int_msg | 400 | pushl $int_msg |
401 | #ifdef CONFIG_EARLY_PRINTK | ||
402 | call early_printk | ||
403 | #else | ||
401 | call printk | 404 | call printk |
405 | #endif | ||
402 | addl $(5*4),%esp | 406 | addl $(5*4),%esp |
403 | popl %ds | 407 | popl %ds |
404 | popl %es | 408 | popl %es |
@@ -530,5 +534,3 @@ ENTRY(cpu_gdt_table) | |||
530 | .quad 0x0000000000000000 /* 0xf0 - unused */ | 534 | .quad 0x0000000000000000 /* 0xf0 - unused */ |
531 | .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */ | 535 | .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */ |
532 | 536 | ||
533 | /* Be sure this is zeroed to avoid false validations in Xen */ | ||
534 | .fill PAGE_SIZE_asm / 8 - GDT_ENTRIES,8,0 | ||
diff --git a/arch/i386/kernel/i386_ksyms.c b/arch/i386/kernel/i386_ksyms.c index 3999bec50c33..055325056a74 100644 --- a/arch/i386/kernel/i386_ksyms.c +++ b/arch/i386/kernel/i386_ksyms.c | |||
@@ -3,8 +3,6 @@ | |||
3 | #include <asm/checksum.h> | 3 | #include <asm/checksum.h> |
4 | #include <asm/desc.h> | 4 | #include <asm/desc.h> |
5 | 5 | ||
6 | EXPORT_SYMBOL_GPL(cpu_gdt_descr); | ||
7 | |||
8 | EXPORT_SYMBOL(__down_failed); | 6 | EXPORT_SYMBOL(__down_failed); |
9 | EXPORT_SYMBOL(__down_failed_interruptible); | 7 | EXPORT_SYMBOL(__down_failed_interruptible); |
10 | EXPORT_SYMBOL(__down_failed_trylock); | 8 | EXPORT_SYMBOL(__down_failed_trylock); |
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index f2dd218d88cb..39d9a5fa907e 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c | |||
@@ -51,6 +51,8 @@ static struct { int pin, apic; } ioapic_i8259 = { -1, -1 }; | |||
51 | 51 | ||
52 | static DEFINE_SPINLOCK(ioapic_lock); | 52 | static DEFINE_SPINLOCK(ioapic_lock); |
53 | 53 | ||
54 | int timer_over_8254 __initdata = 1; | ||
55 | |||
54 | /* | 56 | /* |
55 | * Is the SiS APIC rmw bug present ? | 57 | * Is the SiS APIC rmw bug present ? |
56 | * -1 = don't know, 0 = no, 1 = yes | 58 | * -1 = don't know, 0 = no, 1 = yes |
@@ -2267,7 +2269,8 @@ static inline void check_timer(void) | |||
2267 | apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); | 2269 | apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); |
2268 | init_8259A(1); | 2270 | init_8259A(1); |
2269 | timer_ack = 1; | 2271 | timer_ack = 1; |
2270 | enable_8259A_irq(0); | 2272 | if (timer_over_8254 > 0) |
2273 | enable_8259A_irq(0); | ||
2271 | 2274 | ||
2272 | pin1 = find_isa_irq_pin(0, mp_INT); | 2275 | pin1 = find_isa_irq_pin(0, mp_INT); |
2273 | apic1 = find_isa_irq_apic(0, mp_INT); | 2276 | apic1 = find_isa_irq_apic(0, mp_INT); |
@@ -2392,6 +2395,20 @@ void __init setup_IO_APIC(void) | |||
2392 | print_IO_APIC(); | 2395 | print_IO_APIC(); |
2393 | } | 2396 | } |
2394 | 2397 | ||
2398 | static int __init setup_disable_8254_timer(char *s) | ||
2399 | { | ||
2400 | timer_over_8254 = -1; | ||
2401 | return 1; | ||
2402 | } | ||
2403 | static int __init setup_enable_8254_timer(char *s) | ||
2404 | { | ||
2405 | timer_over_8254 = 2; | ||
2406 | return 1; | ||
2407 | } | ||
2408 | |||
2409 | __setup("disable_8254_timer", setup_disable_8254_timer); | ||
2410 | __setup("enable_8254_timer", setup_enable_8254_timer); | ||
2411 | |||
2395 | /* | 2412 | /* |
2396 | * Called after all the initialization is done. If we didnt find any | 2413 | * Called after all the initialization is done. If we didnt find any |
2397 | * APIC bugs then we can allow the modify fast path | 2414 | * APIC bugs then we can allow the modify fast path |
@@ -2566,8 +2583,10 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id) | |||
2566 | spin_unlock_irqrestore(&ioapic_lock, flags); | 2583 | spin_unlock_irqrestore(&ioapic_lock, flags); |
2567 | 2584 | ||
2568 | /* Sanity check */ | 2585 | /* Sanity check */ |
2569 | if (reg_00.bits.ID != apic_id) | 2586 | if (reg_00.bits.ID != apic_id) { |
2570 | panic("IOAPIC[%d]: Unable change apic_id!\n", ioapic); | 2587 | printk("IOAPIC[%d]: Unable to change apic_id!\n", ioapic); |
2588 | return -1; | ||
2589 | } | ||
2571 | } | 2590 | } |
2572 | 2591 | ||
2573 | apic_printk(APIC_VERBOSE, KERN_INFO | 2592 | apic_printk(APIC_VERBOSE, KERN_INFO |
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c index 6483eeb1a4e8..694a13997637 100644 --- a/arch/i386/kernel/kprobes.c +++ b/arch/i386/kernel/kprobes.c | |||
@@ -58,6 +58,11 @@ static inline int is_IF_modifier(kprobe_opcode_t opcode) | |||
58 | 58 | ||
59 | int __kprobes arch_prepare_kprobe(struct kprobe *p) | 59 | int __kprobes arch_prepare_kprobe(struct kprobe *p) |
60 | { | 60 | { |
61 | /* insn: must be on special executable page on i386. */ | ||
62 | p->ainsn.insn = get_insn_slot(); | ||
63 | if (!p->ainsn.insn) | ||
64 | return -ENOMEM; | ||
65 | |||
61 | memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t)); | 66 | memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t)); |
62 | p->opcode = *p->addr; | 67 | p->opcode = *p->addr; |
63 | return 0; | 68 | return 0; |
@@ -77,6 +82,13 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
77 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); | 82 | (unsigned long) p->addr + sizeof(kprobe_opcode_t)); |
78 | } | 83 | } |
79 | 84 | ||
85 | void __kprobes arch_remove_kprobe(struct kprobe *p) | ||
86 | { | ||
87 | down(&kprobe_mutex); | ||
88 | free_insn_slot(p->ainsn.insn); | ||
89 | up(&kprobe_mutex); | ||
90 | } | ||
91 | |||
80 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) | 92 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) |
81 | { | 93 | { |
82 | kcb->prev_kprobe.kp = kprobe_running(); | 94 | kcb->prev_kprobe.kp = kprobe_running(); |
@@ -111,7 +123,7 @@ static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | |||
111 | if (p->opcode == BREAKPOINT_INSTRUCTION) | 123 | if (p->opcode == BREAKPOINT_INSTRUCTION) |
112 | regs->eip = (unsigned long)p->addr; | 124 | regs->eip = (unsigned long)p->addr; |
113 | else | 125 | else |
114 | regs->eip = (unsigned long)&p->ainsn.insn; | 126 | regs->eip = (unsigned long)p->ainsn.insn; |
115 | } | 127 | } |
116 | 128 | ||
117 | /* Called with kretprobe_lock held */ | 129 | /* Called with kretprobe_lock held */ |
@@ -351,7 +363,7 @@ static void __kprobes resume_execution(struct kprobe *p, | |||
351 | { | 363 | { |
352 | unsigned long *tos = (unsigned long *)®s->esp; | 364 | unsigned long *tos = (unsigned long *)®s->esp; |
353 | unsigned long next_eip = 0; | 365 | unsigned long next_eip = 0; |
354 | unsigned long copy_eip = (unsigned long)&p->ainsn.insn; | 366 | unsigned long copy_eip = (unsigned long)p->ainsn.insn; |
355 | unsigned long orig_eip = (unsigned long)p->addr; | 367 | unsigned long orig_eip = (unsigned long)p->addr; |
356 | 368 | ||
357 | switch (p->ainsn.insn[0]) { | 369 | switch (p->ainsn.insn[0]) { |
diff --git a/arch/i386/kernel/machine_kexec.c b/arch/i386/kernel/machine_kexec.c index a912fed48482..f73d7374a2ba 100644 --- a/arch/i386/kernel/machine_kexec.c +++ b/arch/i386/kernel/machine_kexec.c | |||
@@ -116,13 +116,13 @@ static void load_segments(void) | |||
116 | __asm__ __volatile__ ( | 116 | __asm__ __volatile__ ( |
117 | "\tljmp $"STR(__KERNEL_CS)",$1f\n" | 117 | "\tljmp $"STR(__KERNEL_CS)",$1f\n" |
118 | "\t1:\n" | 118 | "\t1:\n" |
119 | "\tmovl $"STR(__KERNEL_DS)",%eax\n" | 119 | "\tmovl $"STR(__KERNEL_DS)",%%eax\n" |
120 | "\tmovl %eax,%ds\n" | 120 | "\tmovl %%eax,%%ds\n" |
121 | "\tmovl %eax,%es\n" | 121 | "\tmovl %%eax,%%es\n" |
122 | "\tmovl %eax,%fs\n" | 122 | "\tmovl %%eax,%%fs\n" |
123 | "\tmovl %eax,%gs\n" | 123 | "\tmovl %%eax,%%gs\n" |
124 | "\tmovl %eax,%ss\n" | 124 | "\tmovl %%eax,%%ss\n" |
125 | ); | 125 | ::: "eax", "memory"); |
126 | #undef STR | 126 | #undef STR |
127 | #undef __STR | 127 | #undef __STR |
128 | } | 128 | } |
diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c index d3fdf0057d82..5390b521aca0 100644 --- a/arch/i386/kernel/microcode.c +++ b/arch/i386/kernel/microcode.c | |||
@@ -74,6 +74,7 @@ | |||
74 | #include <linux/kernel.h> | 74 | #include <linux/kernel.h> |
75 | #include <linux/init.h> | 75 | #include <linux/init.h> |
76 | #include <linux/sched.h> | 76 | #include <linux/sched.h> |
77 | #include <linux/cpumask.h> | ||
77 | #include <linux/module.h> | 78 | #include <linux/module.h> |
78 | #include <linux/slab.h> | 79 | #include <linux/slab.h> |
79 | #include <linux/vmalloc.h> | 80 | #include <linux/vmalloc.h> |
@@ -250,8 +251,8 @@ static int find_matching_ucodes (void) | |||
250 | error = -EINVAL; | 251 | error = -EINVAL; |
251 | goto out; | 252 | goto out; |
252 | } | 253 | } |
253 | 254 | ||
254 | for (cpu_num = 0; cpu_num < num_online_cpus(); cpu_num++) { | 255 | for_each_online_cpu(cpu_num) { |
255 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num; | 256 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num; |
256 | if (uci->err != MC_NOTFOUND) /* already found a match or not an online cpu*/ | 257 | if (uci->err != MC_NOTFOUND) /* already found a match or not an online cpu*/ |
257 | continue; | 258 | continue; |
@@ -293,7 +294,7 @@ static int find_matching_ucodes (void) | |||
293 | error = -EFAULT; | 294 | error = -EFAULT; |
294 | goto out; | 295 | goto out; |
295 | } | 296 | } |
296 | for (cpu_num = 0; cpu_num < num_online_cpus(); cpu_num++) { | 297 | for_each_online_cpu(cpu_num) { |
297 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num; | 298 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num; |
298 | if (uci->err != MC_NOTFOUND) /* already found a match or not an online cpu*/ | 299 | if (uci->err != MC_NOTFOUND) /* already found a match or not an online cpu*/ |
299 | continue; | 300 | continue; |
@@ -304,7 +305,9 @@ static int find_matching_ucodes (void) | |||
304 | } | 305 | } |
305 | } | 306 | } |
306 | /* now check if any cpu has matched */ | 307 | /* now check if any cpu has matched */ |
307 | for (cpu_num = 0, allocated_flag = 0, sum = 0; cpu_num < num_online_cpus(); cpu_num++) { | 308 | allocated_flag = 0; |
309 | sum = 0; | ||
310 | for_each_online_cpu(cpu_num) { | ||
308 | if (ucode_cpu_info[cpu_num].err == MC_MARKED) { | 311 | if (ucode_cpu_info[cpu_num].err == MC_MARKED) { |
309 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num; | 312 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu_num; |
310 | if (!allocated_flag) { | 313 | if (!allocated_flag) { |
@@ -415,12 +418,12 @@ static int do_microcode_update (void) | |||
415 | } | 418 | } |
416 | 419 | ||
417 | out_free: | 420 | out_free: |
418 | for (i = 0; i < num_online_cpus(); i++) { | 421 | for_each_online_cpu(i) { |
419 | if (ucode_cpu_info[i].mc) { | 422 | if (ucode_cpu_info[i].mc) { |
420 | int j; | 423 | int j; |
421 | void *tmp = ucode_cpu_info[i].mc; | 424 | void *tmp = ucode_cpu_info[i].mc; |
422 | vfree(tmp); | 425 | vfree(tmp); |
423 | for (j = i; j < num_online_cpus(); j++) { | 426 | for_each_online_cpu(j) { |
424 | if (ucode_cpu_info[j].mc == tmp) | 427 | if (ucode_cpu_info[j].mc == tmp) |
425 | ucode_cpu_info[j].mc = NULL; | 428 | ucode_cpu_info[j].mc = NULL; |
426 | } | 429 | } |
diff --git a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c index 0102f3d50e57..e6e2f43db85e 100644 --- a/arch/i386/kernel/mpparse.c +++ b/arch/i386/kernel/mpparse.c | |||
@@ -710,7 +710,7 @@ void __init get_smp_config (void) | |||
710 | * Read the physical hardware table. Anything here will | 710 | * Read the physical hardware table. Anything here will |
711 | * override the defaults. | 711 | * override the defaults. |
712 | */ | 712 | */ |
713 | if (!smp_read_mpc((void *)mpf->mpf_physptr)) { | 713 | if (!smp_read_mpc(phys_to_virt(mpf->mpf_physptr))) { |
714 | smp_found_config = 0; | 714 | smp_found_config = 0; |
715 | printk(KERN_ERR "BIOS bug, MP table errors detected!...\n"); | 715 | printk(KERN_ERR "BIOS bug, MP table errors detected!...\n"); |
716 | printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n"); | 716 | printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n"); |
@@ -915,6 +915,7 @@ void __init mp_register_ioapic ( | |||
915 | u32 gsi_base) | 915 | u32 gsi_base) |
916 | { | 916 | { |
917 | int idx = 0; | 917 | int idx = 0; |
918 | int tmpid; | ||
918 | 919 | ||
919 | if (nr_ioapics >= MAX_IO_APICS) { | 920 | if (nr_ioapics >= MAX_IO_APICS) { |
920 | printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded " | 921 | printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded " |
@@ -935,9 +936,14 @@ void __init mp_register_ioapic ( | |||
935 | 936 | ||
936 | set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); | 937 | set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); |
937 | if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 < 15)) | 938 | if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 < 15)) |
938 | mp_ioapics[idx].mpc_apicid = io_apic_get_unique_id(idx, id); | 939 | tmpid = io_apic_get_unique_id(idx, id); |
939 | else | 940 | else |
940 | mp_ioapics[idx].mpc_apicid = id; | 941 | tmpid = id; |
942 | if (tmpid == -1) { | ||
943 | nr_ioapics--; | ||
944 | return; | ||
945 | } | ||
946 | mp_ioapics[idx].mpc_apicid = tmpid; | ||
941 | mp_ioapics[idx].mpc_apicver = io_apic_get_version(idx); | 947 | mp_ioapics[idx].mpc_apicver = io_apic_get_version(idx); |
942 | 948 | ||
943 | /* | 949 | /* |
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c index 63f39a7e2c96..be87c5e2ee95 100644 --- a/arch/i386/kernel/nmi.c +++ b/arch/i386/kernel/nmi.c | |||
@@ -357,7 +357,7 @@ static void clear_msr_range(unsigned int base, unsigned int n) | |||
357 | wrmsr(base+i, 0, 0); | 357 | wrmsr(base+i, 0, 0); |
358 | } | 358 | } |
359 | 359 | ||
360 | static inline void write_watchdog_counter(const char *descr) | 360 | static void write_watchdog_counter(const char *descr) |
361 | { | 361 | { |
362 | u64 count = (u64)cpu_khz * 1000; | 362 | u64 count = (u64)cpu_khz * 1000; |
363 | 363 | ||
@@ -544,7 +544,7 @@ void nmi_watchdog_tick (struct pt_regs * regs) | |||
544 | * die_nmi will return ONLY if NOTIFY_STOP happens.. | 544 | * die_nmi will return ONLY if NOTIFY_STOP happens.. |
545 | */ | 545 | */ |
546 | die_nmi(regs, "NMI Watchdog detected LOCKUP"); | 546 | die_nmi(regs, "NMI Watchdog detected LOCKUP"); |
547 | 547 | } else { | |
548 | last_irq_sums[cpu] = sum; | 548 | last_irq_sums[cpu] = sum; |
549 | alert_counter[cpu] = 0; | 549 | alert_counter[cpu] = 0; |
550 | } | 550 | } |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 51e513b4f72d..ab62a9f4701e 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -1599,6 +1599,10 @@ void __init setup_arch(char **cmdline_p) | |||
1599 | if (efi_enabled) | 1599 | if (efi_enabled) |
1600 | efi_map_memmap(); | 1600 | efi_map_memmap(); |
1601 | 1601 | ||
1602 | #ifdef CONFIG_X86_IO_APIC | ||
1603 | check_acpi_pci(); /* Checks more than just ACPI actually */ | ||
1604 | #endif | ||
1605 | |||
1602 | #ifdef CONFIG_ACPI | 1606 | #ifdef CONFIG_ACPI |
1603 | /* | 1607 | /* |
1604 | * Parse the ACPI tables for possible boot-time SMP configuration. | 1608 | * Parse the ACPI tables for possible boot-time SMP configuration. |
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index 255adb498268..7007e1783797 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -87,11 +87,7 @@ EXPORT_SYMBOL(cpu_online_map); | |||
87 | cpumask_t cpu_callin_map; | 87 | cpumask_t cpu_callin_map; |
88 | cpumask_t cpu_callout_map; | 88 | cpumask_t cpu_callout_map; |
89 | EXPORT_SYMBOL(cpu_callout_map); | 89 | EXPORT_SYMBOL(cpu_callout_map); |
90 | #ifdef CONFIG_HOTPLUG_CPU | ||
91 | cpumask_t cpu_possible_map = CPU_MASK_ALL; | ||
92 | #else | ||
93 | cpumask_t cpu_possible_map; | 90 | cpumask_t cpu_possible_map; |
94 | #endif | ||
95 | EXPORT_SYMBOL(cpu_possible_map); | 91 | EXPORT_SYMBOL(cpu_possible_map); |
96 | static cpumask_t smp_commenced_mask; | 92 | static cpumask_t smp_commenced_mask; |
97 | 93 | ||
@@ -902,12 +898,6 @@ static int __devinit do_boot_cpu(int apicid, int cpu) | |||
902 | unsigned long start_eip; | 898 | unsigned long start_eip; |
903 | unsigned short nmi_high = 0, nmi_low = 0; | 899 | unsigned short nmi_high = 0, nmi_low = 0; |
904 | 900 | ||
905 | if (!cpu_gdt_descr[cpu].address && | ||
906 | !(cpu_gdt_descr[cpu].address = get_zeroed_page(GFP_KERNEL))) { | ||
907 | printk("Failed to allocate GDT for CPU %d\n", cpu); | ||
908 | return 1; | ||
909 | } | ||
910 | |||
911 | ++cpucount; | 901 | ++cpucount; |
912 | 902 | ||
913 | /* | 903 | /* |
@@ -1039,6 +1029,16 @@ int __devinit smp_prepare_cpu(int cpu) | |||
1039 | int apicid, ret; | 1029 | int apicid, ret; |
1040 | 1030 | ||
1041 | lock_cpu_hotplug(); | 1031 | lock_cpu_hotplug(); |
1032 | |||
1033 | /* | ||
1034 | * On x86, CPU0 is never offlined. Trying to bring up an | ||
1035 | * already-booted CPU will hang. So check for that case. | ||
1036 | */ | ||
1037 | if (cpu_online(cpu)) { | ||
1038 | ret = -EINVAL; | ||
1039 | goto exit; | ||
1040 | } | ||
1041 | |||
1042 | apicid = x86_cpu_to_apicid[cpu]; | 1042 | apicid = x86_cpu_to_apicid[cpu]; |
1043 | if (apicid == BAD_APICID) { | 1043 | if (apicid == BAD_APICID) { |
1044 | ret = -ENODEV; | 1044 | ret = -ENODEV; |
diff --git a/arch/i386/kernel/syscall_table.S b/arch/i386/kernel/syscall_table.S index 5a8b3fb6d27b..ac687d00a1ce 100644 --- a/arch/i386/kernel/syscall_table.S +++ b/arch/i386/kernel/syscall_table.S | |||
@@ -299,7 +299,7 @@ ENTRY(sys_call_table) | |||
299 | .long sys_mknodat | 299 | .long sys_mknodat |
300 | .long sys_fchownat | 300 | .long sys_fchownat |
301 | .long sys_futimesat | 301 | .long sys_futimesat |
302 | .long sys_newfstatat /* 300 */ | 302 | .long sys_fstatat64 /* 300 */ |
303 | .long sys_unlinkat | 303 | .long sys_unlinkat |
304 | .long sys_renameat | 304 | .long sys_renameat |
305 | .long sys_linkat | 305 | .long sys_linkat |
diff --git a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c index a14d594bfbeb..9d3074759856 100644 --- a/arch/i386/kernel/time.c +++ b/arch/i386/kernel/time.c | |||
@@ -412,9 +412,9 @@ static int timer_resume(struct sys_device *dev) | |||
412 | write_seqlock_irqsave(&xtime_lock, flags); | 412 | write_seqlock_irqsave(&xtime_lock, flags); |
413 | xtime.tv_sec = sec; | 413 | xtime.tv_sec = sec; |
414 | xtime.tv_nsec = 0; | 414 | xtime.tv_nsec = 0; |
415 | write_sequnlock_irqrestore(&xtime_lock, flags); | 415 | jiffies_64 += sleep_length; |
416 | jiffies += sleep_length; | ||
417 | wall_jiffies += sleep_length; | 416 | wall_jiffies += sleep_length; |
417 | write_sequnlock_irqrestore(&xtime_lock, flags); | ||
418 | if (last_timer->resume) | 418 | if (last_timer->resume) |
419 | last_timer->resume(); | 419 | last_timer->resume(); |
420 | cur_timer = last_timer; | 420 | cur_timer = last_timer; |
diff --git a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c index 7c86e3c5f1c1..a7f5a2aceba2 100644 --- a/arch/i386/kernel/timers/timer_tsc.c +++ b/arch/i386/kernel/timers/timer_tsc.c | |||
@@ -282,6 +282,10 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | |||
282 | if (val != CPUFREQ_RESUMECHANGE) | 282 | if (val != CPUFREQ_RESUMECHANGE) |
283 | write_seqlock_irq(&xtime_lock); | 283 | write_seqlock_irq(&xtime_lock); |
284 | if (!ref_freq) { | 284 | if (!ref_freq) { |
285 | if (!freq->old){ | ||
286 | ref_freq = freq->new; | ||
287 | goto end; | ||
288 | } | ||
285 | ref_freq = freq->old; | 289 | ref_freq = freq->old; |
286 | loops_per_jiffy_ref = cpu_data[freq->cpu].loops_per_jiffy; | 290 | loops_per_jiffy_ref = cpu_data[freq->cpu].loops_per_jiffy; |
287 | #ifndef CONFIG_SMP | 291 | #ifndef CONFIG_SMP |
@@ -307,6 +311,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | |||
307 | #endif | 311 | #endif |
308 | } | 312 | } |
309 | 313 | ||
314 | end: | ||
310 | if (val != CPUFREQ_RESUMECHANGE) | 315 | if (val != CPUFREQ_RESUMECHANGE) |
311 | write_sequnlock_irq(&xtime_lock); | 316 | write_sequnlock_irq(&xtime_lock); |
312 | 317 | ||
diff --git a/arch/i386/mach-default/topology.c b/arch/i386/kernel/topology.c index b64314069e78..67a0e1baa28b 100644 --- a/arch/i386/mach-default/topology.c +++ b/arch/i386/kernel/topology.c | |||
@@ -1,12 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * arch/i386/mach-generic/topology.c - Populate driverfs with topology information | 2 | * arch/i386/kernel/topology.c - Populate driverfs with topology information |
3 | * | 3 | * |
4 | * Written by: Matthew Dobson, IBM Corporation | 4 | * Written by: Matthew Dobson, IBM Corporation |
5 | * Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL | 5 | * Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL |
6 | * | 6 | * |
7 | * Copyright (C) 2002, IBM Corp. | 7 | * Copyright (C) 2002, IBM Corp. |
8 | * | 8 | * |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * This program is free software; you can redistribute it and/or modify | 11 | * This program is free software; you can redistribute it and/or modify |
12 | * it under the terms of the GNU General Public License as published by | 12 | * it under the terms of the GNU General Public License as published by |
@@ -34,7 +34,7 @@ static struct i386_cpu cpu_devices[NR_CPUS]; | |||
34 | 34 | ||
35 | int arch_register_cpu(int num){ | 35 | int arch_register_cpu(int num){ |
36 | struct node *parent = NULL; | 36 | struct node *parent = NULL; |
37 | 37 | ||
38 | #ifdef CONFIG_NUMA | 38 | #ifdef CONFIG_NUMA |
39 | int node = cpu_to_node(num); | 39 | int node = cpu_to_node(num); |
40 | if (node_online(node)) | 40 | if (node_online(node)) |
diff --git a/arch/i386/kernel/vsyscall-sysenter.S b/arch/i386/kernel/vsyscall-sysenter.S index 4daefb2ec1b2..76b728159403 100644 --- a/arch/i386/kernel/vsyscall-sysenter.S +++ b/arch/i386/kernel/vsyscall-sysenter.S | |||
@@ -7,6 +7,21 @@ | |||
7 | * for details. | 7 | * for details. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | /* | ||
11 | * The caller puts arg2 in %ecx, which gets pushed. The kernel will use | ||
12 | * %ecx itself for arg2. The pushing is because the sysexit instruction | ||
13 | * (found in entry.S) requires that we clobber %ecx with the desired %esp. | ||
14 | * User code might expect that %ecx is unclobbered though, as it would be | ||
15 | * for returning via the iret instruction, so we must push and pop. | ||
16 | * | ||
17 | * The caller puts arg3 in %edx, which the sysexit instruction requires | ||
18 | * for %eip. Thus, exactly as for arg2, we must push and pop. | ||
19 | * | ||
20 | * Arg6 is different. The caller puts arg6 in %ebp. Since the sysenter | ||
21 | * instruction clobbers %esp, the user's %esp won't even survive entry | ||
22 | * into the kernel. We store %esp in %ebp. Code in entry.S must fetch | ||
23 | * arg6 from the stack. | ||
24 | */ | ||
10 | .text | 25 | .text |
11 | .globl __kernel_vsyscall | 26 | .globl __kernel_vsyscall |
12 | .type __kernel_vsyscall,@function | 27 | .type __kernel_vsyscall,@function |
diff --git a/arch/i386/mach-default/Makefile b/arch/i386/mach-default/Makefile index e95bb0237921..012fe34459e6 100644 --- a/arch/i386/mach-default/Makefile +++ b/arch/i386/mach-default/Makefile | |||
@@ -2,4 +2,4 @@ | |||
2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := setup.o topology.o | 5 | obj-y := setup.o |
diff --git a/arch/i386/mach-voyager/voyager_basic.c b/arch/i386/mach-voyager/voyager_basic.c index aa49a33a572c..b584060ec004 100644 --- a/arch/i386/mach-voyager/voyager_basic.c +++ b/arch/i386/mach-voyager/voyager_basic.c | |||
@@ -23,6 +23,8 @@ | |||
23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
24 | #include <linux/reboot.h> | 24 | #include <linux/reboot.h> |
25 | #include <linux/sysrq.h> | 25 | #include <linux/sysrq.h> |
26 | #include <linux/smp.h> | ||
27 | #include <linux/nodemask.h> | ||
26 | #include <asm/io.h> | 28 | #include <asm/io.h> |
27 | #include <asm/voyager.h> | 29 | #include <asm/voyager.h> |
28 | #include <asm/vic.h> | 30 | #include <asm/vic.h> |
@@ -328,4 +330,3 @@ void machine_power_off(void) | |||
328 | if (pm_power_off) | 330 | if (pm_power_off) |
329 | pm_power_off(); | 331 | pm_power_off(); |
330 | } | 332 | } |
331 | |||
diff --git a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c index 72a1b9cae2e4..8165626a5c30 100644 --- a/arch/i386/mach-voyager/voyager_smp.c +++ b/arch/i386/mach-voyager/voyager_smp.c | |||
@@ -240,7 +240,7 @@ static cpumask_t smp_commenced_mask = CPU_MASK_NONE; | |||
240 | cpumask_t cpu_callin_map = CPU_MASK_NONE; | 240 | cpumask_t cpu_callin_map = CPU_MASK_NONE; |
241 | cpumask_t cpu_callout_map = CPU_MASK_NONE; | 241 | cpumask_t cpu_callout_map = CPU_MASK_NONE; |
242 | EXPORT_SYMBOL(cpu_callout_map); | 242 | EXPORT_SYMBOL(cpu_callout_map); |
243 | cpumask_t cpu_possible_map = CPU_MASK_ALL; | 243 | cpumask_t cpu_possible_map = CPU_MASK_NONE; |
244 | EXPORT_SYMBOL(cpu_possible_map); | 244 | EXPORT_SYMBOL(cpu_possible_map); |
245 | 245 | ||
246 | /* The per processor IRQ masks (these are usually kept in sync) */ | 246 | /* The per processor IRQ masks (these are usually kept in sync) */ |
@@ -402,6 +402,7 @@ find_smp_config(void) | |||
402 | cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8; | 402 | cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8; |
403 | cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 2) << 16; | 403 | cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 2) << 16; |
404 | cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 3) << 24; | 404 | cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 3) << 24; |
405 | cpu_possible_map = phys_cpu_present_map; | ||
405 | printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n", cpus_addr(phys_cpu_present_map)[0]); | 406 | printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n", cpus_addr(phys_cpu_present_map)[0]); |
406 | /* Here we set up the VIC to enable SMP */ | 407 | /* Here we set up the VIC to enable SMP */ |
407 | /* enable the CPIs by writing the base vector to their register */ | 408 | /* enable the CPIs by writing the base vector to their register */ |
diff --git a/arch/i386/oprofile/backtrace.c b/arch/i386/oprofile/backtrace.c index acc18138fb22..c049ce414f01 100644 --- a/arch/i386/oprofile/backtrace.c +++ b/arch/i386/oprofile/backtrace.c | |||
@@ -20,7 +20,20 @@ struct frame_head { | |||
20 | } __attribute__((packed)); | 20 | } __attribute__((packed)); |
21 | 21 | ||
22 | static struct frame_head * | 22 | static struct frame_head * |
23 | dump_backtrace(struct frame_head * head) | 23 | dump_kernel_backtrace(struct frame_head * head) |
24 | { | ||
25 | oprofile_add_trace(head->ret); | ||
26 | |||
27 | /* frame pointers should strictly progress back up the stack | ||
28 | * (towards higher addresses) */ | ||
29 | if (head >= head->ebp) | ||
30 | return NULL; | ||
31 | |||
32 | return head->ebp; | ||
33 | } | ||
34 | |||
35 | static struct frame_head * | ||
36 | dump_user_backtrace(struct frame_head * head) | ||
24 | { | 37 | { |
25 | struct frame_head bufhead[2]; | 38 | struct frame_head bufhead[2]; |
26 | 39 | ||
@@ -105,10 +118,10 @@ x86_backtrace(struct pt_regs * const regs, unsigned int depth) | |||
105 | 118 | ||
106 | if (!user_mode_vm(regs)) { | 119 | if (!user_mode_vm(regs)) { |
107 | while (depth-- && valid_kernel_stack(head, regs)) | 120 | while (depth-- && valid_kernel_stack(head, regs)) |
108 | head = dump_backtrace(head); | 121 | head = dump_kernel_backtrace(head); |
109 | return; | 122 | return; |
110 | } | 123 | } |
111 | 124 | ||
112 | while (depth-- && head) | 125 | while (depth-- && head) |
113 | head = dump_backtrace(head); | 126 | head = dump_user_backtrace(head); |
114 | } | 127 | } |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 845cd0902a50..ff7ae6b664e8 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -271,6 +271,25 @@ config SCHED_SMT | |||
271 | Intel IA64 chips with MultiThreading at a cost of slightly increased | 271 | Intel IA64 chips with MultiThreading at a cost of slightly increased |
272 | overhead in some places. If unsure say N here. | 272 | overhead in some places. If unsure say N here. |
273 | 273 | ||
274 | config PERMIT_BSP_REMOVE | ||
275 | bool "Support removal of Bootstrap Processor" | ||
276 | depends on HOTPLUG_CPU | ||
277 | default n | ||
278 | ---help--- | ||
279 | Say Y here if your platform SAL will support removal of BSP with HOTPLUG_CPU | ||
280 | support. | ||
281 | |||
282 | config FORCE_CPEI_RETARGET | ||
283 | bool "Force assumption that CPEI can be re-targetted" | ||
284 | depends on PERMIT_BSP_REMOVE | ||
285 | default n | ||
286 | ---help--- | ||
287 | Say Y if you need to force the assumption that CPEI can be re-targetted to | ||
288 | any cpu in the system. This hint is available via ACPI 3.0 specifications. | ||
289 | Tiger4 systems are capable of re-directing CPEI to any CPU other than BSP. | ||
290 | This option it useful to enable this feature on older BIOS's as well. | ||
291 | You can also enable this by using boot command line option force_cpei=1. | ||
292 | |||
274 | config PREEMPT | 293 | config PREEMPT |
275 | bool "Preemptible Kernel" | 294 | bool "Preemptible Kernel" |
276 | help | 295 | help |
@@ -453,6 +472,7 @@ source "arch/ia64/oprofile/Kconfig" | |||
453 | 472 | ||
454 | config KPROBES | 473 | config KPROBES |
455 | bool "Kprobes (EXPERIMENTAL)" | 474 | bool "Kprobes (EXPERIMENTAL)" |
475 | depends on EXPERIMENTAL && MODULES | ||
456 | help | 476 | help |
457 | Kprobes allows you to trap at almost any kernel address and | 477 | Kprobes allows you to trap at almost any kernel address and |
458 | execute a callback function. register_kprobe() establishes | 478 | execute a callback function. register_kprobe() establishes |
diff --git a/arch/ia64/configs/bigsur_defconfig b/arch/ia64/configs/bigsur_defconfig index b40672bb3ab0..90e9c2e61bf4 100644 --- a/arch/ia64/configs/bigsur_defconfig +++ b/arch/ia64/configs/bigsur_defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.14-rc1 | 3 | # Linux kernel version: 2.6.16-rc5 |
4 | # Wed Sep 14 15:18:49 2005 | 4 | # Mon Feb 27 16:10:42 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
8 | # Code maturity level options | 8 | # Code maturity level options |
9 | # | 9 | # |
10 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
11 | CONFIG_CLEAN_COMPILE=y | ||
12 | CONFIG_LOCK_KERNEL=y | 11 | CONFIG_LOCK_KERNEL=y |
13 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
14 | 13 | ||
@@ -23,17 +22,18 @@ CONFIG_POSIX_MQUEUE=y | |||
23 | # CONFIG_BSD_PROCESS_ACCT is not set | 22 | # CONFIG_BSD_PROCESS_ACCT is not set |
24 | CONFIG_SYSCTL=y | 23 | CONFIG_SYSCTL=y |
25 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
26 | CONFIG_HOTPLUG=y | ||
27 | CONFIG_KOBJECT_UEVENT=y | ||
28 | # CONFIG_IKCONFIG is not set | 25 | # CONFIG_IKCONFIG is not set |
29 | # CONFIG_CPUSETS is not set | 26 | # CONFIG_CPUSETS is not set |
30 | CONFIG_INITRAMFS_SOURCE="" | 27 | CONFIG_INITRAMFS_SOURCE="" |
28 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
31 | # CONFIG_EMBEDDED is not set | 29 | # CONFIG_EMBEDDED is not set |
32 | CONFIG_KALLSYMS=y | 30 | CONFIG_KALLSYMS=y |
33 | # CONFIG_KALLSYMS_ALL is not set | 31 | # CONFIG_KALLSYMS_ALL is not set |
34 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 32 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
33 | CONFIG_HOTPLUG=y | ||
35 | CONFIG_PRINTK=y | 34 | CONFIG_PRINTK=y |
36 | CONFIG_BUG=y | 35 | CONFIG_BUG=y |
36 | CONFIG_ELF_CORE=y | ||
37 | CONFIG_BASE_FULL=y | 37 | CONFIG_BASE_FULL=y |
38 | CONFIG_FUTEX=y | 38 | CONFIG_FUTEX=y |
39 | CONFIG_EPOLL=y | 39 | CONFIG_EPOLL=y |
@@ -42,8 +42,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
42 | CONFIG_CC_ALIGN_LABELS=0 | 42 | CONFIG_CC_ALIGN_LABELS=0 |
43 | CONFIG_CC_ALIGN_LOOPS=0 | 43 | CONFIG_CC_ALIGN_LOOPS=0 |
44 | CONFIG_CC_ALIGN_JUMPS=0 | 44 | CONFIG_CC_ALIGN_JUMPS=0 |
45 | CONFIG_SLAB=y | ||
45 | # CONFIG_TINY_SHMEM is not set | 46 | # CONFIG_TINY_SHMEM is not set |
46 | CONFIG_BASE_SMALL=0 | 47 | CONFIG_BASE_SMALL=0 |
48 | # CONFIG_SLOB is not set | ||
47 | 49 | ||
48 | # | 50 | # |
49 | # Loadable module support | 51 | # Loadable module support |
@@ -58,17 +60,36 @@ CONFIG_KMOD=y | |||
58 | CONFIG_STOP_MACHINE=y | 60 | CONFIG_STOP_MACHINE=y |
59 | 61 | ||
60 | # | 62 | # |
63 | # Block layer | ||
64 | # | ||
65 | |||
66 | # | ||
67 | # IO Schedulers | ||
68 | # | ||
69 | CONFIG_IOSCHED_NOOP=y | ||
70 | CONFIG_IOSCHED_AS=y | ||
71 | CONFIG_IOSCHED_DEADLINE=y | ||
72 | CONFIG_IOSCHED_CFQ=y | ||
73 | CONFIG_DEFAULT_AS=y | ||
74 | # CONFIG_DEFAULT_DEADLINE is not set | ||
75 | # CONFIG_DEFAULT_CFQ is not set | ||
76 | # CONFIG_DEFAULT_NOOP is not set | ||
77 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
78 | |||
79 | # | ||
61 | # Processor type and features | 80 | # Processor type and features |
62 | # | 81 | # |
63 | CONFIG_IA64=y | 82 | CONFIG_IA64=y |
64 | CONFIG_64BIT=y | 83 | CONFIG_64BIT=y |
65 | CONFIG_MMU=y | 84 | CONFIG_MMU=y |
85 | CONFIG_SWIOTLB=y | ||
66 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 86 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 87 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_TIME_INTERPOLATION=y | 88 | CONFIG_TIME_INTERPOLATION=y |
69 | CONFIG_EFI=y | 89 | CONFIG_EFI=y |
70 | CONFIG_GENERIC_IOMAP=y | 90 | CONFIG_GENERIC_IOMAP=y |
71 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 91 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
92 | CONFIG_DMA_IS_DMA32=y | ||
72 | # CONFIG_IA64_GENERIC is not set | 93 | # CONFIG_IA64_GENERIC is not set |
73 | CONFIG_IA64_DIG=y | 94 | CONFIG_IA64_DIG=y |
74 | # CONFIG_IA64_HP_ZX1 is not set | 95 | # CONFIG_IA64_HP_ZX1 is not set |
@@ -81,18 +102,17 @@ CONFIG_ITANIUM=y | |||
81 | # CONFIG_IA64_PAGE_SIZE_8KB is not set | 102 | # CONFIG_IA64_PAGE_SIZE_8KB is not set |
82 | CONFIG_IA64_PAGE_SIZE_16KB=y | 103 | CONFIG_IA64_PAGE_SIZE_16KB=y |
83 | # CONFIG_IA64_PAGE_SIZE_64KB is not set | 104 | # CONFIG_IA64_PAGE_SIZE_64KB is not set |
105 | CONFIG_PGTABLE_3=y | ||
106 | # CONFIG_PGTABLE_4 is not set | ||
84 | # CONFIG_HZ_100 is not set | 107 | # CONFIG_HZ_100 is not set |
85 | CONFIG_HZ_250=y | 108 | CONFIG_HZ_250=y |
86 | # CONFIG_HZ_1000 is not set | 109 | # CONFIG_HZ_1000 is not set |
87 | CONFIG_HZ=250 | 110 | CONFIG_HZ=250 |
88 | CONFIG_IA64_BRL_EMU=y | 111 | CONFIG_IA64_BRL_EMU=y |
89 | CONFIG_IA64_L1_CACHE_SHIFT=6 | 112 | CONFIG_IA64_L1_CACHE_SHIFT=6 |
90 | # CONFIG_NUMA is not set | ||
91 | # CONFIG_VIRTUAL_MEM_MAP is not set | ||
92 | # CONFIG_IA64_CYCLONE is not set | 113 | # CONFIG_IA64_CYCLONE is not set |
93 | CONFIG_IOSAPIC=y | 114 | CONFIG_IOSAPIC=y |
94 | # CONFIG_IA64_SGI_SN_XP is not set | 115 | CONFIG_FORCE_MAX_ZONEORDER=17 |
95 | CONFIG_FORCE_MAX_ZONEORDER=18 | ||
96 | CONFIG_SMP=y | 116 | CONFIG_SMP=y |
97 | CONFIG_NR_CPUS=2 | 117 | CONFIG_NR_CPUS=2 |
98 | # CONFIG_HOTPLUG_CPU is not set | 118 | # CONFIG_HOTPLUG_CPU is not set |
@@ -105,7 +125,12 @@ CONFIG_FLATMEM_MANUAL=y | |||
105 | CONFIG_FLATMEM=y | 125 | CONFIG_FLATMEM=y |
106 | CONFIG_FLAT_NODE_MEM_MAP=y | 126 | CONFIG_FLAT_NODE_MEM_MAP=y |
107 | # CONFIG_SPARSEMEM_STATIC is not set | 127 | # CONFIG_SPARSEMEM_STATIC is not set |
108 | CONFIG_HAVE_DEC_LOCK=y | 128 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
129 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
130 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
131 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
132 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
133 | # CONFIG_VIRTUAL_MEM_MAP is not set | ||
109 | CONFIG_IA32_SUPPORT=y | 134 | CONFIG_IA32_SUPPORT=y |
110 | CONFIG_COMPAT=y | 135 | CONFIG_COMPAT=y |
111 | # CONFIG_IA64_MCA_RECOVERY is not set | 136 | # CONFIG_IA64_MCA_RECOVERY is not set |
@@ -117,7 +142,6 @@ CONFIG_IA64_PALINFO=y | |||
117 | # | 142 | # |
118 | CONFIG_EFI_VARS=y | 143 | CONFIG_EFI_VARS=y |
119 | CONFIG_EFI_PCDP=y | 144 | CONFIG_EFI_PCDP=y |
120 | # CONFIG_DELL_RBU is not set | ||
121 | CONFIG_BINFMT_ELF=y | 145 | CONFIG_BINFMT_ELF=y |
122 | CONFIG_BINFMT_MISC=m | 146 | CONFIG_BINFMT_MISC=m |
123 | 147 | ||
@@ -125,6 +149,7 @@ CONFIG_BINFMT_MISC=m | |||
125 | # Power management and ACPI | 149 | # Power management and ACPI |
126 | # | 150 | # |
127 | CONFIG_PM=y | 151 | CONFIG_PM=y |
152 | CONFIG_PM_LEGACY=y | ||
128 | # CONFIG_PM_DEBUG is not set | 153 | # CONFIG_PM_DEBUG is not set |
129 | 154 | ||
130 | # | 155 | # |
@@ -137,6 +162,7 @@ CONFIG_ACPI_PROCESSOR=m | |||
137 | CONFIG_ACPI_THERMAL=m | 162 | CONFIG_ACPI_THERMAL=m |
138 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 163 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
139 | # CONFIG_ACPI_DEBUG is not set | 164 | # CONFIG_ACPI_DEBUG is not set |
165 | CONFIG_ACPI_EC=y | ||
140 | CONFIG_ACPI_POWER=y | 166 | CONFIG_ACPI_POWER=y |
141 | CONFIG_ACPI_SYSTEM=y | 167 | CONFIG_ACPI_SYSTEM=y |
142 | # CONFIG_ACPI_CONTAINER is not set | 168 | # CONFIG_ACPI_CONTAINER is not set |
@@ -173,6 +199,7 @@ CONFIG_NET=y | |||
173 | # | 199 | # |
174 | # Networking options | 200 | # Networking options |
175 | # | 201 | # |
202 | # CONFIG_NETDEBUG is not set | ||
176 | CONFIG_PACKET=y | 203 | CONFIG_PACKET=y |
177 | CONFIG_PACKET_MMAP=y | 204 | CONFIG_PACKET_MMAP=y |
178 | CONFIG_UNIX=y | 205 | CONFIG_UNIX=y |
@@ -206,6 +233,11 @@ CONFIG_TCP_CONG_BIC=y | |||
206 | # SCTP Configuration (EXPERIMENTAL) | 233 | # SCTP Configuration (EXPERIMENTAL) |
207 | # | 234 | # |
208 | # CONFIG_IP_SCTP is not set | 235 | # CONFIG_IP_SCTP is not set |
236 | |||
237 | # | ||
238 | # TIPC Configuration (EXPERIMENTAL) | ||
239 | # | ||
240 | # CONFIG_TIPC is not set | ||
209 | # CONFIG_ATM is not set | 241 | # CONFIG_ATM is not set |
210 | # CONFIG_BRIDGE is not set | 242 | # CONFIG_BRIDGE is not set |
211 | # CONFIG_VLAN_8021Q is not set | 243 | # CONFIG_VLAN_8021Q is not set |
@@ -218,14 +250,16 @@ CONFIG_TCP_CONG_BIC=y | |||
218 | # CONFIG_NET_DIVERT is not set | 250 | # CONFIG_NET_DIVERT is not set |
219 | # CONFIG_ECONET is not set | 251 | # CONFIG_ECONET is not set |
220 | # CONFIG_WAN_ROUTER is not set | 252 | # CONFIG_WAN_ROUTER is not set |
253 | |||
254 | # | ||
255 | # QoS and/or fair queueing | ||
256 | # | ||
221 | # CONFIG_NET_SCHED is not set | 257 | # CONFIG_NET_SCHED is not set |
222 | # CONFIG_NET_CLS_ROUTE is not set | ||
223 | 258 | ||
224 | # | 259 | # |
225 | # Network testing | 260 | # Network testing |
226 | # | 261 | # |
227 | # CONFIG_NET_PKTGEN is not set | 262 | # CONFIG_NET_PKTGEN is not set |
228 | # CONFIG_NETFILTER_NETLINK is not set | ||
229 | # CONFIG_HAMRADIO is not set | 263 | # CONFIG_HAMRADIO is not set |
230 | # CONFIG_IRDA is not set | 264 | # CONFIG_IRDA is not set |
231 | # CONFIG_BT is not set | 265 | # CONFIG_BT is not set |
@@ -286,20 +320,13 @@ CONFIG_BLK_DEV_RAM=m | |||
286 | CONFIG_BLK_DEV_RAM_COUNT=16 | 320 | CONFIG_BLK_DEV_RAM_COUNT=16 |
287 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 321 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
288 | # CONFIG_CDROM_PKTCDVD is not set | 322 | # CONFIG_CDROM_PKTCDVD is not set |
289 | |||
290 | # | ||
291 | # IO Schedulers | ||
292 | # | ||
293 | CONFIG_IOSCHED_NOOP=y | ||
294 | CONFIG_IOSCHED_AS=y | ||
295 | CONFIG_IOSCHED_DEADLINE=y | ||
296 | CONFIG_IOSCHED_CFQ=y | ||
297 | # CONFIG_ATA_OVER_ETH is not set | 323 | # CONFIG_ATA_OVER_ETH is not set |
298 | 324 | ||
299 | # | 325 | # |
300 | # ATA/ATAPI/MFM/RLL support | 326 | # ATA/ATAPI/MFM/RLL support |
301 | # | 327 | # |
302 | CONFIG_IDE=m | 328 | CONFIG_IDE=m |
329 | CONFIG_IDE_MAX_HWIFS=4 | ||
303 | CONFIG_BLK_DEV_IDE=m | 330 | CONFIG_BLK_DEV_IDE=m |
304 | 331 | ||
305 | # | 332 | # |
@@ -390,6 +417,7 @@ CONFIG_SCSI_SPI_ATTRS=m | |||
390 | # | 417 | # |
391 | # SCSI low-level drivers | 418 | # SCSI low-level drivers |
392 | # | 419 | # |
420 | # CONFIG_ISCSI_TCP is not set | ||
393 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 421 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
394 | # CONFIG_SCSI_3W_9XXX is not set | 422 | # CONFIG_SCSI_3W_9XXX is not set |
395 | # CONFIG_SCSI_ACARD is not set | 423 | # CONFIG_SCSI_ACARD is not set |
@@ -399,6 +427,7 @@ CONFIG_SCSI_SPI_ATTRS=m | |||
399 | # CONFIG_SCSI_AIC79XX is not set | 427 | # CONFIG_SCSI_AIC79XX is not set |
400 | # CONFIG_MEGARAID_NEWGEN is not set | 428 | # CONFIG_MEGARAID_NEWGEN is not set |
401 | # CONFIG_MEGARAID_LEGACY is not set | 429 | # CONFIG_MEGARAID_LEGACY is not set |
430 | # CONFIG_MEGARAID_SAS is not set | ||
402 | # CONFIG_SCSI_SATA is not set | 431 | # CONFIG_SCSI_SATA is not set |
403 | # CONFIG_SCSI_DMX3191D is not set | 432 | # CONFIG_SCSI_DMX3191D is not set |
404 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 433 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
@@ -409,14 +438,7 @@ CONFIG_SCSI_SPI_ATTRS=m | |||
409 | # CONFIG_SCSI_IPR is not set | 438 | # CONFIG_SCSI_IPR is not set |
410 | # CONFIG_SCSI_QLOGIC_FC is not set | 439 | # CONFIG_SCSI_QLOGIC_FC is not set |
411 | CONFIG_SCSI_QLOGIC_1280=y | 440 | CONFIG_SCSI_QLOGIC_1280=y |
412 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set | 441 | # CONFIG_SCSI_QLA_FC is not set |
413 | CONFIG_SCSI_QLA2XXX=y | ||
414 | # CONFIG_SCSI_QLA21XX is not set | ||
415 | # CONFIG_SCSI_QLA22XX is not set | ||
416 | # CONFIG_SCSI_QLA2300 is not set | ||
417 | # CONFIG_SCSI_QLA2322 is not set | ||
418 | # CONFIG_SCSI_QLA6312 is not set | ||
419 | # CONFIG_SCSI_QLA24XX is not set | ||
420 | # CONFIG_SCSI_LPFC is not set | 442 | # CONFIG_SCSI_LPFC is not set |
421 | # CONFIG_SCSI_DC395x is not set | 443 | # CONFIG_SCSI_DC395x is not set |
422 | # CONFIG_SCSI_DC390T is not set | 444 | # CONFIG_SCSI_DC390T is not set |
@@ -448,6 +470,7 @@ CONFIG_DM_ZERO=m | |||
448 | # CONFIG_FUSION is not set | 470 | # CONFIG_FUSION is not set |
449 | # CONFIG_FUSION_SPI is not set | 471 | # CONFIG_FUSION_SPI is not set |
450 | # CONFIG_FUSION_FC is not set | 472 | # CONFIG_FUSION_FC is not set |
473 | # CONFIG_FUSION_SAS is not set | ||
451 | 474 | ||
452 | # | 475 | # |
453 | # IEEE 1394 (FireWire) support | 476 | # IEEE 1394 (FireWire) support |
@@ -486,6 +509,7 @@ CONFIG_NET_ETHERNET=y | |||
486 | CONFIG_MII=y | 509 | CONFIG_MII=y |
487 | # CONFIG_HAPPYMEAL is not set | 510 | # CONFIG_HAPPYMEAL is not set |
488 | # CONFIG_SUNGEM is not set | 511 | # CONFIG_SUNGEM is not set |
512 | # CONFIG_CASSINI is not set | ||
489 | # CONFIG_NET_VENDOR_3COM is not set | 513 | # CONFIG_NET_VENDOR_3COM is not set |
490 | 514 | ||
491 | # | 515 | # |
@@ -524,6 +548,7 @@ CONFIG_EEPRO100=y | |||
524 | # CONFIG_R8169 is not set | 548 | # CONFIG_R8169 is not set |
525 | # CONFIG_SIS190 is not set | 549 | # CONFIG_SIS190 is not set |
526 | # CONFIG_SKGE is not set | 550 | # CONFIG_SKGE is not set |
551 | # CONFIG_SKY2 is not set | ||
527 | # CONFIG_SK98LIN is not set | 552 | # CONFIG_SK98LIN is not set |
528 | # CONFIG_VIA_VELOCITY is not set | 553 | # CONFIG_VIA_VELOCITY is not set |
529 | # CONFIG_TIGON3 is not set | 554 | # CONFIG_TIGON3 is not set |
@@ -630,6 +655,7 @@ CONFIG_SERIAL_8250=y | |||
630 | CONFIG_SERIAL_8250_CONSOLE=y | 655 | CONFIG_SERIAL_8250_CONSOLE=y |
631 | CONFIG_SERIAL_8250_ACPI=y | 656 | CONFIG_SERIAL_8250_ACPI=y |
632 | CONFIG_SERIAL_8250_NR_UARTS=4 | 657 | CONFIG_SERIAL_8250_NR_UARTS=4 |
658 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
633 | CONFIG_SERIAL_8250_EXTENDED=y | 659 | CONFIG_SERIAL_8250_EXTENDED=y |
634 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 660 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
635 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 661 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
@@ -681,6 +707,7 @@ CONFIG_DRM_R128=m | |||
681 | # TPM devices | 707 | # TPM devices |
682 | # | 708 | # |
683 | # CONFIG_TCG_TPM is not set | 709 | # CONFIG_TCG_TPM is not set |
710 | # CONFIG_TELCLOCK is not set | ||
684 | 711 | ||
685 | # | 712 | # |
686 | # I2C support | 713 | # I2C support |
@@ -731,12 +758,19 @@ CONFIG_I2C_ALGOBIT=y | |||
731 | # CONFIG_SENSORS_PCF8591 is not set | 758 | # CONFIG_SENSORS_PCF8591 is not set |
732 | # CONFIG_SENSORS_RTC8564 is not set | 759 | # CONFIG_SENSORS_RTC8564 is not set |
733 | # CONFIG_SENSORS_MAX6875 is not set | 760 | # CONFIG_SENSORS_MAX6875 is not set |
761 | # CONFIG_RTC_X1205_I2C is not set | ||
734 | # CONFIG_I2C_DEBUG_CORE is not set | 762 | # CONFIG_I2C_DEBUG_CORE is not set |
735 | # CONFIG_I2C_DEBUG_ALGO is not set | 763 | # CONFIG_I2C_DEBUG_ALGO is not set |
736 | # CONFIG_I2C_DEBUG_BUS is not set | 764 | # CONFIG_I2C_DEBUG_BUS is not set |
737 | # CONFIG_I2C_DEBUG_CHIP is not set | 765 | # CONFIG_I2C_DEBUG_CHIP is not set |
738 | 766 | ||
739 | # | 767 | # |
768 | # SPI support | ||
769 | # | ||
770 | # CONFIG_SPI is not set | ||
771 | # CONFIG_SPI_MASTER is not set | ||
772 | |||
773 | # | ||
740 | # Dallas's 1-wire bus | 774 | # Dallas's 1-wire bus |
741 | # | 775 | # |
742 | # CONFIG_W1 is not set | 776 | # CONFIG_W1 is not set |
@@ -754,6 +788,7 @@ CONFIG_HWMON=y | |||
754 | # CONFIG_SENSORS_ASB100 is not set | 788 | # CONFIG_SENSORS_ASB100 is not set |
755 | # CONFIG_SENSORS_ATXP1 is not set | 789 | # CONFIG_SENSORS_ATXP1 is not set |
756 | # CONFIG_SENSORS_DS1621 is not set | 790 | # CONFIG_SENSORS_DS1621 is not set |
791 | # CONFIG_SENSORS_F71805F is not set | ||
757 | # CONFIG_SENSORS_FSCHER is not set | 792 | # CONFIG_SENSORS_FSCHER is not set |
758 | # CONFIG_SENSORS_FSCPOS is not set | 793 | # CONFIG_SENSORS_FSCPOS is not set |
759 | # CONFIG_SENSORS_GL518SM is not set | 794 | # CONFIG_SENSORS_GL518SM is not set |
@@ -775,6 +810,7 @@ CONFIG_HWMON=y | |||
775 | # CONFIG_SENSORS_SMSC47M1 is not set | 810 | # CONFIG_SENSORS_SMSC47M1 is not set |
776 | # CONFIG_SENSORS_SMSC47B397 is not set | 811 | # CONFIG_SENSORS_SMSC47B397 is not set |
777 | # CONFIG_SENSORS_VIA686A is not set | 812 | # CONFIG_SENSORS_VIA686A is not set |
813 | # CONFIG_SENSORS_VT8231 is not set | ||
778 | # CONFIG_SENSORS_W83781D is not set | 814 | # CONFIG_SENSORS_W83781D is not set |
779 | # CONFIG_SENSORS_W83792D is not set | 815 | # CONFIG_SENSORS_W83792D is not set |
780 | # CONFIG_SENSORS_W83L785TS is not set | 816 | # CONFIG_SENSORS_W83L785TS is not set |
@@ -830,6 +866,8 @@ CONFIG_SND_OSSEMUL=y | |||
830 | CONFIG_SND_MIXER_OSS=m | 866 | CONFIG_SND_MIXER_OSS=m |
831 | CONFIG_SND_PCM_OSS=m | 867 | CONFIG_SND_PCM_OSS=m |
832 | # CONFIG_SND_SEQUENCER_OSS is not set | 868 | # CONFIG_SND_SEQUENCER_OSS is not set |
869 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
870 | CONFIG_SND_SUPPORT_OLD_API=y | ||
833 | # CONFIG_SND_VERBOSE_PRINTK is not set | 871 | # CONFIG_SND_VERBOSE_PRINTK is not set |
834 | # CONFIG_SND_DEBUG is not set | 872 | # CONFIG_SND_DEBUG is not set |
835 | 873 | ||
@@ -837,17 +875,18 @@ CONFIG_SND_PCM_OSS=m | |||
837 | # Generic devices | 875 | # Generic devices |
838 | # | 876 | # |
839 | CONFIG_SND_OPL3_LIB=m | 877 | CONFIG_SND_OPL3_LIB=m |
878 | CONFIG_SND_AC97_CODEC=m | ||
879 | CONFIG_SND_AC97_BUS=m | ||
840 | # CONFIG_SND_DUMMY is not set | 880 | # CONFIG_SND_DUMMY is not set |
841 | # CONFIG_SND_VIRMIDI is not set | 881 | # CONFIG_SND_VIRMIDI is not set |
842 | # CONFIG_SND_MTPAV is not set | 882 | # CONFIG_SND_MTPAV is not set |
843 | # CONFIG_SND_SERIAL_U16550 is not set | 883 | # CONFIG_SND_SERIAL_U16550 is not set |
844 | # CONFIG_SND_MPU401 is not set | 884 | # CONFIG_SND_MPU401 is not set |
845 | CONFIG_SND_AC97_CODEC=m | ||
846 | CONFIG_SND_AC97_BUS=m | ||
847 | 885 | ||
848 | # | 886 | # |
849 | # PCI devices | 887 | # PCI devices |
850 | # | 888 | # |
889 | # CONFIG_SND_AD1889 is not set | ||
851 | # CONFIG_SND_ALI5451 is not set | 890 | # CONFIG_SND_ALI5451 is not set |
852 | # CONFIG_SND_ATIIXP is not set | 891 | # CONFIG_SND_ATIIXP is not set |
853 | # CONFIG_SND_ATIIXP_MODEM is not set | 892 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -856,38 +895,38 @@ CONFIG_SND_AC97_BUS=m | |||
856 | # CONFIG_SND_AU8830 is not set | 895 | # CONFIG_SND_AU8830 is not set |
857 | # CONFIG_SND_AZT3328 is not set | 896 | # CONFIG_SND_AZT3328 is not set |
858 | # CONFIG_SND_BT87X is not set | 897 | # CONFIG_SND_BT87X is not set |
859 | # CONFIG_SND_CS46XX is not set | 898 | # CONFIG_SND_CA0106 is not set |
899 | # CONFIG_SND_CMIPCI is not set | ||
860 | CONFIG_SND_CS4281=m | 900 | CONFIG_SND_CS4281=m |
901 | # CONFIG_SND_CS46XX is not set | ||
861 | # CONFIG_SND_EMU10K1 is not set | 902 | # CONFIG_SND_EMU10K1 is not set |
862 | # CONFIG_SND_EMU10K1X is not set | 903 | # CONFIG_SND_EMU10K1X is not set |
863 | # CONFIG_SND_CA0106 is not set | ||
864 | # CONFIG_SND_KORG1212 is not set | ||
865 | # CONFIG_SND_MIXART is not set | ||
866 | # CONFIG_SND_NM256 is not set | ||
867 | # CONFIG_SND_RME32 is not set | ||
868 | # CONFIG_SND_RME96 is not set | ||
869 | # CONFIG_SND_RME9652 is not set | ||
870 | # CONFIG_SND_HDSP is not set | ||
871 | # CONFIG_SND_HDSPM is not set | ||
872 | # CONFIG_SND_TRIDENT is not set | ||
873 | # CONFIG_SND_YMFPCI is not set | ||
874 | # CONFIG_SND_AD1889 is not set | ||
875 | # CONFIG_SND_CMIPCI is not set | ||
876 | # CONFIG_SND_ENS1370 is not set | 904 | # CONFIG_SND_ENS1370 is not set |
877 | # CONFIG_SND_ENS1371 is not set | 905 | # CONFIG_SND_ENS1371 is not set |
878 | # CONFIG_SND_ES1938 is not set | 906 | # CONFIG_SND_ES1938 is not set |
879 | # CONFIG_SND_ES1968 is not set | 907 | # CONFIG_SND_ES1968 is not set |
880 | # CONFIG_SND_MAESTRO3 is not set | ||
881 | # CONFIG_SND_FM801 is not set | 908 | # CONFIG_SND_FM801 is not set |
909 | # CONFIG_SND_HDA_INTEL is not set | ||
910 | # CONFIG_SND_HDSP is not set | ||
911 | # CONFIG_SND_HDSPM is not set | ||
882 | # CONFIG_SND_ICE1712 is not set | 912 | # CONFIG_SND_ICE1712 is not set |
883 | # CONFIG_SND_ICE1724 is not set | 913 | # CONFIG_SND_ICE1724 is not set |
884 | # CONFIG_SND_INTEL8X0 is not set | 914 | # CONFIG_SND_INTEL8X0 is not set |
885 | # CONFIG_SND_INTEL8X0M is not set | 915 | # CONFIG_SND_INTEL8X0M is not set |
916 | # CONFIG_SND_KORG1212 is not set | ||
917 | # CONFIG_SND_MAESTRO3 is not set | ||
918 | # CONFIG_SND_MIXART is not set | ||
919 | # CONFIG_SND_NM256 is not set | ||
920 | # CONFIG_SND_PCXHR is not set | ||
921 | # CONFIG_SND_RME32 is not set | ||
922 | # CONFIG_SND_RME96 is not set | ||
923 | # CONFIG_SND_RME9652 is not set | ||
886 | # CONFIG_SND_SONICVIBES is not set | 924 | # CONFIG_SND_SONICVIBES is not set |
925 | # CONFIG_SND_TRIDENT is not set | ||
887 | # CONFIG_SND_VIA82XX is not set | 926 | # CONFIG_SND_VIA82XX is not set |
888 | # CONFIG_SND_VIA82XX_MODEM is not set | 927 | # CONFIG_SND_VIA82XX_MODEM is not set |
889 | # CONFIG_SND_VX222 is not set | 928 | # CONFIG_SND_VX222 is not set |
890 | # CONFIG_SND_HDA_INTEL is not set | 929 | # CONFIG_SND_YMFPCI is not set |
891 | 930 | ||
892 | # | 931 | # |
893 | # USB devices | 932 | # USB devices |
@@ -929,12 +968,15 @@ CONFIG_USB_UHCI_HCD=m | |||
929 | # USB Device Class drivers | 968 | # USB Device Class drivers |
930 | # | 969 | # |
931 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | 970 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set |
932 | CONFIG_USB_BLUETOOTH_TTY=m | ||
933 | CONFIG_USB_ACM=m | 971 | CONFIG_USB_ACM=m |
934 | CONFIG_USB_PRINTER=m | 972 | CONFIG_USB_PRINTER=m |
935 | 973 | ||
936 | # | 974 | # |
937 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | 975 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
976 | # | ||
977 | |||
978 | # | ||
979 | # may also be needed; see USB_STORAGE Help for more information | ||
938 | # | 980 | # |
939 | CONFIG_USB_STORAGE=m | 981 | CONFIG_USB_STORAGE=m |
940 | # CONFIG_USB_STORAGE_DEBUG is not set | 982 | # CONFIG_USB_STORAGE_DEBUG is not set |
@@ -946,13 +988,15 @@ CONFIG_USB_STORAGE=m | |||
946 | # CONFIG_USB_STORAGE_SDDR09 is not set | 988 | # CONFIG_USB_STORAGE_SDDR09 is not set |
947 | # CONFIG_USB_STORAGE_SDDR55 is not set | 989 | # CONFIG_USB_STORAGE_SDDR55 is not set |
948 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 990 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
949 | # CONFIG_USB_STORAGE_ONETOUCH is not set | 991 | # CONFIG_USB_STORAGE_ALAUDA is not set |
992 | # CONFIG_USB_LIBUSUAL is not set | ||
950 | 993 | ||
951 | # | 994 | # |
952 | # USB Input Devices | 995 | # USB Input Devices |
953 | # | 996 | # |
954 | CONFIG_USB_HID=m | 997 | CONFIG_USB_HID=m |
955 | CONFIG_USB_HIDINPUT=y | 998 | CONFIG_USB_HIDINPUT=y |
999 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
956 | # CONFIG_HID_FF is not set | 1000 | # CONFIG_HID_FF is not set |
957 | CONFIG_USB_HIDDEV=y | 1001 | CONFIG_USB_HIDDEV=y |
958 | 1002 | ||
@@ -972,6 +1016,7 @@ CONFIG_USB_HIDDEV=y | |||
972 | # CONFIG_USB_YEALINK is not set | 1016 | # CONFIG_USB_YEALINK is not set |
973 | # CONFIG_USB_XPAD is not set | 1017 | # CONFIG_USB_XPAD is not set |
974 | # CONFIG_USB_ATI_REMOTE is not set | 1018 | # CONFIG_USB_ATI_REMOTE is not set |
1019 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
975 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1020 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
976 | # CONFIG_USB_APPLETOUCH is not set | 1021 | # CONFIG_USB_APPLETOUCH is not set |
977 | 1022 | ||
@@ -1046,7 +1091,7 @@ CONFIG_USB_MON=y | |||
1046 | # CONFIG_INFINIBAND is not set | 1091 | # CONFIG_INFINIBAND is not set |
1047 | 1092 | ||
1048 | # | 1093 | # |
1049 | # SN Devices | 1094 | # EDAC - error detection and reporting (RAS) |
1050 | # | 1095 | # |
1051 | 1096 | ||
1052 | # | 1097 | # |
@@ -1071,6 +1116,7 @@ CONFIG_XFS_QUOTA=y | |||
1071 | CONFIG_XFS_SECURITY=y | 1116 | CONFIG_XFS_SECURITY=y |
1072 | CONFIG_XFS_POSIX_ACL=y | 1117 | CONFIG_XFS_POSIX_ACL=y |
1073 | # CONFIG_XFS_RT is not set | 1118 | # CONFIG_XFS_RT is not set |
1119 | # CONFIG_OCFS2_FS is not set | ||
1074 | # CONFIG_MINIX_FS is not set | 1120 | # CONFIG_MINIX_FS is not set |
1075 | # CONFIG_ROMFS_FS is not set | 1121 | # CONFIG_ROMFS_FS is not set |
1076 | CONFIG_INOTIFY=y | 1122 | CONFIG_INOTIFY=y |
@@ -1111,6 +1157,7 @@ CONFIG_HUGETLBFS=y | |||
1111 | CONFIG_HUGETLB_PAGE=y | 1157 | CONFIG_HUGETLB_PAGE=y |
1112 | CONFIG_RAMFS=y | 1158 | CONFIG_RAMFS=y |
1113 | # CONFIG_RELAYFS_FS is not set | 1159 | # CONFIG_RELAYFS_FS is not set |
1160 | # CONFIG_CONFIGFS_FS is not set | ||
1114 | 1161 | ||
1115 | # | 1162 | # |
1116 | # Miscellaneous filesystems | 1163 | # Miscellaneous filesystems |
@@ -1153,6 +1200,7 @@ CONFIG_RPCSEC_GSS_KRB5=m | |||
1153 | # CONFIG_SMB_FS is not set | 1200 | # CONFIG_SMB_FS is not set |
1154 | CONFIG_CIFS=m | 1201 | CONFIG_CIFS=m |
1155 | CONFIG_CIFS_STATS=y | 1202 | CONFIG_CIFS_STATS=y |
1203 | # CONFIG_CIFS_STATS2 is not set | ||
1156 | CONFIG_CIFS_XATTR=y | 1204 | CONFIG_CIFS_XATTR=y |
1157 | CONFIG_CIFS_POSIX=y | 1205 | CONFIG_CIFS_POSIX=y |
1158 | # CONFIG_CIFS_EXPERIMENTAL is not set | 1206 | # CONFIG_CIFS_EXPERIMENTAL is not set |
@@ -1179,6 +1227,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1179 | CONFIG_SGI_PARTITION=y | 1227 | CONFIG_SGI_PARTITION=y |
1180 | # CONFIG_ULTRIX_PARTITION is not set | 1228 | # CONFIG_ULTRIX_PARTITION is not set |
1181 | # CONFIG_SUN_PARTITION is not set | 1229 | # CONFIG_SUN_PARTITION is not set |
1230 | # CONFIG_KARMA_PARTITION is not set | ||
1182 | CONFIG_EFI_PARTITION=y | 1231 | CONFIG_EFI_PARTITION=y |
1183 | 1232 | ||
1184 | # | 1233 | # |
@@ -1237,28 +1286,32 @@ CONFIG_GENERIC_IRQ_PROBE=y | |||
1237 | CONFIG_GENERIC_PENDING_IRQ=y | 1286 | CONFIG_GENERIC_PENDING_IRQ=y |
1238 | 1287 | ||
1239 | # | 1288 | # |
1240 | # Profiling support | 1289 | # Instrumentation Support |
1241 | # | 1290 | # |
1242 | CONFIG_PROFILING=y | 1291 | CONFIG_PROFILING=y |
1243 | CONFIG_OPROFILE=y | 1292 | CONFIG_OPROFILE=y |
1293 | # CONFIG_KPROBES is not set | ||
1244 | 1294 | ||
1245 | # | 1295 | # |
1246 | # Kernel hacking | 1296 | # Kernel hacking |
1247 | # | 1297 | # |
1248 | # CONFIG_PRINTK_TIME is not set | 1298 | # CONFIG_PRINTK_TIME is not set |
1249 | CONFIG_DEBUG_KERNEL=y | ||
1250 | CONFIG_MAGIC_SYSRQ=y | 1299 | CONFIG_MAGIC_SYSRQ=y |
1300 | CONFIG_DEBUG_KERNEL=y | ||
1251 | CONFIG_LOG_BUF_SHIFT=16 | 1301 | CONFIG_LOG_BUF_SHIFT=16 |
1252 | CONFIG_DETECT_SOFTLOCKUP=y | 1302 | CONFIG_DETECT_SOFTLOCKUP=y |
1253 | # CONFIG_SCHEDSTATS is not set | 1303 | # CONFIG_SCHEDSTATS is not set |
1254 | # CONFIG_DEBUG_SLAB is not set | 1304 | # CONFIG_DEBUG_SLAB is not set |
1255 | CONFIG_DEBUG_PREEMPT=y | 1305 | CONFIG_DEBUG_PREEMPT=y |
1306 | CONFIG_DEBUG_MUTEXES=y | ||
1256 | # CONFIG_DEBUG_SPINLOCK is not set | 1307 | # CONFIG_DEBUG_SPINLOCK is not set |
1257 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1308 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1258 | # CONFIG_DEBUG_KOBJECT is not set | 1309 | # CONFIG_DEBUG_KOBJECT is not set |
1259 | # CONFIG_DEBUG_INFO is not set | 1310 | # CONFIG_DEBUG_INFO is not set |
1260 | # CONFIG_DEBUG_FS is not set | 1311 | # CONFIG_DEBUG_FS is not set |
1261 | # CONFIG_KPROBES is not set | 1312 | # CONFIG_DEBUG_VM is not set |
1313 | CONFIG_FORCED_INLINING=y | ||
1314 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1262 | # CONFIG_IA64_GRANULE_16MB is not set | 1315 | # CONFIG_IA64_GRANULE_16MB is not set |
1263 | CONFIG_IA64_GRANULE_64MB=y | 1316 | CONFIG_IA64_GRANULE_64MB=y |
1264 | # CONFIG_IA64_PRINT_HAZARDS is not set | 1317 | # CONFIG_IA64_PRINT_HAZARDS is not set |
diff --git a/arch/ia64/configs/gensparse_defconfig b/arch/ia64/configs/gensparse_defconfig index 991c07b57c24..744fd2f79f61 100644 --- a/arch/ia64/configs/gensparse_defconfig +++ b/arch/ia64/configs/gensparse_defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.14-rc2 | 3 | # Linux kernel version: 2.6.16-rc5 |
4 | # Wed Sep 28 08:27:29 2005 | 4 | # Thu Mar 2 16:39:10 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
8 | # Code maturity level options | 8 | # Code maturity level options |
9 | # | 9 | # |
10 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
11 | CONFIG_CLEAN_COMPILE=y | ||
12 | CONFIG_LOCK_KERNEL=y | 11 | CONFIG_LOCK_KERNEL=y |
13 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
14 | 13 | ||
@@ -23,18 +22,19 @@ CONFIG_POSIX_MQUEUE=y | |||
23 | # CONFIG_BSD_PROCESS_ACCT is not set | 22 | # CONFIG_BSD_PROCESS_ACCT is not set |
24 | CONFIG_SYSCTL=y | 23 | CONFIG_SYSCTL=y |
25 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
26 | CONFIG_HOTPLUG=y | ||
27 | CONFIG_KOBJECT_UEVENT=y | ||
28 | CONFIG_IKCONFIG=y | 25 | CONFIG_IKCONFIG=y |
29 | CONFIG_IKCONFIG_PROC=y | 26 | CONFIG_IKCONFIG_PROC=y |
30 | # CONFIG_CPUSETS is not set | 27 | # CONFIG_CPUSETS is not set |
31 | CONFIG_INITRAMFS_SOURCE="" | 28 | CONFIG_INITRAMFS_SOURCE="" |
29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
32 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
33 | CONFIG_KALLSYMS=y | 31 | CONFIG_KALLSYMS=y |
34 | CONFIG_KALLSYMS_ALL=y | 32 | CONFIG_KALLSYMS_ALL=y |
35 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 33 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
34 | CONFIG_HOTPLUG=y | ||
36 | CONFIG_PRINTK=y | 35 | CONFIG_PRINTK=y |
37 | CONFIG_BUG=y | 36 | CONFIG_BUG=y |
37 | CONFIG_ELF_CORE=y | ||
38 | CONFIG_BASE_FULL=y | 38 | CONFIG_BASE_FULL=y |
39 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
40 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
@@ -43,8 +43,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | ||
46 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | ||
48 | 50 | ||
49 | # | 51 | # |
50 | # Loadable module support | 52 | # Loadable module support |
@@ -59,17 +61,36 @@ CONFIG_KMOD=y | |||
59 | CONFIG_STOP_MACHINE=y | 61 | CONFIG_STOP_MACHINE=y |
60 | 62 | ||
61 | # | 63 | # |
64 | # Block layer | ||
65 | # | ||
66 | |||
67 | # | ||
68 | # IO Schedulers | ||
69 | # | ||
70 | CONFIG_IOSCHED_NOOP=y | ||
71 | CONFIG_IOSCHED_AS=y | ||
72 | CONFIG_IOSCHED_DEADLINE=y | ||
73 | CONFIG_IOSCHED_CFQ=y | ||
74 | CONFIG_DEFAULT_AS=y | ||
75 | # CONFIG_DEFAULT_DEADLINE is not set | ||
76 | # CONFIG_DEFAULT_CFQ is not set | ||
77 | # CONFIG_DEFAULT_NOOP is not set | ||
78 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
79 | |||
80 | # | ||
62 | # Processor type and features | 81 | # Processor type and features |
63 | # | 82 | # |
64 | CONFIG_IA64=y | 83 | CONFIG_IA64=y |
65 | CONFIG_64BIT=y | 84 | CONFIG_64BIT=y |
66 | CONFIG_MMU=y | 85 | CONFIG_MMU=y |
86 | CONFIG_SWIOTLB=y | ||
67 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 87 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 88 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_TIME_INTERPOLATION=y | 89 | CONFIG_TIME_INTERPOLATION=y |
70 | CONFIG_EFI=y | 90 | CONFIG_EFI=y |
71 | CONFIG_GENERIC_IOMAP=y | 91 | CONFIG_GENERIC_IOMAP=y |
72 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 92 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
93 | CONFIG_DMA_IS_DMA32=y | ||
73 | CONFIG_IA64_GENERIC=y | 94 | CONFIG_IA64_GENERIC=y |
74 | # CONFIG_IA64_DIG is not set | 95 | # CONFIG_IA64_DIG is not set |
75 | # CONFIG_IA64_HP_ZX1 is not set | 96 | # CONFIG_IA64_HP_ZX1 is not set |
@@ -82,6 +103,8 @@ CONFIG_MCKINLEY=y | |||
82 | # CONFIG_IA64_PAGE_SIZE_8KB is not set | 103 | # CONFIG_IA64_PAGE_SIZE_8KB is not set |
83 | CONFIG_IA64_PAGE_SIZE_16KB=y | 104 | CONFIG_IA64_PAGE_SIZE_16KB=y |
84 | # CONFIG_IA64_PAGE_SIZE_64KB is not set | 105 | # CONFIG_IA64_PAGE_SIZE_64KB is not set |
106 | CONFIG_PGTABLE_3=y | ||
107 | # CONFIG_PGTABLE_4 is not set | ||
85 | # CONFIG_HZ_100 is not set | 108 | # CONFIG_HZ_100 is not set |
86 | CONFIG_HZ_250=y | 109 | CONFIG_HZ_250=y |
87 | # CONFIG_HZ_1000 is not set | 110 | # CONFIG_HZ_1000 is not set |
@@ -105,6 +128,9 @@ CONFIG_NEED_MULTIPLE_NODES=y | |||
105 | CONFIG_HAVE_MEMORY_PRESENT=y | 128 | CONFIG_HAVE_MEMORY_PRESENT=y |
106 | # CONFIG_SPARSEMEM_STATIC is not set | 129 | # CONFIG_SPARSEMEM_STATIC is not set |
107 | CONFIG_SPARSEMEM_EXTREME=y | 130 | CONFIG_SPARSEMEM_EXTREME=y |
131 | # CONFIG_MEMORY_HOTPLUG is not set | ||
132 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
133 | CONFIG_MIGRATION=y | ||
108 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 134 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
109 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | 135 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y |
110 | CONFIG_ARCH_FLATMEM_ENABLE=y | 136 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -117,13 +143,13 @@ CONFIG_COMPAT=y | |||
117 | CONFIG_IA64_MCA_RECOVERY=y | 143 | CONFIG_IA64_MCA_RECOVERY=y |
118 | CONFIG_PERFMON=y | 144 | CONFIG_PERFMON=y |
119 | CONFIG_IA64_PALINFO=y | 145 | CONFIG_IA64_PALINFO=y |
146 | CONFIG_SGI_SN=y | ||
120 | 147 | ||
121 | # | 148 | # |
122 | # Firmware Drivers | 149 | # Firmware Drivers |
123 | # | 150 | # |
124 | CONFIG_EFI_VARS=y | 151 | CONFIG_EFI_VARS=y |
125 | CONFIG_EFI_PCDP=y | 152 | CONFIG_EFI_PCDP=y |
126 | # CONFIG_DELL_RBU is not set | ||
127 | CONFIG_BINFMT_ELF=y | 153 | CONFIG_BINFMT_ELF=y |
128 | CONFIG_BINFMT_MISC=m | 154 | CONFIG_BINFMT_MISC=m |
129 | 155 | ||
@@ -131,6 +157,7 @@ CONFIG_BINFMT_MISC=m | |||
131 | # Power management and ACPI | 157 | # Power management and ACPI |
132 | # | 158 | # |
133 | CONFIG_PM=y | 159 | CONFIG_PM=y |
160 | CONFIG_PM_LEGACY=y | ||
134 | # CONFIG_PM_DEBUG is not set | 161 | # CONFIG_PM_DEBUG is not set |
135 | 162 | ||
136 | # | 163 | # |
@@ -145,6 +172,7 @@ CONFIG_ACPI_THERMAL=m | |||
145 | CONFIG_ACPI_NUMA=y | 172 | CONFIG_ACPI_NUMA=y |
146 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 173 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
147 | # CONFIG_ACPI_DEBUG is not set | 174 | # CONFIG_ACPI_DEBUG is not set |
175 | CONFIG_ACPI_EC=y | ||
148 | CONFIG_ACPI_POWER=y | 176 | CONFIG_ACPI_POWER=y |
149 | CONFIG_ACPI_SYSTEM=y | 177 | CONFIG_ACPI_SYSTEM=y |
150 | CONFIG_ACPI_CONTAINER=m | 178 | CONFIG_ACPI_CONTAINER=m |
@@ -187,6 +215,7 @@ CONFIG_NET=y | |||
187 | # | 215 | # |
188 | # Networking options | 216 | # Networking options |
189 | # | 217 | # |
218 | # CONFIG_NETDEBUG is not set | ||
190 | CONFIG_PACKET=y | 219 | CONFIG_PACKET=y |
191 | # CONFIG_PACKET_MMAP is not set | 220 | # CONFIG_PACKET_MMAP is not set |
192 | CONFIG_UNIX=y | 221 | CONFIG_UNIX=y |
@@ -221,6 +250,11 @@ CONFIG_TCP_CONG_BIC=y | |||
221 | # SCTP Configuration (EXPERIMENTAL) | 250 | # SCTP Configuration (EXPERIMENTAL) |
222 | # | 251 | # |
223 | # CONFIG_IP_SCTP is not set | 252 | # CONFIG_IP_SCTP is not set |
253 | |||
254 | # | ||
255 | # TIPC Configuration (EXPERIMENTAL) | ||
256 | # | ||
257 | # CONFIG_TIPC is not set | ||
224 | # CONFIG_ATM is not set | 258 | # CONFIG_ATM is not set |
225 | # CONFIG_BRIDGE is not set | 259 | # CONFIG_BRIDGE is not set |
226 | # CONFIG_VLAN_8021Q is not set | 260 | # CONFIG_VLAN_8021Q is not set |
@@ -233,8 +267,11 @@ CONFIG_TCP_CONG_BIC=y | |||
233 | # CONFIG_NET_DIVERT is not set | 267 | # CONFIG_NET_DIVERT is not set |
234 | # CONFIG_ECONET is not set | 268 | # CONFIG_ECONET is not set |
235 | # CONFIG_WAN_ROUTER is not set | 269 | # CONFIG_WAN_ROUTER is not set |
270 | |||
271 | # | ||
272 | # QoS and/or fair queueing | ||
273 | # | ||
236 | # CONFIG_NET_SCHED is not set | 274 | # CONFIG_NET_SCHED is not set |
237 | # CONFIG_NET_CLS_ROUTE is not set | ||
238 | 275 | ||
239 | # | 276 | # |
240 | # Network testing | 277 | # Network testing |
@@ -275,7 +312,13 @@ CONFIG_FW_LOADER=m | |||
275 | # | 312 | # |
276 | # Plug and Play support | 313 | # Plug and Play support |
277 | # | 314 | # |
278 | # CONFIG_PNP is not set | 315 | CONFIG_PNP=y |
316 | # CONFIG_PNP_DEBUG is not set | ||
317 | |||
318 | # | ||
319 | # Protocols | ||
320 | # | ||
321 | CONFIG_PNPACPI=y | ||
279 | 322 | ||
280 | # | 323 | # |
281 | # Block devices | 324 | # Block devices |
@@ -295,20 +338,13 @@ CONFIG_BLK_DEV_RAM_COUNT=16 | |||
295 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 338 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
296 | CONFIG_BLK_DEV_INITRD=y | 339 | CONFIG_BLK_DEV_INITRD=y |
297 | # CONFIG_CDROM_PKTCDVD is not set | 340 | # CONFIG_CDROM_PKTCDVD is not set |
298 | |||
299 | # | ||
300 | # IO Schedulers | ||
301 | # | ||
302 | CONFIG_IOSCHED_NOOP=y | ||
303 | CONFIG_IOSCHED_AS=y | ||
304 | CONFIG_IOSCHED_DEADLINE=y | ||
305 | CONFIG_IOSCHED_CFQ=y | ||
306 | # CONFIG_ATA_OVER_ETH is not set | 341 | # CONFIG_ATA_OVER_ETH is not set |
307 | 342 | ||
308 | # | 343 | # |
309 | # ATA/ATAPI/MFM/RLL support | 344 | # ATA/ATAPI/MFM/RLL support |
310 | # | 345 | # |
311 | CONFIG_IDE=y | 346 | CONFIG_IDE=y |
347 | CONFIG_IDE_MAX_HWIFS=4 | ||
312 | CONFIG_BLK_DEV_IDE=y | 348 | CONFIG_BLK_DEV_IDE=y |
313 | 349 | ||
314 | # | 350 | # |
@@ -327,6 +363,7 @@ CONFIG_BLK_DEV_IDESCSI=m | |||
327 | # IDE chipset support/bugfixes | 363 | # IDE chipset support/bugfixes |
328 | # | 364 | # |
329 | CONFIG_IDE_GENERIC=y | 365 | CONFIG_IDE_GENERIC=y |
366 | # CONFIG_BLK_DEV_IDEPNP is not set | ||
330 | CONFIG_BLK_DEV_IDEPCI=y | 367 | CONFIG_BLK_DEV_IDEPCI=y |
331 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 368 | # CONFIG_IDEPCI_SHARE_IRQ is not set |
332 | # CONFIG_BLK_DEV_OFFBOARD is not set | 369 | # CONFIG_BLK_DEV_OFFBOARD is not set |
@@ -400,6 +437,7 @@ CONFIG_SCSI_FC_ATTRS=y | |||
400 | # | 437 | # |
401 | # SCSI low-level drivers | 438 | # SCSI low-level drivers |
402 | # | 439 | # |
440 | # CONFIG_ISCSI_TCP is not set | ||
403 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 441 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
404 | # CONFIG_SCSI_3W_9XXX is not set | 442 | # CONFIG_SCSI_3W_9XXX is not set |
405 | # CONFIG_SCSI_ACARD is not set | 443 | # CONFIG_SCSI_ACARD is not set |
@@ -409,16 +447,19 @@ CONFIG_SCSI_FC_ATTRS=y | |||
409 | # CONFIG_SCSI_AIC79XX is not set | 447 | # CONFIG_SCSI_AIC79XX is not set |
410 | # CONFIG_MEGARAID_NEWGEN is not set | 448 | # CONFIG_MEGARAID_NEWGEN is not set |
411 | # CONFIG_MEGARAID_LEGACY is not set | 449 | # CONFIG_MEGARAID_LEGACY is not set |
450 | # CONFIG_MEGARAID_SAS is not set | ||
412 | CONFIG_SCSI_SATA=y | 451 | CONFIG_SCSI_SATA=y |
413 | # CONFIG_SCSI_SATA_AHCI is not set | 452 | # CONFIG_SCSI_SATA_AHCI is not set |
414 | # CONFIG_SCSI_SATA_SVW is not set | 453 | # CONFIG_SCSI_SATA_SVW is not set |
415 | # CONFIG_SCSI_ATA_PIIX is not set | 454 | # CONFIG_SCSI_ATA_PIIX is not set |
416 | # CONFIG_SCSI_SATA_MV is not set | 455 | # CONFIG_SCSI_SATA_MV is not set |
417 | # CONFIG_SCSI_SATA_NV is not set | 456 | # CONFIG_SCSI_SATA_NV is not set |
418 | # CONFIG_SCSI_SATA_PROMISE is not set | 457 | # CONFIG_SCSI_PDC_ADMA is not set |
419 | # CONFIG_SCSI_SATA_QSTOR is not set | 458 | # CONFIG_SCSI_SATA_QSTOR is not set |
459 | # CONFIG_SCSI_SATA_PROMISE is not set | ||
420 | # CONFIG_SCSI_SATA_SX4 is not set | 460 | # CONFIG_SCSI_SATA_SX4 is not set |
421 | # CONFIG_SCSI_SATA_SIL is not set | 461 | # CONFIG_SCSI_SATA_SIL is not set |
462 | # CONFIG_SCSI_SATA_SIL24 is not set | ||
422 | # CONFIG_SCSI_SATA_SIS is not set | 463 | # CONFIG_SCSI_SATA_SIS is not set |
423 | # CONFIG_SCSI_SATA_ULI is not set | 464 | # CONFIG_SCSI_SATA_ULI is not set |
424 | # CONFIG_SCSI_SATA_VIA is not set | 465 | # CONFIG_SCSI_SATA_VIA is not set |
@@ -436,14 +477,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
436 | # CONFIG_SCSI_IPR is not set | 477 | # CONFIG_SCSI_IPR is not set |
437 | # CONFIG_SCSI_QLOGIC_FC is not set | 478 | # CONFIG_SCSI_QLOGIC_FC is not set |
438 | CONFIG_SCSI_QLOGIC_1280=y | 479 | CONFIG_SCSI_QLOGIC_1280=y |
439 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set | 480 | # CONFIG_SCSI_QLA_FC is not set |
440 | CONFIG_SCSI_QLA2XXX=y | ||
441 | CONFIG_SCSI_QLA21XX=m | ||
442 | CONFIG_SCSI_QLA22XX=m | ||
443 | CONFIG_SCSI_QLA2300=m | ||
444 | CONFIG_SCSI_QLA2322=m | ||
445 | # CONFIG_SCSI_QLA6312 is not set | ||
446 | # CONFIG_SCSI_QLA24XX is not set | ||
447 | # CONFIG_SCSI_LPFC is not set | 481 | # CONFIG_SCSI_LPFC is not set |
448 | # CONFIG_SCSI_DC395x is not set | 482 | # CONFIG_SCSI_DC395x is not set |
449 | # CONFIG_SCSI_DC390T is not set | 483 | # CONFIG_SCSI_DC390T is not set |
@@ -476,6 +510,7 @@ CONFIG_DM_MULTIPATH=m | |||
476 | CONFIG_FUSION=y | 510 | CONFIG_FUSION=y |
477 | CONFIG_FUSION_SPI=y | 511 | CONFIG_FUSION_SPI=y |
478 | CONFIG_FUSION_FC=m | 512 | CONFIG_FUSION_FC=m |
513 | # CONFIG_FUSION_SAS is not set | ||
479 | CONFIG_FUSION_MAX_SGE=128 | 514 | CONFIG_FUSION_MAX_SGE=128 |
480 | # CONFIG_FUSION_CTL is not set | 515 | # CONFIG_FUSION_CTL is not set |
481 | 516 | ||
@@ -497,6 +532,7 @@ CONFIG_DUMMY=m | |||
497 | # CONFIG_BONDING is not set | 532 | # CONFIG_BONDING is not set |
498 | # CONFIG_EQUALIZER is not set | 533 | # CONFIG_EQUALIZER is not set |
499 | # CONFIG_TUN is not set | 534 | # CONFIG_TUN is not set |
535 | # CONFIG_NET_SB1000 is not set | ||
500 | 536 | ||
501 | # | 537 | # |
502 | # ARCnet devices | 538 | # ARCnet devices |
@@ -515,6 +551,7 @@ CONFIG_NET_ETHERNET=y | |||
515 | CONFIG_MII=m | 551 | CONFIG_MII=m |
516 | # CONFIG_HAPPYMEAL is not set | 552 | # CONFIG_HAPPYMEAL is not set |
517 | # CONFIG_SUNGEM is not set | 553 | # CONFIG_SUNGEM is not set |
554 | # CONFIG_CASSINI is not set | ||
518 | # CONFIG_NET_VENDOR_3COM is not set | 555 | # CONFIG_NET_VENDOR_3COM is not set |
519 | 556 | ||
520 | # | 557 | # |
@@ -564,6 +601,7 @@ CONFIG_E1000=y | |||
564 | # CONFIG_R8169 is not set | 601 | # CONFIG_R8169 is not set |
565 | # CONFIG_SIS190 is not set | 602 | # CONFIG_SIS190 is not set |
566 | # CONFIG_SKGE is not set | 603 | # CONFIG_SKGE is not set |
604 | # CONFIG_SKY2 is not set | ||
567 | # CONFIG_SK98LIN is not set | 605 | # CONFIG_SK98LIN is not set |
568 | # CONFIG_VIA_VELOCITY is not set | 606 | # CONFIG_VIA_VELOCITY is not set |
569 | CONFIG_TIGON3=y | 607 | CONFIG_TIGON3=y |
@@ -668,12 +706,15 @@ CONFIG_VT=y | |||
668 | CONFIG_VT_CONSOLE=y | 706 | CONFIG_VT_CONSOLE=y |
669 | CONFIG_HW_CONSOLE=y | 707 | CONFIG_HW_CONSOLE=y |
670 | CONFIG_SERIAL_NONSTANDARD=y | 708 | CONFIG_SERIAL_NONSTANDARD=y |
709 | # CONFIG_COMPUTONE is not set | ||
671 | # CONFIG_ROCKETPORT is not set | 710 | # CONFIG_ROCKETPORT is not set |
672 | # CONFIG_CYCLADES is not set | 711 | # CONFIG_CYCLADES is not set |
673 | # CONFIG_DIGIEPCA is not set | 712 | # CONFIG_DIGIEPCA is not set |
713 | # CONFIG_MOXA_INTELLIO is not set | ||
674 | # CONFIG_MOXA_SMARTIO is not set | 714 | # CONFIG_MOXA_SMARTIO is not set |
675 | # CONFIG_ISI is not set | 715 | # CONFIG_ISI is not set |
676 | # CONFIG_SYNCLINKMP is not set | 716 | # CONFIG_SYNCLINKMP is not set |
717 | # CONFIG_SYNCLINK_GT is not set | ||
677 | # CONFIG_N_HDLC is not set | 718 | # CONFIG_N_HDLC is not set |
678 | # CONFIG_SPECIALIX is not set | 719 | # CONFIG_SPECIALIX is not set |
679 | # CONFIG_SX is not set | 720 | # CONFIG_SX is not set |
@@ -689,6 +730,7 @@ CONFIG_SERIAL_8250=y | |||
689 | CONFIG_SERIAL_8250_CONSOLE=y | 730 | CONFIG_SERIAL_8250_CONSOLE=y |
690 | CONFIG_SERIAL_8250_ACPI=y | 731 | CONFIG_SERIAL_8250_ACPI=y |
691 | CONFIG_SERIAL_8250_NR_UARTS=6 | 732 | CONFIG_SERIAL_8250_NR_UARTS=6 |
733 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
692 | CONFIG_SERIAL_8250_EXTENDED=y | 734 | CONFIG_SERIAL_8250_EXTENDED=y |
693 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 735 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
694 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 736 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
@@ -738,10 +780,10 @@ CONFIG_DRM_SIS=m | |||
738 | # CONFIG_DRM_VIA is not set | 780 | # CONFIG_DRM_VIA is not set |
739 | # CONFIG_DRM_SAVAGE is not set | 781 | # CONFIG_DRM_SAVAGE is not set |
740 | CONFIG_RAW_DRIVER=m | 782 | CONFIG_RAW_DRIVER=m |
783 | CONFIG_MAX_RAW_DEVS=256 | ||
741 | CONFIG_HPET=y | 784 | CONFIG_HPET=y |
742 | # CONFIG_HPET_RTC_IRQ is not set | 785 | # CONFIG_HPET_RTC_IRQ is not set |
743 | CONFIG_HPET_MMAP=y | 786 | CONFIG_HPET_MMAP=y |
744 | CONFIG_MAX_RAW_DEVS=256 | ||
745 | # CONFIG_HANGCHECK_TIMER is not set | 787 | # CONFIG_HANGCHECK_TIMER is not set |
746 | CONFIG_MMTIMER=y | 788 | CONFIG_MMTIMER=y |
747 | 789 | ||
@@ -749,6 +791,7 @@ CONFIG_MMTIMER=y | |||
749 | # TPM devices | 791 | # TPM devices |
750 | # | 792 | # |
751 | # CONFIG_TCG_TPM is not set | 793 | # CONFIG_TCG_TPM is not set |
794 | # CONFIG_TELCLOCK is not set | ||
752 | 795 | ||
753 | # | 796 | # |
754 | # I2C support | 797 | # I2C support |
@@ -756,6 +799,12 @@ CONFIG_MMTIMER=y | |||
756 | # CONFIG_I2C is not set | 799 | # CONFIG_I2C is not set |
757 | 800 | ||
758 | # | 801 | # |
802 | # SPI support | ||
803 | # | ||
804 | # CONFIG_SPI is not set | ||
805 | # CONFIG_SPI_MASTER is not set | ||
806 | |||
807 | # | ||
759 | # Dallas's 1-wire bus | 808 | # Dallas's 1-wire bus |
760 | # | 809 | # |
761 | # CONFIG_W1 is not set | 810 | # CONFIG_W1 is not set |
@@ -765,6 +814,7 @@ CONFIG_MMTIMER=y | |||
765 | # | 814 | # |
766 | CONFIG_HWMON=y | 815 | CONFIG_HWMON=y |
767 | # CONFIG_HWMON_VID is not set | 816 | # CONFIG_HWMON_VID is not set |
817 | # CONFIG_SENSORS_F71805F is not set | ||
768 | # CONFIG_HWMON_DEBUG_CHIP is not set | 818 | # CONFIG_HWMON_DEBUG_CHIP is not set |
769 | 819 | ||
770 | # | 820 | # |
@@ -815,26 +865,28 @@ CONFIG_SND_OSSEMUL=y | |||
815 | CONFIG_SND_MIXER_OSS=m | 865 | CONFIG_SND_MIXER_OSS=m |
816 | CONFIG_SND_PCM_OSS=m | 866 | CONFIG_SND_PCM_OSS=m |
817 | CONFIG_SND_SEQUENCER_OSS=y | 867 | CONFIG_SND_SEQUENCER_OSS=y |
868 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
869 | CONFIG_SND_SUPPORT_OLD_API=y | ||
818 | CONFIG_SND_VERBOSE_PRINTK=y | 870 | CONFIG_SND_VERBOSE_PRINTK=y |
819 | # CONFIG_SND_DEBUG is not set | 871 | # CONFIG_SND_DEBUG is not set |
820 | CONFIG_SND_GENERIC_DRIVER=y | ||
821 | 872 | ||
822 | # | 873 | # |
823 | # Generic devices | 874 | # Generic devices |
824 | # | 875 | # |
825 | CONFIG_SND_MPU401_UART=m | 876 | CONFIG_SND_MPU401_UART=m |
826 | CONFIG_SND_OPL3_LIB=m | 877 | CONFIG_SND_OPL3_LIB=m |
878 | CONFIG_SND_AC97_CODEC=m | ||
879 | CONFIG_SND_AC97_BUS=m | ||
827 | CONFIG_SND_DUMMY=m | 880 | CONFIG_SND_DUMMY=m |
828 | CONFIG_SND_VIRMIDI=m | 881 | CONFIG_SND_VIRMIDI=m |
829 | CONFIG_SND_MTPAV=m | 882 | CONFIG_SND_MTPAV=m |
830 | CONFIG_SND_SERIAL_U16550=m | 883 | CONFIG_SND_SERIAL_U16550=m |
831 | CONFIG_SND_MPU401=m | 884 | CONFIG_SND_MPU401=m |
832 | CONFIG_SND_AC97_CODEC=m | ||
833 | CONFIG_SND_AC97_BUS=m | ||
834 | 885 | ||
835 | # | 886 | # |
836 | # PCI devices | 887 | # PCI devices |
837 | # | 888 | # |
889 | # CONFIG_SND_AD1889 is not set | ||
838 | # CONFIG_SND_ALI5451 is not set | 890 | # CONFIG_SND_ALI5451 is not set |
839 | # CONFIG_SND_ATIIXP is not set | 891 | # CONFIG_SND_ATIIXP is not set |
840 | # CONFIG_SND_ATIIXP_MODEM is not set | 892 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -843,40 +895,40 @@ CONFIG_SND_AC97_BUS=m | |||
843 | # CONFIG_SND_AU8830 is not set | 895 | # CONFIG_SND_AU8830 is not set |
844 | # CONFIG_SND_AZT3328 is not set | 896 | # CONFIG_SND_AZT3328 is not set |
845 | # CONFIG_SND_BT87X is not set | 897 | # CONFIG_SND_BT87X is not set |
898 | # CONFIG_SND_CA0106 is not set | ||
899 | # CONFIG_SND_CMIPCI is not set | ||
900 | CONFIG_SND_CS4281=m | ||
846 | CONFIG_SND_CS46XX=m | 901 | CONFIG_SND_CS46XX=m |
847 | CONFIG_SND_CS46XX_NEW_DSP=y | 902 | CONFIG_SND_CS46XX_NEW_DSP=y |
848 | CONFIG_SND_CS4281=m | ||
849 | CONFIG_SND_EMU10K1=m | 903 | CONFIG_SND_EMU10K1=m |
850 | # CONFIG_SND_EMU10K1X is not set | 904 | # CONFIG_SND_EMU10K1X is not set |
851 | # CONFIG_SND_CA0106 is not set | ||
852 | # CONFIG_SND_KORG1212 is not set | ||
853 | # CONFIG_SND_MIXART is not set | ||
854 | # CONFIG_SND_NM256 is not set | ||
855 | # CONFIG_SND_RME32 is not set | ||
856 | # CONFIG_SND_RME96 is not set | ||
857 | # CONFIG_SND_RME9652 is not set | ||
858 | # CONFIG_SND_HDSP is not set | ||
859 | # CONFIG_SND_HDSPM is not set | ||
860 | # CONFIG_SND_TRIDENT is not set | ||
861 | # CONFIG_SND_YMFPCI is not set | ||
862 | # CONFIG_SND_AD1889 is not set | ||
863 | # CONFIG_SND_CMIPCI is not set | ||
864 | # CONFIG_SND_ENS1370 is not set | 905 | # CONFIG_SND_ENS1370 is not set |
865 | # CONFIG_SND_ENS1371 is not set | 906 | # CONFIG_SND_ENS1371 is not set |
866 | # CONFIG_SND_ES1938 is not set | 907 | # CONFIG_SND_ES1938 is not set |
867 | # CONFIG_SND_ES1968 is not set | 908 | # CONFIG_SND_ES1968 is not set |
868 | # CONFIG_SND_MAESTRO3 is not set | ||
869 | CONFIG_SND_FM801=m | 909 | CONFIG_SND_FM801=m |
870 | # CONFIG_SND_FM801_TEA575X is not set | 910 | # CONFIG_SND_FM801_TEA575X is not set |
911 | # CONFIG_SND_HDA_INTEL is not set | ||
912 | # CONFIG_SND_HDSP is not set | ||
913 | # CONFIG_SND_HDSPM is not set | ||
871 | # CONFIG_SND_ICE1712 is not set | 914 | # CONFIG_SND_ICE1712 is not set |
872 | # CONFIG_SND_ICE1724 is not set | 915 | # CONFIG_SND_ICE1724 is not set |
873 | # CONFIG_SND_INTEL8X0 is not set | 916 | # CONFIG_SND_INTEL8X0 is not set |
874 | # CONFIG_SND_INTEL8X0M is not set | 917 | # CONFIG_SND_INTEL8X0M is not set |
918 | # CONFIG_SND_KORG1212 is not set | ||
919 | # CONFIG_SND_MAESTRO3 is not set | ||
920 | # CONFIG_SND_MIXART is not set | ||
921 | # CONFIG_SND_NM256 is not set | ||
922 | # CONFIG_SND_PCXHR is not set | ||
923 | # CONFIG_SND_RME32 is not set | ||
924 | # CONFIG_SND_RME96 is not set | ||
925 | # CONFIG_SND_RME9652 is not set | ||
875 | # CONFIG_SND_SONICVIBES is not set | 926 | # CONFIG_SND_SONICVIBES is not set |
927 | # CONFIG_SND_TRIDENT is not set | ||
876 | # CONFIG_SND_VIA82XX is not set | 928 | # CONFIG_SND_VIA82XX is not set |
877 | # CONFIG_SND_VIA82XX_MODEM is not set | 929 | # CONFIG_SND_VIA82XX_MODEM is not set |
878 | # CONFIG_SND_VX222 is not set | 930 | # CONFIG_SND_VX222 is not set |
879 | # CONFIG_SND_HDA_INTEL is not set | 931 | # CONFIG_SND_YMFPCI is not set |
880 | 932 | ||
881 | # | 933 | # |
882 | # USB devices | 934 | # USB devices |
@@ -922,12 +974,15 @@ CONFIG_USB_UHCI_HCD=m | |||
922 | # USB Device Class drivers | 974 | # USB Device Class drivers |
923 | # | 975 | # |
924 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | 976 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set |
925 | # CONFIG_USB_BLUETOOTH_TTY is not set | ||
926 | # CONFIG_USB_ACM is not set | 977 | # CONFIG_USB_ACM is not set |
927 | # CONFIG_USB_PRINTER is not set | 978 | # CONFIG_USB_PRINTER is not set |
928 | 979 | ||
929 | # | 980 | # |
930 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | 981 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
982 | # | ||
983 | |||
984 | # | ||
985 | # may also be needed; see USB_STORAGE Help for more information | ||
931 | # | 986 | # |
932 | CONFIG_USB_STORAGE=m | 987 | CONFIG_USB_STORAGE=m |
933 | # CONFIG_USB_STORAGE_DEBUG is not set | 988 | # CONFIG_USB_STORAGE_DEBUG is not set |
@@ -939,12 +994,15 @@ CONFIG_USB_STORAGE=m | |||
939 | # CONFIG_USB_STORAGE_SDDR09 is not set | 994 | # CONFIG_USB_STORAGE_SDDR09 is not set |
940 | # CONFIG_USB_STORAGE_SDDR55 is not set | 995 | # CONFIG_USB_STORAGE_SDDR55 is not set |
941 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 996 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
997 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
998 | # CONFIG_USB_LIBUSUAL is not set | ||
942 | 999 | ||
943 | # | 1000 | # |
944 | # USB Input Devices | 1001 | # USB Input Devices |
945 | # | 1002 | # |
946 | CONFIG_USB_HID=m | 1003 | CONFIG_USB_HID=m |
947 | CONFIG_USB_HIDINPUT=y | 1004 | CONFIG_USB_HIDINPUT=y |
1005 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
948 | # CONFIG_HID_FF is not set | 1006 | # CONFIG_HID_FF is not set |
949 | # CONFIG_USB_HIDDEV is not set | 1007 | # CONFIG_USB_HIDDEV is not set |
950 | 1008 | ||
@@ -964,6 +1022,7 @@ CONFIG_USB_HIDINPUT=y | |||
964 | # CONFIG_USB_YEALINK is not set | 1022 | # CONFIG_USB_YEALINK is not set |
965 | # CONFIG_USB_XPAD is not set | 1023 | # CONFIG_USB_XPAD is not set |
966 | # CONFIG_USB_ATI_REMOTE is not set | 1024 | # CONFIG_USB_ATI_REMOTE is not set |
1025 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
967 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1026 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
968 | # CONFIG_USB_APPLETOUCH is not set | 1027 | # CONFIG_USB_APPLETOUCH is not set |
969 | 1028 | ||
@@ -1043,6 +1102,7 @@ CONFIG_INFINIBAND_MTHCA=m | |||
1043 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 1102 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set |
1044 | CONFIG_INFINIBAND_IPOIB=m | 1103 | CONFIG_INFINIBAND_IPOIB=m |
1045 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set | 1104 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set |
1105 | # CONFIG_INFINIBAND_SRP is not set | ||
1046 | 1106 | ||
1047 | # | 1107 | # |
1048 | # SN Devices | 1108 | # SN Devices |
@@ -1051,6 +1111,10 @@ CONFIG_SGI_IOC4=y | |||
1051 | CONFIG_SGI_IOC3=y | 1111 | CONFIG_SGI_IOC3=y |
1052 | 1112 | ||
1053 | # | 1113 | # |
1114 | # EDAC - error detection and reporting (RAS) | ||
1115 | # | ||
1116 | |||
1117 | # | ||
1054 | # File systems | 1118 | # File systems |
1055 | # | 1119 | # |
1056 | CONFIG_EXT2_FS=y | 1120 | CONFIG_EXT2_FS=y |
@@ -1079,6 +1143,7 @@ CONFIG_XFS_EXPORT=y | |||
1079 | # CONFIG_XFS_SECURITY is not set | 1143 | # CONFIG_XFS_SECURITY is not set |
1080 | # CONFIG_XFS_POSIX_ACL is not set | 1144 | # CONFIG_XFS_POSIX_ACL is not set |
1081 | # CONFIG_XFS_RT is not set | 1145 | # CONFIG_XFS_RT is not set |
1146 | # CONFIG_OCFS2_FS is not set | ||
1082 | # CONFIG_MINIX_FS is not set | 1147 | # CONFIG_MINIX_FS is not set |
1083 | # CONFIG_ROMFS_FS is not set | 1148 | # CONFIG_ROMFS_FS is not set |
1084 | CONFIG_INOTIFY=y | 1149 | CONFIG_INOTIFY=y |
@@ -1120,6 +1185,7 @@ CONFIG_HUGETLBFS=y | |||
1120 | CONFIG_HUGETLB_PAGE=y | 1185 | CONFIG_HUGETLB_PAGE=y |
1121 | CONFIG_RAMFS=y | 1186 | CONFIG_RAMFS=y |
1122 | # CONFIG_RELAYFS_FS is not set | 1187 | # CONFIG_RELAYFS_FS is not set |
1188 | # CONFIG_CONFIGFS_FS is not set | ||
1123 | 1189 | ||
1124 | # | 1190 | # |
1125 | # Miscellaneous filesystems | 1191 | # Miscellaneous filesystems |
@@ -1189,6 +1255,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1189 | CONFIG_SGI_PARTITION=y | 1255 | CONFIG_SGI_PARTITION=y |
1190 | # CONFIG_ULTRIX_PARTITION is not set | 1256 | # CONFIG_ULTRIX_PARTITION is not set |
1191 | # CONFIG_SUN_PARTITION is not set | 1257 | # CONFIG_SUN_PARTITION is not set |
1258 | # CONFIG_KARMA_PARTITION is not set | ||
1192 | CONFIG_EFI_PARTITION=y | 1259 | CONFIG_EFI_PARTITION=y |
1193 | 1260 | ||
1194 | # | 1261 | # |
@@ -1254,26 +1321,30 @@ CONFIG_GENERIC_PENDING_IRQ=y | |||
1254 | # CONFIG_HP_SIMSCSI is not set | 1321 | # CONFIG_HP_SIMSCSI is not set |
1255 | 1322 | ||
1256 | # | 1323 | # |
1257 | # Profiling support | 1324 | # Instrumentation Support |
1258 | # | 1325 | # |
1259 | # CONFIG_PROFILING is not set | 1326 | # CONFIG_PROFILING is not set |
1327 | # CONFIG_KPROBES is not set | ||
1260 | 1328 | ||
1261 | # | 1329 | # |
1262 | # Kernel hacking | 1330 | # Kernel hacking |
1263 | # | 1331 | # |
1264 | # CONFIG_PRINTK_TIME is not set | 1332 | # CONFIG_PRINTK_TIME is not set |
1265 | CONFIG_DEBUG_KERNEL=y | ||
1266 | CONFIG_MAGIC_SYSRQ=y | 1333 | CONFIG_MAGIC_SYSRQ=y |
1334 | CONFIG_DEBUG_KERNEL=y | ||
1267 | CONFIG_LOG_BUF_SHIFT=20 | 1335 | CONFIG_LOG_BUF_SHIFT=20 |
1268 | CONFIG_DETECT_SOFTLOCKUP=y | 1336 | CONFIG_DETECT_SOFTLOCKUP=y |
1269 | # CONFIG_SCHEDSTATS is not set | 1337 | # CONFIG_SCHEDSTATS is not set |
1270 | # CONFIG_DEBUG_SLAB is not set | 1338 | # CONFIG_DEBUG_SLAB is not set |
1339 | CONFIG_DEBUG_MUTEXES=y | ||
1271 | # CONFIG_DEBUG_SPINLOCK is not set | 1340 | # CONFIG_DEBUG_SPINLOCK is not set |
1272 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1341 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1273 | # CONFIG_DEBUG_KOBJECT is not set | 1342 | # CONFIG_DEBUG_KOBJECT is not set |
1274 | # CONFIG_DEBUG_INFO is not set | 1343 | # CONFIG_DEBUG_INFO is not set |
1275 | # CONFIG_DEBUG_FS is not set | 1344 | # CONFIG_DEBUG_FS is not set |
1276 | # CONFIG_KPROBES is not set | 1345 | # CONFIG_DEBUG_VM is not set |
1346 | CONFIG_FORCED_INLINING=y | ||
1347 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1277 | CONFIG_IA64_GRANULE_16MB=y | 1348 | CONFIG_IA64_GRANULE_16MB=y |
1278 | # CONFIG_IA64_GRANULE_64MB is not set | 1349 | # CONFIG_IA64_GRANULE_64MB is not set |
1279 | # CONFIG_IA64_PRINT_HAZARDS is not set | 1350 | # CONFIG_IA64_PRINT_HAZARDS is not set |
diff --git a/arch/ia64/configs/sim_defconfig b/arch/ia64/configs/sim_defconfig index a26781cfe8bf..d9146c31ea13 100644 --- a/arch/ia64/configs/sim_defconfig +++ b/arch/ia64/configs/sim_defconfig | |||
@@ -1,39 +1,52 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc5 | ||
4 | # Mon Feb 27 16:13:41 2006 | ||
3 | # | 5 | # |
4 | 6 | ||
5 | # | 7 | # |
6 | # Code maturity level options | 8 | # Code maturity level options |
7 | # | 9 | # |
8 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
9 | # CONFIG_CLEAN_COMPILE is not set | 11 | CONFIG_LOCK_KERNEL=y |
10 | # CONFIG_STANDALONE is not set | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
11 | CONFIG_BROKEN=y | ||
12 | CONFIG_BROKEN_ON_SMP=y | ||
13 | 13 | ||
14 | # | 14 | # |
15 | # General setup | 15 | # General setup |
16 | # | 16 | # |
17 | CONFIG_LOCALVERSION="" | ||
18 | CONFIG_LOCALVERSION_AUTO=y | ||
17 | CONFIG_SWAP=y | 19 | CONFIG_SWAP=y |
18 | CONFIG_SYSVIPC=y | 20 | CONFIG_SYSVIPC=y |
19 | # CONFIG_POSIX_MQUEUE is not set | 21 | # CONFIG_POSIX_MQUEUE is not set |
20 | # CONFIG_BSD_PROCESS_ACCT is not set | 22 | # CONFIG_BSD_PROCESS_ACCT is not set |
21 | CONFIG_SYSCTL=y | 23 | CONFIG_SYSCTL=y |
22 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
23 | CONFIG_LOG_BUF_SHIFT=16 | ||
24 | # CONFIG_HOTPLUG is not set | ||
25 | CONFIG_IKCONFIG=y | 25 | CONFIG_IKCONFIG=y |
26 | CONFIG_IKCONFIG_PROC=y | 26 | CONFIG_IKCONFIG_PROC=y |
27 | # CONFIG_CPUSETS is not set | ||
28 | CONFIG_INITRAMFS_SOURCE="" | ||
29 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
27 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
28 | CONFIG_KALLSYMS=y | 31 | CONFIG_KALLSYMS=y |
29 | # CONFIG_KALLSYMS_ALL is not set | 32 | # CONFIG_KALLSYMS_ALL is not set |
33 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
34 | CONFIG_HOTPLUG=y | ||
35 | CONFIG_PRINTK=y | ||
36 | CONFIG_BUG=y | ||
37 | CONFIG_ELF_CORE=y | ||
38 | CONFIG_BASE_FULL=y | ||
30 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
31 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
32 | CONFIG_IOSCHED_NOOP=y | 41 | CONFIG_SHMEM=y |
33 | CONFIG_IOSCHED_AS=y | 42 | CONFIG_CC_ALIGN_FUNCTIONS=0 |
34 | CONFIG_IOSCHED_DEADLINE=y | 43 | CONFIG_CC_ALIGN_LABELS=0 |
35 | CONFIG_IOSCHED_CFQ=y | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
36 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | ||
47 | # CONFIG_TINY_SHMEM is not set | ||
48 | CONFIG_BASE_SMALL=0 | ||
49 | # CONFIG_SLOB is not set | ||
37 | 50 | ||
38 | # | 51 | # |
39 | # Loadable module support | 52 | # Loadable module support |
@@ -43,21 +56,45 @@ CONFIG_MODULE_UNLOAD=y | |||
43 | CONFIG_MODULE_FORCE_UNLOAD=y | 56 | CONFIG_MODULE_FORCE_UNLOAD=y |
44 | CONFIG_OBSOLETE_MODPARM=y | 57 | CONFIG_OBSOLETE_MODPARM=y |
45 | CONFIG_MODVERSIONS=y | 58 | CONFIG_MODVERSIONS=y |
59 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
46 | CONFIG_KMOD=y | 60 | CONFIG_KMOD=y |
47 | CONFIG_STOP_MACHINE=y | 61 | CONFIG_STOP_MACHINE=y |
48 | 62 | ||
49 | # | 63 | # |
64 | # Block layer | ||
65 | # | ||
66 | |||
67 | # | ||
68 | # IO Schedulers | ||
69 | # | ||
70 | CONFIG_IOSCHED_NOOP=y | ||
71 | CONFIG_IOSCHED_AS=y | ||
72 | CONFIG_IOSCHED_DEADLINE=y | ||
73 | CONFIG_IOSCHED_CFQ=y | ||
74 | CONFIG_DEFAULT_AS=y | ||
75 | # CONFIG_DEFAULT_DEADLINE is not set | ||
76 | # CONFIG_DEFAULT_CFQ is not set | ||
77 | # CONFIG_DEFAULT_NOOP is not set | ||
78 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
79 | |||
80 | # | ||
50 | # Processor type and features | 81 | # Processor type and features |
51 | # | 82 | # |
52 | CONFIG_IA64=y | 83 | CONFIG_IA64=y |
53 | CONFIG_64BIT=y | 84 | CONFIG_64BIT=y |
54 | CONFIG_MMU=y | 85 | CONFIG_MMU=y |
86 | CONFIG_SWIOTLB=y | ||
55 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 87 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
88 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
56 | CONFIG_TIME_INTERPOLATION=y | 89 | CONFIG_TIME_INTERPOLATION=y |
57 | CONFIG_EFI=y | 90 | CONFIG_EFI=y |
91 | CONFIG_GENERIC_IOMAP=y | ||
92 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
93 | CONFIG_DMA_IS_DMA32=y | ||
58 | # CONFIG_IA64_GENERIC is not set | 94 | # CONFIG_IA64_GENERIC is not set |
59 | # CONFIG_IA64_DIG is not set | 95 | # CONFIG_IA64_DIG is not set |
60 | # CONFIG_IA64_HP_ZX1 is not set | 96 | # CONFIG_IA64_HP_ZX1 is not set |
97 | # CONFIG_IA64_HP_ZX1_SWIOTLB is not set | ||
61 | # CONFIG_IA64_SGI_SN2 is not set | 98 | # CONFIG_IA64_SGI_SN2 is not set |
62 | CONFIG_IA64_HP_SIM=y | 99 | CONFIG_IA64_HP_SIM=y |
63 | # CONFIG_ITANIUM is not set | 100 | # CONFIG_ITANIUM is not set |
@@ -66,17 +103,36 @@ CONFIG_MCKINLEY=y | |||
66 | # CONFIG_IA64_PAGE_SIZE_8KB is not set | 103 | # CONFIG_IA64_PAGE_SIZE_8KB is not set |
67 | # CONFIG_IA64_PAGE_SIZE_16KB is not set | 104 | # CONFIG_IA64_PAGE_SIZE_16KB is not set |
68 | CONFIG_IA64_PAGE_SIZE_64KB=y | 105 | CONFIG_IA64_PAGE_SIZE_64KB=y |
106 | CONFIG_PGTABLE_3=y | ||
107 | # CONFIG_PGTABLE_4 is not set | ||
108 | # CONFIG_HZ_100 is not set | ||
109 | CONFIG_HZ_250=y | ||
110 | # CONFIG_HZ_1000 is not set | ||
111 | CONFIG_HZ=250 | ||
69 | CONFIG_IA64_L1_CACHE_SHIFT=7 | 112 | CONFIG_IA64_L1_CACHE_SHIFT=7 |
70 | # CONFIG_MCKINLEY_ASTEP_SPECIFIC is not set | ||
71 | # CONFIG_VIRTUAL_MEM_MAP is not set | ||
72 | # CONFIG_IA64_CYCLONE is not set | 113 | # CONFIG_IA64_CYCLONE is not set |
73 | CONFIG_FORCE_MAX_ZONEORDER=18 | 114 | CONFIG_FORCE_MAX_ZONEORDER=17 |
74 | CONFIG_SMP=y | 115 | CONFIG_SMP=y |
75 | CONFIG_NR_CPUS=64 | 116 | CONFIG_NR_CPUS=64 |
117 | # CONFIG_HOTPLUG_CPU is not set | ||
118 | # CONFIG_SCHED_SMT is not set | ||
76 | CONFIG_PREEMPT=y | 119 | CONFIG_PREEMPT=y |
77 | CONFIG_HAVE_DEC_LOCK=y | 120 | CONFIG_SELECT_MEMORY_MODEL=y |
121 | CONFIG_FLATMEM_MANUAL=y | ||
122 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
123 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
124 | CONFIG_FLATMEM=y | ||
125 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
126 | # CONFIG_SPARSEMEM_STATIC is not set | ||
127 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
128 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
129 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
130 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
131 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
132 | # CONFIG_VIRTUAL_MEM_MAP is not set | ||
78 | CONFIG_IA32_SUPPORT=y | 133 | CONFIG_IA32_SUPPORT=y |
79 | CONFIG_COMPAT=y | 134 | CONFIG_COMPAT=y |
135 | # CONFIG_IA64_MCA_RECOVERY is not set | ||
80 | # CONFIG_PERFMON is not set | 136 | # CONFIG_PERFMON is not set |
81 | CONFIG_IA64_PALINFO=m | 137 | CONFIG_IA64_PALINFO=m |
82 | 138 | ||
@@ -84,7 +140,6 @@ CONFIG_IA64_PALINFO=m | |||
84 | # Firmware Drivers | 140 | # Firmware Drivers |
85 | # | 141 | # |
86 | CONFIG_EFI_VARS=y | 142 | CONFIG_EFI_VARS=y |
87 | # CONFIG_SMBIOS is not set | ||
88 | CONFIG_BINFMT_ELF=y | 143 | CONFIG_BINFMT_ELF=y |
89 | CONFIG_BINFMT_MISC=y | 144 | CONFIG_BINFMT_MISC=y |
90 | 145 | ||
@@ -93,15 +148,98 @@ CONFIG_BINFMT_MISC=y | |||
93 | # | 148 | # |
94 | 149 | ||
95 | # | 150 | # |
151 | # Networking | ||
152 | # | ||
153 | CONFIG_NET=y | ||
154 | |||
155 | # | ||
156 | # Networking options | ||
157 | # | ||
158 | # CONFIG_NETDEBUG is not set | ||
159 | CONFIG_PACKET=y | ||
160 | # CONFIG_PACKET_MMAP is not set | ||
161 | # CONFIG_UNIX is not set | ||
162 | # CONFIG_NET_KEY is not set | ||
163 | CONFIG_INET=y | ||
164 | CONFIG_IP_MULTICAST=y | ||
165 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
166 | CONFIG_IP_FIB_HASH=y | ||
167 | # CONFIG_IP_PNP is not set | ||
168 | # CONFIG_NET_IPIP is not set | ||
169 | # CONFIG_NET_IPGRE is not set | ||
170 | # CONFIG_IP_MROUTE is not set | ||
171 | # CONFIG_ARPD is not set | ||
172 | # CONFIG_SYN_COOKIES is not set | ||
173 | # CONFIG_INET_AH is not set | ||
174 | # CONFIG_INET_ESP is not set | ||
175 | # CONFIG_INET_IPCOMP is not set | ||
176 | # CONFIG_INET_TUNNEL is not set | ||
177 | CONFIG_INET_DIAG=y | ||
178 | CONFIG_INET_TCP_DIAG=y | ||
179 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
180 | CONFIG_TCP_CONG_BIC=y | ||
181 | # CONFIG_IPV6 is not set | ||
182 | # CONFIG_NETFILTER is not set | ||
183 | |||
184 | # | ||
185 | # DCCP Configuration (EXPERIMENTAL) | ||
186 | # | ||
187 | # CONFIG_IP_DCCP is not set | ||
188 | |||
189 | # | ||
190 | # SCTP Configuration (EXPERIMENTAL) | ||
191 | # | ||
192 | # CONFIG_IP_SCTP is not set | ||
193 | |||
194 | # | ||
195 | # TIPC Configuration (EXPERIMENTAL) | ||
196 | # | ||
197 | # CONFIG_TIPC is not set | ||
198 | # CONFIG_ATM is not set | ||
199 | # CONFIG_BRIDGE is not set | ||
200 | # CONFIG_VLAN_8021Q is not set | ||
201 | # CONFIG_DECNET is not set | ||
202 | # CONFIG_LLC2 is not set | ||
203 | # CONFIG_IPX is not set | ||
204 | # CONFIG_ATALK is not set | ||
205 | # CONFIG_X25 is not set | ||
206 | # CONFIG_LAPB is not set | ||
207 | # CONFIG_NET_DIVERT is not set | ||
208 | # CONFIG_ECONET is not set | ||
209 | # CONFIG_WAN_ROUTER is not set | ||
210 | |||
211 | # | ||
212 | # QoS and/or fair queueing | ||
213 | # | ||
214 | # CONFIG_NET_SCHED is not set | ||
215 | |||
216 | # | ||
217 | # Network testing | ||
218 | # | ||
219 | # CONFIG_NET_PKTGEN is not set | ||
220 | # CONFIG_HAMRADIO is not set | ||
221 | # CONFIG_IRDA is not set | ||
222 | # CONFIG_BT is not set | ||
223 | # CONFIG_IEEE80211 is not set | ||
224 | |||
225 | # | ||
96 | # Device Drivers | 226 | # Device Drivers |
97 | # | 227 | # |
98 | 228 | ||
99 | # | 229 | # |
100 | # Generic Driver Options | 230 | # Generic Driver Options |
101 | # | 231 | # |
232 | # CONFIG_STANDALONE is not set | ||
233 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
234 | # CONFIG_FW_LOADER is not set | ||
102 | # CONFIG_DEBUG_DRIVER is not set | 235 | # CONFIG_DEBUG_DRIVER is not set |
103 | 236 | ||
104 | # | 237 | # |
238 | # Connector - unified userspace <-> kernelspace linker | ||
239 | # | ||
240 | # CONFIG_CONNECTOR is not set | ||
241 | |||
242 | # | ||
105 | # Memory Technology Devices (MTD) | 243 | # Memory Technology Devices (MTD) |
106 | # | 244 | # |
107 | # CONFIG_MTD is not set | 245 | # CONFIG_MTD is not set |
@@ -118,12 +256,16 @@ CONFIG_BINFMT_MISC=y | |||
118 | # | 256 | # |
119 | # Block devices | 257 | # Block devices |
120 | # | 258 | # |
259 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
121 | CONFIG_BLK_DEV_LOOP=y | 260 | CONFIG_BLK_DEV_LOOP=y |
122 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 261 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
123 | # CONFIG_BLK_DEV_NBD is not set | 262 | # CONFIG_BLK_DEV_NBD is not set |
124 | CONFIG_BLK_DEV_RAM=y | 263 | CONFIG_BLK_DEV_RAM=y |
264 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
125 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 265 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
126 | # CONFIG_BLK_DEV_INITRD is not set | 266 | # CONFIG_BLK_DEV_INITRD is not set |
267 | # CONFIG_CDROM_PKTCDVD is not set | ||
268 | # CONFIG_ATA_OVER_ETH is not set | ||
127 | 269 | ||
128 | # | 270 | # |
129 | # ATA/ATAPI/MFM/RLL support | 271 | # ATA/ATAPI/MFM/RLL support |
@@ -133,6 +275,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
133 | # | 275 | # |
134 | # SCSI device support | 276 | # SCSI device support |
135 | # | 277 | # |
278 | # CONFIG_RAID_ATTRS is not set | ||
136 | CONFIG_SCSI=y | 279 | CONFIG_SCSI=y |
137 | CONFIG_SCSI_PROC_FS=y | 280 | CONFIG_SCSI_PROC_FS=y |
138 | 281 | ||
@@ -144,6 +287,7 @@ CONFIG_BLK_DEV_SD=y | |||
144 | # CONFIG_CHR_DEV_OSST is not set | 287 | # CONFIG_CHR_DEV_OSST is not set |
145 | # CONFIG_BLK_DEV_SR is not set | 288 | # CONFIG_BLK_DEV_SR is not set |
146 | # CONFIG_CHR_DEV_SG is not set | 289 | # CONFIG_CHR_DEV_SG is not set |
290 | # CONFIG_CHR_DEV_SCH is not set | ||
147 | 291 | ||
148 | # | 292 | # |
149 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | 293 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs |
@@ -157,13 +301,14 @@ CONFIG_SCSI_LOGGING=y | |||
157 | # | 301 | # |
158 | CONFIG_SCSI_SPI_ATTRS=y | 302 | CONFIG_SCSI_SPI_ATTRS=y |
159 | # CONFIG_SCSI_FC_ATTRS is not set | 303 | # CONFIG_SCSI_FC_ATTRS is not set |
304 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
305 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
160 | 306 | ||
161 | # | 307 | # |
162 | # SCSI low-level drivers | 308 | # SCSI low-level drivers |
163 | # | 309 | # |
164 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 310 | # CONFIG_ISCSI_TCP is not set |
165 | # CONFIG_SCSI_SATA is not set | 311 | # CONFIG_SCSI_SATA is not set |
166 | # CONFIG_SCSI_EATA_PIO is not set | ||
167 | # CONFIG_SCSI_DEBUG is not set | 312 | # CONFIG_SCSI_DEBUG is not set |
168 | 313 | ||
169 | # | 314 | # |
@@ -174,77 +319,47 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
174 | # | 319 | # |
175 | # Fusion MPT device support | 320 | # Fusion MPT device support |
176 | # | 321 | # |
322 | # CONFIG_FUSION is not set | ||
177 | 323 | ||
178 | # | 324 | # |
179 | # IEEE 1394 (FireWire) support | 325 | # IEEE 1394 (FireWire) support |
180 | # | 326 | # |
181 | # CONFIG_IEEE1394 is not set | ||
182 | 327 | ||
183 | # | 328 | # |
184 | # I2O device support | 329 | # I2O device support |
185 | # | 330 | # |
186 | 331 | ||
187 | # | 332 | # |
188 | # Networking support | 333 | # Network device support |
189 | # | 334 | # |
190 | CONFIG_NET=y | 335 | # CONFIG_NETDEVICES is not set |
336 | # CONFIG_DUMMY is not set | ||
337 | # CONFIG_BONDING is not set | ||
338 | # CONFIG_EQUALIZER is not set | ||
339 | # CONFIG_TUN is not set | ||
191 | 340 | ||
192 | # | 341 | # |
193 | # Networking options | 342 | # PHY device support |
194 | # | 343 | # |
195 | CONFIG_PACKET=y | ||
196 | # CONFIG_PACKET_MMAP is not set | ||
197 | # CONFIG_NETLINK_DEV is not set | ||
198 | # CONFIG_UNIX is not set | ||
199 | # CONFIG_NET_KEY is not set | ||
200 | CONFIG_INET=y | ||
201 | CONFIG_IP_MULTICAST=y | ||
202 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
203 | # CONFIG_IP_PNP is not set | ||
204 | # CONFIG_NET_IPIP is not set | ||
205 | # CONFIG_NET_IPGRE is not set | ||
206 | # CONFIG_IP_MROUTE is not set | ||
207 | # CONFIG_ARPD is not set | ||
208 | # CONFIG_SYN_COOKIES is not set | ||
209 | # CONFIG_INET_AH is not set | ||
210 | # CONFIG_INET_ESP is not set | ||
211 | # CONFIG_INET_IPCOMP is not set | ||
212 | # CONFIG_IPV6 is not set | ||
213 | # CONFIG_NETFILTER is not set | ||
214 | 344 | ||
215 | # | 345 | # |
216 | # SCTP Configuration (EXPERIMENTAL) | 346 | # Ethernet (10 or 100Mbit) |
217 | # | 347 | # |
218 | # CONFIG_IP_SCTP is not set | 348 | # CONFIG_NET_ETHERNET is not set |
219 | # CONFIG_ATM is not set | ||
220 | # CONFIG_BRIDGE is not set | ||
221 | # CONFIG_VLAN_8021Q is not set | ||
222 | # CONFIG_DECNET is not set | ||
223 | # CONFIG_LLC2 is not set | ||
224 | # CONFIG_IPX is not set | ||
225 | # CONFIG_ATALK is not set | ||
226 | # CONFIG_X25 is not set | ||
227 | # CONFIG_LAPB is not set | ||
228 | # CONFIG_NET_DIVERT is not set | ||
229 | # CONFIG_ECONET is not set | ||
230 | # CONFIG_WAN_ROUTER is not set | ||
231 | # CONFIG_NET_HW_FLOWCONTROL is not set | ||
232 | 349 | ||
233 | # | 350 | # |
234 | # QoS and/or fair queueing | 351 | # Ethernet (1000 Mbit) |
235 | # | 352 | # |
236 | # CONFIG_NET_SCHED is not set | ||
237 | 353 | ||
238 | # | 354 | # |
239 | # Network testing | 355 | # Ethernet (10000 Mbit) |
240 | # | 356 | # |
241 | # CONFIG_NET_PKTGEN is not set | 357 | # CONFIG_PPP is not set |
358 | # CONFIG_SLIP is not set | ||
359 | # CONFIG_SHAPER is not set | ||
360 | # CONFIG_NETCONSOLE is not set | ||
242 | # CONFIG_NETPOLL is not set | 361 | # CONFIG_NETPOLL is not set |
243 | # CONFIG_NET_POLL_CONTROLLER is not set | 362 | # CONFIG_NET_POLL_CONTROLLER is not set |
244 | # CONFIG_HAMRADIO is not set | ||
245 | # CONFIG_IRDA is not set | ||
246 | # CONFIG_BT is not set | ||
247 | # CONFIG_NETDEVICES is not set | ||
248 | 363 | ||
249 | # | 364 | # |
250 | # ISDN subsystem | 365 | # ISDN subsystem |
@@ -274,16 +389,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
274 | # CONFIG_INPUT_EVBUG is not set | 389 | # CONFIG_INPUT_EVBUG is not set |
275 | 390 | ||
276 | # | 391 | # |
277 | # Input I/O drivers | ||
278 | # | ||
279 | # CONFIG_GAMEPORT is not set | ||
280 | CONFIG_SOUND_GAMEPORT=y | ||
281 | CONFIG_SERIO=y | ||
282 | # CONFIG_SERIO_I8042 is not set | ||
283 | CONFIG_SERIO_SERPORT=y | ||
284 | # CONFIG_SERIO_CT82C710 is not set | ||
285 | |||
286 | # | ||
287 | # Input Device Drivers | 392 | # Input Device Drivers |
288 | # | 393 | # |
289 | # CONFIG_INPUT_KEYBOARD is not set | 394 | # CONFIG_INPUT_KEYBOARD is not set |
@@ -293,6 +398,15 @@ CONFIG_SERIO_SERPORT=y | |||
293 | # CONFIG_INPUT_MISC is not set | 398 | # CONFIG_INPUT_MISC is not set |
294 | 399 | ||
295 | # | 400 | # |
401 | # Hardware I/O ports | ||
402 | # | ||
403 | CONFIG_SERIO=y | ||
404 | # CONFIG_SERIO_I8042 is not set | ||
405 | CONFIG_SERIO_SERPORT=y | ||
406 | # CONFIG_SERIO_RAW is not set | ||
407 | # CONFIG_GAMEPORT is not set | ||
408 | |||
409 | # | ||
296 | # Character devices | 410 | # Character devices |
297 | # | 411 | # |
298 | CONFIG_VT=y | 412 | CONFIG_VT=y |
@@ -310,7 +424,6 @@ CONFIG_HW_CONSOLE=y | |||
310 | # | 424 | # |
311 | CONFIG_UNIX98_PTYS=y | 425 | CONFIG_UNIX98_PTYS=y |
312 | # CONFIG_LEGACY_PTYS is not set | 426 | # CONFIG_LEGACY_PTYS is not set |
313 | # CONFIG_QIC02_TAPE is not set | ||
314 | 427 | ||
315 | # | 428 | # |
316 | # IPMI | 429 | # IPMI |
@@ -324,15 +437,19 @@ CONFIG_UNIX98_PTYS=y | |||
324 | CONFIG_EFI_RTC=y | 437 | CONFIG_EFI_RTC=y |
325 | # CONFIG_DTLK is not set | 438 | # CONFIG_DTLK is not set |
326 | # CONFIG_R3964 is not set | 439 | # CONFIG_R3964 is not set |
327 | # CONFIG_APPLICOM is not set | ||
328 | 440 | ||
329 | # | 441 | # |
330 | # Ftape, the floppy tape device driver | 442 | # Ftape, the floppy tape device driver |
331 | # | 443 | # |
332 | # CONFIG_FTAPE is not set | ||
333 | # CONFIG_AGP is not set | 444 | # CONFIG_AGP is not set |
334 | # CONFIG_DRM is not set | ||
335 | # CONFIG_RAW_DRIVER is not set | 445 | # CONFIG_RAW_DRIVER is not set |
446 | # CONFIG_HANGCHECK_TIMER is not set | ||
447 | |||
448 | # | ||
449 | # TPM devices | ||
450 | # | ||
451 | # CONFIG_TCG_TPM is not set | ||
452 | # CONFIG_TELCLOCK is not set | ||
336 | 453 | ||
337 | # | 454 | # |
338 | # I2C support | 455 | # I2C support |
@@ -340,10 +457,33 @@ CONFIG_EFI_RTC=y | |||
340 | # CONFIG_I2C is not set | 457 | # CONFIG_I2C is not set |
341 | 458 | ||
342 | # | 459 | # |
460 | # SPI support | ||
461 | # | ||
462 | # CONFIG_SPI is not set | ||
463 | # CONFIG_SPI_MASTER is not set | ||
464 | |||
465 | # | ||
466 | # Dallas's 1-wire bus | ||
467 | # | ||
468 | # CONFIG_W1 is not set | ||
469 | |||
470 | # | ||
471 | # Hardware Monitoring support | ||
472 | # | ||
473 | CONFIG_HWMON=y | ||
474 | # CONFIG_HWMON_VID is not set | ||
475 | # CONFIG_SENSORS_F71805F is not set | ||
476 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
477 | |||
478 | # | ||
343 | # Misc devices | 479 | # Misc devices |
344 | # | 480 | # |
345 | 481 | ||
346 | # | 482 | # |
483 | # Multimedia Capabilities Port drivers | ||
484 | # | ||
485 | |||
486 | # | ||
347 | # Multimedia devices | 487 | # Multimedia devices |
348 | # | 488 | # |
349 | # CONFIG_VIDEO_DEV is not set | 489 | # CONFIG_VIDEO_DEV is not set |
@@ -362,7 +502,6 @@ CONFIG_EFI_RTC=y | |||
362 | # Console display driver support | 502 | # Console display driver support |
363 | # | 503 | # |
364 | # CONFIG_VGA_CONSOLE is not set | 504 | # CONFIG_VGA_CONSOLE is not set |
365 | # CONFIG_MDA_CONSOLE is not set | ||
366 | CONFIG_DUMMY_CONSOLE=y | 505 | CONFIG_DUMMY_CONSOLE=y |
367 | 506 | ||
368 | # | 507 | # |
@@ -373,6 +512,12 @@ CONFIG_DUMMY_CONSOLE=y | |||
373 | # | 512 | # |
374 | # USB support | 513 | # USB support |
375 | # | 514 | # |
515 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
516 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
517 | |||
518 | # | ||
519 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
520 | # | ||
376 | 521 | ||
377 | # | 522 | # |
378 | # USB Gadget Support | 523 | # USB Gadget Support |
@@ -380,22 +525,41 @@ CONFIG_DUMMY_CONSOLE=y | |||
380 | # CONFIG_USB_GADGET is not set | 525 | # CONFIG_USB_GADGET is not set |
381 | 526 | ||
382 | # | 527 | # |
528 | # MMC/SD Card support | ||
529 | # | ||
530 | # CONFIG_MMC is not set | ||
531 | |||
532 | # | ||
533 | # InfiniBand support | ||
534 | # | ||
535 | |||
536 | # | ||
537 | # EDAC - error detection and reporting (RAS) | ||
538 | # | ||
539 | |||
540 | # | ||
383 | # File systems | 541 | # File systems |
384 | # | 542 | # |
385 | CONFIG_EXT2_FS=y | 543 | CONFIG_EXT2_FS=y |
386 | # CONFIG_EXT2_FS_XATTR is not set | 544 | # CONFIG_EXT2_FS_XATTR is not set |
545 | # CONFIG_EXT2_FS_XIP is not set | ||
387 | CONFIG_EXT3_FS=y | 546 | CONFIG_EXT3_FS=y |
388 | # CONFIG_EXT3_FS_XATTR is not set | 547 | # CONFIG_EXT3_FS_XATTR is not set |
389 | CONFIG_JBD=y | 548 | CONFIG_JBD=y |
390 | # CONFIG_JBD_DEBUG is not set | 549 | # CONFIG_JBD_DEBUG is not set |
391 | # CONFIG_REISERFS_FS is not set | 550 | # CONFIG_REISERFS_FS is not set |
392 | # CONFIG_JFS_FS is not set | 551 | # CONFIG_JFS_FS is not set |
552 | # CONFIG_FS_POSIX_ACL is not set | ||
393 | # CONFIG_XFS_FS is not set | 553 | # CONFIG_XFS_FS is not set |
554 | # CONFIG_OCFS2_FS is not set | ||
394 | # CONFIG_MINIX_FS is not set | 555 | # CONFIG_MINIX_FS is not set |
395 | # CONFIG_ROMFS_FS is not set | 556 | # CONFIG_ROMFS_FS is not set |
557 | CONFIG_INOTIFY=y | ||
396 | # CONFIG_QUOTA is not set | 558 | # CONFIG_QUOTA is not set |
559 | CONFIG_DNOTIFY=y | ||
397 | # CONFIG_AUTOFS_FS is not set | 560 | # CONFIG_AUTOFS_FS is not set |
398 | # CONFIG_AUTOFS4_FS is not set | 561 | # CONFIG_AUTOFS4_FS is not set |
562 | # CONFIG_FUSE_FS is not set | ||
399 | 563 | ||
400 | # | 564 | # |
401 | # CD-ROM/DVD Filesystems | 565 | # CD-ROM/DVD Filesystems |
@@ -406,7 +570,8 @@ CONFIG_JBD=y | |||
406 | # | 570 | # |
407 | # DOS/FAT/NT Filesystems | 571 | # DOS/FAT/NT Filesystems |
408 | # | 572 | # |
409 | # CONFIG_FAT_FS is not set | 573 | # CONFIG_MSDOS_FS is not set |
574 | # CONFIG_VFAT_FS is not set | ||
410 | # CONFIG_NTFS_FS is not set | 575 | # CONFIG_NTFS_FS is not set |
411 | 576 | ||
412 | # | 577 | # |
@@ -415,12 +580,12 @@ CONFIG_JBD=y | |||
415 | CONFIG_PROC_FS=y | 580 | CONFIG_PROC_FS=y |
416 | CONFIG_PROC_KCORE=y | 581 | CONFIG_PROC_KCORE=y |
417 | CONFIG_SYSFS=y | 582 | CONFIG_SYSFS=y |
418 | # CONFIG_DEVFS_FS is not set | ||
419 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
420 | # CONFIG_TMPFS is not set | 583 | # CONFIG_TMPFS is not set |
421 | CONFIG_HUGETLBFS=y | 584 | CONFIG_HUGETLBFS=y |
422 | CONFIG_HUGETLB_PAGE=y | 585 | CONFIG_HUGETLB_PAGE=y |
423 | CONFIG_RAMFS=y | 586 | CONFIG_RAMFS=y |
587 | # CONFIG_RELAYFS_FS is not set | ||
588 | # CONFIG_CONFIGFS_FS is not set | ||
424 | 589 | ||
425 | # | 590 | # |
426 | # Miscellaneous filesystems | 591 | # Miscellaneous filesystems |
@@ -448,18 +613,22 @@ CONFIG_NFS_FS=y | |||
448 | CONFIG_NFS_DIRECTIO=y | 613 | CONFIG_NFS_DIRECTIO=y |
449 | CONFIG_NFSD=y | 614 | CONFIG_NFSD=y |
450 | CONFIG_NFSD_V3=y | 615 | CONFIG_NFSD_V3=y |
616 | # CONFIG_NFSD_V3_ACL is not set | ||
451 | # CONFIG_NFSD_V4 is not set | 617 | # CONFIG_NFSD_V4 is not set |
452 | # CONFIG_NFSD_TCP is not set | 618 | # CONFIG_NFSD_TCP is not set |
453 | CONFIG_LOCKD=y | 619 | CONFIG_LOCKD=y |
454 | CONFIG_LOCKD_V4=y | 620 | CONFIG_LOCKD_V4=y |
455 | CONFIG_EXPORTFS=y | 621 | CONFIG_EXPORTFS=y |
622 | CONFIG_NFS_COMMON=y | ||
456 | CONFIG_SUNRPC=y | 623 | CONFIG_SUNRPC=y |
457 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 624 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
625 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
458 | # CONFIG_SMB_FS is not set | 626 | # CONFIG_SMB_FS is not set |
459 | # CONFIG_CIFS is not set | 627 | # CONFIG_CIFS is not set |
460 | # CONFIG_NCP_FS is not set | 628 | # CONFIG_NCP_FS is not set |
461 | # CONFIG_CODA_FS is not set | 629 | # CONFIG_CODA_FS is not set |
462 | # CONFIG_AFS_FS is not set | 630 | # CONFIG_AFS_FS is not set |
631 | # CONFIG_9P_FS is not set | ||
463 | 632 | ||
464 | # | 633 | # |
465 | # Partition Types | 634 | # Partition Types |
@@ -476,10 +645,10 @@ CONFIG_MSDOS_PARTITION=y | |||
476 | # CONFIG_SOLARIS_X86_PARTITION is not set | 645 | # CONFIG_SOLARIS_X86_PARTITION is not set |
477 | # CONFIG_UNIXWARE_DISKLABEL is not set | 646 | # CONFIG_UNIXWARE_DISKLABEL is not set |
478 | # CONFIG_LDM_PARTITION is not set | 647 | # CONFIG_LDM_PARTITION is not set |
479 | # CONFIG_NEC98_PARTITION is not set | ||
480 | # CONFIG_SGI_PARTITION is not set | 648 | # CONFIG_SGI_PARTITION is not set |
481 | # CONFIG_ULTRIX_PARTITION is not set | 649 | # CONFIG_ULTRIX_PARTITION is not set |
482 | # CONFIG_SUN_PARTITION is not set | 650 | # CONFIG_SUN_PARTITION is not set |
651 | # CONFIG_KARMA_PARTITION is not set | ||
483 | CONFIG_EFI_PARTITION=y | 652 | CONFIG_EFI_PARTITION=y |
484 | 653 | ||
485 | # | 654 | # |
@@ -490,8 +659,13 @@ CONFIG_EFI_PARTITION=y | |||
490 | # | 659 | # |
491 | # Library routines | 660 | # Library routines |
492 | # | 661 | # |
662 | # CONFIG_CRC_CCITT is not set | ||
663 | # CONFIG_CRC16 is not set | ||
493 | CONFIG_CRC32=y | 664 | CONFIG_CRC32=y |
494 | # CONFIG_LIBCRC32C is not set | 665 | # CONFIG_LIBCRC32C is not set |
666 | CONFIG_GENERIC_HARDIRQS=y | ||
667 | CONFIG_GENERIC_IRQ_PROBE=y | ||
668 | CONFIG_GENERIC_PENDING_IRQ=y | ||
495 | 669 | ||
496 | # | 670 | # |
497 | # HP Simulator drivers | 671 | # HP Simulator drivers |
@@ -502,33 +676,50 @@ CONFIG_HP_SIMSERIAL_CONSOLE=y | |||
502 | CONFIG_HP_SIMSCSI=y | 676 | CONFIG_HP_SIMSCSI=y |
503 | 677 | ||
504 | # | 678 | # |
505 | # Profiling support | 679 | # Instrumentation Support |
506 | # | 680 | # |
507 | # CONFIG_PROFILING is not set | 681 | # CONFIG_PROFILING is not set |
682 | # CONFIG_KPROBES is not set | ||
508 | 683 | ||
509 | # | 684 | # |
510 | # Kernel hacking | 685 | # Kernel hacking |
511 | # | 686 | # |
512 | # CONFIG_IA64_GRANULE_16MB is not set | 687 | # CONFIG_PRINTK_TIME is not set |
513 | CONFIG_IA64_GRANULE_64MB=y | ||
514 | CONFIG_DEBUG_KERNEL=y | ||
515 | # CONFIG_IA64_PRINT_HAZARDS is not set | ||
516 | # CONFIG_DISABLE_VHPT is not set | ||
517 | # CONFIG_MAGIC_SYSRQ is not set | 688 | # CONFIG_MAGIC_SYSRQ is not set |
689 | CONFIG_DEBUG_KERNEL=y | ||
690 | CONFIG_LOG_BUF_SHIFT=16 | ||
691 | CONFIG_DETECT_SOFTLOCKUP=y | ||
692 | # CONFIG_SCHEDSTATS is not set | ||
518 | # CONFIG_DEBUG_SLAB is not set | 693 | # CONFIG_DEBUG_SLAB is not set |
694 | CONFIG_DEBUG_PREEMPT=y | ||
695 | CONFIG_DEBUG_MUTEXES=y | ||
519 | # CONFIG_DEBUG_SPINLOCK is not set | 696 | # CONFIG_DEBUG_SPINLOCK is not set |
520 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 697 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
698 | # CONFIG_DEBUG_KOBJECT is not set | ||
699 | CONFIG_DEBUG_INFO=y | ||
700 | # CONFIG_DEBUG_FS is not set | ||
701 | # CONFIG_DEBUG_VM is not set | ||
702 | CONFIG_FORCED_INLINING=y | ||
703 | # CONFIG_RCU_TORTURE_TEST is not set | ||
704 | # CONFIG_IA64_GRANULE_16MB is not set | ||
705 | CONFIG_IA64_GRANULE_64MB=y | ||
706 | # CONFIG_IA64_PRINT_HAZARDS is not set | ||
707 | # CONFIG_DISABLE_VHPT is not set | ||
521 | # CONFIG_IA64_DEBUG_CMPXCHG is not set | 708 | # CONFIG_IA64_DEBUG_CMPXCHG is not set |
522 | # CONFIG_IA64_DEBUG_IRQ is not set | 709 | # CONFIG_IA64_DEBUG_IRQ is not set |
523 | CONFIG_DEBUG_INFO=y | ||
524 | CONFIG_SYSVIPC_COMPAT=y | 710 | CONFIG_SYSVIPC_COMPAT=y |
525 | 711 | ||
526 | # | 712 | # |
527 | # Security options | 713 | # Security options |
528 | # | 714 | # |
715 | # CONFIG_KEYS is not set | ||
529 | # CONFIG_SECURITY is not set | 716 | # CONFIG_SECURITY is not set |
530 | 717 | ||
531 | # | 718 | # |
532 | # Cryptographic options | 719 | # Cryptographic options |
533 | # | 720 | # |
534 | # CONFIG_CRYPTO is not set | 721 | # CONFIG_CRYPTO is not set |
722 | |||
723 | # | ||
724 | # Hardware crypto devices | ||
725 | # | ||
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index 3cb503b659e6..8206752161bb 100644 --- a/arch/ia64/configs/sn2_defconfig +++ b/arch/ia64/configs/sn2_defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.15-rc4 | 3 | # Linux kernel version: 2.6.16-rc5 |
4 | # Fri Dec 2 10:33:48 2005 | 4 | # Mon Feb 27 16:06:38 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
8 | # Code maturity level options | 8 | # Code maturity level options |
9 | # | 9 | # |
10 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
11 | CONFIG_CLEAN_COMPILE=y | ||
12 | CONFIG_LOCK_KERNEL=y | 11 | CONFIG_LOCK_KERNEL=y |
13 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
14 | 13 | ||
@@ -23,17 +22,18 @@ CONFIG_POSIX_MQUEUE=y | |||
23 | # CONFIG_BSD_PROCESS_ACCT is not set | 22 | # CONFIG_BSD_PROCESS_ACCT is not set |
24 | CONFIG_SYSCTL=y | 23 | CONFIG_SYSCTL=y |
25 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
26 | CONFIG_HOTPLUG=y | ||
27 | CONFIG_KOBJECT_UEVENT=y | ||
28 | # CONFIG_IKCONFIG is not set | 25 | # CONFIG_IKCONFIG is not set |
29 | CONFIG_CPUSETS=y | 26 | CONFIG_CPUSETS=y |
30 | CONFIG_INITRAMFS_SOURCE="" | 27 | CONFIG_INITRAMFS_SOURCE="" |
28 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
31 | # CONFIG_EMBEDDED is not set | 29 | # CONFIG_EMBEDDED is not set |
32 | CONFIG_KALLSYMS=y | 30 | CONFIG_KALLSYMS=y |
33 | CONFIG_KALLSYMS_ALL=y | 31 | CONFIG_KALLSYMS_ALL=y |
34 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 32 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
33 | CONFIG_HOTPLUG=y | ||
35 | CONFIG_PRINTK=y | 34 | CONFIG_PRINTK=y |
36 | CONFIG_BUG=y | 35 | CONFIG_BUG=y |
36 | CONFIG_ELF_CORE=y | ||
37 | CONFIG_BASE_FULL=y | 37 | CONFIG_BASE_FULL=y |
38 | CONFIG_FUTEX=y | 38 | CONFIG_FUTEX=y |
39 | CONFIG_EPOLL=y | 39 | CONFIG_EPOLL=y |
@@ -42,8 +42,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
42 | CONFIG_CC_ALIGN_LABELS=0 | 42 | CONFIG_CC_ALIGN_LABELS=0 |
43 | CONFIG_CC_ALIGN_LOOPS=0 | 43 | CONFIG_CC_ALIGN_LOOPS=0 |
44 | CONFIG_CC_ALIGN_JUMPS=0 | 44 | CONFIG_CC_ALIGN_JUMPS=0 |
45 | CONFIG_SLAB=y | ||
45 | # CONFIG_TINY_SHMEM is not set | 46 | # CONFIG_TINY_SHMEM is not set |
46 | CONFIG_BASE_SMALL=0 | 47 | CONFIG_BASE_SMALL=0 |
48 | # CONFIG_SLOB is not set | ||
47 | 49 | ||
48 | # | 50 | # |
49 | # Loadable module support | 51 | # Loadable module support |
@@ -88,7 +90,7 @@ CONFIG_EFI=y | |||
88 | CONFIG_GENERIC_IOMAP=y | 90 | CONFIG_GENERIC_IOMAP=y |
89 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 91 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
90 | CONFIG_IA64_UNCACHED_ALLOCATOR=y | 92 | CONFIG_IA64_UNCACHED_ALLOCATOR=y |
91 | CONFIG_ZONE_DMA_IS_DMA32=y | 93 | CONFIG_DMA_IS_DMA32=y |
92 | # CONFIG_IA64_GENERIC is not set | 94 | # CONFIG_IA64_GENERIC is not set |
93 | # CONFIG_IA64_DIG is not set | 95 | # CONFIG_IA64_DIG is not set |
94 | # CONFIG_IA64_HP_ZX1 is not set | 96 | # CONFIG_IA64_HP_ZX1 is not set |
@@ -126,6 +128,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
126 | CONFIG_NEED_MULTIPLE_NODES=y | 128 | CONFIG_NEED_MULTIPLE_NODES=y |
127 | # CONFIG_SPARSEMEM_STATIC is not set | 129 | # CONFIG_SPARSEMEM_STATIC is not set |
128 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 130 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
131 | CONFIG_MIGRATION=y | ||
129 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 132 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
130 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | 133 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y |
131 | CONFIG_ARCH_FLATMEM_ENABLE=y | 134 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -140,6 +143,7 @@ CONFIG_COMPAT=y | |||
140 | CONFIG_IA64_MCA_RECOVERY=y | 143 | CONFIG_IA64_MCA_RECOVERY=y |
141 | CONFIG_PERFMON=y | 144 | CONFIG_PERFMON=y |
142 | CONFIG_IA64_PALINFO=y | 145 | CONFIG_IA64_PALINFO=y |
146 | CONFIG_SGI_SN=y | ||
143 | 147 | ||
144 | # | 148 | # |
145 | # Firmware Drivers | 149 | # Firmware Drivers |
@@ -166,6 +170,7 @@ CONFIG_ACPI=y | |||
166 | CONFIG_ACPI_NUMA=y | 170 | CONFIG_ACPI_NUMA=y |
167 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 171 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
168 | # CONFIG_ACPI_DEBUG is not set | 172 | # CONFIG_ACPI_DEBUG is not set |
173 | CONFIG_ACPI_EC=y | ||
169 | CONFIG_ACPI_POWER=y | 174 | CONFIG_ACPI_POWER=y |
170 | CONFIG_ACPI_SYSTEM=y | 175 | CONFIG_ACPI_SYSTEM=y |
171 | # CONFIG_ACPI_CONTAINER is not set | 176 | # CONFIG_ACPI_CONTAINER is not set |
@@ -207,6 +212,7 @@ CONFIG_NET=y | |||
207 | # | 212 | # |
208 | # Networking options | 213 | # Networking options |
209 | # | 214 | # |
215 | # CONFIG_NETDEBUG is not set | ||
210 | CONFIG_PACKET=y | 216 | CONFIG_PACKET=y |
211 | CONFIG_PACKET_MMAP=y | 217 | CONFIG_PACKET_MMAP=y |
212 | CONFIG_UNIX=y | 218 | CONFIG_UNIX=y |
@@ -247,6 +253,11 @@ CONFIG_IPV6=m | |||
247 | # SCTP Configuration (EXPERIMENTAL) | 253 | # SCTP Configuration (EXPERIMENTAL) |
248 | # | 254 | # |
249 | # CONFIG_IP_SCTP is not set | 255 | # CONFIG_IP_SCTP is not set |
256 | |||
257 | # | ||
258 | # TIPC Configuration (EXPERIMENTAL) | ||
259 | # | ||
260 | # CONFIG_TIPC is not set | ||
250 | # CONFIG_ATM is not set | 261 | # CONFIG_ATM is not set |
251 | # CONFIG_BRIDGE is not set | 262 | # CONFIG_BRIDGE is not set |
252 | # CONFIG_VLAN_8021Q is not set | 263 | # CONFIG_VLAN_8021Q is not set |
@@ -330,6 +341,7 @@ CONFIG_ATA_OVER_ETH=m | |||
330 | # ATA/ATAPI/MFM/RLL support | 341 | # ATA/ATAPI/MFM/RLL support |
331 | # | 342 | # |
332 | CONFIG_IDE=y | 343 | CONFIG_IDE=y |
344 | CONFIG_IDE_MAX_HWIFS=4 | ||
333 | CONFIG_BLK_DEV_IDE=y | 345 | CONFIG_BLK_DEV_IDE=y |
334 | 346 | ||
335 | # | 347 | # |
@@ -457,13 +469,7 @@ CONFIG_SCSI_SATA_VITESSE=y | |||
457 | # CONFIG_SCSI_IPR is not set | 469 | # CONFIG_SCSI_IPR is not set |
458 | # CONFIG_SCSI_QLOGIC_FC is not set | 470 | # CONFIG_SCSI_QLOGIC_FC is not set |
459 | CONFIG_SCSI_QLOGIC_1280=y | 471 | CONFIG_SCSI_QLOGIC_1280=y |
460 | CONFIG_SCSI_QLA2XXX=y | 472 | # CONFIG_SCSI_QLA_FC is not set |
461 | # CONFIG_SCSI_QLA21XX is not set | ||
462 | CONFIG_SCSI_QLA22XX=y | ||
463 | CONFIG_SCSI_QLA2300=y | ||
464 | CONFIG_SCSI_QLA2322=y | ||
465 | # CONFIG_SCSI_QLA6312 is not set | ||
466 | # CONFIG_SCSI_QLA24XX is not set | ||
467 | # CONFIG_SCSI_LPFC is not set | 473 | # CONFIG_SCSI_LPFC is not set |
468 | # CONFIG_SCSI_DC395x is not set | 474 | # CONFIG_SCSI_DC395x is not set |
469 | # CONFIG_SCSI_DC390T is not set | 475 | # CONFIG_SCSI_DC390T is not set |
@@ -545,6 +551,7 @@ CONFIG_NETDEVICES=y | |||
545 | # CONFIG_R8169 is not set | 551 | # CONFIG_R8169 is not set |
546 | # CONFIG_SIS190 is not set | 552 | # CONFIG_SIS190 is not set |
547 | # CONFIG_SKGE is not set | 553 | # CONFIG_SKGE is not set |
554 | # CONFIG_SKY2 is not set | ||
548 | # CONFIG_SK98LIN is not set | 555 | # CONFIG_SK98LIN is not set |
549 | CONFIG_TIGON3=y | 556 | CONFIG_TIGON3=y |
550 | # CONFIG_BNX2 is not set | 557 | # CONFIG_BNX2 is not set |
@@ -632,12 +639,15 @@ CONFIG_VT=y | |||
632 | CONFIG_VT_CONSOLE=y | 639 | CONFIG_VT_CONSOLE=y |
633 | CONFIG_HW_CONSOLE=y | 640 | CONFIG_HW_CONSOLE=y |
634 | CONFIG_SERIAL_NONSTANDARD=y | 641 | CONFIG_SERIAL_NONSTANDARD=y |
642 | # CONFIG_COMPUTONE is not set | ||
635 | # CONFIG_ROCKETPORT is not set | 643 | # CONFIG_ROCKETPORT is not set |
636 | # CONFIG_CYCLADES is not set | 644 | # CONFIG_CYCLADES is not set |
637 | # CONFIG_DIGIEPCA is not set | 645 | # CONFIG_DIGIEPCA is not set |
646 | # CONFIG_MOXA_INTELLIO is not set | ||
638 | # CONFIG_MOXA_SMARTIO is not set | 647 | # CONFIG_MOXA_SMARTIO is not set |
639 | # CONFIG_ISI is not set | 648 | # CONFIG_ISI is not set |
640 | # CONFIG_SYNCLINKMP is not set | 649 | # CONFIG_SYNCLINKMP is not set |
650 | # CONFIG_SYNCLINK_GT is not set | ||
641 | # CONFIG_N_HDLC is not set | 651 | # CONFIG_N_HDLC is not set |
642 | # CONFIG_SPECIALIX is not set | 652 | # CONFIG_SPECIALIX is not set |
643 | # CONFIG_SX is not set | 653 | # CONFIG_SX is not set |
@@ -686,8 +696,8 @@ CONFIG_AGP=y | |||
686 | CONFIG_AGP_SGI_TIOCA=y | 696 | CONFIG_AGP_SGI_TIOCA=y |
687 | # CONFIG_DRM is not set | 697 | # CONFIG_DRM is not set |
688 | CONFIG_RAW_DRIVER=m | 698 | CONFIG_RAW_DRIVER=m |
689 | # CONFIG_HPET is not set | ||
690 | CONFIG_MAX_RAW_DEVS=256 | 699 | CONFIG_MAX_RAW_DEVS=256 |
700 | # CONFIG_HPET is not set | ||
691 | # CONFIG_HANGCHECK_TIMER is not set | 701 | # CONFIG_HANGCHECK_TIMER is not set |
692 | CONFIG_MMTIMER=y | 702 | CONFIG_MMTIMER=y |
693 | 703 | ||
@@ -703,6 +713,12 @@ CONFIG_MMTIMER=y | |||
703 | # CONFIG_I2C is not set | 713 | # CONFIG_I2C is not set |
704 | 714 | ||
705 | # | 715 | # |
716 | # SPI support | ||
717 | # | ||
718 | # CONFIG_SPI is not set | ||
719 | # CONFIG_SPI_MASTER is not set | ||
720 | |||
721 | # | ||
706 | # Dallas's 1-wire bus | 722 | # Dallas's 1-wire bus |
707 | # | 723 | # |
708 | # CONFIG_W1 is not set | 724 | # CONFIG_W1 is not set |
@@ -791,12 +807,14 @@ CONFIG_USB_UHCI_HCD=m | |||
791 | # may also be needed; see USB_STORAGE Help for more information | 807 | # may also be needed; see USB_STORAGE Help for more information |
792 | # | 808 | # |
793 | # CONFIG_USB_STORAGE is not set | 809 | # CONFIG_USB_STORAGE is not set |
810 | # CONFIG_USB_LIBUSUAL is not set | ||
794 | 811 | ||
795 | # | 812 | # |
796 | # USB Input Devices | 813 | # USB Input Devices |
797 | # | 814 | # |
798 | CONFIG_USB_HID=m | 815 | CONFIG_USB_HID=m |
799 | CONFIG_USB_HIDINPUT=y | 816 | CONFIG_USB_HIDINPUT=y |
817 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
800 | # CONFIG_HID_FF is not set | 818 | # CONFIG_HID_FF is not set |
801 | # CONFIG_USB_HIDDEV is not set | 819 | # CONFIG_USB_HIDDEV is not set |
802 | 820 | ||
@@ -816,6 +834,7 @@ CONFIG_USB_HIDINPUT=y | |||
816 | # CONFIG_USB_YEALINK is not set | 834 | # CONFIG_USB_YEALINK is not set |
817 | # CONFIG_USB_XPAD is not set | 835 | # CONFIG_USB_XPAD is not set |
818 | # CONFIG_USB_ATI_REMOTE is not set | 836 | # CONFIG_USB_ATI_REMOTE is not set |
837 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
819 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 838 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
820 | # CONFIG_USB_APPLETOUCH is not set | 839 | # CONFIG_USB_APPLETOUCH is not set |
821 | 840 | ||
@@ -903,6 +922,10 @@ CONFIG_SGI_IOC4=y | |||
903 | CONFIG_SGI_IOC3=y | 922 | CONFIG_SGI_IOC3=y |
904 | 923 | ||
905 | # | 924 | # |
925 | # EDAC - error detection and reporting (RAS) | ||
926 | # | ||
927 | |||
928 | # | ||
906 | # File systems | 929 | # File systems |
907 | # | 930 | # |
908 | CONFIG_EXT2_FS=y | 931 | CONFIG_EXT2_FS=y |
@@ -931,6 +954,7 @@ CONFIG_XFS_QUOTA=y | |||
931 | # CONFIG_XFS_SECURITY is not set | 954 | # CONFIG_XFS_SECURITY is not set |
932 | CONFIG_XFS_POSIX_ACL=y | 955 | CONFIG_XFS_POSIX_ACL=y |
933 | CONFIG_XFS_RT=y | 956 | CONFIG_XFS_RT=y |
957 | # CONFIG_OCFS2_FS is not set | ||
934 | # CONFIG_MINIX_FS is not set | 958 | # CONFIG_MINIX_FS is not set |
935 | # CONFIG_ROMFS_FS is not set | 959 | # CONFIG_ROMFS_FS is not set |
936 | CONFIG_INOTIFY=y | 960 | CONFIG_INOTIFY=y |
@@ -973,6 +997,7 @@ CONFIG_HUGETLBFS=y | |||
973 | CONFIG_HUGETLB_PAGE=y | 997 | CONFIG_HUGETLB_PAGE=y |
974 | CONFIG_RAMFS=y | 998 | CONFIG_RAMFS=y |
975 | CONFIG_RELAYFS_FS=m | 999 | CONFIG_RELAYFS_FS=m |
1000 | # CONFIG_CONFIGFS_FS is not set | ||
976 | 1001 | ||
977 | # | 1002 | # |
978 | # Miscellaneous filesystems | 1003 | # Miscellaneous filesystems |
@@ -1041,6 +1066,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1041 | CONFIG_SGI_PARTITION=y | 1066 | CONFIG_SGI_PARTITION=y |
1042 | # CONFIG_ULTRIX_PARTITION is not set | 1067 | # CONFIG_ULTRIX_PARTITION is not set |
1043 | # CONFIG_SUN_PARTITION is not set | 1068 | # CONFIG_SUN_PARTITION is not set |
1069 | # CONFIG_KARMA_PARTITION is not set | ||
1044 | CONFIG_EFI_PARTITION=y | 1070 | CONFIG_EFI_PARTITION=y |
1045 | 1071 | ||
1046 | # | 1072 | # |
@@ -1111,19 +1137,21 @@ CONFIG_GENERIC_PENDING_IRQ=y | |||
1111 | # Kernel hacking | 1137 | # Kernel hacking |
1112 | # | 1138 | # |
1113 | # CONFIG_PRINTK_TIME is not set | 1139 | # CONFIG_PRINTK_TIME is not set |
1114 | CONFIG_DEBUG_KERNEL=y | ||
1115 | CONFIG_MAGIC_SYSRQ=y | 1140 | CONFIG_MAGIC_SYSRQ=y |
1141 | CONFIG_DEBUG_KERNEL=y | ||
1116 | CONFIG_LOG_BUF_SHIFT=20 | 1142 | CONFIG_LOG_BUF_SHIFT=20 |
1117 | CONFIG_DETECT_SOFTLOCKUP=y | 1143 | CONFIG_DETECT_SOFTLOCKUP=y |
1118 | # CONFIG_SCHEDSTATS is not set | 1144 | # CONFIG_SCHEDSTATS is not set |
1119 | # CONFIG_DEBUG_SLAB is not set | 1145 | # CONFIG_DEBUG_SLAB is not set |
1120 | CONFIG_DEBUG_PREEMPT=y | 1146 | CONFIG_DEBUG_PREEMPT=y |
1147 | CONFIG_DEBUG_MUTEXES=y | ||
1121 | # CONFIG_DEBUG_SPINLOCK is not set | 1148 | # CONFIG_DEBUG_SPINLOCK is not set |
1122 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1149 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1123 | # CONFIG_DEBUG_KOBJECT is not set | 1150 | # CONFIG_DEBUG_KOBJECT is not set |
1124 | CONFIG_DEBUG_INFO=y | 1151 | CONFIG_DEBUG_INFO=y |
1125 | # CONFIG_DEBUG_FS is not set | 1152 | # CONFIG_DEBUG_FS is not set |
1126 | # CONFIG_DEBUG_VM is not set | 1153 | # CONFIG_DEBUG_VM is not set |
1154 | CONFIG_FORCED_INLINING=y | ||
1127 | # CONFIG_RCU_TORTURE_TEST is not set | 1155 | # CONFIG_RCU_TORTURE_TEST is not set |
1128 | CONFIG_IA64_GRANULE_16MB=y | 1156 | CONFIG_IA64_GRANULE_16MB=y |
1129 | # CONFIG_IA64_GRANULE_64MB is not set | 1157 | # CONFIG_IA64_GRANULE_64MB is not set |
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig index 6859119bc9dd..766bf4955432 100644 --- a/arch/ia64/configs/tiger_defconfig +++ b/arch/ia64/configs/tiger_defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.15-rc4 | 3 | # Linux kernel version: 2.6.16-rc5 |
4 | # Fri Dec 2 16:06:32 2005 | 4 | # Mon Feb 27 15:49:18 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
8 | # Code maturity level options | 8 | # Code maturity level options |
9 | # | 9 | # |
10 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
11 | CONFIG_CLEAN_COMPILE=y | ||
12 | CONFIG_LOCK_KERNEL=y | 11 | CONFIG_LOCK_KERNEL=y |
13 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
14 | 13 | ||
@@ -23,18 +22,19 @@ CONFIG_POSIX_MQUEUE=y | |||
23 | # CONFIG_BSD_PROCESS_ACCT is not set | 22 | # CONFIG_BSD_PROCESS_ACCT is not set |
24 | CONFIG_SYSCTL=y | 23 | CONFIG_SYSCTL=y |
25 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
26 | CONFIG_HOTPLUG=y | ||
27 | CONFIG_KOBJECT_UEVENT=y | ||
28 | CONFIG_IKCONFIG=y | 25 | CONFIG_IKCONFIG=y |
29 | CONFIG_IKCONFIG_PROC=y | 26 | CONFIG_IKCONFIG_PROC=y |
30 | # CONFIG_CPUSETS is not set | 27 | # CONFIG_CPUSETS is not set |
31 | CONFIG_INITRAMFS_SOURCE="" | 28 | CONFIG_INITRAMFS_SOURCE="" |
29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
32 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
33 | CONFIG_KALLSYMS=y | 31 | CONFIG_KALLSYMS=y |
34 | CONFIG_KALLSYMS_ALL=y | 32 | CONFIG_KALLSYMS_ALL=y |
35 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 33 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
34 | CONFIG_HOTPLUG=y | ||
36 | CONFIG_PRINTK=y | 35 | CONFIG_PRINTK=y |
37 | CONFIG_BUG=y | 36 | CONFIG_BUG=y |
37 | CONFIG_ELF_CORE=y | ||
38 | CONFIG_BASE_FULL=y | 38 | CONFIG_BASE_FULL=y |
39 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
40 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
@@ -43,8 +43,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | ||
46 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | ||
48 | 50 | ||
49 | # | 51 | # |
50 | # Loadable module support | 52 | # Loadable module support |
@@ -88,7 +90,7 @@ CONFIG_TIME_INTERPOLATION=y | |||
88 | CONFIG_EFI=y | 90 | CONFIG_EFI=y |
89 | CONFIG_GENERIC_IOMAP=y | 91 | CONFIG_GENERIC_IOMAP=y |
90 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 92 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
91 | CONFIG_ZONE_DMA_IS_DMA32=y | 93 | CONFIG_DMA_IS_DMA32=y |
92 | # CONFIG_IA64_GENERIC is not set | 94 | # CONFIG_IA64_GENERIC is not set |
93 | CONFIG_IA64_DIG=y | 95 | CONFIG_IA64_DIG=y |
94 | # CONFIG_IA64_HP_ZX1 is not set | 96 | # CONFIG_IA64_HP_ZX1 is not set |
@@ -114,6 +116,8 @@ CONFIG_FORCE_MAX_ZONEORDER=17 | |||
114 | CONFIG_SMP=y | 116 | CONFIG_SMP=y |
115 | CONFIG_NR_CPUS=4 | 117 | CONFIG_NR_CPUS=4 |
116 | CONFIG_HOTPLUG_CPU=y | 118 | CONFIG_HOTPLUG_CPU=y |
119 | CONFIG_PERMIT_BSP_REMOVE=y | ||
120 | CONFIG_FORCE_CPEI_RETARGET=y | ||
117 | # CONFIG_SCHED_SMT is not set | 121 | # CONFIG_SCHED_SMT is not set |
118 | # CONFIG_PREEMPT is not set | 122 | # CONFIG_PREEMPT is not set |
119 | CONFIG_SELECT_MEMORY_MODEL=y | 123 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -162,6 +166,7 @@ CONFIG_ACPI_HOTPLUG_CPU=y | |||
162 | CONFIG_ACPI_THERMAL=m | 166 | CONFIG_ACPI_THERMAL=m |
163 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 167 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
164 | # CONFIG_ACPI_DEBUG is not set | 168 | # CONFIG_ACPI_DEBUG is not set |
169 | CONFIG_ACPI_EC=y | ||
165 | CONFIG_ACPI_POWER=y | 170 | CONFIG_ACPI_POWER=y |
166 | CONFIG_ACPI_SYSTEM=y | 171 | CONFIG_ACPI_SYSTEM=y |
167 | CONFIG_ACPI_CONTAINER=m | 172 | CONFIG_ACPI_CONTAINER=m |
@@ -203,6 +208,7 @@ CONFIG_NET=y | |||
203 | # | 208 | # |
204 | # Networking options | 209 | # Networking options |
205 | # | 210 | # |
211 | # CONFIG_NETDEBUG is not set | ||
206 | CONFIG_PACKET=y | 212 | CONFIG_PACKET=y |
207 | # CONFIG_PACKET_MMAP is not set | 213 | # CONFIG_PACKET_MMAP is not set |
208 | CONFIG_UNIX=y | 214 | CONFIG_UNIX=y |
@@ -237,6 +243,11 @@ CONFIG_TCP_CONG_BIC=y | |||
237 | # SCTP Configuration (EXPERIMENTAL) | 243 | # SCTP Configuration (EXPERIMENTAL) |
238 | # | 244 | # |
239 | # CONFIG_IP_SCTP is not set | 245 | # CONFIG_IP_SCTP is not set |
246 | |||
247 | # | ||
248 | # TIPC Configuration (EXPERIMENTAL) | ||
249 | # | ||
250 | # CONFIG_TIPC is not set | ||
240 | # CONFIG_ATM is not set | 251 | # CONFIG_ATM is not set |
241 | # CONFIG_BRIDGE is not set | 252 | # CONFIG_BRIDGE is not set |
242 | # CONFIG_VLAN_8021Q is not set | 253 | # CONFIG_VLAN_8021Q is not set |
@@ -326,6 +337,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
326 | # ATA/ATAPI/MFM/RLL support | 337 | # ATA/ATAPI/MFM/RLL support |
327 | # | 338 | # |
328 | CONFIG_IDE=y | 339 | CONFIG_IDE=y |
340 | CONFIG_IDE_MAX_HWIFS=4 | ||
329 | CONFIG_BLK_DEV_IDE=y | 341 | CONFIG_BLK_DEV_IDE=y |
330 | 342 | ||
331 | # | 343 | # |
@@ -443,13 +455,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
443 | CONFIG_SCSI_QLOGIC_FC=y | 455 | CONFIG_SCSI_QLOGIC_FC=y |
444 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set | 456 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set |
445 | CONFIG_SCSI_QLOGIC_1280=y | 457 | CONFIG_SCSI_QLOGIC_1280=y |
446 | CONFIG_SCSI_QLA2XXX=y | 458 | # CONFIG_SCSI_QLA_FC is not set |
447 | CONFIG_SCSI_QLA21XX=m | ||
448 | CONFIG_SCSI_QLA22XX=m | ||
449 | CONFIG_SCSI_QLA2300=m | ||
450 | CONFIG_SCSI_QLA2322=m | ||
451 | # CONFIG_SCSI_QLA6312 is not set | ||
452 | # CONFIG_SCSI_QLA24XX is not set | ||
453 | # CONFIG_SCSI_LPFC is not set | 459 | # CONFIG_SCSI_LPFC is not set |
454 | # CONFIG_SCSI_DC395x is not set | 460 | # CONFIG_SCSI_DC395x is not set |
455 | # CONFIG_SCSI_DC390T is not set | 461 | # CONFIG_SCSI_DC390T is not set |
@@ -572,6 +578,7 @@ CONFIG_E1000=y | |||
572 | # CONFIG_R8169 is not set | 578 | # CONFIG_R8169 is not set |
573 | # CONFIG_SIS190 is not set | 579 | # CONFIG_SIS190 is not set |
574 | # CONFIG_SKGE is not set | 580 | # CONFIG_SKGE is not set |
581 | # CONFIG_SKY2 is not set | ||
575 | # CONFIG_SK98LIN is not set | 582 | # CONFIG_SK98LIN is not set |
576 | # CONFIG_VIA_VELOCITY is not set | 583 | # CONFIG_VIA_VELOCITY is not set |
577 | CONFIG_TIGON3=y | 584 | CONFIG_TIGON3=y |
@@ -676,12 +683,15 @@ CONFIG_VT=y | |||
676 | CONFIG_VT_CONSOLE=y | 683 | CONFIG_VT_CONSOLE=y |
677 | CONFIG_HW_CONSOLE=y | 684 | CONFIG_HW_CONSOLE=y |
678 | CONFIG_SERIAL_NONSTANDARD=y | 685 | CONFIG_SERIAL_NONSTANDARD=y |
686 | # CONFIG_COMPUTONE is not set | ||
679 | # CONFIG_ROCKETPORT is not set | 687 | # CONFIG_ROCKETPORT is not set |
680 | # CONFIG_CYCLADES is not set | 688 | # CONFIG_CYCLADES is not set |
681 | # CONFIG_DIGIEPCA is not set | 689 | # CONFIG_DIGIEPCA is not set |
690 | # CONFIG_MOXA_INTELLIO is not set | ||
682 | # CONFIG_MOXA_SMARTIO is not set | 691 | # CONFIG_MOXA_SMARTIO is not set |
683 | # CONFIG_ISI is not set | 692 | # CONFIG_ISI is not set |
684 | # CONFIG_SYNCLINKMP is not set | 693 | # CONFIG_SYNCLINKMP is not set |
694 | # CONFIG_SYNCLINK_GT is not set | ||
685 | # CONFIG_N_HDLC is not set | 695 | # CONFIG_N_HDLC is not set |
686 | # CONFIG_SPECIALIX is not set | 696 | # CONFIG_SPECIALIX is not set |
687 | # CONFIG_SX is not set | 697 | # CONFIG_SX is not set |
@@ -694,6 +704,7 @@ CONFIG_SERIAL_8250=y | |||
694 | CONFIG_SERIAL_8250_CONSOLE=y | 704 | CONFIG_SERIAL_8250_CONSOLE=y |
695 | CONFIG_SERIAL_8250_ACPI=y | 705 | CONFIG_SERIAL_8250_ACPI=y |
696 | CONFIG_SERIAL_8250_NR_UARTS=6 | 706 | CONFIG_SERIAL_8250_NR_UARTS=6 |
707 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
697 | CONFIG_SERIAL_8250_EXTENDED=y | 708 | CONFIG_SERIAL_8250_EXTENDED=y |
698 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 709 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
699 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 710 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
@@ -738,10 +749,10 @@ CONFIG_DRM_SIS=m | |||
738 | # CONFIG_DRM_VIA is not set | 749 | # CONFIG_DRM_VIA is not set |
739 | # CONFIG_DRM_SAVAGE is not set | 750 | # CONFIG_DRM_SAVAGE is not set |
740 | CONFIG_RAW_DRIVER=m | 751 | CONFIG_RAW_DRIVER=m |
752 | CONFIG_MAX_RAW_DEVS=256 | ||
741 | CONFIG_HPET=y | 753 | CONFIG_HPET=y |
742 | # CONFIG_HPET_RTC_IRQ is not set | 754 | # CONFIG_HPET_RTC_IRQ is not set |
743 | CONFIG_HPET_MMAP=y | 755 | CONFIG_HPET_MMAP=y |
744 | CONFIG_MAX_RAW_DEVS=256 | ||
745 | # CONFIG_HANGCHECK_TIMER is not set | 756 | # CONFIG_HANGCHECK_TIMER is not set |
746 | 757 | ||
747 | # | 758 | # |
@@ -756,6 +767,12 @@ CONFIG_MAX_RAW_DEVS=256 | |||
756 | # CONFIG_I2C is not set | 767 | # CONFIG_I2C is not set |
757 | 768 | ||
758 | # | 769 | # |
770 | # SPI support | ||
771 | # | ||
772 | # CONFIG_SPI is not set | ||
773 | # CONFIG_SPI_MASTER is not set | ||
774 | |||
775 | # | ||
759 | # Dallas's 1-wire bus | 776 | # Dallas's 1-wire bus |
760 | # | 777 | # |
761 | # CONFIG_W1 is not set | 778 | # CONFIG_W1 is not set |
@@ -765,6 +782,7 @@ CONFIG_MAX_RAW_DEVS=256 | |||
765 | # | 782 | # |
766 | CONFIG_HWMON=y | 783 | CONFIG_HWMON=y |
767 | # CONFIG_HWMON_VID is not set | 784 | # CONFIG_HWMON_VID is not set |
785 | # CONFIG_SENSORS_F71805F is not set | ||
768 | # CONFIG_HWMON_DEBUG_CHIP is not set | 786 | # CONFIG_HWMON_DEBUG_CHIP is not set |
769 | 787 | ||
770 | # | 788 | # |
@@ -854,12 +872,15 @@ CONFIG_USB_STORAGE=m | |||
854 | # CONFIG_USB_STORAGE_SDDR09 is not set | 872 | # CONFIG_USB_STORAGE_SDDR09 is not set |
855 | # CONFIG_USB_STORAGE_SDDR55 is not set | 873 | # CONFIG_USB_STORAGE_SDDR55 is not set |
856 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 874 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
875 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
876 | # CONFIG_USB_LIBUSUAL is not set | ||
857 | 877 | ||
858 | # | 878 | # |
859 | # USB Input Devices | 879 | # USB Input Devices |
860 | # | 880 | # |
861 | CONFIG_USB_HID=y | 881 | CONFIG_USB_HID=y |
862 | CONFIG_USB_HIDINPUT=y | 882 | CONFIG_USB_HIDINPUT=y |
883 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
863 | # CONFIG_HID_FF is not set | 884 | # CONFIG_HID_FF is not set |
864 | # CONFIG_USB_HIDDEV is not set | 885 | # CONFIG_USB_HIDDEV is not set |
865 | # CONFIG_USB_AIPTEK is not set | 886 | # CONFIG_USB_AIPTEK is not set |
@@ -873,6 +894,7 @@ CONFIG_USB_HIDINPUT=y | |||
873 | # CONFIG_USB_YEALINK is not set | 894 | # CONFIG_USB_YEALINK is not set |
874 | # CONFIG_USB_XPAD is not set | 895 | # CONFIG_USB_XPAD is not set |
875 | # CONFIG_USB_ATI_REMOTE is not set | 896 | # CONFIG_USB_ATI_REMOTE is not set |
897 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
876 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 898 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
877 | # CONFIG_USB_APPLETOUCH is not set | 899 | # CONFIG_USB_APPLETOUCH is not set |
878 | 900 | ||
@@ -948,7 +970,7 @@ CONFIG_USB_HIDINPUT=y | |||
948 | # CONFIG_INFINIBAND is not set | 970 | # CONFIG_INFINIBAND is not set |
949 | 971 | ||
950 | # | 972 | # |
951 | # SN Devices | 973 | # EDAC - error detection and reporting (RAS) |
952 | # | 974 | # |
953 | 975 | ||
954 | # | 976 | # |
@@ -980,6 +1002,7 @@ CONFIG_XFS_EXPORT=y | |||
980 | # CONFIG_XFS_SECURITY is not set | 1002 | # CONFIG_XFS_SECURITY is not set |
981 | # CONFIG_XFS_POSIX_ACL is not set | 1003 | # CONFIG_XFS_POSIX_ACL is not set |
982 | # CONFIG_XFS_RT is not set | 1004 | # CONFIG_XFS_RT is not set |
1005 | # CONFIG_OCFS2_FS is not set | ||
983 | # CONFIG_MINIX_FS is not set | 1006 | # CONFIG_MINIX_FS is not set |
984 | # CONFIG_ROMFS_FS is not set | 1007 | # CONFIG_ROMFS_FS is not set |
985 | CONFIG_INOTIFY=y | 1008 | CONFIG_INOTIFY=y |
@@ -1021,6 +1044,7 @@ CONFIG_HUGETLBFS=y | |||
1021 | CONFIG_HUGETLB_PAGE=y | 1044 | CONFIG_HUGETLB_PAGE=y |
1022 | CONFIG_RAMFS=y | 1045 | CONFIG_RAMFS=y |
1023 | # CONFIG_RELAYFS_FS is not set | 1046 | # CONFIG_RELAYFS_FS is not set |
1047 | # CONFIG_CONFIGFS_FS is not set | ||
1024 | 1048 | ||
1025 | # | 1049 | # |
1026 | # Miscellaneous filesystems | 1050 | # Miscellaneous filesystems |
@@ -1090,6 +1114,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1090 | CONFIG_SGI_PARTITION=y | 1114 | CONFIG_SGI_PARTITION=y |
1091 | # CONFIG_ULTRIX_PARTITION is not set | 1115 | # CONFIG_ULTRIX_PARTITION is not set |
1092 | # CONFIG_SUN_PARTITION is not set | 1116 | # CONFIG_SUN_PARTITION is not set |
1117 | # CONFIG_KARMA_PARTITION is not set | ||
1093 | CONFIG_EFI_PARTITION=y | 1118 | CONFIG_EFI_PARTITION=y |
1094 | 1119 | ||
1095 | # | 1120 | # |
@@ -1157,18 +1182,20 @@ CONFIG_GENERIC_PENDING_IRQ=y | |||
1157 | # Kernel hacking | 1182 | # Kernel hacking |
1158 | # | 1183 | # |
1159 | # CONFIG_PRINTK_TIME is not set | 1184 | # CONFIG_PRINTK_TIME is not set |
1160 | CONFIG_DEBUG_KERNEL=y | ||
1161 | CONFIG_MAGIC_SYSRQ=y | 1185 | CONFIG_MAGIC_SYSRQ=y |
1186 | CONFIG_DEBUG_KERNEL=y | ||
1162 | CONFIG_LOG_BUF_SHIFT=20 | 1187 | CONFIG_LOG_BUF_SHIFT=20 |
1163 | CONFIG_DETECT_SOFTLOCKUP=y | 1188 | CONFIG_DETECT_SOFTLOCKUP=y |
1164 | # CONFIG_SCHEDSTATS is not set | 1189 | # CONFIG_SCHEDSTATS is not set |
1165 | # CONFIG_DEBUG_SLAB is not set | 1190 | # CONFIG_DEBUG_SLAB is not set |
1191 | CONFIG_DEBUG_MUTEXES=y | ||
1166 | # CONFIG_DEBUG_SPINLOCK is not set | 1192 | # CONFIG_DEBUG_SPINLOCK is not set |
1167 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1193 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1168 | # CONFIG_DEBUG_KOBJECT is not set | 1194 | # CONFIG_DEBUG_KOBJECT is not set |
1169 | # CONFIG_DEBUG_INFO is not set | 1195 | # CONFIG_DEBUG_INFO is not set |
1170 | # CONFIG_DEBUG_FS is not set | 1196 | # CONFIG_DEBUG_FS is not set |
1171 | # CONFIG_DEBUG_VM is not set | 1197 | # CONFIG_DEBUG_VM is not set |
1198 | CONFIG_FORCED_INLINING=y | ||
1172 | # CONFIG_RCU_TORTURE_TEST is not set | 1199 | # CONFIG_RCU_TORTURE_TEST is not set |
1173 | CONFIG_IA64_GRANULE_16MB=y | 1200 | CONFIG_IA64_GRANULE_16MB=y |
1174 | # CONFIG_IA64_GRANULE_64MB is not set | 1201 | # CONFIG_IA64_GRANULE_64MB is not set |
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig index 53899dc8eb53..949dc4670a0c 100644 --- a/arch/ia64/configs/zx1_defconfig +++ b/arch/ia64/configs/zx1_defconfig | |||
@@ -1,16 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.14-rc1 | 3 | # Linux kernel version: 2.6.16-rc5 |
4 | # Wed Sep 14 15:15:01 2005 | 4 | # Mon Feb 27 15:55:36 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
8 | # Code maturity level options | 8 | # Code maturity level options |
9 | # | 9 | # |
10 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
11 | # CONFIG_CLEAN_COMPILE is not set | ||
12 | CONFIG_BROKEN=y | ||
13 | CONFIG_BROKEN_ON_SMP=y | ||
14 | CONFIG_LOCK_KERNEL=y | 11 | CONFIG_LOCK_KERNEL=y |
15 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
16 | 13 | ||
@@ -26,17 +23,18 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
26 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 23 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
27 | CONFIG_SYSCTL=y | 24 | CONFIG_SYSCTL=y |
28 | # CONFIG_AUDIT is not set | 25 | # CONFIG_AUDIT is not set |
29 | CONFIG_HOTPLUG=y | ||
30 | CONFIG_KOBJECT_UEVENT=y | ||
31 | # CONFIG_IKCONFIG is not set | 26 | # CONFIG_IKCONFIG is not set |
32 | # CONFIG_CPUSETS is not set | 27 | # CONFIG_CPUSETS is not set |
33 | CONFIG_INITRAMFS_SOURCE="" | 28 | CONFIG_INITRAMFS_SOURCE="" |
29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
34 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
35 | CONFIG_KALLSYMS=y | 31 | CONFIG_KALLSYMS=y |
36 | # CONFIG_KALLSYMS_ALL is not set | 32 | # CONFIG_KALLSYMS_ALL is not set |
37 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 33 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
34 | CONFIG_HOTPLUG=y | ||
38 | CONFIG_PRINTK=y | 35 | CONFIG_PRINTK=y |
39 | CONFIG_BUG=y | 36 | CONFIG_BUG=y |
37 | CONFIG_ELF_CORE=y | ||
40 | CONFIG_BASE_FULL=y | 38 | CONFIG_BASE_FULL=y |
41 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
42 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
@@ -45,8 +43,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
45 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
46 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
47 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | ||
48 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
49 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | ||
50 | 50 | ||
51 | # | 51 | # |
52 | # Loadable module support | 52 | # Loadable module support |
@@ -59,17 +59,36 @@ CONFIG_OBSOLETE_MODPARM=y | |||
59 | # CONFIG_KMOD is not set | 59 | # CONFIG_KMOD is not set |
60 | 60 | ||
61 | # | 61 | # |
62 | # Block layer | ||
63 | # | ||
64 | |||
65 | # | ||
66 | # IO Schedulers | ||
67 | # | ||
68 | CONFIG_IOSCHED_NOOP=y | ||
69 | CONFIG_IOSCHED_AS=y | ||
70 | CONFIG_IOSCHED_DEADLINE=y | ||
71 | CONFIG_IOSCHED_CFQ=y | ||
72 | CONFIG_DEFAULT_AS=y | ||
73 | # CONFIG_DEFAULT_DEADLINE is not set | ||
74 | # CONFIG_DEFAULT_CFQ is not set | ||
75 | # CONFIG_DEFAULT_NOOP is not set | ||
76 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
77 | |||
78 | # | ||
62 | # Processor type and features | 79 | # Processor type and features |
63 | # | 80 | # |
64 | CONFIG_IA64=y | 81 | CONFIG_IA64=y |
65 | CONFIG_64BIT=y | 82 | CONFIG_64BIT=y |
66 | CONFIG_MMU=y | 83 | CONFIG_MMU=y |
84 | CONFIG_SWIOTLB=y | ||
67 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 85 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 86 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_TIME_INTERPOLATION=y | 87 | CONFIG_TIME_INTERPOLATION=y |
70 | CONFIG_EFI=y | 88 | CONFIG_EFI=y |
71 | CONFIG_GENERIC_IOMAP=y | 89 | CONFIG_GENERIC_IOMAP=y |
72 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 90 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
91 | CONFIG_DMA_IS_DMA32=y | ||
73 | # CONFIG_IA64_GENERIC is not set | 92 | # CONFIG_IA64_GENERIC is not set |
74 | # CONFIG_IA64_DIG is not set | 93 | # CONFIG_IA64_DIG is not set |
75 | CONFIG_IA64_HP_ZX1=y | 94 | CONFIG_IA64_HP_ZX1=y |
@@ -82,18 +101,16 @@ CONFIG_MCKINLEY=y | |||
82 | # CONFIG_IA64_PAGE_SIZE_8KB is not set | 101 | # CONFIG_IA64_PAGE_SIZE_8KB is not set |
83 | CONFIG_IA64_PAGE_SIZE_16KB=y | 102 | CONFIG_IA64_PAGE_SIZE_16KB=y |
84 | # CONFIG_IA64_PAGE_SIZE_64KB is not set | 103 | # CONFIG_IA64_PAGE_SIZE_64KB is not set |
104 | CONFIG_PGTABLE_3=y | ||
105 | # CONFIG_PGTABLE_4 is not set | ||
85 | # CONFIG_HZ_100 is not set | 106 | # CONFIG_HZ_100 is not set |
86 | CONFIG_HZ_250=y | 107 | CONFIG_HZ_250=y |
87 | # CONFIG_HZ_1000 is not set | 108 | # CONFIG_HZ_1000 is not set |
88 | CONFIG_HZ=250 | 109 | CONFIG_HZ=250 |
89 | CONFIG_IA64_L1_CACHE_SHIFT=7 | 110 | CONFIG_IA64_L1_CACHE_SHIFT=7 |
90 | # CONFIG_NUMA is not set | ||
91 | CONFIG_VIRTUAL_MEM_MAP=y | ||
92 | CONFIG_HOLES_IN_ZONE=y | ||
93 | # CONFIG_IA64_CYCLONE is not set | 111 | # CONFIG_IA64_CYCLONE is not set |
94 | CONFIG_IOSAPIC=y | 112 | CONFIG_IOSAPIC=y |
95 | # CONFIG_IA64_SGI_SN_XP is not set | 113 | CONFIG_FORCE_MAX_ZONEORDER=17 |
96 | CONFIG_FORCE_MAX_ZONEORDER=18 | ||
97 | CONFIG_SMP=y | 114 | CONFIG_SMP=y |
98 | CONFIG_NR_CPUS=16 | 115 | CONFIG_NR_CPUS=16 |
99 | # CONFIG_HOTPLUG_CPU is not set | 116 | # CONFIG_HOTPLUG_CPU is not set |
@@ -106,7 +123,14 @@ CONFIG_FLATMEM_MANUAL=y | |||
106 | CONFIG_FLATMEM=y | 123 | CONFIG_FLATMEM=y |
107 | CONFIG_FLAT_NODE_MEM_MAP=y | 124 | CONFIG_FLAT_NODE_MEM_MAP=y |
108 | # CONFIG_SPARSEMEM_STATIC is not set | 125 | # CONFIG_SPARSEMEM_STATIC is not set |
109 | CONFIG_HAVE_DEC_LOCK=y | 126 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
127 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
128 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
129 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
130 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
131 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y | ||
132 | CONFIG_VIRTUAL_MEM_MAP=y | ||
133 | CONFIG_HOLES_IN_ZONE=y | ||
110 | CONFIG_IA32_SUPPORT=y | 134 | CONFIG_IA32_SUPPORT=y |
111 | CONFIG_COMPAT=y | 135 | CONFIG_COMPAT=y |
112 | CONFIG_IA64_MCA_RECOVERY=y | 136 | CONFIG_IA64_MCA_RECOVERY=y |
@@ -118,7 +142,6 @@ CONFIG_IA64_PALINFO=y | |||
118 | # | 142 | # |
119 | CONFIG_EFI_VARS=y | 143 | CONFIG_EFI_VARS=y |
120 | CONFIG_EFI_PCDP=y | 144 | CONFIG_EFI_PCDP=y |
121 | # CONFIG_DELL_RBU is not set | ||
122 | CONFIG_BINFMT_ELF=y | 145 | CONFIG_BINFMT_ELF=y |
123 | CONFIG_BINFMT_MISC=y | 146 | CONFIG_BINFMT_MISC=y |
124 | 147 | ||
@@ -126,6 +149,7 @@ CONFIG_BINFMT_MISC=y | |||
126 | # Power management and ACPI | 149 | # Power management and ACPI |
127 | # | 150 | # |
128 | CONFIG_PM=y | 151 | CONFIG_PM=y |
152 | CONFIG_PM_LEGACY=y | ||
129 | # CONFIG_PM_DEBUG is not set | 153 | # CONFIG_PM_DEBUG is not set |
130 | 154 | ||
131 | # | 155 | # |
@@ -138,6 +162,7 @@ CONFIG_ACPI_PROCESSOR=y | |||
138 | CONFIG_ACPI_THERMAL=y | 162 | CONFIG_ACPI_THERMAL=y |
139 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 163 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
140 | # CONFIG_ACPI_DEBUG is not set | 164 | # CONFIG_ACPI_DEBUG is not set |
165 | CONFIG_ACPI_EC=y | ||
141 | CONFIG_ACPI_POWER=y | 166 | CONFIG_ACPI_POWER=y |
142 | CONFIG_ACPI_SYSTEM=y | 167 | CONFIG_ACPI_SYSTEM=y |
143 | # CONFIG_ACPI_CONTAINER is not set | 168 | # CONFIG_ACPI_CONTAINER is not set |
@@ -179,6 +204,7 @@ CONFIG_NET=y | |||
179 | # | 204 | # |
180 | # Networking options | 205 | # Networking options |
181 | # | 206 | # |
207 | # CONFIG_NETDEBUG is not set | ||
182 | CONFIG_PACKET=y | 208 | CONFIG_PACKET=y |
183 | # CONFIG_PACKET_MMAP is not set | 209 | # CONFIG_PACKET_MMAP is not set |
184 | CONFIG_UNIX=y | 210 | CONFIG_UNIX=y |
@@ -211,14 +237,17 @@ CONFIG_NETFILTER=y | |||
211 | # CONFIG_NETFILTER_DEBUG is not set | 237 | # CONFIG_NETFILTER_DEBUG is not set |
212 | 238 | ||
213 | # | 239 | # |
240 | # Core Netfilter Configuration | ||
241 | # | ||
242 | # CONFIG_NETFILTER_NETLINK is not set | ||
243 | # CONFIG_NF_CONNTRACK is not set | ||
244 | # CONFIG_NETFILTER_XTABLES is not set | ||
245 | |||
246 | # | ||
214 | # IP: Netfilter Configuration | 247 | # IP: Netfilter Configuration |
215 | # | 248 | # |
216 | # CONFIG_IP_NF_CONNTRACK is not set | 249 | # CONFIG_IP_NF_CONNTRACK is not set |
217 | # CONFIG_IP_NF_QUEUE is not set | 250 | # CONFIG_IP_NF_QUEUE is not set |
218 | # CONFIG_IP_NF_IPTABLES is not set | ||
219 | CONFIG_IP_NF_ARPTABLES=y | ||
220 | # CONFIG_IP_NF_ARPFILTER is not set | ||
221 | # CONFIG_IP_NF_ARP_MANGLE is not set | ||
222 | 251 | ||
223 | # | 252 | # |
224 | # DCCP Configuration (EXPERIMENTAL) | 253 | # DCCP Configuration (EXPERIMENTAL) |
@@ -229,6 +258,11 @@ CONFIG_IP_NF_ARPTABLES=y | |||
229 | # SCTP Configuration (EXPERIMENTAL) | 258 | # SCTP Configuration (EXPERIMENTAL) |
230 | # | 259 | # |
231 | # CONFIG_IP_SCTP is not set | 260 | # CONFIG_IP_SCTP is not set |
261 | |||
262 | # | ||
263 | # TIPC Configuration (EXPERIMENTAL) | ||
264 | # | ||
265 | # CONFIG_TIPC is not set | ||
232 | # CONFIG_ATM is not set | 266 | # CONFIG_ATM is not set |
233 | # CONFIG_BRIDGE is not set | 267 | # CONFIG_BRIDGE is not set |
234 | # CONFIG_VLAN_8021Q is not set | 268 | # CONFIG_VLAN_8021Q is not set |
@@ -241,14 +275,16 @@ CONFIG_IP_NF_ARPTABLES=y | |||
241 | # CONFIG_NET_DIVERT is not set | 275 | # CONFIG_NET_DIVERT is not set |
242 | # CONFIG_ECONET is not set | 276 | # CONFIG_ECONET is not set |
243 | # CONFIG_WAN_ROUTER is not set | 277 | # CONFIG_WAN_ROUTER is not set |
278 | |||
279 | # | ||
280 | # QoS and/or fair queueing | ||
281 | # | ||
244 | # CONFIG_NET_SCHED is not set | 282 | # CONFIG_NET_SCHED is not set |
245 | # CONFIG_NET_CLS_ROUTE is not set | ||
246 | 283 | ||
247 | # | 284 | # |
248 | # Network testing | 285 | # Network testing |
249 | # | 286 | # |
250 | # CONFIG_NET_PKTGEN is not set | 287 | # CONFIG_NET_PKTGEN is not set |
251 | # CONFIG_NETFILTER_NETLINK is not set | ||
252 | # CONFIG_HAMRADIO is not set | 288 | # CONFIG_HAMRADIO is not set |
253 | # CONFIG_IRDA is not set | 289 | # CONFIG_IRDA is not set |
254 | # CONFIG_BT is not set | 290 | # CONFIG_BT is not set |
@@ -310,20 +346,13 @@ CONFIG_BLK_DEV_RAM_COUNT=16 | |||
310 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 346 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
311 | CONFIG_BLK_DEV_INITRD=y | 347 | CONFIG_BLK_DEV_INITRD=y |
312 | # CONFIG_CDROM_PKTCDVD is not set | 348 | # CONFIG_CDROM_PKTCDVD is not set |
313 | |||
314 | # | ||
315 | # IO Schedulers | ||
316 | # | ||
317 | CONFIG_IOSCHED_NOOP=y | ||
318 | CONFIG_IOSCHED_AS=y | ||
319 | CONFIG_IOSCHED_DEADLINE=y | ||
320 | CONFIG_IOSCHED_CFQ=y | ||
321 | # CONFIG_ATA_OVER_ETH is not set | 349 | # CONFIG_ATA_OVER_ETH is not set |
322 | 350 | ||
323 | # | 351 | # |
324 | # ATA/ATAPI/MFM/RLL support | 352 | # ATA/ATAPI/MFM/RLL support |
325 | # | 353 | # |
326 | CONFIG_IDE=y | 354 | CONFIG_IDE=y |
355 | CONFIG_IDE_MAX_HWIFS=4 | ||
327 | CONFIG_BLK_DEV_IDE=y | 356 | CONFIG_BLK_DEV_IDE=y |
328 | 357 | ||
329 | # | 358 | # |
@@ -407,13 +436,14 @@ CONFIG_SCSI_LOGGING=y | |||
407 | # SCSI Transport Attributes | 436 | # SCSI Transport Attributes |
408 | # | 437 | # |
409 | CONFIG_SCSI_SPI_ATTRS=y | 438 | CONFIG_SCSI_SPI_ATTRS=y |
410 | # CONFIG_SCSI_FC_ATTRS is not set | 439 | CONFIG_SCSI_FC_ATTRS=y |
411 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 440 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
412 | # CONFIG_SCSI_SAS_ATTRS is not set | 441 | # CONFIG_SCSI_SAS_ATTRS is not set |
413 | 442 | ||
414 | # | 443 | # |
415 | # SCSI low-level drivers | 444 | # SCSI low-level drivers |
416 | # | 445 | # |
446 | # CONFIG_ISCSI_TCP is not set | ||
417 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 447 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
418 | # CONFIG_SCSI_3W_9XXX is not set | 448 | # CONFIG_SCSI_3W_9XXX is not set |
419 | # CONFIG_SCSI_ACARD is not set | 449 | # CONFIG_SCSI_ACARD is not set |
@@ -421,13 +451,11 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
421 | # CONFIG_SCSI_AIC7XXX is not set | 451 | # CONFIG_SCSI_AIC7XXX is not set |
422 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 452 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
423 | # CONFIG_SCSI_AIC79XX is not set | 453 | # CONFIG_SCSI_AIC79XX is not set |
424 | # CONFIG_SCSI_ADVANSYS is not set | ||
425 | # CONFIG_MEGARAID_NEWGEN is not set | 454 | # CONFIG_MEGARAID_NEWGEN is not set |
426 | # CONFIG_MEGARAID_LEGACY is not set | 455 | # CONFIG_MEGARAID_LEGACY is not set |
456 | # CONFIG_MEGARAID_SAS is not set | ||
427 | # CONFIG_SCSI_SATA is not set | 457 | # CONFIG_SCSI_SATA is not set |
428 | # CONFIG_SCSI_CPQFCTS is not set | ||
429 | # CONFIG_SCSI_DMX3191D is not set | 458 | # CONFIG_SCSI_DMX3191D is not set |
430 | # CONFIG_SCSI_EATA_PIO is not set | ||
431 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 459 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
432 | # CONFIG_SCSI_IPS is not set | 460 | # CONFIG_SCSI_IPS is not set |
433 | # CONFIG_SCSI_INITIO is not set | 461 | # CONFIG_SCSI_INITIO is not set |
@@ -438,17 +466,9 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | |||
438 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 466 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
439 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 467 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set |
440 | # CONFIG_SCSI_IPR is not set | 468 | # CONFIG_SCSI_IPR is not set |
441 | # CONFIG_SCSI_QLOGIC_ISP is not set | ||
442 | # CONFIG_SCSI_QLOGIC_FC is not set | 469 | # CONFIG_SCSI_QLOGIC_FC is not set |
443 | CONFIG_SCSI_QLOGIC_1280=y | 470 | CONFIG_SCSI_QLOGIC_1280=y |
444 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set | 471 | # CONFIG_SCSI_QLA_FC is not set |
445 | CONFIG_SCSI_QLA2XXX=y | ||
446 | # CONFIG_SCSI_QLA21XX is not set | ||
447 | # CONFIG_SCSI_QLA22XX is not set | ||
448 | # CONFIG_SCSI_QLA2300 is not set | ||
449 | # CONFIG_SCSI_QLA2322 is not set | ||
450 | # CONFIG_SCSI_QLA6312 is not set | ||
451 | # CONFIG_SCSI_QLA24XX is not set | ||
452 | # CONFIG_SCSI_LPFC is not set | 472 | # CONFIG_SCSI_LPFC is not set |
453 | # CONFIG_SCSI_DC395x is not set | 473 | # CONFIG_SCSI_DC395x is not set |
454 | # CONFIG_SCSI_DC390T is not set | 474 | # CONFIG_SCSI_DC390T is not set |
@@ -465,6 +485,7 @@ CONFIG_SCSI_QLA2XXX=y | |||
465 | CONFIG_FUSION=y | 485 | CONFIG_FUSION=y |
466 | CONFIG_FUSION_SPI=y | 486 | CONFIG_FUSION_SPI=y |
467 | CONFIG_FUSION_FC=y | 487 | CONFIG_FUSION_FC=y |
488 | # CONFIG_FUSION_SAS is not set | ||
468 | CONFIG_FUSION_MAX_SGE=128 | 489 | CONFIG_FUSION_MAX_SGE=128 |
469 | CONFIG_FUSION_CTL=m | 490 | CONFIG_FUSION_CTL=m |
470 | 491 | ||
@@ -505,6 +526,7 @@ CONFIG_NET_ETHERNET=y | |||
505 | CONFIG_MII=y | 526 | CONFIG_MII=y |
506 | # CONFIG_HAPPYMEAL is not set | 527 | # CONFIG_HAPPYMEAL is not set |
507 | # CONFIG_SUNGEM is not set | 528 | # CONFIG_SUNGEM is not set |
529 | # CONFIG_CASSINI is not set | ||
508 | # CONFIG_NET_VENDOR_3COM is not set | 530 | # CONFIG_NET_VENDOR_3COM is not set |
509 | 531 | ||
510 | # | 532 | # |
@@ -555,6 +577,7 @@ CONFIG_E1000=y | |||
555 | # CONFIG_R8169 is not set | 577 | # CONFIG_R8169 is not set |
556 | # CONFIG_SIS190 is not set | 578 | # CONFIG_SIS190 is not set |
557 | # CONFIG_SKGE is not set | 579 | # CONFIG_SKGE is not set |
580 | # CONFIG_SKY2 is not set | ||
558 | # CONFIG_SK98LIN is not set | 581 | # CONFIG_SK98LIN is not set |
559 | # CONFIG_VIA_VELOCITY is not set | 582 | # CONFIG_VIA_VELOCITY is not set |
560 | CONFIG_TIGON3=y | 583 | CONFIG_TIGON3=y |
@@ -652,6 +675,7 @@ CONFIG_SERIAL_8250=y | |||
652 | CONFIG_SERIAL_8250_CONSOLE=y | 675 | CONFIG_SERIAL_8250_CONSOLE=y |
653 | CONFIG_SERIAL_8250_ACPI=y | 676 | CONFIG_SERIAL_8250_ACPI=y |
654 | CONFIG_SERIAL_8250_NR_UARTS=8 | 677 | CONFIG_SERIAL_8250_NR_UARTS=8 |
678 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
655 | CONFIG_SERIAL_8250_EXTENDED=y | 679 | CONFIG_SERIAL_8250_EXTENDED=y |
656 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 680 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
657 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 681 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
@@ -703,6 +727,7 @@ CONFIG_DRM_RADEON=y | |||
703 | # TPM devices | 727 | # TPM devices |
704 | # | 728 | # |
705 | # CONFIG_TCG_TPM is not set | 729 | # CONFIG_TCG_TPM is not set |
730 | # CONFIG_TELCLOCK is not set | ||
706 | 731 | ||
707 | # | 732 | # |
708 | # I2C support | 733 | # I2C support |
@@ -753,12 +778,19 @@ CONFIG_I2C_ALGOPCF=y | |||
753 | # CONFIG_SENSORS_PCF8591 is not set | 778 | # CONFIG_SENSORS_PCF8591 is not set |
754 | # CONFIG_SENSORS_RTC8564 is not set | 779 | # CONFIG_SENSORS_RTC8564 is not set |
755 | # CONFIG_SENSORS_MAX6875 is not set | 780 | # CONFIG_SENSORS_MAX6875 is not set |
781 | # CONFIG_RTC_X1205_I2C is not set | ||
756 | # CONFIG_I2C_DEBUG_CORE is not set | 782 | # CONFIG_I2C_DEBUG_CORE is not set |
757 | # CONFIG_I2C_DEBUG_ALGO is not set | 783 | # CONFIG_I2C_DEBUG_ALGO is not set |
758 | # CONFIG_I2C_DEBUG_BUS is not set | 784 | # CONFIG_I2C_DEBUG_BUS is not set |
759 | # CONFIG_I2C_DEBUG_CHIP is not set | 785 | # CONFIG_I2C_DEBUG_CHIP is not set |
760 | 786 | ||
761 | # | 787 | # |
788 | # SPI support | ||
789 | # | ||
790 | # CONFIG_SPI is not set | ||
791 | # CONFIG_SPI_MASTER is not set | ||
792 | |||
793 | # | ||
762 | # Dallas's 1-wire bus | 794 | # Dallas's 1-wire bus |
763 | # | 795 | # |
764 | # CONFIG_W1 is not set | 796 | # CONFIG_W1 is not set |
@@ -789,6 +821,7 @@ CONFIG_VIDEO_DEV=y | |||
789 | # | 821 | # |
790 | # Video Adapters | 822 | # Video Adapters |
791 | # | 823 | # |
824 | # CONFIG_VIDEO_ADV_DEBUG is not set | ||
792 | # CONFIG_VIDEO_BT848 is not set | 825 | # CONFIG_VIDEO_BT848 is not set |
793 | # CONFIG_VIDEO_CPIA is not set | 826 | # CONFIG_VIDEO_CPIA is not set |
794 | # CONFIG_VIDEO_SAA5246A is not set | 827 | # CONFIG_VIDEO_SAA5246A is not set |
@@ -796,14 +829,16 @@ CONFIG_VIDEO_DEV=y | |||
796 | # CONFIG_TUNER_3036 is not set | 829 | # CONFIG_TUNER_3036 is not set |
797 | # CONFIG_VIDEO_STRADIS is not set | 830 | # CONFIG_VIDEO_STRADIS is not set |
798 | # CONFIG_VIDEO_ZORAN is not set | 831 | # CONFIG_VIDEO_ZORAN is not set |
799 | # CONFIG_VIDEO_ZR36120 is not set | ||
800 | # CONFIG_VIDEO_SAA7134 is not set | 832 | # CONFIG_VIDEO_SAA7134 is not set |
801 | # CONFIG_VIDEO_MXB is not set | 833 | # CONFIG_VIDEO_MXB is not set |
802 | # CONFIG_VIDEO_DPC is not set | 834 | # CONFIG_VIDEO_DPC is not set |
803 | # CONFIG_VIDEO_HEXIUM_ORION is not set | 835 | # CONFIG_VIDEO_HEXIUM_ORION is not set |
804 | # CONFIG_VIDEO_HEXIUM_GEMINI is not set | 836 | # CONFIG_VIDEO_HEXIUM_GEMINI is not set |
805 | # CONFIG_VIDEO_CX88 is not set | 837 | # CONFIG_VIDEO_CX88 is not set |
838 | # CONFIG_VIDEO_EM28XX is not set | ||
806 | # CONFIG_VIDEO_OVCAMCHIP is not set | 839 | # CONFIG_VIDEO_OVCAMCHIP is not set |
840 | # CONFIG_VIDEO_AUDIO_DECODER is not set | ||
841 | # CONFIG_VIDEO_DECODER is not set | ||
807 | 842 | ||
808 | # | 843 | # |
809 | # Radio Adapters | 844 | # Radio Adapters |
@@ -824,7 +859,6 @@ CONFIG_FB=y | |||
824 | CONFIG_FB_CFB_FILLRECT=y | 859 | CONFIG_FB_CFB_FILLRECT=y |
825 | CONFIG_FB_CFB_COPYAREA=y | 860 | CONFIG_FB_CFB_COPYAREA=y |
826 | CONFIG_FB_CFB_IMAGEBLIT=y | 861 | CONFIG_FB_CFB_IMAGEBLIT=y |
827 | CONFIG_FB_SOFT_CURSOR=y | ||
828 | # CONFIG_FB_MACMODES is not set | 862 | # CONFIG_FB_MACMODES is not set |
829 | CONFIG_FB_MODE_HELPERS=y | 863 | CONFIG_FB_MODE_HELPERS=y |
830 | # CONFIG_FB_TILEBLITTING is not set | 864 | # CONFIG_FB_TILEBLITTING is not set |
@@ -833,6 +867,7 @@ CONFIG_FB_MODE_HELPERS=y | |||
833 | # CONFIG_FB_CYBER2000 is not set | 867 | # CONFIG_FB_CYBER2000 is not set |
834 | # CONFIG_FB_ASILIANT is not set | 868 | # CONFIG_FB_ASILIANT is not set |
835 | # CONFIG_FB_IMSTT is not set | 869 | # CONFIG_FB_IMSTT is not set |
870 | # CONFIG_FB_S1D13XXX is not set | ||
836 | # CONFIG_FB_NVIDIA is not set | 871 | # CONFIG_FB_NVIDIA is not set |
837 | # CONFIG_FB_RIVA is not set | 872 | # CONFIG_FB_RIVA is not set |
838 | # CONFIG_FB_MATROX is not set | 873 | # CONFIG_FB_MATROX is not set |
@@ -848,10 +883,7 @@ CONFIG_FB_RADEON_DEBUG=y | |||
848 | # CONFIG_FB_KYRO is not set | 883 | # CONFIG_FB_KYRO is not set |
849 | # CONFIG_FB_3DFX is not set | 884 | # CONFIG_FB_3DFX is not set |
850 | # CONFIG_FB_VOODOO1 is not set | 885 | # CONFIG_FB_VOODOO1 is not set |
851 | # CONFIG_FB_CYBLA is not set | ||
852 | # CONFIG_FB_TRIDENT is not set | 886 | # CONFIG_FB_TRIDENT is not set |
853 | # CONFIG_FB_PM3 is not set | ||
854 | # CONFIG_FB_S1D13XXX is not set | ||
855 | # CONFIG_FB_VIRTUAL is not set | 887 | # CONFIG_FB_VIRTUAL is not set |
856 | 888 | ||
857 | # | 889 | # |
@@ -860,6 +892,7 @@ CONFIG_FB_RADEON_DEBUG=y | |||
860 | CONFIG_VGA_CONSOLE=y | 892 | CONFIG_VGA_CONSOLE=y |
861 | CONFIG_DUMMY_CONSOLE=y | 893 | CONFIG_DUMMY_CONSOLE=y |
862 | CONFIG_FRAMEBUFFER_CONSOLE=y | 894 | CONFIG_FRAMEBUFFER_CONSOLE=y |
895 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
863 | # CONFIG_FONTS is not set | 896 | # CONFIG_FONTS is not set |
864 | CONFIG_FONT_8x8=y | 897 | CONFIG_FONT_8x8=y |
865 | CONFIG_FONT_8x16=y | 898 | CONFIG_FONT_8x16=y |
@@ -892,6 +925,8 @@ CONFIG_SND_OSSEMUL=y | |||
892 | CONFIG_SND_MIXER_OSS=y | 925 | CONFIG_SND_MIXER_OSS=y |
893 | CONFIG_SND_PCM_OSS=y | 926 | CONFIG_SND_PCM_OSS=y |
894 | CONFIG_SND_SEQUENCER_OSS=y | 927 | CONFIG_SND_SEQUENCER_OSS=y |
928 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
929 | CONFIG_SND_SUPPORT_OLD_API=y | ||
895 | # CONFIG_SND_VERBOSE_PRINTK is not set | 930 | # CONFIG_SND_VERBOSE_PRINTK is not set |
896 | # CONFIG_SND_DEBUG is not set | 931 | # CONFIG_SND_DEBUG is not set |
897 | 932 | ||
@@ -900,17 +935,18 @@ CONFIG_SND_SEQUENCER_OSS=y | |||
900 | # | 935 | # |
901 | CONFIG_SND_MPU401_UART=y | 936 | CONFIG_SND_MPU401_UART=y |
902 | CONFIG_SND_OPL3_LIB=y | 937 | CONFIG_SND_OPL3_LIB=y |
938 | CONFIG_SND_AC97_CODEC=y | ||
939 | CONFIG_SND_AC97_BUS=y | ||
903 | # CONFIG_SND_DUMMY is not set | 940 | # CONFIG_SND_DUMMY is not set |
904 | # CONFIG_SND_VIRMIDI is not set | 941 | # CONFIG_SND_VIRMIDI is not set |
905 | # CONFIG_SND_MTPAV is not set | 942 | # CONFIG_SND_MTPAV is not set |
906 | # CONFIG_SND_SERIAL_U16550 is not set | 943 | # CONFIG_SND_SERIAL_U16550 is not set |
907 | # CONFIG_SND_MPU401 is not set | 944 | # CONFIG_SND_MPU401 is not set |
908 | CONFIG_SND_AC97_CODEC=y | ||
909 | CONFIG_SND_AC97_BUS=y | ||
910 | 945 | ||
911 | # | 946 | # |
912 | # PCI devices | 947 | # PCI devices |
913 | # | 948 | # |
949 | # CONFIG_SND_AD1889 is not set | ||
914 | # CONFIG_SND_ALI5451 is not set | 950 | # CONFIG_SND_ALI5451 is not set |
915 | # CONFIG_SND_ATIIXP is not set | 951 | # CONFIG_SND_ATIIXP is not set |
916 | # CONFIG_SND_ATIIXP_MODEM is not set | 952 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -919,39 +955,39 @@ CONFIG_SND_AC97_BUS=y | |||
919 | # CONFIG_SND_AU8830 is not set | 955 | # CONFIG_SND_AU8830 is not set |
920 | # CONFIG_SND_AZT3328 is not set | 956 | # CONFIG_SND_AZT3328 is not set |
921 | # CONFIG_SND_BT87X is not set | 957 | # CONFIG_SND_BT87X is not set |
922 | # CONFIG_SND_CS46XX is not set | 958 | # CONFIG_SND_CA0106 is not set |
959 | # CONFIG_SND_CMIPCI is not set | ||
923 | # CONFIG_SND_CS4281 is not set | 960 | # CONFIG_SND_CS4281 is not set |
961 | # CONFIG_SND_CS46XX is not set | ||
924 | # CONFIG_SND_EMU10K1 is not set | 962 | # CONFIG_SND_EMU10K1 is not set |
925 | # CONFIG_SND_EMU10K1X is not set | 963 | # CONFIG_SND_EMU10K1X is not set |
926 | # CONFIG_SND_CA0106 is not set | ||
927 | # CONFIG_SND_KORG1212 is not set | ||
928 | # CONFIG_SND_MIXART is not set | ||
929 | # CONFIG_SND_NM256 is not set | ||
930 | # CONFIG_SND_RME32 is not set | ||
931 | # CONFIG_SND_RME96 is not set | ||
932 | # CONFIG_SND_RME9652 is not set | ||
933 | # CONFIG_SND_HDSP is not set | ||
934 | # CONFIG_SND_HDSPM is not set | ||
935 | # CONFIG_SND_TRIDENT is not set | ||
936 | # CONFIG_SND_YMFPCI is not set | ||
937 | # CONFIG_SND_AD1889 is not set | ||
938 | # CONFIG_SND_CMIPCI is not set | ||
939 | # CONFIG_SND_ENS1370 is not set | 964 | # CONFIG_SND_ENS1370 is not set |
940 | # CONFIG_SND_ENS1371 is not set | 965 | # CONFIG_SND_ENS1371 is not set |
941 | # CONFIG_SND_ES1938 is not set | 966 | # CONFIG_SND_ES1938 is not set |
942 | # CONFIG_SND_ES1968 is not set | 967 | # CONFIG_SND_ES1968 is not set |
943 | # CONFIG_SND_MAESTRO3 is not set | ||
944 | CONFIG_SND_FM801=y | 968 | CONFIG_SND_FM801=y |
945 | CONFIG_SND_FM801_TEA575X=y | 969 | CONFIG_SND_FM801_TEA575X=y |
970 | # CONFIG_SND_HDA_INTEL is not set | ||
971 | # CONFIG_SND_HDSP is not set | ||
972 | # CONFIG_SND_HDSPM is not set | ||
946 | # CONFIG_SND_ICE1712 is not set | 973 | # CONFIG_SND_ICE1712 is not set |
947 | # CONFIG_SND_ICE1724 is not set | 974 | # CONFIG_SND_ICE1724 is not set |
948 | # CONFIG_SND_INTEL8X0 is not set | 975 | # CONFIG_SND_INTEL8X0 is not set |
949 | # CONFIG_SND_INTEL8X0M is not set | 976 | # CONFIG_SND_INTEL8X0M is not set |
977 | # CONFIG_SND_KORG1212 is not set | ||
978 | # CONFIG_SND_MAESTRO3 is not set | ||
979 | # CONFIG_SND_MIXART is not set | ||
980 | # CONFIG_SND_NM256 is not set | ||
981 | # CONFIG_SND_PCXHR is not set | ||
982 | # CONFIG_SND_RME32 is not set | ||
983 | # CONFIG_SND_RME96 is not set | ||
984 | # CONFIG_SND_RME9652 is not set | ||
950 | # CONFIG_SND_SONICVIBES is not set | 985 | # CONFIG_SND_SONICVIBES is not set |
986 | # CONFIG_SND_TRIDENT is not set | ||
951 | # CONFIG_SND_VIA82XX is not set | 987 | # CONFIG_SND_VIA82XX is not set |
952 | # CONFIG_SND_VIA82XX_MODEM is not set | 988 | # CONFIG_SND_VIA82XX_MODEM is not set |
953 | # CONFIG_SND_VX222 is not set | 989 | # CONFIG_SND_VX222 is not set |
954 | # CONFIG_SND_HDA_INTEL is not set | 990 | # CONFIG_SND_YMFPCI is not set |
955 | 991 | ||
956 | # | 992 | # |
957 | # USB devices | 993 | # USB devices |
@@ -997,12 +1033,15 @@ CONFIG_USB_UHCI_HCD=y | |||
997 | # USB Device Class drivers | 1033 | # USB Device Class drivers |
998 | # | 1034 | # |
999 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | 1035 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set |
1000 | # CONFIG_USB_BLUETOOTH_TTY is not set | ||
1001 | # CONFIG_USB_ACM is not set | 1036 | # CONFIG_USB_ACM is not set |
1002 | # CONFIG_USB_PRINTER is not set | 1037 | # CONFIG_USB_PRINTER is not set |
1003 | 1038 | ||
1004 | # | 1039 | # |
1005 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | 1040 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
1041 | # | ||
1042 | |||
1043 | # | ||
1044 | # may also be needed; see USB_STORAGE Help for more information | ||
1006 | # | 1045 | # |
1007 | CONFIG_USB_STORAGE=y | 1046 | CONFIG_USB_STORAGE=y |
1008 | # CONFIG_USB_STORAGE_DEBUG is not set | 1047 | # CONFIG_USB_STORAGE_DEBUG is not set |
@@ -1014,13 +1053,15 @@ CONFIG_USB_STORAGE=y | |||
1014 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1053 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1015 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1054 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1016 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1055 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1017 | # CONFIG_USB_STORAGE_ONETOUCH is not set | 1056 | # CONFIG_USB_STORAGE_ALAUDA is not set |
1057 | # CONFIG_USB_LIBUSUAL is not set | ||
1018 | 1058 | ||
1019 | # | 1059 | # |
1020 | # USB Input Devices | 1060 | # USB Input Devices |
1021 | # | 1061 | # |
1022 | CONFIG_USB_HID=y | 1062 | CONFIG_USB_HID=y |
1023 | CONFIG_USB_HIDINPUT=y | 1063 | CONFIG_USB_HIDINPUT=y |
1064 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1024 | # CONFIG_HID_FF is not set | 1065 | # CONFIG_HID_FF is not set |
1025 | CONFIG_USB_HIDDEV=y | 1066 | CONFIG_USB_HIDDEV=y |
1026 | # CONFIG_USB_AIPTEK is not set | 1067 | # CONFIG_USB_AIPTEK is not set |
@@ -1034,6 +1075,7 @@ CONFIG_USB_HIDDEV=y | |||
1034 | # CONFIG_USB_YEALINK is not set | 1075 | # CONFIG_USB_YEALINK is not set |
1035 | # CONFIG_USB_XPAD is not set | 1076 | # CONFIG_USB_XPAD is not set |
1036 | # CONFIG_USB_ATI_REMOTE is not set | 1077 | # CONFIG_USB_ATI_REMOTE is not set |
1078 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1037 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1079 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1038 | # CONFIG_USB_APPLETOUCH is not set | 1080 | # CONFIG_USB_APPLETOUCH is not set |
1039 | 1081 | ||
@@ -1049,6 +1091,7 @@ CONFIG_USB_HIDDEV=y | |||
1049 | # CONFIG_USB_DABUSB is not set | 1091 | # CONFIG_USB_DABUSB is not set |
1050 | # CONFIG_USB_VICAM is not set | 1092 | # CONFIG_USB_VICAM is not set |
1051 | # CONFIG_USB_DSBR is not set | 1093 | # CONFIG_USB_DSBR is not set |
1094 | # CONFIG_USB_ET61X251 is not set | ||
1052 | # CONFIG_USB_IBMCAM is not set | 1095 | # CONFIG_USB_IBMCAM is not set |
1053 | # CONFIG_USB_KONICAWC is not set | 1096 | # CONFIG_USB_KONICAWC is not set |
1054 | # CONFIG_USB_OV511 is not set | 1097 | # CONFIG_USB_OV511 is not set |
@@ -1113,7 +1156,7 @@ CONFIG_USB_MON=y | |||
1113 | # CONFIG_INFINIBAND is not set | 1156 | # CONFIG_INFINIBAND is not set |
1114 | 1157 | ||
1115 | # | 1158 | # |
1116 | # SN Devices | 1159 | # EDAC - error detection and reporting (RAS) |
1117 | # | 1160 | # |
1118 | 1161 | ||
1119 | # | 1162 | # |
@@ -1135,6 +1178,7 @@ CONFIG_FS_MBCACHE=y | |||
1135 | # CONFIG_JFS_FS is not set | 1178 | # CONFIG_JFS_FS is not set |
1136 | # CONFIG_FS_POSIX_ACL is not set | 1179 | # CONFIG_FS_POSIX_ACL is not set |
1137 | # CONFIG_XFS_FS is not set | 1180 | # CONFIG_XFS_FS is not set |
1181 | # CONFIG_OCFS2_FS is not set | ||
1138 | # CONFIG_MINIX_FS is not set | 1182 | # CONFIG_MINIX_FS is not set |
1139 | # CONFIG_ROMFS_FS is not set | 1183 | # CONFIG_ROMFS_FS is not set |
1140 | # CONFIG_INOTIFY is not set | 1184 | # CONFIG_INOTIFY is not set |
@@ -1174,6 +1218,7 @@ CONFIG_HUGETLBFS=y | |||
1174 | CONFIG_HUGETLB_PAGE=y | 1218 | CONFIG_HUGETLB_PAGE=y |
1175 | CONFIG_RAMFS=y | 1219 | CONFIG_RAMFS=y |
1176 | # CONFIG_RELAYFS_FS is not set | 1220 | # CONFIG_RELAYFS_FS is not set |
1221 | # CONFIG_CONFIGFS_FS is not set | ||
1177 | 1222 | ||
1178 | # | 1223 | # |
1179 | # Miscellaneous filesystems | 1224 | # Miscellaneous filesystems |
@@ -1238,6 +1283,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1238 | # CONFIG_SGI_PARTITION is not set | 1283 | # CONFIG_SGI_PARTITION is not set |
1239 | # CONFIG_ULTRIX_PARTITION is not set | 1284 | # CONFIG_ULTRIX_PARTITION is not set |
1240 | # CONFIG_SUN_PARTITION is not set | 1285 | # CONFIG_SUN_PARTITION is not set |
1286 | # CONFIG_KARMA_PARTITION is not set | ||
1241 | CONFIG_EFI_PARTITION=y | 1287 | CONFIG_EFI_PARTITION=y |
1242 | 1288 | ||
1243 | # | 1289 | # |
@@ -1296,26 +1342,30 @@ CONFIG_GENERIC_IRQ_PROBE=y | |||
1296 | CONFIG_GENERIC_PENDING_IRQ=y | 1342 | CONFIG_GENERIC_PENDING_IRQ=y |
1297 | 1343 | ||
1298 | # | 1344 | # |
1299 | # Profiling support | 1345 | # Instrumentation Support |
1300 | # | 1346 | # |
1301 | # CONFIG_PROFILING is not set | 1347 | # CONFIG_PROFILING is not set |
1348 | CONFIG_KPROBES=y | ||
1302 | 1349 | ||
1303 | # | 1350 | # |
1304 | # Kernel hacking | 1351 | # Kernel hacking |
1305 | # | 1352 | # |
1306 | # CONFIG_PRINTK_TIME is not set | 1353 | # CONFIG_PRINTK_TIME is not set |
1307 | CONFIG_DEBUG_KERNEL=y | ||
1308 | CONFIG_MAGIC_SYSRQ=y | 1354 | CONFIG_MAGIC_SYSRQ=y |
1355 | CONFIG_DEBUG_KERNEL=y | ||
1309 | CONFIG_LOG_BUF_SHIFT=17 | 1356 | CONFIG_LOG_BUF_SHIFT=17 |
1310 | CONFIG_DETECT_SOFTLOCKUP=y | 1357 | CONFIG_DETECT_SOFTLOCKUP=y |
1311 | # CONFIG_SCHEDSTATS is not set | 1358 | # CONFIG_SCHEDSTATS is not set |
1312 | # CONFIG_DEBUG_SLAB is not set | 1359 | # CONFIG_DEBUG_SLAB is not set |
1360 | CONFIG_DEBUG_MUTEXES=y | ||
1313 | # CONFIG_DEBUG_SPINLOCK is not set | 1361 | # CONFIG_DEBUG_SPINLOCK is not set |
1314 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1362 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1315 | # CONFIG_DEBUG_KOBJECT is not set | 1363 | # CONFIG_DEBUG_KOBJECT is not set |
1316 | # CONFIG_DEBUG_INFO is not set | 1364 | # CONFIG_DEBUG_INFO is not set |
1317 | # CONFIG_DEBUG_FS is not set | 1365 | # CONFIG_DEBUG_FS is not set |
1318 | CONFIG_KPROBES=y | 1366 | # CONFIG_DEBUG_VM is not set |
1367 | CONFIG_FORCED_INLINING=y | ||
1368 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1319 | CONFIG_IA64_GRANULE_16MB=y | 1369 | CONFIG_IA64_GRANULE_16MB=y |
1320 | # CONFIG_IA64_GRANULE_64MB is not set | 1370 | # CONFIG_IA64_GRANULE_64MB is not set |
1321 | CONFIG_IA64_PRINT_HAZARDS=y | 1371 | CONFIG_IA64_PRINT_HAZARDS=y |
diff --git a/arch/ia64/defconfig b/arch/ia64/defconfig index dcbc78a4cfa4..3e767288a745 100644 --- a/arch/ia64/defconfig +++ b/arch/ia64/defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.14-rc1 | 3 | # Linux kernel version: 2.6.16-rc5 |
4 | # Wed Sep 14 15:13:03 2005 | 4 | # Mon Feb 27 16:02:28 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
8 | # Code maturity level options | 8 | # Code maturity level options |
9 | # | 9 | # |
10 | CONFIG_EXPERIMENTAL=y | 10 | CONFIG_EXPERIMENTAL=y |
11 | CONFIG_CLEAN_COMPILE=y | ||
12 | CONFIG_LOCK_KERNEL=y | 11 | CONFIG_LOCK_KERNEL=y |
13 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 12 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
14 | 13 | ||
@@ -23,18 +22,19 @@ CONFIG_POSIX_MQUEUE=y | |||
23 | # CONFIG_BSD_PROCESS_ACCT is not set | 22 | # CONFIG_BSD_PROCESS_ACCT is not set |
24 | CONFIG_SYSCTL=y | 23 | CONFIG_SYSCTL=y |
25 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
26 | CONFIG_HOTPLUG=y | ||
27 | CONFIG_KOBJECT_UEVENT=y | ||
28 | CONFIG_IKCONFIG=y | 25 | CONFIG_IKCONFIG=y |
29 | CONFIG_IKCONFIG_PROC=y | 26 | CONFIG_IKCONFIG_PROC=y |
30 | # CONFIG_CPUSETS is not set | 27 | # CONFIG_CPUSETS is not set |
31 | CONFIG_INITRAMFS_SOURCE="" | 28 | CONFIG_INITRAMFS_SOURCE="" |
29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
32 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
33 | CONFIG_KALLSYMS=y | 31 | CONFIG_KALLSYMS=y |
34 | CONFIG_KALLSYMS_ALL=y | 32 | CONFIG_KALLSYMS_ALL=y |
35 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 33 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
34 | CONFIG_HOTPLUG=y | ||
36 | CONFIG_PRINTK=y | 35 | CONFIG_PRINTK=y |
37 | CONFIG_BUG=y | 36 | CONFIG_BUG=y |
37 | CONFIG_ELF_CORE=y | ||
38 | CONFIG_BASE_FULL=y | 38 | CONFIG_BASE_FULL=y |
39 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
40 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
@@ -43,8 +43,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | ||
46 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | ||
48 | 50 | ||
49 | # | 51 | # |
50 | # Loadable module support | 52 | # Loadable module support |
@@ -59,17 +61,36 @@ CONFIG_KMOD=y | |||
59 | CONFIG_STOP_MACHINE=y | 61 | CONFIG_STOP_MACHINE=y |
60 | 62 | ||
61 | # | 63 | # |
64 | # Block layer | ||
65 | # | ||
66 | |||
67 | # | ||
68 | # IO Schedulers | ||
69 | # | ||
70 | CONFIG_IOSCHED_NOOP=y | ||
71 | CONFIG_IOSCHED_AS=y | ||
72 | CONFIG_IOSCHED_DEADLINE=y | ||
73 | CONFIG_IOSCHED_CFQ=y | ||
74 | CONFIG_DEFAULT_AS=y | ||
75 | # CONFIG_DEFAULT_DEADLINE is not set | ||
76 | # CONFIG_DEFAULT_CFQ is not set | ||
77 | # CONFIG_DEFAULT_NOOP is not set | ||
78 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
79 | |||
80 | # | ||
62 | # Processor type and features | 81 | # Processor type and features |
63 | # | 82 | # |
64 | CONFIG_IA64=y | 83 | CONFIG_IA64=y |
65 | CONFIG_64BIT=y | 84 | CONFIG_64BIT=y |
66 | CONFIG_MMU=y | 85 | CONFIG_MMU=y |
86 | CONFIG_SWIOTLB=y | ||
67 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 87 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 88 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_TIME_INTERPOLATION=y | 89 | CONFIG_TIME_INTERPOLATION=y |
70 | CONFIG_EFI=y | 90 | CONFIG_EFI=y |
71 | CONFIG_GENERIC_IOMAP=y | 91 | CONFIG_GENERIC_IOMAP=y |
72 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 92 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
93 | CONFIG_DMA_IS_DMA32=y | ||
73 | CONFIG_IA64_GENERIC=y | 94 | CONFIG_IA64_GENERIC=y |
74 | # CONFIG_IA64_DIG is not set | 95 | # CONFIG_IA64_DIG is not set |
75 | # CONFIG_IA64_HP_ZX1 is not set | 96 | # CONFIG_IA64_HP_ZX1 is not set |
@@ -89,14 +110,10 @@ CONFIG_HZ_250=y | |||
89 | # CONFIG_HZ_1000 is not set | 110 | # CONFIG_HZ_1000 is not set |
90 | CONFIG_HZ=250 | 111 | CONFIG_HZ=250 |
91 | CONFIG_IA64_L1_CACHE_SHIFT=7 | 112 | CONFIG_IA64_L1_CACHE_SHIFT=7 |
92 | CONFIG_NUMA=y | ||
93 | CONFIG_VIRTUAL_MEM_MAP=y | ||
94 | CONFIG_HOLES_IN_ZONE=y | ||
95 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
96 | CONFIG_IA64_CYCLONE=y | 113 | CONFIG_IA64_CYCLONE=y |
97 | CONFIG_IOSAPIC=y | 114 | CONFIG_IOSAPIC=y |
98 | # CONFIG_IA64_SGI_SN_XP is not set | 115 | # CONFIG_IA64_SGI_SN_XP is not set |
99 | CONFIG_FORCE_MAX_ZONEORDER=18 | 116 | CONFIG_FORCE_MAX_ZONEORDER=17 |
100 | CONFIG_SMP=y | 117 | CONFIG_SMP=y |
101 | CONFIG_NR_CPUS=512 | 118 | CONFIG_NR_CPUS=512 |
102 | CONFIG_HOTPLUG_CPU=y | 119 | CONFIG_HOTPLUG_CPU=y |
@@ -110,19 +127,29 @@ CONFIG_DISCONTIGMEM=y | |||
110 | CONFIG_FLAT_NODE_MEM_MAP=y | 127 | CONFIG_FLAT_NODE_MEM_MAP=y |
111 | CONFIG_NEED_MULTIPLE_NODES=y | 128 | CONFIG_NEED_MULTIPLE_NODES=y |
112 | # CONFIG_SPARSEMEM_STATIC is not set | 129 | # CONFIG_SPARSEMEM_STATIC is not set |
113 | CONFIG_HAVE_DEC_LOCK=y | 130 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
131 | CONFIG_MIGRATION=y | ||
132 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||
133 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
134 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
135 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||
136 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y | ||
137 | CONFIG_NUMA=y | ||
138 | CONFIG_VIRTUAL_MEM_MAP=y | ||
139 | CONFIG_HOLES_IN_ZONE=y | ||
140 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | ||
114 | CONFIG_IA32_SUPPORT=y | 141 | CONFIG_IA32_SUPPORT=y |
115 | CONFIG_COMPAT=y | 142 | CONFIG_COMPAT=y |
116 | CONFIG_IA64_MCA_RECOVERY=y | 143 | CONFIG_IA64_MCA_RECOVERY=y |
117 | CONFIG_PERFMON=y | 144 | CONFIG_PERFMON=y |
118 | CONFIG_IA64_PALINFO=y | 145 | CONFIG_IA64_PALINFO=y |
146 | CONFIG_SGI_SN=y | ||
119 | 147 | ||
120 | # | 148 | # |
121 | # Firmware Drivers | 149 | # Firmware Drivers |
122 | # | 150 | # |
123 | CONFIG_EFI_VARS=y | 151 | CONFIG_EFI_VARS=y |
124 | CONFIG_EFI_PCDP=y | 152 | CONFIG_EFI_PCDP=y |
125 | # CONFIG_DELL_RBU is not set | ||
126 | CONFIG_BINFMT_ELF=y | 153 | CONFIG_BINFMT_ELF=y |
127 | CONFIG_BINFMT_MISC=m | 154 | CONFIG_BINFMT_MISC=m |
128 | 155 | ||
@@ -130,6 +157,7 @@ CONFIG_BINFMT_MISC=m | |||
130 | # Power management and ACPI | 157 | # Power management and ACPI |
131 | # | 158 | # |
132 | CONFIG_PM=y | 159 | CONFIG_PM=y |
160 | CONFIG_PM_LEGACY=y | ||
133 | # CONFIG_PM_DEBUG is not set | 161 | # CONFIG_PM_DEBUG is not set |
134 | 162 | ||
135 | # | 163 | # |
@@ -144,6 +172,7 @@ CONFIG_ACPI_THERMAL=m | |||
144 | CONFIG_ACPI_NUMA=y | 172 | CONFIG_ACPI_NUMA=y |
145 | CONFIG_ACPI_BLACKLIST_YEAR=0 | 173 | CONFIG_ACPI_BLACKLIST_YEAR=0 |
146 | # CONFIG_ACPI_DEBUG is not set | 174 | # CONFIG_ACPI_DEBUG is not set |
175 | CONFIG_ACPI_EC=y | ||
147 | CONFIG_ACPI_POWER=y | 176 | CONFIG_ACPI_POWER=y |
148 | CONFIG_ACPI_SYSTEM=y | 177 | CONFIG_ACPI_SYSTEM=y |
149 | CONFIG_ACPI_CONTAINER=m | 178 | CONFIG_ACPI_CONTAINER=m |
@@ -186,6 +215,7 @@ CONFIG_NET=y | |||
186 | # | 215 | # |
187 | # Networking options | 216 | # Networking options |
188 | # | 217 | # |
218 | # CONFIG_NETDEBUG is not set | ||
189 | CONFIG_PACKET=y | 219 | CONFIG_PACKET=y |
190 | # CONFIG_PACKET_MMAP is not set | 220 | # CONFIG_PACKET_MMAP is not set |
191 | CONFIG_UNIX=y | 221 | CONFIG_UNIX=y |
@@ -220,6 +250,11 @@ CONFIG_TCP_CONG_BIC=y | |||
220 | # SCTP Configuration (EXPERIMENTAL) | 250 | # SCTP Configuration (EXPERIMENTAL) |
221 | # | 251 | # |
222 | # CONFIG_IP_SCTP is not set | 252 | # CONFIG_IP_SCTP is not set |
253 | |||
254 | # | ||
255 | # TIPC Configuration (EXPERIMENTAL) | ||
256 | # | ||
257 | # CONFIG_TIPC is not set | ||
223 | # CONFIG_ATM is not set | 258 | # CONFIG_ATM is not set |
224 | # CONFIG_BRIDGE is not set | 259 | # CONFIG_BRIDGE is not set |
225 | # CONFIG_VLAN_8021Q is not set | 260 | # CONFIG_VLAN_8021Q is not set |
@@ -232,14 +267,16 @@ CONFIG_TCP_CONG_BIC=y | |||
232 | # CONFIG_NET_DIVERT is not set | 267 | # CONFIG_NET_DIVERT is not set |
233 | # CONFIG_ECONET is not set | 268 | # CONFIG_ECONET is not set |
234 | # CONFIG_WAN_ROUTER is not set | 269 | # CONFIG_WAN_ROUTER is not set |
270 | |||
271 | # | ||
272 | # QoS and/or fair queueing | ||
273 | # | ||
235 | # CONFIG_NET_SCHED is not set | 274 | # CONFIG_NET_SCHED is not set |
236 | # CONFIG_NET_CLS_ROUTE is not set | ||
237 | 275 | ||
238 | # | 276 | # |
239 | # Network testing | 277 | # Network testing |
240 | # | 278 | # |
241 | # CONFIG_NET_PKTGEN is not set | 279 | # CONFIG_NET_PKTGEN is not set |
242 | # CONFIG_NETFILTER_NETLINK is not set | ||
243 | # CONFIG_HAMRADIO is not set | 280 | # CONFIG_HAMRADIO is not set |
244 | # CONFIG_IRDA is not set | 281 | # CONFIG_IRDA is not set |
245 | # CONFIG_BT is not set | 282 | # CONFIG_BT is not set |
@@ -301,20 +338,13 @@ CONFIG_BLK_DEV_RAM_COUNT=16 | |||
301 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 338 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
302 | CONFIG_BLK_DEV_INITRD=y | 339 | CONFIG_BLK_DEV_INITRD=y |
303 | # CONFIG_CDROM_PKTCDVD is not set | 340 | # CONFIG_CDROM_PKTCDVD is not set |
304 | |||
305 | # | ||
306 | # IO Schedulers | ||
307 | # | ||
308 | CONFIG_IOSCHED_NOOP=y | ||
309 | CONFIG_IOSCHED_AS=y | ||
310 | CONFIG_IOSCHED_DEADLINE=y | ||
311 | CONFIG_IOSCHED_CFQ=y | ||
312 | # CONFIG_ATA_OVER_ETH is not set | 341 | # CONFIG_ATA_OVER_ETH is not set |
313 | 342 | ||
314 | # | 343 | # |
315 | # ATA/ATAPI/MFM/RLL support | 344 | # ATA/ATAPI/MFM/RLL support |
316 | # | 345 | # |
317 | CONFIG_IDE=y | 346 | CONFIG_IDE=y |
347 | CONFIG_IDE_MAX_HWIFS=4 | ||
318 | CONFIG_BLK_DEV_IDE=y | 348 | CONFIG_BLK_DEV_IDE=y |
319 | 349 | ||
320 | # | 350 | # |
@@ -407,6 +437,7 @@ CONFIG_SCSI_FC_ATTRS=y | |||
407 | # | 437 | # |
408 | # SCSI low-level drivers | 438 | # SCSI low-level drivers |
409 | # | 439 | # |
440 | # CONFIG_ISCSI_TCP is not set | ||
410 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 441 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
411 | # CONFIG_SCSI_3W_9XXX is not set | 442 | # CONFIG_SCSI_3W_9XXX is not set |
412 | # CONFIG_SCSI_ACARD is not set | 443 | # CONFIG_SCSI_ACARD is not set |
@@ -416,16 +447,19 @@ CONFIG_SCSI_FC_ATTRS=y | |||
416 | # CONFIG_SCSI_AIC79XX is not set | 447 | # CONFIG_SCSI_AIC79XX is not set |
417 | # CONFIG_MEGARAID_NEWGEN is not set | 448 | # CONFIG_MEGARAID_NEWGEN is not set |
418 | # CONFIG_MEGARAID_LEGACY is not set | 449 | # CONFIG_MEGARAID_LEGACY is not set |
450 | # CONFIG_MEGARAID_SAS is not set | ||
419 | CONFIG_SCSI_SATA=y | 451 | CONFIG_SCSI_SATA=y |
420 | # CONFIG_SCSI_SATA_AHCI is not set | 452 | # CONFIG_SCSI_SATA_AHCI is not set |
421 | # CONFIG_SCSI_SATA_SVW is not set | 453 | # CONFIG_SCSI_SATA_SVW is not set |
422 | # CONFIG_SCSI_ATA_PIIX is not set | 454 | # CONFIG_SCSI_ATA_PIIX is not set |
423 | # CONFIG_SCSI_SATA_MV is not set | 455 | # CONFIG_SCSI_SATA_MV is not set |
424 | # CONFIG_SCSI_SATA_NV is not set | 456 | # CONFIG_SCSI_SATA_NV is not set |
425 | # CONFIG_SCSI_SATA_PROMISE is not set | 457 | # CONFIG_SCSI_PDC_ADMA is not set |
426 | # CONFIG_SCSI_SATA_QSTOR is not set | 458 | # CONFIG_SCSI_SATA_QSTOR is not set |
459 | # CONFIG_SCSI_SATA_PROMISE is not set | ||
427 | # CONFIG_SCSI_SATA_SX4 is not set | 460 | # CONFIG_SCSI_SATA_SX4 is not set |
428 | # CONFIG_SCSI_SATA_SIL is not set | 461 | # CONFIG_SCSI_SATA_SIL is not set |
462 | # CONFIG_SCSI_SATA_SIL24 is not set | ||
429 | # CONFIG_SCSI_SATA_SIS is not set | 463 | # CONFIG_SCSI_SATA_SIS is not set |
430 | # CONFIG_SCSI_SATA_ULI is not set | 464 | # CONFIG_SCSI_SATA_ULI is not set |
431 | # CONFIG_SCSI_SATA_VIA is not set | 465 | # CONFIG_SCSI_SATA_VIA is not set |
@@ -443,14 +477,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
443 | # CONFIG_SCSI_IPR is not set | 477 | # CONFIG_SCSI_IPR is not set |
444 | # CONFIG_SCSI_QLOGIC_FC is not set | 478 | # CONFIG_SCSI_QLOGIC_FC is not set |
445 | CONFIG_SCSI_QLOGIC_1280=y | 479 | CONFIG_SCSI_QLOGIC_1280=y |
446 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set | 480 | # CONFIG_SCSI_QLA_FC is not set |
447 | CONFIG_SCSI_QLA2XXX=y | ||
448 | CONFIG_SCSI_QLA21XX=m | ||
449 | CONFIG_SCSI_QLA22XX=m | ||
450 | CONFIG_SCSI_QLA2300=m | ||
451 | CONFIG_SCSI_QLA2322=m | ||
452 | # CONFIG_SCSI_QLA6312 is not set | ||
453 | # CONFIG_SCSI_QLA24XX is not set | ||
454 | # CONFIG_SCSI_LPFC is not set | 481 | # CONFIG_SCSI_LPFC is not set |
455 | # CONFIG_SCSI_DC395x is not set | 482 | # CONFIG_SCSI_DC395x is not set |
456 | # CONFIG_SCSI_DC390T is not set | 483 | # CONFIG_SCSI_DC390T is not set |
@@ -483,6 +510,7 @@ CONFIG_DM_MULTIPATH=m | |||
483 | CONFIG_FUSION=y | 510 | CONFIG_FUSION=y |
484 | CONFIG_FUSION_SPI=y | 511 | CONFIG_FUSION_SPI=y |
485 | CONFIG_FUSION_FC=m | 512 | CONFIG_FUSION_FC=m |
513 | # CONFIG_FUSION_SAS is not set | ||
486 | CONFIG_FUSION_MAX_SGE=128 | 514 | CONFIG_FUSION_MAX_SGE=128 |
487 | # CONFIG_FUSION_CTL is not set | 515 | # CONFIG_FUSION_CTL is not set |
488 | 516 | ||
@@ -523,6 +551,7 @@ CONFIG_NET_ETHERNET=y | |||
523 | CONFIG_MII=m | 551 | CONFIG_MII=m |
524 | # CONFIG_HAPPYMEAL is not set | 552 | # CONFIG_HAPPYMEAL is not set |
525 | # CONFIG_SUNGEM is not set | 553 | # CONFIG_SUNGEM is not set |
554 | # CONFIG_CASSINI is not set | ||
526 | # CONFIG_NET_VENDOR_3COM is not set | 555 | # CONFIG_NET_VENDOR_3COM is not set |
527 | 556 | ||
528 | # | 557 | # |
@@ -572,6 +601,7 @@ CONFIG_E1000=y | |||
572 | # CONFIG_R8169 is not set | 601 | # CONFIG_R8169 is not set |
573 | # CONFIG_SIS190 is not set | 602 | # CONFIG_SIS190 is not set |
574 | # CONFIG_SKGE is not set | 603 | # CONFIG_SKGE is not set |
604 | # CONFIG_SKY2 is not set | ||
575 | # CONFIG_SK98LIN is not set | 605 | # CONFIG_SK98LIN is not set |
576 | # CONFIG_VIA_VELOCITY is not set | 606 | # CONFIG_VIA_VELOCITY is not set |
577 | CONFIG_TIGON3=y | 607 | CONFIG_TIGON3=y |
@@ -676,12 +706,15 @@ CONFIG_VT=y | |||
676 | CONFIG_VT_CONSOLE=y | 706 | CONFIG_VT_CONSOLE=y |
677 | CONFIG_HW_CONSOLE=y | 707 | CONFIG_HW_CONSOLE=y |
678 | CONFIG_SERIAL_NONSTANDARD=y | 708 | CONFIG_SERIAL_NONSTANDARD=y |
709 | # CONFIG_COMPUTONE is not set | ||
679 | # CONFIG_ROCKETPORT is not set | 710 | # CONFIG_ROCKETPORT is not set |
680 | # CONFIG_CYCLADES is not set | 711 | # CONFIG_CYCLADES is not set |
681 | # CONFIG_DIGIEPCA is not set | 712 | # CONFIG_DIGIEPCA is not set |
713 | # CONFIG_MOXA_INTELLIO is not set | ||
682 | # CONFIG_MOXA_SMARTIO is not set | 714 | # CONFIG_MOXA_SMARTIO is not set |
683 | # CONFIG_ISI is not set | 715 | # CONFIG_ISI is not set |
684 | # CONFIG_SYNCLINKMP is not set | 716 | # CONFIG_SYNCLINKMP is not set |
717 | # CONFIG_SYNCLINK_GT is not set | ||
685 | # CONFIG_N_HDLC is not set | 718 | # CONFIG_N_HDLC is not set |
686 | # CONFIG_SPECIALIX is not set | 719 | # CONFIG_SPECIALIX is not set |
687 | # CONFIG_SX is not set | 720 | # CONFIG_SX is not set |
@@ -697,6 +730,7 @@ CONFIG_SERIAL_8250=y | |||
697 | CONFIG_SERIAL_8250_CONSOLE=y | 730 | CONFIG_SERIAL_8250_CONSOLE=y |
698 | CONFIG_SERIAL_8250_ACPI=y | 731 | CONFIG_SERIAL_8250_ACPI=y |
699 | CONFIG_SERIAL_8250_NR_UARTS=6 | 732 | CONFIG_SERIAL_8250_NR_UARTS=6 |
733 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
700 | CONFIG_SERIAL_8250_EXTENDED=y | 734 | CONFIG_SERIAL_8250_EXTENDED=y |
701 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 735 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
702 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | 736 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set |
@@ -710,6 +744,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
710 | CONFIG_SERIAL_SGI_L1_CONSOLE=y | 744 | CONFIG_SERIAL_SGI_L1_CONSOLE=y |
711 | # CONFIG_SERIAL_JSM is not set | 745 | # CONFIG_SERIAL_JSM is not set |
712 | CONFIG_SERIAL_SGI_IOC4=y | 746 | CONFIG_SERIAL_SGI_IOC4=y |
747 | # CONFIG_SERIAL_SGI_IOC3 is not set | ||
713 | CONFIG_UNIX98_PTYS=y | 748 | CONFIG_UNIX98_PTYS=y |
714 | CONFIG_LEGACY_PTYS=y | 749 | CONFIG_LEGACY_PTYS=y |
715 | CONFIG_LEGACY_PTY_COUNT=256 | 750 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -745,10 +780,10 @@ CONFIG_DRM_SIS=m | |||
745 | # CONFIG_DRM_VIA is not set | 780 | # CONFIG_DRM_VIA is not set |
746 | # CONFIG_DRM_SAVAGE is not set | 781 | # CONFIG_DRM_SAVAGE is not set |
747 | CONFIG_RAW_DRIVER=m | 782 | CONFIG_RAW_DRIVER=m |
783 | CONFIG_MAX_RAW_DEVS=256 | ||
748 | CONFIG_HPET=y | 784 | CONFIG_HPET=y |
749 | # CONFIG_HPET_RTC_IRQ is not set | 785 | # CONFIG_HPET_RTC_IRQ is not set |
750 | CONFIG_HPET_MMAP=y | 786 | CONFIG_HPET_MMAP=y |
751 | CONFIG_MAX_RAW_DEVS=256 | ||
752 | # CONFIG_HANGCHECK_TIMER is not set | 787 | # CONFIG_HANGCHECK_TIMER is not set |
753 | CONFIG_MMTIMER=y | 788 | CONFIG_MMTIMER=y |
754 | 789 | ||
@@ -756,6 +791,7 @@ CONFIG_MMTIMER=y | |||
756 | # TPM devices | 791 | # TPM devices |
757 | # | 792 | # |
758 | # CONFIG_TCG_TPM is not set | 793 | # CONFIG_TCG_TPM is not set |
794 | # CONFIG_TELCLOCK is not set | ||
759 | 795 | ||
760 | # | 796 | # |
761 | # I2C support | 797 | # I2C support |
@@ -763,6 +799,12 @@ CONFIG_MMTIMER=y | |||
763 | # CONFIG_I2C is not set | 799 | # CONFIG_I2C is not set |
764 | 800 | ||
765 | # | 801 | # |
802 | # SPI support | ||
803 | # | ||
804 | # CONFIG_SPI is not set | ||
805 | # CONFIG_SPI_MASTER is not set | ||
806 | |||
807 | # | ||
766 | # Dallas's 1-wire bus | 808 | # Dallas's 1-wire bus |
767 | # | 809 | # |
768 | # CONFIG_W1 is not set | 810 | # CONFIG_W1 is not set |
@@ -772,6 +814,7 @@ CONFIG_MMTIMER=y | |||
772 | # | 814 | # |
773 | CONFIG_HWMON=y | 815 | CONFIG_HWMON=y |
774 | # CONFIG_HWMON_VID is not set | 816 | # CONFIG_HWMON_VID is not set |
817 | # CONFIG_SENSORS_F71805F is not set | ||
775 | # CONFIG_HWMON_DEBUG_CHIP is not set | 818 | # CONFIG_HWMON_DEBUG_CHIP is not set |
776 | 819 | ||
777 | # | 820 | # |
@@ -822,26 +865,28 @@ CONFIG_SND_OSSEMUL=y | |||
822 | CONFIG_SND_MIXER_OSS=m | 865 | CONFIG_SND_MIXER_OSS=m |
823 | CONFIG_SND_PCM_OSS=m | 866 | CONFIG_SND_PCM_OSS=m |
824 | CONFIG_SND_SEQUENCER_OSS=y | 867 | CONFIG_SND_SEQUENCER_OSS=y |
868 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
869 | CONFIG_SND_SUPPORT_OLD_API=y | ||
825 | CONFIG_SND_VERBOSE_PRINTK=y | 870 | CONFIG_SND_VERBOSE_PRINTK=y |
826 | # CONFIG_SND_DEBUG is not set | 871 | # CONFIG_SND_DEBUG is not set |
827 | CONFIG_SND_GENERIC_DRIVER=y | ||
828 | 872 | ||
829 | # | 873 | # |
830 | # Generic devices | 874 | # Generic devices |
831 | # | 875 | # |
832 | CONFIG_SND_MPU401_UART=m | 876 | CONFIG_SND_MPU401_UART=m |
833 | CONFIG_SND_OPL3_LIB=m | 877 | CONFIG_SND_OPL3_LIB=m |
878 | CONFIG_SND_AC97_CODEC=m | ||
879 | CONFIG_SND_AC97_BUS=m | ||
834 | CONFIG_SND_DUMMY=m | 880 | CONFIG_SND_DUMMY=m |
835 | CONFIG_SND_VIRMIDI=m | 881 | CONFIG_SND_VIRMIDI=m |
836 | CONFIG_SND_MTPAV=m | 882 | CONFIG_SND_MTPAV=m |
837 | CONFIG_SND_SERIAL_U16550=m | 883 | CONFIG_SND_SERIAL_U16550=m |
838 | CONFIG_SND_MPU401=m | 884 | CONFIG_SND_MPU401=m |
839 | CONFIG_SND_AC97_CODEC=m | ||
840 | CONFIG_SND_AC97_BUS=m | ||
841 | 885 | ||
842 | # | 886 | # |
843 | # PCI devices | 887 | # PCI devices |
844 | # | 888 | # |
889 | # CONFIG_SND_AD1889 is not set | ||
845 | # CONFIG_SND_ALI5451 is not set | 890 | # CONFIG_SND_ALI5451 is not set |
846 | # CONFIG_SND_ATIIXP is not set | 891 | # CONFIG_SND_ATIIXP is not set |
847 | # CONFIG_SND_ATIIXP_MODEM is not set | 892 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -850,40 +895,40 @@ CONFIG_SND_AC97_BUS=m | |||
850 | # CONFIG_SND_AU8830 is not set | 895 | # CONFIG_SND_AU8830 is not set |
851 | # CONFIG_SND_AZT3328 is not set | 896 | # CONFIG_SND_AZT3328 is not set |
852 | # CONFIG_SND_BT87X is not set | 897 | # CONFIG_SND_BT87X is not set |
898 | # CONFIG_SND_CA0106 is not set | ||
899 | # CONFIG_SND_CMIPCI is not set | ||
900 | CONFIG_SND_CS4281=m | ||
853 | CONFIG_SND_CS46XX=m | 901 | CONFIG_SND_CS46XX=m |
854 | CONFIG_SND_CS46XX_NEW_DSP=y | 902 | CONFIG_SND_CS46XX_NEW_DSP=y |
855 | CONFIG_SND_CS4281=m | ||
856 | CONFIG_SND_EMU10K1=m | 903 | CONFIG_SND_EMU10K1=m |
857 | # CONFIG_SND_EMU10K1X is not set | 904 | # CONFIG_SND_EMU10K1X is not set |
858 | # CONFIG_SND_CA0106 is not set | ||
859 | # CONFIG_SND_KORG1212 is not set | ||
860 | # CONFIG_SND_MIXART is not set | ||
861 | # CONFIG_SND_NM256 is not set | ||
862 | # CONFIG_SND_RME32 is not set | ||
863 | # CONFIG_SND_RME96 is not set | ||
864 | # CONFIG_SND_RME9652 is not set | ||
865 | # CONFIG_SND_HDSP is not set | ||
866 | # CONFIG_SND_HDSPM is not set | ||
867 | # CONFIG_SND_TRIDENT is not set | ||
868 | # CONFIG_SND_YMFPCI is not set | ||
869 | # CONFIG_SND_AD1889 is not set | ||
870 | # CONFIG_SND_CMIPCI is not set | ||
871 | # CONFIG_SND_ENS1370 is not set | 905 | # CONFIG_SND_ENS1370 is not set |
872 | # CONFIG_SND_ENS1371 is not set | 906 | # CONFIG_SND_ENS1371 is not set |
873 | # CONFIG_SND_ES1938 is not set | 907 | # CONFIG_SND_ES1938 is not set |
874 | # CONFIG_SND_ES1968 is not set | 908 | # CONFIG_SND_ES1968 is not set |
875 | # CONFIG_SND_MAESTRO3 is not set | ||
876 | CONFIG_SND_FM801=m | 909 | CONFIG_SND_FM801=m |
877 | # CONFIG_SND_FM801_TEA575X is not set | 910 | # CONFIG_SND_FM801_TEA575X is not set |
911 | # CONFIG_SND_HDA_INTEL is not set | ||
912 | # CONFIG_SND_HDSP is not set | ||
913 | # CONFIG_SND_HDSPM is not set | ||
878 | # CONFIG_SND_ICE1712 is not set | 914 | # CONFIG_SND_ICE1712 is not set |
879 | # CONFIG_SND_ICE1724 is not set | 915 | # CONFIG_SND_ICE1724 is not set |
880 | # CONFIG_SND_INTEL8X0 is not set | 916 | # CONFIG_SND_INTEL8X0 is not set |
881 | # CONFIG_SND_INTEL8X0M is not set | 917 | # CONFIG_SND_INTEL8X0M is not set |
918 | # CONFIG_SND_KORG1212 is not set | ||
919 | # CONFIG_SND_MAESTRO3 is not set | ||
920 | # CONFIG_SND_MIXART is not set | ||
921 | # CONFIG_SND_NM256 is not set | ||
922 | # CONFIG_SND_PCXHR is not set | ||
923 | # CONFIG_SND_RME32 is not set | ||
924 | # CONFIG_SND_RME96 is not set | ||
925 | # CONFIG_SND_RME9652 is not set | ||
882 | # CONFIG_SND_SONICVIBES is not set | 926 | # CONFIG_SND_SONICVIBES is not set |
927 | # CONFIG_SND_TRIDENT is not set | ||
883 | # CONFIG_SND_VIA82XX is not set | 928 | # CONFIG_SND_VIA82XX is not set |
884 | # CONFIG_SND_VIA82XX_MODEM is not set | 929 | # CONFIG_SND_VIA82XX_MODEM is not set |
885 | # CONFIG_SND_VX222 is not set | 930 | # CONFIG_SND_VX222 is not set |
886 | # CONFIG_SND_HDA_INTEL is not set | 931 | # CONFIG_SND_YMFPCI is not set |
887 | 932 | ||
888 | # | 933 | # |
889 | # USB devices | 934 | # USB devices |
@@ -929,12 +974,15 @@ CONFIG_USB_UHCI_HCD=m | |||
929 | # USB Device Class drivers | 974 | # USB Device Class drivers |
930 | # | 975 | # |
931 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | 976 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set |
932 | # CONFIG_USB_BLUETOOTH_TTY is not set | ||
933 | # CONFIG_USB_ACM is not set | 977 | # CONFIG_USB_ACM is not set |
934 | # CONFIG_USB_PRINTER is not set | 978 | # CONFIG_USB_PRINTER is not set |
935 | 979 | ||
936 | # | 980 | # |
937 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | 981 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
982 | # | ||
983 | |||
984 | # | ||
985 | # may also be needed; see USB_STORAGE Help for more information | ||
938 | # | 986 | # |
939 | CONFIG_USB_STORAGE=m | 987 | CONFIG_USB_STORAGE=m |
940 | # CONFIG_USB_STORAGE_DEBUG is not set | 988 | # CONFIG_USB_STORAGE_DEBUG is not set |
@@ -946,12 +994,15 @@ CONFIG_USB_STORAGE=m | |||
946 | # CONFIG_USB_STORAGE_SDDR09 is not set | 994 | # CONFIG_USB_STORAGE_SDDR09 is not set |
947 | # CONFIG_USB_STORAGE_SDDR55 is not set | 995 | # CONFIG_USB_STORAGE_SDDR55 is not set |
948 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 996 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
997 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
998 | # CONFIG_USB_LIBUSUAL is not set | ||
949 | 999 | ||
950 | # | 1000 | # |
951 | # USB Input Devices | 1001 | # USB Input Devices |
952 | # | 1002 | # |
953 | CONFIG_USB_HID=m | 1003 | CONFIG_USB_HID=m |
954 | CONFIG_USB_HIDINPUT=y | 1004 | CONFIG_USB_HIDINPUT=y |
1005 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
955 | # CONFIG_HID_FF is not set | 1006 | # CONFIG_HID_FF is not set |
956 | # CONFIG_USB_HIDDEV is not set | 1007 | # CONFIG_USB_HIDDEV is not set |
957 | 1008 | ||
@@ -971,6 +1022,7 @@ CONFIG_USB_HIDINPUT=y | |||
971 | # CONFIG_USB_YEALINK is not set | 1022 | # CONFIG_USB_YEALINK is not set |
972 | # CONFIG_USB_XPAD is not set | 1023 | # CONFIG_USB_XPAD is not set |
973 | # CONFIG_USB_ATI_REMOTE is not set | 1024 | # CONFIG_USB_ATI_REMOTE is not set |
1025 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
974 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1026 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
975 | # CONFIG_USB_APPLETOUCH is not set | 1027 | # CONFIG_USB_APPLETOUCH is not set |
976 | 1028 | ||
@@ -1050,11 +1102,17 @@ CONFIG_INFINIBAND_MTHCA=m | |||
1050 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 1102 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set |
1051 | CONFIG_INFINIBAND_IPOIB=m | 1103 | CONFIG_INFINIBAND_IPOIB=m |
1052 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set | 1104 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set |
1105 | # CONFIG_INFINIBAND_SRP is not set | ||
1053 | 1106 | ||
1054 | # | 1107 | # |
1055 | # SN Devices | 1108 | # SN Devices |
1056 | # | 1109 | # |
1057 | CONFIG_SGI_IOC4=y | 1110 | CONFIG_SGI_IOC4=y |
1111 | CONFIG_SGI_IOC3=m | ||
1112 | |||
1113 | # | ||
1114 | # EDAC - error detection and reporting (RAS) | ||
1115 | # | ||
1058 | 1116 | ||
1059 | # | 1117 | # |
1060 | # File systems | 1118 | # File systems |
@@ -1085,6 +1143,7 @@ CONFIG_XFS_EXPORT=y | |||
1085 | # CONFIG_XFS_SECURITY is not set | 1143 | # CONFIG_XFS_SECURITY is not set |
1086 | # CONFIG_XFS_POSIX_ACL is not set | 1144 | # CONFIG_XFS_POSIX_ACL is not set |
1087 | # CONFIG_XFS_RT is not set | 1145 | # CONFIG_XFS_RT is not set |
1146 | # CONFIG_OCFS2_FS is not set | ||
1088 | # CONFIG_MINIX_FS is not set | 1147 | # CONFIG_MINIX_FS is not set |
1089 | # CONFIG_ROMFS_FS is not set | 1148 | # CONFIG_ROMFS_FS is not set |
1090 | CONFIG_INOTIFY=y | 1149 | CONFIG_INOTIFY=y |
@@ -1126,6 +1185,7 @@ CONFIG_HUGETLBFS=y | |||
1126 | CONFIG_HUGETLB_PAGE=y | 1185 | CONFIG_HUGETLB_PAGE=y |
1127 | CONFIG_RAMFS=y | 1186 | CONFIG_RAMFS=y |
1128 | # CONFIG_RELAYFS_FS is not set | 1187 | # CONFIG_RELAYFS_FS is not set |
1188 | # CONFIG_CONFIGFS_FS is not set | ||
1129 | 1189 | ||
1130 | # | 1190 | # |
1131 | # Miscellaneous filesystems | 1191 | # Miscellaneous filesystems |
@@ -1195,6 +1255,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1195 | CONFIG_SGI_PARTITION=y | 1255 | CONFIG_SGI_PARTITION=y |
1196 | # CONFIG_ULTRIX_PARTITION is not set | 1256 | # CONFIG_ULTRIX_PARTITION is not set |
1197 | # CONFIG_SUN_PARTITION is not set | 1257 | # CONFIG_SUN_PARTITION is not set |
1258 | # CONFIG_KARMA_PARTITION is not set | ||
1198 | CONFIG_EFI_PARTITION=y | 1259 | CONFIG_EFI_PARTITION=y |
1199 | 1260 | ||
1200 | # | 1261 | # |
@@ -1260,26 +1321,30 @@ CONFIG_GENERIC_PENDING_IRQ=y | |||
1260 | # CONFIG_HP_SIMSCSI is not set | 1321 | # CONFIG_HP_SIMSCSI is not set |
1261 | 1322 | ||
1262 | # | 1323 | # |
1263 | # Profiling support | 1324 | # Instrumentation Support |
1264 | # | 1325 | # |
1265 | # CONFIG_PROFILING is not set | 1326 | # CONFIG_PROFILING is not set |
1327 | # CONFIG_KPROBES is not set | ||
1266 | 1328 | ||
1267 | # | 1329 | # |
1268 | # Kernel hacking | 1330 | # Kernel hacking |
1269 | # | 1331 | # |
1270 | # CONFIG_PRINTK_TIME is not set | 1332 | # CONFIG_PRINTK_TIME is not set |
1271 | CONFIG_DEBUG_KERNEL=y | ||
1272 | CONFIG_MAGIC_SYSRQ=y | 1333 | CONFIG_MAGIC_SYSRQ=y |
1334 | CONFIG_DEBUG_KERNEL=y | ||
1273 | CONFIG_LOG_BUF_SHIFT=20 | 1335 | CONFIG_LOG_BUF_SHIFT=20 |
1274 | CONFIG_DETECT_SOFTLOCKUP=y | 1336 | CONFIG_DETECT_SOFTLOCKUP=y |
1275 | # CONFIG_SCHEDSTATS is not set | 1337 | # CONFIG_SCHEDSTATS is not set |
1276 | # CONFIG_DEBUG_SLAB is not set | 1338 | # CONFIG_DEBUG_SLAB is not set |
1339 | CONFIG_DEBUG_MUTEXES=y | ||
1277 | # CONFIG_DEBUG_SPINLOCK is not set | 1340 | # CONFIG_DEBUG_SPINLOCK is not set |
1278 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1341 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1279 | # CONFIG_DEBUG_KOBJECT is not set | 1342 | # CONFIG_DEBUG_KOBJECT is not set |
1280 | # CONFIG_DEBUG_INFO is not set | 1343 | # CONFIG_DEBUG_INFO is not set |
1281 | # CONFIG_DEBUG_FS is not set | 1344 | # CONFIG_DEBUG_FS is not set |
1282 | # CONFIG_KPROBES is not set | 1345 | # CONFIG_DEBUG_VM is not set |
1346 | CONFIG_FORCED_INLINING=y | ||
1347 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1283 | CONFIG_IA64_GRANULE_16MB=y | 1348 | CONFIG_IA64_GRANULE_16MB=y |
1284 | # CONFIG_IA64_GRANULE_64MB is not set | 1349 | # CONFIG_IA64_GRANULE_64MB is not set |
1285 | # CONFIG_IA64_PRINT_HAZARDS is not set | 1350 | # CONFIG_IA64_PRINT_HAZARDS is not set |
diff --git a/arch/ia64/ia32/ia32_signal.c b/arch/ia64/ia32/ia32_signal.c index 5856510210fa..b3355a9ca2c3 100644 --- a/arch/ia64/ia32/ia32_signal.c +++ b/arch/ia64/ia32/ia32_signal.c | |||
@@ -515,6 +515,7 @@ sys32_signal (int sig, unsigned int handler) | |||
515 | 515 | ||
516 | sigact_set_handler(&new_sa, handler, 0); | 516 | sigact_set_handler(&new_sa, handler, 0); |
517 | new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK; | 517 | new_sa.sa.sa_flags = SA_ONESHOT | SA_NOMASK; |
518 | sigemptyset(&new_sa.sa.sa_mask); | ||
518 | 519 | ||
519 | ret = do_sigaction(sig, &new_sa, &old_sa); | 520 | ret = do_sigaction(sig, &new_sa, &old_sa); |
520 | 521 | ||
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index d2702c419cf8..4722ec51c70c 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -284,19 +284,24 @@ acpi_parse_plat_int_src(acpi_table_entry_header * header, | |||
284 | return 0; | 284 | return 0; |
285 | } | 285 | } |
286 | 286 | ||
287 | #ifdef CONFIG_HOTPLUG_CPU | ||
287 | unsigned int can_cpei_retarget(void) | 288 | unsigned int can_cpei_retarget(void) |
288 | { | 289 | { |
289 | extern int cpe_vector; | 290 | extern int cpe_vector; |
291 | extern unsigned int force_cpei_retarget; | ||
290 | 292 | ||
291 | /* | 293 | /* |
292 | * Only if CPEI is supported and the override flag | 294 | * Only if CPEI is supported and the override flag |
293 | * is present, otherwise return that its re-targettable | 295 | * is present, otherwise return that its re-targettable |
294 | * if we are in polling mode. | 296 | * if we are in polling mode. |
295 | */ | 297 | */ |
296 | if (cpe_vector > 0 && !acpi_cpei_override) | 298 | if (cpe_vector > 0) { |
297 | return 0; | 299 | if (acpi_cpei_override || force_cpei_retarget) |
298 | else | 300 | return 1; |
299 | return 1; | 301 | else |
302 | return 0; | ||
303 | } | ||
304 | return 1; | ||
300 | } | 305 | } |
301 | 306 | ||
302 | unsigned int is_cpu_cpei_target(unsigned int cpu) | 307 | unsigned int is_cpu_cpei_target(unsigned int cpu) |
@@ -315,6 +320,7 @@ void set_cpei_target_cpu(unsigned int cpu) | |||
315 | { | 320 | { |
316 | acpi_cpei_phys_cpuid = cpu_physical_id(cpu); | 321 | acpi_cpei_phys_cpuid = cpu_physical_id(cpu); |
317 | } | 322 | } |
323 | #endif | ||
318 | 324 | ||
319 | unsigned int get_cpei_target_cpu(void) | 325 | unsigned int get_cpei_target_cpu(void) |
320 | { | 326 | { |
@@ -761,6 +767,59 @@ int acpi_map_cpu2node(acpi_handle handle, int cpu, long physid) | |||
761 | return (0); | 767 | return (0); |
762 | } | 768 | } |
763 | 769 | ||
770 | int additional_cpus __initdata = -1; | ||
771 | |||
772 | static __init int setup_additional_cpus(char *s) | ||
773 | { | ||
774 | if (s) | ||
775 | additional_cpus = simple_strtol(s, NULL, 0); | ||
776 | |||
777 | return 0; | ||
778 | } | ||
779 | |||
780 | early_param("additional_cpus", setup_additional_cpus); | ||
781 | |||
782 | /* | ||
783 | * cpu_possible_map should be static, it cannot change as cpu's | ||
784 | * are onlined, or offlined. The reason is per-cpu data-structures | ||
785 | * are allocated by some modules at init time, and dont expect to | ||
786 | * do this dynamically on cpu arrival/departure. | ||
787 | * cpu_present_map on the other hand can change dynamically. | ||
788 | * In case when cpu_hotplug is not compiled, then we resort to current | ||
789 | * behaviour, which is cpu_possible == cpu_present. | ||
790 | * - Ashok Raj | ||
791 | * | ||
792 | * Three ways to find out the number of additional hotplug CPUs: | ||
793 | * - If the BIOS specified disabled CPUs in ACPI/mptables use that. | ||
794 | * - The user can overwrite it with additional_cpus=NUM | ||
795 | * - Otherwise don't reserve additional CPUs. | ||
796 | */ | ||
797 | __init void prefill_possible_map(void) | ||
798 | { | ||
799 | int i; | ||
800 | int possible, disabled_cpus; | ||
801 | |||
802 | disabled_cpus = total_cpus - available_cpus; | ||
803 | |||
804 | if (additional_cpus == -1) { | ||
805 | if (disabled_cpus > 0) | ||
806 | additional_cpus = disabled_cpus; | ||
807 | else | ||
808 | additional_cpus = 0; | ||
809 | } | ||
810 | |||
811 | possible = available_cpus + additional_cpus; | ||
812 | |||
813 | if (possible > NR_CPUS) | ||
814 | possible = NR_CPUS; | ||
815 | |||
816 | printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n", | ||
817 | possible, max((possible - available_cpus), 0)); | ||
818 | |||
819 | for (i = 0; i < possible; i++) | ||
820 | cpu_set(i, cpu_possible_map); | ||
821 | } | ||
822 | |||
764 | int acpi_map_lsapic(acpi_handle handle, int *pcpu) | 823 | int acpi_map_lsapic(acpi_handle handle, int *pcpu) |
765 | { | 824 | { |
766 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; | 825 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; |
diff --git a/arch/ia64/kernel/cyclone.c b/arch/ia64/kernel/cyclone.c index 6ade3790ce07..e00b21514f7c 100644 --- a/arch/ia64/kernel/cyclone.c +++ b/arch/ia64/kernel/cyclone.c | |||
@@ -36,7 +36,7 @@ int __init init_cyclone_clock(void) | |||
36 | u32* volatile cyclone_timer; /* Cyclone MPMC0 register */ | 36 | u32* volatile cyclone_timer; /* Cyclone MPMC0 register */ |
37 | 37 | ||
38 | if (!use_cyclone) | 38 | if (!use_cyclone) |
39 | return -ENODEV; | 39 | return 0; |
40 | 40 | ||
41 | printk(KERN_INFO "Summit chipset: Starting Cyclone Counter.\n"); | 41 | printk(KERN_INFO "Summit chipset: Starting Cyclone Counter.\n"); |
42 | 42 | ||
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index c485a3b32ba8..9990320b6f9a 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -410,24 +410,16 @@ efi_init (void) | |||
410 | efi_config_table_t *config_tables; | 410 | efi_config_table_t *config_tables; |
411 | efi_char16_t *c16; | 411 | efi_char16_t *c16; |
412 | u64 efi_desc_size; | 412 | u64 efi_desc_size; |
413 | char *cp, *end, vendor[100] = "unknown"; | 413 | char *cp, vendor[100] = "unknown"; |
414 | extern char saved_command_line[]; | 414 | extern char saved_command_line[]; |
415 | int i; | 415 | int i; |
416 | 416 | ||
417 | /* it's too early to be able to use the standard kernel command line support... */ | 417 | /* it's too early to be able to use the standard kernel command line support... */ |
418 | for (cp = saved_command_line; *cp; ) { | 418 | for (cp = saved_command_line; *cp; ) { |
419 | if (memcmp(cp, "mem=", 4) == 0) { | 419 | if (memcmp(cp, "mem=", 4) == 0) { |
420 | cp += 4; | 420 | mem_limit = memparse(cp + 4, &cp); |
421 | mem_limit = memparse(cp, &end); | ||
422 | if (end != cp) | ||
423 | break; | ||
424 | cp = end; | ||
425 | } else if (memcmp(cp, "max_addr=", 9) == 0) { | 421 | } else if (memcmp(cp, "max_addr=", 9) == 0) { |
426 | cp += 9; | 422 | max_addr = GRANULEROUNDDOWN(memparse(cp + 9, &cp)); |
427 | max_addr = GRANULEROUNDDOWN(memparse(cp, &end)); | ||
428 | if (end != cp) | ||
429 | break; | ||
430 | cp = end; | ||
431 | } else { | 423 | } else { |
432 | while (*cp != ' ' && *cp) | 424 | while (*cp != ' ' && *cp) |
433 | ++cp; | 425 | ++cp; |
@@ -458,7 +450,7 @@ efi_init (void) | |||
458 | /* Show what we know for posterity */ | 450 | /* Show what we know for posterity */ |
459 | c16 = __va(efi.systab->fw_vendor); | 451 | c16 = __va(efi.systab->fw_vendor); |
460 | if (c16) { | 452 | if (c16) { |
461 | for (i = 0;i < (int) sizeof(vendor) && *c16; ++i) | 453 | for (i = 0;i < (int) sizeof(vendor) - 1 && *c16; ++i) |
462 | vendor[i] = *c16++; | 454 | vendor[i] = *c16++; |
463 | vendor[i] = '\0'; | 455 | vendor[i] = '\0'; |
464 | } | 456 | } |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 7a6ffd613789..0e3eda99e549 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -569,7 +569,9 @@ GLOBAL_ENTRY(ia64_trace_syscall) | |||
569 | .mem.offset 0,0; st8.spill [r2]=r8 // store return value in slot for r8 | 569 | .mem.offset 0,0; st8.spill [r2]=r8 // store return value in slot for r8 |
570 | .mem.offset 8,0; st8.spill [r3]=r10 // clear error indication in slot for r10 | 570 | .mem.offset 8,0; st8.spill [r3]=r10 // clear error indication in slot for r10 |
571 | br.call.sptk.many rp=syscall_trace_leave // give parent a chance to catch return value | 571 | br.call.sptk.many rp=syscall_trace_leave // give parent a chance to catch return value |
572 | .ret3: br.cond.sptk .work_pending_syscall_end | 572 | .ret3: |
573 | (pUStk) cmp.eq.unc p6,p0=r0,r0 // p6 <- pUStk | ||
574 | br.cond.sptk .work_pending_syscall_end | ||
573 | 575 | ||
574 | strace_error: | 576 | strace_error: |
575 | ld8 r3=[r2] // load pt_regs.r8 | 577 | ld8 r3=[r2] // load pt_regs.r8 |
@@ -1100,9 +1102,6 @@ skip_rbs_switch: | |||
1100 | st8 [r2]=r8 | 1102 | st8 [r2]=r8 |
1101 | st8 [r3]=r10 | 1103 | st8 [r3]=r10 |
1102 | .work_pending: | 1104 | .work_pending: |
1103 | tbit.nz p6,p0=r31,TIF_SIGDELAYED // signal delayed from MCA/INIT/NMI/PMI context? | ||
1104 | (p6) br.cond.sptk.few .sigdelayed | ||
1105 | ;; | ||
1106 | tbit.z p6,p0=r31,TIF_NEED_RESCHED // current_thread_info()->need_resched==0? | 1105 | tbit.z p6,p0=r31,TIF_NEED_RESCHED // current_thread_info()->need_resched==0? |
1107 | (p6) br.cond.sptk.few .notify | 1106 | (p6) br.cond.sptk.few .notify |
1108 | #ifdef CONFIG_PREEMPT | 1107 | #ifdef CONFIG_PREEMPT |
@@ -1129,17 +1128,6 @@ skip_rbs_switch: | |||
1129 | (pLvSys)br.cond.sptk.few .work_pending_syscall_end | 1128 | (pLvSys)br.cond.sptk.few .work_pending_syscall_end |
1130 | br.cond.sptk.many .work_processed_kernel // don't re-check | 1129 | br.cond.sptk.many .work_processed_kernel // don't re-check |
1131 | 1130 | ||
1132 | // There is a delayed signal that was detected in MCA/INIT/NMI/PMI context where | ||
1133 | // it could not be delivered. Deliver it now. The signal might be for us and | ||
1134 | // may set TIF_SIGPENDING, so redrive ia64_leave_* after processing the delayed | ||
1135 | // signal. | ||
1136 | |||
1137 | .sigdelayed: | ||
1138 | br.call.sptk.many rp=do_sigdelayed | ||
1139 | cmp.eq p6,p0=r0,r0 // p6 <- 1, always re-check | ||
1140 | (pLvSys)br.cond.sptk.few .work_pending_syscall_end | ||
1141 | br.cond.sptk.many .work_processed_kernel // re-check | ||
1142 | |||
1143 | .work_pending_syscall_end: | 1131 | .work_pending_syscall_end: |
1144 | adds r2=PT(R8)+16,r12 | 1132 | adds r2=PT(R8)+16,r12 |
1145 | adds r3=PT(R10)+16,r12 | 1133 | adds r3=PT(R10)+16,r12 |
@@ -1601,5 +1589,21 @@ sys_call_table: | |||
1601 | data8 sys_inotify_add_watch | 1589 | data8 sys_inotify_add_watch |
1602 | data8 sys_inotify_rm_watch | 1590 | data8 sys_inotify_rm_watch |
1603 | data8 sys_migrate_pages // 1280 | 1591 | data8 sys_migrate_pages // 1280 |
1592 | data8 sys_openat | ||
1593 | data8 sys_mkdirat | ||
1594 | data8 sys_mknodat | ||
1595 | data8 sys_fchownat | ||
1596 | data8 sys_futimesat // 1285 | ||
1597 | data8 sys_newfstatat | ||
1598 | data8 sys_unlinkat | ||
1599 | data8 sys_renameat | ||
1600 | data8 sys_linkat | ||
1601 | data8 sys_symlinkat // 1290 | ||
1602 | data8 sys_readlinkat | ||
1603 | data8 sys_fchmodat | ||
1604 | data8 sys_faccessat | ||
1605 | data8 sys_ni_syscall // reserved for pselect | ||
1606 | data8 sys_ni_syscall // 1295 reserved for ppoll | ||
1607 | data8 sys_unshare | ||
1604 | 1608 | ||
1605 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls | 1609 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls |
diff --git a/arch/ia64/kernel/fsys.S b/arch/ia64/kernel/fsys.S index ce423910ca97..7a05b1cb2ad5 100644 --- a/arch/ia64/kernel/fsys.S +++ b/arch/ia64/kernel/fsys.S | |||
@@ -878,31 +878,7 @@ fsyscall_table: | |||
878 | data8 0 // timer_delete | 878 | data8 0 // timer_delete |
879 | data8 0 // clock_settime | 879 | data8 0 // clock_settime |
880 | data8 fsys_clock_gettime // clock_gettime | 880 | data8 fsys_clock_gettime // clock_gettime |
881 | data8 0 // clock_getres // 1255 | ||
882 | data8 0 // clock_nanosleep | ||
883 | data8 0 // fstatfs64 | ||
884 | data8 0 // statfs64 | ||
885 | data8 0 | ||
886 | data8 0 // 1260 | ||
887 | data8 0 | ||
888 | data8 0 // mq_open | ||
889 | data8 0 // mq_unlink | ||
890 | data8 0 // mq_timedsend | ||
891 | data8 0 // mq_timedreceive // 1265 | ||
892 | data8 0 // mq_notify | ||
893 | data8 0 // mq_getsetattr | ||
894 | data8 0 // kexec_load | ||
895 | data8 0 | ||
896 | data8 0 // 1270 | ||
897 | data8 0 | ||
898 | data8 0 | ||
899 | data8 0 | ||
900 | data8 0 | ||
901 | data8 0 // 1275 | ||
902 | data8 0 | ||
903 | data8 0 | ||
904 | data8 0 | ||
905 | data8 0 | ||
906 | data8 0 // 1280 | ||
907 | 881 | ||
908 | .org fsyscall_table + 8*NR_syscalls // guard against failures to increase NR_syscalls | 882 | // fill in zeros for the remaining entries |
883 | .zero: | ||
884 | .space fsyscall_table + 8*NR_syscalls - .zero, 0 | ||
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S index fbc7ea35dd57..f1778a84ea61 100644 --- a/arch/ia64/kernel/head.S +++ b/arch/ia64/kernel/head.S | |||
@@ -352,6 +352,7 @@ start_ap: | |||
352 | mov ar.rsc=0 // place RSE in enforced lazy mode | 352 | mov ar.rsc=0 // place RSE in enforced lazy mode |
353 | ;; | 353 | ;; |
354 | loadrs // clear the dirty partition | 354 | loadrs // clear the dirty partition |
355 | mov IA64_KR(PER_CPU_DATA)=r0 // clear physical per-CPU base | ||
355 | ;; | 356 | ;; |
356 | mov ar.bspstore=r2 // establish the new RSE stack | 357 | mov ar.bspstore=r2 // establish the new RSE stack |
357 | ;; | 358 | ;; |
diff --git a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c index e72de580ebbf..bbcfd08378a6 100644 --- a/arch/ia64/kernel/ia64_ksyms.c +++ b/arch/ia64/kernel/ia64_ksyms.c | |||
@@ -10,23 +10,8 @@ | |||
10 | 10 | ||
11 | #include <linux/string.h> | 11 | #include <linux/string.h> |
12 | EXPORT_SYMBOL(memset); | 12 | EXPORT_SYMBOL(memset); |
13 | EXPORT_SYMBOL(memchr); | ||
14 | EXPORT_SYMBOL(memcmp); | ||
15 | EXPORT_SYMBOL(memcpy); | 13 | EXPORT_SYMBOL(memcpy); |
16 | EXPORT_SYMBOL(memmove); | ||
17 | EXPORT_SYMBOL(memscan); | ||
18 | EXPORT_SYMBOL(strcat); | ||
19 | EXPORT_SYMBOL(strchr); | ||
20 | EXPORT_SYMBOL(strcmp); | ||
21 | EXPORT_SYMBOL(strcpy); | ||
22 | EXPORT_SYMBOL(strlen); | 14 | EXPORT_SYMBOL(strlen); |
23 | EXPORT_SYMBOL(strncat); | ||
24 | EXPORT_SYMBOL(strncmp); | ||
25 | EXPORT_SYMBOL(strncpy); | ||
26 | EXPORT_SYMBOL(strnlen); | ||
27 | EXPORT_SYMBOL(strrchr); | ||
28 | EXPORT_SYMBOL(strstr); | ||
29 | EXPORT_SYMBOL(strpbrk); | ||
30 | 15 | ||
31 | #include <asm/checksum.h> | 16 | #include <asm/checksum.h> |
32 | EXPORT_SYMBOL(ip_fast_csum); /* hand-coded assembly */ | 17 | EXPORT_SYMBOL(ip_fast_csum); /* hand-coded assembly */ |
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index 574084f343fa..8832c553230a 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -631,6 +631,7 @@ get_target_cpu (unsigned int gsi, int vector) | |||
631 | { | 631 | { |
632 | #ifdef CONFIG_SMP | 632 | #ifdef CONFIG_SMP |
633 | static int cpu = -1; | 633 | static int cpu = -1; |
634 | extern int cpe_vector; | ||
634 | 635 | ||
635 | /* | 636 | /* |
636 | * In case of vector shared by multiple RTEs, all RTEs that | 637 | * In case of vector shared by multiple RTEs, all RTEs that |
@@ -653,6 +654,11 @@ get_target_cpu (unsigned int gsi, int vector) | |||
653 | if (!cpu_online(smp_processor_id())) | 654 | if (!cpu_online(smp_processor_id())) |
654 | return cpu_physical_id(smp_processor_id()); | 655 | return cpu_physical_id(smp_processor_id()); |
655 | 656 | ||
657 | #ifdef CONFIG_ACPI | ||
658 | if (cpe_vector > 0 && vector == IA64_CPEP_VECTOR) | ||
659 | return get_cpei_target_cpu(); | ||
660 | #endif | ||
661 | |||
656 | #ifdef CONFIG_NUMA | 662 | #ifdef CONFIG_NUMA |
657 | { | 663 | { |
658 | int num_cpus, cpu_index, iosapic_index, numa_cpu, i = 0; | 664 | int num_cpus, cpu_index, iosapic_index, numa_cpu, i = 0; |
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index d33244c32759..5ce908ef9c95 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -163,8 +163,19 @@ void fixup_irqs(void) | |||
163 | { | 163 | { |
164 | unsigned int irq; | 164 | unsigned int irq; |
165 | extern void ia64_process_pending_intr(void); | 165 | extern void ia64_process_pending_intr(void); |
166 | extern void ia64_disable_timer(void); | ||
167 | extern volatile int time_keeper_id; | ||
168 | |||
169 | ia64_disable_timer(); | ||
170 | |||
171 | /* | ||
172 | * Find a new timesync master | ||
173 | */ | ||
174 | if (smp_processor_id() == time_keeper_id) { | ||
175 | time_keeper_id = first_cpu(cpu_online_map); | ||
176 | printk ("CPU %d is now promoted to time-keeper master\n", time_keeper_id); | ||
177 | } | ||
166 | 178 | ||
167 | ia64_set_itv(1<<16); | ||
168 | /* | 179 | /* |
169 | * Phase 1: Locate irq's bound to this cpu and | 180 | * Phase 1: Locate irq's bound to this cpu and |
170 | * relocate them for cpu removal. | 181 | * relocate them for cpu removal. |
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S index 301f2e9d262e..dcd906fe5749 100644 --- a/arch/ia64/kernel/ivt.S +++ b/arch/ia64/kernel/ivt.S | |||
@@ -561,11 +561,12 @@ ENTRY(dirty_bit) | |||
561 | ;; // avoid RAW on r18 | 561 | ;; // avoid RAW on r18 |
562 | mov ar.ccv=r18 // set compare value for cmpxchg | 562 | mov ar.ccv=r18 // set compare value for cmpxchg |
563 | or r25=_PAGE_D|_PAGE_A,r18 // set the dirty and accessed bits | 563 | or r25=_PAGE_D|_PAGE_A,r18 // set the dirty and accessed bits |
564 | tbit.z p7,p6 = r18,_PAGE_P_BIT // Check present bit | ||
564 | ;; | 565 | ;; |
565 | cmpxchg8.acq r26=[r17],r25,ar.ccv | 566 | (p6) cmpxchg8.acq r26=[r17],r25,ar.ccv // Only update if page is present |
566 | mov r24=PAGE_SHIFT<<2 | 567 | mov r24=PAGE_SHIFT<<2 |
567 | ;; | 568 | ;; |
568 | cmp.eq p6,p7=r26,r18 | 569 | (p6) cmp.eq p6,p7=r26,r18 // Only compare if page is present |
569 | ;; | 570 | ;; |
570 | (p6) itc.d r25 // install updated PTE | 571 | (p6) itc.d r25 // install updated PTE |
571 | ;; | 572 | ;; |
@@ -626,11 +627,12 @@ ENTRY(iaccess_bit) | |||
626 | ;; | 627 | ;; |
627 | mov ar.ccv=r18 // set compare value for cmpxchg | 628 | mov ar.ccv=r18 // set compare value for cmpxchg |
628 | or r25=_PAGE_A,r18 // set the accessed bit | 629 | or r25=_PAGE_A,r18 // set the accessed bit |
630 | tbit.z p7,p6 = r18,_PAGE_P_BIT // Check present bit | ||
629 | ;; | 631 | ;; |
630 | cmpxchg8.acq r26=[r17],r25,ar.ccv | 632 | (p6) cmpxchg8.acq r26=[r17],r25,ar.ccv // Only if page present |
631 | mov r24=PAGE_SHIFT<<2 | 633 | mov r24=PAGE_SHIFT<<2 |
632 | ;; | 634 | ;; |
633 | cmp.eq p6,p7=r26,r18 | 635 | (p6) cmp.eq p6,p7=r26,r18 // Only if page present |
634 | ;; | 636 | ;; |
635 | (p6) itc.i r25 // install updated PTE | 637 | (p6) itc.i r25 // install updated PTE |
636 | ;; | 638 | ;; |
@@ -680,11 +682,12 @@ ENTRY(daccess_bit) | |||
680 | ;; // avoid RAW on r18 | 682 | ;; // avoid RAW on r18 |
681 | mov ar.ccv=r18 // set compare value for cmpxchg | 683 | mov ar.ccv=r18 // set compare value for cmpxchg |
682 | or r25=_PAGE_A,r18 // set the dirty bit | 684 | or r25=_PAGE_A,r18 // set the dirty bit |
685 | tbit.z p7,p6 = r18,_PAGE_P_BIT // Check present bit | ||
683 | ;; | 686 | ;; |
684 | cmpxchg8.acq r26=[r17],r25,ar.ccv | 687 | (p6) cmpxchg8.acq r26=[r17],r25,ar.ccv // Only if page is present |
685 | mov r24=PAGE_SHIFT<<2 | 688 | mov r24=PAGE_SHIFT<<2 |
686 | ;; | 689 | ;; |
687 | cmp.eq p6,p7=r26,r18 | 690 | (p6) cmp.eq p6,p7=r26,r18 // Only if page is present |
688 | ;; | 691 | ;; |
689 | (p6) itc.d r25 // install updated PTE | 692 | (p6) itc.d r25 // install updated PTE |
690 | /* | 693 | /* |
@@ -1362,7 +1365,6 @@ END(debug_vector) | |||
1362 | // 0x5a00 Entry 30 (size 16 bundles) Unaligned Reference (57) | 1365 | // 0x5a00 Entry 30 (size 16 bundles) Unaligned Reference (57) |
1363 | ENTRY(unaligned_access) | 1366 | ENTRY(unaligned_access) |
1364 | DBG_FAULT(30) | 1367 | DBG_FAULT(30) |
1365 | mov r16=cr.ipsr | ||
1366 | mov r31=pr // prepare to save predicates | 1368 | mov r31=pr // prepare to save predicates |
1367 | ;; | 1369 | ;; |
1368 | br.sptk.many dispatch_unaligned_handler | 1370 | br.sptk.many dispatch_unaligned_handler |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 909fed2c2499..b57e723f194c 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -284,6 +284,7 @@ ia64_mca_log_sal_error_record(int sal_info_type) | |||
284 | #ifdef CONFIG_ACPI | 284 | #ifdef CONFIG_ACPI |
285 | 285 | ||
286 | int cpe_vector = -1; | 286 | int cpe_vector = -1; |
287 | int ia64_cpe_irq = -1; | ||
287 | 288 | ||
288 | static irqreturn_t | 289 | static irqreturn_t |
289 | ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) | 290 | ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) |
@@ -1470,11 +1471,13 @@ void __devinit | |||
1470 | ia64_mca_cpu_init(void *cpu_data) | 1471 | ia64_mca_cpu_init(void *cpu_data) |
1471 | { | 1472 | { |
1472 | void *pal_vaddr; | 1473 | void *pal_vaddr; |
1474 | static int first_time = 1; | ||
1473 | 1475 | ||
1474 | if (smp_processor_id() == 0) { | 1476 | if (first_time) { |
1475 | void *mca_data; | 1477 | void *mca_data; |
1476 | int cpu; | 1478 | int cpu; |
1477 | 1479 | ||
1480 | first_time = 0; | ||
1478 | mca_data = alloc_bootmem(sizeof(struct ia64_mca_cpu) | 1481 | mca_data = alloc_bootmem(sizeof(struct ia64_mca_cpu) |
1479 | * NR_CPUS + KERNEL_STACK_SIZE); | 1482 | * NR_CPUS + KERNEL_STACK_SIZE); |
1480 | mca_data = (void *)(((unsigned long)mca_data + | 1483 | mca_data = (void *)(((unsigned long)mca_data + |
@@ -1730,6 +1733,7 @@ ia64_mca_late_init(void) | |||
1730 | desc = irq_descp(irq); | 1733 | desc = irq_descp(irq); |
1731 | desc->status |= IRQ_PER_CPU; | 1734 | desc->status |= IRQ_PER_CPU; |
1732 | setup_irq(irq, &mca_cpe_irqaction); | 1735 | setup_irq(irq, &mca_cpe_irqaction); |
1736 | ia64_cpe_irq = irq; | ||
1733 | } | 1737 | } |
1734 | ia64_mca_register_cpev(cpe_vector); | 1738 | ia64_mca_register_cpev(cpe_vector); |
1735 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); | 1739 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); |
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index 3492e3211a44..e883d85906db 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c | |||
@@ -123,8 +123,9 @@ mca_page_isolate(unsigned long paddr) | |||
123 | void | 123 | void |
124 | mca_handler_bh(unsigned long paddr) | 124 | mca_handler_bh(unsigned long paddr) |
125 | { | 125 | { |
126 | printk(KERN_DEBUG "OS_MCA: process [pid: %d](%s) encounters MCA.\n", | 126 | printk(KERN_ERR |
127 | current->pid, current->comm); | 127 | "OS_MCA: process [pid: %d](%s) encounters MCA (paddr=%lx)\n", |
128 | current->pid, current->comm, paddr); | ||
128 | 129 | ||
129 | spin_lock(&mca_bh_lock); | 130 | spin_lock(&mca_bh_lock); |
130 | switch (mca_page_isolate(paddr)) { | 131 | switch (mca_page_isolate(paddr)) { |
@@ -132,7 +133,7 @@ mca_handler_bh(unsigned long paddr) | |||
132 | printk(KERN_DEBUG "Page isolation: ( %lx ) success.\n", paddr); | 133 | printk(KERN_DEBUG "Page isolation: ( %lx ) success.\n", paddr); |
133 | break; | 134 | break; |
134 | case ISOLATE_NG: | 135 | case ISOLATE_NG: |
135 | printk(KERN_DEBUG "Page isolation: ( %lx ) failure.\n", paddr); | 136 | printk(KERN_CRIT "Page isolation: ( %lx ) failure.\n", paddr); |
136 | break; | 137 | break; |
137 | default: | 138 | default: |
138 | break; | 139 | break; |
@@ -437,6 +438,9 @@ recover_from_read_error(slidx_table_t *slidx, | |||
437 | * the process not have any locks of kernel. | 438 | * the process not have any locks of kernel. |
438 | */ | 439 | */ |
439 | 440 | ||
441 | /* Is minstate valid? */ | ||
442 | if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate)) | ||
443 | return 0; | ||
440 | psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); | 444 | psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); |
441 | 445 | ||
442 | /* | 446 | /* |
@@ -564,10 +568,15 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
564 | return 0; | 568 | return 0; |
565 | 569 | ||
566 | /* | 570 | /* |
567 | * If there is no bus error, record is weird but we need not to recover. | 571 | * The cache check and bus check bits have four possible states |
572 | * cc bc | ||
573 | * 0 0 Weird record, not recovered | ||
574 | * 1 0 Cache error, not recovered | ||
575 | * 0 1 I/O error, attempt recovery | ||
576 | * 1 1 Memory error, attempt recovery | ||
568 | */ | 577 | */ |
569 | if (psp->bc == 0 || pbci == NULL) | 578 | if (psp->bc == 0 || pbci == NULL) |
570 | return 1; | 579 | return 0; |
571 | 580 | ||
572 | /* | 581 | /* |
573 | * Sorry, we cannot handle so many. | 582 | * Sorry, we cannot handle so many. |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index 9c5194b385da..077f21216b65 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -6722,6 +6722,7 @@ __initcall(pfm_init); | |||
6722 | void | 6722 | void |
6723 | pfm_init_percpu (void) | 6723 | pfm_init_percpu (void) |
6724 | { | 6724 | { |
6725 | static int first_time=1; | ||
6725 | /* | 6726 | /* |
6726 | * make sure no measurement is active | 6727 | * make sure no measurement is active |
6727 | * (may inherit programmed PMCs from EFI). | 6728 | * (may inherit programmed PMCs from EFI). |
@@ -6734,8 +6735,10 @@ pfm_init_percpu (void) | |||
6734 | */ | 6735 | */ |
6735 | pfm_unfreeze_pmu(); | 6736 | pfm_unfreeze_pmu(); |
6736 | 6737 | ||
6737 | if (smp_processor_id() == 0) | 6738 | if (first_time) { |
6738 | register_percpu_irq(IA64_PERFMON_VECTOR, &perfmon_irqaction); | 6739 | register_percpu_irq(IA64_PERFMON_VECTOR, &perfmon_irqaction); |
6740 | first_time=0; | ||
6741 | } | ||
6739 | 6742 | ||
6740 | ia64_setreg(_IA64_REG_CR_PMV, IA64_PERFMON_VECTOR); | 6743 | ia64_setreg(_IA64_REG_CR_PMV, IA64_PERFMON_VECTOR); |
6741 | ia64_srlz_d(); | 6744 | ia64_srlz_d(); |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index c0766575a3a2..3258e09278d0 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -71,6 +71,8 @@ unsigned long __per_cpu_offset[NR_CPUS]; | |||
71 | EXPORT_SYMBOL(__per_cpu_offset); | 71 | EXPORT_SYMBOL(__per_cpu_offset); |
72 | #endif | 72 | #endif |
73 | 73 | ||
74 | extern void ia64_setup_printk_clock(void); | ||
75 | |||
74 | DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info); | 76 | DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info); |
75 | DEFINE_PER_CPU(unsigned long, local_per_cpu_offset); | 77 | DEFINE_PER_CPU(unsigned long, local_per_cpu_offset); |
76 | DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8); | 78 | DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8); |
@@ -428,6 +430,7 @@ setup_arch (char **cmdline_p) | |||
428 | if (early_console_setup(*cmdline_p) == 0) | 430 | if (early_console_setup(*cmdline_p) == 0) |
429 | mark_bsp_online(); | 431 | mark_bsp_online(); |
430 | 432 | ||
433 | parse_early_param(); | ||
431 | #ifdef CONFIG_ACPI | 434 | #ifdef CONFIG_ACPI |
432 | /* Initialize the ACPI boot-time table parser */ | 435 | /* Initialize the ACPI boot-time table parser */ |
433 | acpi_table_init(); | 436 | acpi_table_init(); |
@@ -445,6 +448,8 @@ setup_arch (char **cmdline_p) | |||
445 | /* process SAL system table: */ | 448 | /* process SAL system table: */ |
446 | ia64_sal_init(efi.sal_systab); | 449 | ia64_sal_init(efi.sal_systab); |
447 | 450 | ||
451 | ia64_setup_printk_clock(); | ||
452 | |||
448 | #ifdef CONFIG_SMP | 453 | #ifdef CONFIG_SMP |
449 | cpu_physical_id(0) = hard_smp_processor_id(); | 454 | cpu_physical_id(0) = hard_smp_processor_id(); |
450 | 455 | ||
@@ -684,6 +689,9 @@ void | |||
684 | setup_per_cpu_areas (void) | 689 | setup_per_cpu_areas (void) |
685 | { | 690 | { |
686 | /* start_kernel() requires this... */ | 691 | /* start_kernel() requires this... */ |
692 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | ||
693 | prefill_possible_map(); | ||
694 | #endif | ||
687 | } | 695 | } |
688 | 696 | ||
689 | /* | 697 | /* |
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c index 463f6bb44d07..1d7903ee2126 100644 --- a/arch/ia64/kernel/signal.c +++ b/arch/ia64/kernel/signal.c | |||
@@ -588,104 +588,3 @@ ia64_do_signal (sigset_t *oldset, struct sigscratch *scr, long in_syscall) | |||
588 | } | 588 | } |
589 | return 0; | 589 | return 0; |
590 | } | 590 | } |
591 | |||
592 | /* Set a delayed signal that was detected in MCA/INIT/NMI/PMI context where it | ||
593 | * could not be delivered. It is important that the target process is not | ||
594 | * allowed to do any more work in user space. Possible cases for the target | ||
595 | * process: | ||
596 | * | ||
597 | * - It is sleeping and will wake up soon. Store the data in the current task, | ||
598 | * the signal will be sent when the current task returns from the next | ||
599 | * interrupt. | ||
600 | * | ||
601 | * - It is running in user context. Store the data in the current task, the | ||
602 | * signal will be sent when the current task returns from the next interrupt. | ||
603 | * | ||
604 | * - It is running in kernel context on this or another cpu and will return to | ||
605 | * user context. Store the data in the target task, the signal will be sent | ||
606 | * to itself when the target task returns to user space. | ||
607 | * | ||
608 | * - It is running in kernel context on this cpu and will sleep before | ||
609 | * returning to user context. Because this is also the current task, the | ||
610 | * signal will not get delivered and the task could sleep indefinitely. | ||
611 | * Store the data in the idle task for this cpu, the signal will be sent | ||
612 | * after the idle task processes its next interrupt. | ||
613 | * | ||
614 | * To cover all cases, store the data in the target task, the current task and | ||
615 | * the idle task on this cpu. Whatever happens, the signal will be delivered | ||
616 | * to the target task before it can do any useful user space work. Multiple | ||
617 | * deliveries have no unwanted side effects. | ||
618 | * | ||
619 | * Note: This code is executed in MCA/INIT/NMI/PMI context, with interrupts | ||
620 | * disabled. It must not take any locks nor use kernel structures or services | ||
621 | * that require locks. | ||
622 | */ | ||
623 | |||
624 | /* To ensure that we get the right pid, check its start time. To avoid extra | ||
625 | * include files in thread_info.h, convert the task start_time to unsigned long, | ||
626 | * giving us a cycle time of > 580 years. | ||
627 | */ | ||
628 | static inline unsigned long | ||
629 | start_time_ul(const struct task_struct *t) | ||
630 | { | ||
631 | return t->start_time.tv_sec * NSEC_PER_SEC + t->start_time.tv_nsec; | ||
632 | } | ||
633 | |||
634 | void | ||
635 | set_sigdelayed(pid_t pid, int signo, int code, void __user *addr) | ||
636 | { | ||
637 | struct task_struct *t; | ||
638 | unsigned long start_time = 0; | ||
639 | int i; | ||
640 | |||
641 | for (i = 1; i <= 3; ++i) { | ||
642 | switch (i) { | ||
643 | case 1: | ||
644 | t = find_task_by_pid(pid); | ||
645 | if (t) | ||
646 | start_time = start_time_ul(t); | ||
647 | break; | ||
648 | case 2: | ||
649 | t = current; | ||
650 | break; | ||
651 | default: | ||
652 | t = idle_task(smp_processor_id()); | ||
653 | break; | ||
654 | } | ||
655 | |||
656 | if (!t) | ||
657 | return; | ||
658 | task_thread_info(t)->sigdelayed.signo = signo; | ||
659 | task_thread_info(t)->sigdelayed.code = code; | ||
660 | task_thread_info(t)->sigdelayed.addr = addr; | ||
661 | task_thread_info(t)->sigdelayed.start_time = start_time; | ||
662 | task_thread_info(t)->sigdelayed.pid = pid; | ||
663 | wmb(); | ||
664 | set_tsk_thread_flag(t, TIF_SIGDELAYED); | ||
665 | } | ||
666 | } | ||
667 | |||
668 | /* Called from entry.S when it detects TIF_SIGDELAYED, a delayed signal that | ||
669 | * was detected in MCA/INIT/NMI/PMI context where it could not be delivered. | ||
670 | */ | ||
671 | |||
672 | void | ||
673 | do_sigdelayed(void) | ||
674 | { | ||
675 | struct siginfo siginfo; | ||
676 | pid_t pid; | ||
677 | struct task_struct *t; | ||
678 | |||
679 | clear_thread_flag(TIF_SIGDELAYED); | ||
680 | memset(&siginfo, 0, sizeof(siginfo)); | ||
681 | siginfo.si_signo = current_thread_info()->sigdelayed.signo; | ||
682 | siginfo.si_code = current_thread_info()->sigdelayed.code; | ||
683 | siginfo.si_addr = current_thread_info()->sigdelayed.addr; | ||
684 | pid = current_thread_info()->sigdelayed.pid; | ||
685 | t = find_task_by_pid(pid); | ||
686 | if (!t) | ||
687 | return; | ||
688 | if (current_thread_info()->sigdelayed.start_time != start_time_ul(t)) | ||
689 | return; | ||
690 | force_sig_info(siginfo.si_signo, &siginfo, t); | ||
691 | } | ||
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 8f44e7d2df66..c4b633b36dab 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -70,6 +70,12 @@ | |||
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | #ifdef CONFIG_HOTPLUG_CPU | 72 | #ifdef CONFIG_HOTPLUG_CPU |
73 | #ifdef CONFIG_PERMIT_BSP_REMOVE | ||
74 | #define bsp_remove_ok 1 | ||
75 | #else | ||
76 | #define bsp_remove_ok 0 | ||
77 | #endif | ||
78 | |||
73 | /* | 79 | /* |
74 | * Store all idle threads, this can be reused instead of creating | 80 | * Store all idle threads, this can be reused instead of creating |
75 | * a new thread. Also avoids complicated thread destroy functionality | 81 | * a new thread. Also avoids complicated thread destroy functionality |
@@ -104,7 +110,7 @@ struct sal_to_os_boot *sal_state_for_booting_cpu = &sal_boot_rendez_state[0]; | |||
104 | /* | 110 | /* |
105 | * ITC synchronization related stuff: | 111 | * ITC synchronization related stuff: |
106 | */ | 112 | */ |
107 | #define MASTER 0 | 113 | #define MASTER (0) |
108 | #define SLAVE (SMP_CACHE_BYTES/8) | 114 | #define SLAVE (SMP_CACHE_BYTES/8) |
109 | 115 | ||
110 | #define NUM_ROUNDS 64 /* magic value */ | 116 | #define NUM_ROUNDS 64 /* magic value */ |
@@ -129,7 +135,7 @@ DEFINE_PER_CPU(int, cpu_state); | |||
129 | /* Bitmasks of currently online, and possible CPUs */ | 135 | /* Bitmasks of currently online, and possible CPUs */ |
130 | cpumask_t cpu_online_map; | 136 | cpumask_t cpu_online_map; |
131 | EXPORT_SYMBOL(cpu_online_map); | 137 | EXPORT_SYMBOL(cpu_online_map); |
132 | cpumask_t cpu_possible_map; | 138 | cpumask_t cpu_possible_map = CPU_MASK_NONE; |
133 | EXPORT_SYMBOL(cpu_possible_map); | 139 | EXPORT_SYMBOL(cpu_possible_map); |
134 | 140 | ||
135 | cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; | 141 | cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; |
@@ -151,6 +157,27 @@ char __initdata no_int_routing; | |||
151 | 157 | ||
152 | unsigned char smp_int_redirect; /* are INT and IPI redirectable by the chipset? */ | 158 | unsigned char smp_int_redirect; /* are INT and IPI redirectable by the chipset? */ |
153 | 159 | ||
160 | #ifdef CONFIG_FORCE_CPEI_RETARGET | ||
161 | #define CPEI_OVERRIDE_DEFAULT (1) | ||
162 | #else | ||
163 | #define CPEI_OVERRIDE_DEFAULT (0) | ||
164 | #endif | ||
165 | |||
166 | unsigned int force_cpei_retarget = CPEI_OVERRIDE_DEFAULT; | ||
167 | |||
168 | static int __init | ||
169 | cmdl_force_cpei(char *str) | ||
170 | { | ||
171 | int value=0; | ||
172 | |||
173 | get_option (&str, &value); | ||
174 | force_cpei_retarget = value; | ||
175 | |||
176 | return 1; | ||
177 | } | ||
178 | |||
179 | __setup("force_cpei=", cmdl_force_cpei); | ||
180 | |||
154 | static int __init | 181 | static int __init |
155 | nointroute (char *str) | 182 | nointroute (char *str) |
156 | { | 183 | { |
@@ -161,6 +188,27 @@ nointroute (char *str) | |||
161 | 188 | ||
162 | __setup("nointroute", nointroute); | 189 | __setup("nointroute", nointroute); |
163 | 190 | ||
191 | static void fix_b0_for_bsp(void) | ||
192 | { | ||
193 | #ifdef CONFIG_HOTPLUG_CPU | ||
194 | int cpuid; | ||
195 | static int fix_bsp_b0 = 1; | ||
196 | |||
197 | cpuid = smp_processor_id(); | ||
198 | |||
199 | /* | ||
200 | * Cache the b0 value on the first AP that comes up | ||
201 | */ | ||
202 | if (!(fix_bsp_b0 && cpuid)) | ||
203 | return; | ||
204 | |||
205 | sal_boot_rendez_state[0].br[0] = sal_boot_rendez_state[cpuid].br[0]; | ||
206 | printk ("Fixed BSP b0 value from CPU %d\n", cpuid); | ||
207 | |||
208 | fix_bsp_b0 = 0; | ||
209 | #endif | ||
210 | } | ||
211 | |||
164 | void | 212 | void |
165 | sync_master (void *arg) | 213 | sync_master (void *arg) |
166 | { | 214 | { |
@@ -327,8 +375,9 @@ smp_setup_percpu_timer (void) | |||
327 | static void __devinit | 375 | static void __devinit |
328 | smp_callin (void) | 376 | smp_callin (void) |
329 | { | 377 | { |
330 | int cpuid, phys_id; | 378 | int cpuid, phys_id, itc_master; |
331 | extern void ia64_init_itm(void); | 379 | extern void ia64_init_itm(void); |
380 | extern volatile int time_keeper_id; | ||
332 | 381 | ||
333 | #ifdef CONFIG_PERFMON | 382 | #ifdef CONFIG_PERFMON |
334 | extern void pfm_init_percpu(void); | 383 | extern void pfm_init_percpu(void); |
@@ -336,6 +385,7 @@ smp_callin (void) | |||
336 | 385 | ||
337 | cpuid = smp_processor_id(); | 386 | cpuid = smp_processor_id(); |
338 | phys_id = hard_smp_processor_id(); | 387 | phys_id = hard_smp_processor_id(); |
388 | itc_master = time_keeper_id; | ||
339 | 389 | ||
340 | if (cpu_online(cpuid)) { | 390 | if (cpu_online(cpuid)) { |
341 | printk(KERN_ERR "huh, phys CPU#0x%x, CPU#0x%x already present??\n", | 391 | printk(KERN_ERR "huh, phys CPU#0x%x, CPU#0x%x already present??\n", |
@@ -343,6 +393,8 @@ smp_callin (void) | |||
343 | BUG(); | 393 | BUG(); |
344 | } | 394 | } |
345 | 395 | ||
396 | fix_b0_for_bsp(); | ||
397 | |||
346 | lock_ipi_calllock(); | 398 | lock_ipi_calllock(); |
347 | cpu_set(cpuid, cpu_online_map); | 399 | cpu_set(cpuid, cpu_online_map); |
348 | unlock_ipi_calllock(); | 400 | unlock_ipi_calllock(); |
@@ -365,8 +417,8 @@ smp_callin (void) | |||
365 | * calls spin_unlock_bh(), which calls spin_unlock_bh(), which calls | 417 | * calls spin_unlock_bh(), which calls spin_unlock_bh(), which calls |
366 | * local_bh_enable(), which bugs out if irqs are not enabled... | 418 | * local_bh_enable(), which bugs out if irqs are not enabled... |
367 | */ | 419 | */ |
368 | Dprintk("Going to syncup ITC with BP.\n"); | 420 | Dprintk("Going to syncup ITC with ITC Master.\n"); |
369 | ia64_sync_itc(0); | 421 | ia64_sync_itc(itc_master); |
370 | } | 422 | } |
371 | 423 | ||
372 | /* | 424 | /* |
@@ -506,9 +558,6 @@ smp_build_cpu_map (void) | |||
506 | 558 | ||
507 | for (cpu = 0; cpu < NR_CPUS; cpu++) { | 559 | for (cpu = 0; cpu < NR_CPUS; cpu++) { |
508 | ia64_cpu_to_sapicid[cpu] = -1; | 560 | ia64_cpu_to_sapicid[cpu] = -1; |
509 | #ifdef CONFIG_HOTPLUG_CPU | ||
510 | cpu_set(cpu, cpu_possible_map); | ||
511 | #endif | ||
512 | } | 561 | } |
513 | 562 | ||
514 | ia64_cpu_to_sapicid[0] = boot_cpu_id; | 563 | ia64_cpu_to_sapicid[0] = boot_cpu_id; |
@@ -638,6 +687,47 @@ remove_siblinginfo(int cpu) | |||
638 | } | 687 | } |
639 | 688 | ||
640 | extern void fixup_irqs(void); | 689 | extern void fixup_irqs(void); |
690 | |||
691 | int migrate_platform_irqs(unsigned int cpu) | ||
692 | { | ||
693 | int new_cpei_cpu; | ||
694 | irq_desc_t *desc = NULL; | ||
695 | cpumask_t mask; | ||
696 | int retval = 0; | ||
697 | |||
698 | /* | ||
699 | * dont permit CPEI target to removed. | ||
700 | */ | ||
701 | if (cpe_vector > 0 && is_cpu_cpei_target(cpu)) { | ||
702 | printk ("CPU (%d) is CPEI Target\n", cpu); | ||
703 | if (can_cpei_retarget()) { | ||
704 | /* | ||
705 | * Now re-target the CPEI to a different processor | ||
706 | */ | ||
707 | new_cpei_cpu = any_online_cpu(cpu_online_map); | ||
708 | mask = cpumask_of_cpu(new_cpei_cpu); | ||
709 | set_cpei_target_cpu(new_cpei_cpu); | ||
710 | desc = irq_descp(ia64_cpe_irq); | ||
711 | /* | ||
712 | * Switch for now, immediatly, we need to do fake intr | ||
713 | * as other interrupts, but need to study CPEI behaviour with | ||
714 | * polling before making changes. | ||
715 | */ | ||
716 | if (desc) { | ||
717 | desc->handler->disable(ia64_cpe_irq); | ||
718 | desc->handler->set_affinity(ia64_cpe_irq, mask); | ||
719 | desc->handler->enable(ia64_cpe_irq); | ||
720 | printk ("Re-targetting CPEI to cpu %d\n", new_cpei_cpu); | ||
721 | } | ||
722 | } | ||
723 | if (!desc) { | ||
724 | printk ("Unable to retarget CPEI, offline cpu [%d] failed\n", cpu); | ||
725 | retval = -EBUSY; | ||
726 | } | ||
727 | } | ||
728 | return retval; | ||
729 | } | ||
730 | |||
641 | /* must be called with cpucontrol mutex held */ | 731 | /* must be called with cpucontrol mutex held */ |
642 | int __cpu_disable(void) | 732 | int __cpu_disable(void) |
643 | { | 733 | { |
@@ -646,8 +736,17 @@ int __cpu_disable(void) | |||
646 | /* | 736 | /* |
647 | * dont permit boot processor for now | 737 | * dont permit boot processor for now |
648 | */ | 738 | */ |
649 | if (cpu == 0) | 739 | if (cpu == 0 && !bsp_remove_ok) { |
650 | return -EBUSY; | 740 | printk ("Your platform does not support removal of BSP\n"); |
741 | return (-EBUSY); | ||
742 | } | ||
743 | |||
744 | cpu_clear(cpu, cpu_online_map); | ||
745 | |||
746 | if (migrate_platform_irqs(cpu)) { | ||
747 | cpu_set(cpu, cpu_online_map); | ||
748 | return (-EBUSY); | ||
749 | } | ||
651 | 750 | ||
652 | remove_siblinginfo(cpu); | 751 | remove_siblinginfo(cpu); |
653 | cpu_clear(cpu, cpu_online_map); | 752 | cpu_clear(cpu, cpu_online_map); |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 028a2b95936c..ac167436e936 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -32,7 +32,7 @@ | |||
32 | 32 | ||
33 | extern unsigned long wall_jiffies; | 33 | extern unsigned long wall_jiffies; |
34 | 34 | ||
35 | #define TIME_KEEPER_ID 0 /* smp_processor_id() of time-keeper */ | 35 | volatile int time_keeper_id = 0; /* smp_processor_id() of time-keeper */ |
36 | 36 | ||
37 | #ifdef CONFIG_IA64_DEBUG_IRQ | 37 | #ifdef CONFIG_IA64_DEBUG_IRQ |
38 | 38 | ||
@@ -71,7 +71,7 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) | |||
71 | 71 | ||
72 | new_itm += local_cpu_data->itm_delta; | 72 | new_itm += local_cpu_data->itm_delta; |
73 | 73 | ||
74 | if (smp_processor_id() == TIME_KEEPER_ID) { | 74 | if (smp_processor_id() == time_keeper_id) { |
75 | /* | 75 | /* |
76 | * Here we are in the timer irq handler. We have irqs locally | 76 | * Here we are in the timer irq handler. We have irqs locally |
77 | * disabled, but we don't know if the timer_bh is running on | 77 | * disabled, but we don't know if the timer_bh is running on |
@@ -236,6 +236,11 @@ static struct irqaction timer_irqaction = { | |||
236 | .name = "timer" | 236 | .name = "timer" |
237 | }; | 237 | }; |
238 | 238 | ||
239 | void __devinit ia64_disable_timer(void) | ||
240 | { | ||
241 | ia64_set_itv(1 << 16); | ||
242 | } | ||
243 | |||
239 | void __init | 244 | void __init |
240 | time_init (void) | 245 | time_init (void) |
241 | { | 246 | { |
@@ -250,31 +255,53 @@ time_init (void) | |||
250 | set_normalized_timespec(&wall_to_monotonic, -xtime.tv_sec, -xtime.tv_nsec); | 255 | set_normalized_timespec(&wall_to_monotonic, -xtime.tv_sec, -xtime.tv_nsec); |
251 | } | 256 | } |
252 | 257 | ||
253 | #define SMALLUSECS 100 | 258 | /* |
259 | * Generic udelay assumes that if preemption is allowed and the thread | ||
260 | * migrates to another CPU, that the ITC values are synchronized across | ||
261 | * all CPUs. | ||
262 | */ | ||
263 | static void | ||
264 | ia64_itc_udelay (unsigned long usecs) | ||
265 | { | ||
266 | unsigned long start = ia64_get_itc(); | ||
267 | unsigned long end = start + usecs*local_cpu_data->cyc_per_usec; | ||
268 | |||
269 | while (time_before(ia64_get_itc(), end)) | ||
270 | cpu_relax(); | ||
271 | } | ||
272 | |||
273 | void (*ia64_udelay)(unsigned long usecs) = &ia64_itc_udelay; | ||
254 | 274 | ||
255 | void | 275 | void |
256 | udelay (unsigned long usecs) | 276 | udelay (unsigned long usecs) |
257 | { | 277 | { |
258 | unsigned long start; | 278 | (*ia64_udelay)(usecs); |
259 | unsigned long cycles; | 279 | } |
260 | unsigned long smallusecs; | 280 | EXPORT_SYMBOL(udelay); |
261 | 281 | ||
262 | /* | 282 | static unsigned long long ia64_itc_printk_clock(void) |
263 | * Execute the non-preemptible delay loop (because the ITC might | 283 | { |
264 | * not be synchronized between CPUS) in relatively short time | 284 | if (ia64_get_kr(IA64_KR_PER_CPU_DATA)) |
265 | * chunks, allowing preemption between the chunks. | 285 | return sched_clock(); |
266 | */ | 286 | return 0; |
267 | while (usecs > 0) { | 287 | } |
268 | smallusecs = (usecs > SMALLUSECS) ? SMALLUSECS : usecs; | 288 | |
269 | preempt_disable(); | 289 | static unsigned long long ia64_default_printk_clock(void) |
270 | cycles = smallusecs*local_cpu_data->cyc_per_usec; | 290 | { |
271 | start = ia64_get_itc(); | 291 | return (unsigned long long)(jiffies_64 - INITIAL_JIFFIES) * |
292 | (1000000000/HZ); | ||
293 | } | ||
272 | 294 | ||
273 | while (ia64_get_itc() - start < cycles) | 295 | unsigned long long (*ia64_printk_clock)(void) = &ia64_default_printk_clock; |
274 | cpu_relax(); | ||
275 | 296 | ||
276 | preempt_enable(); | 297 | unsigned long long printk_clock(void) |
277 | usecs -= smallusecs; | 298 | { |
278 | } | 299 | return ia64_printk_clock(); |
300 | } | ||
301 | |||
302 | void __init | ||
303 | ia64_setup_printk_clock(void) | ||
304 | { | ||
305 | if (!(sal_platform_features & IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT)) | ||
306 | ia64_printk_clock = ia64_itc_printk_clock; | ||
279 | } | 307 | } |
280 | EXPORT_SYMBOL(udelay); | ||
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c index 6e5eea19fa67..3b6fd798c4d6 100644 --- a/arch/ia64/kernel/topology.c +++ b/arch/ia64/kernel/topology.c | |||
@@ -36,7 +36,7 @@ int arch_register_cpu(int num) | |||
36 | parent = &sysfs_nodes[cpu_to_node(num)]; | 36 | parent = &sysfs_nodes[cpu_to_node(num)]; |
37 | #endif /* CONFIG_NUMA */ | 37 | #endif /* CONFIG_NUMA */ |
38 | 38 | ||
39 | #ifdef CONFIG_ACPI | 39 | #if defined (CONFIG_ACPI) && defined (CONFIG_HOTPLUG_CPU) |
40 | /* | 40 | /* |
41 | * If CPEI cannot be re-targetted, and this is | 41 | * If CPEI cannot be re-targetted, and this is |
42 | * CPEI target, then dont create the control file | 42 | * CPEI target, then dont create the control file |
diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c index 55391901b013..dabd6c32641e 100644 --- a/arch/ia64/kernel/traps.c +++ b/arch/ia64/kernel/traps.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/module.h> /* for EXPORT_SYMBOL */ | 16 | #include <linux/module.h> /* for EXPORT_SYMBOL */ |
17 | #include <linux/hardirq.h> | 17 | #include <linux/hardirq.h> |
18 | #include <linux/kprobes.h> | 18 | #include <linux/kprobes.h> |
19 | #include <linux/delay.h> /* for ssleep() */ | ||
19 | 20 | ||
20 | #include <asm/fpswa.h> | 21 | #include <asm/fpswa.h> |
21 | #include <asm/ia32.h> | 22 | #include <asm/ia32.h> |
@@ -116,6 +117,13 @@ die (const char *str, struct pt_regs *regs, long err) | |||
116 | bust_spinlocks(0); | 117 | bust_spinlocks(0); |
117 | die.lock_owner = -1; | 118 | die.lock_owner = -1; |
118 | spin_unlock_irq(&die.lock); | 119 | spin_unlock_irq(&die.lock); |
120 | |||
121 | if (panic_on_oops) { | ||
122 | printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n"); | ||
123 | ssleep(5); | ||
124 | panic("Fatal exception"); | ||
125 | } | ||
126 | |||
119 | do_exit(SIGSEGV); | 127 | do_exit(SIGSEGV); |
120 | } | 128 | } |
121 | 129 | ||
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c index f9e0ae936d1a..1e357550c776 100644 --- a/arch/ia64/kernel/unaligned.c +++ b/arch/ia64/kernel/unaligned.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
25 | #include <asm/unaligned.h> | 25 | #include <asm/unaligned.h> |
26 | 26 | ||
27 | extern void die_if_kernel(char *str, struct pt_regs *regs, long err) __attribute__ ((noreturn)); | 27 | extern void die_if_kernel(char *str, struct pt_regs *regs, long err); |
28 | 28 | ||
29 | #undef DEBUG_UNALIGNED_TRAP | 29 | #undef DEBUG_UNALIGNED_TRAP |
30 | 30 | ||
@@ -53,6 +53,15 @@ dump (const char *str, void *vp, size_t len) | |||
53 | #define SIGN_EXT9 0xffffffffffffff00ul | 53 | #define SIGN_EXT9 0xffffffffffffff00ul |
54 | 54 | ||
55 | /* | 55 | /* |
56 | * sysctl settable hook which tells the kernel whether to honor the | ||
57 | * IA64_THREAD_UAC_NOPRINT prctl. Because this is user settable, we want | ||
58 | * to allow the super user to enable/disable this for security reasons | ||
59 | * (i.e. don't allow attacker to fill up logs with unaligned accesses). | ||
60 | */ | ||
61 | int no_unaligned_warning; | ||
62 | static int noprint_warning; | ||
63 | |||
64 | /* | ||
56 | * For M-unit: | 65 | * For M-unit: |
57 | * | 66 | * |
58 | * opcode | m | x6 | | 67 | * opcode | m | x6 | |
@@ -1324,8 +1333,9 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs) | |||
1324 | if ((current->thread.flags & IA64_THREAD_UAC_SIGBUS) != 0) | 1333 | if ((current->thread.flags & IA64_THREAD_UAC_SIGBUS) != 0) |
1325 | goto force_sigbus; | 1334 | goto force_sigbus; |
1326 | 1335 | ||
1327 | if (!(current->thread.flags & IA64_THREAD_UAC_NOPRINT) | 1336 | if (!no_unaligned_warning && |
1328 | && within_logging_rate_limit()) | 1337 | !(current->thread.flags & IA64_THREAD_UAC_NOPRINT) && |
1338 | within_logging_rate_limit()) | ||
1329 | { | 1339 | { |
1330 | char buf[200]; /* comm[] is at most 16 bytes... */ | 1340 | char buf[200]; /* comm[] is at most 16 bytes... */ |
1331 | size_t len; | 1341 | size_t len; |
@@ -1340,7 +1350,22 @@ ia64_handle_unaligned (unsigned long ifa, struct pt_regs *regs) | |||
1340 | if (user_mode(regs)) | 1350 | if (user_mode(regs)) |
1341 | tty_write_message(current->signal->tty, buf); | 1351 | tty_write_message(current->signal->tty, buf); |
1342 | buf[len-1] = '\0'; /* drop '\r' */ | 1352 | buf[len-1] = '\0'; /* drop '\r' */ |
1343 | printk(KERN_WARNING "%s", buf); /* watch for command names containing %s */ | 1353 | /* watch for command names containing %s */ |
1354 | printk(KERN_WARNING "%s", buf); | ||
1355 | } else { | ||
1356 | if (no_unaligned_warning && !noprint_warning) { | ||
1357 | noprint_warning = 1; | ||
1358 | printk(KERN_WARNING "%s(%d) encountered an " | ||
1359 | "unaligned exception which required\n" | ||
1360 | "kernel assistance, which degrades " | ||
1361 | "the performance of the application.\n" | ||
1362 | "Unaligned exception warnings have " | ||
1363 | "been disabled by the system " | ||
1364 | "administrator\n" | ||
1365 | "echo 0 > /proc/sys/kernel/ignore-" | ||
1366 | "unaligned-usertrap to re-enable\n", | ||
1367 | current->comm, current->pid); | ||
1368 | } | ||
1344 | } | 1369 | } |
1345 | } else { | 1370 | } else { |
1346 | if (within_logging_rate_limit()) | 1371 | if (within_logging_rate_limit()) |
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index acaaec4e4681..9855ba318094 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c | |||
@@ -181,13 +181,15 @@ per_cpu_init (void) | |||
181 | { | 181 | { |
182 | void *cpu_data; | 182 | void *cpu_data; |
183 | int cpu; | 183 | int cpu; |
184 | static int first_time=1; | ||
184 | 185 | ||
185 | /* | 186 | /* |
186 | * get_free_pages() cannot be used before cpu_init() done. BSP | 187 | * get_free_pages() cannot be used before cpu_init() done. BSP |
187 | * allocates "NR_CPUS" pages for all CPUs to avoid that AP calls | 188 | * allocates "NR_CPUS" pages for all CPUs to avoid that AP calls |
188 | * get_zeroed_page(). | 189 | * get_zeroed_page(). |
189 | */ | 190 | */ |
190 | if (smp_processor_id() == 0) { | 191 | if (first_time) { |
192 | first_time=0; | ||
191 | cpu_data = __alloc_bootmem(PERCPU_PAGE_SIZE * NR_CPUS, | 193 | cpu_data = __alloc_bootmem(PERCPU_PAGE_SIZE * NR_CPUS, |
192 | PERCPU_PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); | 194 | PERCPU_PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); |
193 | for (cpu = 0; cpu < NR_CPUS; cpu++) { | 195 | for (cpu = 0; cpu < NR_CPUS; cpu++) { |
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index c87d6d1d5813..573d5cc63e2b 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -528,12 +528,17 @@ void __init find_memory(void) | |||
528 | void *per_cpu_init(void) | 528 | void *per_cpu_init(void) |
529 | { | 529 | { |
530 | int cpu; | 530 | int cpu; |
531 | static int first_time = 1; | ||
532 | |||
531 | 533 | ||
532 | if (smp_processor_id() != 0) | 534 | if (smp_processor_id() != 0) |
533 | return __per_cpu_start + __per_cpu_offset[smp_processor_id()]; | 535 | return __per_cpu_start + __per_cpu_offset[smp_processor_id()]; |
534 | 536 | ||
535 | for (cpu = 0; cpu < NR_CPUS; cpu++) | 537 | if (first_time) { |
536 | per_cpu(local_per_cpu_offset, cpu) = __per_cpu_offset[cpu]; | 538 | first_time = 0; |
539 | for (cpu = 0; cpu < NR_CPUS; cpu++) | ||
540 | per_cpu(local_per_cpu_offset, cpu) = __per_cpu_offset[cpu]; | ||
541 | } | ||
537 | 542 | ||
538 | return __per_cpu_start + __per_cpu_offset[smp_processor_id()]; | 543 | return __per_cpu_start + __per_cpu_offset[smp_processor_id()]; |
539 | } | 544 | } |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 0b30ca006286..9ba32b2d96d0 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -579,7 +579,7 @@ pcibios_align_resource (void *data, struct resource *res, | |||
579 | char * __init | 579 | char * __init |
580 | pcibios_setup (char *str) | 580 | pcibios_setup (char *str) |
581 | { | 581 | { |
582 | return NULL; | 582 | return str; |
583 | } | 583 | } |
584 | 584 | ||
585 | int | 585 | int |
diff --git a/arch/ia64/sn/kernel/Makefile b/arch/ia64/sn/kernel/Makefile index 3e9b4eea7418..ab9c48c88012 100644 --- a/arch/ia64/sn/kernel/Makefile +++ b/arch/ia64/sn/kernel/Makefile | |||
@@ -10,7 +10,8 @@ | |||
10 | CPPFLAGS += -I$(srctree)/arch/ia64/sn/include | 10 | CPPFLAGS += -I$(srctree)/arch/ia64/sn/include |
11 | 11 | ||
12 | obj-y += setup.o bte.o bte_error.o irq.o mca.o idle.o \ | 12 | obj-y += setup.o bte.o bte_error.o irq.o mca.o idle.o \ |
13 | huberror.o io_init.o iomv.o klconflib.o sn2/ | 13 | huberror.o io_init.o iomv.o klconflib.o pio_phys.o \ |
14 | sn2/ | ||
14 | obj-$(CONFIG_IA64_GENERIC) += machvec.o | 15 | obj-$(CONFIG_IA64_GENERIC) += machvec.o |
15 | obj-$(CONFIG_SGI_TIOCX) += tiocx.o | 16 | obj-$(CONFIG_SGI_TIOCX) += tiocx.o |
16 | obj-$(CONFIG_IA64_SGI_SN_XP) += xp.o | 17 | obj-$(CONFIG_IA64_SGI_SN_XP) += xp.o |
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c index d7e4d79e16a8..dfb3f2902379 100644 --- a/arch/ia64/sn/kernel/io_init.c +++ b/arch/ia64/sn/kernel/io_init.c | |||
@@ -23,6 +23,10 @@ | |||
23 | #include "xtalk/hubdev.h" | 23 | #include "xtalk/hubdev.h" |
24 | #include "xtalk/xwidgetdev.h" | 24 | #include "xtalk/xwidgetdev.h" |
25 | 25 | ||
26 | |||
27 | extern void sn_init_cpei_timer(void); | ||
28 | extern void register_sn_procfs(void); | ||
29 | |||
26 | static struct list_head sn_sysdata_list; | 30 | static struct list_head sn_sysdata_list; |
27 | 31 | ||
28 | /* sysdata list struct */ | 32 | /* sysdata list struct */ |
@@ -40,12 +44,12 @@ struct brick { | |||
40 | struct slab_info slab_info[MAX_SLABS + 1]; | 44 | struct slab_info slab_info[MAX_SLABS + 1]; |
41 | }; | 45 | }; |
42 | 46 | ||
43 | int sn_ioif_inited = 0; /* SN I/O infrastructure initialized? */ | 47 | int sn_ioif_inited; /* SN I/O infrastructure initialized? */ |
44 | 48 | ||
45 | struct sn_pcibus_provider *sn_pci_provider[PCIIO_ASIC_MAX_TYPES]; /* indexed by asic type */ | 49 | struct sn_pcibus_provider *sn_pci_provider[PCIIO_ASIC_MAX_TYPES]; /* indexed by asic type */ |
46 | 50 | ||
47 | static int max_segment_number = 0; /* Default highest segment number */ | 51 | static int max_segment_number; /* Default highest segment number */ |
48 | static int max_pcibus_number = 255; /* Default highest pci bus number */ | 52 | static int max_pcibus_number = 255; /* Default highest pci bus number */ |
49 | 53 | ||
50 | /* | 54 | /* |
51 | * Hooks and struct for unsupported pci providers | 55 | * Hooks and struct for unsupported pci providers |
@@ -84,7 +88,6 @@ static inline u64 | |||
84 | sal_get_device_dmaflush_list(u64 nasid, u64 widget_num, u64 device_num, | 88 | sal_get_device_dmaflush_list(u64 nasid, u64 widget_num, u64 device_num, |
85 | u64 address) | 89 | u64 address) |
86 | { | 90 | { |
87 | |||
88 | struct ia64_sal_retval ret_stuff; | 91 | struct ia64_sal_retval ret_stuff; |
89 | ret_stuff.status = 0; | 92 | ret_stuff.status = 0; |
90 | ret_stuff.v0 = 0; | 93 | ret_stuff.v0 = 0; |
@@ -94,7 +97,6 @@ sal_get_device_dmaflush_list(u64 nasid, u64 widget_num, u64 device_num, | |||
94 | (u64) nasid, (u64) widget_num, | 97 | (u64) nasid, (u64) widget_num, |
95 | (u64) device_num, (u64) address, 0, 0, 0); | 98 | (u64) device_num, (u64) address, 0, 0, 0); |
96 | return ret_stuff.status; | 99 | return ret_stuff.status; |
97 | |||
98 | } | 100 | } |
99 | 101 | ||
100 | /* | 102 | /* |
@@ -102,7 +104,6 @@ sal_get_device_dmaflush_list(u64 nasid, u64 widget_num, u64 device_num, | |||
102 | */ | 104 | */ |
103 | static inline u64 sal_get_hubdev_info(u64 handle, u64 address) | 105 | static inline u64 sal_get_hubdev_info(u64 handle, u64 address) |
104 | { | 106 | { |
105 | |||
106 | struct ia64_sal_retval ret_stuff; | 107 | struct ia64_sal_retval ret_stuff; |
107 | ret_stuff.status = 0; | 108 | ret_stuff.status = 0; |
108 | ret_stuff.v0 = 0; | 109 | ret_stuff.v0 = 0; |
@@ -118,7 +119,6 @@ static inline u64 sal_get_hubdev_info(u64 handle, u64 address) | |||
118 | */ | 119 | */ |
119 | static inline u64 sal_get_pcibus_info(u64 segment, u64 busnum, u64 address) | 120 | static inline u64 sal_get_pcibus_info(u64 segment, u64 busnum, u64 address) |
120 | { | 121 | { |
121 | |||
122 | struct ia64_sal_retval ret_stuff; | 122 | struct ia64_sal_retval ret_stuff; |
123 | ret_stuff.status = 0; | 123 | ret_stuff.status = 0; |
124 | ret_stuff.v0 = 0; | 124 | ret_stuff.v0 = 0; |
@@ -215,7 +215,7 @@ static void __init sn_fixup_ionodes(void) | |||
215 | struct hubdev_info *hubdev; | 215 | struct hubdev_info *hubdev; |
216 | u64 status; | 216 | u64 status; |
217 | u64 nasid; | 217 | u64 nasid; |
218 | int i, widget, device; | 218 | int i, widget, device, size; |
219 | 219 | ||
220 | /* | 220 | /* |
221 | * Get SGI Specific HUB chipset information. | 221 | * Get SGI Specific HUB chipset information. |
@@ -251,48 +251,37 @@ static void __init sn_fixup_ionodes(void) | |||
251 | if (!hubdev->hdi_flush_nasid_list.widget_p) | 251 | if (!hubdev->hdi_flush_nasid_list.widget_p) |
252 | continue; | 252 | continue; |
253 | 253 | ||
254 | size = (HUB_WIDGET_ID_MAX + 1) * | ||
255 | sizeof(struct sn_flush_device_kernel *); | ||
254 | hubdev->hdi_flush_nasid_list.widget_p = | 256 | hubdev->hdi_flush_nasid_list.widget_p = |
255 | kmalloc((HUB_WIDGET_ID_MAX + 1) * | 257 | kzalloc(size, GFP_KERNEL); |
256 | sizeof(struct sn_flush_device_kernel *), | 258 | if (!hubdev->hdi_flush_nasid_list.widget_p) |
257 | GFP_KERNEL); | 259 | BUG(); |
258 | memset(hubdev->hdi_flush_nasid_list.widget_p, 0x0, | ||
259 | (HUB_WIDGET_ID_MAX + 1) * | ||
260 | sizeof(struct sn_flush_device_kernel *)); | ||
261 | 260 | ||
262 | for (widget = 0; widget <= HUB_WIDGET_ID_MAX; widget++) { | 261 | for (widget = 0; widget <= HUB_WIDGET_ID_MAX; widget++) { |
263 | sn_flush_device_kernel = kmalloc(DEV_PER_WIDGET * | 262 | size = DEV_PER_WIDGET * |
264 | sizeof(struct | 263 | sizeof(struct sn_flush_device_kernel); |
265 | sn_flush_device_kernel), | 264 | sn_flush_device_kernel = kzalloc(size, GFP_KERNEL); |
266 | GFP_KERNEL); | ||
267 | if (!sn_flush_device_kernel) | 265 | if (!sn_flush_device_kernel) |
268 | BUG(); | 266 | BUG(); |
269 | memset(sn_flush_device_kernel, 0x0, | ||
270 | DEV_PER_WIDGET * | ||
271 | sizeof(struct sn_flush_device_kernel)); | ||
272 | 267 | ||
273 | dev_entry = sn_flush_device_kernel; | 268 | dev_entry = sn_flush_device_kernel; |
274 | for (device = 0; device < DEV_PER_WIDGET; | 269 | for (device = 0; device < DEV_PER_WIDGET; |
275 | device++,dev_entry++) { | 270 | device++,dev_entry++) { |
276 | dev_entry->common = kmalloc(sizeof(struct | 271 | size = sizeof(struct sn_flush_device_common); |
277 | sn_flush_device_common), | 272 | dev_entry->common = kzalloc(size, GFP_KERNEL); |
278 | GFP_KERNEL); | ||
279 | if (!dev_entry->common) | 273 | if (!dev_entry->common) |
280 | BUG(); | 274 | BUG(); |
281 | memset(dev_entry->common, 0x0, sizeof(struct | ||
282 | sn_flush_device_common)); | ||
283 | 275 | ||
284 | if (sn_prom_feature_available( | 276 | if (sn_prom_feature_available( |
285 | PRF_DEVICE_FLUSH_LIST)) | 277 | PRF_DEVICE_FLUSH_LIST)) |
286 | status = sal_get_device_dmaflush_list( | 278 | status = sal_get_device_dmaflush_list( |
287 | nasid, | 279 | nasid, widget, device, |
288 | widget, | 280 | (u64)(dev_entry->common)); |
289 | device, | ||
290 | (u64)(dev_entry->common)); | ||
291 | else | 281 | else |
292 | status = sn_device_fixup_war(nasid, | 282 | status = sn_device_fixup_war(nasid, |
293 | widget, | 283 | widget, device, |
294 | device, | 284 | dev_entry->common); |
295 | dev_entry->common); | ||
296 | if (status != SALRET_OK) | 285 | if (status != SALRET_OK) |
297 | panic("SAL call failed: %s\n", | 286 | panic("SAL call failed: %s\n", |
298 | ia64_sal_strerror(status)); | 287 | ia64_sal_strerror(status)); |
@@ -383,13 +372,12 @@ void sn_pci_fixup_slot(struct pci_dev *dev) | |||
383 | 372 | ||
384 | pci_dev_get(dev); /* for the sysdata pointer */ | 373 | pci_dev_get(dev); /* for the sysdata pointer */ |
385 | pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); | 374 | pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL); |
386 | if (pcidev_info <= 0) | 375 | if (!pcidev_info) |
387 | BUG(); /* Cannot afford to run out of memory */ | 376 | BUG(); /* Cannot afford to run out of memory */ |
388 | 377 | ||
389 | sn_irq_info = kmalloc(sizeof(struct sn_irq_info), GFP_KERNEL); | 378 | sn_irq_info = kzalloc(sizeof(struct sn_irq_info), GFP_KERNEL); |
390 | if (sn_irq_info <= 0) | 379 | if (!sn_irq_info) |
391 | BUG(); /* Cannot afford to run out of memory */ | 380 | BUG(); /* Cannot afford to run out of memory */ |
392 | memset(sn_irq_info, 0, sizeof(struct sn_irq_info)); | ||
393 | 381 | ||
394 | /* Call to retrieve pci device information needed by kernel. */ | 382 | /* Call to retrieve pci device information needed by kernel. */ |
395 | status = sal_get_pcidev_info((u64) segment, (u64) dev->bus->number, | 383 | status = sal_get_pcidev_info((u64) segment, (u64) dev->bus->number, |
@@ -482,13 +470,13 @@ void sn_pci_fixup_slot(struct pci_dev *dev) | |||
482 | */ | 470 | */ |
483 | void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus) | 471 | void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus) |
484 | { | 472 | { |
485 | int status = 0; | 473 | int status; |
486 | int nasid, cnode; | 474 | int nasid, cnode; |
487 | struct pci_controller *controller; | 475 | struct pci_controller *controller; |
488 | struct sn_pci_controller *sn_controller; | 476 | struct sn_pci_controller *sn_controller; |
489 | struct pcibus_bussoft *prom_bussoft_ptr; | 477 | struct pcibus_bussoft *prom_bussoft_ptr; |
490 | struct hubdev_info *hubdev_info; | 478 | struct hubdev_info *hubdev_info; |
491 | void *provider_soft = NULL; | 479 | void *provider_soft; |
492 | struct sn_pcibus_provider *provider; | 480 | struct sn_pcibus_provider *provider; |
493 | 481 | ||
494 | status = sal_get_pcibus_info((u64) segment, (u64) busnum, | 482 | status = sal_get_pcibus_info((u64) segment, (u64) busnum, |
@@ -535,6 +523,8 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus) | |||
535 | bus->sysdata = controller; | 523 | bus->sysdata = controller; |
536 | if (provider->bus_fixup) | 524 | if (provider->bus_fixup) |
537 | provider_soft = (*provider->bus_fixup) (prom_bussoft_ptr, controller); | 525 | provider_soft = (*provider->bus_fixup) (prom_bussoft_ptr, controller); |
526 | else | ||
527 | provider_soft = NULL; | ||
538 | 528 | ||
539 | if (provider_soft == NULL) { | 529 | if (provider_soft == NULL) { |
540 | /* fixup failed or not applicable */ | 530 | /* fixup failed or not applicable */ |
@@ -617,15 +607,15 @@ void sn_bus_store_sysdata(struct pci_dev *dev) | |||
617 | void sn_bus_free_sysdata(void) | 607 | void sn_bus_free_sysdata(void) |
618 | { | 608 | { |
619 | struct sysdata_el *element; | 609 | struct sysdata_el *element; |
620 | struct list_head *list; | 610 | struct list_head *list, *safe; |
621 | 611 | ||
622 | sn_sysdata_free_start: | 612 | list_for_each_safe(list, safe, &sn_sysdata_list) { |
623 | list_for_each(list, &sn_sysdata_list) { | ||
624 | element = list_entry(list, struct sysdata_el, entry); | 613 | element = list_entry(list, struct sysdata_el, entry); |
625 | list_del(&element->entry); | 614 | list_del(&element->entry); |
615 | list_del(&(((struct pcidev_info *) | ||
616 | (element->sysdata))->pdi_list)); | ||
626 | kfree(element->sysdata); | 617 | kfree(element->sysdata); |
627 | kfree(element); | 618 | kfree(element); |
628 | goto sn_sysdata_free_start; | ||
629 | } | 619 | } |
630 | return; | 620 | return; |
631 | } | 621 | } |
@@ -638,13 +628,8 @@ sn_sysdata_free_start: | |||
638 | 628 | ||
639 | static int __init sn_pci_init(void) | 629 | static int __init sn_pci_init(void) |
640 | { | 630 | { |
641 | int i = 0; | 631 | int i, j; |
642 | int j = 0; | ||
643 | struct pci_dev *pci_dev = NULL; | 632 | struct pci_dev *pci_dev = NULL; |
644 | extern void sn_init_cpei_timer(void); | ||
645 | #ifdef CONFIG_PROC_FS | ||
646 | extern void register_sn_procfs(void); | ||
647 | #endif | ||
648 | 633 | ||
649 | if (!ia64_platform_is("sn2") || IS_RUNNING_ON_FAKE_PROM()) | 634 | if (!ia64_platform_is("sn2") || IS_RUNNING_ON_FAKE_PROM()) |
650 | return 0; | 635 | return 0; |
@@ -700,32 +685,29 @@ static int __init sn_pci_init(void) | |||
700 | */ | 685 | */ |
701 | void hubdev_init_node(nodepda_t * npda, cnodeid_t node) | 686 | void hubdev_init_node(nodepda_t * npda, cnodeid_t node) |
702 | { | 687 | { |
703 | |||
704 | struct hubdev_info *hubdev_info; | 688 | struct hubdev_info *hubdev_info; |
689 | int size; | ||
690 | pg_data_t *pg; | ||
691 | |||
692 | size = sizeof(struct hubdev_info); | ||
705 | 693 | ||
706 | if (node >= num_online_nodes()) /* Headless/memless IO nodes */ | 694 | if (node >= num_online_nodes()) /* Headless/memless IO nodes */ |
707 | hubdev_info = | 695 | pg = NODE_DATA(0); |
708 | (struct hubdev_info *)alloc_bootmem_node(NODE_DATA(0), | ||
709 | sizeof(struct | ||
710 | hubdev_info)); | ||
711 | else | 696 | else |
712 | hubdev_info = | 697 | pg = NODE_DATA(node); |
713 | (struct hubdev_info *)alloc_bootmem_node(NODE_DATA(node), | ||
714 | sizeof(struct | ||
715 | hubdev_info)); | ||
716 | npda->pdinfo = (void *)hubdev_info; | ||
717 | 698 | ||
699 | hubdev_info = (struct hubdev_info *)alloc_bootmem_node(pg, size); | ||
700 | |||
701 | npda->pdinfo = (void *)hubdev_info; | ||
718 | } | 702 | } |
719 | 703 | ||
720 | geoid_t | 704 | geoid_t |
721 | cnodeid_get_geoid(cnodeid_t cnode) | 705 | cnodeid_get_geoid(cnodeid_t cnode) |
722 | { | 706 | { |
723 | |||
724 | struct hubdev_info *hubdev; | 707 | struct hubdev_info *hubdev; |
725 | 708 | ||
726 | hubdev = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo); | 709 | hubdev = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo); |
727 | return hubdev->hdi_geoid; | 710 | return hubdev->hdi_geoid; |
728 | |||
729 | } | 711 | } |
730 | 712 | ||
731 | subsys_initcall(sn_pci_init); | 713 | subsys_initcall(sn_pci_init); |
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 74d87d903d5d..c373113d073a 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -299,7 +299,9 @@ void sn_irq_unfixup(struct pci_dev *pci_dev) | |||
299 | return; | 299 | return; |
300 | 300 | ||
301 | sn_irq_info = SN_PCIDEV_INFO(pci_dev)->pdi_sn_irq_info; | 301 | sn_irq_info = SN_PCIDEV_INFO(pci_dev)->pdi_sn_irq_info; |
302 | if (!sn_irq_info || !sn_irq_info->irq_irq) { | 302 | if (!sn_irq_info) |
303 | return; | ||
304 | if (!sn_irq_info->irq_irq) { | ||
303 | kfree(sn_irq_info); | 305 | kfree(sn_irq_info); |
304 | return; | 306 | return; |
305 | } | 307 | } |
diff --git a/arch/ia64/sn/kernel/mca.c b/arch/ia64/sn/kernel/mca.c index 9ab684d1bb55..3db62f24596c 100644 --- a/arch/ia64/sn/kernel/mca.c +++ b/arch/ia64/sn/kernel/mca.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. | 6 | * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
@@ -137,7 +137,8 @@ int sn_salinfo_platform_oemdata(const u8 *sect_header, u8 **oemdata, u64 *oemdat | |||
137 | 137 | ||
138 | static int __init sn_salinfo_init(void) | 138 | static int __init sn_salinfo_init(void) |
139 | { | 139 | { |
140 | salinfo_platform_oemdata = &sn_salinfo_platform_oemdata; | 140 | if (ia64_platform_is("sn2")) |
141 | salinfo_platform_oemdata = &sn_salinfo_platform_oemdata; | ||
141 | return 0; | 142 | return 0; |
142 | } | 143 | } |
143 | 144 | ||
diff --git a/arch/ia64/sn/kernel/pio_phys.S b/arch/ia64/sn/kernel/pio_phys.S new file mode 100644 index 000000000000..3c7d48d6ecb8 --- /dev/null +++ b/arch/ia64/sn/kernel/pio_phys.S | |||
@@ -0,0 +1,71 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved. | ||
7 | * | ||
8 | * This file contains macros used to access MMR registers via | ||
9 | * uncached physical addresses. | ||
10 | * pio_phys_read_mmr - read an MMR | ||
11 | * pio_phys_write_mmr - write an MMR | ||
12 | * pio_atomic_phys_write_mmrs - atomically write 1 or 2 MMRs with psr.ic=0 | ||
13 | * Second MMR will be skipped if address is NULL | ||
14 | * | ||
15 | * Addresses passed to these routines should be uncached physical addresses | ||
16 | * ie., 0x80000.... | ||
17 | */ | ||
18 | |||
19 | |||
20 | |||
21 | #include <asm/asmmacro.h> | ||
22 | #include <asm/page.h> | ||
23 | |||
24 | GLOBAL_ENTRY(pio_phys_read_mmr) | ||
25 | .prologue | ||
26 | .regstk 1,0,0,0 | ||
27 | .body | ||
28 | mov r2=psr | ||
29 | rsm psr.i | psr.dt | ||
30 | ;; | ||
31 | srlz.d | ||
32 | ld8.acq r8=[r32] | ||
33 | ;; | ||
34 | mov psr.l=r2;; | ||
35 | srlz.d | ||
36 | br.ret.sptk.many rp | ||
37 | END(pio_phys_read_mmr) | ||
38 | |||
39 | GLOBAL_ENTRY(pio_phys_write_mmr) | ||
40 | .prologue | ||
41 | .regstk 2,0,0,0 | ||
42 | .body | ||
43 | mov r2=psr | ||
44 | rsm psr.i | psr.dt | ||
45 | ;; | ||
46 | srlz.d | ||
47 | st8.rel [r32]=r33 | ||
48 | ;; | ||
49 | mov psr.l=r2;; | ||
50 | srlz.d | ||
51 | br.ret.sptk.many rp | ||
52 | END(pio_phys_write_mmr) | ||
53 | |||
54 | GLOBAL_ENTRY(pio_atomic_phys_write_mmrs) | ||
55 | .prologue | ||
56 | .regstk 4,0,0,0 | ||
57 | .body | ||
58 | mov r2=psr | ||
59 | cmp.ne p9,p0=r34,r0; | ||
60 | rsm psr.i | psr.dt | psr.ic | ||
61 | ;; | ||
62 | srlz.d | ||
63 | st8.rel [r32]=r33 | ||
64 | (p9) st8.rel [r34]=r35 | ||
65 | ;; | ||
66 | mov psr.l=r2;; | ||
67 | srlz.d | ||
68 | br.ret.sptk.many rp | ||
69 | END(pio_atomic_phys_write_mmrs) | ||
70 | |||
71 | |||
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index aac1ba32c5e5..8b6d5c844708 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 1999,2001-2005 Silicon Graphics, Inc. All rights reserved. | 6 | * Copyright (C) 1999,2001-2006 Silicon Graphics, Inc. All rights reserved. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | 9 | #include <linux/config.h> |
@@ -67,6 +67,7 @@ extern unsigned long last_time_offset; | |||
67 | extern void (*ia64_mark_idle) (int); | 67 | extern void (*ia64_mark_idle) (int); |
68 | extern void snidle(int); | 68 | extern void snidle(int); |
69 | extern unsigned char acpi_kbd_controller_present; | 69 | extern unsigned char acpi_kbd_controller_present; |
70 | extern unsigned long long (*ia64_printk_clock)(void); | ||
70 | 71 | ||
71 | unsigned long sn_rtc_cycles_per_second; | 72 | unsigned long sn_rtc_cycles_per_second; |
72 | EXPORT_SYMBOL(sn_rtc_cycles_per_second); | 73 | EXPORT_SYMBOL(sn_rtc_cycles_per_second); |
@@ -74,7 +75,7 @@ EXPORT_SYMBOL(sn_rtc_cycles_per_second); | |||
74 | DEFINE_PER_CPU(struct sn_hub_info_s, __sn_hub_info); | 75 | DEFINE_PER_CPU(struct sn_hub_info_s, __sn_hub_info); |
75 | EXPORT_PER_CPU_SYMBOL(__sn_hub_info); | 76 | EXPORT_PER_CPU_SYMBOL(__sn_hub_info); |
76 | 77 | ||
77 | DEFINE_PER_CPU(short, __sn_cnodeid_to_nasid[MAX_NUMNODES]); | 78 | DEFINE_PER_CPU(short, __sn_cnodeid_to_nasid[MAX_COMPACT_NODES]); |
78 | EXPORT_PER_CPU_SYMBOL(__sn_cnodeid_to_nasid); | 79 | EXPORT_PER_CPU_SYMBOL(__sn_cnodeid_to_nasid); |
79 | 80 | ||
80 | DEFINE_PER_CPU(struct nodepda_s *, __sn_nodepda); | 81 | DEFINE_PER_CPU(struct nodepda_s *, __sn_nodepda); |
@@ -316,6 +317,7 @@ struct pcdp_vga_device { | |||
316 | #define PCDP_PCI_TRANS_IOPORT 0x02 | 317 | #define PCDP_PCI_TRANS_IOPORT 0x02 |
317 | #define PCDP_PCI_TRANS_MMIO 0x01 | 318 | #define PCDP_PCI_TRANS_MMIO 0x01 |
318 | 319 | ||
320 | #if defined(CONFIG_VT) && defined(CONFIG_VGA_CONSOLE) | ||
319 | static void | 321 | static void |
320 | sn_scan_pcdp(void) | 322 | sn_scan_pcdp(void) |
321 | { | 323 | { |
@@ -357,6 +359,17 @@ sn_scan_pcdp(void) | |||
357 | break; /* once we find the primary, we're done */ | 359 | break; /* once we find the primary, we're done */ |
358 | } | 360 | } |
359 | } | 361 | } |
362 | #endif | ||
363 | |||
364 | static unsigned long sn2_rtc_initial; | ||
365 | |||
366 | static unsigned long long ia64_sn2_printk_clock(void) | ||
367 | { | ||
368 | unsigned long rtc_now = rtc_time(); | ||
369 | |||
370 | return (rtc_now - sn2_rtc_initial) * | ||
371 | (1000000000 / sn_rtc_cycles_per_second); | ||
372 | } | ||
360 | 373 | ||
361 | /** | 374 | /** |
362 | * sn_setup - SN platform setup routine | 375 | * sn_setup - SN platform setup routine |
@@ -372,6 +385,7 @@ void __init sn_setup(char **cmdline_p) | |||
372 | u32 version = sn_sal_rev(); | 385 | u32 version = sn_sal_rev(); |
373 | extern void sn_cpu_init(void); | 386 | extern void sn_cpu_init(void); |
374 | 387 | ||
388 | sn2_rtc_initial = rtc_time(); | ||
375 | ia64_sn_plat_set_error_handling_features(); // obsolete | 389 | ia64_sn_plat_set_error_handling_features(); // obsolete |
376 | ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV); | 390 | ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV); |
377 | ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES); | 391 | ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES); |
@@ -423,19 +437,6 @@ void __init sn_setup(char **cmdline_p) | |||
423 | */ | 437 | */ |
424 | build_cnode_tables(); | 438 | build_cnode_tables(); |
425 | 439 | ||
426 | /* | ||
427 | * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard | ||
428 | * support here so we don't have to listen to failed keyboard probe | ||
429 | * messages. | ||
430 | */ | ||
431 | if (version <= 0x0209 && acpi_kbd_controller_present) { | ||
432 | printk(KERN_INFO "Disabling legacy keyboard support as prom " | ||
433 | "is too old and doesn't provide FADT\n"); | ||
434 | acpi_kbd_controller_present = 0; | ||
435 | } | ||
436 | |||
437 | printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF); | ||
438 | |||
439 | status = | 440 | status = |
440 | ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec, | 441 | ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec, |
441 | &drift); | 442 | &drift); |
@@ -449,6 +450,21 @@ void __init sn_setup(char **cmdline_p) | |||
449 | 450 | ||
450 | platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR; | 451 | platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR; |
451 | 452 | ||
453 | ia64_printk_clock = ia64_sn2_printk_clock; | ||
454 | |||
455 | /* | ||
456 | * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard | ||
457 | * support here so we don't have to listen to failed keyboard probe | ||
458 | * messages. | ||
459 | */ | ||
460 | if (version <= 0x0209 && acpi_kbd_controller_present) { | ||
461 | printk(KERN_INFO "Disabling legacy keyboard support as prom " | ||
462 | "is too old and doesn't provide FADT\n"); | ||
463 | acpi_kbd_controller_present = 0; | ||
464 | } | ||
465 | |||
466 | printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF); | ||
467 | |||
452 | /* | 468 | /* |
453 | * we set the default root device to /dev/hda | 469 | * we set the default root device to /dev/hda |
454 | * to make simulation easy | 470 | * to make simulation easy |
@@ -482,6 +498,7 @@ void __init sn_setup(char **cmdline_p) | |||
482 | * for sn. | 498 | * for sn. |
483 | */ | 499 | */ |
484 | pm_power_off = ia64_sn_power_down; | 500 | pm_power_off = ia64_sn_power_down; |
501 | current->thread.flags |= IA64_THREAD_MIGRATION; | ||
485 | } | 502 | } |
486 | 503 | ||
487 | /** | 504 | /** |
@@ -644,7 +661,8 @@ void __init sn_cpu_init(void) | |||
644 | SH2_PIO_WRITE_STATUS_1, SH2_PIO_WRITE_STATUS_3}; | 661 | SH2_PIO_WRITE_STATUS_1, SH2_PIO_WRITE_STATUS_3}; |
645 | u64 *pio; | 662 | u64 *pio; |
646 | pio = is_shub1() ? pio1 : pio2; | 663 | pio = is_shub1() ? pio1 : pio2; |
647 | pda->pio_write_status_addr = (volatile unsigned long *) LOCAL_MMR_ADDR(pio[slice]); | 664 | pda->pio_write_status_addr = |
665 | (volatile unsigned long *)GLOBAL_MMR_ADDR(nasid, pio[slice]); | ||
648 | pda->pio_write_status_val = is_shub1() ? SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_MASK : 0; | 666 | pda->pio_write_status_val = is_shub1() ? SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_MASK : 0; |
649 | } | 667 | } |
650 | 668 | ||
diff --git a/arch/ia64/sn/kernel/sn2/prominfo_proc.c b/arch/ia64/sn/kernel/sn2/prominfo_proc.c index 81c63b2f8ae9..6ae276d5d50c 100644 --- a/arch/ia64/sn/kernel/sn2/prominfo_proc.c +++ b/arch/ia64/sn/kernel/sn2/prominfo_proc.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 1999,2001-2004 Silicon Graphics, Inc. All Rights Reserved. | 6 | * Copyright (C) 1999,2001-2004, 2006 Silicon Graphics, Inc. All Rights Reserved. |
7 | * | 7 | * |
8 | * Module to export the system's Firmware Interface Tables, including | 8 | * Module to export the system's Firmware Interface Tables, including |
9 | * PROM revision numbers and banners, in /proc | 9 | * PROM revision numbers and banners, in /proc |
@@ -190,7 +190,7 @@ static int | |||
190 | read_version_entry(char *page, char **start, off_t off, int count, int *eof, | 190 | read_version_entry(char *page, char **start, off_t off, int count, int *eof, |
191 | void *data) | 191 | void *data) |
192 | { | 192 | { |
193 | int len = 0; | 193 | int len; |
194 | 194 | ||
195 | /* data holds the NASID of the node */ | 195 | /* data holds the NASID of the node */ |
196 | len = dump_version(page, (unsigned long)data); | 196 | len = dump_version(page, (unsigned long)data); |
@@ -202,7 +202,7 @@ static int | |||
202 | read_fit_entry(char *page, char **start, off_t off, int count, int *eof, | 202 | read_fit_entry(char *page, char **start, off_t off, int count, int *eof, |
203 | void *data) | 203 | void *data) |
204 | { | 204 | { |
205 | int len = 0; | 205 | int len; |
206 | 206 | ||
207 | /* data holds the NASID of the node */ | 207 | /* data holds the NASID of the node */ |
208 | len = dump_fit(page, (unsigned long)data); | 208 | len = dump_fit(page, (unsigned long)data); |
@@ -229,13 +229,16 @@ int __init prominfo_init(void) | |||
229 | struct proc_dir_entry *p; | 229 | struct proc_dir_entry *p; |
230 | cnodeid_t cnodeid; | 230 | cnodeid_t cnodeid; |
231 | unsigned long nasid; | 231 | unsigned long nasid; |
232 | int size; | ||
232 | char name[NODE_NAME_LEN]; | 233 | char name[NODE_NAME_LEN]; |
233 | 234 | ||
234 | if (!ia64_platform_is("sn2")) | 235 | if (!ia64_platform_is("sn2")) |
235 | return 0; | 236 | return 0; |
236 | 237 | ||
237 | proc_entries = kmalloc(num_online_nodes() * sizeof(struct proc_dir_entry *), | 238 | size = num_online_nodes() * sizeof(struct proc_dir_entry *); |
238 | GFP_KERNEL); | 239 | proc_entries = kzalloc(size, GFP_KERNEL); |
240 | if (!proc_entries) | ||
241 | return -ENOMEM; | ||
239 | 242 | ||
240 | sgi_prominfo_entry = proc_mkdir("sgi_prominfo", NULL); | 243 | sgi_prominfo_entry = proc_mkdir("sgi_prominfo", NULL); |
241 | 244 | ||
@@ -244,14 +247,12 @@ int __init prominfo_init(void) | |||
244 | sprintf(name, "node%d", cnodeid); | 247 | sprintf(name, "node%d", cnodeid); |
245 | *entp = proc_mkdir(name, sgi_prominfo_entry); | 248 | *entp = proc_mkdir(name, sgi_prominfo_entry); |
246 | nasid = cnodeid_to_nasid(cnodeid); | 249 | nasid = cnodeid_to_nasid(cnodeid); |
247 | p = create_proc_read_entry( | 250 | p = create_proc_read_entry("fit", 0, *entp, read_fit_entry, |
248 | "fit", 0, *entp, read_fit_entry, | 251 | (void *)nasid); |
249 | (void *)nasid); | ||
250 | if (p) | 252 | if (p) |
251 | p->owner = THIS_MODULE; | 253 | p->owner = THIS_MODULE; |
252 | p = create_proc_read_entry( | 254 | p = create_proc_read_entry("version", 0, *entp, |
253 | "version", 0, *entp, read_version_entry, | 255 | read_version_entry, (void *)nasid); |
254 | (void *)nasid); | ||
255 | if (p) | 256 | if (p) |
256 | p->owner = THIS_MODULE; | 257 | p->owner = THIS_MODULE; |
257 | entp++; | 258 | entp++; |
@@ -263,7 +264,7 @@ int __init prominfo_init(void) | |||
263 | void __exit prominfo_exit(void) | 264 | void __exit prominfo_exit(void) |
264 | { | 265 | { |
265 | struct proc_dir_entry **entp; | 266 | struct proc_dir_entry **entp; |
266 | unsigned cnodeid; | 267 | unsigned int cnodeid; |
267 | char name[NODE_NAME_LEN]; | 268 | char name[NODE_NAME_LEN]; |
268 | 269 | ||
269 | entp = proc_entries; | 270 | entp = proc_entries; |
diff --git a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c index f153a4c35c70..d9d306c79f2d 100644 --- a/arch/ia64/sn/kernel/sn2/sn2_smp.c +++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c | |||
@@ -46,8 +46,14 @@ DECLARE_PER_CPU(struct ptc_stats, ptcstats); | |||
46 | 46 | ||
47 | static __cacheline_aligned DEFINE_SPINLOCK(sn2_global_ptc_lock); | 47 | static __cacheline_aligned DEFINE_SPINLOCK(sn2_global_ptc_lock); |
48 | 48 | ||
49 | void sn2_ptc_deadlock_recovery(short *, short, short, int, volatile unsigned long *, unsigned long, | 49 | extern unsigned long |
50 | volatile unsigned long *, unsigned long); | 50 | sn2_ptc_deadlock_recovery_core(volatile unsigned long *, unsigned long, |
51 | volatile unsigned long *, unsigned long, | ||
52 | volatile unsigned long *, unsigned long); | ||
53 | void | ||
54 | sn2_ptc_deadlock_recovery(short *, short, short, int, | ||
55 | volatile unsigned long *, unsigned long, | ||
56 | volatile unsigned long *, unsigned long); | ||
51 | 57 | ||
52 | /* | 58 | /* |
53 | * Note: some is the following is captured here to make degugging easier | 59 | * Note: some is the following is captured here to make degugging easier |
@@ -59,16 +65,6 @@ void sn2_ptc_deadlock_recovery(short *, short, short, int, volatile unsigned lon | |||
59 | #define reset_max_active_on_deadlock() 1 | 65 | #define reset_max_active_on_deadlock() 1 |
60 | #define PTC_LOCK(sh1) ((sh1) ? &sn2_global_ptc_lock : &sn_nodepda->ptc_lock) | 66 | #define PTC_LOCK(sh1) ((sh1) ? &sn2_global_ptc_lock : &sn_nodepda->ptc_lock) |
61 | 67 | ||
62 | static inline void ptc_lock(int sh1, unsigned long *flagp) | ||
63 | { | ||
64 | spin_lock_irqsave(PTC_LOCK(sh1), *flagp); | ||
65 | } | ||
66 | |||
67 | static inline void ptc_unlock(int sh1, unsigned long flags) | ||
68 | { | ||
69 | spin_unlock_irqrestore(PTC_LOCK(sh1), flags); | ||
70 | } | ||
71 | |||
72 | struct ptc_stats { | 68 | struct ptc_stats { |
73 | unsigned long ptc_l; | 69 | unsigned long ptc_l; |
74 | unsigned long change_rid; | 70 | unsigned long change_rid; |
@@ -82,6 +78,8 @@ struct ptc_stats { | |||
82 | unsigned long shub_ptc_flushes_not_my_mm; | 78 | unsigned long shub_ptc_flushes_not_my_mm; |
83 | }; | 79 | }; |
84 | 80 | ||
81 | #define sn2_ptctest 0 | ||
82 | |||
85 | static inline unsigned long wait_piowc(void) | 83 | static inline unsigned long wait_piowc(void) |
86 | { | 84 | { |
87 | volatile unsigned long *piows; | 85 | volatile unsigned long *piows; |
@@ -95,6 +93,27 @@ static inline unsigned long wait_piowc(void) | |||
95 | return (ws & SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_MASK) != 0; | 93 | return (ws & SH_PIO_WRITE_STATUS_WRITE_DEADLOCK_MASK) != 0; |
96 | } | 94 | } |
97 | 95 | ||
96 | /** | ||
97 | * sn_migrate - SN-specific task migration actions | ||
98 | * @task: Task being migrated to new CPU | ||
99 | * | ||
100 | * SN2 PIO writes from separate CPUs are not guaranteed to arrive in order. | ||
101 | * Context switching user threads which have memory-mapped MMIO may cause | ||
102 | * PIOs to issue from seperate CPUs, thus the PIO writes must be drained | ||
103 | * from the previous CPU's Shub before execution resumes on the new CPU. | ||
104 | */ | ||
105 | void sn_migrate(struct task_struct *task) | ||
106 | { | ||
107 | pda_t *last_pda = pdacpu(task_thread_info(task)->last_cpu); | ||
108 | volatile unsigned long *adr = last_pda->pio_write_status_addr; | ||
109 | unsigned long val = last_pda->pio_write_status_val; | ||
110 | |||
111 | /* Drain PIO writes from old CPU's Shub */ | ||
112 | while (unlikely((*adr & SH_PIO_WRITE_STATUS_PENDING_WRITE_COUNT_MASK) | ||
113 | != val)) | ||
114 | cpu_relax(); | ||
115 | } | ||
116 | |||
98 | void sn_tlb_migrate_finish(struct mm_struct *mm) | 117 | void sn_tlb_migrate_finish(struct mm_struct *mm) |
99 | { | 118 | { |
100 | /* flush_tlb_mm is inefficient if more than 1 users of mm */ | 119 | /* flush_tlb_mm is inefficient if more than 1 users of mm */ |
@@ -200,7 +219,7 @@ sn2_global_tlb_purge(struct mm_struct *mm, unsigned long start, | |||
200 | max_active = max_active_pio(shub1); | 219 | max_active = max_active_pio(shub1); |
201 | 220 | ||
202 | itc = ia64_get_itc(); | 221 | itc = ia64_get_itc(); |
203 | ptc_lock(shub1, &flags); | 222 | spin_lock_irqsave(PTC_LOCK(shub1), flags); |
204 | itc2 = ia64_get_itc(); | 223 | itc2 = ia64_get_itc(); |
205 | 224 | ||
206 | __get_cpu_var(ptcstats).lock_itc_clocks += itc2 - itc; | 225 | __get_cpu_var(ptcstats).lock_itc_clocks += itc2 - itc; |
@@ -258,7 +277,7 @@ sn2_global_tlb_purge(struct mm_struct *mm, unsigned long start, | |||
258 | ia64_srlz_d(); | 277 | ia64_srlz_d(); |
259 | } | 278 | } |
260 | 279 | ||
261 | ptc_unlock(shub1, flags); | 280 | spin_unlock_irqrestore(PTC_LOCK(shub1), flags); |
262 | 281 | ||
263 | preempt_enable(); | 282 | preempt_enable(); |
264 | } | 283 | } |
@@ -270,11 +289,12 @@ sn2_global_tlb_purge(struct mm_struct *mm, unsigned long start, | |||
270 | * TLB flush transaction. The recovery sequence is somewhat tricky & is | 289 | * TLB flush transaction. The recovery sequence is somewhat tricky & is |
271 | * coded in assembly language. | 290 | * coded in assembly language. |
272 | */ | 291 | */ |
273 | void sn2_ptc_deadlock_recovery(short *nasids, short ib, short ie, int mynasid, volatile unsigned long *ptc0, unsigned long data0, | 292 | |
274 | volatile unsigned long *ptc1, unsigned long data1) | 293 | void |
294 | sn2_ptc_deadlock_recovery(short *nasids, short ib, short ie, int mynasid, | ||
295 | volatile unsigned long *ptc0, unsigned long data0, | ||
296 | volatile unsigned long *ptc1, unsigned long data1) | ||
275 | { | 297 | { |
276 | extern unsigned long sn2_ptc_deadlock_recovery_core(volatile unsigned long *, unsigned long, | ||
277 | volatile unsigned long *, unsigned long, volatile unsigned long *, unsigned long); | ||
278 | short nasid, i; | 298 | short nasid, i; |
279 | unsigned long *piows, zeroval, n; | 299 | unsigned long *piows, zeroval, n; |
280 | 300 | ||
@@ -447,7 +467,7 @@ static struct proc_dir_entry *proc_sn2_ptc; | |||
447 | static int __init sn2_ptc_init(void) | 467 | static int __init sn2_ptc_init(void) |
448 | { | 468 | { |
449 | if (!ia64_platform_is("sn2")) | 469 | if (!ia64_platform_is("sn2")) |
450 | return -ENOSYS; | 470 | return 0; |
451 | 471 | ||
452 | if (!(proc_sn2_ptc = create_proc_entry(PTC_BASENAME, 0444, NULL))) { | 472 | if (!(proc_sn2_ptc = create_proc_entry(PTC_BASENAME, 0444, NULL))) { |
453 | printk(KERN_ERR "unable to create %s proc entry", PTC_BASENAME); | 473 | printk(KERN_ERR "unable to create %s proc entry", PTC_BASENAME); |
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index 19b54fbcd7ea..70db21f3df21 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 2004-2005 Silicon Graphics, Inc. All rights reserved. | 6 | * Copyright (C) 2004-2006 Silicon Graphics, Inc. All rights reserved. |
7 | * | 7 | * |
8 | * SGI Altix topology and hardware performance monitoring API. | 8 | * SGI Altix topology and hardware performance monitoring API. |
9 | * Mark Goodwin <markgw@sgi.com>. | 9 | * Mark Goodwin <markgw@sgi.com>. |
@@ -973,6 +973,9 @@ static int __devinit sn_hwperf_misc_register_init(void) | |||
973 | { | 973 | { |
974 | int e; | 974 | int e; |
975 | 975 | ||
976 | if (!ia64_platform_is("sn2")) | ||
977 | return 0; | ||
978 | |||
976 | sn_hwperf_init(); | 979 | sn_hwperf_init(); |
977 | 980 | ||
978 | /* | 981 | /* |
diff --git a/arch/ia64/sn/kernel/sn2/sn_proc_fs.c b/arch/ia64/sn/kernel/sn2/sn_proc_fs.c index a06719d752a0..c686d9c12f7b 100644 --- a/arch/ia64/sn/kernel/sn2/sn_proc_fs.c +++ b/arch/ia64/sn/kernel/sn2/sn_proc_fs.c | |||
@@ -6,11 +6,11 @@ | |||
6 | * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved. | 6 | * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved. |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | 8 | #include <linux/config.h> |
9 | #include <asm/uaccess.h> | ||
10 | 9 | ||
11 | #ifdef CONFIG_PROC_FS | 10 | #ifdef CONFIG_PROC_FS |
12 | #include <linux/proc_fs.h> | 11 | #include <linux/proc_fs.h> |
13 | #include <linux/seq_file.h> | 12 | #include <linux/seq_file.h> |
13 | #include <asm/uaccess.h> | ||
14 | #include <asm/sn/sn_sal.h> | 14 | #include <asm/sn/sn_sal.h> |
15 | 15 | ||
16 | static int partition_id_show(struct seq_file *s, void *p) | 16 | static int partition_id_show(struct seq_file *s, void *p) |
@@ -90,10 +90,10 @@ static int coherence_id_open(struct inode *inode, struct file *file) | |||
90 | return single_open(file, coherence_id_show, NULL); | 90 | return single_open(file, coherence_id_show, NULL); |
91 | } | 91 | } |
92 | 92 | ||
93 | static struct proc_dir_entry *sn_procfs_create_entry( | 93 | static struct proc_dir_entry |
94 | const char *name, struct proc_dir_entry *parent, | 94 | *sn_procfs_create_entry(const char *name, struct proc_dir_entry *parent, |
95 | int (*openfunc)(struct inode *, struct file *), | 95 | int (*openfunc)(struct inode *, struct file *), |
96 | int (*releasefunc)(struct inode *, struct file *)) | 96 | int (*releasefunc)(struct inode *, struct file *)) |
97 | { | 97 | { |
98 | struct proc_dir_entry *e = create_proc_entry(name, 0444, parent); | 98 | struct proc_dir_entry *e = create_proc_entry(name, 0444, parent); |
99 | 99 | ||
@@ -126,24 +126,24 @@ void register_sn_procfs(void) | |||
126 | return; | 126 | return; |
127 | 127 | ||
128 | sn_procfs_create_entry("partition_id", sgi_proc_dir, | 128 | sn_procfs_create_entry("partition_id", sgi_proc_dir, |
129 | partition_id_open, single_release); | 129 | partition_id_open, single_release); |
130 | 130 | ||
131 | sn_procfs_create_entry("system_serial_number", sgi_proc_dir, | 131 | sn_procfs_create_entry("system_serial_number", sgi_proc_dir, |
132 | system_serial_number_open, single_release); | 132 | system_serial_number_open, single_release); |
133 | 133 | ||
134 | sn_procfs_create_entry("licenseID", sgi_proc_dir, | 134 | sn_procfs_create_entry("licenseID", sgi_proc_dir, |
135 | licenseID_open, single_release); | 135 | licenseID_open, single_release); |
136 | 136 | ||
137 | e = sn_procfs_create_entry("sn_force_interrupt", sgi_proc_dir, | 137 | e = sn_procfs_create_entry("sn_force_interrupt", sgi_proc_dir, |
138 | sn_force_interrupt_open, single_release); | 138 | sn_force_interrupt_open, single_release); |
139 | if (e) | 139 | if (e) |
140 | e->proc_fops->write = sn_force_interrupt_write_proc; | 140 | e->proc_fops->write = sn_force_interrupt_write_proc; |
141 | 141 | ||
142 | sn_procfs_create_entry("coherence_id", sgi_proc_dir, | 142 | sn_procfs_create_entry("coherence_id", sgi_proc_dir, |
143 | coherence_id_open, single_release); | 143 | coherence_id_open, single_release); |
144 | 144 | ||
145 | sn_procfs_create_entry("sn_topology", sgi_proc_dir, | 145 | sn_procfs_create_entry("sn_topology", sgi_proc_dir, |
146 | sn_topology_open, sn_topology_release); | 146 | sn_topology_open, sn_topology_release); |
147 | } | 147 | } |
148 | 148 | ||
149 | #endif /* CONFIG_PROC_FS */ | 149 | #endif /* CONFIG_PROC_FS */ |
diff --git a/arch/ia64/sn/kernel/sn2/timer.c b/arch/ia64/sn/kernel/sn2/timer.c index deb9baf4d473..56a88b6df4b4 100644 --- a/arch/ia64/sn/kernel/sn2/timer.c +++ b/arch/ia64/sn/kernel/sn2/timer.c | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | #include <asm/hw_irq.h> | 15 | #include <asm/hw_irq.h> |
16 | #include <asm/system.h> | 16 | #include <asm/system.h> |
17 | #include <asm/timex.h> | ||
17 | 18 | ||
18 | #include <asm/sn/leds.h> | 19 | #include <asm/sn/leds.h> |
19 | #include <asm/sn/shub_mmr.h> | 20 | #include <asm/sn/shub_mmr.h> |
@@ -28,9 +29,27 @@ static struct time_interpolator sn2_interpolator = { | |||
28 | .source = TIME_SOURCE_MMIO64 | 29 | .source = TIME_SOURCE_MMIO64 |
29 | }; | 30 | }; |
30 | 31 | ||
32 | /* | ||
33 | * sn udelay uses the RTC instead of the ITC because the ITC is not | ||
34 | * synchronized across all CPUs, and the thread may migrate to another CPU | ||
35 | * if preemption is enabled. | ||
36 | */ | ||
37 | static void | ||
38 | ia64_sn_udelay (unsigned long usecs) | ||
39 | { | ||
40 | unsigned long start = rtc_time(); | ||
41 | unsigned long end = start + | ||
42 | usecs * sn_rtc_cycles_per_second / 1000000; | ||
43 | |||
44 | while (time_before((unsigned long)rtc_time(), end)) | ||
45 | cpu_relax(); | ||
46 | } | ||
47 | |||
31 | void __init sn_timer_init(void) | 48 | void __init sn_timer_init(void) |
32 | { | 49 | { |
33 | sn2_interpolator.frequency = sn_rtc_cycles_per_second; | 50 | sn2_interpolator.frequency = sn_rtc_cycles_per_second; |
34 | sn2_interpolator.addr = RTC_COUNTER_ADDR; | 51 | sn2_interpolator.addr = RTC_COUNTER_ADDR; |
35 | register_time_interpolator(&sn2_interpolator); | 52 | register_time_interpolator(&sn2_interpolator); |
53 | |||
54 | ia64_udelay = &ia64_sn_udelay; | ||
36 | } | 55 | } |
diff --git a/arch/ia64/sn/kernel/sn2/timer_interrupt.c b/arch/ia64/sn/kernel/sn2/timer_interrupt.c index adf5db2e2afe..fa7f69945917 100644 --- a/arch/ia64/sn/kernel/sn2/timer_interrupt.c +++ b/arch/ia64/sn/kernel/sn2/timer_interrupt.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * | 2 | * |
3 | * | 3 | * |
4 | * Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved. | 4 | * Copyright (c) 2005, 2006 Silicon Graphics, Inc. All Rights Reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of version 2 of the GNU General Public License | 7 | * under the terms of version 2 of the GNU General Public License |
@@ -22,11 +22,6 @@ | |||
22 | * License along with this program; if not, write the Free Software | 22 | * License along with this program; if not, write the Free Software |
23 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 23 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
24 | * | 24 | * |
25 | * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, | ||
26 | * Mountain View, CA 94043, or: | ||
27 | * | ||
28 | * http://www.sgi.com | ||
29 | * | ||
30 | * For further information regarding this notice, see: | 25 | * For further information regarding this notice, see: |
31 | * | 26 | * |
32 | * http://oss.sgi.com/projects/GenInfo/NoticeExplan | 27 | * http://oss.sgi.com/projects/GenInfo/NoticeExplan |
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c index d263d3e8fbb9..99cb28e74295 100644 --- a/arch/ia64/sn/kernel/tiocx.c +++ b/arch/ia64/sn/kernel/tiocx.c | |||
@@ -284,12 +284,10 @@ struct sn_irq_info *tiocx_irq_alloc(nasid_t nasid, int widget, int irq, | |||
284 | if ((nasid & 1) == 0) | 284 | if ((nasid & 1) == 0) |
285 | return NULL; | 285 | return NULL; |
286 | 286 | ||
287 | sn_irq_info = kmalloc(sn_irq_size, GFP_KERNEL); | 287 | sn_irq_info = kzalloc(sn_irq_size, GFP_KERNEL); |
288 | if (sn_irq_info == NULL) | 288 | if (sn_irq_info == NULL) |
289 | return NULL; | 289 | return NULL; |
290 | 290 | ||
291 | memset(sn_irq_info, 0x0, sn_irq_size); | ||
292 | |||
293 | status = tiocx_intr_alloc(nasid, widget, __pa(sn_irq_info), irq, | 291 | status = tiocx_intr_alloc(nasid, widget, __pa(sn_irq_info), irq, |
294 | req_nasid, slice); | 292 | req_nasid, slice); |
295 | if (status) { | 293 | if (status) { |
@@ -486,7 +484,7 @@ static int __init tiocx_init(void) | |||
486 | int found_tiocx_device = 0; | 484 | int found_tiocx_device = 0; |
487 | 485 | ||
488 | if (!ia64_platform_is("sn2")) | 486 | if (!ia64_platform_is("sn2")) |
489 | return -ENODEV; | 487 | return 0; |
490 | 488 | ||
491 | bus_register(&tiocx_bus_type); | 489 | bus_register(&tiocx_bus_type); |
492 | 490 | ||
diff --git a/arch/ia64/sn/kernel/xpc_channel.c b/arch/ia64/sn/kernel/xpc_channel.c index 36e5437a0fb6..cdf6856ce089 100644 --- a/arch/ia64/sn/kernel/xpc_channel.c +++ b/arch/ia64/sn/kernel/xpc_channel.c | |||
@@ -738,7 +738,9 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags) | |||
738 | 738 | ||
739 | /* make sure all activity has settled down first */ | 739 | /* make sure all activity has settled down first */ |
740 | 740 | ||
741 | if (atomic_read(&ch->references) > 0) { | 741 | if (atomic_read(&ch->references) > 0 || |
742 | ((ch->flags & XPC_C_CONNECTEDCALLOUT_MADE) && | ||
743 | !(ch->flags & XPC_C_DISCONNECTINGCALLOUT_MADE))) { | ||
742 | return; | 744 | return; |
743 | } | 745 | } |
744 | DBUG_ON(atomic_read(&ch->kthreads_assigned) != 0); | 746 | DBUG_ON(atomic_read(&ch->kthreads_assigned) != 0); |
@@ -775,7 +777,7 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags) | |||
775 | 777 | ||
776 | /* both sides are disconnected now */ | 778 | /* both sides are disconnected now */ |
777 | 779 | ||
778 | if (ch->flags & XPC_C_CONNECTCALLOUT) { | 780 | if (ch->flags & XPC_C_DISCONNECTINGCALLOUT_MADE) { |
779 | spin_unlock_irqrestore(&ch->lock, *irq_flags); | 781 | spin_unlock_irqrestore(&ch->lock, *irq_flags); |
780 | xpc_disconnect_callout(ch, xpcDisconnected); | 782 | xpc_disconnect_callout(ch, xpcDisconnected); |
781 | spin_lock_irqsave(&ch->lock, *irq_flags); | 783 | spin_lock_irqsave(&ch->lock, *irq_flags); |
@@ -1300,7 +1302,7 @@ xpc_process_msg_IPI(struct xpc_partition *part, int ch_number) | |||
1300 | "delivered=%d, partid=%d, channel=%d\n", | 1302 | "delivered=%d, partid=%d, channel=%d\n", |
1301 | nmsgs_sent, ch->partid, ch->number); | 1303 | nmsgs_sent, ch->partid, ch->number); |
1302 | 1304 | ||
1303 | if (ch->flags & XPC_C_CONNECTCALLOUT) { | 1305 | if (ch->flags & XPC_C_CONNECTEDCALLOUT_MADE) { |
1304 | xpc_activate_kthreads(ch, nmsgs_sent); | 1306 | xpc_activate_kthreads(ch, nmsgs_sent); |
1305 | } | 1307 | } |
1306 | } | 1308 | } |
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c index 9cd460dfe27e..8cbf16432570 100644 --- a/arch/ia64/sn/kernel/xpc_main.c +++ b/arch/ia64/sn/kernel/xpc_main.c | |||
@@ -750,12 +750,16 @@ xpc_daemonize_kthread(void *args) | |||
750 | /* let registerer know that connection has been established */ | 750 | /* let registerer know that connection has been established */ |
751 | 751 | ||
752 | spin_lock_irqsave(&ch->lock, irq_flags); | 752 | spin_lock_irqsave(&ch->lock, irq_flags); |
753 | if (!(ch->flags & XPC_C_CONNECTCALLOUT)) { | 753 | if (!(ch->flags & XPC_C_CONNECTEDCALLOUT)) { |
754 | ch->flags |= XPC_C_CONNECTCALLOUT; | 754 | ch->flags |= XPC_C_CONNECTEDCALLOUT; |
755 | spin_unlock_irqrestore(&ch->lock, irq_flags); | 755 | spin_unlock_irqrestore(&ch->lock, irq_flags); |
756 | 756 | ||
757 | xpc_connected_callout(ch); | 757 | xpc_connected_callout(ch); |
758 | 758 | ||
759 | spin_lock_irqsave(&ch->lock, irq_flags); | ||
760 | ch->flags |= XPC_C_CONNECTEDCALLOUT_MADE; | ||
761 | spin_unlock_irqrestore(&ch->lock, irq_flags); | ||
762 | |||
759 | /* | 763 | /* |
760 | * It is possible that while the callout was being | 764 | * It is possible that while the callout was being |
761 | * made that the remote partition sent some messages. | 765 | * made that the remote partition sent some messages. |
@@ -777,15 +781,17 @@ xpc_daemonize_kthread(void *args) | |||
777 | 781 | ||
778 | if (atomic_dec_return(&ch->kthreads_assigned) == 0) { | 782 | if (atomic_dec_return(&ch->kthreads_assigned) == 0) { |
779 | spin_lock_irqsave(&ch->lock, irq_flags); | 783 | spin_lock_irqsave(&ch->lock, irq_flags); |
780 | if ((ch->flags & XPC_C_CONNECTCALLOUT) && | 784 | if ((ch->flags & XPC_C_CONNECTEDCALLOUT_MADE) && |
781 | !(ch->flags & XPC_C_DISCONNECTCALLOUT)) { | 785 | !(ch->flags & XPC_C_DISCONNECTINGCALLOUT)) { |
782 | ch->flags |= XPC_C_DISCONNECTCALLOUT; | 786 | ch->flags |= XPC_C_DISCONNECTINGCALLOUT; |
783 | spin_unlock_irqrestore(&ch->lock, irq_flags); | 787 | spin_unlock_irqrestore(&ch->lock, irq_flags); |
784 | 788 | ||
785 | xpc_disconnect_callout(ch, xpcDisconnecting); | 789 | xpc_disconnect_callout(ch, xpcDisconnecting); |
786 | } else { | 790 | |
787 | spin_unlock_irqrestore(&ch->lock, irq_flags); | 791 | spin_lock_irqsave(&ch->lock, irq_flags); |
792 | ch->flags |= XPC_C_DISCONNECTINGCALLOUT_MADE; | ||
788 | } | 793 | } |
794 | spin_unlock_irqrestore(&ch->lock, irq_flags); | ||
789 | if (atomic_dec_return(&part->nchannels_engaged) == 0) { | 795 | if (atomic_dec_return(&part->nchannels_engaged) == 0) { |
790 | xpc_mark_partition_disengaged(part); | 796 | xpc_mark_partition_disengaged(part); |
791 | xpc_IPI_send_disengage(part); | 797 | xpc_IPI_send_disengage(part); |
diff --git a/arch/ia64/sn/pci/pci_dma.c b/arch/ia64/sn/pci/pci_dma.c index 5a36292388eb..b4b84c269210 100644 --- a/arch/ia64/sn/pci/pci_dma.c +++ b/arch/ia64/sn/pci/pci_dma.c | |||
@@ -335,10 +335,10 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
335 | */ | 335 | */ |
336 | 336 | ||
337 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, | 337 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, |
338 | pci_domain_nr(bus), bus->number, | 338 | pci_domain_nr(bus), bus->number, |
339 | 0, /* io */ | 339 | 0, /* io */ |
340 | 0, /* read */ | 340 | 0, /* read */ |
341 | port, size, __pa(val)); | 341 | port, size, __pa(val)); |
342 | 342 | ||
343 | if (isrv.status == 0) | 343 | if (isrv.status == 0) |
344 | return size; | 344 | return size; |
@@ -381,10 +381,10 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) | |||
381 | */ | 381 | */ |
382 | 382 | ||
383 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, | 383 | SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE, |
384 | pci_domain_nr(bus), bus->number, | 384 | pci_domain_nr(bus), bus->number, |
385 | 0, /* io */ | 385 | 0, /* io */ |
386 | 1, /* write */ | 386 | 1, /* write */ |
387 | port, size, __pa(&val)); | 387 | port, size, __pa(&val)); |
388 | 388 | ||
389 | if (isrv.status == 0) | 389 | if (isrv.status == 0) |
390 | return size; | 390 | return size; |
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_ate.c b/arch/ia64/sn/pci/pcibr/pcibr_ate.c index aa3fa5152a32..1f0253bfe0a0 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_ate.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_ate.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 2001-2004 Silicon Graphics, Inc. All rights reserved. | 6 | * Copyright (C) 2001-2006 Silicon Graphics, Inc. All rights reserved. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
@@ -12,7 +12,7 @@ | |||
12 | #include <asm/sn/pcibus_provider_defs.h> | 12 | #include <asm/sn/pcibus_provider_defs.h> |
13 | #include <asm/sn/pcidev.h> | 13 | #include <asm/sn/pcidev.h> |
14 | 14 | ||
15 | int pcibr_invalidate_ate = 0; /* by default don't invalidate ATE on free */ | 15 | int pcibr_invalidate_ate; /* by default don't invalidate ATE on free */ |
16 | 16 | ||
17 | /* | 17 | /* |
18 | * mark_ate: Mark the ate as either free or inuse. | 18 | * mark_ate: Mark the ate as either free or inuse. |
@@ -20,14 +20,12 @@ int pcibr_invalidate_ate = 0; /* by default don't invalidate ATE on free */ | |||
20 | static void mark_ate(struct ate_resource *ate_resource, int start, int number, | 20 | static void mark_ate(struct ate_resource *ate_resource, int start, int number, |
21 | u64 value) | 21 | u64 value) |
22 | { | 22 | { |
23 | |||
24 | u64 *ate = ate_resource->ate; | 23 | u64 *ate = ate_resource->ate; |
25 | int index; | 24 | int index; |
26 | int length = 0; | 25 | int length = 0; |
27 | 26 | ||
28 | for (index = start; length < number; index++, length++) | 27 | for (index = start; length < number; index++, length++) |
29 | ate[index] = value; | 28 | ate[index] = value; |
30 | |||
31 | } | 29 | } |
32 | 30 | ||
33 | /* | 31 | /* |
@@ -37,7 +35,6 @@ static void mark_ate(struct ate_resource *ate_resource, int start, int number, | |||
37 | static int find_free_ate(struct ate_resource *ate_resource, int start, | 35 | static int find_free_ate(struct ate_resource *ate_resource, int start, |
38 | int count) | 36 | int count) |
39 | { | 37 | { |
40 | |||
41 | u64 *ate = ate_resource->ate; | 38 | u64 *ate = ate_resource->ate; |
42 | int index; | 39 | int index; |
43 | int start_free; | 40 | int start_free; |
@@ -70,12 +67,10 @@ static int find_free_ate(struct ate_resource *ate_resource, int start, | |||
70 | static inline void free_ate_resource(struct ate_resource *ate_resource, | 67 | static inline void free_ate_resource(struct ate_resource *ate_resource, |
71 | int start) | 68 | int start) |
72 | { | 69 | { |
73 | |||
74 | mark_ate(ate_resource, start, ate_resource->ate[start], 0); | 70 | mark_ate(ate_resource, start, ate_resource->ate[start], 0); |
75 | if ((ate_resource->lowest_free_index > start) || | 71 | if ((ate_resource->lowest_free_index > start) || |
76 | (ate_resource->lowest_free_index < 0)) | 72 | (ate_resource->lowest_free_index < 0)) |
77 | ate_resource->lowest_free_index = start; | 73 | ate_resource->lowest_free_index = start; |
78 | |||
79 | } | 74 | } |
80 | 75 | ||
81 | /* | 76 | /* |
@@ -84,7 +79,6 @@ static inline void free_ate_resource(struct ate_resource *ate_resource, | |||
84 | static inline int alloc_ate_resource(struct ate_resource *ate_resource, | 79 | static inline int alloc_ate_resource(struct ate_resource *ate_resource, |
85 | int ate_needed) | 80 | int ate_needed) |
86 | { | 81 | { |
87 | |||
88 | int start_index; | 82 | int start_index; |
89 | 83 | ||
90 | /* | 84 | /* |
@@ -118,19 +112,12 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource, | |||
118 | */ | 112 | */ |
119 | int pcibr_ate_alloc(struct pcibus_info *pcibus_info, int count) | 113 | int pcibr_ate_alloc(struct pcibus_info *pcibus_info, int count) |
120 | { | 114 | { |
121 | int status = 0; | 115 | int status; |
122 | u64 flag; | 116 | unsigned long flags; |
123 | 117 | ||
124 | flag = pcibr_lock(pcibus_info); | 118 | spin_lock_irqsave(&pcibus_info->pbi_lock, flags); |
125 | status = alloc_ate_resource(&pcibus_info->pbi_int_ate_resource, count); | 119 | status = alloc_ate_resource(&pcibus_info->pbi_int_ate_resource, count); |
126 | 120 | spin_unlock_irqrestore(&pcibus_info->pbi_lock, flags); | |
127 | if (status < 0) { | ||
128 | /* Failed to allocate */ | ||
129 | pcibr_unlock(pcibus_info, flag); | ||
130 | return -1; | ||
131 | } | ||
132 | |||
133 | pcibr_unlock(pcibus_info, flag); | ||
134 | 121 | ||
135 | return status; | 122 | return status; |
136 | } | 123 | } |
@@ -182,7 +169,7 @@ void pcibr_ate_free(struct pcibus_info *pcibus_info, int index) | |||
182 | ate_write(pcibus_info, index, count, (ate & ~PCI32_ATE_V)); | 169 | ate_write(pcibus_info, index, count, (ate & ~PCI32_ATE_V)); |
183 | } | 170 | } |
184 | 171 | ||
185 | flags = pcibr_lock(pcibus_info); | 172 | spin_lock_irqsave(&pcibus_info->pbi_lock, flags); |
186 | free_ate_resource(&pcibus_info->pbi_int_ate_resource, index); | 173 | free_ate_resource(&pcibus_info->pbi_int_ate_resource, index); |
187 | pcibr_unlock(pcibus_info, flags); | 174 | spin_unlock_irqrestore(&pcibus_info->pbi_lock, flags); |
188 | } | 175 | } |
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_dma.c b/arch/ia64/sn/pci/pcibr/pcibr_dma.c index 54ce5b7ceed2..9f86bb6519aa 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_dma.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_dma.c | |||
@@ -137,14 +137,12 @@ pcibr_dmatrans_direct64(struct pcidev_info * info, u64 paddr, | |||
137 | pci_addr |= PCI64_ATTR_VIRTUAL; | 137 | pci_addr |= PCI64_ATTR_VIRTUAL; |
138 | 138 | ||
139 | return pci_addr; | 139 | return pci_addr; |
140 | |||
141 | } | 140 | } |
142 | 141 | ||
143 | static dma_addr_t | 142 | static dma_addr_t |
144 | pcibr_dmatrans_direct32(struct pcidev_info * info, | 143 | pcibr_dmatrans_direct32(struct pcidev_info * info, |
145 | u64 paddr, size_t req_size, u64 flags) | 144 | u64 paddr, size_t req_size, u64 flags) |
146 | { | 145 | { |
147 | |||
148 | struct pcidev_info *pcidev_info = info->pdi_host_pcidev_info; | 146 | struct pcidev_info *pcidev_info = info->pdi_host_pcidev_info; |
149 | struct pcibus_info *pcibus_info = (struct pcibus_info *)pcidev_info-> | 147 | struct pcibus_info *pcibus_info = (struct pcibus_info *)pcidev_info-> |
150 | pdi_pcibus_info; | 148 | pdi_pcibus_info; |
@@ -171,7 +169,6 @@ pcibr_dmatrans_direct32(struct pcidev_info * info, | |||
171 | } | 169 | } |
172 | 170 | ||
173 | return PCI32_DIRECT_BASE | offset; | 171 | return PCI32_DIRECT_BASE | offset; |
174 | |||
175 | } | 172 | } |
176 | 173 | ||
177 | /* | 174 | /* |
@@ -218,9 +215,8 @@ void sn_dma_flush(u64 addr) | |||
218 | u64 flags; | 215 | u64 flags; |
219 | u64 itte; | 216 | u64 itte; |
220 | struct hubdev_info *hubinfo; | 217 | struct hubdev_info *hubinfo; |
221 | volatile struct sn_flush_device_kernel *p; | 218 | struct sn_flush_device_kernel *p; |
222 | volatile struct sn_flush_device_common *common; | 219 | struct sn_flush_device_common *common; |
223 | |||
224 | struct sn_flush_nasid_entry *flush_nasid_list; | 220 | struct sn_flush_nasid_entry *flush_nasid_list; |
225 | 221 | ||
226 | if (!sn_ioif_inited) | 222 | if (!sn_ioif_inited) |
@@ -310,8 +306,7 @@ void sn_dma_flush(u64 addr) | |||
310 | (common->sfdl_slot - 1)); | 306 | (common->sfdl_slot - 1)); |
311 | } | 307 | } |
312 | } else { | 308 | } else { |
313 | spin_lock_irqsave((spinlock_t *)&p->sfdl_flush_lock, | 309 | spin_lock_irqsave(&p->sfdl_flush_lock, flags); |
314 | flags); | ||
315 | *common->sfdl_flush_addr = 0; | 310 | *common->sfdl_flush_addr = 0; |
316 | 311 | ||
317 | /* force an interrupt. */ | 312 | /* force an interrupt. */ |
@@ -322,8 +317,7 @@ void sn_dma_flush(u64 addr) | |||
322 | cpu_relax(); | 317 | cpu_relax(); |
323 | 318 | ||
324 | /* okay, everything is synched up. */ | 319 | /* okay, everything is synched up. */ |
325 | spin_unlock_irqrestore((spinlock_t *)&p->sfdl_flush_lock, | 320 | spin_unlock_irqrestore(&p->sfdl_flush_lock, flags); |
326 | flags); | ||
327 | } | 321 | } |
328 | return; | 322 | return; |
329 | } | 323 | } |
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c index 2fac27049bf6..98f716bd92f0 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c | |||
@@ -163,9 +163,12 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
163 | /* Setup the PMU ATE map */ | 163 | /* Setup the PMU ATE map */ |
164 | soft->pbi_int_ate_resource.lowest_free_index = 0; | 164 | soft->pbi_int_ate_resource.lowest_free_index = 0; |
165 | soft->pbi_int_ate_resource.ate = | 165 | soft->pbi_int_ate_resource.ate = |
166 | kmalloc(soft->pbi_int_ate_size * sizeof(u64), GFP_KERNEL); | 166 | kzalloc(soft->pbi_int_ate_size * sizeof(u64), GFP_KERNEL); |
167 | memset(soft->pbi_int_ate_resource.ate, 0, | 167 | |
168 | (soft->pbi_int_ate_size * sizeof(u64))); | 168 | if (!soft->pbi_int_ate_resource.ate) { |
169 | kfree(soft); | ||
170 | return NULL; | ||
171 | } | ||
169 | 172 | ||
170 | if (prom_bussoft->bs_asic_type == PCIIO_ASIC_TYPE_TIOCP) { | 173 | if (prom_bussoft->bs_asic_type == PCIIO_ASIC_TYPE_TIOCP) { |
171 | /* TIO PCI Bridge: find nearest node with CPUs */ | 174 | /* TIO PCI Bridge: find nearest node with CPUs */ |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index e52831ed93eb..fa073cc4b565 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -15,6 +15,124 @@ | |||
15 | #include <asm/sn/pcidev.h> | 15 | #include <asm/sn/pcidev.h> |
16 | #include <asm/sn/pcibus_provider_defs.h> | 16 | #include <asm/sn/pcibus_provider_defs.h> |
17 | #include <asm/sn/tioce_provider.h> | 17 | #include <asm/sn/tioce_provider.h> |
18 | #include <asm/sn/sn2/sn_hwperf.h> | ||
19 | |||
20 | /* | ||
21 | * 1/26/2006 | ||
22 | * | ||
23 | * WAR for SGI PV 944642. For revA TIOCE, need to use the following recipe | ||
24 | * (taken from the above PV) before and after accessing tioce internal MMR's | ||
25 | * to avoid tioce lockups. | ||
26 | * | ||
27 | * The recipe as taken from the PV: | ||
28 | * | ||
29 | * if(mmr address < 0x45000) { | ||
30 | * if(mmr address == 0 or 0x80) | ||
31 | * mmr wrt or read address 0xc0 | ||
32 | * else if(mmr address == 0x148 or 0x200) | ||
33 | * mmr wrt or read address 0x28 | ||
34 | * else | ||
35 | * mmr wrt or read address 0x158 | ||
36 | * | ||
37 | * do desired mmr access (rd or wrt) | ||
38 | * | ||
39 | * if(mmr address == 0x100) | ||
40 | * mmr wrt or read address 0x38 | ||
41 | * mmr wrt or read address 0xb050 | ||
42 | * } else | ||
43 | * do desired mmr access | ||
44 | * | ||
45 | * According to hw, we can use reads instead of writes to the above addres | ||
46 | * | ||
47 | * Note this WAR can only to be used for accessing internal MMR's in the | ||
48 | * TIOCE Coretalk Address Range 0x0 - 0x07ff_ffff. This includes the | ||
49 | * "Local CE Registers and Memories" and "PCI Compatible Config Space" address | ||
50 | * spaces from table 2-1 of the "CE Programmer's Reference Overview" document. | ||
51 | * | ||
52 | * All registers defined in struct tioce will meet that criteria. | ||
53 | */ | ||
54 | |||
55 | static void inline | ||
56 | tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr) | ||
57 | { | ||
58 | u64 mmr_base; | ||
59 | u64 mmr_offset; | ||
60 | |||
61 | if (kern->ce_common->ce_rev != TIOCE_REV_A) | ||
62 | return; | ||
63 | |||
64 | mmr_base = kern->ce_common->ce_pcibus.bs_base; | ||
65 | mmr_offset = (u64)mmr_addr - mmr_base; | ||
66 | |||
67 | if (mmr_offset < 0x45000) { | ||
68 | u64 mmr_war_offset; | ||
69 | |||
70 | if (mmr_offset == 0 || mmr_offset == 0x80) | ||
71 | mmr_war_offset = 0xc0; | ||
72 | else if (mmr_offset == 0x148 || mmr_offset == 0x200) | ||
73 | mmr_war_offset = 0x28; | ||
74 | else | ||
75 | mmr_war_offset = 0x158; | ||
76 | |||
77 | readq_relaxed((void *)(mmr_base + mmr_war_offset)); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | static void inline | ||
82 | tioce_mmr_war_post(struct tioce_kernel *kern, void *mmr_addr) | ||
83 | { | ||
84 | u64 mmr_base; | ||
85 | u64 mmr_offset; | ||
86 | |||
87 | if (kern->ce_common->ce_rev != TIOCE_REV_A) | ||
88 | return; | ||
89 | |||
90 | mmr_base = kern->ce_common->ce_pcibus.bs_base; | ||
91 | mmr_offset = (u64)mmr_addr - mmr_base; | ||
92 | |||
93 | if (mmr_offset < 0x45000) { | ||
94 | if (mmr_offset == 0x100) | ||
95 | readq_relaxed((void *)(mmr_base + 0x38)); | ||
96 | readq_relaxed((void *)(mmr_base + 0xb050)); | ||
97 | } | ||
98 | } | ||
99 | |||
100 | /* load mmr contents into a variable */ | ||
101 | #define tioce_mmr_load(kern, mmrp, varp) do {\ | ||
102 | tioce_mmr_war_pre(kern, mmrp); \ | ||
103 | *(varp) = readq_relaxed(mmrp); \ | ||
104 | tioce_mmr_war_post(kern, mmrp); \ | ||
105 | } while (0) | ||
106 | |||
107 | /* store variable contents into mmr */ | ||
108 | #define tioce_mmr_store(kern, mmrp, varp) do {\ | ||
109 | tioce_mmr_war_pre(kern, mmrp); \ | ||
110 | writeq(*varp, mmrp); \ | ||
111 | tioce_mmr_war_post(kern, mmrp); \ | ||
112 | } while (0) | ||
113 | |||
114 | /* store immediate value into mmr */ | ||
115 | #define tioce_mmr_storei(kern, mmrp, val) do {\ | ||
116 | tioce_mmr_war_pre(kern, mmrp); \ | ||
117 | writeq(val, mmrp); \ | ||
118 | tioce_mmr_war_post(kern, mmrp); \ | ||
119 | } while (0) | ||
120 | |||
121 | /* set bits (immediate value) into mmr */ | ||
122 | #define tioce_mmr_seti(kern, mmrp, bits) do {\ | ||
123 | u64 tmp; \ | ||
124 | tioce_mmr_load(kern, mmrp, &tmp); \ | ||
125 | tmp |= (bits); \ | ||
126 | tioce_mmr_store(kern, mmrp, &tmp); \ | ||
127 | } while (0) | ||
128 | |||
129 | /* clear bits (immediate value) into mmr */ | ||
130 | #define tioce_mmr_clri(kern, mmrp, bits) do { \ | ||
131 | u64 tmp; \ | ||
132 | tioce_mmr_load(kern, mmrp, &tmp); \ | ||
133 | tmp &= ~(bits); \ | ||
134 | tioce_mmr_store(kern, mmrp, &tmp); \ | ||
135 | } while (0) | ||
18 | 136 | ||
19 | /** | 137 | /** |
20 | * Bus address ranges for the 5 flavors of TIOCE DMA | 138 | * Bus address ranges for the 5 flavors of TIOCE DMA |
@@ -62,9 +180,9 @@ | |||
62 | #define TIOCE_ATE_M40 2 | 180 | #define TIOCE_ATE_M40 2 |
63 | #define TIOCE_ATE_M40S 3 | 181 | #define TIOCE_ATE_M40S 3 |
64 | 182 | ||
65 | #define KB(x) ((x) << 10) | 183 | #define KB(x) ((u64)(x) << 10) |
66 | #define MB(x) ((x) << 20) | 184 | #define MB(x) ((u64)(x) << 20) |
67 | #define GB(x) ((x) << 30) | 185 | #define GB(x) ((u64)(x) << 30) |
68 | 186 | ||
69 | /** | 187 | /** |
70 | * tioce_dma_d64 - create a DMA mapping using 64-bit direct mode | 188 | * tioce_dma_d64 - create a DMA mapping using 64-bit direct mode |
@@ -151,7 +269,7 @@ tioce_alloc_map(struct tioce_kernel *ce_kern, int type, int port, | |||
151 | int last; | 269 | int last; |
152 | int entries; | 270 | int entries; |
153 | int nates; | 271 | int nates; |
154 | int pagesize; | 272 | u64 pagesize; |
155 | u64 *ate_shadow; | 273 | u64 *ate_shadow; |
156 | u64 *ate_reg; | 274 | u64 *ate_reg; |
157 | u64 addr; | 275 | u64 addr; |
@@ -228,7 +346,7 @@ tioce_alloc_map(struct tioce_kernel *ce_kern, int type, int port, | |||
228 | 346 | ||
229 | ate = ATE_MAKE(addr, pagesize); | 347 | ate = ATE_MAKE(addr, pagesize); |
230 | ate_shadow[i + j] = ate; | 348 | ate_shadow[i + j] = ate; |
231 | writeq(ate, &ate_reg[i + j]); | 349 | tioce_mmr_storei(ce_kern, &ate_reg[i + j], ate); |
232 | addr += pagesize; | 350 | addr += pagesize; |
233 | } | 351 | } |
234 | 352 | ||
@@ -272,7 +390,8 @@ tioce_dma_d32(struct pci_dev *pdev, u64 ct_addr) | |||
272 | u64 tmp; | 390 | u64 tmp; |
273 | 391 | ||
274 | ce_kern->ce_port[port].dirmap_shadow = ct_upper; | 392 | ce_kern->ce_port[port].dirmap_shadow = ct_upper; |
275 | writeq(ct_upper, &ce_mmr->ce_ure_dir_map[port]); | 393 | tioce_mmr_storei(ce_kern, &ce_mmr->ce_ure_dir_map[port], |
394 | ct_upper); | ||
276 | tmp = ce_mmr->ce_ure_dir_map[port]; | 395 | tmp = ce_mmr->ce_ure_dir_map[port]; |
277 | dma_ok = 1; | 396 | dma_ok = 1; |
278 | } else | 397 | } else |
@@ -344,7 +463,8 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir) | |||
344 | if (TIOCE_D32_ADDR(bus_addr)) { | 463 | if (TIOCE_D32_ADDR(bus_addr)) { |
345 | if (--ce_kern->ce_port[port].dirmap_refcnt == 0) { | 464 | if (--ce_kern->ce_port[port].dirmap_refcnt == 0) { |
346 | ce_kern->ce_port[port].dirmap_shadow = 0; | 465 | ce_kern->ce_port[port].dirmap_shadow = 0; |
347 | writeq(0, &ce_mmr->ce_ure_dir_map[port]); | 466 | tioce_mmr_storei(ce_kern, &ce_mmr->ce_ure_dir_map[port], |
467 | 0); | ||
348 | } | 468 | } |
349 | } else { | 469 | } else { |
350 | struct tioce_dmamap *map; | 470 | struct tioce_dmamap *map; |
@@ -365,7 +485,7 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir) | |||
365 | } else if (--map->refcnt == 0) { | 485 | } else if (--map->refcnt == 0) { |
366 | for (i = 0; i < map->ate_count; i++) { | 486 | for (i = 0; i < map->ate_count; i++) { |
367 | map->ate_shadow[i] = 0; | 487 | map->ate_shadow[i] = 0; |
368 | map->ate_hw[i] = 0; | 488 | tioce_mmr_storei(ce_kern, &map->ate_hw[i], 0); |
369 | } | 489 | } |
370 | 490 | ||
371 | list_del(&map->ce_dmamap_list); | 491 | list_del(&map->ce_dmamap_list); |
@@ -486,7 +606,7 @@ tioce_do_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, | |||
486 | spin_unlock_irqrestore(&ce_kern->ce_lock, flags); | 606 | spin_unlock_irqrestore(&ce_kern->ce_lock, flags); |
487 | 607 | ||
488 | dma_map_done: | 608 | dma_map_done: |
489 | if (mapaddr & barrier) | 609 | if (mapaddr && barrier) |
490 | mapaddr = tioce_dma_barrier(mapaddr, 1); | 610 | mapaddr = tioce_dma_barrier(mapaddr, 1); |
491 | 611 | ||
492 | return mapaddr; | 612 | return mapaddr; |
@@ -541,17 +661,61 @@ tioce_error_intr_handler(int irq, void *arg, struct pt_regs *pt) | |||
541 | soft->ce_pcibus.bs_persist_segment, | 661 | soft->ce_pcibus.bs_persist_segment, |
542 | soft->ce_pcibus.bs_persist_busnum, 0, 0, 0, 0, 0); | 662 | soft->ce_pcibus.bs_persist_busnum, 0, 0, 0, 0, 0); |
543 | 663 | ||
664 | if (ret_stuff.v0) | ||
665 | panic("tioce_error_intr_handler: Fatal TIOCE error"); | ||
666 | |||
544 | return IRQ_HANDLED; | 667 | return IRQ_HANDLED; |
545 | } | 668 | } |
546 | 669 | ||
547 | /** | 670 | /** |
671 | * tioce_reserve_m32 - reserve M32 ate's for the indicated address range | ||
672 | * @tioce_kernel: TIOCE context to reserve ate's for | ||
673 | * @base: starting bus address to reserve | ||
674 | * @limit: last bus address to reserve | ||
675 | * | ||
676 | * If base/limit falls within the range of bus space mapped through the | ||
677 | * M32 space, reserve the resources corresponding to the range. | ||
678 | */ | ||
679 | static void | ||
680 | tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit) | ||
681 | { | ||
682 | int ate_index, last_ate, ps; | ||
683 | struct tioce *ce_mmr; | ||
684 | |||
685 | if (!TIOCE_M32_ADDR(base)) | ||
686 | return; | ||
687 | |||
688 | ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; | ||
689 | ps = ce_kern->ce_ate3240_pagesize; | ||
690 | ate_index = ATE_PAGE(base, ps); | ||
691 | last_ate = ate_index + ATE_NPAGES(base, limit-base+1, ps) - 1; | ||
692 | |||
693 | if (ate_index < 64) | ||
694 | ate_index = 64; | ||
695 | |||
696 | while (ate_index <= last_ate) { | ||
697 | u64 ate; | ||
698 | |||
699 | ate = ATE_MAKE(0xdeadbeef, ps); | ||
700 | ce_kern->ce_ate3240_shadow[ate_index] = ate; | ||
701 | tioce_mmr_storei(ce_kern, &ce_mmr->ce_ure_ate3240[ate_index], | ||
702 | ate); | ||
703 | ate_index++; | ||
704 | } | ||
705 | } | ||
706 | |||
707 | /** | ||
548 | * tioce_kern_init - init kernel structures related to a given TIOCE | 708 | * tioce_kern_init - init kernel structures related to a given TIOCE |
549 | * @tioce_common: ptr to a cached tioce_common struct that originated in prom | 709 | * @tioce_common: ptr to a cached tioce_common struct that originated in prom |
550 | */ static struct tioce_kernel * | 710 | */ |
711 | static struct tioce_kernel * | ||
551 | tioce_kern_init(struct tioce_common *tioce_common) | 712 | tioce_kern_init(struct tioce_common *tioce_common) |
552 | { | 713 | { |
553 | int i; | 714 | int i; |
715 | int ps; | ||
716 | int dev; | ||
554 | u32 tmp; | 717 | u32 tmp; |
718 | unsigned int seg, bus; | ||
555 | struct tioce *tioce_mmr; | 719 | struct tioce *tioce_mmr; |
556 | struct tioce_kernel *tioce_kern; | 720 | struct tioce_kernel *tioce_kern; |
557 | 721 | ||
@@ -572,9 +736,10 @@ tioce_kern_init(struct tioce_common *tioce_common) | |||
572 | * here to use pci_read_config_xxx() so use the raw_pci_ops vector. | 736 | * here to use pci_read_config_xxx() so use the raw_pci_ops vector. |
573 | */ | 737 | */ |
574 | 738 | ||
575 | raw_pci_ops->read(tioce_common->ce_pcibus.bs_persist_segment, | 739 | seg = tioce_common->ce_pcibus.bs_persist_segment; |
576 | tioce_common->ce_pcibus.bs_persist_busnum, | 740 | bus = tioce_common->ce_pcibus.bs_persist_busnum; |
577 | PCI_DEVFN(2, 0), PCI_SECONDARY_BUS, 1, &tmp); | 741 | |
742 | raw_pci_ops->read(seg, bus, PCI_DEVFN(2, 0), PCI_SECONDARY_BUS, 1,&tmp); | ||
578 | tioce_kern->ce_port1_secondary = (u8) tmp; | 743 | tioce_kern->ce_port1_secondary = (u8) tmp; |
579 | 744 | ||
580 | /* | 745 | /* |
@@ -583,18 +748,76 @@ tioce_kern_init(struct tioce_common *tioce_common) | |||
583 | */ | 748 | */ |
584 | 749 | ||
585 | tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base; | 750 | tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base; |
586 | __sn_clrq_relaxed(&tioce_mmr->ce_ure_page_map, CE_URE_PAGESIZE_MASK); | 751 | tioce_mmr_clri(tioce_kern, &tioce_mmr->ce_ure_page_map, |
587 | __sn_setq_relaxed(&tioce_mmr->ce_ure_page_map, CE_URE_256K_PAGESIZE); | 752 | CE_URE_PAGESIZE_MASK); |
588 | tioce_kern->ce_ate3240_pagesize = KB(256); | 753 | tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_ure_page_map, |
754 | CE_URE_256K_PAGESIZE); | ||
755 | ps = tioce_kern->ce_ate3240_pagesize = KB(256); | ||
589 | 756 | ||
590 | for (i = 0; i < TIOCE_NUM_M40_ATES; i++) { | 757 | for (i = 0; i < TIOCE_NUM_M40_ATES; i++) { |
591 | tioce_kern->ce_ate40_shadow[i] = 0; | 758 | tioce_kern->ce_ate40_shadow[i] = 0; |
592 | writeq(0, &tioce_mmr->ce_ure_ate40[i]); | 759 | tioce_mmr_storei(tioce_kern, &tioce_mmr->ce_ure_ate40[i], 0); |
593 | } | 760 | } |
594 | 761 | ||
595 | for (i = 0; i < TIOCE_NUM_M3240_ATES; i++) { | 762 | for (i = 0; i < TIOCE_NUM_M3240_ATES; i++) { |
596 | tioce_kern->ce_ate3240_shadow[i] = 0; | 763 | tioce_kern->ce_ate3240_shadow[i] = 0; |
597 | writeq(0, &tioce_mmr->ce_ure_ate3240[i]); | 764 | tioce_mmr_storei(tioce_kern, &tioce_mmr->ce_ure_ate3240[i], 0); |
765 | } | ||
766 | |||
767 | /* | ||
768 | * Reserve ATE's corresponding to reserved address ranges. These | ||
769 | * include: | ||
770 | * | ||
771 | * Memory space covered by each PPB mem base/limit register | ||
772 | * Memory space covered by each PPB prefetch base/limit register | ||
773 | * | ||
774 | * These bus ranges are for pio (downstream) traffic only, and so | ||
775 | * cannot be used for DMA. | ||
776 | */ | ||
777 | |||
778 | for (dev = 1; dev <= 2; dev++) { | ||
779 | u64 base, limit; | ||
780 | |||
781 | /* mem base/limit */ | ||
782 | |||
783 | raw_pci_ops->read(seg, bus, PCI_DEVFN(dev, 0), | ||
784 | PCI_MEMORY_BASE, 2, &tmp); | ||
785 | base = (u64)tmp << 16; | ||
786 | |||
787 | raw_pci_ops->read(seg, bus, PCI_DEVFN(dev, 0), | ||
788 | PCI_MEMORY_LIMIT, 2, &tmp); | ||
789 | limit = (u64)tmp << 16; | ||
790 | limit |= 0xfffffUL; | ||
791 | |||
792 | if (base < limit) | ||
793 | tioce_reserve_m32(tioce_kern, base, limit); | ||
794 | |||
795 | /* | ||
796 | * prefetch mem base/limit. The tioce ppb's have 64-bit | ||
797 | * decoders, so read the upper portions w/o checking the | ||
798 | * attributes. | ||
799 | */ | ||
800 | |||
801 | raw_pci_ops->read(seg, bus, PCI_DEVFN(dev, 0), | ||
802 | PCI_PREF_MEMORY_BASE, 2, &tmp); | ||
803 | base = ((u64)tmp & PCI_PREF_RANGE_MASK) << 16; | ||
804 | |||
805 | raw_pci_ops->read(seg, bus, PCI_DEVFN(dev, 0), | ||
806 | PCI_PREF_BASE_UPPER32, 4, &tmp); | ||
807 | base |= (u64)tmp << 32; | ||
808 | |||
809 | raw_pci_ops->read(seg, bus, PCI_DEVFN(dev, 0), | ||
810 | PCI_PREF_MEMORY_LIMIT, 2, &tmp); | ||
811 | |||
812 | limit = ((u64)tmp & PCI_PREF_RANGE_MASK) << 16; | ||
813 | limit |= 0xfffffUL; | ||
814 | |||
815 | raw_pci_ops->read(seg, bus, PCI_DEVFN(dev, 0), | ||
816 | PCI_PREF_LIMIT_UPPER32, 4, &tmp); | ||
817 | limit |= (u64)tmp << 32; | ||
818 | |||
819 | if ((base < limit) && TIOCE_M32_ADDR(base)) | ||
820 | tioce_reserve_m32(tioce_kern, base, limit); | ||
598 | } | 821 | } |
599 | 822 | ||
600 | return tioce_kern; | 823 | return tioce_kern; |
@@ -614,6 +837,7 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info) | |||
614 | { | 837 | { |
615 | struct pcidev_info *pcidev_info; | 838 | struct pcidev_info *pcidev_info; |
616 | struct tioce_common *ce_common; | 839 | struct tioce_common *ce_common; |
840 | struct tioce_kernel *ce_kern; | ||
617 | struct tioce *ce_mmr; | 841 | struct tioce *ce_mmr; |
618 | u64 force_int_val; | 842 | u64 force_int_val; |
619 | 843 | ||
@@ -629,6 +853,29 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info) | |||
629 | 853 | ||
630 | ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info; | 854 | ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info; |
631 | ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base; | 855 | ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base; |
856 | ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private; | ||
857 | |||
858 | /* | ||
859 | * TIOCE Rev A workaround (PV 945826), force an interrupt by writing | ||
860 | * the TIO_INTx register directly (1/26/2006) | ||
861 | */ | ||
862 | if (ce_common->ce_rev == TIOCE_REV_A) { | ||
863 | u64 int_bit_mask = (1ULL << sn_irq_info->irq_int_bit); | ||
864 | u64 status; | ||
865 | |||
866 | tioce_mmr_load(ce_kern, &ce_mmr->ce_adm_int_status, &status); | ||
867 | if (status & int_bit_mask) { | ||
868 | u64 force_irq = (1 << 8) | sn_irq_info->irq_irq; | ||
869 | u64 ctalk = sn_irq_info->irq_xtalkaddr; | ||
870 | u64 nasid, offset; | ||
871 | |||
872 | nasid = (ctalk & CTALK_NASID_MASK) >> CTALK_NASID_SHFT; | ||
873 | offset = (ctalk & CTALK_NODE_OFFSET); | ||
874 | HUB_S(TIO_IOSPACE_ADDR(nasid, offset), force_irq); | ||
875 | } | ||
876 | |||
877 | return; | ||
878 | } | ||
632 | 879 | ||
633 | /* | 880 | /* |
634 | * irq_int_bit is originally set up by prom, and holds the interrupt | 881 | * irq_int_bit is originally set up by prom, and holds the interrupt |
@@ -666,7 +913,7 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info) | |||
666 | default: | 913 | default: |
667 | return; | 914 | return; |
668 | } | 915 | } |
669 | writeq(force_int_val, &ce_mmr->ce_adm_force_int); | 916 | tioce_mmr_storei(ce_kern, &ce_mmr->ce_adm_force_int, force_int_val); |
670 | } | 917 | } |
671 | 918 | ||
672 | /** | 919 | /** |
@@ -685,6 +932,7 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info) | |||
685 | { | 932 | { |
686 | struct pcidev_info *pcidev_info; | 933 | struct pcidev_info *pcidev_info; |
687 | struct tioce_common *ce_common; | 934 | struct tioce_common *ce_common; |
935 | struct tioce_kernel *ce_kern; | ||
688 | struct tioce *ce_mmr; | 936 | struct tioce *ce_mmr; |
689 | int bit; | 937 | int bit; |
690 | u64 vector; | 938 | u64 vector; |
@@ -695,14 +943,15 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info) | |||
695 | 943 | ||
696 | ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info; | 944 | ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info; |
697 | ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base; | 945 | ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base; |
946 | ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private; | ||
698 | 947 | ||
699 | bit = sn_irq_info->irq_int_bit; | 948 | bit = sn_irq_info->irq_int_bit; |
700 | 949 | ||
701 | __sn_setq_relaxed(&ce_mmr->ce_adm_int_mask, (1UL << bit)); | 950 | tioce_mmr_seti(ce_kern, &ce_mmr->ce_adm_int_mask, (1UL << bit)); |
702 | vector = (u64)sn_irq_info->irq_irq << INTR_VECTOR_SHFT; | 951 | vector = (u64)sn_irq_info->irq_irq << INTR_VECTOR_SHFT; |
703 | vector |= sn_irq_info->irq_xtalkaddr; | 952 | vector |= sn_irq_info->irq_xtalkaddr; |
704 | writeq(vector, &ce_mmr->ce_adm_int_dest[bit]); | 953 | tioce_mmr_storei(ce_kern, &ce_mmr->ce_adm_int_dest[bit], vector); |
705 | __sn_clrq_relaxed(&ce_mmr->ce_adm_int_mask, (1UL << bit)); | 954 | tioce_mmr_clri(ce_kern, &ce_mmr->ce_adm_int_mask, (1UL << bit)); |
706 | 955 | ||
707 | tioce_force_interrupt(sn_irq_info); | 956 | tioce_force_interrupt(sn_irq_info); |
708 | } | 957 | } |
@@ -721,7 +970,11 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info) | |||
721 | static void * | 970 | static void * |
722 | tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *controller) | 971 | tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *controller) |
723 | { | 972 | { |
973 | int my_nasid; | ||
974 | cnodeid_t my_cnode, mem_cnode; | ||
724 | struct tioce_common *tioce_common; | 975 | struct tioce_common *tioce_common; |
976 | struct tioce_kernel *tioce_kern; | ||
977 | struct tioce *tioce_mmr; | ||
725 | 978 | ||
726 | /* | 979 | /* |
727 | * Allocate kernel bus soft and copy from prom. | 980 | * Allocate kernel bus soft and copy from prom. |
@@ -734,11 +987,23 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
734 | memcpy(tioce_common, prom_bussoft, sizeof(struct tioce_common)); | 987 | memcpy(tioce_common, prom_bussoft, sizeof(struct tioce_common)); |
735 | tioce_common->ce_pcibus.bs_base |= __IA64_UNCACHED_OFFSET; | 988 | tioce_common->ce_pcibus.bs_base |= __IA64_UNCACHED_OFFSET; |
736 | 989 | ||
737 | if (tioce_kern_init(tioce_common) == NULL) { | 990 | tioce_kern = tioce_kern_init(tioce_common); |
991 | if (tioce_kern == NULL) { | ||
738 | kfree(tioce_common); | 992 | kfree(tioce_common); |
739 | return NULL; | 993 | return NULL; |
740 | } | 994 | } |
741 | 995 | ||
996 | /* | ||
997 | * Clear out any transient errors before registering the error | ||
998 | * interrupt handler. | ||
999 | */ | ||
1000 | |||
1001 | tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base; | ||
1002 | tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_int_status_alias, ~0ULL); | ||
1003 | tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_error_summary_alias, | ||
1004 | ~0ULL); | ||
1005 | tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_dre_comp_err_addr, ~0ULL); | ||
1006 | |||
742 | if (request_irq(SGI_PCIASIC_ERROR, | 1007 | if (request_irq(SGI_PCIASIC_ERROR, |
743 | tioce_error_intr_handler, | 1008 | tioce_error_intr_handler, |
744 | SA_SHIRQ, "TIOCE error", (void *)tioce_common)) | 1009 | SA_SHIRQ, "TIOCE error", (void *)tioce_common)) |
@@ -750,6 +1015,21 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
750 | tioce_common->ce_pcibus.bs_persist_segment, | 1015 | tioce_common->ce_pcibus.bs_persist_segment, |
751 | tioce_common->ce_pcibus.bs_persist_busnum); | 1016 | tioce_common->ce_pcibus.bs_persist_busnum); |
752 | 1017 | ||
1018 | /* | ||
1019 | * identify closest nasid for memory allocations | ||
1020 | */ | ||
1021 | |||
1022 | my_nasid = NASID_GET(tioce_common->ce_pcibus.bs_base); | ||
1023 | my_cnode = nasid_to_cnodeid(my_nasid); | ||
1024 | |||
1025 | if (sn_hwperf_get_nearest_node(my_cnode, &mem_cnode, NULL) < 0) { | ||
1026 | printk(KERN_WARNING "tioce_bus_fixup: failed to find " | ||
1027 | "closest node with MEM to TIO node %d\n", my_cnode); | ||
1028 | mem_cnode = (cnodeid_t)-1; /* use any node */ | ||
1029 | } | ||
1030 | |||
1031 | controller->node = mem_cnode; | ||
1032 | |||
753 | return tioce_common; | 1033 | return tioce_common; |
754 | } | 1034 | } |
755 | 1035 | ||
diff --git a/arch/m32r/Makefile b/arch/m32r/Makefile index 983d438b14b6..4b3c90ba926c 100644 --- a/arch/m32r/Makefile +++ b/arch/m32r/Makefile | |||
@@ -12,14 +12,14 @@ CFLAGS_MODULE += -mmodel=large | |||
12 | 12 | ||
13 | ifdef CONFIG_CHIP_VDEC2 | 13 | ifdef CONFIG_CHIP_VDEC2 |
14 | cflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -Wa,-bitinst | 14 | cflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -Wa,-bitinst |
15 | aflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -Wa,-bitinst | 15 | aflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -O2 -Wa,-bitinst -Wa,-no-parallel |
16 | else | 16 | else |
17 | cflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -m32r2 | 17 | cflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -m32r2 |
18 | aflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -m32r2 | 18 | aflags-$(CONFIG_ISA_M32R2) += -DNO_FPU -m32r2 -O2 |
19 | endif | 19 | endif |
20 | 20 | ||
21 | cflags-$(CONFIG_ISA_M32R) += -DNO_FPU | 21 | cflags-$(CONFIG_ISA_M32R) += -DNO_FPU |
22 | aflags-$(CONFIG_ISA_M32R) += -DNO_FPU -Wa,-no-bitinst | 22 | aflags-$(CONFIG_ISA_M32R) += -DNO_FPU -O2 -Wa,-no-bitinst |
23 | 23 | ||
24 | CFLAGS += $(cflags-y) | 24 | CFLAGS += $(cflags-y) |
25 | AFLAGS += $(aflags-y) | 25 | AFLAGS += $(aflags-y) |
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index 71763f7a1d19..cb33097fefc4 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c | |||
@@ -36,7 +36,7 @@ int do_signal(struct pt_regs *, sigset_t *); | |||
36 | asmlinkage int | 36 | asmlinkage int |
37 | sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, | 37 | sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, |
38 | unsigned long r2, unsigned long r3, unsigned long r4, | 38 | unsigned long r2, unsigned long r3, unsigned long r4, |
39 | unsigned long r5, unsigned long r6, struct pt_regs regs) | 39 | unsigned long r5, unsigned long r6, struct pt_regs *regs) |
40 | { | 40 | { |
41 | sigset_t saveset, newset; | 41 | sigset_t saveset, newset; |
42 | 42 | ||
@@ -54,21 +54,21 @@ sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, | |||
54 | recalc_sigpending(); | 54 | recalc_sigpending(); |
55 | spin_unlock_irq(¤t->sighand->siglock); | 55 | spin_unlock_irq(¤t->sighand->siglock); |
56 | 56 | ||
57 | regs.r0 = -EINTR; | 57 | regs->r0 = -EINTR; |
58 | while (1) { | 58 | while (1) { |
59 | current->state = TASK_INTERRUPTIBLE; | 59 | current->state = TASK_INTERRUPTIBLE; |
60 | schedule(); | 60 | schedule(); |
61 | if (do_signal(®s, &saveset)) | 61 | if (do_signal(regs, &saveset)) |
62 | return regs.r0; | 62 | return regs->r0; |
63 | } | 63 | } |
64 | } | 64 | } |
65 | 65 | ||
66 | asmlinkage int | 66 | asmlinkage int |
67 | sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, | 67 | sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, |
68 | unsigned long r2, unsigned long r3, unsigned long r4, | 68 | unsigned long r2, unsigned long r3, unsigned long r4, |
69 | unsigned long r5, unsigned long r6, struct pt_regs regs) | 69 | unsigned long r5, unsigned long r6, struct pt_regs *regs) |
70 | { | 70 | { |
71 | return do_sigaltstack(uss, uoss, regs.spu); | 71 | return do_sigaltstack(uss, uoss, regs->spu); |
72 | } | 72 | } |
73 | 73 | ||
74 | 74 | ||
@@ -140,11 +140,10 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, | |||
140 | asmlinkage int | 140 | asmlinkage int |
141 | sys_rt_sigreturn(unsigned long r0, unsigned long r1, | 141 | sys_rt_sigreturn(unsigned long r0, unsigned long r1, |
142 | unsigned long r2, unsigned long r3, unsigned long r4, | 142 | unsigned long r2, unsigned long r3, unsigned long r4, |
143 | unsigned long r5, unsigned long r6, struct pt_regs regs) | 143 | unsigned long r5, unsigned long r6, struct pt_regs *regs) |
144 | { | 144 | { |
145 | struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs.spu; | 145 | struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs->spu; |
146 | sigset_t set; | 146 | sigset_t set; |
147 | stack_t st; | ||
148 | int result; | 147 | int result; |
149 | 148 | ||
150 | if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | 149 | if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) |
@@ -158,14 +157,11 @@ sys_rt_sigreturn(unsigned long r0, unsigned long r1, | |||
158 | recalc_sigpending(); | 157 | recalc_sigpending(); |
159 | spin_unlock_irq(¤t->sighand->siglock); | 158 | spin_unlock_irq(¤t->sighand->siglock); |
160 | 159 | ||
161 | if (restore_sigcontext(®s, &frame->uc.uc_mcontext, &result)) | 160 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &result)) |
162 | goto badframe; | 161 | goto badframe; |
163 | 162 | ||
164 | if (__copy_from_user(&st, &frame->uc.uc_stack, sizeof(st))) | 163 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->spu) == -EFAULT) |
165 | goto badframe; | 164 | goto badframe; |
166 | /* It is more difficult to avoid calling this function than to | ||
167 | call it and ignore errors. */ | ||
168 | do_sigaltstack(&st, NULL, regs.spu); | ||
169 | 165 | ||
170 | return result; | 166 | return result; |
171 | 167 | ||
diff --git a/arch/m32r/kernel/sys_m32r.c b/arch/m32r/kernel/sys_m32r.c index fe55b28d3725..670cb49210af 100644 --- a/arch/m32r/kernel/sys_m32r.c +++ b/arch/m32r/kernel/sys_m32r.c | |||
@@ -29,28 +29,7 @@ | |||
29 | 29 | ||
30 | /* | 30 | /* |
31 | * sys_tas() - test-and-set | 31 | * sys_tas() - test-and-set |
32 | * linuxthreads testing version | ||
33 | */ | 32 | */ |
34 | #ifndef CONFIG_SMP | ||
35 | asmlinkage int sys_tas(int *addr) | ||
36 | { | ||
37 | int oldval; | ||
38 | unsigned long flags; | ||
39 | |||
40 | if (!access_ok(VERIFY_WRITE, addr, sizeof (int))) | ||
41 | return -EFAULT; | ||
42 | local_irq_save(flags); | ||
43 | oldval = *addr; | ||
44 | if (!oldval) | ||
45 | *addr = 1; | ||
46 | local_irq_restore(flags); | ||
47 | return oldval; | ||
48 | } | ||
49 | #else /* CONFIG_SMP */ | ||
50 | #include <linux/spinlock.h> | ||
51 | |||
52 | static DEFINE_SPINLOCK(tas_lock); | ||
53 | |||
54 | asmlinkage int sys_tas(int *addr) | 33 | asmlinkage int sys_tas(int *addr) |
55 | { | 34 | { |
56 | int oldval; | 35 | int oldval; |
@@ -58,15 +37,43 @@ asmlinkage int sys_tas(int *addr) | |||
58 | if (!access_ok(VERIFY_WRITE, addr, sizeof (int))) | 37 | if (!access_ok(VERIFY_WRITE, addr, sizeof (int))) |
59 | return -EFAULT; | 38 | return -EFAULT; |
60 | 39 | ||
61 | _raw_spin_lock(&tas_lock); | 40 | /* atomic operation: |
62 | oldval = *addr; | 41 | * oldval = *addr; *addr = 1; |
63 | if (!oldval) | 42 | */ |
64 | *addr = 1; | 43 | __asm__ __volatile__ ( |
65 | _raw_spin_unlock(&tas_lock); | 44 | DCACHE_CLEAR("%0", "r4", "%1") |
45 | " .fillinsn\n" | ||
46 | "1:\n" | ||
47 | " lock %0, @%1 -> unlock %2, @%1\n" | ||
48 | "2:\n" | ||
49 | /* NOTE: | ||
50 | * The m32r processor can accept interrupts only | ||
51 | * at the 32-bit instruction boundary. | ||
52 | * So, in the above code, the "unlock" instruction | ||
53 | * can be executed continuously after the "lock" | ||
54 | * instruction execution without any interruptions. | ||
55 | */ | ||
56 | ".section .fixup,\"ax\"\n" | ||
57 | " .balign 4\n" | ||
58 | "3: ldi %0, #%3\n" | ||
59 | " seth r14, #high(2b)\n" | ||
60 | " or3 r14, r14, #low(2b)\n" | ||
61 | " jmp r14\n" | ||
62 | ".previous\n" | ||
63 | ".section __ex_table,\"a\"\n" | ||
64 | " .balign 4\n" | ||
65 | " .long 1b,3b\n" | ||
66 | ".previous\n" | ||
67 | : "=&r" (oldval) | ||
68 | : "r" (addr), "r" (1), "i"(-EFAULT) | ||
69 | : "r14", "memory" | ||
70 | #ifdef CONFIG_CHIP_M32700_TS1 | ||
71 | , "r4" | ||
72 | #endif /* CONFIG_CHIP_M32700_TS1 */ | ||
73 | ); | ||
66 | 74 | ||
67 | return oldval; | 75 | return oldval; |
68 | } | 76 | } |
69 | #endif /* CONFIG_SMP */ | ||
70 | 77 | ||
71 | /* | 78 | /* |
72 | * sys_pipe() is the normal C calling standard for creating | 79 | * sys_pipe() is the normal C calling standard for creating |
diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c index ce16bbe26a52..2d1dd2106c4d 100644 --- a/arch/m32r/lib/usercopy.c +++ b/arch/m32r/lib/usercopy.c | |||
@@ -64,7 +64,7 @@ do { \ | |||
64 | " .balign 4\n" \ | 64 | " .balign 4\n" \ |
65 | " .long 0b,3b\n" \ | 65 | " .long 0b,3b\n" \ |
66 | ".previous" \ | 66 | ".previous" \ |
67 | : "=r"(res), "=r"(count), "=&r" (__d0), "=&r" (__d1), \ | 67 | : "=&r"(res), "=&r"(count), "=&r" (__d0), "=&r" (__d1), \ |
68 | "=&r" (__d2) \ | 68 | "=&r" (__d2) \ |
69 | : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), \ | 69 | : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), \ |
70 | "4"(dst) \ | 70 | "4"(dst) \ |
@@ -101,7 +101,7 @@ do { \ | |||
101 | " .balign 4\n" \ | 101 | " .balign 4\n" \ |
102 | " .long 0b,3b\n" \ | 102 | " .long 0b,3b\n" \ |
103 | ".previous" \ | 103 | ".previous" \ |
104 | : "=r"(res), "=r"(count), "=&r" (__d0), "=&r" (__d1), \ | 104 | : "=&r"(res), "=&r"(count), "=&r" (__d0), "=&r" (__d1), \ |
105 | "=&r" (__d2) \ | 105 | "=&r" (__d2) \ |
106 | : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), \ | 106 | : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), \ |
107 | "4"(dst) \ | 107 | "4"(dst) \ |
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 96b919828053..8849439e88dd 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -21,6 +21,10 @@ config GENERIC_CALIBRATE_DELAY | |||
21 | bool | 21 | bool |
22 | default y | 22 | default y |
23 | 23 | ||
24 | config TIME_LOW_RES | ||
25 | bool | ||
26 | default y | ||
27 | |||
24 | config ARCH_MAY_HAVE_PC_FDC | 28 | config ARCH_MAY_HAVE_PC_FDC |
25 | bool | 29 | bool |
26 | depends on Q40 || (BROKEN && SUN3X) | 30 | depends on Q40 || (BROKEN && SUN3X) |
diff --git a/arch/m68k/fpsp040/bindec.S b/arch/m68k/fpsp040/bindec.S index 3ba446a99a12..72f1159cb804 100644 --- a/arch/m68k/fpsp040/bindec.S +++ b/arch/m68k/fpsp040/bindec.S | |||
@@ -131,9 +131,8 @@ | |||
131 | | Copyright (C) Motorola, Inc. 1990 | 131 | | Copyright (C) Motorola, Inc. 1990 |
132 | | All Rights Reserved | 132 | | All Rights Reserved |
133 | | | 133 | | |
134 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 134 | | For details on the license for this file, please see the |
135 | | The copyright notice above does not evidence any | 135 | | file, README, in this same directory. |
136 | | actual or intended publication of such source code. | ||
137 | 136 | ||
138 | |BINDEC idnt 2,1 | Motorola 040 Floating Point Software Package | 137 | |BINDEC idnt 2,1 | Motorola 040 Floating Point Software Package |
139 | 138 | ||
diff --git a/arch/m68k/fpsp040/binstr.S b/arch/m68k/fpsp040/binstr.S index d53555c0a2b6..8a05ba92a8a0 100644 --- a/arch/m68k/fpsp040/binstr.S +++ b/arch/m68k/fpsp040/binstr.S | |||
@@ -60,9 +60,8 @@ | |||
60 | | Copyright (C) Motorola, Inc. 1990 | 60 | | Copyright (C) Motorola, Inc. 1990 |
61 | | All Rights Reserved | 61 | | All Rights Reserved |
62 | | | 62 | | |
63 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 63 | | For details on the license for this file, please see the |
64 | | The copyright notice above does not evidence any | 64 | | file, README, in this same directory. |
65 | | actual or intended publication of such source code. | ||
66 | 65 | ||
67 | |BINSTR idnt 2,1 | Motorola 040 Floating Point Software Package | 66 | |BINSTR idnt 2,1 | Motorola 040 Floating Point Software Package |
68 | 67 | ||
diff --git a/arch/m68k/fpsp040/bugfix.S b/arch/m68k/fpsp040/bugfix.S index 942c4f6f4fd1..3bb9c84bb058 100644 --- a/arch/m68k/fpsp040/bugfix.S +++ b/arch/m68k/fpsp040/bugfix.S | |||
@@ -152,9 +152,8 @@ | |||
152 | | Copyright (C) Motorola, Inc. 1990 | 152 | | Copyright (C) Motorola, Inc. 1990 |
153 | | All Rights Reserved | 153 | | All Rights Reserved |
154 | | | 154 | | |
155 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 155 | | For details on the license for this file, please see the |
156 | | The copyright notice above does not evidence any | 156 | | file, README, in this same directory. |
157 | | actual or intended publication of such source code. | ||
158 | 157 | ||
159 | |BUGFIX idnt 2,1 | Motorola 040 Floating Point Software Package | 158 | |BUGFIX idnt 2,1 | Motorola 040 Floating Point Software Package |
160 | 159 | ||
diff --git a/arch/m68k/fpsp040/decbin.S b/arch/m68k/fpsp040/decbin.S index 2160609e328d..16ed796bad87 100644 --- a/arch/m68k/fpsp040/decbin.S +++ b/arch/m68k/fpsp040/decbin.S | |||
@@ -69,9 +69,8 @@ | |||
69 | | Copyright (C) Motorola, Inc. 1990 | 69 | | Copyright (C) Motorola, Inc. 1990 |
70 | | All Rights Reserved | 70 | | All Rights Reserved |
71 | | | 71 | | |
72 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 72 | | For details on the license for this file, please see the |
73 | | The copyright notice above does not evidence any | 73 | | file, README, in this same directory. |
74 | | actual or intended publication of such source code. | ||
75 | 74 | ||
76 | |DECBIN idnt 2,1 | Motorola 040 Floating Point Software Package | 75 | |DECBIN idnt 2,1 | Motorola 040 Floating Point Software Package |
77 | 76 | ||
diff --git a/arch/m68k/fpsp040/do_func.S b/arch/m68k/fpsp040/do_func.S index 81f6a9856dce..3eff99a80413 100644 --- a/arch/m68k/fpsp040/do_func.S +++ b/arch/m68k/fpsp040/do_func.S | |||
@@ -22,9 +22,8 @@ | |||
22 | | Copyright (C) Motorola, Inc. 1990 | 22 | | Copyright (C) Motorola, Inc. 1990 |
23 | | All Rights Reserved | 23 | | All Rights Reserved |
24 | | | 24 | | |
25 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 25 | | For details on the license for this file, please see the |
26 | | The copyright notice above does not evidence any | 26 | | file, README, in this same directory. |
27 | | actual or intended publication of such source code. | ||
28 | 27 | ||
29 | DO_FUNC: |idnt 2,1 | Motorola 040 Floating Point Software Package | 28 | DO_FUNC: |idnt 2,1 | Motorola 040 Floating Point Software Package |
30 | 29 | ||
diff --git a/arch/m68k/fpsp040/fpsp.h b/arch/m68k/fpsp040/fpsp.h index 984a4eb8010a..5df4cd772934 100644 --- a/arch/m68k/fpsp040/fpsp.h +++ b/arch/m68k/fpsp040/fpsp.h | |||
@@ -5,9 +5,8 @@ | |||
5 | | Copyright (C) Motorola, Inc. 1990 | 5 | | Copyright (C) Motorola, Inc. 1990 |
6 | | All Rights Reserved | 6 | | All Rights Reserved |
7 | | | 7 | | |
8 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 8 | | For details on the license for this file, please see the |
9 | | The copyright notice above does not evidence any | 9 | | file, README, in this same directory. |
10 | | actual or intended publication of such source code. | ||
11 | 10 | ||
12 | | fpsp.h --- stack frame offsets during FPSP exception handling | 11 | | fpsp.h --- stack frame offsets during FPSP exception handling |
13 | | | 12 | | |
diff --git a/arch/m68k/fpsp040/gen_except.S b/arch/m68k/fpsp040/gen_except.S index 401d06f39f73..3642cb7e3641 100644 --- a/arch/m68k/fpsp040/gen_except.S +++ b/arch/m68k/fpsp040/gen_except.S | |||
@@ -29,9 +29,8 @@ | |||
29 | | Copyright (C) Motorola, Inc. 1990 | 29 | | Copyright (C) Motorola, Inc. 1990 |
30 | | All Rights Reserved | 30 | | All Rights Reserved |
31 | | | 31 | | |
32 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 32 | | For details on the license for this file, please see the |
33 | | The copyright notice above does not evidence any | 33 | | file, README, in this same directory. |
34 | | actual or intended publication of such source code. | ||
35 | 34 | ||
36 | GEN_EXCEPT: |idnt 2,1 | Motorola 040 Floating Point Software Package | 35 | GEN_EXCEPT: |idnt 2,1 | Motorola 040 Floating Point Software Package |
37 | 36 | ||
diff --git a/arch/m68k/fpsp040/get_op.S b/arch/m68k/fpsp040/get_op.S index c7c2f3727425..64c36d79ef83 100644 --- a/arch/m68k/fpsp040/get_op.S +++ b/arch/m68k/fpsp040/get_op.S | |||
@@ -54,9 +54,8 @@ | |||
54 | | Copyright (C) Motorola, Inc. 1990 | 54 | | Copyright (C) Motorola, Inc. 1990 |
55 | | All Rights Reserved | 55 | | All Rights Reserved |
56 | | | 56 | | |
57 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 57 | | For details on the license for this file, please see the |
58 | | The copyright notice above does not evidence any | 58 | | file, README, in this same directory. |
59 | | actual or intended publication of such source code. | ||
60 | 59 | ||
61 | GET_OP: |idnt 2,1 | Motorola 040 Floating Point Software Package | 60 | GET_OP: |idnt 2,1 | Motorola 040 Floating Point Software Package |
62 | 61 | ||
diff --git a/arch/m68k/fpsp040/kernel_ex.S b/arch/m68k/fpsp040/kernel_ex.S index 476b711967ce..45bcf3455d34 100644 --- a/arch/m68k/fpsp040/kernel_ex.S +++ b/arch/m68k/fpsp040/kernel_ex.S | |||
@@ -12,9 +12,8 @@ | |||
12 | | Copyright (C) Motorola, Inc. 1990 | 12 | | Copyright (C) Motorola, Inc. 1990 |
13 | | All Rights Reserved | 13 | | All Rights Reserved |
14 | | | 14 | | |
15 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 15 | | For details on the license for this file, please see the |
16 | | The copyright notice above does not evidence any | 16 | | file, README, in this same directory. |
17 | | actual or intended publication of such source code. | ||
18 | 17 | ||
19 | KERNEL_EX: |idnt 2,1 | Motorola 040 Floating Point Software Package | 18 | KERNEL_EX: |idnt 2,1 | Motorola 040 Floating Point Software Package |
20 | 19 | ||
diff --git a/arch/m68k/fpsp040/res_func.S b/arch/m68k/fpsp040/res_func.S index 8f6b95217865..d9cdf4383545 100644 --- a/arch/m68k/fpsp040/res_func.S +++ b/arch/m68k/fpsp040/res_func.S | |||
@@ -16,9 +16,8 @@ | |||
16 | | Copyright (C) Motorola, Inc. 1990 | 16 | | Copyright (C) Motorola, Inc. 1990 |
17 | | All Rights Reserved | 17 | | All Rights Reserved |
18 | | | 18 | | |
19 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 19 | | For details on the license for this file, please see the |
20 | | The copyright notice above does not evidence any | 20 | | file, README, in this same directory. |
21 | | actual or intended publication of such source code. | ||
22 | 21 | ||
23 | RES_FUNC: |idnt 2,1 | Motorola 040 Floating Point Software Package | 22 | RES_FUNC: |idnt 2,1 | Motorola 040 Floating Point Software Package |
24 | 23 | ||
diff --git a/arch/m68k/fpsp040/round.S b/arch/m68k/fpsp040/round.S index 00f98068783f..f84ae0dd4358 100644 --- a/arch/m68k/fpsp040/round.S +++ b/arch/m68k/fpsp040/round.S | |||
@@ -8,9 +8,8 @@ | |||
8 | | Copyright (C) Motorola, Inc. 1990 | 8 | | Copyright (C) Motorola, Inc. 1990 |
9 | | All Rights Reserved | 9 | | All Rights Reserved |
10 | | | 10 | | |
11 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 11 | | For details on the license for this file, please see the |
12 | | The copyright notice above does not evidence any | 12 | | file, README, in this same directory. |
13 | | actual or intended publication of such source code. | ||
14 | 13 | ||
15 | |ROUND idnt 2,1 | Motorola 040 Floating Point Software Package | 14 | |ROUND idnt 2,1 | Motorola 040 Floating Point Software Package |
16 | 15 | ||
diff --git a/arch/m68k/fpsp040/sacos.S b/arch/m68k/fpsp040/sacos.S index 83b00ab1c48f..513c7cca7318 100644 --- a/arch/m68k/fpsp040/sacos.S +++ b/arch/m68k/fpsp040/sacos.S | |||
@@ -38,9 +38,8 @@ | |||
38 | | Copyright (C) Motorola, Inc. 1990 | 38 | | Copyright (C) Motorola, Inc. 1990 |
39 | | All Rights Reserved | 39 | | All Rights Reserved |
40 | | | 40 | | |
41 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 41 | | For details on the license for this file, please see the |
42 | | The copyright notice above does not evidence any | 42 | | file, README, in this same directory. |
43 | | actual or intended publication of such source code. | ||
44 | 43 | ||
45 | |SACOS idnt 2,1 | Motorola 040 Floating Point Software Package | 44 | |SACOS idnt 2,1 | Motorola 040 Floating Point Software Package |
46 | 45 | ||
diff --git a/arch/m68k/fpsp040/sasin.S b/arch/m68k/fpsp040/sasin.S index 5647a6043903..2a269a58ceaa 100644 --- a/arch/m68k/fpsp040/sasin.S +++ b/arch/m68k/fpsp040/sasin.S | |||
@@ -38,9 +38,8 @@ | |||
38 | | Copyright (C) Motorola, Inc. 1990 | 38 | | Copyright (C) Motorola, Inc. 1990 |
39 | | All Rights Reserved | 39 | | All Rights Reserved |
40 | | | 40 | | |
41 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 41 | | For details on the license for this file, please see the |
42 | | The copyright notice above does not evidence any | 42 | | file, README, in this same directory. |
43 | | actual or intended publication of such source code. | ||
44 | 43 | ||
45 | |SASIN idnt 2,1 | Motorola 040 Floating Point Software Package | 44 | |SASIN idnt 2,1 | Motorola 040 Floating Point Software Package |
46 | 45 | ||
diff --git a/arch/m68k/fpsp040/satan.S b/arch/m68k/fpsp040/satan.S index 20dae222d51e..c8a664998f92 100644 --- a/arch/m68k/fpsp040/satan.S +++ b/arch/m68k/fpsp040/satan.S | |||
@@ -43,9 +43,8 @@ | |||
43 | | Copyright (C) Motorola, Inc. 1990 | 43 | | Copyright (C) Motorola, Inc. 1990 |
44 | | All Rights Reserved | 44 | | All Rights Reserved |
45 | | | 45 | | |
46 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 46 | | For details on the license for this file, please see the |
47 | | The copyright notice above does not evidence any | 47 | | file, README, in this same directory. |
48 | | actual or intended publication of such source code. | ||
49 | 48 | ||
50 | |satan idnt 2,1 | Motorola 040 Floating Point Software Package | 49 | |satan idnt 2,1 | Motorola 040 Floating Point Software Package |
51 | 50 | ||
diff --git a/arch/m68k/fpsp040/satanh.S b/arch/m68k/fpsp040/satanh.S index 20f07810bcda..ba91f77a7571 100644 --- a/arch/m68k/fpsp040/satanh.S +++ b/arch/m68k/fpsp040/satanh.S | |||
@@ -45,9 +45,8 @@ | |||
45 | | Copyright (C) Motorola, Inc. 1990 | 45 | | Copyright (C) Motorola, Inc. 1990 |
46 | | All Rights Reserved | 46 | | All Rights Reserved |
47 | | | 47 | | |
48 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 48 | | For details on the license for this file, please see the |
49 | | The copyright notice above does not evidence any | 49 | | file, README, in this same directory. |
50 | | actual or intended publication of such source code. | ||
51 | 50 | ||
52 | |satanh idnt 2,1 | Motorola 040 Floating Point Software Package | 51 | |satanh idnt 2,1 | Motorola 040 Floating Point Software Package |
53 | 52 | ||
diff --git a/arch/m68k/fpsp040/scale.S b/arch/m68k/fpsp040/scale.S index 5c9b805265f2..04829dd4f1f4 100644 --- a/arch/m68k/fpsp040/scale.S +++ b/arch/m68k/fpsp040/scale.S | |||
@@ -21,9 +21,8 @@ | |||
21 | | Copyright (C) Motorola, Inc. 1990 | 21 | | Copyright (C) Motorola, Inc. 1990 |
22 | | All Rights Reserved | 22 | | All Rights Reserved |
23 | | | 23 | | |
24 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 24 | | For details on the license for this file, please see the |
25 | | The copyright notice above does not evidence any | 25 | | file, README, in this same directory. |
26 | | actual or intended publication of such source code. | ||
27 | 26 | ||
28 | |SCALE idnt 2,1 | Motorola 040 Floating Point Software Package | 27 | |SCALE idnt 2,1 | Motorola 040 Floating Point Software Package |
29 | 28 | ||
diff --git a/arch/m68k/fpsp040/scosh.S b/arch/m68k/fpsp040/scosh.S index e81edbb87642..07d3a4d7c86d 100644 --- a/arch/m68k/fpsp040/scosh.S +++ b/arch/m68k/fpsp040/scosh.S | |||
@@ -49,9 +49,8 @@ | |||
49 | | Copyright (C) Motorola, Inc. 1990 | 49 | | Copyright (C) Motorola, Inc. 1990 |
50 | | All Rights Reserved | 50 | | All Rights Reserved |
51 | | | 51 | | |
52 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 52 | | For details on the license for this file, please see the |
53 | | The copyright notice above does not evidence any | 53 | | file, README, in this same directory. |
54 | | actual or intended publication of such source code. | ||
55 | 54 | ||
56 | |SCOSH idnt 2,1 | Motorola 040 Floating Point Software Package | 55 | |SCOSH idnt 2,1 | Motorola 040 Floating Point Software Package |
57 | 56 | ||
diff --git a/arch/m68k/fpsp040/setox.S b/arch/m68k/fpsp040/setox.S index 0aa75f9bf7d1..145af5447581 100644 --- a/arch/m68k/fpsp040/setox.S +++ b/arch/m68k/fpsp040/setox.S | |||
@@ -331,9 +331,8 @@ | |||
331 | | Copyright (C) Motorola, Inc. 1990 | 331 | | Copyright (C) Motorola, Inc. 1990 |
332 | | All Rights Reserved | 332 | | All Rights Reserved |
333 | | | 333 | | |
334 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 334 | | For details on the license for this file, please see the |
335 | | The copyright notice above does not evidence any | 335 | | file, README, in this same directory. |
336 | | actual or intended publication of such source code. | ||
337 | 336 | ||
338 | |setox idnt 2,1 | Motorola 040 Floating Point Software Package | 337 | |setox idnt 2,1 | Motorola 040 Floating Point Software Package |
339 | 338 | ||
diff --git a/arch/m68k/fpsp040/sgetem.S b/arch/m68k/fpsp040/sgetem.S index 0fcbd045ba75..d9234f4aed57 100644 --- a/arch/m68k/fpsp040/sgetem.S +++ b/arch/m68k/fpsp040/sgetem.S | |||
@@ -24,9 +24,8 @@ | |||
24 | | Copyright (C) Motorola, Inc. 1990 | 24 | | Copyright (C) Motorola, Inc. 1990 |
25 | | All Rights Reserved | 25 | | All Rights Reserved |
26 | | | 26 | | |
27 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 27 | | For details on the license for this file, please see the |
28 | | The copyright notice above does not evidence any | 28 | | file, README, in this same directory. |
29 | | actual or intended publication of such source code. | ||
30 | 29 | ||
31 | |SGETEM idnt 2,1 | Motorola 040 Floating Point Software Package | 30 | |SGETEM idnt 2,1 | Motorola 040 Floating Point Software Package |
32 | 31 | ||
diff --git a/arch/m68k/fpsp040/sint.S b/arch/m68k/fpsp040/sint.S index 0f9bd28e55a0..0e92d4e5d231 100644 --- a/arch/m68k/fpsp040/sint.S +++ b/arch/m68k/fpsp040/sint.S | |||
@@ -51,9 +51,8 @@ | |||
51 | | Copyright (C) Motorola, Inc. 1990 | 51 | | Copyright (C) Motorola, Inc. 1990 |
52 | | All Rights Reserved | 52 | | All Rights Reserved |
53 | | | 53 | | |
54 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 54 | | For details on the license for this file, please see the |
55 | | The copyright notice above does not evidence any | 55 | | file, README, in this same directory. |
56 | | actual or intended publication of such source code. | ||
57 | 56 | ||
58 | |SINT idnt 2,1 | Motorola 040 Floating Point Software Package | 57 | |SINT idnt 2,1 | Motorola 040 Floating Point Software Package |
59 | 58 | ||
diff --git a/arch/m68k/fpsp040/skeleton.S b/arch/m68k/fpsp040/skeleton.S index a1629194e3fd..a8f41615d94a 100644 --- a/arch/m68k/fpsp040/skeleton.S +++ b/arch/m68k/fpsp040/skeleton.S | |||
@@ -30,9 +30,8 @@ | |||
30 | | Copyright (C) Motorola, Inc. 1990 | 30 | | Copyright (C) Motorola, Inc. 1990 |
31 | | All Rights Reserved | 31 | | All Rights Reserved |
32 | | | 32 | | |
33 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 33 | | For details on the license for this file, please see the |
34 | | The copyright notice above does not evidence any | 34 | | file, README, in this same directory. |
35 | | actual or intended publication of such source code. | ||
36 | 35 | ||
37 | | | 36 | | |
38 | | Modified for Linux-1.3.x by Jes Sorensen (jds@kom.auc.dk) | 37 | | Modified for Linux-1.3.x by Jes Sorensen (jds@kom.auc.dk) |
diff --git a/arch/m68k/fpsp040/slog2.S b/arch/m68k/fpsp040/slog2.S index 517fa4563246..fac2c738382e 100644 --- a/arch/m68k/fpsp040/slog2.S +++ b/arch/m68k/fpsp040/slog2.S | |||
@@ -96,9 +96,8 @@ | |||
96 | | Copyright (C) Motorola, Inc. 1990 | 96 | | Copyright (C) Motorola, Inc. 1990 |
97 | | All Rights Reserved | 97 | | All Rights Reserved |
98 | | | 98 | | |
99 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 99 | | For details on the license for this file, please see the |
100 | | The copyright notice above does not evidence any | 100 | | file, README, in this same directory. |
101 | | actual or intended publication of such source code. | ||
102 | 101 | ||
103 | |SLOG2 idnt 2,1 | Motorola 040 Floating Point Software Package | 102 | |SLOG2 idnt 2,1 | Motorola 040 Floating Point Software Package |
104 | 103 | ||
diff --git a/arch/m68k/fpsp040/slogn.S b/arch/m68k/fpsp040/slogn.S index 2aaa0725c035..d98eaf641ec4 100644 --- a/arch/m68k/fpsp040/slogn.S +++ b/arch/m68k/fpsp040/slogn.S | |||
@@ -63,9 +63,8 @@ | |||
63 | | Copyright (C) Motorola, Inc. 1990 | 63 | | Copyright (C) Motorola, Inc. 1990 |
64 | | All Rights Reserved | 64 | | All Rights Reserved |
65 | | | 65 | | |
66 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 66 | | For details on the license for this file, please see the |
67 | | The copyright notice above does not evidence any | 67 | | file, README, in this same directory. |
68 | | actual or intended publication of such source code. | ||
69 | 68 | ||
70 | |slogn idnt 2,1 | Motorola 040 Floating Point Software Package | 69 | |slogn idnt 2,1 | Motorola 040 Floating Point Software Package |
71 | 70 | ||
diff --git a/arch/m68k/fpsp040/smovecr.S b/arch/m68k/fpsp040/smovecr.S index a0127fa55e9c..73c36512081b 100644 --- a/arch/m68k/fpsp040/smovecr.S +++ b/arch/m68k/fpsp040/smovecr.S | |||
@@ -15,9 +15,8 @@ | |||
15 | | Copyright (C) Motorola, Inc. 1990 | 15 | | Copyright (C) Motorola, Inc. 1990 |
16 | | All Rights Reserved | 16 | | All Rights Reserved |
17 | | | 17 | | |
18 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 18 | | For details on the license for this file, please see the |
19 | | The copyright notice above does not evidence any | 19 | | file, README, in this same directory. |
20 | | actual or intended publication of such source code. | ||
21 | 20 | ||
22 | |SMOVECR idnt 2,1 | Motorola 040 Floating Point Software Package | 21 | |SMOVECR idnt 2,1 | Motorola 040 Floating Point Software Package |
23 | 22 | ||
diff --git a/arch/m68k/fpsp040/srem_mod.S b/arch/m68k/fpsp040/srem_mod.S index 8c8d7f50cc68..a27e70c9a0eb 100644 --- a/arch/m68k/fpsp040/srem_mod.S +++ b/arch/m68k/fpsp040/srem_mod.S | |||
@@ -66,9 +66,8 @@ | |||
66 | | Copyright (C) Motorola, Inc. 1990 | 66 | | Copyright (C) Motorola, Inc. 1990 |
67 | | All Rights Reserved | 67 | | All Rights Reserved |
68 | | | 68 | | |
69 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 69 | | For details on the license for this file, please see the |
70 | | The copyright notice above does not evidence any | 70 | | file, README, in this same directory. |
71 | | actual or intended publication of such source code. | ||
72 | 71 | ||
73 | SREM_MOD: |idnt 2,1 | Motorola 040 Floating Point Software Package | 72 | SREM_MOD: |idnt 2,1 | Motorola 040 Floating Point Software Package |
74 | 73 | ||
diff --git a/arch/m68k/fpsp040/ssin.S b/arch/m68k/fpsp040/ssin.S index 043c91cdd657..a1ef8e01bf06 100644 --- a/arch/m68k/fpsp040/ssin.S +++ b/arch/m68k/fpsp040/ssin.S | |||
@@ -83,9 +83,8 @@ | |||
83 | | Copyright (C) Motorola, Inc. 1990 | 83 | | Copyright (C) Motorola, Inc. 1990 |
84 | | All Rights Reserved | 84 | | All Rights Reserved |
85 | | | 85 | | |
86 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 86 | | For details on the license for this file, please see the |
87 | | The copyright notice above does not evidence any | 87 | | file, README, in this same directory. |
88 | | actual or intended publication of such source code. | ||
89 | 88 | ||
90 | |SSIN idnt 2,1 | Motorola 040 Floating Point Software Package | 89 | |SSIN idnt 2,1 | Motorola 040 Floating Point Software Package |
91 | 90 | ||
diff --git a/arch/m68k/fpsp040/ssinh.S b/arch/m68k/fpsp040/ssinh.S index c8b3308bb143..8a560edc7653 100644 --- a/arch/m68k/fpsp040/ssinh.S +++ b/arch/m68k/fpsp040/ssinh.S | |||
@@ -49,9 +49,8 @@ | |||
49 | | Copyright (C) Motorola, Inc. 1990 | 49 | | Copyright (C) Motorola, Inc. 1990 |
50 | | All Rights Reserved | 50 | | All Rights Reserved |
51 | | | 51 | | |
52 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 52 | | For details on the license for this file, please see the |
53 | | The copyright notice above does not evidence any | 53 | | file, README, in this same directory. |
54 | | actual or intended publication of such source code. | ||
55 | 54 | ||
56 | |SSINH idnt 2,1 | Motorola 040 Floating Point Software Package | 55 | |SSINH idnt 2,1 | Motorola 040 Floating Point Software Package |
57 | 56 | ||
diff --git a/arch/m68k/fpsp040/stan.S b/arch/m68k/fpsp040/stan.S index b5c2a196e617..f8553aaececb 100644 --- a/arch/m68k/fpsp040/stan.S +++ b/arch/m68k/fpsp040/stan.S | |||
@@ -50,9 +50,8 @@ | |||
50 | | Copyright (C) Motorola, Inc. 1990 | 50 | | Copyright (C) Motorola, Inc. 1990 |
51 | | All Rights Reserved | 51 | | All Rights Reserved |
52 | | | 52 | | |
53 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 53 | | For details on the license for this file, please see the |
54 | | The copyright notice above does not evidence any | 54 | | file, README, in this same directory. |
55 | | actual or intended publication of such source code. | ||
56 | 55 | ||
57 | |STAN idnt 2,1 | Motorola 040 Floating Point Software Package | 56 | |STAN idnt 2,1 | Motorola 040 Floating Point Software Package |
58 | 57 | ||
diff --git a/arch/m68k/fpsp040/stanh.S b/arch/m68k/fpsp040/stanh.S index 33b009802243..7e12e59ee8c7 100644 --- a/arch/m68k/fpsp040/stanh.S +++ b/arch/m68k/fpsp040/stanh.S | |||
@@ -49,9 +49,8 @@ | |||
49 | | Copyright (C) Motorola, Inc. 1990 | 49 | | Copyright (C) Motorola, Inc. 1990 |
50 | | All Rights Reserved | 50 | | All Rights Reserved |
51 | | | 51 | | |
52 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 52 | | For details on the license for this file, please see the |
53 | | The copyright notice above does not evidence any | 53 | | file, README, in this same directory. |
54 | | actual or intended publication of such source code. | ||
55 | 54 | ||
56 | |STANH idnt 2,1 | Motorola 040 Floating Point Software Package | 55 | |STANH idnt 2,1 | Motorola 040 Floating Point Software Package |
57 | 56 | ||
diff --git a/arch/m68k/fpsp040/sto_res.S b/arch/m68k/fpsp040/sto_res.S index 0cdca3b060ad..484b47d4eaad 100644 --- a/arch/m68k/fpsp040/sto_res.S +++ b/arch/m68k/fpsp040/sto_res.S | |||
@@ -19,9 +19,8 @@ | |||
19 | | Copyright (C) Motorola, Inc. 1990 | 19 | | Copyright (C) Motorola, Inc. 1990 |
20 | | All Rights Reserved | 20 | | All Rights Reserved |
21 | | | 21 | | |
22 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 22 | | For details on the license for this file, please see the |
23 | | The copyright notice above does not evidence any | 23 | | file, README, in this same directory. |
24 | | actual or intended publication of such source code. | ||
25 | 24 | ||
26 | STO_RES: |idnt 2,1 | Motorola 040 Floating Point Software Package | 25 | STO_RES: |idnt 2,1 | Motorola 040 Floating Point Software Package |
27 | 26 | ||
diff --git a/arch/m68k/fpsp040/stwotox.S b/arch/m68k/fpsp040/stwotox.S index 4e3c1407d3df..0d5e6a1436a6 100644 --- a/arch/m68k/fpsp040/stwotox.S +++ b/arch/m68k/fpsp040/stwotox.S | |||
@@ -76,9 +76,8 @@ | |||
76 | | Copyright (C) Motorola, Inc. 1990 | 76 | | Copyright (C) Motorola, Inc. 1990 |
77 | | All Rights Reserved | 77 | | All Rights Reserved |
78 | | | 78 | | |
79 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 79 | | For details on the license for this file, please see the |
80 | | The copyright notice above does not evidence any | 80 | | file, README, in this same directory. |
81 | | actual or intended publication of such source code. | ||
82 | 81 | ||
83 | |STWOTOX idnt 2,1 | Motorola 040 Floating Point Software Package | 82 | |STWOTOX idnt 2,1 | Motorola 040 Floating Point Software Package |
84 | 83 | ||
diff --git a/arch/m68k/fpsp040/tbldo.S b/arch/m68k/fpsp040/tbldo.S index fe60cf4d20d7..fd5c37a5a2b9 100644 --- a/arch/m68k/fpsp040/tbldo.S +++ b/arch/m68k/fpsp040/tbldo.S | |||
@@ -17,9 +17,8 @@ | |||
17 | | Copyright (C) Motorola, Inc. 1990 | 17 | | Copyright (C) Motorola, Inc. 1990 |
18 | | All Rights Reserved | 18 | | All Rights Reserved |
19 | | | 19 | | |
20 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 20 | | For details on the license for this file, please see the |
21 | | The copyright notice above does not evidence any | 21 | | file, README, in this same directory. |
22 | | actual or intended publication of such source code. | ||
23 | 22 | ||
24 | |TBLDO idnt 2,1 | Motorola 040 Floating Point Software Package | 23 | |TBLDO idnt 2,1 | Motorola 040 Floating Point Software Package |
25 | 24 | ||
diff --git a/arch/m68k/fpsp040/util.S b/arch/m68k/fpsp040/util.S index 452f3d65857b..65b26fa88c60 100644 --- a/arch/m68k/fpsp040/util.S +++ b/arch/m68k/fpsp040/util.S | |||
@@ -16,9 +16,8 @@ | |||
16 | | Copyright (C) Motorola, Inc. 1990 | 16 | | Copyright (C) Motorola, Inc. 1990 |
17 | | All Rights Reserved | 17 | | All Rights Reserved |
18 | | | 18 | | |
19 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 19 | | For details on the license for this file, please see the |
20 | | The copyright notice above does not evidence any | 20 | | file, README, in this same directory. |
21 | | actual or intended publication of such source code. | ||
22 | 21 | ||
23 | |UTIL idnt 2,1 | Motorola 040 Floating Point Software Package | 22 | |UTIL idnt 2,1 | Motorola 040 Floating Point Software Package |
24 | 23 | ||
diff --git a/arch/m68k/fpsp040/x_bsun.S b/arch/m68k/fpsp040/x_bsun.S index 039247b09c8b..d5a576bfac79 100644 --- a/arch/m68k/fpsp040/x_bsun.S +++ b/arch/m68k/fpsp040/x_bsun.S | |||
@@ -13,9 +13,8 @@ | |||
13 | | Copyright (C) Motorola, Inc. 1990 | 13 | | Copyright (C) Motorola, Inc. 1990 |
14 | | All Rights Reserved | 14 | | All Rights Reserved |
15 | | | 15 | | |
16 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 16 | | For details on the license for this file, please see the |
17 | | The copyright notice above does not evidence any | 17 | | file, README, in this same directory. |
18 | | actual or intended publication of such source code. | ||
19 | 18 | ||
20 | X_BSUN: |idnt 2,1 | Motorola 040 Floating Point Software Package | 19 | X_BSUN: |idnt 2,1 | Motorola 040 Floating Point Software Package |
21 | 20 | ||
diff --git a/arch/m68k/fpsp040/x_fline.S b/arch/m68k/fpsp040/x_fline.S index 3917710b0fde..264e126d1db7 100644 --- a/arch/m68k/fpsp040/x_fline.S +++ b/arch/m68k/fpsp040/x_fline.S | |||
@@ -13,9 +13,8 @@ | |||
13 | | Copyright (C) Motorola, Inc. 1990 | 13 | | Copyright (C) Motorola, Inc. 1990 |
14 | | All Rights Reserved | 14 | | All Rights Reserved |
15 | | | 15 | | |
16 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 16 | | For details on the license for this file, please see the |
17 | | The copyright notice above does not evidence any | 17 | | file, README, in this same directory. |
18 | | actual or intended publication of such source code. | ||
19 | 18 | ||
20 | X_FLINE: |idnt 2,1 | Motorola 040 Floating Point Software Package | 19 | X_FLINE: |idnt 2,1 | Motorola 040 Floating Point Software Package |
21 | 20 | ||
diff --git a/arch/m68k/fpsp040/x_operr.S b/arch/m68k/fpsp040/x_operr.S index b0f54bcb49a7..e2c371c3a45d 100644 --- a/arch/m68k/fpsp040/x_operr.S +++ b/arch/m68k/fpsp040/x_operr.S | |||
@@ -43,9 +43,8 @@ | |||
43 | | Copyright (C) Motorola, Inc. 1990 | 43 | | Copyright (C) Motorola, Inc. 1990 |
44 | | All Rights Reserved | 44 | | All Rights Reserved |
45 | | | 45 | | |
46 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 46 | | For details on the license for this file, please see the |
47 | | The copyright notice above does not evidence any | 47 | | file, README, in this same directory. |
48 | | actual or intended publication of such source code. | ||
49 | 48 | ||
50 | X_OPERR: |idnt 2,1 | Motorola 040 Floating Point Software Package | 49 | X_OPERR: |idnt 2,1 | Motorola 040 Floating Point Software Package |
51 | 50 | ||
diff --git a/arch/m68k/fpsp040/x_ovfl.S b/arch/m68k/fpsp040/x_ovfl.S index 22cb8b42c7b6..6fe4989ee31f 100644 --- a/arch/m68k/fpsp040/x_ovfl.S +++ b/arch/m68k/fpsp040/x_ovfl.S | |||
@@ -35,9 +35,8 @@ | |||
35 | | Copyright (C) Motorola, Inc. 1990 | 35 | | Copyright (C) Motorola, Inc. 1990 |
36 | | All Rights Reserved | 36 | | All Rights Reserved |
37 | | | 37 | | |
38 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 38 | | For details on the license for this file, please see the |
39 | | The copyright notice above does not evidence any | 39 | | file, README, in this same directory. |
40 | | actual or intended publication of such source code. | ||
41 | 40 | ||
42 | X_OVFL: |idnt 2,1 | Motorola 040 Floating Point Software Package | 41 | X_OVFL: |idnt 2,1 | Motorola 040 Floating Point Software Package |
43 | 42 | ||
diff --git a/arch/m68k/fpsp040/x_snan.S b/arch/m68k/fpsp040/x_snan.S index 039af573312e..4ed766416378 100644 --- a/arch/m68k/fpsp040/x_snan.S +++ b/arch/m68k/fpsp040/x_snan.S | |||
@@ -22,9 +22,8 @@ | |||
22 | | Copyright (C) Motorola, Inc. 1990 | 22 | | Copyright (C) Motorola, Inc. 1990 |
23 | | All Rights Reserved | 23 | | All Rights Reserved |
24 | | | 24 | | |
25 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 25 | | For details on the license for this file, please see the |
26 | | The copyright notice above does not evidence any | 26 | | file, README, in this same directory. |
27 | | actual or intended publication of such source code. | ||
28 | 27 | ||
29 | X_SNAN: |idnt 2,1 | Motorola 040 Floating Point Software Package | 28 | X_SNAN: |idnt 2,1 | Motorola 040 Floating Point Software Package |
30 | 29 | ||
diff --git a/arch/m68k/fpsp040/x_store.S b/arch/m68k/fpsp040/x_store.S index 4282fa67d449..402dc0c0ebc0 100644 --- a/arch/m68k/fpsp040/x_store.S +++ b/arch/m68k/fpsp040/x_store.S | |||
@@ -11,9 +11,8 @@ | |||
11 | | Copyright (C) Motorola, Inc. 1990 | 11 | | Copyright (C) Motorola, Inc. 1990 |
12 | | All Rights Reserved | 12 | | All Rights Reserved |
13 | | | 13 | | |
14 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 14 | | For details on the license for this file, please see the |
15 | | The copyright notice above does not evidence any | 15 | | file, README, in this same directory. |
16 | | actual or intended publication of such source code. | ||
17 | 16 | ||
18 | X_STORE: |idnt 2,1 | Motorola 040 Floating Point Software Package | 17 | X_STORE: |idnt 2,1 | Motorola 040 Floating Point Software Package |
19 | 18 | ||
diff --git a/arch/m68k/fpsp040/x_unfl.S b/arch/m68k/fpsp040/x_unfl.S index 077fcc230fcc..eb772ff3b812 100644 --- a/arch/m68k/fpsp040/x_unfl.S +++ b/arch/m68k/fpsp040/x_unfl.S | |||
@@ -21,9 +21,8 @@ | |||
21 | | Copyright (C) Motorola, Inc. 1990 | 21 | | Copyright (C) Motorola, Inc. 1990 |
22 | | All Rights Reserved | 22 | | All Rights Reserved |
23 | | | 23 | | |
24 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 24 | | For details on the license for this file, please see the |
25 | | The copyright notice above does not evidence any | 25 | | file, README, in this same directory. |
26 | | actual or intended publication of such source code. | ||
27 | 26 | ||
28 | X_UNFL: |idnt 2,1 | Motorola 040 Floating Point Software Package | 27 | X_UNFL: |idnt 2,1 | Motorola 040 Floating Point Software Package |
29 | 28 | ||
diff --git a/arch/m68k/fpsp040/x_unimp.S b/arch/m68k/fpsp040/x_unimp.S index 920cb9410e9e..6f382b21228b 100644 --- a/arch/m68k/fpsp040/x_unimp.S +++ b/arch/m68k/fpsp040/x_unimp.S | |||
@@ -22,9 +22,8 @@ | |||
22 | | Copyright (C) Motorola, Inc. 1990 | 22 | | Copyright (C) Motorola, Inc. 1990 |
23 | | All Rights Reserved | 23 | | All Rights Reserved |
24 | | | 24 | | |
25 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 25 | | For details on the license for this file, please see the |
26 | | The copyright notice above does not evidence any | 26 | | file, README, in this same directory. |
27 | | actual or intended publication of such source code. | ||
28 | 27 | ||
29 | X_UNIMP: |idnt 2,1 | Motorola 040 Floating Point Software Package | 28 | X_UNIMP: |idnt 2,1 | Motorola 040 Floating Point Software Package |
30 | 29 | ||
diff --git a/arch/m68k/fpsp040/x_unsupp.S b/arch/m68k/fpsp040/x_unsupp.S index 4ec57285b683..d7cf46208c62 100644 --- a/arch/m68k/fpsp040/x_unsupp.S +++ b/arch/m68k/fpsp040/x_unsupp.S | |||
@@ -23,9 +23,8 @@ | |||
23 | | Copyright (C) Motorola, Inc. 1990 | 23 | | Copyright (C) Motorola, Inc. 1990 |
24 | | All Rights Reserved | 24 | | All Rights Reserved |
25 | | | 25 | | |
26 | | THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA | 26 | | For details on the license for this file, please see the |
27 | | The copyright notice above does not evidence any | 27 | | file, README, in this same directory. |
28 | | actual or intended publication of such source code. | ||
29 | 28 | ||
30 | X_UNSUPP: |idnt 2,1 | Motorola 040 Floating Point Software Package | 29 | X_UNSUPP: |idnt 2,1 | Motorola 040 Floating Point Software Package |
31 | 30 | ||
diff --git a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c index 3f9cb55d0356..2d8ad0727b6b 100644 --- a/arch/m68k/kernel/process.c +++ b/arch/m68k/kernel/process.c | |||
@@ -129,6 +129,9 @@ void machine_power_off(void) | |||
129 | for (;;); | 129 | for (;;); |
130 | } | 130 | } |
131 | 131 | ||
132 | void (*pm_power_off)(void) = machine_power_off; | ||
133 | EXPORT_SYMBOL(pm_power_off); | ||
134 | |||
132 | void show_regs(struct pt_regs * regs) | 135 | void show_regs(struct pt_regs * regs) |
133 | { | 136 | { |
134 | printk("\n"); | 137 | printk("\n"); |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index e2a6e8648960..e50858dbc237 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -29,6 +29,10 @@ config GENERIC_CALIBRATE_DELAY | |||
29 | bool | 29 | bool |
30 | default y | 30 | default y |
31 | 31 | ||
32 | config TIME_LOW_RES | ||
33 | bool | ||
34 | default y | ||
35 | |||
32 | source "init/Kconfig" | 36 | source "init/Kconfig" |
33 | 37 | ||
34 | menu "Processor type and features" | 38 | menu "Processor type and features" |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 767de847b4ab..3a0f89d2c8dc 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1053,6 +1053,7 @@ config CPU_MIPS32_R1 | |||
1053 | depends on SYS_HAS_CPU_MIPS32_R1 | 1053 | depends on SYS_HAS_CPU_MIPS32_R1 |
1054 | select CPU_HAS_PREFETCH | 1054 | select CPU_HAS_PREFETCH |
1055 | select CPU_SUPPORTS_32BIT_KERNEL | 1055 | select CPU_SUPPORTS_32BIT_KERNEL |
1056 | select CPU_SUPPORTS_HIGHMEM | ||
1056 | help | 1057 | help |
1057 | Choose this option to build a kernel for release 1 or later of the | 1058 | Choose this option to build a kernel for release 1 or later of the |
1058 | MIPS32 architecture. Most modern embedded systems with a 32-bit | 1059 | MIPS32 architecture. Most modern embedded systems with a 32-bit |
@@ -1069,6 +1070,7 @@ config CPU_MIPS32_R2 | |||
1069 | depends on SYS_HAS_CPU_MIPS32_R2 | 1070 | depends on SYS_HAS_CPU_MIPS32_R2 |
1070 | select CPU_HAS_PREFETCH | 1071 | select CPU_HAS_PREFETCH |
1071 | select CPU_SUPPORTS_32BIT_KERNEL | 1072 | select CPU_SUPPORTS_32BIT_KERNEL |
1073 | select CPU_SUPPORTS_HIGHMEM | ||
1072 | help | 1074 | help |
1073 | Choose this option to build a kernel for release 2 or later of the | 1075 | Choose this option to build a kernel for release 2 or later of the |
1074 | MIPS32 architecture. Most modern embedded systems with a 32-bit | 1076 | MIPS32 architecture. Most modern embedded systems with a 32-bit |
@@ -1082,6 +1084,7 @@ config CPU_MIPS64_R1 | |||
1082 | select CPU_HAS_PREFETCH | 1084 | select CPU_HAS_PREFETCH |
1083 | select CPU_SUPPORTS_32BIT_KERNEL | 1085 | select CPU_SUPPORTS_32BIT_KERNEL |
1084 | select CPU_SUPPORTS_64BIT_KERNEL | 1086 | select CPU_SUPPORTS_64BIT_KERNEL |
1087 | select CPU_SUPPORTS_HIGHMEM | ||
1085 | help | 1088 | help |
1086 | Choose this option to build a kernel for release 1 or later of the | 1089 | Choose this option to build a kernel for release 1 or later of the |
1087 | MIPS64 architecture. Many modern embedded systems with a 64-bit | 1090 | MIPS64 architecture. Many modern embedded systems with a 64-bit |
@@ -1099,6 +1102,7 @@ config CPU_MIPS64_R2 | |||
1099 | select CPU_HAS_PREFETCH | 1102 | select CPU_HAS_PREFETCH |
1100 | select CPU_SUPPORTS_32BIT_KERNEL | 1103 | select CPU_SUPPORTS_32BIT_KERNEL |
1101 | select CPU_SUPPORTS_64BIT_KERNEL | 1104 | select CPU_SUPPORTS_64BIT_KERNEL |
1105 | select CPU_SUPPORTS_HIGHMEM | ||
1102 | help | 1106 | help |
1103 | Choose this option to build a kernel for release 2 or later of the | 1107 | Choose this option to build a kernel for release 2 or later of the |
1104 | MIPS64 architecture. Many modern embedded systems with a 64-bit | 1108 | MIPS64 architecture. Many modern embedded systems with a 64-bit |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 6a57407df1bc..3d8dac681c63 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -94,8 +94,8 @@ endif | |||
94 | # machines may also. Since BFD is incredibly buggy with respect to | 94 | # machines may also. Since BFD is incredibly buggy with respect to |
95 | # crossformat linking we rely on the elf2ecoff tool for format conversion. | 95 | # crossformat linking we rely on the elf2ecoff tool for format conversion. |
96 | # | 96 | # |
97 | cflags-y += -I $(TOPDIR)/include/asm/gcc | ||
98 | cflags-y += -G 0 -mno-abicalls -fno-pic -pipe | 97 | cflags-y += -G 0 -mno-abicalls -fno-pic -pipe |
98 | cflags-y += -msoft-float | ||
99 | LDFLAGS_vmlinux += -G 0 -static -n -nostdlib | 99 | LDFLAGS_vmlinux += -G 0 -static -n -nostdlib |
100 | MODFLAGS += -mlong-calls | 100 | MODFLAGS += -mlong-calls |
101 | 101 | ||
@@ -108,7 +108,8 @@ MODFLAGS += -mlong-calls | |||
108 | cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB) | 108 | cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' && echo -EB) |
109 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL) | 109 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL) |
110 | 110 | ||
111 | cflags-$(CONFIG_SB1XXX_CORELIS) += -mno-sched-prolog -fno-omit-frame-pointer | 111 | cflags-$(CONFIG_SB1XXX_CORELIS) += $(call cc-option,-mno-sched-prolog) \ |
112 | -fno-omit-frame-pointer | ||
112 | 113 | ||
113 | # | 114 | # |
114 | # Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) | 115 | # Use: $(call set_gccflags,<cpu0>,<isa0>,<cpu1>,<isa1>,<isa2>) |
diff --git a/arch/mips/arc/arc_con.c b/arch/mips/arc/arc_con.c index 51785a6a7328..bc32fe64f42a 100644 --- a/arch/mips/arc/arc_con.c +++ b/arch/mips/arc/arc_con.c | |||
@@ -24,7 +24,7 @@ static void prom_console_write(struct console *co, const char *s, | |||
24 | } | 24 | } |
25 | } | 25 | } |
26 | 26 | ||
27 | static int __init prom_console_setup(struct console *co, char *options) | 27 | static int prom_console_setup(struct console *co, char *options) |
28 | { | 28 | { |
29 | return !(prom_flags & PROM_FLAG_USE_AS_CONSOLE); | 29 | return !(prom_flags & PROM_FLAG_USE_AS_CONSOLE); |
30 | } | 30 | } |
diff --git a/arch/mips/arc/misc.c b/arch/mips/arc/misc.c index 84867de22028..b2e10b9e9452 100644 --- a/arch/mips/arc/misc.c +++ b/arch/mips/arc/misc.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) | 9 | * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) |
10 | * Copyright (C) 1999 Silicon Graphics, Inc. | 10 | * Copyright (C) 1999 Silicon Graphics, Inc. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | 14 | ||
@@ -20,17 +19,11 @@ | |||
20 | #include <asm/bootinfo.h> | 19 | #include <asm/bootinfo.h> |
21 | #include <asm/system.h> | 20 | #include <asm/system.h> |
22 | 21 | ||
23 | extern void *sgiwd93_host; | ||
24 | extern void reset_wd33c93(void *instance); | ||
25 | |||
26 | VOID | 22 | VOID |
27 | ArcHalt(VOID) | 23 | ArcHalt(VOID) |
28 | { | 24 | { |
29 | bc_disable(); | 25 | bc_disable(); |
30 | local_irq_disable(); | 26 | local_irq_disable(); |
31 | #ifdef CONFIG_SCSI_SGIWD93 | ||
32 | reset_wd33c93(sgiwd93_host); | ||
33 | #endif | ||
34 | ARC_CALL0(halt); | 27 | ARC_CALL0(halt); |
35 | never: goto never; | 28 | never: goto never; |
36 | } | 29 | } |
@@ -40,9 +33,6 @@ ArcPowerDown(VOID) | |||
40 | { | 33 | { |
41 | bc_disable(); | 34 | bc_disable(); |
42 | local_irq_disable(); | 35 | local_irq_disable(); |
43 | #ifdef CONFIG_SCSI_SGIWD93 | ||
44 | reset_wd33c93(sgiwd93_host); | ||
45 | #endif | ||
46 | ARC_CALL0(pdown); | 36 | ARC_CALL0(pdown); |
47 | never: goto never; | 37 | never: goto never; |
48 | } | 38 | } |
@@ -53,9 +43,6 @@ ArcRestart(VOID) | |||
53 | { | 43 | { |
54 | bc_disable(); | 44 | bc_disable(); |
55 | local_irq_disable(); | 45 | local_irq_disable(); |
56 | #ifdef CONFIG_SCSI_SGIWD93 | ||
57 | reset_wd33c93(sgiwd93_host); | ||
58 | #endif | ||
59 | ARC_CALL0(restart); | 46 | ARC_CALL0(restart); |
60 | never: goto never; | 47 | never: goto never; |
61 | } | 48 | } |
@@ -65,9 +52,6 @@ ArcReboot(VOID) | |||
65 | { | 52 | { |
66 | bc_disable(); | 53 | bc_disable(); |
67 | local_irq_disable(); | 54 | local_irq_disable(); |
68 | #ifdef CONFIG_SCSI_SGIWD93 | ||
69 | reset_wd33c93(sgiwd93_host); | ||
70 | #endif | ||
71 | ARC_CALL0(reboot); | 55 | ARC_CALL0(reboot); |
72 | never: goto never; | 56 | never: goto never; |
73 | } | 57 | } |
@@ -77,9 +61,6 @@ ArcEnterInteractiveMode(VOID) | |||
77 | { | 61 | { |
78 | bc_disable(); | 62 | bc_disable(); |
79 | local_irq_disable(); | 63 | local_irq_disable(); |
80 | #ifdef CONFIG_SCSI_SGIWD93 | ||
81 | reset_wd33c93(sgiwd93_host); | ||
82 | #endif | ||
83 | ARC_CALL0(imode); | 64 | ARC_CALL0(imode); |
84 | never: goto never; | 65 | never: goto never; |
85 | } | 66 | } |
diff --git a/arch/mips/au1000/common/reset.c b/arch/mips/au1000/common/reset.c index 4ffccedf5967..c93af224c1b3 100644 --- a/arch/mips/au1000/common/reset.c +++ b/arch/mips/au1000/common/reset.c | |||
@@ -164,17 +164,20 @@ void au1000_restart(char *command) | |||
164 | 164 | ||
165 | void au1000_halt(void) | 165 | void au1000_halt(void) |
166 | { | 166 | { |
167 | #if defined(CONFIG_MIPS_PB1550) | 167 | #if defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550) |
168 | /* power off system */ | 168 | /* power off system */ |
169 | printk("\n** Powering off Pb1550\n"); | 169 | printk("\n** Powering off...\n"); |
170 | au_writew(au_readw(0xAF00001C) | (3<<14), 0xAF00001C); | 170 | au_writew(au_readw(0xAF00001C) | (3<<14), 0xAF00001C); |
171 | au_sync(); | 171 | au_sync(); |
172 | while(1); /* should not get here */ | 172 | while(1); /* should not get here */ |
173 | #endif | 173 | #else |
174 | printk(KERN_NOTICE "\n** You can safely turn off the power\n"); | 174 | printk(KERN_NOTICE "\n** You can safely turn off the power\n"); |
175 | #ifdef CONFIG_MIPS_MIRAGE | 175 | #ifdef CONFIG_MIPS_MIRAGE |
176 | au_writel((1 << 26) | (1 << 10), GPIO2_OUTPUT); | 176 | au_writel((1 << 26) | (1 << 10), GPIO2_OUTPUT); |
177 | #endif | 177 | #endif |
178 | #ifdef CONFIG_MIPS_DB1200 | ||
179 | au_writew(au_readw(0xB980001C) | (1<<14), 0xB980001C); | ||
180 | #endif | ||
178 | #ifdef CONFIG_PM | 181 | #ifdef CONFIG_PM |
179 | au_sleep(); | 182 | au_sleep(); |
180 | 183 | ||
@@ -187,6 +190,7 @@ void au1000_halt(void) | |||
187 | "wait\n\t" | 190 | "wait\n\t" |
188 | ".set\tmips0"); | 191 | ".set\tmips0"); |
189 | #endif | 192 | #endif |
193 | #endif /* defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550) */ | ||
190 | } | 194 | } |
191 | 195 | ||
192 | void au1000_power_off(void) | 196 | void au1000_power_off(void) |
diff --git a/arch/mips/cobalt/setup.c b/arch/mips/cobalt/setup.c index 050685b87a3c..b9713a723053 100644 --- a/arch/mips/cobalt/setup.c +++ b/arch/mips/cobalt/setup.c | |||
@@ -140,7 +140,7 @@ void __init plat_setup(void) | |||
140 | uart.type = PORT_UNKNOWN; | 140 | uart.type = PORT_UNKNOWN; |
141 | uart.uartclk = 18432000; | 141 | uart.uartclk = 18432000; |
142 | uart.irq = COBALT_SERIAL_IRQ; | 142 | uart.irq = COBALT_SERIAL_IRQ; |
143 | uart.flags = STD_COM_FLAGS; | 143 | uart.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
144 | uart.iobase = 0xc800000; | 144 | uart.iobase = 0xc800000; |
145 | uart.iotype = UPIO_PORT; | 145 | uart.iotype = UPIO_PORT; |
146 | 146 | ||
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig index e17d3adff021..58c22cd344d3 100644 --- a/arch/mips/configs/ip27_defconfig +++ b/arch/mips/configs/ip27_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.15-rc2 | 3 | # Linux kernel version: 2.6.16-rc4 |
4 | # Thu Nov 24 01:06:21 2005 | 4 | # Tue Feb 21 13:44:31 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -144,7 +144,6 @@ CONFIG_PREEMPT_BKL=y | |||
144 | # Code maturity level options | 144 | # Code maturity level options |
145 | # | 145 | # |
146 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
147 | CONFIG_CLEAN_COMPILE=y | ||
148 | CONFIG_LOCK_KERNEL=y | 147 | CONFIG_LOCK_KERNEL=y |
149 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
150 | 149 | ||
@@ -250,6 +249,7 @@ CONFIG_NET=y | |||
250 | # | 249 | # |
251 | # Networking options | 250 | # Networking options |
252 | # | 251 | # |
252 | # CONFIG_NETDEBUG is not set | ||
253 | CONFIG_PACKET=y | 253 | CONFIG_PACKET=y |
254 | CONFIG_PACKET_MMAP=y | 254 | CONFIG_PACKET_MMAP=y |
255 | CONFIG_UNIX=y | 255 | CONFIG_UNIX=y |
@@ -289,6 +289,7 @@ CONFIG_TCP_CONG_BIC=y | |||
289 | # SCTP Configuration (EXPERIMENTAL) | 289 | # SCTP Configuration (EXPERIMENTAL) |
290 | # | 290 | # |
291 | # CONFIG_IP_SCTP is not set | 291 | # CONFIG_IP_SCTP is not set |
292 | |||
292 | # CONFIG_ATM is not set | 293 | # CONFIG_ATM is not set |
293 | # CONFIG_BRIDGE is not set | 294 | # CONFIG_BRIDGE is not set |
294 | # CONFIG_VLAN_8021Q is not set | 295 | # CONFIG_VLAN_8021Q is not set |
@@ -448,7 +449,7 @@ CONFIG_SCSI_SAS_ATTRS=m | |||
448 | # | 449 | # |
449 | # SCSI low-level drivers | 450 | # SCSI low-level drivers |
450 | # | 451 | # |
451 | CONFIG_ISCSI_TCP=m | 452 | # CONFIG_ISCSI_TCP is not set |
452 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 453 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
453 | # CONFIG_SCSI_3W_9XXX is not set | 454 | # CONFIG_SCSI_3W_9XXX is not set |
454 | # CONFIG_SCSI_ACARD is not set | 455 | # CONFIG_SCSI_ACARD is not set |
@@ -774,6 +775,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
774 | # | 775 | # |
775 | 776 | ||
776 | # | 777 | # |
778 | # EDAC - error detection and reporting (RAS) | ||
779 | # | ||
780 | |||
781 | # | ||
777 | # File systems | 782 | # File systems |
778 | # | 783 | # |
779 | CONFIG_EXT2_FS=y | 784 | CONFIG_EXT2_FS=y |
diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c index d8e2674a1543..4a9f1ecefaf2 100644 --- a/arch/mips/kernel/binfmt_elfn32.c +++ b/arch/mips/kernel/binfmt_elfn32.c | |||
@@ -103,8 +103,9 @@ jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value) | |||
103 | * one divide. | 103 | * one divide. |
104 | */ | 104 | */ |
105 | u64 nsec = (u64)jiffies * TICK_NSEC; | 105 | u64 nsec = (u64)jiffies * TICK_NSEC; |
106 | value->tv_sec = div_long_long_rem(nsec, NSEC_PER_SEC, &value->tv_usec); | 106 | long rem; |
107 | value->tv_usec /= NSEC_PER_USEC; | 107 | value->tv_sec = div_long_long_rem(nsec, NSEC_PER_SEC, &rem); |
108 | value->tv_usec = rem / NSEC_PER_USEC; | ||
108 | } | 109 | } |
109 | 110 | ||
110 | #define ELF_CORE_EFLAGS EF_MIPS_ABI2 | 111 | #define ELF_CORE_EFLAGS EF_MIPS_ABI2 |
diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c index cec5f327e360..e31813779895 100644 --- a/arch/mips/kernel/binfmt_elfo32.c +++ b/arch/mips/kernel/binfmt_elfo32.c | |||
@@ -105,8 +105,9 @@ jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value) | |||
105 | * one divide. | 105 | * one divide. |
106 | */ | 106 | */ |
107 | u64 nsec = (u64)jiffies * TICK_NSEC; | 107 | u64 nsec = (u64)jiffies * TICK_NSEC; |
108 | value->tv_sec = div_long_long_rem(nsec, NSEC_PER_SEC, &value->tv_usec); | 108 | long rem; |
109 | value->tv_usec /= NSEC_PER_USEC; | 109 | value->tv_sec = div_long_long_rem(nsec, NSEC_PER_SEC, &rem); |
110 | value->tv_usec = rem / NSEC_PER_USEC; | ||
110 | } | 111 | } |
111 | 112 | ||
112 | #undef ELF_CORE_COPY_REGS | 113 | #undef ELF_CORE_COPY_REGS |
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c index 0ac067f45cf5..0613f1f36b1b 100644 --- a/arch/mips/kernel/irq-mv6434x.c +++ b/arch/mips/kernel/irq-mv6434x.c | |||
@@ -11,12 +11,14 @@ | |||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <asm/ptrace.h> | ||
15 | #include <linux/sched.h> | ||
16 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
15 | #include <linux/mv643xx.h> | ||
16 | #include <linux/sched.h> | ||
17 | |||
18 | #include <asm/ptrace.h> | ||
17 | #include <asm/io.h> | 19 | #include <asm/io.h> |
18 | #include <asm/irq.h> | 20 | #include <asm/irq.h> |
19 | #include <linux/mv643xx.h> | 21 | #include <asm/marvell.h> |
20 | 22 | ||
21 | static unsigned int irq_base; | 23 | static unsigned int irq_base; |
22 | 24 | ||
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index 60353f5acc48..e00e5f6e7fdd 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c | |||
@@ -161,60 +161,6 @@ out: | |||
161 | return error; | 161 | return error; |
162 | } | 162 | } |
163 | 163 | ||
164 | struct dirent32 { | ||
165 | unsigned int d_ino; | ||
166 | unsigned int d_off; | ||
167 | unsigned short d_reclen; | ||
168 | char d_name[NAME_MAX + 1]; | ||
169 | }; | ||
170 | |||
171 | static void | ||
172 | xlate_dirent(void *dirent64, void *dirent32, long n) | ||
173 | { | ||
174 | long off; | ||
175 | struct dirent *dirp; | ||
176 | struct dirent32 *dirp32; | ||
177 | |||
178 | off = 0; | ||
179 | while (off < n) { | ||
180 | dirp = (struct dirent *)(dirent64 + off); | ||
181 | dirp32 = (struct dirent32 *)(dirent32 + off); | ||
182 | off += dirp->d_reclen; | ||
183 | dirp32->d_ino = dirp->d_ino; | ||
184 | dirp32->d_off = (unsigned int)dirp->d_off; | ||
185 | dirp32->d_reclen = dirp->d_reclen; | ||
186 | strncpy(dirp32->d_name, dirp->d_name, dirp->d_reclen - ((3 * 4) + 2)); | ||
187 | } | ||
188 | return; | ||
189 | } | ||
190 | |||
191 | asmlinkage long | ||
192 | sys32_getdents(unsigned int fd, void * dirent32, unsigned int count) | ||
193 | { | ||
194 | long n; | ||
195 | void *dirent64; | ||
196 | |||
197 | dirent64 = (void *)((unsigned long)(dirent32 + (sizeof(long) - 1)) & ~(sizeof(long) - 1)); | ||
198 | if ((n = sys_getdents(fd, dirent64, count - (dirent64 - dirent32))) < 0) | ||
199 | return(n); | ||
200 | xlate_dirent(dirent64, dirent32, n); | ||
201 | return(n); | ||
202 | } | ||
203 | |||
204 | asmlinkage int old_readdir(unsigned int fd, void * dirent, unsigned int count); | ||
205 | |||
206 | asmlinkage int | ||
207 | sys32_readdir(unsigned int fd, void * dirent32, unsigned int count) | ||
208 | { | ||
209 | int n; | ||
210 | struct dirent dirent64; | ||
211 | |||
212 | if ((n = old_readdir(fd, &dirent64, count)) < 0) | ||
213 | return(n); | ||
214 | xlate_dirent(&dirent64, dirent32, dirent64.d_reclen); | ||
215 | return(n); | ||
216 | } | ||
217 | |||
218 | asmlinkage int | 164 | asmlinkage int |
219 | sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr, int options) | 165 | sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr, int options) |
220 | { | 166 | { |
@@ -230,6 +176,9 @@ sysn32_waitid(int which, compat_pid_t pid, | |||
230 | long ret; | 176 | long ret; |
231 | mm_segment_t old_fs = get_fs(); | 177 | mm_segment_t old_fs = get_fs(); |
232 | 178 | ||
179 | if (!access_ok(VERIFY_WRITE, uinfo, sizeof(*uinfo))) | ||
180 | return -EFAULT; | ||
181 | |||
233 | set_fs (KERNEL_DS); | 182 | set_fs (KERNEL_DS); |
234 | ret = sys_waitid(which, pid, uinfo, options, | 183 | ret = sys_waitid(which, pid, uinfo, options, |
235 | uru ? (struct rusage __user *) &ru : NULL); | 184 | uru ? (struct rusage __user *) &ru : NULL); |
@@ -1450,25 +1399,6 @@ sys32_timer_create(u32 clock, struct sigevent32 __user *se32, timer_t __user *ti | |||
1450 | return sys_timer_create(clock, p, timer_id); | 1399 | return sys_timer_create(clock, p, timer_id); |
1451 | } | 1400 | } |
1452 | 1401 | ||
1453 | asmlinkage long | ||
1454 | sysn32_rt_sigtimedwait(const sigset_t __user *uthese, | ||
1455 | siginfo_t __user *uinfo, | ||
1456 | const struct compat_timespec __user *uts32, | ||
1457 | size_t sigsetsize) | ||
1458 | { | ||
1459 | struct timespec __user *uts = NULL; | ||
1460 | |||
1461 | if (uts32) { | ||
1462 | struct timespec ts; | ||
1463 | uts = compat_alloc_user_space(sizeof(struct timespec)); | ||
1464 | if (get_user(ts.tv_sec, &uts32->tv_sec) || | ||
1465 | get_user(ts.tv_nsec, &uts32->tv_nsec) || | ||
1466 | copy_to_user (uts, &ts, sizeof (ts))) | ||
1467 | return -EFAULT; | ||
1468 | } | ||
1469 | return sys_rt_sigtimedwait(uthese, uinfo, uts, sigsetsize); | ||
1470 | } | ||
1471 | |||
1472 | save_static_function(sys32_clone); | 1402 | save_static_function(sys32_clone); |
1473 | __attribute_used__ noinline static int | 1403 | __attribute_used__ noinline static int |
1474 | _sys32_clone(nabi_no_regargs struct pt_regs regs) | 1404 | _sys32_clone(nabi_no_regargs struct pt_regs regs) |
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 5232fc752935..092679c2dca9 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/a.out.h> | 25 | #include <linux/a.out.h> |
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/completion.h> | 27 | #include <linux/completion.h> |
28 | #include <linux/kallsyms.h> | ||
28 | 29 | ||
29 | #include <asm/abi.h> | 30 | #include <asm/abi.h> |
30 | #include <asm/bootinfo.h> | 31 | #include <asm/bootinfo.h> |
@@ -272,46 +273,19 @@ long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) | |||
272 | 273 | ||
273 | static struct mips_frame_info { | 274 | static struct mips_frame_info { |
274 | void *func; | 275 | void *func; |
275 | int omit_fp; /* compiled without fno-omit-frame-pointer */ | 276 | unsigned long func_size; |
276 | int frame_offset; | 277 | int frame_size; |
277 | int pc_offset; | 278 | int pc_offset; |
278 | } schedule_frame, mfinfo[] = { | 279 | } *schedule_frame, mfinfo[64]; |
279 | { schedule, 0 }, /* must be first */ | 280 | static int mfinfo_num; |
280 | /* arch/mips/kernel/semaphore.c */ | ||
281 | { __down, 1 }, | ||
282 | { __down_interruptible, 1 }, | ||
283 | /* kernel/sched.c */ | ||
284 | #ifdef CONFIG_PREEMPT | ||
285 | { preempt_schedule, 0 }, | ||
286 | #endif | ||
287 | { wait_for_completion, 0 }, | ||
288 | { interruptible_sleep_on, 0 }, | ||
289 | { interruptible_sleep_on_timeout, 0 }, | ||
290 | { sleep_on, 0 }, | ||
291 | { sleep_on_timeout, 0 }, | ||
292 | { yield, 0 }, | ||
293 | { io_schedule, 0 }, | ||
294 | { io_schedule_timeout, 0 }, | ||
295 | #if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT) | ||
296 | { __preempt_spin_lock, 0 }, | ||
297 | { __preempt_write_lock, 0 }, | ||
298 | #endif | ||
299 | /* kernel/timer.c */ | ||
300 | { schedule_timeout, 1 }, | ||
301 | /* { nanosleep_restart, 1 }, */ | ||
302 | /* lib/rwsem-spinlock.c */ | ||
303 | { __down_read, 1 }, | ||
304 | { __down_write, 1 }, | ||
305 | }; | ||
306 | 281 | ||
307 | static int mips_frame_info_initialized; | ||
308 | static int __init get_frame_info(struct mips_frame_info *info) | 282 | static int __init get_frame_info(struct mips_frame_info *info) |
309 | { | 283 | { |
310 | int i; | 284 | int i; |
311 | void *func = info->func; | 285 | void *func = info->func; |
312 | union mips_instruction *ip = (union mips_instruction *)func; | 286 | union mips_instruction *ip = (union mips_instruction *)func; |
313 | info->pc_offset = -1; | 287 | info->pc_offset = -1; |
314 | info->frame_offset = info->omit_fp ? 0 : -1; | 288 | info->frame_size = 0; |
315 | for (i = 0; i < 128; i++, ip++) { | 289 | for (i = 0; i < 128; i++, ip++) { |
316 | /* if jal, jalr, jr, stop. */ | 290 | /* if jal, jalr, jr, stop. */ |
317 | if (ip->j_format.opcode == jal_op || | 291 | if (ip->j_format.opcode == jal_op || |
@@ -320,6 +294,23 @@ static int __init get_frame_info(struct mips_frame_info *info) | |||
320 | ip->r_format.func == jr_op))) | 294 | ip->r_format.func == jr_op))) |
321 | break; | 295 | break; |
322 | 296 | ||
297 | if (info->func_size && i >= info->func_size / 4) | ||
298 | break; | ||
299 | if ( | ||
300 | #ifdef CONFIG_32BIT | ||
301 | ip->i_format.opcode == addiu_op && | ||
302 | #endif | ||
303 | #ifdef CONFIG_64BIT | ||
304 | ip->i_format.opcode == daddiu_op && | ||
305 | #endif | ||
306 | ip->i_format.rs == 29 && | ||
307 | ip->i_format.rt == 29) { | ||
308 | /* addiu/daddiu sp,sp,-imm */ | ||
309 | if (info->frame_size) | ||
310 | continue; | ||
311 | info->frame_size = - ip->i_format.simmediate; | ||
312 | } | ||
313 | |||
323 | if ( | 314 | if ( |
324 | #ifdef CONFIG_32BIT | 315 | #ifdef CONFIG_32BIT |
325 | ip->i_format.opcode == sw_op && | 316 | ip->i_format.opcode == sw_op && |
@@ -327,31 +318,20 @@ static int __init get_frame_info(struct mips_frame_info *info) | |||
327 | #ifdef CONFIG_64BIT | 318 | #ifdef CONFIG_64BIT |
328 | ip->i_format.opcode == sd_op && | 319 | ip->i_format.opcode == sd_op && |
329 | #endif | 320 | #endif |
330 | ip->i_format.rs == 29) | 321 | ip->i_format.rs == 29 && |
331 | { | 322 | ip->i_format.rt == 31) { |
332 | /* sw / sd $ra, offset($sp) */ | 323 | /* sw / sd $ra, offset($sp) */ |
333 | if (ip->i_format.rt == 31) { | 324 | if (info->pc_offset != -1) |
334 | if (info->pc_offset != -1) | 325 | continue; |
335 | continue; | 326 | info->pc_offset = |
336 | info->pc_offset = | 327 | ip->i_format.simmediate / sizeof(long); |
337 | ip->i_format.simmediate / sizeof(long); | ||
338 | } | ||
339 | /* sw / sd $s8, offset($sp) */ | ||
340 | if (ip->i_format.rt == 30) { | ||
341 | //#if 0 /* gcc 3.4 does aggressive optimization... */ | ||
342 | if (info->frame_offset != -1) | ||
343 | continue; | ||
344 | //#endif | ||
345 | info->frame_offset = | ||
346 | ip->i_format.simmediate / sizeof(long); | ||
347 | } | ||
348 | } | 328 | } |
349 | } | 329 | } |
350 | if (info->pc_offset == -1 || info->frame_offset == -1) { | 330 | if (info->pc_offset == -1 || info->frame_size == 0) { |
351 | printk("Can't analyze prologue code at %p\n", func); | 331 | if (func == schedule) |
332 | printk("Can't analyze prologue code at %p\n", func); | ||
352 | info->pc_offset = -1; | 333 | info->pc_offset = -1; |
353 | info->frame_offset = -1; | 334 | info->frame_size = 0; |
354 | return -1; | ||
355 | } | 335 | } |
356 | 336 | ||
357 | return 0; | 337 | return 0; |
@@ -359,25 +339,36 @@ static int __init get_frame_info(struct mips_frame_info *info) | |||
359 | 339 | ||
360 | static int __init frame_info_init(void) | 340 | static int __init frame_info_init(void) |
361 | { | 341 | { |
362 | int i, found; | 342 | int i; |
363 | for (i = 0; i < ARRAY_SIZE(mfinfo); i++) | 343 | #ifdef CONFIG_KALLSYMS |
364 | if (get_frame_info(&mfinfo[i])) | 344 | char *modname; |
365 | return -1; | 345 | char namebuf[KSYM_NAME_LEN + 1]; |
366 | schedule_frame = mfinfo[0]; | 346 | unsigned long start, size, ofs; |
367 | /* bubble sort */ | 347 | extern char __sched_text_start[], __sched_text_end[]; |
368 | do { | 348 | extern char __lock_text_start[], __lock_text_end[]; |
369 | struct mips_frame_info tmp; | 349 | |
370 | found = 0; | 350 | start = (unsigned long)__sched_text_start; |
371 | for (i = 1; i < ARRAY_SIZE(mfinfo); i++) { | 351 | for (i = 0; i < ARRAY_SIZE(mfinfo); i++) { |
372 | if (mfinfo[i-1].func > mfinfo[i].func) { | 352 | if (start == (unsigned long)schedule) |
373 | tmp = mfinfo[i]; | 353 | schedule_frame = &mfinfo[i]; |
374 | mfinfo[i] = mfinfo[i-1]; | 354 | if (!kallsyms_lookup(start, &size, &ofs, &modname, namebuf)) |
375 | mfinfo[i-1] = tmp; | 355 | break; |
376 | found = 1; | 356 | mfinfo[i].func = (void *)(start + ofs); |
377 | } | 357 | mfinfo[i].func_size = size; |
378 | } | 358 | start += size - ofs; |
379 | } while (found); | 359 | if (start >= (unsigned long)__lock_text_end) |
380 | mips_frame_info_initialized = 1; | 360 | break; |
361 | if (start == (unsigned long)__sched_text_end) | ||
362 | start = (unsigned long)__lock_text_start; | ||
363 | } | ||
364 | #else | ||
365 | mfinfo[0].func = schedule; | ||
366 | schedule_frame = &mfinfo[0]; | ||
367 | #endif | ||
368 | for (i = 0; i < ARRAY_SIZE(mfinfo) && mfinfo[i].func; i++) | ||
369 | get_frame_info(&mfinfo[i]); | ||
370 | |||
371 | mfinfo_num = i; | ||
381 | return 0; | 372 | return 0; |
382 | } | 373 | } |
383 | 374 | ||
@@ -394,47 +385,52 @@ unsigned long thread_saved_pc(struct task_struct *tsk) | |||
394 | if (t->reg31 == (unsigned long) ret_from_fork) | 385 | if (t->reg31 == (unsigned long) ret_from_fork) |
395 | return t->reg31; | 386 | return t->reg31; |
396 | 387 | ||
397 | if (schedule_frame.pc_offset < 0) | 388 | if (!schedule_frame || schedule_frame->pc_offset < 0) |
398 | return 0; | 389 | return 0; |
399 | return ((unsigned long *)t->reg29)[schedule_frame.pc_offset]; | 390 | return ((unsigned long *)t->reg29)[schedule_frame->pc_offset]; |
400 | } | 391 | } |
401 | 392 | ||
402 | /* get_wchan - a maintenance nightmare^W^Wpain in the ass ... */ | 393 | /* get_wchan - a maintenance nightmare^W^Wpain in the ass ... */ |
403 | unsigned long get_wchan(struct task_struct *p) | 394 | unsigned long get_wchan(struct task_struct *p) |
404 | { | 395 | { |
405 | unsigned long stack_page; | 396 | unsigned long stack_page; |
406 | unsigned long frame, pc; | 397 | unsigned long pc; |
398 | #ifdef CONFIG_KALLSYMS | ||
399 | unsigned long frame; | ||
400 | #endif | ||
407 | 401 | ||
408 | if (!p || p == current || p->state == TASK_RUNNING) | 402 | if (!p || p == current || p->state == TASK_RUNNING) |
409 | return 0; | 403 | return 0; |
410 | 404 | ||
411 | stack_page = (unsigned long)task_stack_page(p); | 405 | stack_page = (unsigned long)task_stack_page(p); |
412 | if (!stack_page || !mips_frame_info_initialized) | 406 | if (!stack_page || !mfinfo_num) |
413 | return 0; | 407 | return 0; |
414 | 408 | ||
415 | pc = thread_saved_pc(p); | 409 | pc = thread_saved_pc(p); |
410 | #ifdef CONFIG_KALLSYMS | ||
416 | if (!in_sched_functions(pc)) | 411 | if (!in_sched_functions(pc)) |
417 | return pc; | 412 | return pc; |
418 | 413 | ||
419 | frame = ((unsigned long *)p->thread.reg30)[schedule_frame.frame_offset]; | 414 | frame = p->thread.reg29 + schedule_frame->frame_size; |
420 | do { | 415 | do { |
421 | int i; | 416 | int i; |
422 | 417 | ||
423 | if (frame < stack_page || frame > stack_page + THREAD_SIZE - 32) | 418 | if (frame < stack_page || frame > stack_page + THREAD_SIZE - 32) |
424 | return 0; | 419 | return 0; |
425 | 420 | ||
426 | for (i = ARRAY_SIZE(mfinfo) - 1; i >= 0; i--) { | 421 | for (i = mfinfo_num - 1; i >= 0; i--) { |
427 | if (pc >= (unsigned long) mfinfo[i].func) | 422 | if (pc >= (unsigned long) mfinfo[i].func) |
428 | break; | 423 | break; |
429 | } | 424 | } |
430 | if (i < 0) | 425 | if (i < 0) |
431 | break; | 426 | break; |
432 | 427 | ||
433 | if (mfinfo[i].omit_fp) | ||
434 | break; | ||
435 | pc = ((unsigned long *)frame)[mfinfo[i].pc_offset]; | 428 | pc = ((unsigned long *)frame)[mfinfo[i].pc_offset]; |
436 | frame = ((unsigned long *)frame)[mfinfo[i].frame_offset]; | 429 | if (!mfinfo[i].frame_size) |
430 | break; | ||
431 | frame += mfinfo[i].frame_size; | ||
437 | } while (in_sched_functions(pc)); | 432 | } while (in_sched_functions(pc)); |
433 | #endif | ||
438 | 434 | ||
439 | return pc; | 435 | return pc; |
440 | } | 436 | } |
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index d7c4a38ed5ae..2f2dc54b2e26 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -623,10 +623,10 @@ einval: li v0, -EINVAL | |||
623 | sys sys_mknodat 4 /* 4290 */ | 623 | sys sys_mknodat 4 /* 4290 */ |
624 | sys sys_fchownat 5 | 624 | sys sys_fchownat 5 |
625 | sys sys_futimesat 3 | 625 | sys sys_futimesat 3 |
626 | sys sys_newfstatat 4 | 626 | sys sys_fstatat64 4 |
627 | sys sys_unlinkat 3 | 627 | sys sys_unlinkat 3 |
628 | sys sys_renameat 4 /* 4295 */ | 628 | sys sys_renameat 4 /* 4295 */ |
629 | sys sys_linkat 4 | 629 | sys sys_linkat 5 |
630 | sys sys_symlinkat 3 | 630 | sys sys_symlinkat 3 |
631 | sys sys_readlinkat 4 | 631 | sys sys_readlinkat 4 |
632 | sys sys_fchmodat 3 | 632 | sys sys_fchmodat 3 |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index bc4980cefc8b..02c8267e45e7 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -195,7 +195,7 @@ EXPORT(sysn32_call_table) | |||
195 | PTR sys_fdatasync | 195 | PTR sys_fdatasync |
196 | PTR sys_truncate | 196 | PTR sys_truncate |
197 | PTR sys_ftruncate /* 6075 */ | 197 | PTR sys_ftruncate /* 6075 */ |
198 | PTR sys32_getdents | 198 | PTR compat_sys_getdents |
199 | PTR sys_getcwd | 199 | PTR sys_getcwd |
200 | PTR sys_chdir | 200 | PTR sys_chdir |
201 | PTR sys_fchdir | 201 | PTR sys_fchdir |
@@ -245,9 +245,9 @@ EXPORT(sysn32_call_table) | |||
245 | PTR sys_capget | 245 | PTR sys_capget |
246 | PTR sys_capset | 246 | PTR sys_capset |
247 | PTR sys32_rt_sigpending /* 6125 */ | 247 | PTR sys32_rt_sigpending /* 6125 */ |
248 | PTR sysn32_rt_sigtimedwait | 248 | PTR compat_sys_rt_sigtimedwait |
249 | PTR sys_rt_sigqueueinfo | 249 | PTR sys_rt_sigqueueinfo |
250 | PTR sys32_rt_sigsuspend | 250 | PTR sysn32_rt_sigsuspend |
251 | PTR sys32_sigaltstack | 251 | PTR sys32_sigaltstack |
252 | PTR compat_sys_utime /* 6130 */ | 252 | PTR compat_sys_utime /* 6130 */ |
253 | PTR sys_mknod | 253 | PTR sys_mknod |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 5b0414018c9a..797e0d874889 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -293,7 +293,7 @@ sys_call_table: | |||
293 | PTR sys_uselib | 293 | PTR sys_uselib |
294 | PTR sys_swapon | 294 | PTR sys_swapon |
295 | PTR sys_reboot | 295 | PTR sys_reboot |
296 | PTR sys32_readdir | 296 | PTR compat_sys_old_readdir |
297 | PTR old_mmap /* 4090 */ | 297 | PTR old_mmap /* 4090 */ |
298 | PTR sys_munmap | 298 | PTR sys_munmap |
299 | PTR sys_truncate | 299 | PTR sys_truncate |
@@ -345,7 +345,7 @@ sys_call_table: | |||
345 | PTR sys_setfsuid | 345 | PTR sys_setfsuid |
346 | PTR sys_setfsgid | 346 | PTR sys_setfsgid |
347 | PTR sys32_llseek /* 4140 */ | 347 | PTR sys32_llseek /* 4140 */ |
348 | PTR sys32_getdents | 348 | PTR compat_sys_getdents |
349 | PTR compat_sys_select | 349 | PTR compat_sys_select |
350 | PTR sys_flock | 350 | PTR sys_flock |
351 | PTR sys_msync | 351 | PTR sys_msync |
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index d86affa21278..d9293c558e41 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
@@ -540,6 +540,9 @@ void __init setup_arch(char **cmdline_p) | |||
540 | sparse_init(); | 540 | sparse_init(); |
541 | paging_init(); | 541 | paging_init(); |
542 | resource_init(); | 542 | resource_init(); |
543 | #ifdef CONFIG_SMP | ||
544 | plat_smp_setup(); | ||
545 | #endif | ||
543 | } | 546 | } |
544 | 547 | ||
545 | int __init fpu_disable(char *s) | 548 | int __init fpu_disable(char *s) |
diff --git a/arch/mips/kernel/signal-common.h b/arch/mips/kernel/signal-common.h index 0fbc492d24b4..36bfc2588aa3 100644 --- a/arch/mips/kernel/signal-common.h +++ b/arch/mips/kernel/signal-common.h | |||
@@ -176,7 +176,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) | |||
176 | if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0)) | 176 | if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags (sp) == 0)) |
177 | sp = current->sas_ss_sp + current->sas_ss_size; | 177 | sp = current->sas_ss_sp + current->sas_ss_size; |
178 | 178 | ||
179 | return (void __user *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? 32 : ALMASK)); | 179 | return (void __user *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? ~(cpu_icache_line_size()-1) : ALMASK)); |
180 | } | 180 | } |
181 | 181 | ||
182 | static inline int install_sigtramp(unsigned int __user *tramp, | 182 | static inline int install_sigtramp(unsigned int __user *tramp, |
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index da3271e1fdac..237cd8a2cd32 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 1991, 1992 Linus Torvalds | 6 | * Copyright (C) 1991, 1992 Linus Torvalds |
7 | * Copyright (C) 1994 - 2000 Ralf Baechle | 7 | * Copyright (C) 1994 - 2000, 2006 Ralf Baechle |
8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/cache.h> | 10 | #include <linux/cache.h> |
@@ -106,8 +106,6 @@ typedef struct compat_siginfo { | |||
106 | 106 | ||
107 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | 107 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) |
108 | 108 | ||
109 | extern int do_signal32(sigset_t *oldset, struct pt_regs *regs); | ||
110 | |||
111 | /* 32-bit compatibility types */ | 109 | /* 32-bit compatibility types */ |
112 | 110 | ||
113 | #define _NSIG_BPW32 32 | 111 | #define _NSIG_BPW32 32 |
@@ -198,7 +196,7 @@ __attribute_used__ noinline static int | |||
198 | _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) | 196 | _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) |
199 | { | 197 | { |
200 | compat_sigset_t *uset; | 198 | compat_sigset_t *uset; |
201 | sigset_t newset, saveset; | 199 | sigset_t newset; |
202 | 200 | ||
203 | uset = (compat_sigset_t *) regs.regs[4]; | 201 | uset = (compat_sigset_t *) regs.regs[4]; |
204 | if (get_sigset(&newset, uset)) | 202 | if (get_sigset(&newset, uset)) |
@@ -206,19 +204,15 @@ _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
206 | sigdelsetmask(&newset, ~_BLOCKABLE); | 204 | sigdelsetmask(&newset, ~_BLOCKABLE); |
207 | 205 | ||
208 | spin_lock_irq(¤t->sighand->siglock); | 206 | spin_lock_irq(¤t->sighand->siglock); |
209 | saveset = current->blocked; | 207 | current->saved_sigmask = current->blocked; |
210 | current->blocked = newset; | 208 | current->blocked = newset; |
211 | recalc_sigpending(); | 209 | recalc_sigpending(); |
212 | spin_unlock_irq(¤t->sighand->siglock); | 210 | spin_unlock_irq(¤t->sighand->siglock); |
213 | 211 | ||
214 | regs.regs[2] = EINTR; | 212 | current->state = TASK_INTERRUPTIBLE; |
215 | regs.regs[7] = 1; | 213 | schedule(); |
216 | while (1) { | 214 | set_thread_flag(TIF_RESTORE_SIGMASK); |
217 | current->state = TASK_INTERRUPTIBLE; | 215 | return -ERESTARTNOHAND; |
218 | schedule(); | ||
219 | if (do_signal32(&saveset, ®s)) | ||
220 | return -EINTR; | ||
221 | } | ||
222 | } | 216 | } |
223 | 217 | ||
224 | save_static_function(sys32_rt_sigsuspend); | 218 | save_static_function(sys32_rt_sigsuspend); |
@@ -226,8 +220,8 @@ __attribute_used__ noinline static int | |||
226 | _sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | 220 | _sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) |
227 | { | 221 | { |
228 | compat_sigset_t *uset; | 222 | compat_sigset_t *uset; |
229 | sigset_t newset, saveset; | 223 | sigset_t newset; |
230 | size_t sigsetsize; | 224 | size_t sigsetsize; |
231 | 225 | ||
232 | /* XXX Don't preclude handling different sized sigset_t's. */ | 226 | /* XXX Don't preclude handling different sized sigset_t's. */ |
233 | sigsetsize = regs.regs[5]; | 227 | sigsetsize = regs.regs[5]; |
@@ -240,19 +234,15 @@ _sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
240 | sigdelsetmask(&newset, ~_BLOCKABLE); | 234 | sigdelsetmask(&newset, ~_BLOCKABLE); |
241 | 235 | ||
242 | spin_lock_irq(¤t->sighand->siglock); | 236 | spin_lock_irq(¤t->sighand->siglock); |
243 | saveset = current->blocked; | 237 | current->saved_sigmask = current->blocked; |
244 | current->blocked = newset; | 238 | current->blocked = newset; |
245 | recalc_sigpending(); | 239 | recalc_sigpending(); |
246 | spin_unlock_irq(¤t->sighand->siglock); | 240 | spin_unlock_irq(¤t->sighand->siglock); |
247 | 241 | ||
248 | regs.regs[2] = EINTR; | 242 | current->state = TASK_INTERRUPTIBLE; |
249 | regs.regs[7] = 1; | 243 | schedule(); |
250 | while (1) { | 244 | set_thread_flag(TIF_RESTORE_SIGMASK); |
251 | current->state = TASK_INTERRUPTIBLE; | 245 | return -ERESTARTNOHAND; |
252 | schedule(); | ||
253 | if (do_signal32(&saveset, ®s)) | ||
254 | return -EINTR; | ||
255 | } | ||
256 | } | 246 | } |
257 | 247 | ||
258 | asmlinkage int sys32_sigaction(int sig, const struct sigaction32 *act, | 248 | asmlinkage int sys32_sigaction(int sig, const struct sigaction32 *act, |
@@ -537,7 +527,7 @@ _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
537 | /* The ucontext contains a stack32_t, so we must convert! */ | 527 | /* The ucontext contains a stack32_t, so we must convert! */ |
538 | if (__get_user(sp, &frame->rs_uc.uc_stack.ss_sp)) | 528 | if (__get_user(sp, &frame->rs_uc.uc_stack.ss_sp)) |
539 | goto badframe; | 529 | goto badframe; |
540 | st.ss_size = (long) sp; | 530 | st.ss_sp = (void *)(long) sp; |
541 | if (__get_user(st.ss_size, &frame->rs_uc.uc_stack.ss_size)) | 531 | if (__get_user(st.ss_size, &frame->rs_uc.uc_stack.ss_size)) |
542 | goto badframe; | 532 | goto badframe; |
543 | if (__get_user(st.ss_flags, &frame->rs_uc.uc_stack.ss_flags)) | 533 | if (__get_user(st.ss_flags, &frame->rs_uc.uc_stack.ss_flags)) |
@@ -783,7 +773,7 @@ static inline int handle_signal(unsigned long sig, siginfo_t *info, | |||
783 | regs->regs[2] = EINTR; | 773 | regs->regs[2] = EINTR; |
784 | break; | 774 | break; |
785 | case ERESTARTSYS: | 775 | case ERESTARTSYS: |
786 | if(!(ka->sa.sa_flags & SA_RESTART)) { | 776 | if (!(ka->sa.sa_flags & SA_RESTART)) { |
787 | regs->regs[2] = EINTR; | 777 | regs->regs[2] = EINTR; |
788 | break; | 778 | break; |
789 | } | 779 | } |
@@ -810,9 +800,10 @@ static inline int handle_signal(unsigned long sig, siginfo_t *info, | |||
810 | return ret; | 800 | return ret; |
811 | } | 801 | } |
812 | 802 | ||
813 | int do_signal32(sigset_t *oldset, struct pt_regs *regs) | 803 | void do_signal32(struct pt_regs *regs) |
814 | { | 804 | { |
815 | struct k_sigaction ka; | 805 | struct k_sigaction ka; |
806 | sigset_t *oldset; | ||
816 | siginfo_t info; | 807 | siginfo_t info; |
817 | int signr; | 808 | int signr; |
818 | 809 | ||
@@ -822,17 +813,30 @@ int do_signal32(sigset_t *oldset, struct pt_regs *regs) | |||
822 | * if so. | 813 | * if so. |
823 | */ | 814 | */ |
824 | if (!user_mode(regs)) | 815 | if (!user_mode(regs)) |
825 | return 1; | 816 | return; |
826 | 817 | ||
827 | if (try_to_freeze()) | 818 | if (try_to_freeze()) |
828 | goto no_signal; | 819 | goto no_signal; |
829 | 820 | ||
830 | if (!oldset) | 821 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) |
822 | oldset = ¤t->saved_sigmask; | ||
823 | else | ||
831 | oldset = ¤t->blocked; | 824 | oldset = ¤t->blocked; |
832 | 825 | ||
833 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); | 826 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); |
834 | if (signr > 0) | 827 | if (signr > 0) { |
835 | return handle_signal(signr, &info, &ka, oldset, regs); | 828 | /* Whee! Actually deliver the signal. */ |
829 | if (handle_signal(signr, &info, &ka, oldset, regs) == 0) { | ||
830 | /* | ||
831 | * A signal was successfully delivered; the saved | ||
832 | * sigmask will have been stored in the signal frame, | ||
833 | * and will be restored by sigreturn, so we can simply | ||
834 | * clear the TIF_RESTORE_SIGMASK flag. | ||
835 | */ | ||
836 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | ||
837 | clear_thread_flag(TIF_RESTORE_SIGMASK); | ||
838 | } | ||
839 | } | ||
836 | 840 | ||
837 | no_signal: | 841 | no_signal: |
838 | /* | 842 | /* |
@@ -853,7 +857,15 @@ no_signal: | |||
853 | regs->cp0_epc -= 4; | 857 | regs->cp0_epc -= 4; |
854 | } | 858 | } |
855 | } | 859 | } |
856 | return 0; | 860 | |
861 | /* | ||
862 | * If there's no signal to deliver, we just put the saved sigmask | ||
863 | * back | ||
864 | */ | ||
865 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) { | ||
866 | clear_thread_flag(TIF_RESTORE_SIGMASK); | ||
867 | sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); | ||
868 | } | ||
857 | } | 869 | } |
858 | 870 | ||
859 | asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 *act, | 871 | asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 *act, |
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c index 384fc4a639a4..3e168c08a3a8 100644 --- a/arch/mips/kernel/signal_n32.c +++ b/arch/mips/kernel/signal_n32.c | |||
@@ -81,6 +81,39 @@ struct rt_sigframe_n32 { | |||
81 | #endif | 81 | #endif |
82 | }; | 82 | }; |
83 | 83 | ||
84 | extern void sigset_from_compat (sigset_t *set, compat_sigset_t *compat); | ||
85 | |||
86 | save_static_function(sysn32_rt_sigsuspend); | ||
87 | __attribute_used__ noinline static int | ||
88 | _sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
89 | { | ||
90 | compat_sigset_t __user *unewset, uset; | ||
91 | size_t sigsetsize; | ||
92 | sigset_t newset; | ||
93 | |||
94 | /* XXX Don't preclude handling different sized sigset_t's. */ | ||
95 | sigsetsize = regs.regs[5]; | ||
96 | if (sigsetsize != sizeof(sigset_t)) | ||
97 | return -EINVAL; | ||
98 | |||
99 | unewset = (compat_sigset_t __user *) regs.regs[4]; | ||
100 | if (copy_from_user(&uset, unewset, sizeof(uset))) | ||
101 | return -EFAULT; | ||
102 | sigset_from_compat (&newset, &uset); | ||
103 | sigdelsetmask(&newset, ~_BLOCKABLE); | ||
104 | |||
105 | spin_lock_irq(¤t->sighand->siglock); | ||
106 | current->saved_sigmask = current->blocked; | ||
107 | current->blocked = newset; | ||
108 | recalc_sigpending(); | ||
109 | spin_unlock_irq(¤t->sighand->siglock); | ||
110 | |||
111 | current->state = TASK_INTERRUPTIBLE; | ||
112 | schedule(); | ||
113 | set_thread_flag(TIF_RESTORE_SIGMASK); | ||
114 | return -ERESTARTNOHAND; | ||
115 | } | ||
116 | |||
84 | save_static_function(sysn32_rt_sigreturn); | 117 | save_static_function(sysn32_rt_sigreturn); |
85 | __attribute_used__ noinline static void | 118 | __attribute_used__ noinline static void |
86 | _sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | 119 | _sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) |
@@ -108,7 +141,7 @@ _sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
108 | /* The ucontext contains a stack32_t, so we must convert! */ | 141 | /* The ucontext contains a stack32_t, so we must convert! */ |
109 | if (__get_user(sp, &frame->rs_uc.uc_stack.ss_sp)) | 142 | if (__get_user(sp, &frame->rs_uc.uc_stack.ss_sp)) |
110 | goto badframe; | 143 | goto badframe; |
111 | st.ss_size = (long) sp; | 144 | st.ss_sp = (void *)(long) sp; |
112 | if (__get_user(st.ss_size, &frame->rs_uc.uc_stack.ss_size)) | 145 | if (__get_user(st.ss_size, &frame->rs_uc.uc_stack.ss_size)) |
113 | goto badframe; | 146 | goto badframe; |
114 | if (__get_user(st.ss_flags, &frame->rs_uc.uc_stack.ss_flags)) | 147 | if (__get_user(st.ss_flags, &frame->rs_uc.uc_stack.ss_flags)) |
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 25472fcaf715..06ed90752424 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/timex.h> | 29 | #include <linux/timex.h> |
30 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
31 | #include <linux/cpumask.h> | 31 | #include <linux/cpumask.h> |
32 | #include <linux/cpu.h> | ||
32 | 33 | ||
33 | #include <asm/atomic.h> | 34 | #include <asm/atomic.h> |
34 | #include <asm/cpu.h> | 35 | #include <asm/cpu.h> |
@@ -235,7 +236,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
235 | init_new_context(current, &init_mm); | 236 | init_new_context(current, &init_mm); |
236 | current_thread_info()->cpu = 0; | 237 | current_thread_info()->cpu = 0; |
237 | smp_tune_scheduling(); | 238 | smp_tune_scheduling(); |
238 | prom_prepare_cpus(max_cpus); | 239 | plat_prepare_cpus(max_cpus); |
239 | } | 240 | } |
240 | 241 | ||
241 | /* preload SMP state for boot cpu */ | 242 | /* preload SMP state for boot cpu */ |
@@ -424,6 +425,25 @@ void flush_tlb_one(unsigned long vaddr) | |||
424 | local_flush_tlb_one(vaddr); | 425 | local_flush_tlb_one(vaddr); |
425 | } | 426 | } |
426 | 427 | ||
428 | static DEFINE_PER_CPU(struct cpu, cpu_devices); | ||
429 | |||
430 | static int __init topology_init(void) | ||
431 | { | ||
432 | int cpu; | ||
433 | int ret; | ||
434 | |||
435 | for_each_cpu(cpu) { | ||
436 | ret = register_cpu(&per_cpu(cpu_devices, cpu), cpu, NULL); | ||
437 | if (ret) | ||
438 | printk(KERN_WARNING "topology_init: register_cpu %d " | ||
439 | "failed (%d)\n", cpu, ret); | ||
440 | } | ||
441 | |||
442 | return 0; | ||
443 | } | ||
444 | |||
445 | subsys_initcall(topology_init); | ||
446 | |||
427 | EXPORT_SYMBOL(flush_tlb_page); | 447 | EXPORT_SYMBOL(flush_tlb_page); |
428 | EXPORT_SYMBOL(flush_tlb_one); | 448 | EXPORT_SYMBOL(flush_tlb_one); |
429 | EXPORT_SYMBOL(cpu_data); | 449 | EXPORT_SYMBOL(cpu_data); |
diff --git a/arch/mips/kernel/smp_mt.c b/arch/mips/kernel/smp_mt.c index 794a1c3de2a4..993b8bf56aaf 100644 --- a/arch/mips/kernel/smp_mt.c +++ b/arch/mips/kernel/smp_mt.c | |||
@@ -68,6 +68,8 @@ void __init sanitize_tlb_entries(void) | |||
68 | 68 | ||
69 | set_c0_mvpcontrol(MVPCONTROL_VPC); | 69 | set_c0_mvpcontrol(MVPCONTROL_VPC); |
70 | 70 | ||
71 | back_to_back_c0_hazard(); | ||
72 | |||
71 | /* Disable TLB sharing */ | 73 | /* Disable TLB sharing */ |
72 | clear_c0_mvpcontrol(MVPCONTROL_STLB); | 74 | clear_c0_mvpcontrol(MVPCONTROL_STLB); |
73 | 75 | ||
@@ -102,35 +104,6 @@ void __init sanitize_tlb_entries(void) | |||
102 | clear_c0_mvpcontrol(MVPCONTROL_VPC); | 104 | clear_c0_mvpcontrol(MVPCONTROL_VPC); |
103 | } | 105 | } |
104 | 106 | ||
105 | #if 0 | ||
106 | /* | ||
107 | * Use c0_MVPConf0 to find out how many CPUs are available, setting up | ||
108 | * phys_cpu_present_map and the logical/physical mappings. | ||
109 | */ | ||
110 | void __init prom_build_cpu_map(void) | ||
111 | { | ||
112 | int i, num, ncpus; | ||
113 | |||
114 | cpus_clear(phys_cpu_present_map); | ||
115 | |||
116 | /* assume we boot on cpu 0.... */ | ||
117 | cpu_set(0, phys_cpu_present_map); | ||
118 | __cpu_number_map[0] = 0; | ||
119 | __cpu_logical_map[0] = 0; | ||
120 | |||
121 | if (cpu_has_mipsmt) { | ||
122 | ncpus = ((read_c0_mvpconf0() & (MVPCONF0_PVPE)) >> MVPCONF0_PVPE_SHIFT) + 1; | ||
123 | for (i=1, num=0; i< NR_CPUS && i<ncpus; i++) { | ||
124 | cpu_set(i, phys_cpu_present_map); | ||
125 | __cpu_number_map[i] = ++num; | ||
126 | __cpu_logical_map[num] = i; | ||
127 | } | ||
128 | |||
129 | printk(KERN_INFO "%i available secondary CPU(s)\n", num); | ||
130 | } | ||
131 | } | ||
132 | #endif | ||
133 | |||
134 | static void ipi_resched_dispatch (struct pt_regs *regs) | 107 | static void ipi_resched_dispatch (struct pt_regs *regs) |
135 | { | 108 | { |
136 | do_IRQ(MIPS_CPU_IPI_RESCHED_IRQ, regs); | 109 | do_IRQ(MIPS_CPU_IPI_RESCHED_IRQ, regs); |
@@ -170,7 +143,7 @@ static struct irqaction irq_call = { | |||
170 | * Make sure all CPU's are in a sensible state before we boot any of the | 143 | * Make sure all CPU's are in a sensible state before we boot any of the |
171 | * secondarys | 144 | * secondarys |
172 | */ | 145 | */ |
173 | void prom_prepare_cpus(unsigned int max_cpus) | 146 | void plat_smp_setup(void) |
174 | { | 147 | { |
175 | unsigned long val; | 148 | unsigned long val; |
176 | int i, num; | 149 | int i, num; |
@@ -206,11 +179,9 @@ void prom_prepare_cpus(unsigned int max_cpus) | |||
206 | write_vpe_c0_vpeconf0(tmp); | 179 | write_vpe_c0_vpeconf0(tmp); |
207 | 180 | ||
208 | /* Record this as available CPU */ | 181 | /* Record this as available CPU */ |
209 | if (i < max_cpus) { | 182 | cpu_set(i, phys_cpu_present_map); |
210 | cpu_set(i, phys_cpu_present_map); | 183 | __cpu_number_map[i] = ++num; |
211 | __cpu_number_map[i] = ++num; | 184 | __cpu_logical_map[num] = i; |
212 | __cpu_logical_map[num] = i; | ||
213 | } | ||
214 | } | 185 | } |
215 | 186 | ||
216 | /* disable multi-threading with TC's */ | 187 | /* disable multi-threading with TC's */ |
@@ -222,6 +193,9 @@ void prom_prepare_cpus(unsigned int max_cpus) | |||
222 | 193 | ||
223 | /* set config to be the same as vpe0, particularly kseg0 coherency alg */ | 194 | /* set config to be the same as vpe0, particularly kseg0 coherency alg */ |
224 | write_vpe_c0_config( read_c0_config()); | 195 | write_vpe_c0_config( read_c0_config()); |
196 | |||
197 | /* Propagate Config7 */ | ||
198 | write_vpe_c0_config7(read_c0_config7()); | ||
225 | } | 199 | } |
226 | 200 | ||
227 | } | 201 | } |
@@ -265,7 +239,10 @@ void prom_prepare_cpus(unsigned int max_cpus) | |||
265 | set_vi_handler (MIPS_CPU_IPI_RESCHED_IRQ, ipi_resched_dispatch); | 239 | set_vi_handler (MIPS_CPU_IPI_RESCHED_IRQ, ipi_resched_dispatch); |
266 | set_vi_handler (MIPS_CPU_IPI_CALL_IRQ, ipi_call_dispatch); | 240 | set_vi_handler (MIPS_CPU_IPI_CALL_IRQ, ipi_call_dispatch); |
267 | } | 241 | } |
242 | } | ||
268 | 243 | ||
244 | void __init plat_prepare_cpus(unsigned int max_cpus) | ||
245 | { | ||
269 | cpu_ipi_resched_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_RESCHED_IRQ; | 246 | cpu_ipi_resched_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_RESCHED_IRQ; |
270 | cpu_ipi_call_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_CALL_IRQ; | 247 | cpu_ipi_call_irq = MIPSCPU_INT_BASE + MIPS_CPU_IPI_CALL_IRQ; |
271 | 248 | ||
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 7050b4ffffcd..51273b7297a7 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
@@ -163,7 +163,7 @@ void do_gettimeofday(struct timeval *tv) | |||
163 | unsigned long seq; | 163 | unsigned long seq; |
164 | unsigned long lost; | 164 | unsigned long lost; |
165 | unsigned long usec, sec; | 165 | unsigned long usec, sec; |
166 | unsigned long max_ntp_tick = tick_usec - tickadj; | 166 | unsigned long max_ntp_tick; |
167 | 167 | ||
168 | do { | 168 | do { |
169 | seq = read_seqbegin(&xtime_lock); | 169 | seq = read_seqbegin(&xtime_lock); |
@@ -178,12 +178,13 @@ void do_gettimeofday(struct timeval *tv) | |||
178 | * Better to lose some accuracy than have time go backwards.. | 178 | * Better to lose some accuracy than have time go backwards.. |
179 | */ | 179 | */ |
180 | if (unlikely(time_adjust < 0)) { | 180 | if (unlikely(time_adjust < 0)) { |
181 | max_ntp_tick = (USEC_PER_SEC / HZ) - tickadj; | ||
181 | usec = min(usec, max_ntp_tick); | 182 | usec = min(usec, max_ntp_tick); |
182 | 183 | ||
183 | if (lost) | 184 | if (lost) |
184 | usec += lost * max_ntp_tick; | 185 | usec += lost * max_ntp_tick; |
185 | } else if (unlikely(lost)) | 186 | } else if (unlikely(lost)) |
186 | usec += lost * tick_usec; | 187 | usec += lost * (USEC_PER_SEC / HZ); |
187 | 188 | ||
188 | sec = xtime.tv_sec; | 189 | sec = xtime.tv_sec; |
189 | usec += (xtime.tv_nsec / 1000); | 190 | usec += (xtime.tv_nsec / 1000); |
@@ -423,6 +424,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
423 | unsigned long j; | 424 | unsigned long j; |
424 | unsigned int count; | 425 | unsigned int count; |
425 | 426 | ||
427 | write_seqlock(&xtime_lock); | ||
428 | |||
426 | count = mips_hpt_read(); | 429 | count = mips_hpt_read(); |
427 | mips_timer_ack(); | 430 | mips_timer_ack(); |
428 | 431 | ||
@@ -440,7 +443,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
440 | * CMOS clock accordingly every ~11 minutes. rtc_set_time() has to be | 443 | * CMOS clock accordingly every ~11 minutes. rtc_set_time() has to be |
441 | * called as close as possible to 500 ms before the new second starts. | 444 | * called as close as possible to 500 ms before the new second starts. |
442 | */ | 445 | */ |
443 | write_seqlock(&xtime_lock); | ||
444 | if (ntp_synced() && | 446 | if (ntp_synced() && |
445 | xtime.tv_sec > last_rtc_update + 660 && | 447 | xtime.tv_sec > last_rtc_update + 660 && |
446 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | 448 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && |
@@ -452,7 +454,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
452 | last_rtc_update = xtime.tv_sec - 600; | 454 | last_rtc_update = xtime.tv_sec - 600; |
453 | } | 455 | } |
454 | } | 456 | } |
455 | write_sequnlock(&xtime_lock); | ||
456 | 457 | ||
457 | /* | 458 | /* |
458 | * If jiffies has overflown in this timer_interrupt, we must | 459 | * If jiffies has overflown in this timer_interrupt, we must |
@@ -495,6 +496,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
495 | } | 496 | } |
496 | } | 497 | } |
497 | 498 | ||
499 | write_sequnlock(&xtime_lock); | ||
500 | |||
498 | /* | 501 | /* |
499 | * In UP mode, we call local_timer_interrupt() to do profiling | 502 | * In UP mode, we call local_timer_interrupt() to do profiling |
500 | * and process accouting. | 503 | * and process accouting. |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index c9d2b5147ca3..005debbfbe84 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 1994 - 1999, 2000, 01 Ralf Baechle | 6 | * Copyright (C) 1994 - 1999, 2000, 01, 06 Ralf Baechle |
7 | * Copyright (C) 1995, 1996 Paul M. Antoine | 7 | * Copyright (C) 1995, 1996 Paul M. Antoine |
8 | * Copyright (C) 1998 Ulf Carlsson | 8 | * Copyright (C) 1998 Ulf Carlsson |
9 | * Copyright (C) 1999 Silicon Graphics, Inc. | 9 | * Copyright (C) 1999 Silicon Graphics, Inc. |
@@ -548,6 +548,8 @@ asmlinkage void do_ov(struct pt_regs *regs) | |||
548 | { | 548 | { |
549 | siginfo_t info; | 549 | siginfo_t info; |
550 | 550 | ||
551 | die_if_kernel("Integer overflow", regs); | ||
552 | |||
551 | info.si_code = FPE_INTOVF; | 553 | info.si_code = FPE_INTOVF; |
552 | info.si_signo = SIGFPE; | 554 | info.si_signo = SIGFPE; |
553 | info.si_errno = 0; | 555 | info.si_errno = 0; |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index ff699dbb99f7..2ad0cedf29fe 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -106,6 +106,9 @@ SECTIONS | |||
106 | .con_initcall.init : { *(.con_initcall.init) } | 106 | .con_initcall.init : { *(.con_initcall.init) } |
107 | __con_initcall_end = .; | 107 | __con_initcall_end = .; |
108 | SECURITY_INIT | 108 | SECURITY_INIT |
109 | /* .exit.text is discarded at runtime, not link time, to deal with | ||
110 | references from .rodata */ | ||
111 | .exit.text : { *(.exit.text) } | ||
109 | . = ALIGN(_PAGE_SIZE); | 112 | . = ALIGN(_PAGE_SIZE); |
110 | __initramfs_start = .; | 113 | __initramfs_start = .; |
111 | .init.ramfs : { *(.init.ramfs) } | 114 | .init.ramfs : { *(.init.ramfs) } |
@@ -133,7 +136,6 @@ SECTIONS | |||
133 | 136 | ||
134 | /* Sections to be discarded */ | 137 | /* Sections to be discarded */ |
135 | /DISCARD/ : { | 138 | /DISCARD/ : { |
136 | *(.exit.text) | ||
137 | *(.exit.data) | 139 | *(.exit.data) |
138 | *(.exitcall.exit) | 140 | *(.exitcall.exit) |
139 | 141 | ||
diff --git a/arch/mips/lasat/setup.c b/arch/mips/lasat/setup.c index dcd819d57dae..83eb08b7a072 100644 --- a/arch/mips/lasat/setup.c +++ b/arch/mips/lasat/setup.c | |||
@@ -134,8 +134,8 @@ void __init serial_init(void) | |||
134 | 134 | ||
135 | memset(&s, 0, sizeof(s)); | 135 | memset(&s, 0, sizeof(s)); |
136 | 136 | ||
137 | s.flags = STD_COM_FLAGS; | 137 | s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
138 | s.iotype = SERIAL_IO_MEM; | 138 | s.iotype = UPIO_MEM; |
139 | 139 | ||
140 | if (mips_machtype == MACH_LASAT_100) { | 140 | if (mips_machtype == MACH_LASAT_100) { |
141 | s.uartclk = LASAT_BASE_BAUD_100 * 16; | 141 | s.uartclk = LASAT_BASE_BAUD_100 * 16; |
diff --git a/arch/mips/lib/iomap.c b/arch/mips/lib/iomap.c index 7e2ced715cfb..f4ac5bbcd81f 100644 --- a/arch/mips/lib/iomap.c +++ b/arch/mips/lib/iomap.c | |||
@@ -63,7 +63,7 @@ void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) | |||
63 | return ioport_map(start, len); | 63 | return ioport_map(start, len); |
64 | if (flags & IORESOURCE_MEM) { | 64 | if (flags & IORESOURCE_MEM) { |
65 | if (flags & IORESOURCE_CACHEABLE) | 65 | if (flags & IORESOURCE_CACHEABLE) |
66 | return ioremap_cacheable_cow(start, len); | 66 | return ioremap_cachable(start, len); |
67 | return ioremap_nocache(start, len); | 67 | return ioremap_nocache(start, len); |
68 | } | 68 | } |
69 | 69 | ||
diff --git a/arch/mips/mips-boards/atlas/atlas_setup.c b/arch/mips/mips-boards/atlas/atlas_setup.c index 625843b30bed..873cf3141a31 100644 --- a/arch/mips/mips-boards/atlas/atlas_setup.c +++ b/arch/mips/mips-boards/atlas/atlas_setup.c | |||
@@ -82,8 +82,8 @@ static void __init serial_init(void) | |||
82 | #endif | 82 | #endif |
83 | s.irq = ATLASINT_UART; | 83 | s.irq = ATLASINT_UART; |
84 | s.uartclk = ATLAS_BASE_BAUD * 16; | 84 | s.uartclk = ATLAS_BASE_BAUD * 16; |
85 | s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ; | 85 | s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ; |
86 | s.iotype = SERIAL_IO_PORT; | 86 | s.iotype = UPIO_PORT; |
87 | s.regshift = 3; | 87 | s.regshift = 3; |
88 | 88 | ||
89 | if (early_serial_setup(&s) != 0) { | 89 | if (early_serial_setup(&s) != 0) { |
diff --git a/arch/mips/mips-boards/sead/sead_setup.c b/arch/mips/mips-boards/sead/sead_setup.c index f966bc161dfa..4266ce445174 100644 --- a/arch/mips/mips-boards/sead/sead_setup.c +++ b/arch/mips/mips-boards/sead/sead_setup.c | |||
@@ -71,8 +71,8 @@ static void __init serial_init(void) | |||
71 | #endif | 71 | #endif |
72 | s.irq = MIPSCPU_INT_BASE + MIPSCPU_INT_UART0; | 72 | s.irq = MIPSCPU_INT_BASE + MIPSCPU_INT_UART0; |
73 | s.uartclk = SEAD_BASE_BAUD * 16; | 73 | s.uartclk = SEAD_BASE_BAUD * 16; |
74 | s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ; | 74 | s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ; |
75 | s.iotype = 0; | 75 | s.iotype = UPIO_PORT; |
76 | s.regshift = 3; | 76 | s.regshift = 3; |
77 | 77 | ||
78 | if (early_serial_setup(&s) != 0) { | 78 | if (early_serial_setup(&s) != 0) { |
diff --git a/arch/mips/mips-boards/sim/sim_setup.c b/arch/mips/mips-boards/sim/sim_setup.c index 485d5a58d9cf..a2fd62997ca3 100644 --- a/arch/mips/mips-boards/sim/sim_setup.c +++ b/arch/mips/mips-boards/sim/sim_setup.c | |||
@@ -88,8 +88,8 @@ static void __init serial_init(void) | |||
88 | but poll for now */ | 88 | but poll for now */ |
89 | s.irq = 0; | 89 | s.irq = 0; |
90 | s.uartclk = BASE_BAUD * 16; | 90 | s.uartclk = BASE_BAUD * 16; |
91 | s.flags = ASYNC_BOOT_AUTOCONF | UPF_SKIP_TEST; | 91 | s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
92 | s.iotype = SERIAL_IO_PORT | ASYNC_SKIP_TEST; | 92 | s.iotype = UPIO_PORT; |
93 | s.regshift = 0; | 93 | s.regshift = 0; |
94 | s.timeout = 4; | 94 | s.timeout = 4; |
95 | 95 | ||
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index e51c38cef88e..9572ed44f0d5 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -235,7 +235,9 @@ static inline void r4k_blast_scache_page_setup(void) | |||
235 | { | 235 | { |
236 | unsigned long sc_lsize = cpu_scache_line_size(); | 236 | unsigned long sc_lsize = cpu_scache_line_size(); |
237 | 237 | ||
238 | if (sc_lsize == 16) | 238 | if (scache_size == 0) |
239 | r4k_blast_scache_page = (void *)no_sc_noop; | ||
240 | else if (sc_lsize == 16) | ||
239 | r4k_blast_scache_page = blast_scache16_page; | 241 | r4k_blast_scache_page = blast_scache16_page; |
240 | else if (sc_lsize == 32) | 242 | else if (sc_lsize == 32) |
241 | r4k_blast_scache_page = blast_scache32_page; | 243 | r4k_blast_scache_page = blast_scache32_page; |
@@ -251,7 +253,9 @@ static inline void r4k_blast_scache_page_indexed_setup(void) | |||
251 | { | 253 | { |
252 | unsigned long sc_lsize = cpu_scache_line_size(); | 254 | unsigned long sc_lsize = cpu_scache_line_size(); |
253 | 255 | ||
254 | if (sc_lsize == 16) | 256 | if (scache_size == 0) |
257 | r4k_blast_scache_page_indexed = (void *)no_sc_noop; | ||
258 | else if (sc_lsize == 16) | ||
255 | r4k_blast_scache_page_indexed = blast_scache16_page_indexed; | 259 | r4k_blast_scache_page_indexed = blast_scache16_page_indexed; |
256 | else if (sc_lsize == 32) | 260 | else if (sc_lsize == 32) |
257 | r4k_blast_scache_page_indexed = blast_scache32_page_indexed; | 261 | r4k_blast_scache_page_indexed = blast_scache32_page_indexed; |
@@ -267,7 +271,9 @@ static inline void r4k_blast_scache_setup(void) | |||
267 | { | 271 | { |
268 | unsigned long sc_lsize = cpu_scache_line_size(); | 272 | unsigned long sc_lsize = cpu_scache_line_size(); |
269 | 273 | ||
270 | if (sc_lsize == 16) | 274 | if (scache_size == 0) |
275 | r4k_blast_scache = (void *)no_sc_noop; | ||
276 | else if (sc_lsize == 16) | ||
271 | r4k_blast_scache = blast_scache16; | 277 | r4k_blast_scache = blast_scache16; |
272 | else if (sc_lsize == 32) | 278 | else if (sc_lsize == 32) |
273 | r4k_blast_scache = blast_scache32; | 279 | r4k_blast_scache = blast_scache32; |
@@ -369,6 +375,7 @@ static void r4k_flush_cache_mm(struct mm_struct *mm) | |||
369 | struct flush_cache_page_args { | 375 | struct flush_cache_page_args { |
370 | struct vm_area_struct *vma; | 376 | struct vm_area_struct *vma; |
371 | unsigned long addr; | 377 | unsigned long addr; |
378 | unsigned long pfn; | ||
372 | }; | 379 | }; |
373 | 380 | ||
374 | static inline void local_r4k_flush_cache_page(void *args) | 381 | static inline void local_r4k_flush_cache_page(void *args) |
@@ -376,6 +383,7 @@ static inline void local_r4k_flush_cache_page(void *args) | |||
376 | struct flush_cache_page_args *fcp_args = args; | 383 | struct flush_cache_page_args *fcp_args = args; |
377 | struct vm_area_struct *vma = fcp_args->vma; | 384 | struct vm_area_struct *vma = fcp_args->vma; |
378 | unsigned long addr = fcp_args->addr; | 385 | unsigned long addr = fcp_args->addr; |
386 | unsigned long paddr = fcp_args->pfn << PAGE_SHIFT; | ||
379 | int exec = vma->vm_flags & VM_EXEC; | 387 | int exec = vma->vm_flags & VM_EXEC; |
380 | struct mm_struct *mm = vma->vm_mm; | 388 | struct mm_struct *mm = vma->vm_mm; |
381 | pgd_t *pgdp; | 389 | pgd_t *pgdp; |
@@ -425,11 +433,12 @@ static inline void local_r4k_flush_cache_page(void *args) | |||
425 | * Do indexed flush, too much work to get the (possible) TLB refills | 433 | * Do indexed flush, too much work to get the (possible) TLB refills |
426 | * to work correctly. | 434 | * to work correctly. |
427 | */ | 435 | */ |
428 | addr = INDEX_BASE + (addr & (dcache_size - 1)); | ||
429 | if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) { | 436 | if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) { |
430 | r4k_blast_dcache_page_indexed(addr); | 437 | r4k_blast_dcache_page_indexed(cpu_has_pindexed_dcache ? |
431 | if (exec && !cpu_icache_snoops_remote_store) | 438 | paddr : addr); |
432 | r4k_blast_scache_page_indexed(addr); | 439 | if (exec && !cpu_icache_snoops_remote_store) { |
440 | r4k_blast_scache_page_indexed(paddr); | ||
441 | } | ||
433 | } | 442 | } |
434 | if (exec) { | 443 | if (exec) { |
435 | if (cpu_has_vtag_icache) { | 444 | if (cpu_has_vtag_icache) { |
@@ -449,6 +458,7 @@ static void r4k_flush_cache_page(struct vm_area_struct *vma, | |||
449 | 458 | ||
450 | args.vma = vma; | 459 | args.vma = vma; |
451 | args.addr = addr; | 460 | args.addr = addr; |
461 | args.pfn = pfn; | ||
452 | 462 | ||
453 | on_each_cpu(local_r4k_flush_cache_page, &args, 1, 1); | 463 | on_each_cpu(local_r4k_flush_cache_page, &args, 1, 1); |
454 | } | 464 | } |
@@ -471,61 +481,29 @@ struct flush_icache_range_args { | |||
471 | static inline void local_r4k_flush_icache_range(void *args) | 481 | static inline void local_r4k_flush_icache_range(void *args) |
472 | { | 482 | { |
473 | struct flush_icache_range_args *fir_args = args; | 483 | struct flush_icache_range_args *fir_args = args; |
474 | unsigned long dc_lsize = cpu_dcache_line_size(); | ||
475 | unsigned long ic_lsize = cpu_icache_line_size(); | ||
476 | unsigned long sc_lsize = cpu_scache_line_size(); | ||
477 | unsigned long start = fir_args->start; | 484 | unsigned long start = fir_args->start; |
478 | unsigned long end = fir_args->end; | 485 | unsigned long end = fir_args->end; |
479 | unsigned long addr, aend; | ||
480 | 486 | ||
481 | if (!cpu_has_ic_fills_f_dc) { | 487 | if (!cpu_has_ic_fills_f_dc) { |
482 | if (end - start > dcache_size) { | 488 | if (end - start > dcache_size) { |
483 | r4k_blast_dcache(); | 489 | r4k_blast_dcache(); |
484 | } else { | 490 | } else { |
485 | R4600_HIT_CACHEOP_WAR_IMPL; | 491 | R4600_HIT_CACHEOP_WAR_IMPL; |
486 | addr = start & ~(dc_lsize - 1); | 492 | protected_blast_dcache_range(start, end); |
487 | aend = (end - 1) & ~(dc_lsize - 1); | ||
488 | |||
489 | while (1) { | ||
490 | /* Hit_Writeback_Inv_D */ | ||
491 | protected_writeback_dcache_line(addr); | ||
492 | if (addr == aend) | ||
493 | break; | ||
494 | addr += dc_lsize; | ||
495 | } | ||
496 | } | 493 | } |
497 | 494 | ||
498 | if (!cpu_icache_snoops_remote_store) { | 495 | if (!cpu_icache_snoops_remote_store && scache_size) { |
499 | if (end - start > scache_size) { | 496 | if (end - start > scache_size) |
500 | r4k_blast_scache(); | 497 | r4k_blast_scache(); |
501 | } else { | 498 | else |
502 | addr = start & ~(sc_lsize - 1); | 499 | protected_blast_scache_range(start, end); |
503 | aend = (end - 1) & ~(sc_lsize - 1); | ||
504 | |||
505 | while (1) { | ||
506 | /* Hit_Writeback_Inv_SD */ | ||
507 | protected_writeback_scache_line(addr); | ||
508 | if (addr == aend) | ||
509 | break; | ||
510 | addr += sc_lsize; | ||
511 | } | ||
512 | } | ||
513 | } | 500 | } |
514 | } | 501 | } |
515 | 502 | ||
516 | if (end - start > icache_size) | 503 | if (end - start > icache_size) |
517 | r4k_blast_icache(); | 504 | r4k_blast_icache(); |
518 | else { | 505 | else |
519 | addr = start & ~(ic_lsize - 1); | 506 | protected_blast_icache_range(start, end); |
520 | aend = (end - 1) & ~(ic_lsize - 1); | ||
521 | while (1) { | ||
522 | /* Hit_Invalidate_I */ | ||
523 | protected_flush_icache_line(addr); | ||
524 | if (addr == aend) | ||
525 | break; | ||
526 | addr += ic_lsize; | ||
527 | } | ||
528 | } | ||
529 | } | 507 | } |
530 | 508 | ||
531 | static void r4k_flush_icache_range(unsigned long start, unsigned long end) | 509 | static void r4k_flush_icache_range(unsigned long start, unsigned long end) |
@@ -619,27 +597,14 @@ static void r4k_flush_icache_page(struct vm_area_struct *vma, | |||
619 | 597 | ||
620 | static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size) | 598 | static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size) |
621 | { | 599 | { |
622 | unsigned long end, a; | ||
623 | |||
624 | /* Catch bad driver code */ | 600 | /* Catch bad driver code */ |
625 | BUG_ON(size == 0); | 601 | BUG_ON(size == 0); |
626 | 602 | ||
627 | if (cpu_has_subset_pcaches) { | 603 | if (cpu_has_subset_pcaches) { |
628 | unsigned long sc_lsize = cpu_scache_line_size(); | 604 | if (size >= scache_size) |
629 | |||
630 | if (size >= scache_size) { | ||
631 | r4k_blast_scache(); | 605 | r4k_blast_scache(); |
632 | return; | 606 | else |
633 | } | 607 | blast_scache_range(addr, addr + size); |
634 | |||
635 | a = addr & ~(sc_lsize - 1); | ||
636 | end = (addr + size - 1) & ~(sc_lsize - 1); | ||
637 | while (1) { | ||
638 | flush_scache_line(a); /* Hit_Writeback_Inv_SD */ | ||
639 | if (a == end) | ||
640 | break; | ||
641 | a += sc_lsize; | ||
642 | } | ||
643 | return; | 608 | return; |
644 | } | 609 | } |
645 | 610 | ||
@@ -651,17 +616,8 @@ static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size) | |||
651 | if (size >= dcache_size) { | 616 | if (size >= dcache_size) { |
652 | r4k_blast_dcache(); | 617 | r4k_blast_dcache(); |
653 | } else { | 618 | } else { |
654 | unsigned long dc_lsize = cpu_dcache_line_size(); | ||
655 | |||
656 | R4600_HIT_CACHEOP_WAR_IMPL; | 619 | R4600_HIT_CACHEOP_WAR_IMPL; |
657 | a = addr & ~(dc_lsize - 1); | 620 | blast_dcache_range(addr, addr + size); |
658 | end = (addr + size - 1) & ~(dc_lsize - 1); | ||
659 | while (1) { | ||
660 | flush_dcache_line(a); /* Hit_Writeback_Inv_D */ | ||
661 | if (a == end) | ||
662 | break; | ||
663 | a += dc_lsize; | ||
664 | } | ||
665 | } | 621 | } |
666 | 622 | ||
667 | bc_wback_inv(addr, size); | 623 | bc_wback_inv(addr, size); |
@@ -669,44 +625,22 @@ static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size) | |||
669 | 625 | ||
670 | static void r4k_dma_cache_inv(unsigned long addr, unsigned long size) | 626 | static void r4k_dma_cache_inv(unsigned long addr, unsigned long size) |
671 | { | 627 | { |
672 | unsigned long end, a; | ||
673 | |||
674 | /* Catch bad driver code */ | 628 | /* Catch bad driver code */ |
675 | BUG_ON(size == 0); | 629 | BUG_ON(size == 0); |
676 | 630 | ||
677 | if (cpu_has_subset_pcaches) { | 631 | if (cpu_has_subset_pcaches) { |
678 | unsigned long sc_lsize = cpu_scache_line_size(); | 632 | if (size >= scache_size) |
679 | |||
680 | if (size >= scache_size) { | ||
681 | r4k_blast_scache(); | 633 | r4k_blast_scache(); |
682 | return; | 634 | else |
683 | } | 635 | blast_scache_range(addr, addr + size); |
684 | |||
685 | a = addr & ~(sc_lsize - 1); | ||
686 | end = (addr + size - 1) & ~(sc_lsize - 1); | ||
687 | while (1) { | ||
688 | flush_scache_line(a); /* Hit_Writeback_Inv_SD */ | ||
689 | if (a == end) | ||
690 | break; | ||
691 | a += sc_lsize; | ||
692 | } | ||
693 | return; | 636 | return; |
694 | } | 637 | } |
695 | 638 | ||
696 | if (size >= dcache_size) { | 639 | if (size >= dcache_size) { |
697 | r4k_blast_dcache(); | 640 | r4k_blast_dcache(); |
698 | } else { | 641 | } else { |
699 | unsigned long dc_lsize = cpu_dcache_line_size(); | ||
700 | |||
701 | R4600_HIT_CACHEOP_WAR_IMPL; | 642 | R4600_HIT_CACHEOP_WAR_IMPL; |
702 | a = addr & ~(dc_lsize - 1); | 643 | blast_dcache_range(addr, addr + size); |
703 | end = (addr + size - 1) & ~(dc_lsize - 1); | ||
704 | while (1) { | ||
705 | flush_dcache_line(a); /* Hit_Writeback_Inv_D */ | ||
706 | if (a == end) | ||
707 | break; | ||
708 | a += dc_lsize; | ||
709 | } | ||
710 | } | 644 | } |
711 | 645 | ||
712 | bc_inv(addr, size); | 646 | bc_inv(addr, size); |
@@ -727,7 +661,7 @@ static void local_r4k_flush_cache_sigtramp(void * arg) | |||
727 | 661 | ||
728 | R4600_HIT_CACHEOP_WAR_IMPL; | 662 | R4600_HIT_CACHEOP_WAR_IMPL; |
729 | protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); | 663 | protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); |
730 | if (!cpu_icache_snoops_remote_store) | 664 | if (!cpu_icache_snoops_remote_store && scache_size) |
731 | protected_writeback_scache_line(addr & ~(sc_lsize - 1)); | 665 | protected_writeback_scache_line(addr & ~(sc_lsize - 1)); |
732 | protected_flush_icache_line(addr & ~(ic_lsize - 1)); | 666 | protected_flush_icache_line(addr & ~(ic_lsize - 1)); |
733 | if (MIPS4K_ICACHE_REFILL_WAR) { | 667 | if (MIPS4K_ICACHE_REFILL_WAR) { |
@@ -1026,6 +960,7 @@ static void __init probe_pcache(void) | |||
1026 | switch (c->cputype) { | 960 | switch (c->cputype) { |
1027 | case CPU_20KC: | 961 | case CPU_20KC: |
1028 | case CPU_25KF: | 962 | case CPU_25KF: |
963 | c->dcache.flags |= MIPS_CACHE_PINDEX; | ||
1029 | case CPU_R10000: | 964 | case CPU_R10000: |
1030 | case CPU_R12000: | 965 | case CPU_R12000: |
1031 | case CPU_SB1: | 966 | case CPU_SB1: |
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c index 0a97a9434eba..fe232e3988e3 100644 --- a/arch/mips/mm/c-tx39.c +++ b/arch/mips/mm/c-tx39.c | |||
@@ -44,8 +44,6 @@ __asm__ __volatile__( \ | |||
44 | /* TX39H-style cache flush routines. */ | 44 | /* TX39H-style cache flush routines. */ |
45 | static void tx39h_flush_icache_all(void) | 45 | static void tx39h_flush_icache_all(void) |
46 | { | 46 | { |
47 | unsigned long start = KSEG0; | ||
48 | unsigned long end = (start + icache_size); | ||
49 | unsigned long flags, config; | 47 | unsigned long flags, config; |
50 | 48 | ||
51 | /* disable icache (set ICE#) */ | 49 | /* disable icache (set ICE#) */ |
@@ -53,33 +51,18 @@ static void tx39h_flush_icache_all(void) | |||
53 | config = read_c0_conf(); | 51 | config = read_c0_conf(); |
54 | write_c0_conf(config & ~TX39_CONF_ICE); | 52 | write_c0_conf(config & ~TX39_CONF_ICE); |
55 | TX39_STOP_STREAMING(); | 53 | TX39_STOP_STREAMING(); |
56 | 54 | blast_icache16(); | |
57 | /* invalidate icache */ | ||
58 | while (start < end) { | ||
59 | cache16_unroll32(start, Index_Invalidate_I); | ||
60 | start += 0x200; | ||
61 | } | ||
62 | |||
63 | write_c0_conf(config); | 55 | write_c0_conf(config); |
64 | local_irq_restore(flags); | 56 | local_irq_restore(flags); |
65 | } | 57 | } |
66 | 58 | ||
67 | static void tx39h_dma_cache_wback_inv(unsigned long addr, unsigned long size) | 59 | static void tx39h_dma_cache_wback_inv(unsigned long addr, unsigned long size) |
68 | { | 60 | { |
69 | unsigned long end, a; | ||
70 | unsigned long dc_lsize = current_cpu_data.dcache.linesz; | ||
71 | |||
72 | /* Catch bad driver code */ | 61 | /* Catch bad driver code */ |
73 | BUG_ON(size == 0); | 62 | BUG_ON(size == 0); |
74 | 63 | ||
75 | iob(); | 64 | iob(); |
76 | a = addr & ~(dc_lsize - 1); | 65 | blast_inv_dcache_range(addr, addr + size); |
77 | end = (addr + size - 1) & ~(dc_lsize - 1); | ||
78 | while (1) { | ||
79 | invalidate_dcache_line(a); /* Hit_Invalidate_D */ | ||
80 | if (a == end) break; | ||
81 | a += dc_lsize; | ||
82 | } | ||
83 | } | 66 | } |
84 | 67 | ||
85 | 68 | ||
@@ -227,7 +210,6 @@ static void tx39_flush_cache_page(struct vm_area_struct *vma, unsigned long page | |||
227 | * Do indexed flush, too much work to get the (possible) TLB refills | 210 | * Do indexed flush, too much work to get the (possible) TLB refills |
228 | * to work correctly. | 211 | * to work correctly. |
229 | */ | 212 | */ |
230 | page = (KSEG0 + (page & (dcache_size - 1))); | ||
231 | if (cpu_has_dc_aliases || exec) | 213 | if (cpu_has_dc_aliases || exec) |
232 | tx39_blast_dcache_page_indexed(page); | 214 | tx39_blast_dcache_page_indexed(page); |
233 | if (exec) | 215 | if (exec) |
@@ -241,42 +223,21 @@ static void tx39_flush_data_cache_page(unsigned long addr) | |||
241 | 223 | ||
242 | static void tx39_flush_icache_range(unsigned long start, unsigned long end) | 224 | static void tx39_flush_icache_range(unsigned long start, unsigned long end) |
243 | { | 225 | { |
244 | unsigned long dc_lsize = current_cpu_data.dcache.linesz; | ||
245 | unsigned long addr, aend; | ||
246 | |||
247 | if (end - start > dcache_size) | 226 | if (end - start > dcache_size) |
248 | tx39_blast_dcache(); | 227 | tx39_blast_dcache(); |
249 | else { | 228 | else |
250 | addr = start & ~(dc_lsize - 1); | 229 | protected_blast_dcache_range(start, end); |
251 | aend = (end - 1) & ~(dc_lsize - 1); | ||
252 | |||
253 | while (1) { | ||
254 | /* Hit_Writeback_Inv_D */ | ||
255 | protected_writeback_dcache_line(addr); | ||
256 | if (addr == aend) | ||
257 | break; | ||
258 | addr += dc_lsize; | ||
259 | } | ||
260 | } | ||
261 | 230 | ||
262 | if (end - start > icache_size) | 231 | if (end - start > icache_size) |
263 | tx39_blast_icache(); | 232 | tx39_blast_icache(); |
264 | else { | 233 | else { |
265 | unsigned long flags, config; | 234 | unsigned long flags, config; |
266 | addr = start & ~(dc_lsize - 1); | ||
267 | aend = (end - 1) & ~(dc_lsize - 1); | ||
268 | /* disable icache (set ICE#) */ | 235 | /* disable icache (set ICE#) */ |
269 | local_irq_save(flags); | 236 | local_irq_save(flags); |
270 | config = read_c0_conf(); | 237 | config = read_c0_conf(); |
271 | write_c0_conf(config & ~TX39_CONF_ICE); | 238 | write_c0_conf(config & ~TX39_CONF_ICE); |
272 | TX39_STOP_STREAMING(); | 239 | TX39_STOP_STREAMING(); |
273 | while (1) { | 240 | protected_blast_icache_range(start, end); |
274 | /* Hit_Invalidate_I */ | ||
275 | protected_flush_icache_line(addr); | ||
276 | if (addr == aend) | ||
277 | break; | ||
278 | addr += dc_lsize; | ||
279 | } | ||
280 | write_c0_conf(config); | 241 | write_c0_conf(config); |
281 | local_irq_restore(flags); | 242 | local_irq_restore(flags); |
282 | } | 243 | } |
@@ -311,7 +272,7 @@ static void tx39_flush_icache_page(struct vm_area_struct *vma, struct page *page | |||
311 | 272 | ||
312 | static void tx39_dma_cache_wback_inv(unsigned long addr, unsigned long size) | 273 | static void tx39_dma_cache_wback_inv(unsigned long addr, unsigned long size) |
313 | { | 274 | { |
314 | unsigned long end, a; | 275 | unsigned long end; |
315 | 276 | ||
316 | if (((size | addr) & (PAGE_SIZE - 1)) == 0) { | 277 | if (((size | addr) & (PAGE_SIZE - 1)) == 0) { |
317 | end = addr + size; | 278 | end = addr + size; |
@@ -322,20 +283,13 @@ static void tx39_dma_cache_wback_inv(unsigned long addr, unsigned long size) | |||
322 | } else if (size > dcache_size) { | 283 | } else if (size > dcache_size) { |
323 | tx39_blast_dcache(); | 284 | tx39_blast_dcache(); |
324 | } else { | 285 | } else { |
325 | unsigned long dc_lsize = current_cpu_data.dcache.linesz; | 286 | blast_dcache_range(addr, addr + size); |
326 | a = addr & ~(dc_lsize - 1); | ||
327 | end = (addr + size - 1) & ~(dc_lsize - 1); | ||
328 | while (1) { | ||
329 | flush_dcache_line(a); /* Hit_Writeback_Inv_D */ | ||
330 | if (a == end) break; | ||
331 | a += dc_lsize; | ||
332 | } | ||
333 | } | 287 | } |
334 | } | 288 | } |
335 | 289 | ||
336 | static void tx39_dma_cache_inv(unsigned long addr, unsigned long size) | 290 | static void tx39_dma_cache_inv(unsigned long addr, unsigned long size) |
337 | { | 291 | { |
338 | unsigned long end, a; | 292 | unsigned long end; |
339 | 293 | ||
340 | if (((size | addr) & (PAGE_SIZE - 1)) == 0) { | 294 | if (((size | addr) & (PAGE_SIZE - 1)) == 0) { |
341 | end = addr + size; | 295 | end = addr + size; |
@@ -346,14 +300,7 @@ static void tx39_dma_cache_inv(unsigned long addr, unsigned long size) | |||
346 | } else if (size > dcache_size) { | 300 | } else if (size > dcache_size) { |
347 | tx39_blast_dcache(); | 301 | tx39_blast_dcache(); |
348 | } else { | 302 | } else { |
349 | unsigned long dc_lsize = current_cpu_data.dcache.linesz; | 303 | blast_inv_dcache_range(addr, addr + size); |
350 | a = addr & ~(dc_lsize - 1); | ||
351 | end = (addr + size - 1) & ~(dc_lsize - 1); | ||
352 | while (1) { | ||
353 | invalidate_dcache_line(a); /* Hit_Invalidate_D */ | ||
354 | if (a == end) break; | ||
355 | a += dc_lsize; | ||
356 | } | ||
357 | } | 304 | } |
358 | } | 305 | } |
359 | 306 | ||
diff --git a/arch/mips/mm/cex-sb1.S b/arch/mips/mm/cex-sb1.S index 0e71580774ff..e54a62f2807c 100644 --- a/arch/mips/mm/cex-sb1.S +++ b/arch/mips/mm/cex-sb1.S | |||
@@ -64,7 +64,7 @@ LEAF(except_vec2_sb1) | |||
64 | sd k0,0x170($0) | 64 | sd k0,0x170($0) |
65 | sd k1,0x178($0) | 65 | sd k1,0x178($0) |
66 | 66 | ||
67 | #if CONFIG_SB1_CEX_ALWAYS_FATAL | 67 | #ifdef CONFIG_SB1_CEX_ALWAYS_FATAL |
68 | j handle_vec2_sb1 | 68 | j handle_vec2_sb1 |
69 | nop | 69 | nop |
70 | #else | 70 | #else |
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 0f9485806bac..ac4f4bfaae50 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -280,69 +280,69 @@ static void __init build_insn(u32 **buf, enum opcode opc, ...) | |||
280 | } | 280 | } |
281 | 281 | ||
282 | #define I_u1u2u3(op) \ | 282 | #define I_u1u2u3(op) \ |
283 | static inline void i##op(u32 **buf, unsigned int a, \ | 283 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
284 | unsigned int b, unsigned int c) \ | 284 | unsigned int b, unsigned int c) \ |
285 | { \ | 285 | { \ |
286 | build_insn(buf, insn##op, a, b, c); \ | 286 | build_insn(buf, insn##op, a, b, c); \ |
287 | } | 287 | } |
288 | 288 | ||
289 | #define I_u2u1u3(op) \ | 289 | #define I_u2u1u3(op) \ |
290 | static inline void i##op(u32 **buf, unsigned int a, \ | 290 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
291 | unsigned int b, unsigned int c) \ | 291 | unsigned int b, unsigned int c) \ |
292 | { \ | 292 | { \ |
293 | build_insn(buf, insn##op, b, a, c); \ | 293 | build_insn(buf, insn##op, b, a, c); \ |
294 | } | 294 | } |
295 | 295 | ||
296 | #define I_u3u1u2(op) \ | 296 | #define I_u3u1u2(op) \ |
297 | static inline void i##op(u32 **buf, unsigned int a, \ | 297 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
298 | unsigned int b, unsigned int c) \ | 298 | unsigned int b, unsigned int c) \ |
299 | { \ | 299 | { \ |
300 | build_insn(buf, insn##op, b, c, a); \ | 300 | build_insn(buf, insn##op, b, c, a); \ |
301 | } | 301 | } |
302 | 302 | ||
303 | #define I_u1u2s3(op) \ | 303 | #define I_u1u2s3(op) \ |
304 | static inline void i##op(u32 **buf, unsigned int a, \ | 304 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
305 | unsigned int b, signed int c) \ | 305 | unsigned int b, signed int c) \ |
306 | { \ | 306 | { \ |
307 | build_insn(buf, insn##op, a, b, c); \ | 307 | build_insn(buf, insn##op, a, b, c); \ |
308 | } | 308 | } |
309 | 309 | ||
310 | #define I_u2s3u1(op) \ | 310 | #define I_u2s3u1(op) \ |
311 | static inline void i##op(u32 **buf, unsigned int a, \ | 311 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
312 | signed int b, unsigned int c) \ | 312 | signed int b, unsigned int c) \ |
313 | { \ | 313 | { \ |
314 | build_insn(buf, insn##op, c, a, b); \ | 314 | build_insn(buf, insn##op, c, a, b); \ |
315 | } | 315 | } |
316 | 316 | ||
317 | #define I_u2u1s3(op) \ | 317 | #define I_u2u1s3(op) \ |
318 | static inline void i##op(u32 **buf, unsigned int a, \ | 318 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
319 | unsigned int b, signed int c) \ | 319 | unsigned int b, signed int c) \ |
320 | { \ | 320 | { \ |
321 | build_insn(buf, insn##op, b, a, c); \ | 321 | build_insn(buf, insn##op, b, a, c); \ |
322 | } | 322 | } |
323 | 323 | ||
324 | #define I_u1u2(op) \ | 324 | #define I_u1u2(op) \ |
325 | static inline void i##op(u32 **buf, unsigned int a, \ | 325 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
326 | unsigned int b) \ | 326 | unsigned int b) \ |
327 | { \ | 327 | { \ |
328 | build_insn(buf, insn##op, a, b); \ | 328 | build_insn(buf, insn##op, a, b); \ |
329 | } | 329 | } |
330 | 330 | ||
331 | #define I_u1s2(op) \ | 331 | #define I_u1s2(op) \ |
332 | static inline void i##op(u32 **buf, unsigned int a, \ | 332 | static inline void __init i##op(u32 **buf, unsigned int a, \ |
333 | signed int b) \ | 333 | signed int b) \ |
334 | { \ | 334 | { \ |
335 | build_insn(buf, insn##op, a, b); \ | 335 | build_insn(buf, insn##op, a, b); \ |
336 | } | 336 | } |
337 | 337 | ||
338 | #define I_u1(op) \ | 338 | #define I_u1(op) \ |
339 | static inline void i##op(u32 **buf, unsigned int a) \ | 339 | static inline void __init i##op(u32 **buf, unsigned int a) \ |
340 | { \ | 340 | { \ |
341 | build_insn(buf, insn##op, a); \ | 341 | build_insn(buf, insn##op, a); \ |
342 | } | 342 | } |
343 | 343 | ||
344 | #define I_0(op) \ | 344 | #define I_0(op) \ |
345 | static inline void i##op(u32 **buf) \ | 345 | static inline void __init i##op(u32 **buf) \ |
346 | { \ | 346 | { \ |
347 | build_insn(buf, insn##op); \ | 347 | build_insn(buf, insn##op); \ |
348 | } | 348 | } |
@@ -623,42 +623,42 @@ static __init int __attribute__((unused)) insn_has_bdelay(struct reloc *rel, | |||
623 | } | 623 | } |
624 | 624 | ||
625 | /* convenience functions for labeled branches */ | 625 | /* convenience functions for labeled branches */ |
626 | static void __attribute__((unused)) il_bltz(u32 **p, struct reloc **r, | 626 | static void __init __attribute__((unused)) |
627 | unsigned int reg, enum label_id l) | 627 | il_bltz(u32 **p, struct reloc **r, unsigned int reg, enum label_id l) |
628 | { | 628 | { |
629 | r_mips_pc16(r, *p, l); | 629 | r_mips_pc16(r, *p, l); |
630 | i_bltz(p, reg, 0); | 630 | i_bltz(p, reg, 0); |
631 | } | 631 | } |
632 | 632 | ||
633 | static void __attribute__((unused)) il_b(u32 **p, struct reloc **r, | 633 | static void __init __attribute__((unused)) il_b(u32 **p, struct reloc **r, |
634 | enum label_id l) | 634 | enum label_id l) |
635 | { | 635 | { |
636 | r_mips_pc16(r, *p, l); | 636 | r_mips_pc16(r, *p, l); |
637 | i_b(p, 0); | 637 | i_b(p, 0); |
638 | } | 638 | } |
639 | 639 | ||
640 | static void il_beqz(u32 **p, struct reloc **r, unsigned int reg, | 640 | static void __init il_beqz(u32 **p, struct reloc **r, unsigned int reg, |
641 | enum label_id l) | 641 | enum label_id l) |
642 | { | 642 | { |
643 | r_mips_pc16(r, *p, l); | 643 | r_mips_pc16(r, *p, l); |
644 | i_beqz(p, reg, 0); | 644 | i_beqz(p, reg, 0); |
645 | } | 645 | } |
646 | 646 | ||
647 | static void __attribute__((unused)) | 647 | static void __init __attribute__((unused)) |
648 | il_beqzl(u32 **p, struct reloc **r, unsigned int reg, enum label_id l) | 648 | il_beqzl(u32 **p, struct reloc **r, unsigned int reg, enum label_id l) |
649 | { | 649 | { |
650 | r_mips_pc16(r, *p, l); | 650 | r_mips_pc16(r, *p, l); |
651 | i_beqzl(p, reg, 0); | 651 | i_beqzl(p, reg, 0); |
652 | } | 652 | } |
653 | 653 | ||
654 | static void il_bnez(u32 **p, struct reloc **r, unsigned int reg, | 654 | static void __init il_bnez(u32 **p, struct reloc **r, unsigned int reg, |
655 | enum label_id l) | 655 | enum label_id l) |
656 | { | 656 | { |
657 | r_mips_pc16(r, *p, l); | 657 | r_mips_pc16(r, *p, l); |
658 | i_bnez(p, reg, 0); | 658 | i_bnez(p, reg, 0); |
659 | } | 659 | } |
660 | 660 | ||
661 | static void il_bgezl(u32 **p, struct reloc **r, unsigned int reg, | 661 | static void __init il_bgezl(u32 **p, struct reloc **r, unsigned int reg, |
662 | enum label_id l) | 662 | enum label_id l) |
663 | { | 663 | { |
664 | r_mips_pc16(r, *p, l); | 664 | r_mips_pc16(r, *p, l); |
diff --git a/arch/mips/momentum/jaguar_atx/ja-console.c b/arch/mips/momentum/jaguar_atx/ja-console.c index da6e1ed34db1..2292d0ec47fc 100644 --- a/arch/mips/momentum/jaguar_atx/ja-console.c +++ b/arch/mips/momentum/jaguar_atx/ja-console.c | |||
@@ -93,7 +93,7 @@ static void inline ja_console_probe(void) | |||
93 | up.uartclk = JAGUAR_ATX_UART_CLK; | 93 | up.uartclk = JAGUAR_ATX_UART_CLK; |
94 | up.regshift = 2; | 94 | up.regshift = 2; |
95 | up.iotype = UPIO_MEM; | 95 | up.iotype = UPIO_MEM; |
96 | up.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 96 | up.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
97 | up.line = 0; | 97 | up.line = 0; |
98 | 98 | ||
99 | if (early_serial_setup(&up)) | 99 | if (early_serial_setup(&up)) |
diff --git a/arch/mips/momentum/jaguar_atx/prom.c b/arch/mips/momentum/jaguar_atx/prom.c index aae7a802767a..1cadaa92946a 100644 --- a/arch/mips/momentum/jaguar_atx/prom.c +++ b/arch/mips/momentum/jaguar_atx/prom.c | |||
@@ -21,10 +21,10 @@ | |||
21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
23 | #include <linux/bootmem.h> | 23 | #include <linux/bootmem.h> |
24 | #include <linux/mv643xx.h> | ||
24 | 25 | ||
25 | #include <asm/addrspace.h> | 26 | #include <asm/addrspace.h> |
26 | #include <asm/bootinfo.h> | 27 | #include <asm/bootinfo.h> |
27 | #include <asm/mv64340.h> | ||
28 | #include <asm/pmon.h> | 28 | #include <asm/pmon.h> |
29 | 29 | ||
30 | #include "jaguar_atx_fpga.h" | 30 | #include "jaguar_atx_fpga.h" |
diff --git a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c index 301d67226d72..2699917b640a 100644 --- a/arch/mips/momentum/jaguar_atx/setup.c +++ b/arch/mips/momentum/jaguar_atx/setup.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * BRIEF MODULE DESCRIPTION | 2 | * BRIEF MODULE DESCRIPTION |
3 | * Momentum Computer Jaguar-ATX board dependent boot routines | 3 | * Momentum Computer Jaguar-ATX board dependent boot routines |
4 | * | 4 | * |
5 | * Copyright (C) 1996, 1997, 2001, 2004 Ralf Baechle (ralf@linux-mips.org) | 5 | * Copyright (C) 1996, 1997, 2001, 04, 06 Ralf Baechle (ralf@linux-mips.org) |
6 | * Copyright (C) 2000 RidgeRun, Inc. | 6 | * Copyright (C) 2000 RidgeRun, Inc. |
7 | * Copyright (C) 2001 Red Hat, Inc. | 7 | * Copyright (C) 2001 Red Hat, Inc. |
8 | * Copyright (C) 2002 Momentum Computer | 8 | * Copyright (C) 2002 Momentum Computer |
@@ -55,6 +55,8 @@ | |||
55 | #include <linux/interrupt.h> | 55 | #include <linux/interrupt.h> |
56 | #include <linux/timex.h> | 56 | #include <linux/timex.h> |
57 | #include <linux/vmalloc.h> | 57 | #include <linux/vmalloc.h> |
58 | #include <linux/mv643xx.h> | ||
59 | |||
58 | #include <asm/time.h> | 60 | #include <asm/time.h> |
59 | #include <asm/bootinfo.h> | 61 | #include <asm/bootinfo.h> |
60 | #include <asm/page.h> | 62 | #include <asm/page.h> |
@@ -64,7 +66,6 @@ | |||
64 | #include <asm/ptrace.h> | 66 | #include <asm/ptrace.h> |
65 | #include <asm/reboot.h> | 67 | #include <asm/reboot.h> |
66 | #include <asm/tlbflush.h> | 68 | #include <asm/tlbflush.h> |
67 | #include <asm/mv64340.h> | ||
68 | 69 | ||
69 | #include "jaguar_atx_fpga.h" | 70 | #include "jaguar_atx_fpga.h" |
70 | 71 | ||
diff --git a/arch/mips/momentum/ocelot_c/irq.c b/arch/mips/momentum/ocelot_c/irq.c index 300fe8e4fbe8..a5764bc20e36 100644 --- a/arch/mips/momentum/ocelot_c/irq.c +++ b/arch/mips/momentum/ocelot_c/irq.c | |||
@@ -41,11 +41,11 @@ | |||
41 | #include <linux/slab.h> | 41 | #include <linux/slab.h> |
42 | #include <linux/random.h> | 42 | #include <linux/random.h> |
43 | #include <linux/bitops.h> | 43 | #include <linux/bitops.h> |
44 | #include <linux/mv643xx.h> | ||
44 | #include <asm/bootinfo.h> | 45 | #include <asm/bootinfo.h> |
45 | #include <asm/io.h> | 46 | #include <asm/io.h> |
46 | #include <asm/irq_cpu.h> | 47 | #include <asm/irq_cpu.h> |
47 | #include <asm/mipsregs.h> | 48 | #include <asm/mipsregs.h> |
48 | #include <asm/mv64340.h> | ||
49 | #include <asm/system.h> | 49 | #include <asm/system.h> |
50 | 50 | ||
51 | extern asmlinkage void ocelot_handle_int(void); | 51 | extern asmlinkage void ocelot_handle_int(void); |
diff --git a/arch/mips/momentum/ocelot_c/prom.c b/arch/mips/momentum/ocelot_c/prom.c index 5b6809724b15..e92364482c7b 100644 --- a/arch/mips/momentum/ocelot_c/prom.c +++ b/arch/mips/momentum/ocelot_c/prom.c | |||
@@ -19,10 +19,10 @@ | |||
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
21 | #include <linux/bootmem.h> | 21 | #include <linux/bootmem.h> |
22 | #include <linux/mv643xx.h> | ||
22 | 23 | ||
23 | #include <asm/addrspace.h> | 24 | #include <asm/addrspace.h> |
24 | #include <asm/bootinfo.h> | 25 | #include <asm/bootinfo.h> |
25 | #include <asm/mv64340.h> | ||
26 | #include <asm/pmon.h> | 26 | #include <asm/pmon.h> |
27 | 27 | ||
28 | #include "ocelot_c_fpga.h" | 28 | #include "ocelot_c_fpga.h" |
diff --git a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c index 15998d8a9341..bd02e60d037a 100644 --- a/arch/mips/momentum/ocelot_c/setup.c +++ b/arch/mips/momentum/ocelot_c/setup.c | |||
@@ -54,6 +54,7 @@ | |||
54 | #include <linux/pm.h> | 54 | #include <linux/pm.h> |
55 | #include <linux/timex.h> | 55 | #include <linux/timex.h> |
56 | #include <linux/vmalloc.h> | 56 | #include <linux/vmalloc.h> |
57 | #include <linux/mv643xx.h> | ||
57 | 58 | ||
58 | #include <asm/time.h> | 59 | #include <asm/time.h> |
59 | #include <asm/bootinfo.h> | 60 | #include <asm/bootinfo.h> |
@@ -64,9 +65,9 @@ | |||
64 | #include <asm/processor.h> | 65 | #include <asm/processor.h> |
65 | #include <asm/ptrace.h> | 66 | #include <asm/ptrace.h> |
66 | #include <asm/reboot.h> | 67 | #include <asm/reboot.h> |
68 | #include <asm/marvell.h> | ||
67 | #include <linux/bootmem.h> | 69 | #include <linux/bootmem.h> |
68 | #include <linux/blkdev.h> | 70 | #include <linux/blkdev.h> |
69 | #include <asm/mv64340.h> | ||
70 | #include "ocelot_c_fpga.h" | 71 | #include "ocelot_c_fpga.h" |
71 | 72 | ||
72 | unsigned long marvell_base; | 73 | unsigned long marvell_base; |
@@ -252,22 +253,22 @@ void __init plat_setup(void) | |||
252 | /* shut down ethernet ports, just to be sure our memory doesn't get | 253 | /* shut down ethernet ports, just to be sure our memory doesn't get |
253 | * corrupted by random ethernet traffic. | 254 | * corrupted by random ethernet traffic. |
254 | */ | 255 | */ |
255 | MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8); | 256 | MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8); |
256 | MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8); | 257 | MV_WRITE(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8); |
257 | MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8); | 258 | MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8); |
258 | MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8); | 259 | MV_WRITE(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8); |
259 | do {} | 260 | do {} |
260 | while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff); | 261 | while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff); |
261 | do {} | 262 | do {} |
262 | while (MV_READ(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff); | 263 | while (MV_READ(MV643XX_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff); |
263 | do {} | 264 | do {} |
264 | while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff); | 265 | while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff); |
265 | do {} | 266 | do {} |
266 | while (MV_READ(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff); | 267 | while (MV_READ(MV643XX_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff); |
267 | MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), | 268 | MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0), |
268 | MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1); | 269 | MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1); |
269 | MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), | 270 | MV_WRITE(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1), |
270 | MV_READ(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1); | 271 | MV_READ(MV643XX_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1); |
271 | 272 | ||
272 | /* Turn off the Bit-Error LED */ | 273 | /* Turn off the Bit-Error LED */ |
273 | OCELOT_FPGA_WRITE(0x80, CLR); | 274 | OCELOT_FPGA_WRITE(0x80, CLR); |
diff --git a/arch/mips/pci/pci-ocelot-c.c b/arch/mips/pci/pci-ocelot-c.c index 1d84d36e034d..027759f7c904 100644 --- a/arch/mips/pci/pci-ocelot-c.c +++ b/arch/mips/pci/pci-ocelot-c.c | |||
@@ -3,15 +3,17 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org) | 6 | * Copyright (C) 2004, 06 by Ralf Baechle (ralf@linux-mips.org) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
10 | #include <linux/pci.h> | 10 | #include <linux/pci.h> |
11 | #include <asm/mv64340.h> | 11 | #include <linux/mv643xx.h> |
12 | 12 | ||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | 14 | ||
15 | #include <asm/marvell.h> | ||
16 | |||
15 | /* | 17 | /* |
16 | * We assume the address ranges have already been setup appropriately by | 18 | * We assume the address ranges have already been setup appropriately by |
17 | * the firmware. PMON in case of the Ocelot C does that. | 19 | * the firmware. PMON in case of the Ocelot C does that. |
diff --git a/arch/mips/philips/pnx8550/common/platform.c b/arch/mips/philips/pnx8550/common/platform.c index 8aa9bd65b45e..a592260fd673 100644 --- a/arch/mips/philips/pnx8550/common/platform.c +++ b/arch/mips/philips/pnx8550/common/platform.c | |||
@@ -66,28 +66,28 @@ struct ip3106_port ip3106_ports[] = { | |||
66 | [0] = { | 66 | [0] = { |
67 | .port = { | 67 | .port = { |
68 | .type = PORT_IP3106, | 68 | .type = PORT_IP3106, |
69 | .iotype = SERIAL_IO_MEM, | 69 | .iotype = UPIO_MEM, |
70 | .membase = (void __iomem *)PNX8550_UART_PORT0, | 70 | .membase = (void __iomem *)PNX8550_UART_PORT0, |
71 | .mapbase = PNX8550_UART_PORT0, | 71 | .mapbase = PNX8550_UART_PORT0, |
72 | .irq = PNX8550_UART_INT(0), | 72 | .irq = PNX8550_UART_INT(0), |
73 | .uartclk = 3692300, | 73 | .uartclk = 3692300, |
74 | .fifosize = 16, | 74 | .fifosize = 16, |
75 | .ops = &ip3106_pops, | 75 | .ops = &ip3106_pops, |
76 | .flags = ASYNC_BOOT_AUTOCONF, | 76 | .flags = UPF_BOOT_AUTOCONF, |
77 | .line = 0, | 77 | .line = 0, |
78 | }, | 78 | }, |
79 | }, | 79 | }, |
80 | [1] = { | 80 | [1] = { |
81 | .port = { | 81 | .port = { |
82 | .type = PORT_IP3106, | 82 | .type = PORT_IP3106, |
83 | .iotype = SERIAL_IO_MEM, | 83 | .iotype = UPIO_MEM, |
84 | .membase = (void __iomem *)PNX8550_UART_PORT1, | 84 | .membase = (void __iomem *)PNX8550_UART_PORT1, |
85 | .mapbase = PNX8550_UART_PORT1, | 85 | .mapbase = PNX8550_UART_PORT1, |
86 | .irq = PNX8550_UART_INT(1), | 86 | .irq = PNX8550_UART_INT(1), |
87 | .uartclk = 3692300, | 87 | .uartclk = 3692300, |
88 | .fifosize = 16, | 88 | .fifosize = 16, |
89 | .ops = &ip3106_pops, | 89 | .ops = &ip3106_pops, |
90 | .flags = ASYNC_BOOT_AUTOCONF, | 90 | .flags = UPF_BOOT_AUTOCONF, |
91 | .line = 1, | 91 | .line = 1, |
92 | }, | 92 | }, |
93 | }, | 93 | }, |
diff --git a/arch/mips/pmc-sierra/yosemite/setup.c b/arch/mips/pmc-sierra/yosemite/setup.c index 059755b5ed57..8bce711575de 100644 --- a/arch/mips/pmc-sierra/yosemite/setup.c +++ b/arch/mips/pmc-sierra/yosemite/setup.c | |||
@@ -185,7 +185,7 @@ static void __init py_uart_setup(void) | |||
185 | up.uartclk = TITAN_UART_CLK; | 185 | up.uartclk = TITAN_UART_CLK; |
186 | up.regshift = 0; | 186 | up.regshift = 0; |
187 | up.iotype = UPIO_MEM; | 187 | up.iotype = UPIO_MEM; |
188 | up.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 188 | up.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
189 | up.line = 0; | 189 | up.line = 0; |
190 | 190 | ||
191 | if (early_serial_setup(&up)) | 191 | if (early_serial_setup(&up)) |
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c index f17f575f58f0..c197311e15d3 100644 --- a/arch/mips/pmc-sierra/yosemite/smp.c +++ b/arch/mips/pmc-sierra/yosemite/smp.c | |||
@@ -50,37 +50,25 @@ void __init prom_grab_secondary(void) | |||
50 | * We don't want to start the secondary CPU yet nor do we have a nice probing | 50 | * We don't want to start the secondary CPU yet nor do we have a nice probing |
51 | * feature in PMON so we just assume presence of the secondary core. | 51 | * feature in PMON so we just assume presence of the secondary core. |
52 | */ | 52 | */ |
53 | static char maxcpus_string[] __initdata = | 53 | void __init plat_smp_setup(void) |
54 | KERN_WARNING "max_cpus set to 0; using 1 instead\n"; | ||
55 | |||
56 | void __init prom_prepare_cpus(unsigned int max_cpus) | ||
57 | { | 54 | { |
58 | int enabled = 0, i; | 55 | int i; |
59 | |||
60 | if (max_cpus == 0) { | ||
61 | printk(maxcpus_string); | ||
62 | max_cpus = 1; | ||
63 | } | ||
64 | 56 | ||
65 | cpus_clear(phys_cpu_present_map); | 57 | cpus_clear(phys_cpu_present_map); |
66 | 58 | ||
67 | for (i = 0; i < 2; i++) { | 59 | for (i = 0; i < 2; i++) { |
68 | if (i == max_cpus) | ||
69 | break; | ||
70 | |||
71 | /* | ||
72 | * The boot CPU | ||
73 | */ | ||
74 | cpu_set(i, phys_cpu_present_map); | 60 | cpu_set(i, phys_cpu_present_map); |
75 | __cpu_number_map[i] = i; | 61 | __cpu_number_map[i] = i; |
76 | __cpu_logical_map[i] = i; | 62 | __cpu_logical_map[i] = i; |
77 | enabled++; | ||
78 | } | 63 | } |
64 | } | ||
79 | 65 | ||
66 | void __init plat_prepare_cpus(unsigned int max_cpus) | ||
67 | { | ||
80 | /* | 68 | /* |
81 | * Be paranoid. Enable the IPI only if we're really about to go SMP. | 69 | * Be paranoid. Enable the IPI only if we're really about to go SMP. |
82 | */ | 70 | */ |
83 | if (enabled > 1) | 71 | if (cpus_weight(cpu_possible_map)) |
84 | set_c0_status(STATUSF_IP5); | 72 | set_c0_status(STATUSF_IP5); |
85 | } | 73 | } |
86 | 74 | ||
@@ -94,7 +82,7 @@ void __init prom_prepare_cpus(unsigned int max_cpus) | |||
94 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 82 | void prom_boot_secondary(int cpu, struct task_struct *idle) |
95 | { | 83 | { |
96 | unsigned long gp = (unsigned long) task_thread_info(idle); | 84 | unsigned long gp = (unsigned long) task_thread_info(idle); |
97 | unsigned long sp = __KSTK_TOP(idle); | 85 | unsigned long sp = __KSTK_TOS(idle); |
98 | 86 | ||
99 | secondary_sp = sp; | 87 | secondary_sp = sp; |
100 | secondary_gp = gp; | 88 | secondary_gp = gp; |
diff --git a/arch/mips/sgi-ip27/ip27-smp.c b/arch/mips/sgi-ip27/ip27-smp.c index dbef3f6b5650..09fa7f5216f0 100644 --- a/arch/mips/sgi-ip27/ip27-smp.c +++ b/arch/mips/sgi-ip27/ip27-smp.c | |||
@@ -140,7 +140,7 @@ static __init void intr_clear_all(nasid_t nasid) | |||
140 | REMOTE_HUB_CLR_INTR(nasid, i); | 140 | REMOTE_HUB_CLR_INTR(nasid, i); |
141 | } | 141 | } |
142 | 142 | ||
143 | void __init prom_prepare_cpus(unsigned int max_cpus) | 143 | void __init plat_smp_setup(void) |
144 | { | 144 | { |
145 | cnodeid_t cnode; | 145 | cnodeid_t cnode; |
146 | 146 | ||
@@ -161,6 +161,11 @@ void __init prom_prepare_cpus(unsigned int max_cpus) | |||
161 | alloc_cpupda(0, 0); | 161 | alloc_cpupda(0, 0); |
162 | } | 162 | } |
163 | 163 | ||
164 | void __init plat_prepare_cpus(unsigned int max_cpus) | ||
165 | { | ||
166 | /* We already did everything necessary earlier */ | ||
167 | } | ||
168 | |||
164 | /* | 169 | /* |
165 | * Launch a slave into smp_bootstrap(). It doesn't take an argument, and we | 170 | * Launch a slave into smp_bootstrap(). It doesn't take an argument, and we |
166 | * set sp to the kernel stack of the newly created idle process, gp to the proc | 171 | * set sp to the kernel stack of the newly created idle process, gp to the proc |
diff --git a/arch/mips/sgi-ip32/ip32-setup.c b/arch/mips/sgi-ip32/ip32-setup.c index d10a269aeae1..2c38770b1e1b 100644 --- a/arch/mips/sgi-ip32/ip32-setup.c +++ b/arch/mips/sgi-ip32/ip32-setup.c | |||
@@ -66,11 +66,6 @@ static inline void str2eaddr(unsigned char *ea, unsigned char *str) | |||
66 | #include <linux/tty.h> | 66 | #include <linux/tty.h> |
67 | #include <linux/serial.h> | 67 | #include <linux/serial.h> |
68 | #include <linux/serial_core.h> | 68 | #include <linux/serial_core.h> |
69 | extern int early_serial_setup(struct uart_port *port); | ||
70 | |||
71 | #define STD_COM_FLAGS (ASYNC_SKIP_TEST) | ||
72 | #define BASE_BAUD (1843200 / 16) | ||
73 | |||
74 | #endif /* CONFIG_SERIAL_8250 */ | 69 | #endif /* CONFIG_SERIAL_8250 */ |
75 | 70 | ||
76 | /* An arbitrary time; this can be decreased if reliability looks good */ | 71 | /* An arbitrary time; this can be decreased if reliability looks good */ |
@@ -110,8 +105,8 @@ void __init plat_setup(void) | |||
110 | o2_serial[0].type = PORT_16550A; | 105 | o2_serial[0].type = PORT_16550A; |
111 | o2_serial[0].line = 0; | 106 | o2_serial[0].line = 0; |
112 | o2_serial[0].irq = MACEISA_SERIAL1_IRQ; | 107 | o2_serial[0].irq = MACEISA_SERIAL1_IRQ; |
113 | o2_serial[0].flags = STD_COM_FLAGS; | 108 | o2_serial[0].flags = UPF_SKIP_TEST; |
114 | o2_serial[0].uartclk = BASE_BAUD * 16; | 109 | o2_serial[0].uartclk = 1843200; |
115 | o2_serial[0].iotype = UPIO_MEM; | 110 | o2_serial[0].iotype = UPIO_MEM; |
116 | o2_serial[0].membase = (char *)&mace->isa.serial1; | 111 | o2_serial[0].membase = (char *)&mace->isa.serial1; |
117 | o2_serial[0].fifosize = 14; | 112 | o2_serial[0].fifosize = 14; |
@@ -121,8 +116,8 @@ void __init plat_setup(void) | |||
121 | o2_serial[1].type = PORT_16550A; | 116 | o2_serial[1].type = PORT_16550A; |
122 | o2_serial[1].line = 1; | 117 | o2_serial[1].line = 1; |
123 | o2_serial[1].irq = MACEISA_SERIAL2_IRQ; | 118 | o2_serial[1].irq = MACEISA_SERIAL2_IRQ; |
124 | o2_serial[1].flags = STD_COM_FLAGS; | 119 | o2_serial[1].flags = UPF_SKIP_TEST; |
125 | o2_serial[1].uartclk = BASE_BAUD * 16; | 120 | o2_serial[1].uartclk = 1843200; |
126 | o2_serial[1].iotype = UPIO_MEM; | 121 | o2_serial[1].iotype = UPIO_MEM; |
127 | o2_serial[1].membase = (char *)&mace->isa.serial2; | 122 | o2_serial[1].membase = (char *)&mace->isa.serial2; |
128 | o2_serial[1].fifosize = 14; | 123 | o2_serial[1].fifosize = 14; |
diff --git a/arch/mips/sibyte/Kconfig b/arch/mips/sibyte/Kconfig index de46f62ac462..816aee7fcd25 100644 --- a/arch/mips/sibyte/Kconfig +++ b/arch/mips/sibyte/Kconfig | |||
@@ -102,11 +102,11 @@ config SIMULATION | |||
102 | Build a kernel suitable for running under the GDB simulator. | 102 | Build a kernel suitable for running under the GDB simulator. |
103 | Primarily adjusts the kernel's notion of time. | 103 | Primarily adjusts the kernel's notion of time. |
104 | 104 | ||
105 | config CONFIG_SB1_CEX_ALWAYS_FATAL | 105 | config SB1_CEX_ALWAYS_FATAL |
106 | bool "All cache exceptions considered fatal (no recovery attempted)" | 106 | bool "All cache exceptions considered fatal (no recovery attempted)" |
107 | depends on SIBYTE_SB1xxx_SOC | 107 | depends on SIBYTE_SB1xxx_SOC |
108 | 108 | ||
109 | config CONFIG_SB1_CERR_STALL | 109 | config SB1_CERR_STALL |
110 | bool "Stall (rather than panic) on fatal cache error" | 110 | bool "Stall (rather than panic) on fatal cache error" |
111 | depends on SIBYTE_SB1xxx_SOC | 111 | depends on SIBYTE_SB1xxx_SOC |
112 | 112 | ||
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c index b2a1ba5d23df..9cf7d713b13c 100644 --- a/arch/mips/sibyte/bcm1480/irq.c +++ b/arch/mips/sibyte/bcm1480/irq.c | |||
@@ -139,7 +139,7 @@ void bcm1480_unmask_irq(int cpu, int irq) | |||
139 | #ifdef CONFIG_SMP | 139 | #ifdef CONFIG_SMP |
140 | static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask) | 140 | static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask) |
141 | { | 141 | { |
142 | int i = 0, old_cpu, cpu, int_on; | 142 | int i = 0, old_cpu, cpu, int_on, k; |
143 | u64 cur_ints; | 143 | u64 cur_ints; |
144 | irq_desc_t *desc = irq_desc + irq; | 144 | irq_desc_t *desc = irq_desc + irq; |
145 | unsigned long flags; | 145 | unsigned long flags; |
@@ -165,7 +165,6 @@ static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask) | |||
165 | irq_dirty -= BCM1480_NR_IRQS_HALF; | 165 | irq_dirty -= BCM1480_NR_IRQS_HALF; |
166 | } | 166 | } |
167 | 167 | ||
168 | int k; | ||
169 | for (k=0; k<2; k++) { /* Loop through high and low interrupt mask register */ | 168 | for (k=0; k<2; k++) { /* Loop through high and low interrupt mask register */ |
170 | cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(old_cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING))); | 169 | cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(old_cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING))); |
171 | int_on = !(cur_ints & (((u64) 1) << irq_dirty)); | 170 | int_on = !(cur_ints & (((u64) 1) << irq_dirty)); |
@@ -216,6 +215,7 @@ static void ack_bcm1480_irq(unsigned int irq) | |||
216 | { | 215 | { |
217 | u64 pending; | 216 | u64 pending; |
218 | unsigned int irq_dirty; | 217 | unsigned int irq_dirty; |
218 | int k; | ||
219 | 219 | ||
220 | /* | 220 | /* |
221 | * If the interrupt was an HT interrupt, now is the time to | 221 | * If the interrupt was an HT interrupt, now is the time to |
@@ -227,7 +227,6 @@ static void ack_bcm1480_irq(unsigned int irq) | |||
227 | if ((irq_dirty >= BCM1480_NR_IRQS_HALF) && (irq_dirty <= BCM1480_NR_IRQS)) { | 227 | if ((irq_dirty >= BCM1480_NR_IRQS_HALF) && (irq_dirty <= BCM1480_NR_IRQS)) { |
228 | irq_dirty -= BCM1480_NR_IRQS_HALF; | 228 | irq_dirty -= BCM1480_NR_IRQS_HALF; |
229 | } | 229 | } |
230 | int k; | ||
231 | for (k=0; k<2; k++) { /* Loop through high and low LDT interrupts */ | 230 | for (k=0; k<2; k++) { /* Loop through high and low LDT interrupts */ |
232 | pending = __raw_readq(IOADDR(A_BCM1480_IMR_REGISTER(bcm1480_irq_owner[irq], | 231 | pending = __raw_readq(IOADDR(A_BCM1480_IMR_REGISTER(bcm1480_irq_owner[irq], |
233 | R_BCM1480_IMR_LDT_INTERRUPT_H + (k*BCM1480_IMR_HL_SPACING)))); | 232 | R_BCM1480_IMR_LDT_INTERRUPT_H + (k*BCM1480_IMR_HL_SPACING)))); |
diff --git a/arch/mips/sibyte/cfe/smp.c b/arch/mips/sibyte/cfe/smp.c index 4477af3d8074..eab20e2db323 100644 --- a/arch/mips/sibyte/cfe/smp.c +++ b/arch/mips/sibyte/cfe/smp.c | |||
@@ -31,7 +31,7 @@ | |||
31 | * | 31 | * |
32 | * Common setup before any secondaries are started | 32 | * Common setup before any secondaries are started |
33 | */ | 33 | */ |
34 | void __init prom_prepare_cpus(unsigned int max_cpus) | 34 | void __init plat_smp_setup(void) |
35 | { | 35 | { |
36 | int i, num; | 36 | int i, num; |
37 | 37 | ||
@@ -40,14 +40,18 @@ void __init prom_prepare_cpus(unsigned int max_cpus) | |||
40 | __cpu_number_map[0] = 0; | 40 | __cpu_number_map[0] = 0; |
41 | __cpu_logical_map[0] = 0; | 41 | __cpu_logical_map[0] = 0; |
42 | 42 | ||
43 | for (i=1, num=0; i<NR_CPUS; i++) { | 43 | for (i = 1, num = 0; i < NR_CPUS; i++) { |
44 | if (cfe_cpu_stop(i) == 0) { | 44 | if (cfe_cpu_stop(i) == 0) { |
45 | cpu_set(i, phys_cpu_present_map); | 45 | cpu_set(i, phys_cpu_present_map); |
46 | __cpu_number_map[i] = ++num; | 46 | __cpu_number_map[i] = ++num; |
47 | __cpu_logical_map[num] = i; | 47 | __cpu_logical_map[num] = i; |
48 | } | 48 | } |
49 | } | 49 | } |
50 | printk("Detected %i available secondary CPU(s)\n", num); | 50 | printk(KERN_INFO "Detected %i available secondary CPU(s)\n", num); |
51 | } | ||
52 | |||
53 | void __init plat_prepare_cpus(unsigned int max_cpus) | ||
54 | { | ||
51 | } | 55 | } |
52 | 56 | ||
53 | /* | 57 | /* |
diff --git a/arch/mips/sibyte/sb1250/time.c b/arch/mips/sibyte/sb1250/time.c index 511c89d65f38..1588f6debd90 100644 --- a/arch/mips/sibyte/sb1250/time.c +++ b/arch/mips/sibyte/sb1250/time.c | |||
@@ -47,23 +47,51 @@ | |||
47 | #define IMR_IP3_VAL K_INT_MAP_I1 | 47 | #define IMR_IP3_VAL K_INT_MAP_I1 |
48 | #define IMR_IP4_VAL K_INT_MAP_I2 | 48 | #define IMR_IP4_VAL K_INT_MAP_I2 |
49 | 49 | ||
50 | #define SB1250_HPT_NUM 3 | ||
51 | #define SB1250_HPT_VALUE M_SCD_TIMER_CNT /* max value */ | ||
52 | #define SB1250_HPT_SHIFT ((sizeof(unsigned int)*8)-V_SCD_TIMER_WIDTH) | ||
53 | |||
54 | |||
50 | extern int sb1250_steal_irq(int irq); | 55 | extern int sb1250_steal_irq(int irq); |
51 | 56 | ||
57 | static unsigned int sb1250_hpt_read(void); | ||
58 | static void sb1250_hpt_init(unsigned int); | ||
59 | |||
60 | static unsigned int hpt_offset; | ||
61 | |||
62 | void __init sb1250_hpt_setup(void) | ||
63 | { | ||
64 | int cpu = smp_processor_id(); | ||
65 | |||
66 | if (!cpu) { | ||
67 | /* Setup hpt using timer #3 but do not enable irq for it */ | ||
68 | __raw_writeq(0, IOADDR(A_SCD_TIMER_REGISTER(SB1250_HPT_NUM, R_SCD_TIMER_CFG))); | ||
69 | __raw_writeq(SB1250_HPT_VALUE, | ||
70 | IOADDR(A_SCD_TIMER_REGISTER(SB1250_HPT_NUM, R_SCD_TIMER_INIT))); | ||
71 | __raw_writeq(M_SCD_TIMER_ENABLE | M_SCD_TIMER_MODE_CONTINUOUS, | ||
72 | IOADDR(A_SCD_TIMER_REGISTER(SB1250_HPT_NUM, R_SCD_TIMER_CFG))); | ||
73 | |||
74 | /* | ||
75 | * we need to fill 32 bits, so just use the upper 23 bits and pretend | ||
76 | * the timer is going 512Mhz instead of 1Mhz | ||
77 | */ | ||
78 | mips_hpt_frequency = V_SCD_TIMER_FREQ << SB1250_HPT_SHIFT; | ||
79 | mips_hpt_init = sb1250_hpt_init; | ||
80 | mips_hpt_read = sb1250_hpt_read; | ||
81 | } | ||
82 | } | ||
83 | |||
84 | |||
52 | void sb1250_time_init(void) | 85 | void sb1250_time_init(void) |
53 | { | 86 | { |
54 | int cpu = smp_processor_id(); | 87 | int cpu = smp_processor_id(); |
55 | int irq = K_INT_TIMER_0+cpu; | 88 | int irq = K_INT_TIMER_0+cpu; |
56 | 89 | ||
57 | /* Only have 4 general purpose timers */ | 90 | /* Only have 4 general purpose timers, and we use last one as hpt */ |
58 | if (cpu > 3) { | 91 | if (cpu > 2) { |
59 | BUG(); | 92 | BUG(); |
60 | } | 93 | } |
61 | 94 | ||
62 | if (!cpu) { | ||
63 | /* Use our own gettimeoffset() routine */ | ||
64 | do_gettimeoffset = sb1250_gettimeoffset; | ||
65 | } | ||
66 | |||
67 | sb1250_mask_irq(cpu, irq); | 95 | sb1250_mask_irq(cpu, irq); |
68 | 96 | ||
69 | /* Map the timer interrupt to ip[4] of this cpu */ | 97 | /* Map the timer interrupt to ip[4] of this cpu */ |
@@ -75,10 +103,10 @@ void sb1250_time_init(void) | |||
75 | /* Disable the timer and set up the count */ | 103 | /* Disable the timer and set up the count */ |
76 | __raw_writeq(0, IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG))); | 104 | __raw_writeq(0, IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG))); |
77 | #ifdef CONFIG_SIMULATION | 105 | #ifdef CONFIG_SIMULATION |
78 | __raw_writeq(50000 / HZ, | 106 | __raw_writeq((50000 / HZ) - 1, |
79 | IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT))); | 107 | IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT))); |
80 | #else | 108 | #else |
81 | __raw_writeq(1000000 / HZ, | 109 | __raw_writeq((V_SCD_TIMER_FREQ / HZ) - 1, |
82 | IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT))); | 110 | IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT))); |
83 | #endif | 111 | #endif |
84 | 112 | ||
@@ -103,7 +131,7 @@ void sb1250_timer_interrupt(struct pt_regs *regs) | |||
103 | int cpu = smp_processor_id(); | 131 | int cpu = smp_processor_id(); |
104 | int irq = K_INT_TIMER_0 + cpu; | 132 | int irq = K_INT_TIMER_0 + cpu; |
105 | 133 | ||
106 | /* Reset the timer */ | 134 | /* ACK interrupt */ |
107 | ____raw_writeq(M_SCD_TIMER_ENABLE | M_SCD_TIMER_MODE_CONTINUOUS, | 135 | ____raw_writeq(M_SCD_TIMER_ENABLE | M_SCD_TIMER_MODE_CONTINUOUS, |
108 | IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG))); | 136 | IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG))); |
109 | 137 | ||
@@ -122,15 +150,26 @@ void sb1250_timer_interrupt(struct pt_regs *regs) | |||
122 | } | 150 | } |
123 | 151 | ||
124 | /* | 152 | /* |
125 | * We use our own do_gettimeoffset() instead of the generic one, | 153 | * The HPT is free running from SB1250_HPT_VALUE down to 0 then starts over |
126 | * because the generic one does not work for SMP case. | 154 | * again. There's no easy way to set to a specific value so store init value |
127 | * In addition, since we use general timer 0 for system time, | 155 | * in hpt_offset and subtract each time. |
128 | * we can get accurate intra-jiffy offset without calibration. | 156 | * |
157 | * Note: Timer isn't full 32bits so shift it into the upper part making | ||
158 | * it appear to run at a higher frequency. | ||
129 | */ | 159 | */ |
130 | unsigned long sb1250_gettimeoffset(void) | 160 | static unsigned int sb1250_hpt_read(void) |
131 | { | 161 | { |
132 | unsigned long count = | 162 | unsigned int count; |
133 | __raw_readq(IOADDR(A_SCD_TIMER_REGISTER(0, R_SCD_TIMER_CNT))); | ||
134 | 163 | ||
135 | return 1000000/HZ - count; | 164 | count = G_SCD_TIMER_CNT(__raw_readq(IOADDR(A_SCD_TIMER_REGISTER(SB1250_HPT_NUM, R_SCD_TIMER_CNT)))); |
136 | } | 165 | |
166 | count = (SB1250_HPT_VALUE - count) << SB1250_HPT_SHIFT; | ||
167 | |||
168 | return count - hpt_offset; | ||
169 | } | ||
170 | |||
171 | static void sb1250_hpt_init(unsigned int count) | ||
172 | { | ||
173 | hpt_offset = count; | ||
174 | return; | ||
175 | } | ||
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c index b614ca0ddb69..b661d2425a36 100644 --- a/arch/mips/sibyte/swarm/setup.c +++ b/arch/mips/sibyte/swarm/setup.c | |||
@@ -70,6 +70,12 @@ const char *get_system_type(void) | |||
70 | return "SiByte " SIBYTE_BOARD_NAME; | 70 | return "SiByte " SIBYTE_BOARD_NAME; |
71 | } | 71 | } |
72 | 72 | ||
73 | void __init swarm_time_init(void) | ||
74 | { | ||
75 | /* Setup HPT */ | ||
76 | sb1250_hpt_setup(); | ||
77 | } | ||
78 | |||
73 | void __init swarm_timer_setup(struct irqaction *irq) | 79 | void __init swarm_timer_setup(struct irqaction *irq) |
74 | { | 80 | { |
75 | /* | 81 | /* |
@@ -109,6 +115,7 @@ void __init plat_setup(void) | |||
109 | 115 | ||
110 | panic_timeout = 5; /* For debug. */ | 116 | panic_timeout = 5; /* For debug. */ |
111 | 117 | ||
118 | board_time_init = swarm_time_init; | ||
112 | board_timer_setup = swarm_timer_setup; | 119 | board_timer_setup = swarm_timer_setup; |
113 | board_be_handler = swarm_be_handler; | 120 | board_be_handler = swarm_be_handler; |
114 | 121 | ||
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 7c914a4c67c3..eca33cfa8a4c 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -29,6 +29,11 @@ config GENERIC_CALIBRATE_DELAY | |||
29 | bool | 29 | bool |
30 | default y | 30 | default y |
31 | 31 | ||
32 | config TIME_LOW_RES | ||
33 | bool | ||
34 | depends on SMP | ||
35 | default y | ||
36 | |||
32 | config GENERIC_ISA_DMA | 37 | config GENERIC_ISA_DMA |
33 | bool | 38 | bool |
34 | 39 | ||
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S index 51d2480627d1..71011eadb872 100644 --- a/arch/parisc/kernel/syscall_table.S +++ b/arch/parisc/kernel/syscall_table.S | |||
@@ -377,15 +377,15 @@ | |||
377 | ENTRY_SAME(inotify_init) | 377 | ENTRY_SAME(inotify_init) |
378 | ENTRY_SAME(inotify_add_watch) /* 270 */ | 378 | ENTRY_SAME(inotify_add_watch) /* 270 */ |
379 | ENTRY_SAME(inotify_rm_watch) | 379 | ENTRY_SAME(inotify_rm_watch) |
380 | ENTRY_COMP(pselect6) | 380 | ENTRY_SAME(ni_syscall) /* 271 ENTRY_COMP(pselect6) */ |
381 | ENTRY_COMP(ppoll) | 381 | ENTRY_SAME(ni_syscall) /* 272 ENTRY_COMP(ppoll) */ |
382 | ENTRY_SAME(migrate_pages) | 382 | ENTRY_SAME(migrate_pages) |
383 | ENTRY_COMP(openat) /* 275 */ | 383 | ENTRY_COMP(openat) /* 275 */ |
384 | ENTRY_SAME(mkdirat) | 384 | ENTRY_SAME(mkdirat) |
385 | ENTRY_SAME(mknodat) | 385 | ENTRY_SAME(mknodat) |
386 | ENTRY_SAME(fchownat) | 386 | ENTRY_SAME(fchownat) |
387 | ENTRY_COMP(futimesat) | 387 | ENTRY_COMP(futimesat) |
388 | ENTRY_COMP(newfstatat) /* 280 */ | 388 | ENTRY_SAME(fstatat64) /* 280 */ |
389 | ENTRY_SAME(unlinkat) | 389 | ENTRY_SAME(unlinkat) |
390 | ENTRY_SAME(renameat) | 390 | ENTRY_SAME(renameat) |
391 | ENTRY_SAME(linkat) | 391 | ENTRY_SAME(linkat) |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index df338c5cc910..dfba81719dec 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -83,6 +83,12 @@ config GENERIC_TBSYNC | |||
83 | default y if PPC32 && SMP | 83 | default y if PPC32 && SMP |
84 | default n | 84 | default n |
85 | 85 | ||
86 | config DEFAULT_UIMAGE | ||
87 | bool | ||
88 | help | ||
89 | Used to allow a board to specify it wants a uImage built by default | ||
90 | default n | ||
91 | |||
86 | menu "Processor support" | 92 | menu "Processor support" |
87 | choice | 93 | choice |
88 | prompt "Processor Type" | 94 | prompt "Processor Type" |
@@ -574,7 +580,7 @@ config KEXEC | |||
574 | strongly in flux, so no good recommendation can be made. | 580 | strongly in flux, so no good recommendation can be made. |
575 | 581 | ||
576 | config CRASH_DUMP | 582 | config CRASH_DUMP |
577 | bool "kernel crash dumps (EXPERIMENTAL)" | 583 | bool "Build a kdump crash kernel (EXPERIMENTAL)" |
578 | depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL | 584 | depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL |
579 | help | 585 | help |
580 | Build a kernel suitable for use as a kdump capture kernel. | 586 | Build a kernel suitable for use as a kdump capture kernel. |
@@ -957,7 +963,7 @@ source "arch/powerpc/oprofile/Kconfig" | |||
957 | 963 | ||
958 | config KPROBES | 964 | config KPROBES |
959 | bool "Kprobes (EXPERIMENTAL)" | 965 | bool "Kprobes (EXPERIMENTAL)" |
960 | depends on PPC64 | 966 | depends on PPC64 && EXPERIMENTAL && MODULES |
961 | help | 967 | help |
962 | Kprobes allows you to trap at almost any kernel address and | 968 | Kprobes allows you to trap at almost any kernel address and |
963 | execute a callback function. register_kprobe() establishes | 969 | execute a callback function. register_kprobe() establishes |
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 44dd82b791d1..5500ab55d042 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -142,6 +142,7 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ | |||
142 | # Default to zImage, override when needed | 142 | # Default to zImage, override when needed |
143 | defaultimage-y := zImage | 143 | defaultimage-y := zImage |
144 | defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux | 144 | defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux |
145 | defaultimage-$(CONFIG_DEFAULT_UIMAGE) := uImage | ||
145 | KBUILD_IMAGE := $(defaultimage-y) | 146 | KBUILD_IMAGE := $(defaultimage-y) |
146 | all: $(KBUILD_IMAGE) | 147 | all: $(KBUILD_IMAGE) |
147 | 148 | ||
@@ -167,6 +168,8 @@ endef | |||
167 | 168 | ||
168 | archclean: | 169 | archclean: |
169 | $(Q)$(MAKE) $(clean)=$(boot) | 170 | $(Q)$(MAKE) $(clean)=$(boot) |
171 | |||
172 | archmrproper: | ||
170 | $(Q)rm -rf arch/$(ARCH)/include | 173 | $(Q)rm -rf arch/$(ARCH)/include |
171 | 174 | ||
172 | archprepare: checkbin | 175 | archprepare: checkbin |
diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S index e0192c26037b..70e65b13e033 100644 --- a/arch/powerpc/boot/crt0.S +++ b/arch/powerpc/boot/crt0.S | |||
@@ -45,7 +45,8 @@ _zimage_start: | |||
45 | bdnz 2b | 45 | bdnz 2b |
46 | 46 | ||
47 | /* Do a cache flush for our text, in case OF didn't */ | 47 | /* Do a cache flush for our text, in case OF didn't */ |
48 | 3: lis r9,_start@h | 48 | 3: lis r9,_start@ha |
49 | addi r9,r9,_start@l | ||
49 | add r9,r0,r9 | 50 | add r9,r0,r9 |
50 | lis r8,_etext@ha | 51 | lis r8,_etext@ha |
51 | addi r8,r8,_etext@l | 52 | addi r8,r8,_etext@l |
@@ -53,7 +54,7 @@ _zimage_start: | |||
53 | 4: dcbf r0,r9 | 54 | 4: dcbf r0,r9 |
54 | icbi r0,r9 | 55 | icbi r0,r9 |
55 | addi r9,r9,0x20 | 56 | addi r9,r9,0x20 |
56 | cmplwi 0,r9,8 | 57 | cmplw cr0,r9,r8 |
57 | blt 4b | 58 | blt 4b |
58 | sync | 59 | sync |
59 | isync | 60 | isync |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index 063b84f2cbea..3c2acab63736 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_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.15-rc5 | 3 | # Linux kernel version: 2.6.16-rc6 |
4 | # Tue Dec 20 15:59:26 2005 | 4 | # Wed Mar 15 16:19:48 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y | |||
16 | CONFIG_SYSVIPC_COMPAT=y | 16 | CONFIG_SYSVIPC_COMPAT=y |
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
19 | CONFIG_PPC_OF=y | ||
20 | CONFIG_PPC_UDBG_16550=y | ||
21 | # CONFIG_GENERIC_TBSYNC is not set | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
19 | 23 | ||
20 | # | 24 | # |
21 | # Processor support | 25 | # Processor support |
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=4 | |||
33 | # Code maturity level options | 37 | # Code maturity level options |
34 | # | 38 | # |
35 | CONFIG_EXPERIMENTAL=y | 39 | CONFIG_EXPERIMENTAL=y |
36 | CONFIG_CLEAN_COMPILE=y | ||
37 | CONFIG_LOCK_KERNEL=y | 40 | CONFIG_LOCK_KERNEL=y |
38 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 41 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
39 | 42 | ||
@@ -48,8 +51,6 @@ CONFIG_SYSVIPC=y | |||
48 | # CONFIG_BSD_PROCESS_ACCT is not set | 51 | # CONFIG_BSD_PROCESS_ACCT is not set |
49 | CONFIG_SYSCTL=y | 52 | CONFIG_SYSCTL=y |
50 | # CONFIG_AUDIT is not set | 53 | # CONFIG_AUDIT is not set |
51 | CONFIG_HOTPLUG=y | ||
52 | CONFIG_KOBJECT_UEVENT=y | ||
53 | # CONFIG_IKCONFIG is not set | 54 | # CONFIG_IKCONFIG is not set |
54 | # CONFIG_CPUSETS is not set | 55 | # CONFIG_CPUSETS is not set |
55 | CONFIG_INITRAMFS_SOURCE="" | 56 | CONFIG_INITRAMFS_SOURCE="" |
@@ -58,8 +59,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
58 | CONFIG_KALLSYMS=y | 59 | CONFIG_KALLSYMS=y |
59 | # CONFIG_KALLSYMS_ALL is not set | 60 | # CONFIG_KALLSYMS_ALL is not set |
60 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
62 | CONFIG_HOTPLUG=y | ||
61 | CONFIG_PRINTK=y | 63 | CONFIG_PRINTK=y |
62 | CONFIG_BUG=y | 64 | CONFIG_BUG=y |
65 | CONFIG_ELF_CORE=y | ||
63 | CONFIG_BASE_FULL=y | 66 | CONFIG_BASE_FULL=y |
64 | CONFIG_FUTEX=y | 67 | CONFIG_FUTEX=y |
65 | CONFIG_EPOLL=y | 68 | CONFIG_EPOLL=y |
@@ -68,8 +71,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
68 | CONFIG_CC_ALIGN_LABELS=0 | 71 | CONFIG_CC_ALIGN_LABELS=0 |
69 | CONFIG_CC_ALIGN_LOOPS=0 | 72 | CONFIG_CC_ALIGN_LOOPS=0 |
70 | CONFIG_CC_ALIGN_JUMPS=0 | 73 | CONFIG_CC_ALIGN_JUMPS=0 |
74 | CONFIG_SLAB=y | ||
71 | # CONFIG_TINY_SHMEM is not set | 75 | # CONFIG_TINY_SHMEM is not set |
72 | CONFIG_BASE_SMALL=0 | 76 | CONFIG_BASE_SMALL=0 |
77 | # CONFIG_SLOB is not set | ||
73 | 78 | ||
74 | # | 79 | # |
75 | # Loadable module support | 80 | # Loadable module support |
@@ -111,7 +116,6 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
111 | # CONFIG_PPC_PMAC is not set | 116 | # CONFIG_PPC_PMAC is not set |
112 | # CONFIG_PPC_MAPLE is not set | 117 | # CONFIG_PPC_MAPLE is not set |
113 | CONFIG_PPC_CELL=y | 118 | CONFIG_PPC_CELL=y |
114 | CONFIG_PPC_OF=y | ||
115 | # CONFIG_U3_DART is not set | 119 | # CONFIG_U3_DART is not set |
116 | CONFIG_PPC_RTAS=y | 120 | CONFIG_PPC_RTAS=y |
117 | # CONFIG_RTAS_ERROR_LOGGING is not set | 121 | # CONFIG_RTAS_ERROR_LOGGING is not set |
@@ -120,11 +124,15 @@ CONFIG_RTAS_FLASH=y | |||
120 | CONFIG_MMIO_NVRAM=y | 124 | CONFIG_MMIO_NVRAM=y |
121 | CONFIG_CELL_IIC=y | 125 | CONFIG_CELL_IIC=y |
122 | # CONFIG_PPC_MPC106 is not set | 126 | # CONFIG_PPC_MPC106 is not set |
123 | # CONFIG_GENERIC_TBSYNC is not set | ||
124 | # CONFIG_CPU_FREQ is not set | 127 | # CONFIG_CPU_FREQ is not set |
125 | # CONFIG_WANT_EARLY_SERIAL is not set | 128 | # CONFIG_WANT_EARLY_SERIAL is not set |
126 | 129 | ||
127 | # | 130 | # |
131 | # Cell Broadband Engine options | ||
132 | # | ||
133 | CONFIG_SPU_FS=y | ||
134 | |||
135 | # | ||
128 | # Kernel options | 136 | # Kernel options |
129 | # | 137 | # |
130 | # CONFIG_HZ_100 is not set | 138 | # CONFIG_HZ_100 is not set |
@@ -140,6 +148,7 @@ CONFIG_BINFMT_ELF=y | |||
140 | CONFIG_FORCE_MAX_ZONEORDER=13 | 148 | CONFIG_FORCE_MAX_ZONEORDER=13 |
141 | # CONFIG_IOMMU_VMERGE is not set | 149 | # CONFIG_IOMMU_VMERGE is not set |
142 | CONFIG_KEXEC=y | 150 | CONFIG_KEXEC=y |
151 | # CONFIG_CRASH_DUMP is not set | ||
143 | CONFIG_IRQ_ALL_CPUS=y | 152 | CONFIG_IRQ_ALL_CPUS=y |
144 | # CONFIG_NUMA is not set | 153 | # CONFIG_NUMA is not set |
145 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 154 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
@@ -191,6 +200,7 @@ CONFIG_NET=y | |||
191 | # | 200 | # |
192 | # Networking options | 201 | # Networking options |
193 | # | 202 | # |
203 | # CONFIG_NETDEBUG is not set | ||
194 | CONFIG_PACKET=y | 204 | CONFIG_PACKET=y |
195 | # CONFIG_PACKET_MMAP is not set | 205 | # CONFIG_PACKET_MMAP is not set |
196 | CONFIG_UNIX=y | 206 | CONFIG_UNIX=y |
@@ -234,6 +244,25 @@ CONFIG_NETFILTER=y | |||
234 | # Core Netfilter Configuration | 244 | # Core Netfilter Configuration |
235 | # | 245 | # |
236 | # CONFIG_NETFILTER_NETLINK is not set | 246 | # CONFIG_NETFILTER_NETLINK is not set |
247 | CONFIG_NETFILTER_XTABLES=m | ||
248 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
249 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
250 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
251 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | ||
252 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
253 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
254 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
255 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
256 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
257 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
258 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
259 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
260 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
261 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
262 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
263 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
264 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
265 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
237 | 266 | ||
238 | # | 267 | # |
239 | # IP: Netfilter Configuration | 268 | # IP: Netfilter Configuration |
@@ -251,37 +280,23 @@ CONFIG_IP_NF_AMANDA=m | |||
251 | # CONFIG_IP_NF_PPTP is not set | 280 | # CONFIG_IP_NF_PPTP is not set |
252 | CONFIG_IP_NF_QUEUE=m | 281 | CONFIG_IP_NF_QUEUE=m |
253 | CONFIG_IP_NF_IPTABLES=m | 282 | CONFIG_IP_NF_IPTABLES=m |
254 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
255 | CONFIG_IP_NF_MATCH_IPRANGE=m | 283 | CONFIG_IP_NF_MATCH_IPRANGE=m |
256 | CONFIG_IP_NF_MATCH_MAC=m | ||
257 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
258 | CONFIG_IP_NF_MATCH_MARK=m | ||
259 | CONFIG_IP_NF_MATCH_MULTIPORT=m | 284 | CONFIG_IP_NF_MATCH_MULTIPORT=m |
260 | CONFIG_IP_NF_MATCH_TOS=m | 285 | CONFIG_IP_NF_MATCH_TOS=m |
261 | CONFIG_IP_NF_MATCH_RECENT=m | 286 | CONFIG_IP_NF_MATCH_RECENT=m |
262 | CONFIG_IP_NF_MATCH_ECN=m | 287 | CONFIG_IP_NF_MATCH_ECN=m |
263 | CONFIG_IP_NF_MATCH_DSCP=m | 288 | CONFIG_IP_NF_MATCH_DSCP=m |
264 | CONFIG_IP_NF_MATCH_AH_ESP=m | 289 | CONFIG_IP_NF_MATCH_AH_ESP=m |
265 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
266 | CONFIG_IP_NF_MATCH_TTL=m | 290 | CONFIG_IP_NF_MATCH_TTL=m |
267 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
268 | CONFIG_IP_NF_MATCH_HELPER=m | ||
269 | CONFIG_IP_NF_MATCH_STATE=m | ||
270 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
271 | CONFIG_IP_NF_MATCH_OWNER=m | 291 | CONFIG_IP_NF_MATCH_OWNER=m |
272 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 292 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
273 | CONFIG_IP_NF_MATCH_REALM=m | ||
274 | CONFIG_IP_NF_MATCH_SCTP=m | ||
275 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
276 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
277 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 293 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
278 | CONFIG_IP_NF_MATCH_STRING=m | 294 | CONFIG_IP_NF_MATCH_POLICY=m |
279 | CONFIG_IP_NF_FILTER=m | 295 | CONFIG_IP_NF_FILTER=m |
280 | CONFIG_IP_NF_TARGET_REJECT=m | 296 | CONFIG_IP_NF_TARGET_REJECT=m |
281 | CONFIG_IP_NF_TARGET_LOG=m | 297 | CONFIG_IP_NF_TARGET_LOG=m |
282 | CONFIG_IP_NF_TARGET_ULOG=m | 298 | CONFIG_IP_NF_TARGET_ULOG=m |
283 | CONFIG_IP_NF_TARGET_TCPMSS=m | 299 | CONFIG_IP_NF_TARGET_TCPMSS=m |
284 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
285 | CONFIG_IP_NF_NAT=m | 300 | CONFIG_IP_NF_NAT=m |
286 | CONFIG_IP_NF_NAT_NEEDED=y | 301 | CONFIG_IP_NF_NAT_NEEDED=y |
287 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 302 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -297,11 +312,8 @@ CONFIG_IP_NF_MANGLE=m | |||
297 | CONFIG_IP_NF_TARGET_TOS=m | 312 | CONFIG_IP_NF_TARGET_TOS=m |
298 | CONFIG_IP_NF_TARGET_ECN=m | 313 | CONFIG_IP_NF_TARGET_ECN=m |
299 | CONFIG_IP_NF_TARGET_DSCP=m | 314 | CONFIG_IP_NF_TARGET_DSCP=m |
300 | CONFIG_IP_NF_TARGET_MARK=m | ||
301 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
302 | CONFIG_IP_NF_TARGET_TTL=m | 315 | CONFIG_IP_NF_TARGET_TTL=m |
303 | CONFIG_IP_NF_RAW=m | 316 | CONFIG_IP_NF_RAW=m |
304 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
305 | CONFIG_IP_NF_ARPTABLES=m | 317 | CONFIG_IP_NF_ARPTABLES=m |
306 | CONFIG_IP_NF_ARPFILTER=m | 318 | CONFIG_IP_NF_ARPFILTER=m |
307 | CONFIG_IP_NF_ARP_MANGLE=m | 319 | CONFIG_IP_NF_ARP_MANGLE=m |
@@ -311,7 +323,6 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
311 | # | 323 | # |
312 | # CONFIG_IP6_NF_QUEUE is not set | 324 | # CONFIG_IP6_NF_QUEUE is not set |
313 | # CONFIG_IP6_NF_IPTABLES is not set | 325 | # CONFIG_IP6_NF_IPTABLES is not set |
314 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
315 | 326 | ||
316 | # | 327 | # |
317 | # DCCP Configuration (EXPERIMENTAL) | 328 | # DCCP Configuration (EXPERIMENTAL) |
@@ -322,6 +333,11 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
322 | # SCTP Configuration (EXPERIMENTAL) | 333 | # SCTP Configuration (EXPERIMENTAL) |
323 | # | 334 | # |
324 | # CONFIG_IP_SCTP is not set | 335 | # CONFIG_IP_SCTP is not set |
336 | |||
337 | # | ||
338 | # TIPC Configuration (EXPERIMENTAL) | ||
339 | # | ||
340 | # CONFIG_TIPC is not set | ||
325 | # CONFIG_ATM is not set | 341 | # CONFIG_ATM is not set |
326 | # CONFIG_BRIDGE is not set | 342 | # CONFIG_BRIDGE is not set |
327 | # CONFIG_VLAN_8021Q is not set | 343 | # CONFIG_VLAN_8021Q is not set |
@@ -540,9 +556,11 @@ CONFIG_E1000=m | |||
540 | # CONFIG_R8169 is not set | 556 | # CONFIG_R8169 is not set |
541 | # CONFIG_SIS190 is not set | 557 | # CONFIG_SIS190 is not set |
542 | CONFIG_SKGE=m | 558 | CONFIG_SKGE=m |
559 | # CONFIG_SKY2 is not set | ||
543 | # CONFIG_SK98LIN is not set | 560 | # CONFIG_SK98LIN is not set |
544 | # CONFIG_TIGON3 is not set | 561 | # CONFIG_TIGON3 is not set |
545 | # CONFIG_BNX2 is not set | 562 | # CONFIG_BNX2 is not set |
563 | CONFIG_SPIDER_NET=y | ||
546 | # CONFIG_MV643XX_ETH is not set | 564 | # CONFIG_MV643XX_ETH is not set |
547 | 565 | ||
548 | # | 566 | # |
@@ -628,13 +646,16 @@ CONFIG_VT=y | |||
628 | CONFIG_VT_CONSOLE=y | 646 | CONFIG_VT_CONSOLE=y |
629 | CONFIG_HW_CONSOLE=y | 647 | CONFIG_HW_CONSOLE=y |
630 | CONFIG_SERIAL_NONSTANDARD=y | 648 | CONFIG_SERIAL_NONSTANDARD=y |
649 | # CONFIG_COMPUTONE is not set | ||
631 | # CONFIG_ROCKETPORT is not set | 650 | # CONFIG_ROCKETPORT is not set |
632 | # CONFIG_CYCLADES is not set | 651 | # CONFIG_CYCLADES is not set |
633 | # CONFIG_DIGIEPCA is not set | 652 | # CONFIG_DIGIEPCA is not set |
653 | # CONFIG_MOXA_INTELLIO is not set | ||
634 | # CONFIG_MOXA_SMARTIO is not set | 654 | # CONFIG_MOXA_SMARTIO is not set |
635 | # CONFIG_ISI is not set | 655 | # CONFIG_ISI is not set |
636 | # CONFIG_SYNCLINK is not set | 656 | # CONFIG_SYNCLINK is not set |
637 | # CONFIG_SYNCLINKMP is not set | 657 | # CONFIG_SYNCLINKMP is not set |
658 | # CONFIG_SYNCLINK_GT is not set | ||
638 | # CONFIG_N_HDLC is not set | 659 | # CONFIG_N_HDLC is not set |
639 | # CONFIG_SPECIALIX is not set | 660 | # CONFIG_SPECIALIX is not set |
640 | # CONFIG_SX is not set | 661 | # CONFIG_SX is not set |
@@ -646,6 +667,7 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
646 | CONFIG_SERIAL_8250=y | 667 | CONFIG_SERIAL_8250=y |
647 | CONFIG_SERIAL_8250_CONSOLE=y | 668 | CONFIG_SERIAL_8250_CONSOLE=y |
648 | CONFIG_SERIAL_8250_NR_UARTS=4 | 669 | CONFIG_SERIAL_8250_NR_UARTS=4 |
670 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
649 | # CONFIG_SERIAL_8250_EXTENDED is not set | 671 | # CONFIG_SERIAL_8250_EXTENDED is not set |
650 | 672 | ||
651 | # | 673 | # |
@@ -756,6 +778,12 @@ CONFIG_I2C_ALGOBIT=y | |||
756 | # CONFIG_I2C_DEBUG_CHIP is not set | 778 | # CONFIG_I2C_DEBUG_CHIP is not set |
757 | 779 | ||
758 | # | 780 | # |
781 | # SPI support | ||
782 | # | ||
783 | # CONFIG_SPI is not set | ||
784 | # CONFIG_SPI_MASTER is not set | ||
785 | |||
786 | # | ||
759 | # Dallas's 1-wire bus | 787 | # Dallas's 1-wire bus |
760 | # | 788 | # |
761 | # CONFIG_W1 is not set | 789 | # CONFIG_W1 is not set |
@@ -827,7 +855,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
827 | # CONFIG_INFINIBAND is not set | 855 | # CONFIG_INFINIBAND is not set |
828 | 856 | ||
829 | # | 857 | # |
830 | # SN Devices | 858 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
831 | # | 859 | # |
832 | 860 | ||
833 | # | 861 | # |
@@ -847,6 +875,7 @@ CONFIG_FS_MBCACHE=y | |||
847 | # CONFIG_JFS_FS is not set | 875 | # CONFIG_JFS_FS is not set |
848 | CONFIG_FS_POSIX_ACL=y | 876 | CONFIG_FS_POSIX_ACL=y |
849 | # CONFIG_XFS_FS is not set | 877 | # CONFIG_XFS_FS is not set |
878 | # CONFIG_OCFS2_FS is not set | ||
850 | # CONFIG_MINIX_FS is not set | 879 | # CONFIG_MINIX_FS is not set |
851 | # CONFIG_ROMFS_FS is not set | 880 | # CONFIG_ROMFS_FS is not set |
852 | CONFIG_INOTIFY=y | 881 | CONFIG_INOTIFY=y |
@@ -886,6 +915,7 @@ CONFIG_HUGETLBFS=y | |||
886 | CONFIG_HUGETLB_PAGE=y | 915 | CONFIG_HUGETLB_PAGE=y |
887 | CONFIG_RAMFS=y | 916 | CONFIG_RAMFS=y |
888 | # CONFIG_RELAYFS_FS is not set | 917 | # CONFIG_RELAYFS_FS is not set |
918 | # CONFIG_CONFIGFS_FS is not set | ||
889 | 919 | ||
890 | # | 920 | # |
891 | # Miscellaneous filesystems | 921 | # Miscellaneous filesystems |
@@ -951,6 +981,7 @@ CONFIG_MSDOS_PARTITION=y | |||
951 | # CONFIG_SGI_PARTITION is not set | 981 | # CONFIG_SGI_PARTITION is not set |
952 | # CONFIG_ULTRIX_PARTITION is not set | 982 | # CONFIG_ULTRIX_PARTITION is not set |
953 | # CONFIG_SUN_PARTITION is not set | 983 | # CONFIG_SUN_PARTITION is not set |
984 | # CONFIG_KARMA_PARTITION is not set | ||
954 | CONFIG_EFI_PARTITION=y | 985 | CONFIG_EFI_PARTITION=y |
955 | 986 | ||
956 | # | 987 | # |
@@ -1021,18 +1052,20 @@ CONFIG_TEXTSEARCH_FSM=m | |||
1021 | # Kernel hacking | 1052 | # Kernel hacking |
1022 | # | 1053 | # |
1023 | # CONFIG_PRINTK_TIME is not set | 1054 | # CONFIG_PRINTK_TIME is not set |
1024 | CONFIG_DEBUG_KERNEL=y | ||
1025 | CONFIG_MAGIC_SYSRQ=y | 1055 | CONFIG_MAGIC_SYSRQ=y |
1056 | CONFIG_DEBUG_KERNEL=y | ||
1026 | CONFIG_LOG_BUF_SHIFT=15 | 1057 | CONFIG_LOG_BUF_SHIFT=15 |
1027 | CONFIG_DETECT_SOFTLOCKUP=y | 1058 | CONFIG_DETECT_SOFTLOCKUP=y |
1028 | # CONFIG_SCHEDSTATS is not set | 1059 | # CONFIG_SCHEDSTATS is not set |
1029 | # CONFIG_DEBUG_SLAB is not set | 1060 | # CONFIG_DEBUG_SLAB is not set |
1061 | # CONFIG_DEBUG_MUTEXES is not set | ||
1030 | # CONFIG_DEBUG_SPINLOCK is not set | 1062 | # CONFIG_DEBUG_SPINLOCK is not set |
1031 | CONFIG_DEBUG_SPINLOCK_SLEEP=y | 1063 | CONFIG_DEBUG_SPINLOCK_SLEEP=y |
1032 | # CONFIG_DEBUG_KOBJECT is not set | 1064 | # CONFIG_DEBUG_KOBJECT is not set |
1033 | # CONFIG_DEBUG_INFO is not set | 1065 | # CONFIG_DEBUG_INFO is not set |
1034 | CONFIG_DEBUG_FS=y | 1066 | CONFIG_DEBUG_FS=y |
1035 | # CONFIG_DEBUG_VM is not set | 1067 | # CONFIG_DEBUG_VM is not set |
1068 | # CONFIG_FORCED_INLINING is not set | ||
1036 | # CONFIG_RCU_TORTURE_TEST is not set | 1069 | # CONFIG_RCU_TORTURE_TEST is not set |
1037 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1070 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1038 | # CONFIG_DEBUG_STACK_USAGE is not set | 1071 | # CONFIG_DEBUG_STACK_USAGE is not set |
@@ -1040,6 +1073,11 @@ CONFIG_DEBUGGER=y | |||
1040 | # CONFIG_XMON is not set | 1073 | # CONFIG_XMON is not set |
1041 | CONFIG_IRQSTACKS=y | 1074 | CONFIG_IRQSTACKS=y |
1042 | # CONFIG_BOOTX_TEXT is not set | 1075 | # CONFIG_BOOTX_TEXT is not set |
1076 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1077 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1078 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
1079 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1080 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1043 | 1081 | ||
1044 | # | 1082 | # |
1045 | # Security options | 1083 | # Security options |
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig index d6fed3f56580..2c3fd2007676 100644 --- a/arch/powerpc/configs/g5_defconfig +++ b/arch/powerpc/configs/g5_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.15-rc5 | 3 | # Linux kernel version: 2.6.16-rc2 |
4 | # Tue Dec 20 15:59:30 2005 | 4 | # Fri Feb 10 17:33:08 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y | |||
16 | CONFIG_SYSVIPC_COMPAT=y | 16 | CONFIG_SYSVIPC_COMPAT=y |
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
19 | CONFIG_PPC_OF=y | ||
20 | # CONFIG_PPC_UDBG_16550 is not set | ||
21 | CONFIG_GENERIC_TBSYNC=y | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
19 | 23 | ||
20 | # | 24 | # |
21 | # Processor support | 25 | # Processor support |
@@ -26,13 +30,12 @@ CONFIG_PPC_FPU=y | |||
26 | CONFIG_ALTIVEC=y | 30 | CONFIG_ALTIVEC=y |
27 | CONFIG_PPC_STD_MMU=y | 31 | CONFIG_PPC_STD_MMU=y |
28 | CONFIG_SMP=y | 32 | CONFIG_SMP=y |
29 | CONFIG_NR_CPUS=2 | 33 | CONFIG_NR_CPUS=4 |
30 | 34 | ||
31 | # | 35 | # |
32 | # Code maturity level options | 36 | # Code maturity level options |
33 | # | 37 | # |
34 | CONFIG_EXPERIMENTAL=y | 38 | CONFIG_EXPERIMENTAL=y |
35 | CONFIG_CLEAN_COMPILE=y | ||
36 | CONFIG_LOCK_KERNEL=y | 39 | CONFIG_LOCK_KERNEL=y |
37 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 40 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
38 | 41 | ||
@@ -47,8 +50,6 @@ CONFIG_POSIX_MQUEUE=y | |||
47 | # CONFIG_BSD_PROCESS_ACCT is not set | 50 | # CONFIG_BSD_PROCESS_ACCT is not set |
48 | CONFIG_SYSCTL=y | 51 | CONFIG_SYSCTL=y |
49 | # CONFIG_AUDIT is not set | 52 | # CONFIG_AUDIT is not set |
50 | CONFIG_HOTPLUG=y | ||
51 | CONFIG_KOBJECT_UEVENT=y | ||
52 | CONFIG_IKCONFIG=y | 53 | CONFIG_IKCONFIG=y |
53 | CONFIG_IKCONFIG_PROC=y | 54 | CONFIG_IKCONFIG_PROC=y |
54 | # CONFIG_CPUSETS is not set | 55 | # CONFIG_CPUSETS is not set |
@@ -58,8 +59,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
58 | CONFIG_KALLSYMS=y | 59 | CONFIG_KALLSYMS=y |
59 | # CONFIG_KALLSYMS_ALL is not set | 60 | # CONFIG_KALLSYMS_ALL is not set |
60 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
62 | CONFIG_HOTPLUG=y | ||
61 | CONFIG_PRINTK=y | 63 | CONFIG_PRINTK=y |
62 | CONFIG_BUG=y | 64 | CONFIG_BUG=y |
65 | CONFIG_ELF_CORE=y | ||
63 | CONFIG_BASE_FULL=y | 66 | CONFIG_BASE_FULL=y |
64 | CONFIG_FUTEX=y | 67 | CONFIG_FUTEX=y |
65 | CONFIG_EPOLL=y | 68 | CONFIG_EPOLL=y |
@@ -68,8 +71,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
68 | CONFIG_CC_ALIGN_LABELS=0 | 71 | CONFIG_CC_ALIGN_LABELS=0 |
69 | CONFIG_CC_ALIGN_LOOPS=0 | 72 | CONFIG_CC_ALIGN_LOOPS=0 |
70 | CONFIG_CC_ALIGN_JUMPS=0 | 73 | CONFIG_CC_ALIGN_JUMPS=0 |
74 | CONFIG_SLAB=y | ||
71 | # CONFIG_TINY_SHMEM is not set | 75 | # CONFIG_TINY_SHMEM is not set |
72 | CONFIG_BASE_SMALL=0 | 76 | CONFIG_BASE_SMALL=0 |
77 | # CONFIG_SLOB is not set | ||
73 | 78 | ||
74 | # | 79 | # |
75 | # Loadable module support | 80 | # Loadable module support |
@@ -112,13 +117,12 @@ CONFIG_PPC_PMAC=y | |||
112 | CONFIG_PPC_PMAC64=y | 117 | CONFIG_PPC_PMAC64=y |
113 | # CONFIG_PPC_MAPLE is not set | 118 | # CONFIG_PPC_MAPLE is not set |
114 | # CONFIG_PPC_CELL is not set | 119 | # CONFIG_PPC_CELL is not set |
115 | CONFIG_PPC_OF=y | ||
116 | CONFIG_U3_DART=y | 120 | CONFIG_U3_DART=y |
117 | CONFIG_MPIC=y | 121 | CONFIG_MPIC=y |
118 | # CONFIG_PPC_RTAS is not set | 122 | # CONFIG_PPC_RTAS is not set |
119 | # CONFIG_MMIO_NVRAM is not set | 123 | # CONFIG_MMIO_NVRAM is not set |
124 | CONFIG_MPIC_BROKEN_U3=y | ||
120 | # CONFIG_PPC_MPC106 is not set | 125 | # CONFIG_PPC_MPC106 is not set |
121 | CONFIG_GENERIC_TBSYNC=y | ||
122 | CONFIG_CPU_FREQ=y | 126 | CONFIG_CPU_FREQ=y |
123 | CONFIG_CPU_FREQ_TABLE=y | 127 | CONFIG_CPU_FREQ_TABLE=y |
124 | # CONFIG_CPU_FREQ_DEBUG is not set | 128 | # CONFIG_CPU_FREQ_DEBUG is not set |
@@ -151,6 +155,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
151 | CONFIG_IOMMU_VMERGE=y | 155 | CONFIG_IOMMU_VMERGE=y |
152 | # CONFIG_HOTPLUG_CPU is not set | 156 | # CONFIG_HOTPLUG_CPU is not set |
153 | CONFIG_KEXEC=y | 157 | CONFIG_KEXEC=y |
158 | # CONFIG_CRASH_DUMP is not set | ||
154 | CONFIG_IRQ_ALL_CPUS=y | 159 | CONFIG_IRQ_ALL_CPUS=y |
155 | # CONFIG_NUMA is not set | 160 | # CONFIG_NUMA is not set |
156 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 161 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
@@ -202,6 +207,7 @@ CONFIG_NET=y | |||
202 | # | 207 | # |
203 | # Networking options | 208 | # Networking options |
204 | # | 209 | # |
210 | # CONFIG_NETDEBUG is not set | ||
205 | CONFIG_PACKET=y | 211 | CONFIG_PACKET=y |
206 | # CONFIG_PACKET_MMAP is not set | 212 | # CONFIG_PACKET_MMAP is not set |
207 | CONFIG_UNIX=y | 213 | CONFIG_UNIX=y |
@@ -239,6 +245,7 @@ CONFIG_NETFILTER=y | |||
239 | # Core Netfilter Configuration | 245 | # Core Netfilter Configuration |
240 | # | 246 | # |
241 | # CONFIG_NETFILTER_NETLINK is not set | 247 | # CONFIG_NETFILTER_NETLINK is not set |
248 | # CONFIG_NETFILTER_XTABLES is not set | ||
242 | 249 | ||
243 | # | 250 | # |
244 | # IP: Netfilter Configuration | 251 | # IP: Netfilter Configuration |
@@ -255,65 +262,6 @@ CONFIG_IP_NF_TFTP=m | |||
255 | CONFIG_IP_NF_AMANDA=m | 262 | CONFIG_IP_NF_AMANDA=m |
256 | # CONFIG_IP_NF_PPTP is not set | 263 | # CONFIG_IP_NF_PPTP is not set |
257 | CONFIG_IP_NF_QUEUE=m | 264 | CONFIG_IP_NF_QUEUE=m |
258 | CONFIG_IP_NF_IPTABLES=m | ||
259 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
260 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
261 | CONFIG_IP_NF_MATCH_MAC=m | ||
262 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
263 | CONFIG_IP_NF_MATCH_MARK=m | ||
264 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
265 | CONFIG_IP_NF_MATCH_TOS=m | ||
266 | CONFIG_IP_NF_MATCH_RECENT=m | ||
267 | CONFIG_IP_NF_MATCH_ECN=m | ||
268 | CONFIG_IP_NF_MATCH_DSCP=m | ||
269 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
270 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
271 | CONFIG_IP_NF_MATCH_TTL=m | ||
272 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
273 | CONFIG_IP_NF_MATCH_HELPER=m | ||
274 | CONFIG_IP_NF_MATCH_STATE=m | ||
275 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
276 | CONFIG_IP_NF_MATCH_OWNER=m | ||
277 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
278 | CONFIG_IP_NF_MATCH_REALM=m | ||
279 | CONFIG_IP_NF_MATCH_SCTP=m | ||
280 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
281 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
282 | CONFIG_IP_NF_MATCH_CONNMARK=m | ||
283 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
284 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
285 | CONFIG_IP_NF_MATCH_STRING=m | ||
286 | CONFIG_IP_NF_FILTER=m | ||
287 | CONFIG_IP_NF_TARGET_REJECT=m | ||
288 | CONFIG_IP_NF_TARGET_LOG=m | ||
289 | CONFIG_IP_NF_TARGET_ULOG=m | ||
290 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
291 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
292 | CONFIG_IP_NF_NAT=m | ||
293 | CONFIG_IP_NF_NAT_NEEDED=y | ||
294 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
295 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
296 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
297 | CONFIG_IP_NF_TARGET_SAME=m | ||
298 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
299 | CONFIG_IP_NF_NAT_IRC=m | ||
300 | CONFIG_IP_NF_NAT_FTP=m | ||
301 | CONFIG_IP_NF_NAT_TFTP=m | ||
302 | CONFIG_IP_NF_NAT_AMANDA=m | ||
303 | CONFIG_IP_NF_MANGLE=m | ||
304 | CONFIG_IP_NF_TARGET_TOS=m | ||
305 | CONFIG_IP_NF_TARGET_ECN=m | ||
306 | CONFIG_IP_NF_TARGET_DSCP=m | ||
307 | CONFIG_IP_NF_TARGET_MARK=m | ||
308 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
309 | CONFIG_IP_NF_TARGET_TTL=m | ||
310 | CONFIG_IP_NF_TARGET_CONNMARK=m | ||
311 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
312 | CONFIG_IP_NF_RAW=m | ||
313 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
314 | CONFIG_IP_NF_ARPTABLES=m | ||
315 | CONFIG_IP_NF_ARPFILTER=m | ||
316 | CONFIG_IP_NF_ARP_MANGLE=m | ||
317 | 265 | ||
318 | # | 266 | # |
319 | # DCCP Configuration (EXPERIMENTAL) | 267 | # DCCP Configuration (EXPERIMENTAL) |
@@ -324,6 +272,11 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
324 | # SCTP Configuration (EXPERIMENTAL) | 272 | # SCTP Configuration (EXPERIMENTAL) |
325 | # | 273 | # |
326 | # CONFIG_IP_SCTP is not set | 274 | # CONFIG_IP_SCTP is not set |
275 | |||
276 | # | ||
277 | # TIPC Configuration (EXPERIMENTAL) | ||
278 | # | ||
279 | # CONFIG_TIPC is not set | ||
327 | # CONFIG_ATM is not set | 280 | # CONFIG_ATM is not set |
328 | # CONFIG_BRIDGE is not set | 281 | # CONFIG_BRIDGE is not set |
329 | # CONFIG_VLAN_8021Q is not set | 282 | # CONFIG_VLAN_8021Q is not set |
@@ -342,7 +295,6 @@ CONFIG_LLC=y | |||
342 | # QoS and/or fair queueing | 295 | # QoS and/or fair queueing |
343 | # | 296 | # |
344 | # CONFIG_NET_SCHED is not set | 297 | # CONFIG_NET_SCHED is not set |
345 | CONFIG_NET_CLS_ROUTE=y | ||
346 | 298 | ||
347 | # | 299 | # |
348 | # Network testing | 300 | # Network testing |
@@ -545,13 +497,7 @@ CONFIG_SCSI_SATA_SVW=y | |||
545 | # CONFIG_SCSI_IPR is not set | 497 | # CONFIG_SCSI_IPR is not set |
546 | # CONFIG_SCSI_QLOGIC_FC is not set | 498 | # CONFIG_SCSI_QLOGIC_FC is not set |
547 | # CONFIG_SCSI_QLOGIC_1280 is not set | 499 | # CONFIG_SCSI_QLOGIC_1280 is not set |
548 | CONFIG_SCSI_QLA2XXX=y | 500 | # CONFIG_SCSI_QLA_FC is not set |
549 | # CONFIG_SCSI_QLA21XX is not set | ||
550 | # CONFIG_SCSI_QLA22XX is not set | ||
551 | # CONFIG_SCSI_QLA2300 is not set | ||
552 | # CONFIG_SCSI_QLA2322 is not set | ||
553 | # CONFIG_SCSI_QLA6312 is not set | ||
554 | # CONFIG_SCSI_QLA24XX is not set | ||
555 | # CONFIG_SCSI_LPFC is not set | 501 | # CONFIG_SCSI_LPFC is not set |
556 | # CONFIG_SCSI_DC395x is not set | 502 | # CONFIG_SCSI_DC395x is not set |
557 | # CONFIG_SCSI_DC390T is not set | 503 | # CONFIG_SCSI_DC390T is not set |
@@ -614,7 +560,6 @@ CONFIG_IEEE1394_SBP2=m | |||
614 | CONFIG_IEEE1394_ETH1394=m | 560 | CONFIG_IEEE1394_ETH1394=m |
615 | CONFIG_IEEE1394_DV1394=m | 561 | CONFIG_IEEE1394_DV1394=m |
616 | CONFIG_IEEE1394_RAWIO=y | 562 | CONFIG_IEEE1394_RAWIO=y |
617 | # CONFIG_IEEE1394_CMP is not set | ||
618 | 563 | ||
619 | # | 564 | # |
620 | # I2O device support | 565 | # I2O device support |
@@ -630,6 +575,7 @@ CONFIG_THERM_PM72=y | |||
630 | CONFIG_WINDFARM=y | 575 | CONFIG_WINDFARM=y |
631 | CONFIG_WINDFARM_PM81=y | 576 | CONFIG_WINDFARM_PM81=y |
632 | CONFIG_WINDFARM_PM91=y | 577 | CONFIG_WINDFARM_PM91=y |
578 | CONFIG_WINDFARM_PM112=y | ||
633 | 579 | ||
634 | # | 580 | # |
635 | # Network device support | 581 | # Network device support |
@@ -682,8 +628,9 @@ CONFIG_E1000=y | |||
682 | # CONFIG_R8169 is not set | 628 | # CONFIG_R8169 is not set |
683 | # CONFIG_SIS190 is not set | 629 | # CONFIG_SIS190 is not set |
684 | # CONFIG_SKGE is not set | 630 | # CONFIG_SKGE is not set |
631 | # CONFIG_SKY2 is not set | ||
685 | # CONFIG_SK98LIN is not set | 632 | # CONFIG_SK98LIN is not set |
686 | CONFIG_TIGON3=m | 633 | CONFIG_TIGON3=y |
687 | # CONFIG_BNX2 is not set | 634 | # CONFIG_BNX2 is not set |
688 | # CONFIG_MV643XX_ETH is not set | 635 | # CONFIG_MV643XX_ETH is not set |
689 | 636 | ||
@@ -861,8 +808,7 @@ CONFIG_I2C_ALGOBIT=y | |||
861 | # CONFIG_I2C_I801 is not set | 808 | # CONFIG_I2C_I801 is not set |
862 | # CONFIG_I2C_I810 is not set | 809 | # CONFIG_I2C_I810 is not set |
863 | # CONFIG_I2C_PIIX4 is not set | 810 | # CONFIG_I2C_PIIX4 is not set |
864 | CONFIG_I2C_KEYWEST=y | 811 | CONFIG_I2C_POWERMAC=y |
865 | CONFIG_I2C_PMAC_SMU=y | ||
866 | # CONFIG_I2C_NFORCE2 is not set | 812 | # CONFIG_I2C_NFORCE2 is not set |
867 | # CONFIG_I2C_PARPORT_LIGHT is not set | 813 | # CONFIG_I2C_PARPORT_LIGHT is not set |
868 | # CONFIG_I2C_PROSAVAGE is not set | 814 | # CONFIG_I2C_PROSAVAGE is not set |
@@ -895,6 +841,12 @@ CONFIG_I2C_PMAC_SMU=y | |||
895 | # CONFIG_I2C_DEBUG_CHIP is not set | 841 | # CONFIG_I2C_DEBUG_CHIP is not set |
896 | 842 | ||
897 | # | 843 | # |
844 | # SPI support | ||
845 | # | ||
846 | # CONFIG_SPI is not set | ||
847 | # CONFIG_SPI_MASTER is not set | ||
848 | |||
849 | # | ||
898 | # Dallas's 1-wire bus | 850 | # Dallas's 1-wire bus |
899 | # | 851 | # |
900 | # CONFIG_W1 is not set | 852 | # CONFIG_W1 is not set |
@@ -961,7 +913,6 @@ CONFIG_FB_RADEON_I2C=y | |||
961 | # CONFIG_FB_KYRO is not set | 913 | # CONFIG_FB_KYRO is not set |
962 | # CONFIG_FB_3DFX is not set | 914 | # CONFIG_FB_3DFX is not set |
963 | # CONFIG_FB_VOODOO1 is not set | 915 | # CONFIG_FB_VOODOO1 is not set |
964 | # CONFIG_FB_CYBLA is not set | ||
965 | # CONFIG_FB_TRIDENT is not set | 916 | # CONFIG_FB_TRIDENT is not set |
966 | # CONFIG_FB_VIRTUAL is not set | 917 | # CONFIG_FB_VIRTUAL is not set |
967 | 918 | ||
@@ -1008,9 +959,10 @@ CONFIG_SND_OSSEMUL=y | |||
1008 | CONFIG_SND_MIXER_OSS=m | 959 | CONFIG_SND_MIXER_OSS=m |
1009 | CONFIG_SND_PCM_OSS=m | 960 | CONFIG_SND_PCM_OSS=m |
1010 | CONFIG_SND_SEQUENCER_OSS=y | 961 | CONFIG_SND_SEQUENCER_OSS=y |
962 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
963 | CONFIG_SND_SUPPORT_OLD_API=y | ||
1011 | # CONFIG_SND_VERBOSE_PRINTK is not set | 964 | # CONFIG_SND_VERBOSE_PRINTK is not set |
1012 | # CONFIG_SND_DEBUG is not set | 965 | # CONFIG_SND_DEBUG is not set |
1013 | CONFIG_SND_GENERIC_DRIVER=y | ||
1014 | 966 | ||
1015 | # | 967 | # |
1016 | # Generic devices | 968 | # Generic devices |
@@ -1024,6 +976,8 @@ CONFIG_SND_GENERIC_DRIVER=y | |||
1024 | # | 976 | # |
1025 | # PCI devices | 977 | # PCI devices |
1026 | # | 978 | # |
979 | # CONFIG_SND_AD1889 is not set | ||
980 | # CONFIG_SND_ALS4000 is not set | ||
1027 | # CONFIG_SND_ALI5451 is not set | 981 | # CONFIG_SND_ALI5451 is not set |
1028 | # CONFIG_SND_ATIIXP is not set | 982 | # CONFIG_SND_ATIIXP is not set |
1029 | # CONFIG_SND_ATIIXP_MODEM is not set | 983 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -1032,39 +986,38 @@ CONFIG_SND_GENERIC_DRIVER=y | |||
1032 | # CONFIG_SND_AU8830 is not set | 986 | # CONFIG_SND_AU8830 is not set |
1033 | # CONFIG_SND_AZT3328 is not set | 987 | # CONFIG_SND_AZT3328 is not set |
1034 | # CONFIG_SND_BT87X is not set | 988 | # CONFIG_SND_BT87X is not set |
1035 | # CONFIG_SND_CS46XX is not set | 989 | # CONFIG_SND_CA0106 is not set |
990 | # CONFIG_SND_CMIPCI is not set | ||
1036 | # CONFIG_SND_CS4281 is not set | 991 | # CONFIG_SND_CS4281 is not set |
992 | # CONFIG_SND_CS46XX is not set | ||
1037 | # CONFIG_SND_EMU10K1 is not set | 993 | # CONFIG_SND_EMU10K1 is not set |
1038 | # CONFIG_SND_EMU10K1X is not set | 994 | # CONFIG_SND_EMU10K1X is not set |
1039 | # CONFIG_SND_CA0106 is not set | ||
1040 | # CONFIG_SND_KORG1212 is not set | ||
1041 | # CONFIG_SND_MIXART is not set | ||
1042 | # CONFIG_SND_NM256 is not set | ||
1043 | # CONFIG_SND_RME32 is not set | ||
1044 | # CONFIG_SND_RME96 is not set | ||
1045 | # CONFIG_SND_RME9652 is not set | ||
1046 | # CONFIG_SND_HDSP is not set | ||
1047 | # CONFIG_SND_HDSPM is not set | ||
1048 | # CONFIG_SND_TRIDENT is not set | ||
1049 | # CONFIG_SND_YMFPCI is not set | ||
1050 | # CONFIG_SND_AD1889 is not set | ||
1051 | # CONFIG_SND_ALS4000 is not set | ||
1052 | # CONFIG_SND_CMIPCI is not set | ||
1053 | # CONFIG_SND_ENS1370 is not set | 995 | # CONFIG_SND_ENS1370 is not set |
1054 | # CONFIG_SND_ENS1371 is not set | 996 | # CONFIG_SND_ENS1371 is not set |
1055 | # CONFIG_SND_ES1938 is not set | 997 | # CONFIG_SND_ES1938 is not set |
1056 | # CONFIG_SND_ES1968 is not set | 998 | # CONFIG_SND_ES1968 is not set |
1057 | # CONFIG_SND_MAESTRO3 is not set | ||
1058 | # CONFIG_SND_FM801 is not set | 999 | # CONFIG_SND_FM801 is not set |
1000 | # CONFIG_SND_HDA_INTEL is not set | ||
1001 | # CONFIG_SND_HDSP is not set | ||
1002 | # CONFIG_SND_HDSPM is not set | ||
1059 | # CONFIG_SND_ICE1712 is not set | 1003 | # CONFIG_SND_ICE1712 is not set |
1060 | # CONFIG_SND_ICE1724 is not set | 1004 | # CONFIG_SND_ICE1724 is not set |
1061 | # CONFIG_SND_INTEL8X0 is not set | 1005 | # CONFIG_SND_INTEL8X0 is not set |
1062 | # CONFIG_SND_INTEL8X0M is not set | 1006 | # CONFIG_SND_INTEL8X0M is not set |
1007 | # CONFIG_SND_KORG1212 is not set | ||
1008 | # CONFIG_SND_MAESTRO3 is not set | ||
1009 | # CONFIG_SND_MIXART is not set | ||
1010 | # CONFIG_SND_NM256 is not set | ||
1011 | # CONFIG_SND_PCXHR is not set | ||
1012 | # CONFIG_SND_RME32 is not set | ||
1013 | # CONFIG_SND_RME96 is not set | ||
1014 | # CONFIG_SND_RME9652 is not set | ||
1063 | # CONFIG_SND_SONICVIBES is not set | 1015 | # CONFIG_SND_SONICVIBES is not set |
1016 | # CONFIG_SND_TRIDENT is not set | ||
1064 | # CONFIG_SND_VIA82XX is not set | 1017 | # CONFIG_SND_VIA82XX is not set |
1065 | # CONFIG_SND_VIA82XX_MODEM is not set | 1018 | # CONFIG_SND_VIA82XX_MODEM is not set |
1066 | # CONFIG_SND_VX222 is not set | 1019 | # CONFIG_SND_VX222 is not set |
1067 | # CONFIG_SND_HDA_INTEL is not set | 1020 | # CONFIG_SND_YMFPCI is not set |
1068 | 1021 | ||
1069 | # | 1022 | # |
1070 | # ALSA PowerMac devices | 1023 | # ALSA PowerMac devices |
@@ -1136,13 +1089,16 @@ CONFIG_USB_STORAGE_DPCM=y | |||
1136 | CONFIG_USB_STORAGE_SDDR09=y | 1089 | CONFIG_USB_STORAGE_SDDR09=y |
1137 | CONFIG_USB_STORAGE_SDDR55=y | 1090 | CONFIG_USB_STORAGE_SDDR55=y |
1138 | CONFIG_USB_STORAGE_JUMPSHOT=y | 1091 | CONFIG_USB_STORAGE_JUMPSHOT=y |
1092 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
1139 | # CONFIG_USB_STORAGE_ONETOUCH is not set | 1093 | # CONFIG_USB_STORAGE_ONETOUCH is not set |
1094 | # CONFIG_USB_LIBUSUAL is not set | ||
1140 | 1095 | ||
1141 | # | 1096 | # |
1142 | # USB Input Devices | 1097 | # USB Input Devices |
1143 | # | 1098 | # |
1144 | CONFIG_USB_HID=y | 1099 | CONFIG_USB_HID=y |
1145 | CONFIG_USB_HIDINPUT=y | 1100 | CONFIG_USB_HIDINPUT=y |
1101 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1146 | CONFIG_HID_FF=y | 1102 | CONFIG_HID_FF=y |
1147 | CONFIG_HID_PID=y | 1103 | CONFIG_HID_PID=y |
1148 | CONFIG_LOGITECH_FF=y | 1104 | CONFIG_LOGITECH_FF=y |
@@ -1159,6 +1115,7 @@ CONFIG_USB_HIDDEV=y | |||
1159 | # CONFIG_USB_YEALINK is not set | 1115 | # CONFIG_USB_YEALINK is not set |
1160 | # CONFIG_USB_XPAD is not set | 1116 | # CONFIG_USB_XPAD is not set |
1161 | # CONFIG_USB_ATI_REMOTE is not set | 1117 | # CONFIG_USB_ATI_REMOTE is not set |
1118 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1162 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1119 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1163 | # CONFIG_USB_APPLETOUCH is not set | 1120 | # CONFIG_USB_APPLETOUCH is not set |
1164 | 1121 | ||
@@ -1207,6 +1164,7 @@ CONFIG_USB_SERIAL_GENERIC=y | |||
1207 | # CONFIG_USB_SERIAL_AIRPRIME is not set | 1164 | # CONFIG_USB_SERIAL_AIRPRIME is not set |
1208 | # CONFIG_USB_SERIAL_ANYDATA is not set | 1165 | # CONFIG_USB_SERIAL_ANYDATA is not set |
1209 | CONFIG_USB_SERIAL_BELKIN=m | 1166 | CONFIG_USB_SERIAL_BELKIN=m |
1167 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | ||
1210 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | 1168 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m |
1211 | # CONFIG_USB_SERIAL_CP2101 is not set | 1169 | # CONFIG_USB_SERIAL_CP2101 is not set |
1212 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 1170 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
@@ -1288,6 +1246,10 @@ CONFIG_USB_EZUSB=y | |||
1288 | # | 1246 | # |
1289 | 1247 | ||
1290 | # | 1248 | # |
1249 | # EDAC - error detection and reporting (RAS) | ||
1250 | # | ||
1251 | |||
1252 | # | ||
1291 | # File systems | 1253 | # File systems |
1292 | # | 1254 | # |
1293 | CONFIG_EXT2_FS=y | 1255 | CONFIG_EXT2_FS=y |
@@ -1317,6 +1279,7 @@ CONFIG_XFS_EXPORT=y | |||
1317 | CONFIG_XFS_SECURITY=y | 1279 | CONFIG_XFS_SECURITY=y |
1318 | CONFIG_XFS_POSIX_ACL=y | 1280 | CONFIG_XFS_POSIX_ACL=y |
1319 | # CONFIG_XFS_RT is not set | 1281 | # CONFIG_XFS_RT is not set |
1282 | # CONFIG_OCFS2_FS is not set | ||
1320 | # CONFIG_MINIX_FS is not set | 1283 | # CONFIG_MINIX_FS is not set |
1321 | # CONFIG_ROMFS_FS is not set | 1284 | # CONFIG_ROMFS_FS is not set |
1322 | CONFIG_INOTIFY=y | 1285 | CONFIG_INOTIFY=y |
@@ -1357,6 +1320,7 @@ CONFIG_HUGETLBFS=y | |||
1357 | CONFIG_HUGETLB_PAGE=y | 1320 | CONFIG_HUGETLB_PAGE=y |
1358 | CONFIG_RAMFS=y | 1321 | CONFIG_RAMFS=y |
1359 | # CONFIG_RELAYFS_FS is not set | 1322 | # CONFIG_RELAYFS_FS is not set |
1323 | # CONFIG_CONFIGFS_FS is not set | ||
1360 | 1324 | ||
1361 | # | 1325 | # |
1362 | # Miscellaneous filesystems | 1326 | # Miscellaneous filesystems |
@@ -1426,6 +1390,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1426 | # CONFIG_SGI_PARTITION is not set | 1390 | # CONFIG_SGI_PARTITION is not set |
1427 | # CONFIG_ULTRIX_PARTITION is not set | 1391 | # CONFIG_ULTRIX_PARTITION is not set |
1428 | # CONFIG_SUN_PARTITION is not set | 1392 | # CONFIG_SUN_PARTITION is not set |
1393 | # CONFIG_KARMA_PARTITION is not set | ||
1429 | # CONFIG_EFI_PARTITION is not set | 1394 | # CONFIG_EFI_PARTITION is not set |
1430 | 1395 | ||
1431 | # | 1396 | # |
@@ -1481,10 +1446,6 @@ CONFIG_CRC32=y | |||
1481 | CONFIG_LIBCRC32C=m | 1446 | CONFIG_LIBCRC32C=m |
1482 | CONFIG_ZLIB_INFLATE=y | 1447 | CONFIG_ZLIB_INFLATE=y |
1483 | CONFIG_ZLIB_DEFLATE=m | 1448 | CONFIG_ZLIB_DEFLATE=m |
1484 | CONFIG_TEXTSEARCH=y | ||
1485 | CONFIG_TEXTSEARCH_KMP=m | ||
1486 | CONFIG_TEXTSEARCH_BM=m | ||
1487 | CONFIG_TEXTSEARCH_FSM=m | ||
1488 | 1449 | ||
1489 | # | 1450 | # |
1490 | # Instrumentation Support | 1451 | # Instrumentation Support |
@@ -1497,24 +1458,31 @@ CONFIG_OPROFILE=y | |||
1497 | # Kernel hacking | 1458 | # Kernel hacking |
1498 | # | 1459 | # |
1499 | # CONFIG_PRINTK_TIME is not set | 1460 | # CONFIG_PRINTK_TIME is not set |
1500 | CONFIG_DEBUG_KERNEL=y | ||
1501 | CONFIG_MAGIC_SYSRQ=y | 1461 | CONFIG_MAGIC_SYSRQ=y |
1462 | CONFIG_DEBUG_KERNEL=y | ||
1502 | CONFIG_LOG_BUF_SHIFT=17 | 1463 | CONFIG_LOG_BUF_SHIFT=17 |
1503 | CONFIG_DETECT_SOFTLOCKUP=y | 1464 | CONFIG_DETECT_SOFTLOCKUP=y |
1504 | # CONFIG_SCHEDSTATS is not set | 1465 | # CONFIG_SCHEDSTATS is not set |
1505 | # CONFIG_DEBUG_SLAB is not set | 1466 | # CONFIG_DEBUG_SLAB is not set |
1467 | CONFIG_DEBUG_MUTEXES=y | ||
1506 | # CONFIG_DEBUG_SPINLOCK is not set | 1468 | # CONFIG_DEBUG_SPINLOCK is not set |
1507 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1469 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1508 | # CONFIG_DEBUG_KOBJECT is not set | 1470 | # CONFIG_DEBUG_KOBJECT is not set |
1509 | # CONFIG_DEBUG_INFO is not set | 1471 | # CONFIG_DEBUG_INFO is not set |
1510 | CONFIG_DEBUG_FS=y | 1472 | CONFIG_DEBUG_FS=y |
1511 | # CONFIG_DEBUG_VM is not set | 1473 | # CONFIG_DEBUG_VM is not set |
1474 | CONFIG_FORCED_INLINING=y | ||
1512 | # CONFIG_RCU_TORTURE_TEST is not set | 1475 | # CONFIG_RCU_TORTURE_TEST is not set |
1513 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1476 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1514 | # CONFIG_DEBUG_STACK_USAGE is not set | 1477 | # CONFIG_DEBUG_STACK_USAGE is not set |
1515 | # CONFIG_DEBUGGER is not set | 1478 | # CONFIG_DEBUGGER is not set |
1516 | CONFIG_IRQSTACKS=y | 1479 | CONFIG_IRQSTACKS=y |
1517 | CONFIG_BOOTX_TEXT=y | 1480 | CONFIG_BOOTX_TEXT=y |
1481 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1482 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1483 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
1484 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1485 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1518 | 1486 | ||
1519 | # | 1487 | # |
1520 | # Security options | 1488 | # Security options |
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig index c775027947f9..1816a46742f6 100644 --- a/arch/powerpc/configs/iseries_defconfig +++ b/arch/powerpc/configs/iseries_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.15-rc5 | 3 | # Linux kernel version: 2.6.16-rc6 |
4 | # Tue Dec 20 15:59:32 2005 | 4 | # Wed Mar 15 16:19:52 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y | |||
16 | CONFIG_SYSVIPC_COMPAT=y | 16 | CONFIG_SYSVIPC_COMPAT=y |
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
19 | CONFIG_PPC_OF=y | ||
20 | # CONFIG_PPC_UDBG_16550 is not set | ||
21 | # CONFIG_GENERIC_TBSYNC is not set | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
19 | 23 | ||
20 | # | 24 | # |
21 | # Processor support | 25 | # Processor support |
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=32 | |||
33 | # Code maturity level options | 37 | # Code maturity level options |
34 | # | 38 | # |
35 | CONFIG_EXPERIMENTAL=y | 39 | CONFIG_EXPERIMENTAL=y |
36 | CONFIG_CLEAN_COMPILE=y | ||
37 | CONFIG_LOCK_KERNEL=y | 40 | CONFIG_LOCK_KERNEL=y |
38 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 41 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
39 | 42 | ||
@@ -49,8 +52,6 @@ CONFIG_POSIX_MQUEUE=y | |||
49 | CONFIG_SYSCTL=y | 52 | CONFIG_SYSCTL=y |
50 | CONFIG_AUDIT=y | 53 | CONFIG_AUDIT=y |
51 | CONFIG_AUDITSYSCALL=y | 54 | CONFIG_AUDITSYSCALL=y |
52 | CONFIG_HOTPLUG=y | ||
53 | CONFIG_KOBJECT_UEVENT=y | ||
54 | CONFIG_IKCONFIG=y | 55 | CONFIG_IKCONFIG=y |
55 | CONFIG_IKCONFIG_PROC=y | 56 | CONFIG_IKCONFIG_PROC=y |
56 | # CONFIG_CPUSETS is not set | 57 | # CONFIG_CPUSETS is not set |
@@ -60,8 +61,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
60 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
61 | # CONFIG_KALLSYMS_ALL is not set | 62 | # CONFIG_KALLSYMS_ALL is not set |
62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
64 | CONFIG_HOTPLUG=y | ||
63 | CONFIG_PRINTK=y | 65 | CONFIG_PRINTK=y |
64 | CONFIG_BUG=y | 66 | CONFIG_BUG=y |
67 | CONFIG_ELF_CORE=y | ||
65 | CONFIG_BASE_FULL=y | 68 | CONFIG_BASE_FULL=y |
66 | CONFIG_FUTEX=y | 69 | CONFIG_FUTEX=y |
67 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
@@ -70,8 +73,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
70 | CONFIG_CC_ALIGN_LABELS=0 | 73 | CONFIG_CC_ALIGN_LABELS=0 |
71 | CONFIG_CC_ALIGN_LOOPS=0 | 74 | CONFIG_CC_ALIGN_LOOPS=0 |
72 | CONFIG_CC_ALIGN_JUMPS=0 | 75 | CONFIG_CC_ALIGN_JUMPS=0 |
76 | CONFIG_SLAB=y | ||
73 | # CONFIG_TINY_SHMEM is not set | 77 | # CONFIG_TINY_SHMEM is not set |
74 | CONFIG_BASE_SMALL=0 | 78 | CONFIG_BASE_SMALL=0 |
79 | # CONFIG_SLOB is not set | ||
75 | 80 | ||
76 | # | 81 | # |
77 | # Loadable module support | 82 | # Loadable module support |
@@ -113,7 +118,6 @@ CONFIG_PPC_ISERIES=y | |||
113 | # CONFIG_MMIO_NVRAM is not set | 118 | # CONFIG_MMIO_NVRAM is not set |
114 | CONFIG_IBMVIO=y | 119 | CONFIG_IBMVIO=y |
115 | # CONFIG_PPC_MPC106 is not set | 120 | # CONFIG_PPC_MPC106 is not set |
116 | # CONFIG_GENERIC_TBSYNC is not set | ||
117 | # CONFIG_CPU_FREQ is not set | 121 | # CONFIG_CPU_FREQ is not set |
118 | # CONFIG_WANT_EARLY_SERIAL is not set | 122 | # CONFIG_WANT_EARLY_SERIAL is not set |
119 | 123 | ||
@@ -183,6 +187,7 @@ CONFIG_NET=y | |||
183 | # | 187 | # |
184 | # Networking options | 188 | # Networking options |
185 | # | 189 | # |
190 | # CONFIG_NETDEBUG is not set | ||
186 | CONFIG_PACKET=y | 191 | CONFIG_PACKET=y |
187 | # CONFIG_PACKET_MMAP is not set | 192 | # CONFIG_PACKET_MMAP is not set |
188 | CONFIG_UNIX=y | 193 | CONFIG_UNIX=y |
@@ -220,6 +225,28 @@ CONFIG_NETFILTER=y | |||
220 | # Core Netfilter Configuration | 225 | # Core Netfilter Configuration |
221 | # | 226 | # |
222 | # CONFIG_NETFILTER_NETLINK is not set | 227 | # CONFIG_NETFILTER_NETLINK is not set |
228 | CONFIG_NETFILTER_XTABLES=m | ||
229 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
230 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | ||
231 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
232 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
233 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | ||
234 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
235 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | ||
236 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | ||
237 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
238 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
239 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
240 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
241 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
242 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
243 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
244 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
245 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
246 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
247 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
248 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
249 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
223 | 250 | ||
224 | # | 251 | # |
225 | # IP: Netfilter Configuration | 252 | # IP: Netfilter Configuration |
@@ -237,39 +264,23 @@ CONFIG_IP_NF_AMANDA=m | |||
237 | # CONFIG_IP_NF_PPTP is not set | 264 | # CONFIG_IP_NF_PPTP is not set |
238 | CONFIG_IP_NF_QUEUE=m | 265 | CONFIG_IP_NF_QUEUE=m |
239 | CONFIG_IP_NF_IPTABLES=m | 266 | CONFIG_IP_NF_IPTABLES=m |
240 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
241 | CONFIG_IP_NF_MATCH_IPRANGE=m | 267 | CONFIG_IP_NF_MATCH_IPRANGE=m |
242 | CONFIG_IP_NF_MATCH_MAC=m | ||
243 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
244 | CONFIG_IP_NF_MATCH_MARK=m | ||
245 | CONFIG_IP_NF_MATCH_MULTIPORT=m | 268 | CONFIG_IP_NF_MATCH_MULTIPORT=m |
246 | CONFIG_IP_NF_MATCH_TOS=m | 269 | CONFIG_IP_NF_MATCH_TOS=m |
247 | CONFIG_IP_NF_MATCH_RECENT=m | 270 | CONFIG_IP_NF_MATCH_RECENT=m |
248 | CONFIG_IP_NF_MATCH_ECN=m | 271 | CONFIG_IP_NF_MATCH_ECN=m |
249 | CONFIG_IP_NF_MATCH_DSCP=m | 272 | CONFIG_IP_NF_MATCH_DSCP=m |
250 | CONFIG_IP_NF_MATCH_AH_ESP=m | 273 | CONFIG_IP_NF_MATCH_AH_ESP=m |
251 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
252 | CONFIG_IP_NF_MATCH_TTL=m | 274 | CONFIG_IP_NF_MATCH_TTL=m |
253 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
254 | CONFIG_IP_NF_MATCH_HELPER=m | ||
255 | CONFIG_IP_NF_MATCH_STATE=m | ||
256 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
257 | CONFIG_IP_NF_MATCH_OWNER=m | 275 | CONFIG_IP_NF_MATCH_OWNER=m |
258 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 276 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
259 | CONFIG_IP_NF_MATCH_REALM=m | ||
260 | CONFIG_IP_NF_MATCH_SCTP=m | ||
261 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
262 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
263 | CONFIG_IP_NF_MATCH_CONNMARK=m | ||
264 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
265 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 277 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
266 | CONFIG_IP_NF_MATCH_STRING=m | 278 | CONFIG_IP_NF_MATCH_POLICY=m |
267 | CONFIG_IP_NF_FILTER=m | 279 | CONFIG_IP_NF_FILTER=m |
268 | CONFIG_IP_NF_TARGET_REJECT=m | 280 | CONFIG_IP_NF_TARGET_REJECT=m |
269 | CONFIG_IP_NF_TARGET_LOG=m | 281 | CONFIG_IP_NF_TARGET_LOG=m |
270 | CONFIG_IP_NF_TARGET_ULOG=m | 282 | CONFIG_IP_NF_TARGET_ULOG=m |
271 | CONFIG_IP_NF_TARGET_TCPMSS=m | 283 | CONFIG_IP_NF_TARGET_TCPMSS=m |
272 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
273 | CONFIG_IP_NF_NAT=m | 284 | CONFIG_IP_NF_NAT=m |
274 | CONFIG_IP_NF_NAT_NEEDED=y | 285 | CONFIG_IP_NF_NAT_NEEDED=y |
275 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 286 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -285,13 +296,9 @@ CONFIG_IP_NF_MANGLE=m | |||
285 | CONFIG_IP_NF_TARGET_TOS=m | 296 | CONFIG_IP_NF_TARGET_TOS=m |
286 | CONFIG_IP_NF_TARGET_ECN=m | 297 | CONFIG_IP_NF_TARGET_ECN=m |
287 | CONFIG_IP_NF_TARGET_DSCP=m | 298 | CONFIG_IP_NF_TARGET_DSCP=m |
288 | CONFIG_IP_NF_TARGET_MARK=m | ||
289 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
290 | CONFIG_IP_NF_TARGET_TTL=m | 299 | CONFIG_IP_NF_TARGET_TTL=m |
291 | CONFIG_IP_NF_TARGET_CONNMARK=m | ||
292 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 300 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
293 | CONFIG_IP_NF_RAW=m | 301 | CONFIG_IP_NF_RAW=m |
294 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
295 | CONFIG_IP_NF_ARPTABLES=m | 302 | CONFIG_IP_NF_ARPTABLES=m |
296 | CONFIG_IP_NF_ARPFILTER=m | 303 | CONFIG_IP_NF_ARPFILTER=m |
297 | CONFIG_IP_NF_ARP_MANGLE=m | 304 | CONFIG_IP_NF_ARP_MANGLE=m |
@@ -305,6 +312,11 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
305 | # SCTP Configuration (EXPERIMENTAL) | 312 | # SCTP Configuration (EXPERIMENTAL) |
306 | # | 313 | # |
307 | # CONFIG_IP_SCTP is not set | 314 | # CONFIG_IP_SCTP is not set |
315 | |||
316 | # | ||
317 | # TIPC Configuration (EXPERIMENTAL) | ||
318 | # | ||
319 | # CONFIG_TIPC is not set | ||
308 | # CONFIG_ATM is not set | 320 | # CONFIG_ATM is not set |
309 | # CONFIG_BRIDGE is not set | 321 | # CONFIG_BRIDGE is not set |
310 | # CONFIG_VLAN_8021Q is not set | 322 | # CONFIG_VLAN_8021Q is not set |
@@ -451,13 +463,7 @@ CONFIG_SCSI_IBMVSCSI=m | |||
451 | # CONFIG_SCSI_IPR is not set | 463 | # CONFIG_SCSI_IPR is not set |
452 | # CONFIG_SCSI_QLOGIC_FC is not set | 464 | # CONFIG_SCSI_QLOGIC_FC is not set |
453 | # CONFIG_SCSI_QLOGIC_1280 is not set | 465 | # CONFIG_SCSI_QLOGIC_1280 is not set |
454 | CONFIG_SCSI_QLA2XXX=y | 466 | # CONFIG_SCSI_QLA_FC is not set |
455 | # CONFIG_SCSI_QLA21XX is not set | ||
456 | # CONFIG_SCSI_QLA22XX is not set | ||
457 | # CONFIG_SCSI_QLA2300 is not set | ||
458 | # CONFIG_SCSI_QLA2322 is not set | ||
459 | # CONFIG_SCSI_QLA6312 is not set | ||
460 | # CONFIG_SCSI_QLA24XX is not set | ||
461 | # CONFIG_SCSI_LPFC is not set | 467 | # CONFIG_SCSI_LPFC is not set |
462 | # CONFIG_SCSI_DC395x is not set | 468 | # CONFIG_SCSI_DC395x is not set |
463 | # CONFIG_SCSI_DC390T is not set | 469 | # CONFIG_SCSI_DC390T is not set |
@@ -574,6 +580,7 @@ CONFIG_E1000=m | |||
574 | # CONFIG_R8169 is not set | 580 | # CONFIG_R8169 is not set |
575 | # CONFIG_SIS190 is not set | 581 | # CONFIG_SIS190 is not set |
576 | # CONFIG_SKGE is not set | 582 | # CONFIG_SKGE is not set |
583 | # CONFIG_SKY2 is not set | ||
577 | # CONFIG_SK98LIN is not set | 584 | # CONFIG_SK98LIN is not set |
578 | # CONFIG_VIA_VELOCITY is not set | 585 | # CONFIG_VIA_VELOCITY is not set |
579 | # CONFIG_TIGON3 is not set | 586 | # CONFIG_TIGON3 is not set |
@@ -723,6 +730,12 @@ CONFIG_MAX_RAW_DEVS=256 | |||
723 | # CONFIG_I2C is not set | 730 | # CONFIG_I2C is not set |
724 | 731 | ||
725 | # | 732 | # |
733 | # SPI support | ||
734 | # | ||
735 | # CONFIG_SPI is not set | ||
736 | # CONFIG_SPI_MASTER is not set | ||
737 | |||
738 | # | ||
726 | # Dallas's 1-wire bus | 739 | # Dallas's 1-wire bus |
727 | # | 740 | # |
728 | # CONFIG_W1 is not set | 741 | # CONFIG_W1 is not set |
@@ -788,7 +801,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
788 | # CONFIG_INFINIBAND is not set | 801 | # CONFIG_INFINIBAND is not set |
789 | 802 | ||
790 | # | 803 | # |
791 | # SN Devices | 804 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
792 | # | 805 | # |
793 | 806 | ||
794 | # | 807 | # |
@@ -825,6 +838,7 @@ CONFIG_XFS_EXPORT=y | |||
825 | CONFIG_XFS_SECURITY=y | 838 | CONFIG_XFS_SECURITY=y |
826 | CONFIG_XFS_POSIX_ACL=y | 839 | CONFIG_XFS_POSIX_ACL=y |
827 | # CONFIG_XFS_RT is not set | 840 | # CONFIG_XFS_RT is not set |
841 | # CONFIG_OCFS2_FS is not set | ||
828 | # CONFIG_MINIX_FS is not set | 842 | # CONFIG_MINIX_FS is not set |
829 | # CONFIG_ROMFS_FS is not set | 843 | # CONFIG_ROMFS_FS is not set |
830 | CONFIG_INOTIFY=y | 844 | CONFIG_INOTIFY=y |
@@ -865,6 +879,7 @@ CONFIG_TMPFS=y | |||
865 | # CONFIG_HUGETLB_PAGE is not set | 879 | # CONFIG_HUGETLB_PAGE is not set |
866 | CONFIG_RAMFS=y | 880 | CONFIG_RAMFS=y |
867 | # CONFIG_RELAYFS_FS is not set | 881 | # CONFIG_RELAYFS_FS is not set |
882 | # CONFIG_CONFIGFS_FS is not set | ||
868 | 883 | ||
869 | # | 884 | # |
870 | # Miscellaneous filesystems | 885 | # Miscellaneous filesystems |
@@ -993,31 +1008,36 @@ CONFIG_TEXTSEARCH_FSM=m | |||
993 | # | 1008 | # |
994 | # Instrumentation Support | 1009 | # Instrumentation Support |
995 | # | 1010 | # |
996 | CONFIG_PROFILING=y | ||
997 | CONFIG_OPROFILE=y | ||
998 | # CONFIG_KPROBES is not set | 1011 | # CONFIG_KPROBES is not set |
999 | 1012 | ||
1000 | # | 1013 | # |
1001 | # Kernel hacking | 1014 | # Kernel hacking |
1002 | # | 1015 | # |
1003 | # CONFIG_PRINTK_TIME is not set | 1016 | # CONFIG_PRINTK_TIME is not set |
1004 | CONFIG_DEBUG_KERNEL=y | ||
1005 | CONFIG_MAGIC_SYSRQ=y | 1017 | CONFIG_MAGIC_SYSRQ=y |
1018 | CONFIG_DEBUG_KERNEL=y | ||
1006 | CONFIG_LOG_BUF_SHIFT=17 | 1019 | CONFIG_LOG_BUF_SHIFT=17 |
1007 | CONFIG_DETECT_SOFTLOCKUP=y | 1020 | CONFIG_DETECT_SOFTLOCKUP=y |
1008 | # CONFIG_SCHEDSTATS is not set | 1021 | # CONFIG_SCHEDSTATS is not set |
1009 | # CONFIG_DEBUG_SLAB is not set | 1022 | # CONFIG_DEBUG_SLAB is not set |
1023 | # CONFIG_DEBUG_MUTEXES is not set | ||
1010 | # CONFIG_DEBUG_SPINLOCK is not set | 1024 | # CONFIG_DEBUG_SPINLOCK is not set |
1011 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1025 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1012 | # CONFIG_DEBUG_KOBJECT is not set | 1026 | # CONFIG_DEBUG_KOBJECT is not set |
1013 | # CONFIG_DEBUG_INFO is not set | 1027 | # CONFIG_DEBUG_INFO is not set |
1014 | CONFIG_DEBUG_FS=y | 1028 | CONFIG_DEBUG_FS=y |
1015 | # CONFIG_DEBUG_VM is not set | 1029 | # CONFIG_DEBUG_VM is not set |
1030 | # CONFIG_FORCED_INLINING is not set | ||
1016 | # CONFIG_RCU_TORTURE_TEST is not set | 1031 | # CONFIG_RCU_TORTURE_TEST is not set |
1017 | CONFIG_DEBUG_STACKOVERFLOW=y | 1032 | CONFIG_DEBUG_STACKOVERFLOW=y |
1018 | CONFIG_DEBUG_STACK_USAGE=y | 1033 | CONFIG_DEBUG_STACK_USAGE=y |
1019 | # CONFIG_DEBUGGER is not set | 1034 | # CONFIG_DEBUGGER is not set |
1020 | CONFIG_IRQSTACKS=y | 1035 | CONFIG_IRQSTACKS=y |
1036 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1037 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1038 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
1039 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1040 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1021 | 1041 | ||
1022 | # | 1042 | # |
1023 | # Security options | 1043 | # Security options |
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig index 68194c03f6d1..80a0db43aeb7 100644 --- a/arch/powerpc/configs/maple_defconfig +++ b/arch/powerpc/configs/maple_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.15-rc5 | 3 | # Linux kernel version: 2.6.16-rc6 |
4 | # Tue Dec 20 15:59:36 2005 | 4 | # Wed Mar 15 16:19:54 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y | |||
16 | CONFIG_SYSVIPC_COMPAT=y | 16 | CONFIG_SYSVIPC_COMPAT=y |
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
19 | CONFIG_PPC_OF=y | ||
20 | CONFIG_PPC_UDBG_16550=y | ||
21 | CONFIG_GENERIC_TBSYNC=y | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
19 | 23 | ||
20 | # | 24 | # |
21 | # Processor support | 25 | # Processor support |
@@ -32,7 +36,6 @@ CONFIG_NR_CPUS=2 | |||
32 | # Code maturity level options | 36 | # Code maturity level options |
33 | # | 37 | # |
34 | CONFIG_EXPERIMENTAL=y | 38 | CONFIG_EXPERIMENTAL=y |
35 | CONFIG_CLEAN_COMPILE=y | ||
36 | CONFIG_LOCK_KERNEL=y | 39 | CONFIG_LOCK_KERNEL=y |
37 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 40 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
38 | 41 | ||
@@ -47,8 +50,6 @@ CONFIG_POSIX_MQUEUE=y | |||
47 | # CONFIG_BSD_PROCESS_ACCT is not set | 50 | # CONFIG_BSD_PROCESS_ACCT is not set |
48 | CONFIG_SYSCTL=y | 51 | CONFIG_SYSCTL=y |
49 | # CONFIG_AUDIT is not set | 52 | # CONFIG_AUDIT is not set |
50 | # CONFIG_HOTPLUG is not set | ||
51 | CONFIG_KOBJECT_UEVENT=y | ||
52 | CONFIG_IKCONFIG=y | 53 | CONFIG_IKCONFIG=y |
53 | CONFIG_IKCONFIG_PROC=y | 54 | CONFIG_IKCONFIG_PROC=y |
54 | # CONFIG_CPUSETS is not set | 55 | # CONFIG_CPUSETS is not set |
@@ -58,8 +59,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
58 | CONFIG_KALLSYMS=y | 59 | CONFIG_KALLSYMS=y |
59 | CONFIG_KALLSYMS_ALL=y | 60 | CONFIG_KALLSYMS_ALL=y |
60 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
62 | CONFIG_HOTPLUG=y | ||
61 | CONFIG_PRINTK=y | 63 | CONFIG_PRINTK=y |
62 | CONFIG_BUG=y | 64 | CONFIG_BUG=y |
65 | CONFIG_ELF_CORE=y | ||
63 | CONFIG_BASE_FULL=y | 66 | CONFIG_BASE_FULL=y |
64 | CONFIG_FUTEX=y | 67 | CONFIG_FUTEX=y |
65 | CONFIG_EPOLL=y | 68 | CONFIG_EPOLL=y |
@@ -68,8 +71,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
68 | CONFIG_CC_ALIGN_LABELS=0 | 71 | CONFIG_CC_ALIGN_LABELS=0 |
69 | CONFIG_CC_ALIGN_LOOPS=0 | 72 | CONFIG_CC_ALIGN_LOOPS=0 |
70 | CONFIG_CC_ALIGN_JUMPS=0 | 73 | CONFIG_CC_ALIGN_JUMPS=0 |
74 | CONFIG_SLAB=y | ||
71 | # CONFIG_TINY_SHMEM is not set | 75 | # CONFIG_TINY_SHMEM is not set |
72 | CONFIG_BASE_SMALL=0 | 76 | CONFIG_BASE_SMALL=0 |
77 | # CONFIG_SLOB is not set | ||
73 | 78 | ||
74 | # | 79 | # |
75 | # Loadable module support | 80 | # Loadable module support |
@@ -111,14 +116,12 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
111 | # CONFIG_PPC_PMAC is not set | 116 | # CONFIG_PPC_PMAC is not set |
112 | CONFIG_PPC_MAPLE=y | 117 | CONFIG_PPC_MAPLE=y |
113 | # CONFIG_PPC_CELL is not set | 118 | # CONFIG_PPC_CELL is not set |
114 | CONFIG_PPC_OF=y | ||
115 | CONFIG_U3_DART=y | 119 | CONFIG_U3_DART=y |
116 | CONFIG_MPIC=y | 120 | CONFIG_MPIC=y |
117 | # CONFIG_PPC_RTAS is not set | 121 | # CONFIG_PPC_RTAS is not set |
118 | # CONFIG_MMIO_NVRAM is not set | 122 | # CONFIG_MMIO_NVRAM is not set |
119 | CONFIG_MPIC_BROKEN_U3=y | 123 | CONFIG_MPIC_BROKEN_U3=y |
120 | # CONFIG_PPC_MPC106 is not set | 124 | # CONFIG_PPC_MPC106 is not set |
121 | CONFIG_GENERIC_TBSYNC=y | ||
122 | # CONFIG_CPU_FREQ is not set | 125 | # CONFIG_CPU_FREQ is not set |
123 | # CONFIG_WANT_EARLY_SERIAL is not set | 126 | # CONFIG_WANT_EARLY_SERIAL is not set |
124 | 127 | ||
@@ -138,6 +141,7 @@ CONFIG_BINFMT_ELF=y | |||
138 | CONFIG_FORCE_MAX_ZONEORDER=13 | 141 | CONFIG_FORCE_MAX_ZONEORDER=13 |
139 | CONFIG_IOMMU_VMERGE=y | 142 | CONFIG_IOMMU_VMERGE=y |
140 | CONFIG_KEXEC=y | 143 | CONFIG_KEXEC=y |
144 | # CONFIG_CRASH_DUMP is not set | ||
141 | CONFIG_IRQ_ALL_CPUS=y | 145 | CONFIG_IRQ_ALL_CPUS=y |
142 | # CONFIG_NUMA is not set | 146 | # CONFIG_NUMA is not set |
143 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 147 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
@@ -189,6 +193,7 @@ CONFIG_NET=y | |||
189 | # | 193 | # |
190 | # Networking options | 194 | # Networking options |
191 | # | 195 | # |
196 | # CONFIG_NETDEBUG is not set | ||
192 | CONFIG_PACKET=y | 197 | CONFIG_PACKET=y |
193 | CONFIG_PACKET_MMAP=y | 198 | CONFIG_PACKET_MMAP=y |
194 | CONFIG_UNIX=y | 199 | CONFIG_UNIX=y |
@@ -226,6 +231,11 @@ CONFIG_TCP_CONG_BIC=y | |||
226 | # SCTP Configuration (EXPERIMENTAL) | 231 | # SCTP Configuration (EXPERIMENTAL) |
227 | # | 232 | # |
228 | # CONFIG_IP_SCTP is not set | 233 | # CONFIG_IP_SCTP is not set |
234 | |||
235 | # | ||
236 | # TIPC Configuration (EXPERIMENTAL) | ||
237 | # | ||
238 | # CONFIG_TIPC is not set | ||
229 | # CONFIG_ATM is not set | 239 | # CONFIG_ATM is not set |
230 | # CONFIG_BRIDGE is not set | 240 | # CONFIG_BRIDGE is not set |
231 | # CONFIG_VLAN_8021Q is not set | 241 | # CONFIG_VLAN_8021Q is not set |
@@ -461,6 +471,7 @@ CONFIG_E1000=y | |||
461 | # CONFIG_R8169 is not set | 471 | # CONFIG_R8169 is not set |
462 | # CONFIG_SIS190 is not set | 472 | # CONFIG_SIS190 is not set |
463 | # CONFIG_SKGE is not set | 473 | # CONFIG_SKGE is not set |
474 | # CONFIG_SKY2 is not set | ||
464 | # CONFIG_SK98LIN is not set | 475 | # CONFIG_SK98LIN is not set |
465 | # CONFIG_VIA_VELOCITY is not set | 476 | # CONFIG_VIA_VELOCITY is not set |
466 | # CONFIG_TIGON3 is not set | 477 | # CONFIG_TIGON3 is not set |
@@ -553,6 +564,7 @@ CONFIG_HW_CONSOLE=y | |||
553 | CONFIG_SERIAL_8250=y | 564 | CONFIG_SERIAL_8250=y |
554 | CONFIG_SERIAL_8250_CONSOLE=y | 565 | CONFIG_SERIAL_8250_CONSOLE=y |
555 | CONFIG_SERIAL_8250_NR_UARTS=4 | 566 | CONFIG_SERIAL_8250_NR_UARTS=4 |
567 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
556 | # CONFIG_SERIAL_8250_EXTENDED is not set | 568 | # CONFIG_SERIAL_8250_EXTENDED is not set |
557 | 569 | ||
558 | # | 570 | # |
@@ -651,6 +663,12 @@ CONFIG_I2C_AMD8111=y | |||
651 | # CONFIG_I2C_DEBUG_CHIP is not set | 663 | # CONFIG_I2C_DEBUG_CHIP is not set |
652 | 664 | ||
653 | # | 665 | # |
666 | # SPI support | ||
667 | # | ||
668 | # CONFIG_SPI is not set | ||
669 | # CONFIG_SPI_MASTER is not set | ||
670 | |||
671 | # | ||
654 | # Dallas's 1-wire bus | 672 | # Dallas's 1-wire bus |
655 | # | 673 | # |
656 | # CONFIG_W1 is not set | 674 | # CONFIG_W1 is not set |
@@ -738,12 +756,14 @@ CONFIG_USB_UHCI_HCD=y | |||
738 | # may also be needed; see USB_STORAGE Help for more information | 756 | # may also be needed; see USB_STORAGE Help for more information |
739 | # | 757 | # |
740 | # CONFIG_USB_STORAGE is not set | 758 | # CONFIG_USB_STORAGE is not set |
759 | # CONFIG_USB_LIBUSUAL is not set | ||
741 | 760 | ||
742 | # | 761 | # |
743 | # USB Input Devices | 762 | # USB Input Devices |
744 | # | 763 | # |
745 | CONFIG_USB_HID=y | 764 | CONFIG_USB_HID=y |
746 | CONFIG_USB_HIDINPUT=y | 765 | CONFIG_USB_HIDINPUT=y |
766 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
747 | # CONFIG_HID_FF is not set | 767 | # CONFIG_HID_FF is not set |
748 | # CONFIG_USB_HIDDEV is not set | 768 | # CONFIG_USB_HIDDEV is not set |
749 | # CONFIG_USB_AIPTEK is not set | 769 | # CONFIG_USB_AIPTEK is not set |
@@ -757,6 +777,7 @@ CONFIG_USB_HIDINPUT=y | |||
757 | # CONFIG_USB_YEALINK is not set | 777 | # CONFIG_USB_YEALINK is not set |
758 | # CONFIG_USB_XPAD is not set | 778 | # CONFIG_USB_XPAD is not set |
759 | # CONFIG_USB_ATI_REMOTE is not set | 779 | # CONFIG_USB_ATI_REMOTE is not set |
780 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
760 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 781 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
761 | # CONFIG_USB_APPLETOUCH is not set | 782 | # CONFIG_USB_APPLETOUCH is not set |
762 | 783 | ||
@@ -797,6 +818,7 @@ CONFIG_USB_SERIAL_GENERIC=y | |||
797 | # CONFIG_USB_SERIAL_AIRPRIME is not set | 818 | # CONFIG_USB_SERIAL_AIRPRIME is not set |
798 | # CONFIG_USB_SERIAL_ANYDATA is not set | 819 | # CONFIG_USB_SERIAL_ANYDATA is not set |
799 | # CONFIG_USB_SERIAL_BELKIN is not set | 820 | # CONFIG_USB_SERIAL_BELKIN is not set |
821 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | ||
800 | # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set | 822 | # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set |
801 | # CONFIG_USB_SERIAL_CP2101 is not set | 823 | # CONFIG_USB_SERIAL_CP2101 is not set |
802 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 824 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
@@ -873,7 +895,7 @@ CONFIG_USB_EZUSB=y | |||
873 | # CONFIG_INFINIBAND is not set | 895 | # CONFIG_INFINIBAND is not set |
874 | 896 | ||
875 | # | 897 | # |
876 | # SN Devices | 898 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
877 | # | 899 | # |
878 | 900 | ||
879 | # | 901 | # |
@@ -891,6 +913,7 @@ CONFIG_JBD=y | |||
891 | # CONFIG_JFS_FS is not set | 913 | # CONFIG_JFS_FS is not set |
892 | CONFIG_FS_POSIX_ACL=y | 914 | CONFIG_FS_POSIX_ACL=y |
893 | # CONFIG_XFS_FS is not set | 915 | # CONFIG_XFS_FS is not set |
916 | # CONFIG_OCFS2_FS is not set | ||
894 | # CONFIG_MINIX_FS is not set | 917 | # CONFIG_MINIX_FS is not set |
895 | # CONFIG_ROMFS_FS is not set | 918 | # CONFIG_ROMFS_FS is not set |
896 | CONFIG_INOTIFY=y | 919 | CONFIG_INOTIFY=y |
@@ -927,6 +950,7 @@ CONFIG_HUGETLBFS=y | |||
927 | CONFIG_HUGETLB_PAGE=y | 950 | CONFIG_HUGETLB_PAGE=y |
928 | CONFIG_RAMFS=y | 951 | CONFIG_RAMFS=y |
929 | # CONFIG_RELAYFS_FS is not set | 952 | # CONFIG_RELAYFS_FS is not set |
953 | # CONFIG_CONFIGFS_FS is not set | ||
930 | 954 | ||
931 | # | 955 | # |
932 | # Miscellaneous filesystems | 956 | # Miscellaneous filesystems |
@@ -988,6 +1012,7 @@ CONFIG_MSDOS_PARTITION=y | |||
988 | # CONFIG_SGI_PARTITION is not set | 1012 | # CONFIG_SGI_PARTITION is not set |
989 | # CONFIG_ULTRIX_PARTITION is not set | 1013 | # CONFIG_ULTRIX_PARTITION is not set |
990 | # CONFIG_SUN_PARTITION is not set | 1014 | # CONFIG_SUN_PARTITION is not set |
1015 | # CONFIG_KARMA_PARTITION is not set | ||
991 | # CONFIG_EFI_PARTITION is not set | 1016 | # CONFIG_EFI_PARTITION is not set |
992 | 1017 | ||
993 | # | 1018 | # |
@@ -1053,18 +1078,20 @@ CONFIG_ZLIB_INFLATE=y | |||
1053 | # Kernel hacking | 1078 | # Kernel hacking |
1054 | # | 1079 | # |
1055 | # CONFIG_PRINTK_TIME is not set | 1080 | # CONFIG_PRINTK_TIME is not set |
1056 | CONFIG_DEBUG_KERNEL=y | ||
1057 | CONFIG_MAGIC_SYSRQ=y | 1081 | CONFIG_MAGIC_SYSRQ=y |
1082 | CONFIG_DEBUG_KERNEL=y | ||
1058 | CONFIG_LOG_BUF_SHIFT=17 | 1083 | CONFIG_LOG_BUF_SHIFT=17 |
1059 | CONFIG_DETECT_SOFTLOCKUP=y | 1084 | CONFIG_DETECT_SOFTLOCKUP=y |
1060 | # CONFIG_SCHEDSTATS is not set | 1085 | # CONFIG_SCHEDSTATS is not set |
1061 | CONFIG_DEBUG_SLAB=y | 1086 | CONFIG_DEBUG_SLAB=y |
1087 | # CONFIG_DEBUG_MUTEXES is not set | ||
1062 | # CONFIG_DEBUG_SPINLOCK is not set | 1088 | # CONFIG_DEBUG_SPINLOCK is not set |
1063 | CONFIG_DEBUG_SPINLOCK_SLEEP=y | 1089 | CONFIG_DEBUG_SPINLOCK_SLEEP=y |
1064 | # CONFIG_DEBUG_KOBJECT is not set | 1090 | # CONFIG_DEBUG_KOBJECT is not set |
1065 | # CONFIG_DEBUG_INFO is not set | 1091 | # CONFIG_DEBUG_INFO is not set |
1066 | CONFIG_DEBUG_FS=y | 1092 | CONFIG_DEBUG_FS=y |
1067 | # CONFIG_DEBUG_VM is not set | 1093 | # CONFIG_DEBUG_VM is not set |
1094 | # CONFIG_FORCED_INLINING is not set | ||
1068 | # CONFIG_RCU_TORTURE_TEST is not set | 1095 | # CONFIG_RCU_TORTURE_TEST is not set |
1069 | CONFIG_DEBUG_STACKOVERFLOW=y | 1096 | CONFIG_DEBUG_STACKOVERFLOW=y |
1070 | CONFIG_DEBUG_STACK_USAGE=y | 1097 | CONFIG_DEBUG_STACK_USAGE=y |
@@ -1073,6 +1100,11 @@ CONFIG_XMON=y | |||
1073 | CONFIG_XMON_DEFAULT=y | 1100 | CONFIG_XMON_DEFAULT=y |
1074 | # CONFIG_IRQSTACKS is not set | 1101 | # CONFIG_IRQSTACKS is not set |
1075 | CONFIG_BOOTX_TEXT=y | 1102 | CONFIG_BOOTX_TEXT=y |
1103 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1104 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1105 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
1106 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1107 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1076 | 1108 | ||
1077 | # | 1109 | # |
1078 | # Security options | 1110 | # Security options |
diff --git a/arch/powerpc/configs/mpc834x_sys_defconfig b/arch/powerpc/configs/mpc834x_sys_defconfig index 3bff761965c2..5078b0441d61 100644 --- a/arch/powerpc/configs/mpc834x_sys_defconfig +++ b/arch/powerpc/configs/mpc834x_sys_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.15-g461d4edf-dirty | 3 | # Linux kernel version: 2.6.16-rc6 |
4 | # Fri Jan 13 11:01:47 2006 | 4 | # Wed Mar 15 16:19:56 2006 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | CONFIG_PPC32=y | 7 | CONFIG_PPC32=y |
@@ -43,7 +43,6 @@ CONFIG_PPC_STD_MMU_32=y | |||
43 | # Code maturity level options | 43 | # Code maturity level options |
44 | # | 44 | # |
45 | CONFIG_EXPERIMENTAL=y | 45 | CONFIG_EXPERIMENTAL=y |
46 | CONFIG_CLEAN_COMPILE=y | ||
47 | CONFIG_BROKEN_ON_SMP=y | 46 | CONFIG_BROKEN_ON_SMP=y |
48 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 47 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
49 | 48 | ||
@@ -189,6 +188,7 @@ CONFIG_NET=y | |||
189 | # | 188 | # |
190 | # Networking options | 189 | # Networking options |
191 | # | 190 | # |
191 | # CONFIG_NETDEBUG is not set | ||
192 | CONFIG_PACKET=y | 192 | CONFIG_PACKET=y |
193 | # CONFIG_PACKET_MMAP is not set | 193 | # CONFIG_PACKET_MMAP is not set |
194 | CONFIG_UNIX=y | 194 | CONFIG_UNIX=y |
@@ -226,6 +226,11 @@ CONFIG_TCP_CONG_BIC=y | |||
226 | # SCTP Configuration (EXPERIMENTAL) | 226 | # SCTP Configuration (EXPERIMENTAL) |
227 | # | 227 | # |
228 | # CONFIG_IP_SCTP is not set | 228 | # CONFIG_IP_SCTP is not set |
229 | |||
230 | # | ||
231 | # TIPC Configuration (EXPERIMENTAL) | ||
232 | # | ||
233 | # CONFIG_TIPC is not set | ||
229 | # CONFIG_ATM is not set | 234 | # CONFIG_ATM is not set |
230 | # CONFIG_BRIDGE is not set | 235 | # CONFIG_BRIDGE is not set |
231 | # CONFIG_VLAN_8021Q is not set | 236 | # CONFIG_VLAN_8021Q is not set |
@@ -511,6 +516,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
511 | # | 516 | # |
512 | CONFIG_SERIAL_CORE=y | 517 | CONFIG_SERIAL_CORE=y |
513 | CONFIG_SERIAL_CORE_CONSOLE=y | 518 | CONFIG_SERIAL_CORE_CONSOLE=y |
519 | # CONFIG_SERIAL_JSM is not set | ||
514 | CONFIG_UNIX98_PTYS=y | 520 | CONFIG_UNIX98_PTYS=y |
515 | CONFIG_LEGACY_PTYS=y | 521 | CONFIG_LEGACY_PTYS=y |
516 | CONFIG_LEGACY_PTY_COUNT=256 | 522 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -615,6 +621,12 @@ CONFIG_I2C_MPC=y | |||
615 | # CONFIG_I2C_DEBUG_CHIP is not set | 621 | # CONFIG_I2C_DEBUG_CHIP is not set |
616 | 622 | ||
617 | # | 623 | # |
624 | # SPI support | ||
625 | # | ||
626 | # CONFIG_SPI is not set | ||
627 | # CONFIG_SPI_MASTER is not set | ||
628 | |||
629 | # | ||
618 | # Dallas's 1-wire bus | 630 | # Dallas's 1-wire bus |
619 | # | 631 | # |
620 | # CONFIG_W1 is not set | 632 | # CONFIG_W1 is not set |
@@ -632,6 +644,7 @@ CONFIG_HWMON=y | |||
632 | # CONFIG_SENSORS_ASB100 is not set | 644 | # CONFIG_SENSORS_ASB100 is not set |
633 | # CONFIG_SENSORS_ATXP1 is not set | 645 | # CONFIG_SENSORS_ATXP1 is not set |
634 | # CONFIG_SENSORS_DS1621 is not set | 646 | # CONFIG_SENSORS_DS1621 is not set |
647 | # CONFIG_SENSORS_F71805F is not set | ||
635 | # CONFIG_SENSORS_FSCHER is not set | 648 | # CONFIG_SENSORS_FSCHER is not set |
636 | # CONFIG_SENSORS_FSCPOS is not set | 649 | # CONFIG_SENSORS_FSCPOS is not set |
637 | # CONFIG_SENSORS_GL518SM is not set | 650 | # CONFIG_SENSORS_GL518SM is not set |
@@ -716,7 +729,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
716 | # CONFIG_INFINIBAND is not set | 729 | # CONFIG_INFINIBAND is not set |
717 | 730 | ||
718 | # | 731 | # |
719 | # SN Devices | 732 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
720 | # | 733 | # |
721 | 734 | ||
722 | # | 735 | # |
@@ -826,6 +839,7 @@ CONFIG_PARTITION_ADVANCED=y | |||
826 | # CONFIG_SGI_PARTITION is not set | 839 | # CONFIG_SGI_PARTITION is not set |
827 | # CONFIG_ULTRIX_PARTITION is not set | 840 | # CONFIG_ULTRIX_PARTITION is not set |
828 | # CONFIG_SUN_PARTITION is not set | 841 | # CONFIG_SUN_PARTITION is not set |
842 | # CONFIG_KARMA_PARTITION is not set | ||
829 | # CONFIG_EFI_PARTITION is not set | 843 | # CONFIG_EFI_PARTITION is not set |
830 | 844 | ||
831 | # | 845 | # |
@@ -899,13 +913,3 @@ CONFIG_CRYPTO_DES=y | |||
899 | # | 913 | # |
900 | # Hardware crypto devices | 914 | # Hardware crypto devices |
901 | # | 915 | # |
902 | |||
903 | # | ||
904 | # SEC2.x Options | ||
905 | # | ||
906 | CONFIG_MPC8349E_SEC2x=y | ||
907 | |||
908 | # | ||
909 | # SEC2.x Test Options | ||
910 | # | ||
911 | CONFIG_MPC8349E_SEC2xTEST=y | ||
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig index 2ace57d1e333..57a027971d67 100644 --- a/arch/powerpc/configs/pmac32_defconfig +++ b/arch/powerpc/configs/pmac32_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.15 | 3 | # Linux kernel version: 2.6.16-rc6 |
4 | # Sat Jan 14 16:26:08 2006 | 4 | # Wed Mar 15 16:21:32 2006 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | CONFIG_PPC32=y | 7 | CONFIG_PPC32=y |
@@ -17,8 +17,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
17 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 17 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
18 | CONFIG_PPC_OF=y | 18 | CONFIG_PPC_OF=y |
19 | # CONFIG_PPC_UDBG_16550 is not set | 19 | # CONFIG_PPC_UDBG_16550 is not set |
20 | # CONFIG_CRASH_DUMP is not set | ||
21 | # CONFIG_GENERIC_TBSYNC is not set | 20 | # CONFIG_GENERIC_TBSYNC is not set |
21 | # CONFIG_DEFAULT_UIMAGE is not set | ||
22 | 22 | ||
23 | # | 23 | # |
24 | # Processor support | 24 | # Processor support |
@@ -43,7 +43,6 @@ CONFIG_PPC_STD_MMU_32=y | |||
43 | # Code maturity level options | 43 | # Code maturity level options |
44 | # | 44 | # |
45 | CONFIG_EXPERIMENTAL=y | 45 | CONFIG_EXPERIMENTAL=y |
46 | CONFIG_CLEAN_COMPILE=y | ||
47 | CONFIG_BROKEN_ON_SMP=y | 46 | CONFIG_BROKEN_ON_SMP=y |
48 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 47 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
49 | 48 | ||
@@ -236,6 +235,7 @@ CONFIG_NET=y | |||
236 | # | 235 | # |
237 | # Networking options | 236 | # Networking options |
238 | # | 237 | # |
238 | # CONFIG_NETDEBUG is not set | ||
239 | CONFIG_PACKET=y | 239 | CONFIG_PACKET=y |
240 | # CONFIG_PACKET_MMAP is not set | 240 | # CONFIG_PACKET_MMAP is not set |
241 | CONFIG_UNIX=y | 241 | CONFIG_UNIX=y |
@@ -271,6 +271,25 @@ CONFIG_NETFILTER=y | |||
271 | # Core Netfilter Configuration | 271 | # Core Netfilter Configuration |
272 | # | 272 | # |
273 | # CONFIG_NETFILTER_NETLINK is not set | 273 | # CONFIG_NETFILTER_NETLINK is not set |
274 | CONFIG_NETFILTER_XTABLES=m | ||
275 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | ||
276 | CONFIG_NETFILTER_XT_TARGET_MARK=m | ||
277 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | ||
278 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | ||
279 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | ||
280 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | ||
281 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
282 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | ||
283 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | ||
284 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | ||
285 | CONFIG_NETFILTER_XT_MATCH_MAC=m | ||
286 | CONFIG_NETFILTER_XT_MATCH_MARK=m | ||
287 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | ||
288 | CONFIG_NETFILTER_XT_MATCH_REALM=m | ||
289 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | ||
290 | CONFIG_NETFILTER_XT_MATCH_STATE=m | ||
291 | CONFIG_NETFILTER_XT_MATCH_STRING=m | ||
292 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | ||
274 | 293 | ||
275 | # | 294 | # |
276 | # IP: Netfilter Configuration | 295 | # IP: Netfilter Configuration |
@@ -288,37 +307,22 @@ CONFIG_IP_NF_AMANDA=m | |||
288 | CONFIG_IP_NF_PPTP=m | 307 | CONFIG_IP_NF_PPTP=m |
289 | # CONFIG_IP_NF_QUEUE is not set | 308 | # CONFIG_IP_NF_QUEUE is not set |
290 | CONFIG_IP_NF_IPTABLES=m | 309 | CONFIG_IP_NF_IPTABLES=m |
291 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
292 | CONFIG_IP_NF_MATCH_IPRANGE=m | 310 | CONFIG_IP_NF_MATCH_IPRANGE=m |
293 | CONFIG_IP_NF_MATCH_MAC=m | ||
294 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
295 | CONFIG_IP_NF_MATCH_MARK=m | ||
296 | CONFIG_IP_NF_MATCH_MULTIPORT=m | 311 | CONFIG_IP_NF_MATCH_MULTIPORT=m |
297 | CONFIG_IP_NF_MATCH_TOS=m | 312 | CONFIG_IP_NF_MATCH_TOS=m |
298 | CONFIG_IP_NF_MATCH_RECENT=m | 313 | CONFIG_IP_NF_MATCH_RECENT=m |
299 | CONFIG_IP_NF_MATCH_ECN=m | 314 | CONFIG_IP_NF_MATCH_ECN=m |
300 | CONFIG_IP_NF_MATCH_DSCP=m | 315 | CONFIG_IP_NF_MATCH_DSCP=m |
301 | CONFIG_IP_NF_MATCH_AH_ESP=m | 316 | CONFIG_IP_NF_MATCH_AH_ESP=m |
302 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
303 | CONFIG_IP_NF_MATCH_TTL=m | 317 | CONFIG_IP_NF_MATCH_TTL=m |
304 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
305 | CONFIG_IP_NF_MATCH_HELPER=m | ||
306 | CONFIG_IP_NF_MATCH_STATE=m | ||
307 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
308 | CONFIG_IP_NF_MATCH_OWNER=m | 318 | CONFIG_IP_NF_MATCH_OWNER=m |
309 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | 319 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
310 | # CONFIG_IP_NF_MATCH_REALM is not set | 320 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
311 | # CONFIG_IP_NF_MATCH_SCTP is not set | ||
312 | CONFIG_IP_NF_MATCH_DCCP=m | ||
313 | # CONFIG_IP_NF_MATCH_COMMENT is not set | ||
314 | # CONFIG_IP_NF_MATCH_HASHLIMIT is not set | ||
315 | CONFIG_IP_NF_MATCH_STRING=m | ||
316 | CONFIG_IP_NF_FILTER=m | 321 | CONFIG_IP_NF_FILTER=m |
317 | CONFIG_IP_NF_TARGET_REJECT=m | 322 | CONFIG_IP_NF_TARGET_REJECT=m |
318 | # CONFIG_IP_NF_TARGET_LOG is not set | 323 | CONFIG_IP_NF_TARGET_LOG=m |
319 | CONFIG_IP_NF_TARGET_ULOG=m | 324 | CONFIG_IP_NF_TARGET_ULOG=m |
320 | CONFIG_IP_NF_TARGET_TCPMSS=m | 325 | CONFIG_IP_NF_TARGET_TCPMSS=m |
321 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
322 | CONFIG_IP_NF_NAT=m | 326 | CONFIG_IP_NF_NAT=m |
323 | CONFIG_IP_NF_NAT_NEEDED=y | 327 | CONFIG_IP_NF_NAT_NEEDED=y |
324 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 328 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -331,9 +335,12 @@ CONFIG_IP_NF_NAT_FTP=m | |||
331 | CONFIG_IP_NF_NAT_TFTP=m | 335 | CONFIG_IP_NF_NAT_TFTP=m |
332 | CONFIG_IP_NF_NAT_AMANDA=m | 336 | CONFIG_IP_NF_NAT_AMANDA=m |
333 | CONFIG_IP_NF_NAT_PPTP=m | 337 | CONFIG_IP_NF_NAT_PPTP=m |
334 | # CONFIG_IP_NF_MANGLE is not set | 338 | CONFIG_IP_NF_MANGLE=m |
339 | CONFIG_IP_NF_TARGET_TOS=m | ||
340 | CONFIG_IP_NF_TARGET_ECN=m | ||
341 | CONFIG_IP_NF_TARGET_DSCP=m | ||
342 | CONFIG_IP_NF_TARGET_TTL=m | ||
335 | CONFIG_IP_NF_RAW=m | 343 | CONFIG_IP_NF_RAW=m |
336 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
337 | CONFIG_IP_NF_ARPTABLES=m | 344 | CONFIG_IP_NF_ARPTABLES=m |
338 | CONFIG_IP_NF_ARPFILTER=m | 345 | CONFIG_IP_NF_ARPFILTER=m |
339 | CONFIG_IP_NF_ARP_MANGLE=m | 346 | CONFIG_IP_NF_ARP_MANGLE=m |
@@ -360,6 +367,11 @@ CONFIG_IP_DCCP_TFRC_LIB=m | |||
360 | # SCTP Configuration (EXPERIMENTAL) | 367 | # SCTP Configuration (EXPERIMENTAL) |
361 | # | 368 | # |
362 | # CONFIG_IP_SCTP is not set | 369 | # CONFIG_IP_SCTP is not set |
370 | |||
371 | # | ||
372 | # TIPC Configuration (EXPERIMENTAL) | ||
373 | # | ||
374 | # CONFIG_TIPC is not set | ||
363 | # CONFIG_ATM is not set | 375 | # CONFIG_ATM is not set |
364 | # CONFIG_BRIDGE is not set | 376 | # CONFIG_BRIDGE is not set |
365 | # CONFIG_VLAN_8021Q is not set | 377 | # CONFIG_VLAN_8021Q is not set |
@@ -377,6 +389,7 @@ CONFIG_IP_DCCP_TFRC_LIB=m | |||
377 | # QoS and/or fair queueing | 389 | # QoS and/or fair queueing |
378 | # | 390 | # |
379 | # CONFIG_NET_SCHED is not set | 391 | # CONFIG_NET_SCHED is not set |
392 | CONFIG_NET_CLS_ROUTE=y | ||
380 | 393 | ||
381 | # | 394 | # |
382 | # Network testing | 395 | # Network testing |
@@ -568,7 +581,6 @@ CONFIG_IDEDMA_PCI_AUTO=y | |||
568 | # CONFIG_BLK_DEV_NS87415 is not set | 581 | # CONFIG_BLK_DEV_NS87415 is not set |
569 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | 582 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set |
570 | CONFIG_BLK_DEV_PDC202XX_NEW=y | 583 | CONFIG_BLK_DEV_PDC202XX_NEW=y |
571 | # CONFIG_PDC202XX_FORCE is not set | ||
572 | # CONFIG_BLK_DEV_SVWKS is not set | 584 | # CONFIG_BLK_DEV_SVWKS is not set |
573 | # CONFIG_BLK_DEV_SIIMAGE is not set | 585 | # CONFIG_BLK_DEV_SIIMAGE is not set |
574 | # CONFIG_BLK_DEV_SLC90E66 is not set | 586 | # CONFIG_BLK_DEV_SLC90E66 is not set |
@@ -654,8 +666,7 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | |||
654 | # CONFIG_SCSI_IPR is not set | 666 | # CONFIG_SCSI_IPR is not set |
655 | # CONFIG_SCSI_QLOGIC_FC is not set | 667 | # CONFIG_SCSI_QLOGIC_FC is not set |
656 | # CONFIG_SCSI_QLOGIC_1280 is not set | 668 | # CONFIG_SCSI_QLOGIC_1280 is not set |
657 | CONFIG_SCSI_QLA2XXX=y | 669 | # CONFIG_SCSI_QLA_FC is not set |
658 | # CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set | ||
659 | # CONFIG_SCSI_LPFC is not set | 670 | # CONFIG_SCSI_LPFC is not set |
660 | # CONFIG_SCSI_DC395x is not set | 671 | # CONFIG_SCSI_DC395x is not set |
661 | # CONFIG_SCSI_DC390T is not set | 672 | # CONFIG_SCSI_DC390T is not set |
@@ -991,6 +1002,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
991 | # | 1002 | # |
992 | CONFIG_SERIAL_CORE=m | 1003 | CONFIG_SERIAL_CORE=m |
993 | CONFIG_SERIAL_PMACZILOG=m | 1004 | CONFIG_SERIAL_PMACZILOG=m |
1005 | # CONFIG_SERIAL_JSM is not set | ||
994 | CONFIG_UNIX98_PTYS=y | 1006 | CONFIG_UNIX98_PTYS=y |
995 | CONFIG_LEGACY_PTYS=y | 1007 | CONFIG_LEGACY_PTYS=y |
996 | CONFIG_LEGACY_PTY_COUNT=256 | 1008 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -1098,6 +1110,12 @@ CONFIG_I2C_POWERMAC=y | |||
1098 | # CONFIG_I2C_DEBUG_CHIP is not set | 1110 | # CONFIG_I2C_DEBUG_CHIP is not set |
1099 | 1111 | ||
1100 | # | 1112 | # |
1113 | # SPI support | ||
1114 | # | ||
1115 | # CONFIG_SPI is not set | ||
1116 | # CONFIG_SPI_MASTER is not set | ||
1117 | |||
1118 | # | ||
1101 | # Dallas's 1-wire bus | 1119 | # Dallas's 1-wire bus |
1102 | # | 1120 | # |
1103 | # CONFIG_W1 is not set | 1121 | # CONFIG_W1 is not set |
@@ -1348,6 +1366,7 @@ CONFIG_USB_PRINTER=m | |||
1348 | # | 1366 | # |
1349 | CONFIG_USB_HID=y | 1367 | CONFIG_USB_HID=y |
1350 | CONFIG_USB_HIDINPUT=y | 1368 | CONFIG_USB_HIDINPUT=y |
1369 | CONFIG_USB_HIDINPUT_POWERBOOK=y | ||
1351 | # CONFIG_HID_FF is not set | 1370 | # CONFIG_HID_FF is not set |
1352 | # CONFIG_USB_HIDDEV is not set | 1371 | # CONFIG_USB_HIDDEV is not set |
1353 | # CONFIG_USB_AIPTEK is not set | 1372 | # CONFIG_USB_AIPTEK is not set |
@@ -1488,7 +1507,7 @@ CONFIG_USB_EZUSB=y | |||
1488 | # CONFIG_INFINIBAND is not set | 1507 | # CONFIG_INFINIBAND is not set |
1489 | 1508 | ||
1490 | # | 1509 | # |
1491 | # SN Devices | 1510 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1492 | # | 1511 | # |
1493 | 1512 | ||
1494 | # | 1513 | # |
@@ -1609,6 +1628,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1609 | # CONFIG_SGI_PARTITION is not set | 1628 | # CONFIG_SGI_PARTITION is not set |
1610 | # CONFIG_ULTRIX_PARTITION is not set | 1629 | # CONFIG_ULTRIX_PARTITION is not set |
1611 | # CONFIG_SUN_PARTITION is not set | 1630 | # CONFIG_SUN_PARTITION is not set |
1631 | # CONFIG_KARMA_PARTITION is not set | ||
1612 | # CONFIG_EFI_PARTITION is not set | 1632 | # CONFIG_EFI_PARTITION is not set |
1613 | 1633 | ||
1614 | # | 1634 | # |
@@ -1692,6 +1712,7 @@ CONFIG_DETECT_SOFTLOCKUP=y | |||
1692 | # CONFIG_DEBUG_INFO is not set | 1712 | # CONFIG_DEBUG_INFO is not set |
1693 | # CONFIG_DEBUG_FS is not set | 1713 | # CONFIG_DEBUG_FS is not set |
1694 | # CONFIG_DEBUG_VM is not set | 1714 | # CONFIG_DEBUG_VM is not set |
1715 | # CONFIG_FORCED_INLINING is not set | ||
1695 | # CONFIG_RCU_TORTURE_TEST is not set | 1716 | # CONFIG_RCU_TORTURE_TEST is not set |
1696 | CONFIG_DEBUGGER=y | 1717 | CONFIG_DEBUGGER=y |
1697 | CONFIG_XMON=y | 1718 | CONFIG_XMON=y |
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig index 6f6c6bed1aa5..395e49847788 100644 --- a/arch/powerpc/configs/ppc64_defconfig +++ b/arch/powerpc/configs/ppc64_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.15-rc5 | 3 | # Linux kernel version: 2.6.16-rc2 |
4 | # Tue Dec 20 15:59:38 2005 | 4 | # Fri Feb 10 17:32:14 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y | |||
16 | CONFIG_SYSVIPC_COMPAT=y | 16 | CONFIG_SYSVIPC_COMPAT=y |
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
19 | CONFIG_PPC_OF=y | ||
20 | CONFIG_PPC_UDBG_16550=y | ||
21 | CONFIG_GENERIC_TBSYNC=y | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
19 | 23 | ||
20 | # | 24 | # |
21 | # Processor support | 25 | # Processor support |
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=32 | |||
33 | # Code maturity level options | 37 | # Code maturity level options |
34 | # | 38 | # |
35 | CONFIG_EXPERIMENTAL=y | 39 | CONFIG_EXPERIMENTAL=y |
36 | CONFIG_CLEAN_COMPILE=y | ||
37 | CONFIG_LOCK_KERNEL=y | 40 | CONFIG_LOCK_KERNEL=y |
38 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 41 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
39 | 42 | ||
@@ -48,8 +51,6 @@ CONFIG_POSIX_MQUEUE=y | |||
48 | # CONFIG_BSD_PROCESS_ACCT is not set | 51 | # CONFIG_BSD_PROCESS_ACCT is not set |
49 | CONFIG_SYSCTL=y | 52 | CONFIG_SYSCTL=y |
50 | # CONFIG_AUDIT is not set | 53 | # CONFIG_AUDIT is not set |
51 | CONFIG_HOTPLUG=y | ||
52 | CONFIG_KOBJECT_UEVENT=y | ||
53 | CONFIG_IKCONFIG=y | 54 | CONFIG_IKCONFIG=y |
54 | CONFIG_IKCONFIG_PROC=y | 55 | CONFIG_IKCONFIG_PROC=y |
55 | CONFIG_CPUSETS=y | 56 | CONFIG_CPUSETS=y |
@@ -59,8 +60,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
59 | CONFIG_KALLSYMS=y | 60 | CONFIG_KALLSYMS=y |
60 | CONFIG_KALLSYMS_ALL=y | 61 | CONFIG_KALLSYMS_ALL=y |
61 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
63 | CONFIG_HOTPLUG=y | ||
62 | CONFIG_PRINTK=y | 64 | CONFIG_PRINTK=y |
63 | CONFIG_BUG=y | 65 | CONFIG_BUG=y |
66 | CONFIG_ELF_CORE=y | ||
64 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
65 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
66 | CONFIG_EPOLL=y | 69 | CONFIG_EPOLL=y |
@@ -69,8 +72,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
69 | CONFIG_CC_ALIGN_LABELS=0 | 72 | CONFIG_CC_ALIGN_LABELS=0 |
70 | CONFIG_CC_ALIGN_LOOPS=0 | 73 | CONFIG_CC_ALIGN_LOOPS=0 |
71 | CONFIG_CC_ALIGN_JUMPS=0 | 74 | CONFIG_CC_ALIGN_JUMPS=0 |
75 | CONFIG_SLAB=y | ||
72 | # CONFIG_TINY_SHMEM is not set | 76 | # CONFIG_TINY_SHMEM is not set |
73 | CONFIG_BASE_SMALL=0 | 77 | CONFIG_BASE_SMALL=0 |
78 | # CONFIG_SLOB is not set | ||
74 | 79 | ||
75 | # | 80 | # |
76 | # Loadable module support | 81 | # Loadable module support |
@@ -113,7 +118,6 @@ CONFIG_PPC_PMAC=y | |||
113 | CONFIG_PPC_PMAC64=y | 118 | CONFIG_PPC_PMAC64=y |
114 | CONFIG_PPC_MAPLE=y | 119 | CONFIG_PPC_MAPLE=y |
115 | # CONFIG_PPC_CELL is not set | 120 | # CONFIG_PPC_CELL is not set |
116 | CONFIG_PPC_OF=y | ||
117 | CONFIG_XICS=y | 121 | CONFIG_XICS=y |
118 | CONFIG_U3_DART=y | 122 | CONFIG_U3_DART=y |
119 | CONFIG_MPIC=y | 123 | CONFIG_MPIC=y |
@@ -124,8 +128,8 @@ CONFIG_RTAS_FLASH=m | |||
124 | # CONFIG_MMIO_NVRAM is not set | 128 | # CONFIG_MMIO_NVRAM is not set |
125 | CONFIG_MPIC_BROKEN_U3=y | 129 | CONFIG_MPIC_BROKEN_U3=y |
126 | CONFIG_IBMVIO=y | 130 | CONFIG_IBMVIO=y |
131 | # CONFIG_IBMEBUS is not set | ||
127 | # CONFIG_PPC_MPC106 is not set | 132 | # CONFIG_PPC_MPC106 is not set |
128 | CONFIG_GENERIC_TBSYNC=y | ||
129 | CONFIG_CPU_FREQ=y | 133 | CONFIG_CPU_FREQ=y |
130 | CONFIG_CPU_FREQ_TABLE=y | 134 | CONFIG_CPU_FREQ_TABLE=y |
131 | # CONFIG_CPU_FREQ_DEBUG is not set | 135 | # CONFIG_CPU_FREQ_DEBUG is not set |
@@ -158,6 +162,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
158 | CONFIG_IOMMU_VMERGE=y | 162 | CONFIG_IOMMU_VMERGE=y |
159 | CONFIG_HOTPLUG_CPU=y | 163 | CONFIG_HOTPLUG_CPU=y |
160 | CONFIG_KEXEC=y | 164 | CONFIG_KEXEC=y |
165 | # CONFIG_CRASH_DUMP is not set | ||
161 | CONFIG_IRQ_ALL_CPUS=y | 166 | CONFIG_IRQ_ALL_CPUS=y |
162 | CONFIG_PPC_SPLPAR=y | 167 | CONFIG_PPC_SPLPAR=y |
163 | CONFIG_EEH=y | 168 | CONFIG_EEH=y |
@@ -178,6 +183,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y | |||
178 | CONFIG_SPARSEMEM_EXTREME=y | 183 | CONFIG_SPARSEMEM_EXTREME=y |
179 | # CONFIG_MEMORY_HOTPLUG is not set | 184 | # CONFIG_MEMORY_HOTPLUG is not set |
180 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 185 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
186 | CONFIG_MIGRATION=y | ||
181 | # CONFIG_PPC_64K_PAGES is not set | 187 | # CONFIG_PPC_64K_PAGES is not set |
182 | # CONFIG_SCHED_SMT is not set | 188 | # CONFIG_SCHED_SMT is not set |
183 | CONFIG_PROC_DEVICETREE=y | 189 | CONFIG_PROC_DEVICETREE=y |
@@ -221,6 +227,7 @@ CONFIG_NET=y | |||
221 | # | 227 | # |
222 | # Networking options | 228 | # Networking options |
223 | # | 229 | # |
230 | # CONFIG_NETDEBUG is not set | ||
224 | CONFIG_PACKET=y | 231 | CONFIG_PACKET=y |
225 | # CONFIG_PACKET_MMAP is not set | 232 | # CONFIG_PACKET_MMAP is not set |
226 | CONFIG_UNIX=y | 233 | CONFIG_UNIX=y |
@@ -260,6 +267,7 @@ CONFIG_NETFILTER=y | |||
260 | CONFIG_NETFILTER_NETLINK=y | 267 | CONFIG_NETFILTER_NETLINK=y |
261 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 268 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
262 | CONFIG_NETFILTER_NETLINK_LOG=m | 269 | CONFIG_NETFILTER_NETLINK_LOG=m |
270 | # CONFIG_NETFILTER_XTABLES is not set | ||
263 | 271 | ||
264 | # | 272 | # |
265 | # IP: Netfilter Configuration | 273 | # IP: Netfilter Configuration |
@@ -277,65 +285,6 @@ CONFIG_IP_NF_TFTP=m | |||
277 | CONFIG_IP_NF_AMANDA=m | 285 | CONFIG_IP_NF_AMANDA=m |
278 | # CONFIG_IP_NF_PPTP is not set | 286 | # CONFIG_IP_NF_PPTP is not set |
279 | CONFIG_IP_NF_QUEUE=m | 287 | CONFIG_IP_NF_QUEUE=m |
280 | CONFIG_IP_NF_IPTABLES=m | ||
281 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
282 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
283 | CONFIG_IP_NF_MATCH_MAC=m | ||
284 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
285 | CONFIG_IP_NF_MATCH_MARK=m | ||
286 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
287 | CONFIG_IP_NF_MATCH_TOS=m | ||
288 | CONFIG_IP_NF_MATCH_RECENT=m | ||
289 | CONFIG_IP_NF_MATCH_ECN=m | ||
290 | CONFIG_IP_NF_MATCH_DSCP=m | ||
291 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
292 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
293 | CONFIG_IP_NF_MATCH_TTL=m | ||
294 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
295 | CONFIG_IP_NF_MATCH_HELPER=m | ||
296 | CONFIG_IP_NF_MATCH_STATE=m | ||
297 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
298 | CONFIG_IP_NF_MATCH_OWNER=m | ||
299 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
300 | CONFIG_IP_NF_MATCH_REALM=m | ||
301 | CONFIG_IP_NF_MATCH_SCTP=m | ||
302 | CONFIG_IP_NF_MATCH_DCCP=m | ||
303 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
304 | CONFIG_IP_NF_MATCH_CONNMARK=m | ||
305 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
306 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
307 | CONFIG_IP_NF_MATCH_STRING=m | ||
308 | CONFIG_IP_NF_FILTER=m | ||
309 | CONFIG_IP_NF_TARGET_REJECT=m | ||
310 | CONFIG_IP_NF_TARGET_LOG=m | ||
311 | CONFIG_IP_NF_TARGET_ULOG=m | ||
312 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
313 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
314 | CONFIG_IP_NF_NAT=m | ||
315 | CONFIG_IP_NF_NAT_NEEDED=y | ||
316 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
317 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
318 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
319 | CONFIG_IP_NF_TARGET_SAME=m | ||
320 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
321 | CONFIG_IP_NF_NAT_IRC=m | ||
322 | CONFIG_IP_NF_NAT_FTP=m | ||
323 | CONFIG_IP_NF_NAT_TFTP=m | ||
324 | CONFIG_IP_NF_NAT_AMANDA=m | ||
325 | CONFIG_IP_NF_MANGLE=m | ||
326 | CONFIG_IP_NF_TARGET_TOS=m | ||
327 | CONFIG_IP_NF_TARGET_ECN=m | ||
328 | CONFIG_IP_NF_TARGET_DSCP=m | ||
329 | CONFIG_IP_NF_TARGET_MARK=m | ||
330 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
331 | CONFIG_IP_NF_TARGET_TTL=m | ||
332 | CONFIG_IP_NF_TARGET_CONNMARK=m | ||
333 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
334 | CONFIG_IP_NF_RAW=m | ||
335 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
336 | CONFIG_IP_NF_ARPTABLES=m | ||
337 | CONFIG_IP_NF_ARPFILTER=m | ||
338 | CONFIG_IP_NF_ARP_MANGLE=m | ||
339 | 288 | ||
340 | # | 289 | # |
341 | # DCCP Configuration (EXPERIMENTAL) | 290 | # DCCP Configuration (EXPERIMENTAL) |
@@ -346,6 +295,11 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
346 | # SCTP Configuration (EXPERIMENTAL) | 295 | # SCTP Configuration (EXPERIMENTAL) |
347 | # | 296 | # |
348 | # CONFIG_IP_SCTP is not set | 297 | # CONFIG_IP_SCTP is not set |
298 | |||
299 | # | ||
300 | # TIPC Configuration (EXPERIMENTAL) | ||
301 | # | ||
302 | # CONFIG_TIPC is not set | ||
349 | # CONFIG_ATM is not set | 303 | # CONFIG_ATM is not set |
350 | # CONFIG_BRIDGE is not set | 304 | # CONFIG_BRIDGE is not set |
351 | # CONFIG_VLAN_8021Q is not set | 305 | # CONFIG_VLAN_8021Q is not set |
@@ -364,7 +318,6 @@ CONFIG_LLC=y | |||
364 | # QoS and/or fair queueing | 318 | # QoS and/or fair queueing |
365 | # | 319 | # |
366 | # CONFIG_NET_SCHED is not set | 320 | # CONFIG_NET_SCHED is not set |
367 | CONFIG_NET_CLS_ROUTE=y | ||
368 | 321 | ||
369 | # | 322 | # |
370 | # Network testing | 323 | # Network testing |
@@ -454,7 +407,7 @@ CONFIG_IDEPCI_SHARE_IRQ=y | |||
454 | # CONFIG_BLK_DEV_OFFBOARD is not set | 407 | # CONFIG_BLK_DEV_OFFBOARD is not set |
455 | CONFIG_BLK_DEV_GENERIC=y | 408 | CONFIG_BLK_DEV_GENERIC=y |
456 | # CONFIG_BLK_DEV_OPTI621 is not set | 409 | # CONFIG_BLK_DEV_OPTI621 is not set |
457 | # CONFIG_BLK_DEV_SL82C105 is not set | 410 | CONFIG_BLK_DEV_SL82C105=y |
458 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 411 | CONFIG_BLK_DEV_IDEDMA_PCI=y |
459 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | 412 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set |
460 | CONFIG_IDEDMA_PCI_AUTO=y | 413 | CONFIG_IDEDMA_PCI_AUTO=y |
@@ -572,13 +525,7 @@ CONFIG_SCSI_IPR_TRACE=y | |||
572 | CONFIG_SCSI_IPR_DUMP=y | 525 | CONFIG_SCSI_IPR_DUMP=y |
573 | # CONFIG_SCSI_QLOGIC_FC is not set | 526 | # CONFIG_SCSI_QLOGIC_FC is not set |
574 | # CONFIG_SCSI_QLOGIC_1280 is not set | 527 | # CONFIG_SCSI_QLOGIC_1280 is not set |
575 | CONFIG_SCSI_QLA2XXX=y | 528 | # CONFIG_SCSI_QLA_FC is not set |
576 | CONFIG_SCSI_QLA21XX=m | ||
577 | CONFIG_SCSI_QLA22XX=m | ||
578 | CONFIG_SCSI_QLA2300=m | ||
579 | CONFIG_SCSI_QLA2322=m | ||
580 | CONFIG_SCSI_QLA6312=m | ||
581 | CONFIG_SCSI_QLA24XX=m | ||
582 | CONFIG_SCSI_LPFC=m | 529 | CONFIG_SCSI_LPFC=m |
583 | # CONFIG_SCSI_DC395x is not set | 530 | # CONFIG_SCSI_DC395x is not set |
584 | # CONFIG_SCSI_DC390T is not set | 531 | # CONFIG_SCSI_DC390T is not set |
@@ -642,8 +589,6 @@ CONFIG_IEEE1394_SBP2=m | |||
642 | CONFIG_IEEE1394_ETH1394=m | 589 | CONFIG_IEEE1394_ETH1394=m |
643 | CONFIG_IEEE1394_DV1394=m | 590 | CONFIG_IEEE1394_DV1394=m |
644 | CONFIG_IEEE1394_RAWIO=y | 591 | CONFIG_IEEE1394_RAWIO=y |
645 | CONFIG_IEEE1394_CMP=m | ||
646 | CONFIG_IEEE1394_AMDTP=m | ||
647 | 592 | ||
648 | # | 593 | # |
649 | # I2O device support | 594 | # I2O device support |
@@ -659,6 +604,7 @@ CONFIG_THERM_PM72=y | |||
659 | CONFIG_WINDFARM=y | 604 | CONFIG_WINDFARM=y |
660 | CONFIG_WINDFARM_PM81=y | 605 | CONFIG_WINDFARM_PM81=y |
661 | CONFIG_WINDFARM_PM91=y | 606 | CONFIG_WINDFARM_PM91=y |
607 | CONFIG_WINDFARM_PM112=y | ||
662 | 608 | ||
663 | # | 609 | # |
664 | # Network device support | 610 | # Network device support |
@@ -731,6 +677,7 @@ CONFIG_E1000=y | |||
731 | # CONFIG_R8169 is not set | 677 | # CONFIG_R8169 is not set |
732 | # CONFIG_SIS190 is not set | 678 | # CONFIG_SIS190 is not set |
733 | # CONFIG_SKGE is not set | 679 | # CONFIG_SKGE is not set |
680 | # CONFIG_SKY2 is not set | ||
734 | # CONFIG_SK98LIN is not set | 681 | # CONFIG_SK98LIN is not set |
735 | # CONFIG_VIA_VELOCITY is not set | 682 | # CONFIG_VIA_VELOCITY is not set |
736 | CONFIG_TIGON3=y | 683 | CONFIG_TIGON3=y |
@@ -853,6 +800,7 @@ CONFIG_HW_CONSOLE=y | |||
853 | CONFIG_SERIAL_8250=y | 800 | CONFIG_SERIAL_8250=y |
854 | CONFIG_SERIAL_8250_CONSOLE=y | 801 | CONFIG_SERIAL_8250_CONSOLE=y |
855 | CONFIG_SERIAL_8250_NR_UARTS=4 | 802 | CONFIG_SERIAL_8250_NR_UARTS=4 |
803 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
856 | # CONFIG_SERIAL_8250_EXTENDED is not set | 804 | # CONFIG_SERIAL_8250_EXTENDED is not set |
857 | 805 | ||
858 | # | 806 | # |
@@ -880,6 +828,7 @@ CONFIG_HVCS=m | |||
880 | # CONFIG_WATCHDOG is not set | 828 | # CONFIG_WATCHDOG is not set |
881 | # CONFIG_RTC is not set | 829 | # CONFIG_RTC is not set |
882 | CONFIG_GEN_RTC=y | 830 | CONFIG_GEN_RTC=y |
831 | # CONFIG_GEN_RTC_X is not set | ||
883 | # CONFIG_DTLK is not set | 832 | # CONFIG_DTLK is not set |
884 | # CONFIG_R3964 is not set | 833 | # CONFIG_R3964 is not set |
885 | # CONFIG_APPLICOM is not set | 834 | # CONFIG_APPLICOM is not set |
@@ -923,8 +872,7 @@ CONFIG_I2C_AMD8111=y | |||
923 | # CONFIG_I2C_I801 is not set | 872 | # CONFIG_I2C_I801 is not set |
924 | # CONFIG_I2C_I810 is not set | 873 | # CONFIG_I2C_I810 is not set |
925 | # CONFIG_I2C_PIIX4 is not set | 874 | # CONFIG_I2C_PIIX4 is not set |
926 | CONFIG_I2C_KEYWEST=y | 875 | CONFIG_I2C_POWERMAC=y |
927 | CONFIG_I2C_PMAC_SMU=y | ||
928 | # CONFIG_I2C_NFORCE2 is not set | 876 | # CONFIG_I2C_NFORCE2 is not set |
929 | # CONFIG_I2C_PARPORT_LIGHT is not set | 877 | # CONFIG_I2C_PARPORT_LIGHT is not set |
930 | # CONFIG_I2C_PROSAVAGE is not set | 878 | # CONFIG_I2C_PROSAVAGE is not set |
@@ -957,6 +905,12 @@ CONFIG_I2C_PMAC_SMU=y | |||
957 | # CONFIG_I2C_DEBUG_CHIP is not set | 905 | # CONFIG_I2C_DEBUG_CHIP is not set |
958 | 906 | ||
959 | # | 907 | # |
908 | # SPI support | ||
909 | # | ||
910 | # CONFIG_SPI is not set | ||
911 | # CONFIG_SPI_MASTER is not set | ||
912 | |||
913 | # | ||
960 | # Dallas's 1-wire bus | 914 | # Dallas's 1-wire bus |
961 | # | 915 | # |
962 | # CONFIG_W1 is not set | 916 | # CONFIG_W1 is not set |
@@ -1028,7 +982,6 @@ CONFIG_FB_RADEON_I2C=y | |||
1028 | # CONFIG_FB_KYRO is not set | 982 | # CONFIG_FB_KYRO is not set |
1029 | # CONFIG_FB_3DFX is not set | 983 | # CONFIG_FB_3DFX is not set |
1030 | # CONFIG_FB_VOODOO1 is not set | 984 | # CONFIG_FB_VOODOO1 is not set |
1031 | # CONFIG_FB_CYBLA is not set | ||
1032 | # CONFIG_FB_TRIDENT is not set | 985 | # CONFIG_FB_TRIDENT is not set |
1033 | # CONFIG_FB_VIRTUAL is not set | 986 | # CONFIG_FB_VIRTUAL is not set |
1034 | 987 | ||
@@ -1073,9 +1026,10 @@ CONFIG_SND_OSSEMUL=y | |||
1073 | CONFIG_SND_MIXER_OSS=m | 1026 | CONFIG_SND_MIXER_OSS=m |
1074 | CONFIG_SND_PCM_OSS=m | 1027 | CONFIG_SND_PCM_OSS=m |
1075 | CONFIG_SND_SEQUENCER_OSS=y | 1028 | CONFIG_SND_SEQUENCER_OSS=y |
1029 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
1030 | CONFIG_SND_SUPPORT_OLD_API=y | ||
1076 | # CONFIG_SND_VERBOSE_PRINTK is not set | 1031 | # CONFIG_SND_VERBOSE_PRINTK is not set |
1077 | # CONFIG_SND_DEBUG is not set | 1032 | # CONFIG_SND_DEBUG is not set |
1078 | CONFIG_SND_GENERIC_DRIVER=y | ||
1079 | 1033 | ||
1080 | # | 1034 | # |
1081 | # Generic devices | 1035 | # Generic devices |
@@ -1089,6 +1043,8 @@ CONFIG_SND_GENERIC_DRIVER=y | |||
1089 | # | 1043 | # |
1090 | # PCI devices | 1044 | # PCI devices |
1091 | # | 1045 | # |
1046 | # CONFIG_SND_AD1889 is not set | ||
1047 | # CONFIG_SND_ALS4000 is not set | ||
1092 | # CONFIG_SND_ALI5451 is not set | 1048 | # CONFIG_SND_ALI5451 is not set |
1093 | # CONFIG_SND_ATIIXP is not set | 1049 | # CONFIG_SND_ATIIXP is not set |
1094 | # CONFIG_SND_ATIIXP_MODEM is not set | 1050 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -1097,39 +1053,38 @@ CONFIG_SND_GENERIC_DRIVER=y | |||
1097 | # CONFIG_SND_AU8830 is not set | 1053 | # CONFIG_SND_AU8830 is not set |
1098 | # CONFIG_SND_AZT3328 is not set | 1054 | # CONFIG_SND_AZT3328 is not set |
1099 | # CONFIG_SND_BT87X is not set | 1055 | # CONFIG_SND_BT87X is not set |
1100 | # CONFIG_SND_CS46XX is not set | 1056 | # CONFIG_SND_CA0106 is not set |
1057 | # CONFIG_SND_CMIPCI is not set | ||
1101 | # CONFIG_SND_CS4281 is not set | 1058 | # CONFIG_SND_CS4281 is not set |
1059 | # CONFIG_SND_CS46XX is not set | ||
1102 | # CONFIG_SND_EMU10K1 is not set | 1060 | # CONFIG_SND_EMU10K1 is not set |
1103 | # CONFIG_SND_EMU10K1X is not set | 1061 | # CONFIG_SND_EMU10K1X is not set |
1104 | # CONFIG_SND_CA0106 is not set | ||
1105 | # CONFIG_SND_KORG1212 is not set | ||
1106 | # CONFIG_SND_MIXART is not set | ||
1107 | # CONFIG_SND_NM256 is not set | ||
1108 | # CONFIG_SND_RME32 is not set | ||
1109 | # CONFIG_SND_RME96 is not set | ||
1110 | # CONFIG_SND_RME9652 is not set | ||
1111 | # CONFIG_SND_HDSP is not set | ||
1112 | # CONFIG_SND_HDSPM is not set | ||
1113 | # CONFIG_SND_TRIDENT is not set | ||
1114 | # CONFIG_SND_YMFPCI is not set | ||
1115 | # CONFIG_SND_AD1889 is not set | ||
1116 | # CONFIG_SND_ALS4000 is not set | ||
1117 | # CONFIG_SND_CMIPCI is not set | ||
1118 | # CONFIG_SND_ENS1370 is not set | 1062 | # CONFIG_SND_ENS1370 is not set |
1119 | # CONFIG_SND_ENS1371 is not set | 1063 | # CONFIG_SND_ENS1371 is not set |
1120 | # CONFIG_SND_ES1938 is not set | 1064 | # CONFIG_SND_ES1938 is not set |
1121 | # CONFIG_SND_ES1968 is not set | 1065 | # CONFIG_SND_ES1968 is not set |
1122 | # CONFIG_SND_MAESTRO3 is not set | ||
1123 | # CONFIG_SND_FM801 is not set | 1066 | # CONFIG_SND_FM801 is not set |
1067 | # CONFIG_SND_HDA_INTEL is not set | ||
1068 | # CONFIG_SND_HDSP is not set | ||
1069 | # CONFIG_SND_HDSPM is not set | ||
1124 | # CONFIG_SND_ICE1712 is not set | 1070 | # CONFIG_SND_ICE1712 is not set |
1125 | # CONFIG_SND_ICE1724 is not set | 1071 | # CONFIG_SND_ICE1724 is not set |
1126 | # CONFIG_SND_INTEL8X0 is not set | 1072 | # CONFIG_SND_INTEL8X0 is not set |
1127 | # CONFIG_SND_INTEL8X0M is not set | 1073 | # CONFIG_SND_INTEL8X0M is not set |
1074 | # CONFIG_SND_KORG1212 is not set | ||
1075 | # CONFIG_SND_MAESTRO3 is not set | ||
1076 | # CONFIG_SND_MIXART is not set | ||
1077 | # CONFIG_SND_NM256 is not set | ||
1078 | # CONFIG_SND_PCXHR is not set | ||
1079 | # CONFIG_SND_RME32 is not set | ||
1080 | # CONFIG_SND_RME96 is not set | ||
1081 | # CONFIG_SND_RME9652 is not set | ||
1128 | # CONFIG_SND_SONICVIBES is not set | 1082 | # CONFIG_SND_SONICVIBES is not set |
1083 | # CONFIG_SND_TRIDENT is not set | ||
1129 | # CONFIG_SND_VIA82XX is not set | 1084 | # CONFIG_SND_VIA82XX is not set |
1130 | # CONFIG_SND_VIA82XX_MODEM is not set | 1085 | # CONFIG_SND_VIA82XX_MODEM is not set |
1131 | # CONFIG_SND_VX222 is not set | 1086 | # CONFIG_SND_VX222 is not set |
1132 | # CONFIG_SND_HDA_INTEL is not set | 1087 | # CONFIG_SND_YMFPCI is not set |
1133 | 1088 | ||
1134 | # | 1089 | # |
1135 | # ALSA PowerMac devices | 1090 | # ALSA PowerMac devices |
@@ -1201,13 +1156,16 @@ CONFIG_USB_STORAGE=m | |||
1201 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1156 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1202 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1157 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1203 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1158 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1159 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
1204 | # CONFIG_USB_STORAGE_ONETOUCH is not set | 1160 | # CONFIG_USB_STORAGE_ONETOUCH is not set |
1161 | # CONFIG_USB_LIBUSUAL is not set | ||
1205 | 1162 | ||
1206 | # | 1163 | # |
1207 | # USB Input Devices | 1164 | # USB Input Devices |
1208 | # | 1165 | # |
1209 | CONFIG_USB_HID=y | 1166 | CONFIG_USB_HID=y |
1210 | CONFIG_USB_HIDINPUT=y | 1167 | CONFIG_USB_HIDINPUT=y |
1168 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1211 | # CONFIG_HID_FF is not set | 1169 | # CONFIG_HID_FF is not set |
1212 | CONFIG_USB_HIDDEV=y | 1170 | CONFIG_USB_HIDDEV=y |
1213 | # CONFIG_USB_AIPTEK is not set | 1171 | # CONFIG_USB_AIPTEK is not set |
@@ -1221,6 +1179,7 @@ CONFIG_USB_HIDDEV=y | |||
1221 | # CONFIG_USB_YEALINK is not set | 1179 | # CONFIG_USB_YEALINK is not set |
1222 | # CONFIG_USB_XPAD is not set | 1180 | # CONFIG_USB_XPAD is not set |
1223 | # CONFIG_USB_ATI_REMOTE is not set | 1181 | # CONFIG_USB_ATI_REMOTE is not set |
1182 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1224 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1183 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1225 | # CONFIG_USB_APPLETOUCH is not set | 1184 | # CONFIG_USB_APPLETOUCH is not set |
1226 | 1185 | ||
@@ -1307,6 +1266,10 @@ CONFIG_INFINIBAND_IPOIB=m | |||
1307 | # | 1266 | # |
1308 | 1267 | ||
1309 | # | 1268 | # |
1269 | # EDAC - error detection and reporting (RAS) | ||
1270 | # | ||
1271 | |||
1272 | # | ||
1310 | # File systems | 1273 | # File systems |
1311 | # | 1274 | # |
1312 | CONFIG_EXT2_FS=y | 1275 | CONFIG_EXT2_FS=y |
@@ -1340,6 +1303,7 @@ CONFIG_XFS_EXPORT=y | |||
1340 | CONFIG_XFS_SECURITY=y | 1303 | CONFIG_XFS_SECURITY=y |
1341 | CONFIG_XFS_POSIX_ACL=y | 1304 | CONFIG_XFS_POSIX_ACL=y |
1342 | # CONFIG_XFS_RT is not set | 1305 | # CONFIG_XFS_RT is not set |
1306 | # CONFIG_OCFS2_FS is not set | ||
1343 | # CONFIG_MINIX_FS is not set | 1307 | # CONFIG_MINIX_FS is not set |
1344 | # CONFIG_ROMFS_FS is not set | 1308 | # CONFIG_ROMFS_FS is not set |
1345 | CONFIG_INOTIFY=y | 1309 | CONFIG_INOTIFY=y |
@@ -1379,6 +1343,7 @@ CONFIG_HUGETLBFS=y | |||
1379 | CONFIG_HUGETLB_PAGE=y | 1343 | CONFIG_HUGETLB_PAGE=y |
1380 | CONFIG_RAMFS=y | 1344 | CONFIG_RAMFS=y |
1381 | # CONFIG_RELAYFS_FS is not set | 1345 | # CONFIG_RELAYFS_FS is not set |
1346 | # CONFIG_CONFIGFS_FS is not set | ||
1382 | 1347 | ||
1383 | # | 1348 | # |
1384 | # Miscellaneous filesystems | 1349 | # Miscellaneous filesystems |
@@ -1449,6 +1414,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1449 | # CONFIG_SGI_PARTITION is not set | 1414 | # CONFIG_SGI_PARTITION is not set |
1450 | # CONFIG_ULTRIX_PARTITION is not set | 1415 | # CONFIG_ULTRIX_PARTITION is not set |
1451 | # CONFIG_SUN_PARTITION is not set | 1416 | # CONFIG_SUN_PARTITION is not set |
1417 | # CONFIG_KARMA_PARTITION is not set | ||
1452 | # CONFIG_EFI_PARTITION is not set | 1418 | # CONFIG_EFI_PARTITION is not set |
1453 | 1419 | ||
1454 | # | 1420 | # |
@@ -1504,10 +1470,6 @@ CONFIG_CRC32=y | |||
1504 | CONFIG_LIBCRC32C=m | 1470 | CONFIG_LIBCRC32C=m |
1505 | CONFIG_ZLIB_INFLATE=y | 1471 | CONFIG_ZLIB_INFLATE=y |
1506 | CONFIG_ZLIB_DEFLATE=m | 1472 | CONFIG_ZLIB_DEFLATE=m |
1507 | CONFIG_TEXTSEARCH=y | ||
1508 | CONFIG_TEXTSEARCH_KMP=m | ||
1509 | CONFIG_TEXTSEARCH_BM=m | ||
1510 | CONFIG_TEXTSEARCH_FSM=m | ||
1511 | 1473 | ||
1512 | # | 1474 | # |
1513 | # Instrumentation Support | 1475 | # Instrumentation Support |
@@ -1520,18 +1482,20 @@ CONFIG_OPROFILE=y | |||
1520 | # Kernel hacking | 1482 | # Kernel hacking |
1521 | # | 1483 | # |
1522 | # CONFIG_PRINTK_TIME is not set | 1484 | # CONFIG_PRINTK_TIME is not set |
1523 | CONFIG_DEBUG_KERNEL=y | ||
1524 | CONFIG_MAGIC_SYSRQ=y | 1485 | CONFIG_MAGIC_SYSRQ=y |
1486 | CONFIG_DEBUG_KERNEL=y | ||
1525 | CONFIG_LOG_BUF_SHIFT=17 | 1487 | CONFIG_LOG_BUF_SHIFT=17 |
1526 | CONFIG_DETECT_SOFTLOCKUP=y | 1488 | CONFIG_DETECT_SOFTLOCKUP=y |
1527 | # CONFIG_SCHEDSTATS is not set | 1489 | # CONFIG_SCHEDSTATS is not set |
1528 | # CONFIG_DEBUG_SLAB is not set | 1490 | # CONFIG_DEBUG_SLAB is not set |
1491 | CONFIG_DEBUG_MUTEXES=y | ||
1529 | # CONFIG_DEBUG_SPINLOCK is not set | 1492 | # CONFIG_DEBUG_SPINLOCK is not set |
1530 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1493 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1531 | # CONFIG_DEBUG_KOBJECT is not set | 1494 | # CONFIG_DEBUG_KOBJECT is not set |
1532 | # CONFIG_DEBUG_INFO is not set | 1495 | # CONFIG_DEBUG_INFO is not set |
1533 | CONFIG_DEBUG_FS=y | 1496 | CONFIG_DEBUG_FS=y |
1534 | # CONFIG_DEBUG_VM is not set | 1497 | # CONFIG_DEBUG_VM is not set |
1498 | CONFIG_FORCED_INLINING=y | ||
1535 | # CONFIG_RCU_TORTURE_TEST is not set | 1499 | # CONFIG_RCU_TORTURE_TEST is not set |
1536 | CONFIG_DEBUG_STACKOVERFLOW=y | 1500 | CONFIG_DEBUG_STACKOVERFLOW=y |
1537 | CONFIG_DEBUG_STACK_USAGE=y | 1501 | CONFIG_DEBUG_STACK_USAGE=y |
@@ -1540,6 +1504,11 @@ CONFIG_XMON=y | |||
1540 | # CONFIG_XMON_DEFAULT is not set | 1504 | # CONFIG_XMON_DEFAULT is not set |
1541 | CONFIG_IRQSTACKS=y | 1505 | CONFIG_IRQSTACKS=y |
1542 | CONFIG_BOOTX_TEXT=y | 1506 | CONFIG_BOOTX_TEXT=y |
1507 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1508 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1509 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
1510 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1511 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1543 | 1512 | ||
1544 | # | 1513 | # |
1545 | # Security options | 1514 | # Security options |
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig index aa9893a1f6e8..daaf038a1faa 100644 --- a/arch/powerpc/configs/pseries_defconfig +++ b/arch/powerpc/configs/pseries_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.15-rc5 | 3 | # Linux kernel version: 2.6.16-rc2 |
4 | # Tue Dec 20 15:59:40 2005 | 4 | # Fri Feb 10 17:33:32 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -16,6 +16,10 @@ CONFIG_COMPAT=y | |||
16 | CONFIG_SYSVIPC_COMPAT=y | 16 | CONFIG_SYSVIPC_COMPAT=y |
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
19 | CONFIG_PPC_OF=y | ||
20 | CONFIG_PPC_UDBG_16550=y | ||
21 | # CONFIG_GENERIC_TBSYNC is not set | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
19 | 23 | ||
20 | # | 24 | # |
21 | # Processor support | 25 | # Processor support |
@@ -33,7 +37,6 @@ CONFIG_NR_CPUS=128 | |||
33 | # Code maturity level options | 37 | # Code maturity level options |
34 | # | 38 | # |
35 | CONFIG_EXPERIMENTAL=y | 39 | CONFIG_EXPERIMENTAL=y |
36 | CONFIG_CLEAN_COMPILE=y | ||
37 | CONFIG_LOCK_KERNEL=y | 40 | CONFIG_LOCK_KERNEL=y |
38 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 41 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
39 | 42 | ||
@@ -49,8 +52,6 @@ CONFIG_POSIX_MQUEUE=y | |||
49 | CONFIG_SYSCTL=y | 52 | CONFIG_SYSCTL=y |
50 | CONFIG_AUDIT=y | 53 | CONFIG_AUDIT=y |
51 | CONFIG_AUDITSYSCALL=y | 54 | CONFIG_AUDITSYSCALL=y |
52 | CONFIG_HOTPLUG=y | ||
53 | CONFIG_KOBJECT_UEVENT=y | ||
54 | CONFIG_IKCONFIG=y | 55 | CONFIG_IKCONFIG=y |
55 | CONFIG_IKCONFIG_PROC=y | 56 | CONFIG_IKCONFIG_PROC=y |
56 | CONFIG_CPUSETS=y | 57 | CONFIG_CPUSETS=y |
@@ -60,8 +61,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
60 | CONFIG_KALLSYMS=y | 61 | CONFIG_KALLSYMS=y |
61 | CONFIG_KALLSYMS_ALL=y | 62 | CONFIG_KALLSYMS_ALL=y |
62 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 63 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
64 | CONFIG_HOTPLUG=y | ||
63 | CONFIG_PRINTK=y | 65 | CONFIG_PRINTK=y |
64 | CONFIG_BUG=y | 66 | CONFIG_BUG=y |
67 | CONFIG_ELF_CORE=y | ||
65 | CONFIG_BASE_FULL=y | 68 | CONFIG_BASE_FULL=y |
66 | CONFIG_FUTEX=y | 69 | CONFIG_FUTEX=y |
67 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
@@ -70,8 +73,10 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
70 | CONFIG_CC_ALIGN_LABELS=0 | 73 | CONFIG_CC_ALIGN_LABELS=0 |
71 | CONFIG_CC_ALIGN_LOOPS=0 | 74 | CONFIG_CC_ALIGN_LOOPS=0 |
72 | CONFIG_CC_ALIGN_JUMPS=0 | 75 | CONFIG_CC_ALIGN_JUMPS=0 |
76 | CONFIG_SLAB=y | ||
73 | # CONFIG_TINY_SHMEM is not set | 77 | # CONFIG_TINY_SHMEM is not set |
74 | CONFIG_BASE_SMALL=0 | 78 | CONFIG_BASE_SMALL=0 |
79 | # CONFIG_SLOB is not set | ||
75 | 80 | ||
76 | # | 81 | # |
77 | # Loadable module support | 82 | # Loadable module support |
@@ -113,7 +118,6 @@ CONFIG_PPC_PSERIES=y | |||
113 | # CONFIG_PPC_PMAC is not set | 118 | # CONFIG_PPC_PMAC is not set |
114 | # CONFIG_PPC_MAPLE is not set | 119 | # CONFIG_PPC_MAPLE is not set |
115 | # CONFIG_PPC_CELL is not set | 120 | # CONFIG_PPC_CELL is not set |
116 | CONFIG_PPC_OF=y | ||
117 | CONFIG_XICS=y | 121 | CONFIG_XICS=y |
118 | # CONFIG_U3_DART is not set | 122 | # CONFIG_U3_DART is not set |
119 | CONFIG_MPIC=y | 123 | CONFIG_MPIC=y |
@@ -123,8 +127,8 @@ CONFIG_RTAS_PROC=y | |||
123 | CONFIG_RTAS_FLASH=m | 127 | CONFIG_RTAS_FLASH=m |
124 | # CONFIG_MMIO_NVRAM is not set | 128 | # CONFIG_MMIO_NVRAM is not set |
125 | CONFIG_IBMVIO=y | 129 | CONFIG_IBMVIO=y |
130 | # CONFIG_IBMEBUS is not set | ||
126 | # CONFIG_PPC_MPC106 is not set | 131 | # CONFIG_PPC_MPC106 is not set |
127 | # CONFIG_GENERIC_TBSYNC is not set | ||
128 | # CONFIG_CPU_FREQ is not set | 132 | # CONFIG_CPU_FREQ is not set |
129 | # CONFIG_WANT_EARLY_SERIAL is not set | 133 | # CONFIG_WANT_EARLY_SERIAL is not set |
130 | 134 | ||
@@ -145,6 +149,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13 | |||
145 | CONFIG_IOMMU_VMERGE=y | 149 | CONFIG_IOMMU_VMERGE=y |
146 | CONFIG_HOTPLUG_CPU=y | 150 | CONFIG_HOTPLUG_CPU=y |
147 | CONFIG_KEXEC=y | 151 | CONFIG_KEXEC=y |
152 | # CONFIG_CRASH_DUMP is not set | ||
148 | CONFIG_IRQ_ALL_CPUS=y | 153 | CONFIG_IRQ_ALL_CPUS=y |
149 | CONFIG_PPC_SPLPAR=y | 154 | CONFIG_PPC_SPLPAR=y |
150 | CONFIG_EEH=y | 155 | CONFIG_EEH=y |
@@ -165,6 +170,7 @@ CONFIG_HAVE_MEMORY_PRESENT=y | |||
165 | CONFIG_SPARSEMEM_EXTREME=y | 170 | CONFIG_SPARSEMEM_EXTREME=y |
166 | # CONFIG_MEMORY_HOTPLUG is not set | 171 | # CONFIG_MEMORY_HOTPLUG is not set |
167 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 172 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
173 | CONFIG_MIGRATION=y | ||
168 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | 174 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y |
169 | # CONFIG_PPC_64K_PAGES is not set | 175 | # CONFIG_PPC_64K_PAGES is not set |
170 | CONFIG_SCHED_SMT=y | 176 | CONFIG_SCHED_SMT=y |
@@ -209,6 +215,7 @@ CONFIG_NET=y | |||
209 | # | 215 | # |
210 | # Networking options | 216 | # Networking options |
211 | # | 217 | # |
218 | # CONFIG_NETDEBUG is not set | ||
212 | CONFIG_PACKET=y | 219 | CONFIG_PACKET=y |
213 | # CONFIG_PACKET_MMAP is not set | 220 | # CONFIG_PACKET_MMAP is not set |
214 | CONFIG_UNIX=y | 221 | CONFIG_UNIX=y |
@@ -248,6 +255,7 @@ CONFIG_NETFILTER=y | |||
248 | CONFIG_NETFILTER_NETLINK=y | 255 | CONFIG_NETFILTER_NETLINK=y |
249 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 256 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
250 | CONFIG_NETFILTER_NETLINK_LOG=m | 257 | CONFIG_NETFILTER_NETLINK_LOG=m |
258 | # CONFIG_NETFILTER_XTABLES is not set | ||
251 | 259 | ||
252 | # | 260 | # |
253 | # IP: Netfilter Configuration | 261 | # IP: Netfilter Configuration |
@@ -265,65 +273,6 @@ CONFIG_IP_NF_TFTP=m | |||
265 | CONFIG_IP_NF_AMANDA=m | 273 | CONFIG_IP_NF_AMANDA=m |
266 | # CONFIG_IP_NF_PPTP is not set | 274 | # CONFIG_IP_NF_PPTP is not set |
267 | CONFIG_IP_NF_QUEUE=m | 275 | CONFIG_IP_NF_QUEUE=m |
268 | CONFIG_IP_NF_IPTABLES=m | ||
269 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
270 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
271 | CONFIG_IP_NF_MATCH_MAC=m | ||
272 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
273 | CONFIG_IP_NF_MATCH_MARK=m | ||
274 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
275 | CONFIG_IP_NF_MATCH_TOS=m | ||
276 | CONFIG_IP_NF_MATCH_RECENT=m | ||
277 | CONFIG_IP_NF_MATCH_ECN=m | ||
278 | CONFIG_IP_NF_MATCH_DSCP=m | ||
279 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
280 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
281 | CONFIG_IP_NF_MATCH_TTL=m | ||
282 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
283 | CONFIG_IP_NF_MATCH_HELPER=m | ||
284 | CONFIG_IP_NF_MATCH_STATE=m | ||
285 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
286 | CONFIG_IP_NF_MATCH_OWNER=m | ||
287 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
288 | CONFIG_IP_NF_MATCH_REALM=m | ||
289 | CONFIG_IP_NF_MATCH_SCTP=m | ||
290 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
291 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
292 | CONFIG_IP_NF_MATCH_CONNMARK=m | ||
293 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
294 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
295 | CONFIG_IP_NF_MATCH_STRING=m | ||
296 | CONFIG_IP_NF_FILTER=m | ||
297 | CONFIG_IP_NF_TARGET_REJECT=m | ||
298 | CONFIG_IP_NF_TARGET_LOG=m | ||
299 | CONFIG_IP_NF_TARGET_ULOG=m | ||
300 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
301 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
302 | CONFIG_IP_NF_NAT=m | ||
303 | CONFIG_IP_NF_NAT_NEEDED=y | ||
304 | CONFIG_IP_NF_TARGET_MASQUERADE=m | ||
305 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
306 | CONFIG_IP_NF_TARGET_NETMAP=m | ||
307 | CONFIG_IP_NF_TARGET_SAME=m | ||
308 | CONFIG_IP_NF_NAT_SNMP_BASIC=m | ||
309 | CONFIG_IP_NF_NAT_IRC=m | ||
310 | CONFIG_IP_NF_NAT_FTP=m | ||
311 | CONFIG_IP_NF_NAT_TFTP=m | ||
312 | CONFIG_IP_NF_NAT_AMANDA=m | ||
313 | CONFIG_IP_NF_MANGLE=m | ||
314 | CONFIG_IP_NF_TARGET_TOS=m | ||
315 | CONFIG_IP_NF_TARGET_ECN=m | ||
316 | CONFIG_IP_NF_TARGET_DSCP=m | ||
317 | CONFIG_IP_NF_TARGET_MARK=m | ||
318 | CONFIG_IP_NF_TARGET_CLASSIFY=m | ||
319 | CONFIG_IP_NF_TARGET_TTL=m | ||
320 | CONFIG_IP_NF_TARGET_CONNMARK=m | ||
321 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | ||
322 | CONFIG_IP_NF_RAW=m | ||
323 | CONFIG_IP_NF_TARGET_NOTRACK=m | ||
324 | CONFIG_IP_NF_ARPTABLES=m | ||
325 | CONFIG_IP_NF_ARPFILTER=m | ||
326 | CONFIG_IP_NF_ARP_MANGLE=m | ||
327 | 276 | ||
328 | # | 277 | # |
329 | # DCCP Configuration (EXPERIMENTAL) | 278 | # DCCP Configuration (EXPERIMENTAL) |
@@ -334,6 +283,11 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
334 | # SCTP Configuration (EXPERIMENTAL) | 283 | # SCTP Configuration (EXPERIMENTAL) |
335 | # | 284 | # |
336 | # CONFIG_IP_SCTP is not set | 285 | # CONFIG_IP_SCTP is not set |
286 | |||
287 | # | ||
288 | # TIPC Configuration (EXPERIMENTAL) | ||
289 | # | ||
290 | # CONFIG_TIPC is not set | ||
337 | # CONFIG_ATM is not set | 291 | # CONFIG_ATM is not set |
338 | # CONFIG_BRIDGE is not set | 292 | # CONFIG_BRIDGE is not set |
339 | # CONFIG_VLAN_8021Q is not set | 293 | # CONFIG_VLAN_8021Q is not set |
@@ -352,7 +306,6 @@ CONFIG_LLC=y | |||
352 | # QoS and/or fair queueing | 306 | # QoS and/or fair queueing |
353 | # | 307 | # |
354 | # CONFIG_NET_SCHED is not set | 308 | # CONFIG_NET_SCHED is not set |
355 | CONFIG_NET_CLS_ROUTE=y | ||
356 | 309 | ||
357 | # | 310 | # |
358 | # Network testing | 311 | # Network testing |
@@ -550,13 +503,7 @@ CONFIG_SCSI_IPR_TRACE=y | |||
550 | CONFIG_SCSI_IPR_DUMP=y | 503 | CONFIG_SCSI_IPR_DUMP=y |
551 | # CONFIG_SCSI_QLOGIC_FC is not set | 504 | # CONFIG_SCSI_QLOGIC_FC is not set |
552 | # CONFIG_SCSI_QLOGIC_1280 is not set | 505 | # CONFIG_SCSI_QLOGIC_1280 is not set |
553 | CONFIG_SCSI_QLA2XXX=y | 506 | # CONFIG_SCSI_QLA_FC is not set |
554 | CONFIG_SCSI_QLA21XX=m | ||
555 | CONFIG_SCSI_QLA22XX=m | ||
556 | CONFIG_SCSI_QLA2300=m | ||
557 | CONFIG_SCSI_QLA2322=m | ||
558 | CONFIG_SCSI_QLA6312=m | ||
559 | CONFIG_SCSI_QLA24XX=m | ||
560 | CONFIG_SCSI_LPFC=m | 507 | CONFIG_SCSI_LPFC=m |
561 | # CONFIG_SCSI_DC395x is not set | 508 | # CONFIG_SCSI_DC395x is not set |
562 | # CONFIG_SCSI_DC390T is not set | 509 | # CONFIG_SCSI_DC390T is not set |
@@ -678,6 +625,7 @@ CONFIG_E1000=y | |||
678 | # CONFIG_R8169 is not set | 625 | # CONFIG_R8169 is not set |
679 | # CONFIG_SIS190 is not set | 626 | # CONFIG_SIS190 is not set |
680 | # CONFIG_SKGE is not set | 627 | # CONFIG_SKGE is not set |
628 | # CONFIG_SKY2 is not set | ||
681 | # CONFIG_SK98LIN is not set | 629 | # CONFIG_SK98LIN is not set |
682 | # CONFIG_VIA_VELOCITY is not set | 630 | # CONFIG_VIA_VELOCITY is not set |
683 | CONFIG_TIGON3=y | 631 | CONFIG_TIGON3=y |
@@ -803,6 +751,7 @@ CONFIG_HW_CONSOLE=y | |||
803 | CONFIG_SERIAL_8250=y | 751 | CONFIG_SERIAL_8250=y |
804 | CONFIG_SERIAL_8250_CONSOLE=y | 752 | CONFIG_SERIAL_8250_CONSOLE=y |
805 | CONFIG_SERIAL_8250_NR_UARTS=4 | 753 | CONFIG_SERIAL_8250_NR_UARTS=4 |
754 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
806 | # CONFIG_SERIAL_8250_EXTENDED is not set | 755 | # CONFIG_SERIAL_8250_EXTENDED is not set |
807 | 756 | ||
808 | # | 757 | # |
@@ -909,6 +858,12 @@ CONFIG_I2C_ALGOBIT=y | |||
909 | # CONFIG_I2C_DEBUG_CHIP is not set | 858 | # CONFIG_I2C_DEBUG_CHIP is not set |
910 | 859 | ||
911 | # | 860 | # |
861 | # SPI support | ||
862 | # | ||
863 | # CONFIG_SPI is not set | ||
864 | # CONFIG_SPI_MASTER is not set | ||
865 | |||
866 | # | ||
912 | # Dallas's 1-wire bus | 867 | # Dallas's 1-wire bus |
913 | # | 868 | # |
914 | # CONFIG_W1 is not set | 869 | # CONFIG_W1 is not set |
@@ -976,7 +931,6 @@ CONFIG_FB_RADEON_I2C=y | |||
976 | # CONFIG_FB_KYRO is not set | 931 | # CONFIG_FB_KYRO is not set |
977 | # CONFIG_FB_3DFX is not set | 932 | # CONFIG_FB_3DFX is not set |
978 | # CONFIG_FB_VOODOO1 is not set | 933 | # CONFIG_FB_VOODOO1 is not set |
979 | # CONFIG_FB_CYBLA is not set | ||
980 | # CONFIG_FB_TRIDENT is not set | 934 | # CONFIG_FB_TRIDENT is not set |
981 | # CONFIG_FB_VIRTUAL is not set | 935 | # CONFIG_FB_VIRTUAL is not set |
982 | 936 | ||
@@ -1061,12 +1015,15 @@ CONFIG_USB_STORAGE=y | |||
1061 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1015 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1062 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1016 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1063 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1017 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1018 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
1019 | # CONFIG_USB_LIBUSUAL is not set | ||
1064 | 1020 | ||
1065 | # | 1021 | # |
1066 | # USB Input Devices | 1022 | # USB Input Devices |
1067 | # | 1023 | # |
1068 | CONFIG_USB_HID=y | 1024 | CONFIG_USB_HID=y |
1069 | CONFIG_USB_HIDINPUT=y | 1025 | CONFIG_USB_HIDINPUT=y |
1026 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1070 | # CONFIG_HID_FF is not set | 1027 | # CONFIG_HID_FF is not set |
1071 | CONFIG_USB_HIDDEV=y | 1028 | CONFIG_USB_HIDDEV=y |
1072 | # CONFIG_USB_AIPTEK is not set | 1029 | # CONFIG_USB_AIPTEK is not set |
@@ -1080,6 +1037,7 @@ CONFIG_USB_HIDDEV=y | |||
1080 | # CONFIG_USB_YEALINK is not set | 1037 | # CONFIG_USB_YEALINK is not set |
1081 | # CONFIG_USB_XPAD is not set | 1038 | # CONFIG_USB_XPAD is not set |
1082 | # CONFIG_USB_ATI_REMOTE is not set | 1039 | # CONFIG_USB_ATI_REMOTE is not set |
1040 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1083 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1041 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1084 | # CONFIG_USB_APPLETOUCH is not set | 1042 | # CONFIG_USB_APPLETOUCH is not set |
1085 | 1043 | ||
@@ -1167,6 +1125,10 @@ CONFIG_INFINIBAND_IPOIB=m | |||
1167 | # | 1125 | # |
1168 | 1126 | ||
1169 | # | 1127 | # |
1128 | # EDAC - error detection and reporting (RAS) | ||
1129 | # | ||
1130 | |||
1131 | # | ||
1170 | # File systems | 1132 | # File systems |
1171 | # | 1133 | # |
1172 | CONFIG_EXT2_FS=y | 1134 | CONFIG_EXT2_FS=y |
@@ -1200,6 +1162,7 @@ CONFIG_XFS_EXPORT=y | |||
1200 | CONFIG_XFS_SECURITY=y | 1162 | CONFIG_XFS_SECURITY=y |
1201 | CONFIG_XFS_POSIX_ACL=y | 1163 | CONFIG_XFS_POSIX_ACL=y |
1202 | # CONFIG_XFS_RT is not set | 1164 | # CONFIG_XFS_RT is not set |
1165 | # CONFIG_OCFS2_FS is not set | ||
1203 | # CONFIG_MINIX_FS is not set | 1166 | # CONFIG_MINIX_FS is not set |
1204 | # CONFIG_ROMFS_FS is not set | 1167 | # CONFIG_ROMFS_FS is not set |
1205 | CONFIG_INOTIFY=y | 1168 | CONFIG_INOTIFY=y |
@@ -1240,6 +1203,7 @@ CONFIG_HUGETLBFS=y | |||
1240 | CONFIG_HUGETLB_PAGE=y | 1203 | CONFIG_HUGETLB_PAGE=y |
1241 | CONFIG_RAMFS=y | 1204 | CONFIG_RAMFS=y |
1242 | # CONFIG_RELAYFS_FS is not set | 1205 | # CONFIG_RELAYFS_FS is not set |
1206 | # CONFIG_CONFIGFS_FS is not set | ||
1243 | 1207 | ||
1244 | # | 1208 | # |
1245 | # Miscellaneous filesystems | 1209 | # Miscellaneous filesystems |
@@ -1351,10 +1315,6 @@ CONFIG_CRC32=y | |||
1351 | CONFIG_LIBCRC32C=m | 1315 | CONFIG_LIBCRC32C=m |
1352 | CONFIG_ZLIB_INFLATE=y | 1316 | CONFIG_ZLIB_INFLATE=y |
1353 | CONFIG_ZLIB_DEFLATE=m | 1317 | CONFIG_ZLIB_DEFLATE=m |
1354 | CONFIG_TEXTSEARCH=y | ||
1355 | CONFIG_TEXTSEARCH_KMP=m | ||
1356 | CONFIG_TEXTSEARCH_BM=m | ||
1357 | CONFIG_TEXTSEARCH_FSM=m | ||
1358 | 1318 | ||
1359 | # | 1319 | # |
1360 | # Instrumentation Support | 1320 | # Instrumentation Support |
@@ -1367,18 +1327,20 @@ CONFIG_OPROFILE=y | |||
1367 | # Kernel hacking | 1327 | # Kernel hacking |
1368 | # | 1328 | # |
1369 | # CONFIG_PRINTK_TIME is not set | 1329 | # CONFIG_PRINTK_TIME is not set |
1370 | CONFIG_DEBUG_KERNEL=y | ||
1371 | CONFIG_MAGIC_SYSRQ=y | 1330 | CONFIG_MAGIC_SYSRQ=y |
1331 | CONFIG_DEBUG_KERNEL=y | ||
1372 | CONFIG_LOG_BUF_SHIFT=17 | 1332 | CONFIG_LOG_BUF_SHIFT=17 |
1373 | CONFIG_DETECT_SOFTLOCKUP=y | 1333 | CONFIG_DETECT_SOFTLOCKUP=y |
1374 | # CONFIG_SCHEDSTATS is not set | 1334 | # CONFIG_SCHEDSTATS is not set |
1375 | # CONFIG_DEBUG_SLAB is not set | 1335 | # CONFIG_DEBUG_SLAB is not set |
1336 | CONFIG_DEBUG_MUTEXES=y | ||
1376 | # CONFIG_DEBUG_SPINLOCK is not set | 1337 | # CONFIG_DEBUG_SPINLOCK is not set |
1377 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1338 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1378 | # CONFIG_DEBUG_KOBJECT is not set | 1339 | # CONFIG_DEBUG_KOBJECT is not set |
1379 | # CONFIG_DEBUG_INFO is not set | 1340 | # CONFIG_DEBUG_INFO is not set |
1380 | CONFIG_DEBUG_FS=y | 1341 | CONFIG_DEBUG_FS=y |
1381 | # CONFIG_DEBUG_VM is not set | 1342 | # CONFIG_DEBUG_VM is not set |
1343 | CONFIG_FORCED_INLINING=y | ||
1382 | # CONFIG_RCU_TORTURE_TEST is not set | 1344 | # CONFIG_RCU_TORTURE_TEST is not set |
1383 | CONFIG_DEBUG_STACKOVERFLOW=y | 1345 | CONFIG_DEBUG_STACKOVERFLOW=y |
1384 | CONFIG_DEBUG_STACK_USAGE=y | 1346 | CONFIG_DEBUG_STACK_USAGE=y |
@@ -1387,6 +1349,11 @@ CONFIG_XMON=y | |||
1387 | CONFIG_XMON_DEFAULT=y | 1349 | CONFIG_XMON_DEFAULT=y |
1388 | CONFIG_IRQSTACKS=y | 1350 | CONFIG_IRQSTACKS=y |
1389 | # CONFIG_BOOTX_TEXT is not set | 1351 | # CONFIG_BOOTX_TEXT is not set |
1352 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1353 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1354 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
1355 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1356 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1390 | 1357 | ||
1391 | # | 1358 | # |
1392 | # Security options | 1359 | # Security options |
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index c287980b7e65..80e9fe2632b8 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -12,10 +12,10 @@ endif | |||
12 | 12 | ||
13 | obj-y := semaphore.o cputable.o ptrace.o syscalls.o \ | 13 | obj-y := semaphore.o cputable.o ptrace.o syscalls.o \ |
14 | irq.o align.o signal_32.o pmc.o vdso.o \ | 14 | irq.o align.o signal_32.o pmc.o vdso.o \ |
15 | init_task.o process.o | 15 | init_task.o process.o systbl.o |
16 | obj-y += vdso32/ | 16 | obj-y += vdso32/ |
17 | obj-$(CONFIG_PPC64) += setup_64.o binfmt_elf32.o sys_ppc32.o \ | 17 | obj-$(CONFIG_PPC64) += setup_64.o binfmt_elf32.o sys_ppc32.o \ |
18 | signal_64.o ptrace32.o systbl.o \ | 18 | signal_64.o ptrace32.o \ |
19 | paca.o cpu_setup_power4.o \ | 19 | paca.o cpu_setup_power4.o \ |
20 | firmware.o sysfs.o idle_64.o | 20 | firmware.o sysfs.o idle_64.o |
21 | obj-$(CONFIG_PPC64) += vdso64/ | 21 | obj-$(CONFIG_PPC64) += vdso64/ |
@@ -46,7 +46,7 @@ extra-$(CONFIG_8xx) := head_8xx.o | |||
46 | extra-y += vmlinux.lds | 46 | extra-y += vmlinux.lds |
47 | 47 | ||
48 | obj-y += time.o prom.o traps.o setup-common.o udbg.o | 48 | obj-y += time.o prom.o traps.o setup-common.o udbg.o |
49 | obj-$(CONFIG_PPC32) += entry_32.o setup_32.o misc_32.o systbl.o | 49 | obj-$(CONFIG_PPC32) += entry_32.o setup_32.o misc_32.o |
50 | obj-$(CONFIG_PPC64) += misc_64.o dma_64.o iommu.o | 50 | obj-$(CONFIG_PPC64) += misc_64.o dma_64.o iommu.o |
51 | obj-$(CONFIG_PPC_MULTIPLATFORM) += prom_init.o | 51 | obj-$(CONFIG_PPC_MULTIPLATFORM) += prom_init.o |
52 | obj-$(CONFIG_MODULES) += ppc_ksyms.o | 52 | obj-$(CONFIG_MODULES) += ppc_ksyms.o |
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index 840aad43a98b..c9a660e4c2db 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
@@ -92,7 +92,6 @@ int main(void) | |||
92 | 92 | ||
93 | DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); | 93 | DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); |
94 | DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); | 94 | DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); |
95 | DEFINE(TI_SIGFRAME, offsetof(struct thread_info, nvgprs_frame)); | ||
96 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); | 95 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); |
97 | #ifdef CONFIG_PPC32 | 96 | #ifdef CONFIG_PPC32 |
98 | DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); | 97 | DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 10696456a4c6..e4e81374cb9a 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -53,8 +53,10 @@ extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); | |||
53 | PPC_FEATURE_HAS_MMU) | 53 | PPC_FEATURE_HAS_MMU) |
54 | #define COMMON_USER_PPC64 (COMMON_USER | PPC_FEATURE_64) | 54 | #define COMMON_USER_PPC64 (COMMON_USER | PPC_FEATURE_64) |
55 | #define COMMON_USER_POWER4 (COMMON_USER_PPC64 | PPC_FEATURE_POWER4) | 55 | #define COMMON_USER_POWER4 (COMMON_USER_PPC64 | PPC_FEATURE_POWER4) |
56 | #define COMMON_USER_POWER5 (COMMON_USER_PPC64 | PPC_FEATURE_POWER5) | 56 | #define COMMON_USER_POWER5 (COMMON_USER_PPC64 | PPC_FEATURE_POWER5 |\ |
57 | #define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS) | 57 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) |
58 | #define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\ | ||
59 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) | ||
58 | #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ | 60 | #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ |
59 | PPC_FEATURE_BOOKE) | 61 | PPC_FEATURE_BOOKE) |
60 | 62 | ||
@@ -267,7 +269,8 @@ struct cpu_spec cpu_specs[] = { | |||
267 | .cpu_name = "Cell Broadband Engine", | 269 | .cpu_name = "Cell Broadband Engine", |
268 | .cpu_features = CPU_FTRS_CELL, | 270 | .cpu_features = CPU_FTRS_CELL, |
269 | .cpu_user_features = COMMON_USER_PPC64 | | 271 | .cpu_user_features = COMMON_USER_PPC64 | |
270 | PPC_FEATURE_CELL | PPC_FEATURE_HAS_ALTIVEC_COMP, | 272 | PPC_FEATURE_CELL | PPC_FEATURE_HAS_ALTIVEC_COMP | |
273 | PPC_FEATURE_SMT, | ||
271 | .icache_bsize = 128, | 274 | .icache_bsize = 128, |
272 | .dcache_bsize = 128, | 275 | .dcache_bsize = 128, |
273 | .cpu_setup = __setup_cpu_be, | 276 | .cpu_setup = __setup_cpu_be, |
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index 8c21d378f5d2..778f22fd85d2 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c | |||
@@ -134,8 +134,10 @@ static void crash_kexec_prepare_cpus(void) | |||
134 | * the crash CPU will send an IPI and wait for other CPUs to | 134 | * the crash CPU will send an IPI and wait for other CPUs to |
135 | * respond. If not, proceed the kexec boot even though we failed to | 135 | * respond. If not, proceed the kexec boot even though we failed to |
136 | * capture other CPU states. | 136 | * capture other CPU states. |
137 | * Delay of at least 10 seconds. | ||
137 | */ | 138 | */ |
138 | msecs = 1000000; | 139 | printk(KERN_ALERT "Sending IPI to other cpus...\n"); |
140 | msecs = 10000; | ||
139 | while ((atomic_read(&waiting_for_crash_ipi) > 0) && (--msecs > 0)) { | 141 | while ((atomic_read(&waiting_for_crash_ipi) > 0) && (--msecs > 0)) { |
140 | barrier(); | 142 | barrier(); |
141 | mdelay(1); | 143 | mdelay(1); |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index f20a67261ec7..4827ca1ec89b 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -227,7 +227,7 @@ ret_from_syscall: | |||
227 | MTMSRD(r10) | 227 | MTMSRD(r10) |
228 | lwz r9,TI_FLAGS(r12) | 228 | lwz r9,TI_FLAGS(r12) |
229 | li r8,-_LAST_ERRNO | 229 | li r8,-_LAST_ERRNO |
230 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL|_TIF_RESTORE_SIGMASK) | 230 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK) |
231 | bne- syscall_exit_work | 231 | bne- syscall_exit_work |
232 | cmplw 0,r3,r8 | 232 | cmplw 0,r3,r8 |
233 | blt+ syscall_exit_cont | 233 | blt+ syscall_exit_cont |
@@ -287,8 +287,10 @@ syscall_dotrace: | |||
287 | 287 | ||
288 | syscall_exit_work: | 288 | syscall_exit_work: |
289 | andi. r0,r9,_TIF_RESTOREALL | 289 | andi. r0,r9,_TIF_RESTOREALL |
290 | bne- 2f | 290 | beq+ 0f |
291 | cmplw 0,r3,r8 | 291 | REST_NVGPRS(r1) |
292 | b 2f | ||
293 | 0: cmplw 0,r3,r8 | ||
292 | blt+ 1f | 294 | blt+ 1f |
293 | andi. r0,r9,_TIF_NOERROR | 295 | andi. r0,r9,_TIF_NOERROR |
294 | bne- 1f | 296 | bne- 1f |
@@ -302,9 +304,7 @@ syscall_exit_work: | |||
302 | 2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) | 304 | 2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) |
303 | beq 4f | 305 | beq 4f |
304 | 306 | ||
305 | /* Clear per-syscall TIF flags if any are set, but _leave_ | 307 | /* Clear per-syscall TIF flags if any are set. */ |
306 | _TIF_SAVE_NVGPRS set in r9 since we haven't dealt with that | ||
307 | yet. */ | ||
308 | 308 | ||
309 | li r11,_TIF_PERSYSCALL_MASK | 309 | li r11,_TIF_PERSYSCALL_MASK |
310 | addi r12,r12,TI_FLAGS | 310 | addi r12,r12,TI_FLAGS |
@@ -318,8 +318,13 @@ syscall_exit_work: | |||
318 | subi r12,r12,TI_FLAGS | 318 | subi r12,r12,TI_FLAGS |
319 | 319 | ||
320 | 4: /* Anything which requires enabling interrupts? */ | 320 | 4: /* Anything which requires enabling interrupts? */ |
321 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SAVE_NVGPRS) | 321 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) |
322 | beq 7f | 322 | beq ret_from_except |
323 | |||
324 | /* Re-enable interrupts */ | ||
325 | ori r10,r10,MSR_EE | ||
326 | SYNC | ||
327 | MTMSRD(r10) | ||
323 | 328 | ||
324 | /* Save NVGPRS if they're not saved already */ | 329 | /* Save NVGPRS if they're not saved already */ |
325 | lwz r4,_TRAP(r1) | 330 | lwz r4,_TRAP(r1) |
@@ -328,71 +333,11 @@ syscall_exit_work: | |||
328 | SAVE_NVGPRS(r1) | 333 | SAVE_NVGPRS(r1) |
329 | li r4,0xc00 | 334 | li r4,0xc00 |
330 | stw r4,_TRAP(r1) | 335 | stw r4,_TRAP(r1) |
331 | 336 | 5: | |
332 | /* Re-enable interrupts */ | ||
333 | 5: ori r10,r10,MSR_EE | ||
334 | SYNC | ||
335 | MTMSRD(r10) | ||
336 | |||
337 | andi. r0,r9,_TIF_SAVE_NVGPRS | ||
338 | bne save_user_nvgprs | ||
339 | |||
340 | save_user_nvgprs_cont: | ||
341 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) | ||
342 | beq 7f | ||
343 | |||
344 | addi r3,r1,STACK_FRAME_OVERHEAD | 337 | addi r3,r1,STACK_FRAME_OVERHEAD |
345 | bl do_syscall_trace_leave | 338 | bl do_syscall_trace_leave |
346 | REST_NVGPRS(r1) | 339 | b ret_from_except_full |
347 | |||
348 | 6: lwz r3,GPR3(r1) | ||
349 | LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */ | ||
350 | SYNC | ||
351 | MTMSRD(r10) /* disable interrupts again */ | ||
352 | rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */ | ||
353 | lwz r9,TI_FLAGS(r12) | ||
354 | 7: | ||
355 | andi. r0,r9,_TIF_NEED_RESCHED | ||
356 | bne 8f | ||
357 | lwz r5,_MSR(r1) | ||
358 | andi. r5,r5,MSR_PR | ||
359 | beq ret_from_except | ||
360 | andi. r0,r9,_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK | ||
361 | beq ret_from_except | ||
362 | b do_user_signal | ||
363 | 8: | ||
364 | ori r10,r10,MSR_EE | ||
365 | SYNC | ||
366 | MTMSRD(r10) /* re-enable interrupts */ | ||
367 | bl schedule | ||
368 | b 6b | ||
369 | |||
370 | save_user_nvgprs: | ||
371 | lwz r8,TI_SIGFRAME(r12) | ||
372 | |||
373 | .macro savewords start, end | ||
374 | 1: stw \start,4*(\start)(r8) | ||
375 | .section __ex_table,"a" | ||
376 | .align 2 | ||
377 | .long 1b,save_user_nvgprs_fault | ||
378 | .previous | ||
379 | .if \end - \start | ||
380 | savewords "(\start+1)",\end | ||
381 | .endif | ||
382 | .endm | ||
383 | savewords 14,31 | ||
384 | b save_user_nvgprs_cont | ||
385 | |||
386 | |||
387 | save_user_nvgprs_fault: | ||
388 | li r3,11 /* SIGSEGV */ | ||
389 | lwz r4,TI_TASK(r12) | ||
390 | bl force_sigsegv | ||
391 | 340 | ||
392 | rlwinm r12,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */ | ||
393 | lwz r9,TI_FLAGS(r12) | ||
394 | b save_user_nvgprs_cont | ||
395 | |||
396 | #ifdef SHOW_SYSCALLS | 341 | #ifdef SHOW_SYSCALLS |
397 | do_show_syscall: | 342 | do_show_syscall: |
398 | #ifdef SHOW_SYSCALLS_TASK | 343 | #ifdef SHOW_SYSCALLS_TASK |
@@ -490,6 +435,14 @@ ppc_clone: | |||
490 | stw r0,_TRAP(r1) /* register set saved */ | 435 | stw r0,_TRAP(r1) /* register set saved */ |
491 | b sys_clone | 436 | b sys_clone |
492 | 437 | ||
438 | .globl ppc_swapcontext | ||
439 | ppc_swapcontext: | ||
440 | SAVE_NVGPRS(r1) | ||
441 | lwz r0,_TRAP(r1) | ||
442 | rlwinm r0,r0,0,0,30 /* clear LSB to indicate full */ | ||
443 | stw r0,_TRAP(r1) /* register set saved */ | ||
444 | b sys_swapcontext | ||
445 | |||
493 | /* | 446 | /* |
494 | * Top-level page fault handling. | 447 | * Top-level page fault handling. |
495 | * This is in assembler because if do_page_fault tells us that | 448 | * This is in assembler because if do_page_fault tells us that |
@@ -683,7 +636,7 @@ user_exc_return: /* r10 contains MSR_KERNEL here */ | |||
683 | /* Check current_thread_info()->flags */ | 636 | /* Check current_thread_info()->flags */ |
684 | rlwinm r9,r1,0,0,(31-THREAD_SHIFT) | 637 | rlwinm r9,r1,0,0,(31-THREAD_SHIFT) |
685 | lwz r9,TI_FLAGS(r9) | 638 | lwz r9,TI_FLAGS(r9) |
686 | andi. r0,r9,(_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL|_TIF_RESTORE_SIGMASK) | 639 | andi. r0,r9,(_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK|_TIF_NEED_RESCHED) |
687 | bne do_work | 640 | bne do_work |
688 | 641 | ||
689 | restore_user: | 642 | restore_user: |
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index 388f861b8ed1..24be0cf86d7f 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -160,7 +160,7 @@ syscall_exit: | |||
160 | mtmsrd r10,1 | 160 | mtmsrd r10,1 |
161 | ld r9,TI_FLAGS(r12) | 161 | ld r9,TI_FLAGS(r12) |
162 | li r11,-_LAST_ERRNO | 162 | li r11,-_LAST_ERRNO |
163 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL|_TIF_SAVE_NVGPRS|_TIF_NOERROR|_TIF_RESTORE_SIGMASK) | 163 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK) |
164 | bne- syscall_exit_work | 164 | bne- syscall_exit_work |
165 | cmpld r3,r11 | 165 | cmpld r3,r11 |
166 | ld r5,_CCR(r1) | 166 | ld r5,_CCR(r1) |
@@ -216,8 +216,10 @@ syscall_exit_work: | |||
216 | If TIF_NOERROR is set, just save r3 as it is. */ | 216 | If TIF_NOERROR is set, just save r3 as it is. */ |
217 | 217 | ||
218 | andi. r0,r9,_TIF_RESTOREALL | 218 | andi. r0,r9,_TIF_RESTOREALL |
219 | bne- 2f | 219 | beq+ 0f |
220 | cmpld r3,r11 /* r10 is -LAST_ERRNO */ | 220 | REST_NVGPRS(r1) |
221 | b 2f | ||
222 | 0: cmpld r3,r11 /* r10 is -LAST_ERRNO */ | ||
221 | blt+ 1f | 223 | blt+ 1f |
222 | andi. r0,r9,_TIF_NOERROR | 224 | andi. r0,r9,_TIF_NOERROR |
223 | bne- 1f | 225 | bne- 1f |
@@ -229,9 +231,7 @@ syscall_exit_work: | |||
229 | 2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) | 231 | 2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) |
230 | beq 4f | 232 | beq 4f |
231 | 233 | ||
232 | /* Clear per-syscall TIF flags if any are set, but _leave_ | 234 | /* Clear per-syscall TIF flags if any are set. */ |
233 | _TIF_SAVE_NVGPRS set in r9 since we haven't dealt with that | ||
234 | yet. */ | ||
235 | 235 | ||
236 | li r11,_TIF_PERSYSCALL_MASK | 236 | li r11,_TIF_PERSYSCALL_MASK |
237 | addi r12,r12,TI_FLAGS | 237 | addi r12,r12,TI_FLAGS |
@@ -240,10 +240,9 @@ syscall_exit_work: | |||
240 | stdcx. r10,0,r12 | 240 | stdcx. r10,0,r12 |
241 | bne- 3b | 241 | bne- 3b |
242 | subi r12,r12,TI_FLAGS | 242 | subi r12,r12,TI_FLAGS |
243 | 243 | ||
244 | 4: bl .save_nvgprs | 244 | 4: /* Anything else left to do? */ |
245 | /* Anything else left to do? */ | 245 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) |
246 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SAVE_NVGPRS) | ||
247 | beq .ret_from_except_lite | 246 | beq .ret_from_except_lite |
248 | 247 | ||
249 | /* Re-enable interrupts */ | 248 | /* Re-enable interrupts */ |
@@ -251,26 +250,10 @@ syscall_exit_work: | |||
251 | ori r10,r10,MSR_EE | 250 | ori r10,r10,MSR_EE |
252 | mtmsrd r10,1 | 251 | mtmsrd r10,1 |
253 | 252 | ||
254 | andi. r0,r9,_TIF_SAVE_NVGPRS | 253 | bl .save_nvgprs |
255 | bne save_user_nvgprs | ||
256 | |||
257 | /* If tracing, re-enable interrupts and do it */ | ||
258 | save_user_nvgprs_cont: | ||
259 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) | ||
260 | beq 5f | ||
261 | |||
262 | addi r3,r1,STACK_FRAME_OVERHEAD | 254 | addi r3,r1,STACK_FRAME_OVERHEAD |
263 | bl .do_syscall_trace_leave | 255 | bl .do_syscall_trace_leave |
264 | REST_NVGPRS(r1) | 256 | b .ret_from_except |
265 | clrrdi r12,r1,THREAD_SHIFT | ||
266 | |||
267 | /* Disable interrupts again and handle other work if any */ | ||
268 | 5: mfmsr r10 | ||
269 | rldicl r10,r10,48,1 | ||
270 | rotldi r10,r10,16 | ||
271 | mtmsrd r10,1 | ||
272 | |||
273 | b .ret_from_except_lite | ||
274 | 257 | ||
275 | /* Save non-volatile GPRs, if not already saved. */ | 258 | /* Save non-volatile GPRs, if not already saved. */ |
276 | _GLOBAL(save_nvgprs) | 259 | _GLOBAL(save_nvgprs) |
@@ -282,51 +265,6 @@ _GLOBAL(save_nvgprs) | |||
282 | std r0,_TRAP(r1) | 265 | std r0,_TRAP(r1) |
283 | blr | 266 | blr |
284 | 267 | ||
285 | |||
286 | save_user_nvgprs: | ||
287 | ld r10,TI_SIGFRAME(r12) | ||
288 | andi. r0,r9,_TIF_32BIT | ||
289 | beq- save_user_nvgprs_64 | ||
290 | |||
291 | /* 32-bit save to userspace */ | ||
292 | |||
293 | .macro savewords start, end | ||
294 | 1: stw \start,4*(\start)(r10) | ||
295 | .section __ex_table,"a" | ||
296 | .align 3 | ||
297 | .llong 1b,save_user_nvgprs_fault | ||
298 | .previous | ||
299 | .if \end - \start | ||
300 | savewords "(\start+1)",\end | ||
301 | .endif | ||
302 | .endm | ||
303 | savewords 14,31 | ||
304 | b save_user_nvgprs_cont | ||
305 | |||
306 | save_user_nvgprs_64: | ||
307 | /* 64-bit save to userspace */ | ||
308 | |||
309 | .macro savelongs start, end | ||
310 | 1: std \start,8*(\start)(r10) | ||
311 | .section __ex_table,"a" | ||
312 | .align 3 | ||
313 | .llong 1b,save_user_nvgprs_fault | ||
314 | .previous | ||
315 | .if \end - \start | ||
316 | savelongs "(\start+1)",\end | ||
317 | .endif | ||
318 | .endm | ||
319 | savelongs 14,31 | ||
320 | b save_user_nvgprs_cont | ||
321 | |||
322 | save_user_nvgprs_fault: | ||
323 | li r3,11 /* SIGSEGV */ | ||
324 | ld r4,TI_TASK(r12) | ||
325 | bl .force_sigsegv | ||
326 | |||
327 | clrrdi r12,r1,THREAD_SHIFT | ||
328 | ld r9,TI_FLAGS(r12) | ||
329 | b save_user_nvgprs_cont | ||
330 | 268 | ||
331 | /* | 269 | /* |
332 | * The sigsuspend and rt_sigsuspend system calls can call do_signal | 270 | * The sigsuspend and rt_sigsuspend system calls can call do_signal |
@@ -352,6 +290,16 @@ _GLOBAL(ppc_clone) | |||
352 | bl .sys_clone | 290 | bl .sys_clone |
353 | b syscall_exit | 291 | b syscall_exit |
354 | 292 | ||
293 | _GLOBAL(ppc32_swapcontext) | ||
294 | bl .save_nvgprs | ||
295 | bl .compat_sys_swapcontext | ||
296 | b syscall_exit | ||
297 | |||
298 | _GLOBAL(ppc64_swapcontext) | ||
299 | bl .save_nvgprs | ||
300 | bl .sys_swapcontext | ||
301 | b syscall_exit | ||
302 | |||
355 | _GLOBAL(ret_from_fork) | 303 | _GLOBAL(ret_from_fork) |
356 | bl .schedule_tail | 304 | bl .schedule_tail |
357 | REST_NVGPRS(r1) | 305 | REST_NVGPRS(r1) |
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index 03b25f9359f8..a0579e859b21 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -714,6 +714,7 @@ AltiVecUnavailable: | |||
714 | #ifdef CONFIG_ALTIVEC | 714 | #ifdef CONFIG_ALTIVEC |
715 | bne load_up_altivec /* if from user, just load it up */ | 715 | bne load_up_altivec /* if from user, just load it up */ |
716 | #endif /* CONFIG_ALTIVEC */ | 716 | #endif /* CONFIG_ALTIVEC */ |
717 | addi r3,r1,STACK_FRAME_OVERHEAD | ||
717 | EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) | 718 | EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) |
718 | 719 | ||
719 | PerformanceMonitor: | 720 | PerformanceMonitor: |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 415659629394..9b65029dd2a3 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -139,7 +139,7 @@ _GLOBAL(__secondary_hold) | |||
139 | ori r24,r24,MSR_RI | 139 | ori r24,r24,MSR_RI |
140 | mtmsrd r24 /* RI on */ | 140 | mtmsrd r24 /* RI on */ |
141 | 141 | ||
142 | /* Grab our linux cpu number */ | 142 | /* Grab our physical cpu number */ |
143 | mr r24,r3 | 143 | mr r24,r3 |
144 | 144 | ||
145 | /* Tell the master cpu we're here */ | 145 | /* Tell the master cpu we're here */ |
@@ -153,12 +153,7 @@ _GLOBAL(__secondary_hold) | |||
153 | cmpdi 0,r4,1 | 153 | cmpdi 0,r4,1 |
154 | bne 100b | 154 | bne 100b |
155 | 155 | ||
156 | #ifdef CONFIG_HMT | 156 | #if defined(CONFIG_SMP) || defined(CONFIG_KEXEC) |
157 | SET_REG_IMMEDIATE(r4, .hmt_init) | ||
158 | mtctr r4 | ||
159 | bctr | ||
160 | #else | ||
161 | #ifdef CONFIG_SMP | ||
162 | LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init) | 157 | LOAD_REG_IMMEDIATE(r4, .pSeries_secondary_smp_init) |
163 | mtctr r4 | 158 | mtctr r4 |
164 | mr r3,r24 | 159 | mr r3,r24 |
@@ -166,7 +161,6 @@ _GLOBAL(__secondary_hold) | |||
166 | #else | 161 | #else |
167 | BUG_OPCODE | 162 | BUG_OPCODE |
168 | #endif | 163 | #endif |
169 | #endif | ||
170 | 164 | ||
171 | /* This value is used to mark exception frames on the stack. */ | 165 | /* This value is used to mark exception frames on the stack. */ |
172 | .section ".toc","aw" | 166 | .section ".toc","aw" |
@@ -321,7 +315,6 @@ exception_marker: | |||
321 | label##_pSeries: \ | 315 | label##_pSeries: \ |
322 | HMT_MEDIUM; \ | 316 | HMT_MEDIUM; \ |
323 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | 317 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ |
324 | RUNLATCH_ON(r13); \ | ||
325 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) | 318 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common) |
326 | 319 | ||
327 | #define STD_EXCEPTION_ISERIES(n, label, area) \ | 320 | #define STD_EXCEPTION_ISERIES(n, label, area) \ |
@@ -329,7 +322,6 @@ label##_pSeries: \ | |||
329 | label##_iSeries: \ | 322 | label##_iSeries: \ |
330 | HMT_MEDIUM; \ | 323 | HMT_MEDIUM; \ |
331 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | 324 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ |
332 | RUNLATCH_ON(r13); \ | ||
333 | EXCEPTION_PROLOG_ISERIES_1(area); \ | 325 | EXCEPTION_PROLOG_ISERIES_1(area); \ |
334 | EXCEPTION_PROLOG_ISERIES_2; \ | 326 | EXCEPTION_PROLOG_ISERIES_2; \ |
335 | b label##_common | 327 | b label##_common |
@@ -339,7 +331,6 @@ label##_iSeries: \ | |||
339 | label##_iSeries: \ | 331 | label##_iSeries: \ |
340 | HMT_MEDIUM; \ | 332 | HMT_MEDIUM; \ |
341 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ | 333 | mtspr SPRN_SPRG1,r13; /* save r13 */ \ |
342 | RUNLATCH_ON(r13); \ | ||
343 | EXCEPTION_PROLOG_ISERIES_1(PACA_EXGEN); \ | 334 | EXCEPTION_PROLOG_ISERIES_1(PACA_EXGEN); \ |
344 | lbz r10,PACAPROCENABLED(r13); \ | 335 | lbz r10,PACAPROCENABLED(r13); \ |
345 | cmpwi 0,r10,0; \ | 336 | cmpwi 0,r10,0; \ |
@@ -392,6 +383,7 @@ label##_common: \ | |||
392 | label##_common: \ | 383 | label##_common: \ |
393 | EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \ | 384 | EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \ |
394 | DISABLE_INTS; \ | 385 | DISABLE_INTS; \ |
386 | bl .ppc64_runlatch_on; \ | ||
395 | addi r3,r1,STACK_FRAME_OVERHEAD; \ | 387 | addi r3,r1,STACK_FRAME_OVERHEAD; \ |
396 | bl hdlr; \ | 388 | bl hdlr; \ |
397 | b .ret_from_except_lite | 389 | b .ret_from_except_lite |
@@ -409,7 +401,6 @@ __start_interrupts: | |||
409 | _machine_check_pSeries: | 401 | _machine_check_pSeries: |
410 | HMT_MEDIUM | 402 | HMT_MEDIUM |
411 | mtspr SPRN_SPRG1,r13 /* save r13 */ | 403 | mtspr SPRN_SPRG1,r13 /* save r13 */ |
412 | RUNLATCH_ON(r13) | ||
413 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common) | 404 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common) |
414 | 405 | ||
415 | . = 0x300 | 406 | . = 0x300 |
@@ -436,7 +427,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_SLB) | |||
436 | data_access_slb_pSeries: | 427 | data_access_slb_pSeries: |
437 | HMT_MEDIUM | 428 | HMT_MEDIUM |
438 | mtspr SPRN_SPRG1,r13 | 429 | mtspr SPRN_SPRG1,r13 |
439 | RUNLATCH_ON(r13) | ||
440 | mfspr r13,SPRN_SPRG3 /* get paca address into r13 */ | 430 | mfspr r13,SPRN_SPRG3 /* get paca address into r13 */ |
441 | std r3,PACA_EXSLB+EX_R3(r13) | 431 | std r3,PACA_EXSLB+EX_R3(r13) |
442 | mfspr r3,SPRN_DAR | 432 | mfspr r3,SPRN_DAR |
@@ -462,7 +452,6 @@ data_access_slb_pSeries: | |||
462 | instruction_access_slb_pSeries: | 452 | instruction_access_slb_pSeries: |
463 | HMT_MEDIUM | 453 | HMT_MEDIUM |
464 | mtspr SPRN_SPRG1,r13 | 454 | mtspr SPRN_SPRG1,r13 |
465 | RUNLATCH_ON(r13) | ||
466 | mfspr r13,SPRN_SPRG3 /* get paca address into r13 */ | 455 | mfspr r13,SPRN_SPRG3 /* get paca address into r13 */ |
467 | std r3,PACA_EXSLB+EX_R3(r13) | 456 | std r3,PACA_EXSLB+EX_R3(r13) |
468 | mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */ | 457 | mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */ |
@@ -493,7 +482,6 @@ instruction_access_slb_pSeries: | |||
493 | .globl system_call_pSeries | 482 | .globl system_call_pSeries |
494 | system_call_pSeries: | 483 | system_call_pSeries: |
495 | HMT_MEDIUM | 484 | HMT_MEDIUM |
496 | RUNLATCH_ON(r9) | ||
497 | mr r9,r13 | 485 | mr r9,r13 |
498 | mfmsr r10 | 486 | mfmsr r10 |
499 | mfspr r13,SPRN_SPRG3 | 487 | mfspr r13,SPRN_SPRG3 |
@@ -577,7 +565,6 @@ slb_miss_user_pseries: | |||
577 | system_reset_fwnmi: | 565 | system_reset_fwnmi: |
578 | HMT_MEDIUM | 566 | HMT_MEDIUM |
579 | mtspr SPRN_SPRG1,r13 /* save r13 */ | 567 | mtspr SPRN_SPRG1,r13 /* save r13 */ |
580 | RUNLATCH_ON(r13) | ||
581 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common) | 568 | EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common) |
582 | 569 | ||
583 | .globl machine_check_fwnmi | 570 | .globl machine_check_fwnmi |
@@ -585,7 +572,6 @@ system_reset_fwnmi: | |||
585 | machine_check_fwnmi: | 572 | machine_check_fwnmi: |
586 | HMT_MEDIUM | 573 | HMT_MEDIUM |
587 | mtspr SPRN_SPRG1,r13 /* save r13 */ | 574 | mtspr SPRN_SPRG1,r13 /* save r13 */ |
588 | RUNLATCH_ON(r13) | ||
589 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common) | 575 | EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common) |
590 | 576 | ||
591 | #ifdef CONFIG_PPC_ISERIES | 577 | #ifdef CONFIG_PPC_ISERIES |
@@ -896,7 +882,6 @@ unrecov_fer: | |||
896 | .align 7 | 882 | .align 7 |
897 | .globl data_access_common | 883 | .globl data_access_common |
898 | data_access_common: | 884 | data_access_common: |
899 | RUNLATCH_ON(r10) /* It wont fit in the 0x300 handler */ | ||
900 | mfspr r10,SPRN_DAR | 885 | mfspr r10,SPRN_DAR |
901 | std r10,PACA_EXGEN+EX_DAR(r13) | 886 | std r10,PACA_EXGEN+EX_DAR(r13) |
902 | mfspr r10,SPRN_DSISR | 887 | mfspr r10,SPRN_DSISR |
@@ -1044,6 +1029,7 @@ hardware_interrupt_common: | |||
1044 | EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN) | 1029 | EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN) |
1045 | hardware_interrupt_entry: | 1030 | hardware_interrupt_entry: |
1046 | DISABLE_INTS | 1031 | DISABLE_INTS |
1032 | bl .ppc64_runlatch_on | ||
1047 | addi r3,r1,STACK_FRAME_OVERHEAD | 1033 | addi r3,r1,STACK_FRAME_OVERHEAD |
1048 | bl .do_IRQ | 1034 | bl .do_IRQ |
1049 | b .ret_from_except_lite | 1035 | b .ret_from_except_lite |
@@ -1551,6 +1537,9 @@ _STATIC(__boot_from_prom) | |||
1551 | mr r28,r6 | 1537 | mr r28,r6 |
1552 | mr r27,r7 | 1538 | mr r27,r7 |
1553 | 1539 | ||
1540 | /* Align the stack to 16-byte boundary for broken yaboot */ | ||
1541 | rldicr r1,r1,0,59 | ||
1542 | |||
1554 | /* Make sure we are running in 64 bits mode */ | 1543 | /* Make sure we are running in 64 bits mode */ |
1555 | bl .enable_64b_mode | 1544 | bl .enable_64b_mode |
1556 | 1545 | ||
@@ -1818,22 +1807,6 @@ _STATIC(start_here_multiplatform) | |||
1818 | ori r6,r6,MSR_RI | 1807 | ori r6,r6,MSR_RI |
1819 | mtmsrd r6 /* RI on */ | 1808 | mtmsrd r6 /* RI on */ |
1820 | 1809 | ||
1821 | #ifdef CONFIG_HMT | ||
1822 | /* Start up the second thread on cpu 0 */ | ||
1823 | mfspr r3,SPRN_PVR | ||
1824 | srwi r3,r3,16 | ||
1825 | cmpwi r3,0x34 /* Pulsar */ | ||
1826 | beq 90f | ||
1827 | cmpwi r3,0x36 /* Icestar */ | ||
1828 | beq 90f | ||
1829 | cmpwi r3,0x37 /* SStar */ | ||
1830 | beq 90f | ||
1831 | b 91f /* HMT not supported */ | ||
1832 | 90: li r3,0 | ||
1833 | bl .hmt_start_secondary | ||
1834 | 91: | ||
1835 | #endif | ||
1836 | |||
1837 | /* The following gets the stack and TOC set up with the regs */ | 1810 | /* The following gets the stack and TOC set up with the regs */ |
1838 | /* pointing to the real addr of the kernel stack. This is */ | 1811 | /* pointing to the real addr of the kernel stack. This is */ |
1839 | /* all done to support the C function call below which sets */ | 1812 | /* all done to support the C function call below which sets */ |
@@ -1947,77 +1920,8 @@ _STATIC(start_here_common) | |||
1947 | 1920 | ||
1948 | bl .start_kernel | 1921 | bl .start_kernel |
1949 | 1922 | ||
1950 | _GLOBAL(hmt_init) | 1923 | /* Not reached */ |
1951 | #ifdef CONFIG_HMT | 1924 | BUG_OPCODE |
1952 | LOAD_REG_IMMEDIATE(r5, hmt_thread_data) | ||
1953 | mfspr r7,SPRN_PVR | ||
1954 | srwi r7,r7,16 | ||
1955 | cmpwi r7,0x34 /* Pulsar */ | ||
1956 | beq 90f | ||
1957 | cmpwi r7,0x36 /* Icestar */ | ||
1958 | beq 91f | ||
1959 | cmpwi r7,0x37 /* SStar */ | ||
1960 | beq 91f | ||
1961 | b 101f | ||
1962 | 90: mfspr r6,SPRN_PIR | ||
1963 | andi. r6,r6,0x1f | ||
1964 | b 92f | ||
1965 | 91: mfspr r6,SPRN_PIR | ||
1966 | andi. r6,r6,0x3ff | ||
1967 | 92: sldi r4,r24,3 | ||
1968 | stwx r6,r5,r4 | ||
1969 | bl .hmt_start_secondary | ||
1970 | b 101f | ||
1971 | |||
1972 | __hmt_secondary_hold: | ||
1973 | LOAD_REG_IMMEDIATE(r5, hmt_thread_data) | ||
1974 | clrldi r5,r5,4 | ||
1975 | li r7,0 | ||
1976 | mfspr r6,SPRN_PIR | ||
1977 | mfspr r8,SPRN_PVR | ||
1978 | srwi r8,r8,16 | ||
1979 | cmpwi r8,0x34 | ||
1980 | bne 93f | ||
1981 | andi. r6,r6,0x1f | ||
1982 | b 103f | ||
1983 | 93: andi. r6,r6,0x3f | ||
1984 | |||
1985 | 103: lwzx r8,r5,r7 | ||
1986 | cmpw r8,r6 | ||
1987 | beq 104f | ||
1988 | addi r7,r7,8 | ||
1989 | b 103b | ||
1990 | |||
1991 | 104: addi r7,r7,4 | ||
1992 | lwzx r9,r5,r7 | ||
1993 | mr r24,r9 | ||
1994 | 101: | ||
1995 | #endif | ||
1996 | mr r3,r24 | ||
1997 | b .pSeries_secondary_smp_init | ||
1998 | |||
1999 | #ifdef CONFIG_HMT | ||
2000 | _GLOBAL(hmt_start_secondary) | ||
2001 | LOAD_REG_IMMEDIATE(r4,__hmt_secondary_hold) | ||
2002 | clrldi r4,r4,4 | ||
2003 | mtspr SPRN_NIADORM, r4 | ||
2004 | mfspr r4, SPRN_MSRDORM | ||
2005 | li r5, -65 | ||
2006 | and r4, r4, r5 | ||
2007 | mtspr SPRN_MSRDORM, r4 | ||
2008 | lis r4,0xffef | ||
2009 | ori r4,r4,0x7403 | ||
2010 | mtspr SPRN_TSC, r4 | ||
2011 | li r4,0x1f4 | ||
2012 | mtspr SPRN_TST, r4 | ||
2013 | mfspr r4, SPRN_HID0 | ||
2014 | ori r4, r4, 0x1 | ||
2015 | mtspr SPRN_HID0, r4 | ||
2016 | mfspr r4, SPRN_CTRLF | ||
2017 | oris r4, r4, 0x40 | ||
2018 | mtspr SPRN_CTRLT, r4 | ||
2019 | blr | ||
2020 | #endif | ||
2021 | 1925 | ||
2022 | /* | 1926 | /* |
2023 | * We put a few things here that have to be page-aligned. | 1927 | * We put a few things here that have to be page-aligned. |
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c index 1ae96a8ed7e2..e789fef4eb8a 100644 --- a/arch/powerpc/kernel/lparcfg.c +++ b/arch/powerpc/kernel/lparcfg.c | |||
@@ -341,7 +341,7 @@ static int lparcfg_data(struct seq_file *m, void *v) | |||
341 | const char *system_id = ""; | 341 | const char *system_id = ""; |
342 | unsigned int *lp_index_ptr, lp_index = 0; | 342 | unsigned int *lp_index_ptr, lp_index = 0; |
343 | struct device_node *rtas_node; | 343 | struct device_node *rtas_node; |
344 | int *lrdrp; | 344 | int *lrdrp = NULL; |
345 | 345 | ||
346 | rootdn = find_path_device("/"); | 346 | rootdn = find_path_device("/"); |
347 | if (rootdn) { | 347 | if (rootdn) { |
@@ -362,7 +362,9 @@ static int lparcfg_data(struct seq_file *m, void *v) | |||
362 | seq_printf(m, "partition_id=%d\n", (int)lp_index); | 362 | seq_printf(m, "partition_id=%d\n", (int)lp_index); |
363 | 363 | ||
364 | rtas_node = find_path_device("/rtas"); | 364 | rtas_node = find_path_device("/rtas"); |
365 | lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", NULL); | 365 | if (rtas_node) |
366 | lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", | ||
367 | NULL); | ||
366 | 368 | ||
367 | if (lrdrp == NULL) { | 369 | if (lrdrp == NULL) { |
368 | partition_potential_processors = vdso_data->processorCount; | 370 | partition_potential_processors = vdso_data->processorCount; |
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index d6431440c54f..ee166c586642 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
@@ -26,8 +26,6 @@ | |||
26 | #include <asm/prom.h> | 26 | #include <asm/prom.h> |
27 | #include <asm/smp.h> | 27 | #include <asm/smp.h> |
28 | 28 | ||
29 | #define HASH_GROUP_SIZE 0x80 /* size of each hash group, asm/mmu.h */ | ||
30 | |||
31 | int default_machine_kexec_prepare(struct kimage *image) | 29 | int default_machine_kexec_prepare(struct kimage *image) |
32 | { | 30 | { |
33 | int i; | 31 | int i; |
@@ -61,7 +59,7 @@ int default_machine_kexec_prepare(struct kimage *image) | |||
61 | */ | 59 | */ |
62 | if (htab_address) { | 60 | if (htab_address) { |
63 | low = __pa(htab_address); | 61 | low = __pa(htab_address); |
64 | high = low + (htab_hash_mask + 1) * HASH_GROUP_SIZE; | 62 | high = low + htab_size_bytes; |
65 | 63 | ||
66 | for (i = 0; i < image->nr_segments; i++) { | 64 | for (i = 0; i < image->nr_segments; i++) { |
67 | begin = image->segment[i].mem; | 65 | begin = image->segment[i].mem; |
@@ -294,7 +292,7 @@ void default_machine_kexec(struct kimage *image) | |||
294 | } | 292 | } |
295 | 293 | ||
296 | /* Values we need to export to the second kernel via the device tree. */ | 294 | /* Values we need to export to the second kernel via the device tree. */ |
297 | static unsigned long htab_base, htab_size, kernel_end; | 295 | static unsigned long htab_base, kernel_end; |
298 | 296 | ||
299 | static struct property htab_base_prop = { | 297 | static struct property htab_base_prop = { |
300 | .name = "linux,htab-base", | 298 | .name = "linux,htab-base", |
@@ -305,7 +303,7 @@ static struct property htab_base_prop = { | |||
305 | static struct property htab_size_prop = { | 303 | static struct property htab_size_prop = { |
306 | .name = "linux,htab-size", | 304 | .name = "linux,htab-size", |
307 | .length = sizeof(unsigned long), | 305 | .length = sizeof(unsigned long), |
308 | .value = (unsigned char *)&htab_size, | 306 | .value = (unsigned char *)&htab_size_bytes, |
309 | }; | 307 | }; |
310 | 308 | ||
311 | static struct property kernel_end_prop = { | 309 | static struct property kernel_end_prop = { |
@@ -331,8 +329,6 @@ static void __init export_htab_values(void) | |||
331 | 329 | ||
332 | htab_base = __pa(htab_address); | 330 | htab_base = __pa(htab_address); |
333 | prom_add_property(node, &htab_base_prop); | 331 | prom_add_property(node, &htab_base_prop); |
334 | |||
335 | htab_size = 1UL << ppc64_pft_size; | ||
336 | prom_add_property(node, &htab_size_prop); | 332 | prom_add_property(node, &htab_size_prop); |
337 | 333 | ||
338 | out: | 334 | out: |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index c367520bc1c3..ba92bab7cc2c 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -589,7 +589,6 @@ void __devinit scan_phb(struct pci_controller *hose) | |||
589 | #endif /* CONFIG_PPC_MULTIPLATFORM */ | 589 | #endif /* CONFIG_PPC_MULTIPLATFORM */ |
590 | if (mode == PCI_PROBE_NORMAL) | 590 | if (mode == PCI_PROBE_NORMAL) |
591 | hose->last_busno = bus->subordinate = pci_scan_child_bus(bus); | 591 | hose->last_busno = bus->subordinate = pci_scan_child_bus(bus); |
592 | pci_bus_add_devices(bus); | ||
593 | } | 592 | } |
594 | 593 | ||
595 | static int __init pcibios_init(void) | 594 | static int __init pcibios_init(void) |
@@ -608,8 +607,10 @@ static int __init pcibios_init(void) | |||
608 | printk("PCI: Probing PCI hardware\n"); | 607 | printk("PCI: Probing PCI hardware\n"); |
609 | 608 | ||
610 | /* Scan all of the recorded PCI controllers. */ | 609 | /* Scan all of the recorded PCI controllers. */ |
611 | list_for_each_entry_safe(hose, tmp, &hose_list, list_node) | 610 | list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { |
612 | scan_phb(hose); | 611 | scan_phb(hose); |
612 | pci_bus_add_devices(hose->bus); | ||
613 | } | ||
613 | 614 | ||
614 | #ifndef CONFIG_PPC_ISERIES | 615 | #ifndef CONFIG_PPC_ISERIES |
615 | if (pci_probe_only) | 616 | if (pci_probe_only) |
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c index d9a459c144d8..63ecbec05202 100644 --- a/arch/powerpc/kernel/ppc_ksyms.c +++ b/arch/powerpc/kernel/ppc_ksyms.c | |||
@@ -79,15 +79,8 @@ EXPORT_SYMBOL(sys_sigreturn); | |||
79 | EXPORT_SYMBOL(strcpy); | 79 | EXPORT_SYMBOL(strcpy); |
80 | EXPORT_SYMBOL(strncpy); | 80 | EXPORT_SYMBOL(strncpy); |
81 | EXPORT_SYMBOL(strcat); | 81 | EXPORT_SYMBOL(strcat); |
82 | EXPORT_SYMBOL(strncat); | ||
83 | EXPORT_SYMBOL(strchr); | ||
84 | EXPORT_SYMBOL(strrchr); | ||
85 | EXPORT_SYMBOL(strpbrk); | ||
86 | EXPORT_SYMBOL(strstr); | ||
87 | EXPORT_SYMBOL(strlen); | 82 | EXPORT_SYMBOL(strlen); |
88 | EXPORT_SYMBOL(strnlen); | ||
89 | EXPORT_SYMBOL(strcmp); | 83 | EXPORT_SYMBOL(strcmp); |
90 | EXPORT_SYMBOL(strncmp); | ||
91 | EXPORT_SYMBOL(strcasecmp); | 84 | EXPORT_SYMBOL(strcasecmp); |
92 | 85 | ||
93 | EXPORT_SYMBOL(csum_partial); | 86 | EXPORT_SYMBOL(csum_partial); |
@@ -117,15 +110,6 @@ EXPORT_SYMBOL(_insw_ns); | |||
117 | EXPORT_SYMBOL(_outsw_ns); | 110 | EXPORT_SYMBOL(_outsw_ns); |
118 | EXPORT_SYMBOL(_insl_ns); | 111 | EXPORT_SYMBOL(_insl_ns); |
119 | EXPORT_SYMBOL(_outsl_ns); | 112 | EXPORT_SYMBOL(_outsl_ns); |
120 | EXPORT_SYMBOL(ioremap); | ||
121 | #ifdef CONFIG_44x | ||
122 | EXPORT_SYMBOL(ioremap64); | ||
123 | #endif | ||
124 | EXPORT_SYMBOL(__ioremap); | ||
125 | EXPORT_SYMBOL(iounmap); | ||
126 | #ifdef CONFIG_PPC32 | ||
127 | EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */ | ||
128 | #endif | ||
129 | 113 | ||
130 | #if defined(CONFIG_PPC32) && (defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)) | 114 | #if defined(CONFIG_PPC32) && (defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)) |
131 | EXPORT_SYMBOL(ppc_ide_md); | 115 | EXPORT_SYMBOL(ppc_ide_md); |
@@ -168,7 +152,6 @@ EXPORT_SYMBOL(__flush_icache_range); | |||
168 | EXPORT_SYMBOL(flush_dcache_range); | 152 | EXPORT_SYMBOL(flush_dcache_range); |
169 | 153 | ||
170 | #ifdef CONFIG_SMP | 154 | #ifdef CONFIG_SMP |
171 | EXPORT_SYMBOL(smp_call_function); | ||
172 | #ifdef CONFIG_PPC32 | 155 | #ifdef CONFIG_PPC32 |
173 | EXPORT_SYMBOL(smp_hw_index); | 156 | EXPORT_SYMBOL(smp_hw_index); |
174 | #endif | 157 | #endif |
@@ -185,9 +168,6 @@ EXPORT_SYMBOL(adb_try_handler_change); | |||
185 | EXPORT_SYMBOL(cuda_request); | 168 | EXPORT_SYMBOL(cuda_request); |
186 | EXPORT_SYMBOL(cuda_poll); | 169 | EXPORT_SYMBOL(cuda_poll); |
187 | #endif /* CONFIG_ADB_CUDA */ | 170 | #endif /* CONFIG_ADB_CUDA */ |
188 | #ifdef CONFIG_PPC_PMAC | ||
189 | EXPORT_SYMBOL(sys_ctrler); | ||
190 | #endif | ||
191 | #ifdef CONFIG_VT | 171 | #ifdef CONFIG_VT |
192 | EXPORT_SYMBOL(kd_mksound); | 172 | EXPORT_SYMBOL(kd_mksound); |
193 | #endif | 173 | #endif |
@@ -205,7 +185,6 @@ EXPORT_SYMBOL(__lshrdi3); | |||
205 | EXPORT_SYMBOL(memcpy); | 185 | EXPORT_SYMBOL(memcpy); |
206 | EXPORT_SYMBOL(memset); | 186 | EXPORT_SYMBOL(memset); |
207 | EXPORT_SYMBOL(memmove); | 187 | EXPORT_SYMBOL(memmove); |
208 | EXPORT_SYMBOL(memscan); | ||
209 | EXPORT_SYMBOL(memcmp); | 188 | EXPORT_SYMBOL(memcmp); |
210 | EXPORT_SYMBOL(memchr); | 189 | EXPORT_SYMBOL(memchr); |
211 | 190 | ||
@@ -214,7 +193,6 @@ EXPORT_SYMBOL(screen_info); | |||
214 | #endif | 193 | #endif |
215 | 194 | ||
216 | #ifdef CONFIG_PPC32 | 195 | #ifdef CONFIG_PPC32 |
217 | EXPORT_SYMBOL(__delay); | ||
218 | EXPORT_SYMBOL(timer_interrupt); | 196 | EXPORT_SYMBOL(timer_interrupt); |
219 | EXPORT_SYMBOL(irq_desc); | 197 | EXPORT_SYMBOL(irq_desc); |
220 | EXPORT_SYMBOL(tb_ticks_per_jiffy); | 198 | EXPORT_SYMBOL(tb_ticks_per_jiffy); |
@@ -222,10 +200,6 @@ EXPORT_SYMBOL(console_drivers); | |||
222 | EXPORT_SYMBOL(cacheable_memcpy); | 200 | EXPORT_SYMBOL(cacheable_memcpy); |
223 | #endif | 201 | #endif |
224 | 202 | ||
225 | EXPORT_SYMBOL(__up); | ||
226 | EXPORT_SYMBOL(__down); | ||
227 | EXPORT_SYMBOL(__down_interruptible); | ||
228 | |||
229 | #ifdef CONFIG_8xx | 203 | #ifdef CONFIG_8xx |
230 | EXPORT_SYMBOL(cpm_install_handler); | 204 | EXPORT_SYMBOL(cpm_install_handler); |
231 | EXPORT_SYMBOL(cpm_free_handler); | 205 | EXPORT_SYMBOL(cpm_free_handler); |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 57703994a063..c225cf154bfe 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -888,3 +888,35 @@ void dump_stack(void) | |||
888 | show_stack(current, NULL); | 888 | show_stack(current, NULL); |
889 | } | 889 | } |
890 | EXPORT_SYMBOL(dump_stack); | 890 | EXPORT_SYMBOL(dump_stack); |
891 | |||
892 | #ifdef CONFIG_PPC64 | ||
893 | void ppc64_runlatch_on(void) | ||
894 | { | ||
895 | unsigned long ctrl; | ||
896 | |||
897 | if (cpu_has_feature(CPU_FTR_CTRL) && !test_thread_flag(TIF_RUNLATCH)) { | ||
898 | HMT_medium(); | ||
899 | |||
900 | ctrl = mfspr(SPRN_CTRLF); | ||
901 | ctrl |= CTRL_RUNLATCH; | ||
902 | mtspr(SPRN_CTRLT, ctrl); | ||
903 | |||
904 | set_thread_flag(TIF_RUNLATCH); | ||
905 | } | ||
906 | } | ||
907 | |||
908 | void ppc64_runlatch_off(void) | ||
909 | { | ||
910 | unsigned long ctrl; | ||
911 | |||
912 | if (cpu_has_feature(CPU_FTR_CTRL) && test_thread_flag(TIF_RUNLATCH)) { | ||
913 | HMT_medium(); | ||
914 | |||
915 | clear_thread_flag(TIF_RUNLATCH); | ||
916 | |||
917 | ctrl = mfspr(SPRN_CTRLF); | ||
918 | ctrl &= ~CTRL_RUNLATCH; | ||
919 | mtspr(SPRN_CTRLT, ctrl); | ||
920 | } | ||
921 | } | ||
922 | #endif | ||
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 294832a7e0a6..6dbd21726770 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -816,8 +816,6 @@ void __init unflatten_device_tree(void) | |||
816 | { | 816 | { |
817 | unsigned long start, mem, size; | 817 | unsigned long start, mem, size; |
818 | struct device_node **allnextp = &allnodes; | 818 | struct device_node **allnextp = &allnodes; |
819 | char *p = NULL; | ||
820 | int l = 0; | ||
821 | 819 | ||
822 | DBG(" -> unflatten_device_tree()\n"); | 820 | DBG(" -> unflatten_device_tree()\n"); |
823 | 821 | ||
@@ -857,19 +855,6 @@ void __init unflatten_device_tree(void) | |||
857 | if (of_chosen == NULL) | 855 | if (of_chosen == NULL) |
858 | of_chosen = of_find_node_by_path("/chosen@0"); | 856 | of_chosen = of_find_node_by_path("/chosen@0"); |
859 | 857 | ||
860 | /* Retreive command line */ | ||
861 | if (of_chosen != NULL) { | ||
862 | p = (char *)get_property(of_chosen, "bootargs", &l); | ||
863 | if (p != NULL && l > 0) | ||
864 | strlcpy(cmd_line, p, min(l, COMMAND_LINE_SIZE)); | ||
865 | } | ||
866 | #ifdef CONFIG_CMDLINE | ||
867 | if (l == 0 || (l == 1 && (*p) == 0)) | ||
868 | strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); | ||
869 | #endif /* CONFIG_CMDLINE */ | ||
870 | |||
871 | DBG("Command line is: %s\n", cmd_line); | ||
872 | |||
873 | DBG(" <- unflatten_device_tree()\n"); | 858 | DBG(" <- unflatten_device_tree()\n"); |
874 | } | 859 | } |
875 | 860 | ||
@@ -940,6 +925,8 @@ static int __init early_init_dt_scan_chosen(unsigned long node, | |||
940 | { | 925 | { |
941 | u32 *prop; | 926 | u32 *prop; |
942 | unsigned long *lprop; | 927 | unsigned long *lprop; |
928 | unsigned long l; | ||
929 | char *p; | ||
943 | 930 | ||
944 | DBG("search \"chosen\", depth: %d, uname: %s\n", depth, uname); | 931 | DBG("search \"chosen\", depth: %d, uname: %s\n", depth, uname); |
945 | 932 | ||
@@ -1004,6 +991,41 @@ static int __init early_init_dt_scan_chosen(unsigned long node, | |||
1004 | crashk_res.end = crashk_res.start + *lprop - 1; | 991 | crashk_res.end = crashk_res.start + *lprop - 1; |
1005 | #endif | 992 | #endif |
1006 | 993 | ||
994 | /* Retreive command line */ | ||
995 | p = of_get_flat_dt_prop(node, "bootargs", &l); | ||
996 | if (p != NULL && l > 0) | ||
997 | strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE)); | ||
998 | |||
999 | #ifdef CONFIG_CMDLINE | ||
1000 | if (l == 0 || (l == 1 && (*p) == 0)) | ||
1001 | strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); | ||
1002 | #endif /* CONFIG_CMDLINE */ | ||
1003 | |||
1004 | DBG("Command line is: %s\n", cmd_line); | ||
1005 | |||
1006 | if (strstr(cmd_line, "mem=")) { | ||
1007 | char *p, *q; | ||
1008 | unsigned long maxmem = 0; | ||
1009 | |||
1010 | for (q = cmd_line; (p = strstr(q, "mem=")) != 0; ) { | ||
1011 | q = p + 4; | ||
1012 | if (p > cmd_line && p[-1] != ' ') | ||
1013 | continue; | ||
1014 | maxmem = simple_strtoul(q, &q, 0); | ||
1015 | if (*q == 'k' || *q == 'K') { | ||
1016 | maxmem <<= 10; | ||
1017 | ++q; | ||
1018 | } else if (*q == 'm' || *q == 'M') { | ||
1019 | maxmem <<= 20; | ||
1020 | ++q; | ||
1021 | } else if (*q == 'g' || *q == 'G') { | ||
1022 | maxmem <<= 30; | ||
1023 | ++q; | ||
1024 | } | ||
1025 | } | ||
1026 | memory_limit = maxmem; | ||
1027 | } | ||
1028 | |||
1007 | /* break now */ | 1029 | /* break now */ |
1008 | return 1; | 1030 | return 1; |
1009 | } | 1031 | } |
@@ -1124,7 +1146,7 @@ static void __init early_reserve_mem(void) | |||
1124 | size_32 = *(reserve_map_32++); | 1146 | size_32 = *(reserve_map_32++); |
1125 | if (size_32 == 0) | 1147 | if (size_32 == 0) |
1126 | break; | 1148 | break; |
1127 | DBG("reserving: %lx -> %lx\n", base_32, size_32); | 1149 | DBG("reserving: %x -> %x\n", base_32, size_32); |
1128 | lmb_reserve(base_32, size_32); | 1150 | lmb_reserve(base_32, size_32); |
1129 | } | 1151 | } |
1130 | return; | 1152 | return; |
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index ec7153f4d47c..813c2cd194c2 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -205,14 +205,6 @@ static cell_t __initdata regbuf[1024]; | |||
205 | 205 | ||
206 | #define MAX_CPU_THREADS 2 | 206 | #define MAX_CPU_THREADS 2 |
207 | 207 | ||
208 | /* TO GO */ | ||
209 | #ifdef CONFIG_HMT | ||
210 | struct { | ||
211 | unsigned int pir; | ||
212 | unsigned int threadid; | ||
213 | } hmt_thread_data[NR_CPUS]; | ||
214 | #endif /* CONFIG_HMT */ | ||
215 | |||
216 | /* | 208 | /* |
217 | * Error results ... some OF calls will return "-1" on error, some | 209 | * Error results ... some OF calls will return "-1" on error, some |
218 | * will return 0, some will return either. To simplify, here are | 210 | * will return 0, some will return either. To simplify, here are |
@@ -986,7 +978,7 @@ static void __init prom_init_mem(void) | |||
986 | if (size == 0) | 978 | if (size == 0) |
987 | continue; | 979 | continue; |
988 | prom_debug(" %x %x\n", base, size); | 980 | prom_debug(" %x %x\n", base, size); |
989 | if (base == 0) | 981 | if (base == 0 && (RELOC(of_platform) & PLATFORM_LPAR)) |
990 | RELOC(rmo_top) = size; | 982 | RELOC(rmo_top) = size; |
991 | if ((base + size) > RELOC(ram_top)) | 983 | if ((base + size) > RELOC(ram_top)) |
992 | RELOC(ram_top) = base + size; | 984 | RELOC(ram_top) = base + size; |
@@ -1319,10 +1311,6 @@ static void __init prom_hold_cpus(void) | |||
1319 | */ | 1311 | */ |
1320 | *spinloop = 0; | 1312 | *spinloop = 0; |
1321 | 1313 | ||
1322 | #ifdef CONFIG_HMT | ||
1323 | for (i = 0; i < NR_CPUS; i++) | ||
1324 | RELOC(hmt_thread_data)[i].pir = 0xdeadbeef; | ||
1325 | #endif | ||
1326 | /* look for cpus */ | 1314 | /* look for cpus */ |
1327 | for (node = 0; prom_next_node(&node); ) { | 1315 | for (node = 0; prom_next_node(&node); ) { |
1328 | type[0] = 0; | 1316 | type[0] = 0; |
@@ -1389,32 +1377,6 @@ static void __init prom_hold_cpus(void) | |||
1389 | /* Reserve cpu #s for secondary threads. They start later. */ | 1377 | /* Reserve cpu #s for secondary threads. They start later. */ |
1390 | cpuid += cpu_threads; | 1378 | cpuid += cpu_threads; |
1391 | } | 1379 | } |
1392 | #ifdef CONFIG_HMT | ||
1393 | /* Only enable HMT on processors that provide support. */ | ||
1394 | if (__is_processor(PV_PULSAR) || | ||
1395 | __is_processor(PV_ICESTAR) || | ||
1396 | __is_processor(PV_SSTAR)) { | ||
1397 | prom_printf(" starting secondary threads\n"); | ||
1398 | |||
1399 | for (i = 0; i < NR_CPUS; i += 2) { | ||
1400 | if (!cpu_online(i)) | ||
1401 | continue; | ||
1402 | |||
1403 | if (i == 0) { | ||
1404 | unsigned long pir = mfspr(SPRN_PIR); | ||
1405 | if (__is_processor(PV_PULSAR)) { | ||
1406 | RELOC(hmt_thread_data)[i].pir = | ||
1407 | pir & 0x1f; | ||
1408 | } else { | ||
1409 | RELOC(hmt_thread_data)[i].pir = | ||
1410 | pir & 0x3ff; | ||
1411 | } | ||
1412 | } | ||
1413 | } | ||
1414 | } else { | ||
1415 | prom_printf("Processor is not HMT capable\n"); | ||
1416 | } | ||
1417 | #endif | ||
1418 | 1380 | ||
1419 | if (cpuid > NR_CPUS) | 1381 | if (cpuid > NR_CPUS) |
1420 | prom_printf("WARNING: maximum CPUs (" __stringify(NR_CPUS) | 1382 | prom_printf("WARNING: maximum CPUs (" __stringify(NR_CPUS) |
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 400793c71304..bcb83574335b 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -561,10 +561,7 @@ void do_syscall_trace_leave(struct pt_regs *regs) | |||
561 | regs->result); | 561 | regs->result); |
562 | 562 | ||
563 | if ((test_thread_flag(TIF_SYSCALL_TRACE) | 563 | if ((test_thread_flag(TIF_SYSCALL_TRACE) |
564 | #ifdef CONFIG_PPC64 | 564 | || test_thread_flag(TIF_SINGLESTEP)) |
565 | || test_thread_flag(TIF_SINGLESTEP) | ||
566 | #endif | ||
567 | ) | ||
568 | && (current->ptrace & PT_PTRACED)) | 565 | && (current->ptrace & PT_PTRACED)) |
569 | do_syscall_trace(); | 566 | do_syscall_trace(); |
570 | } | 567 | } |
diff --git a/arch/powerpc/kernel/rtas-rtc.c b/arch/powerpc/kernel/rtas-rtc.c index 635d3b9a8811..34d073fb6091 100644 --- a/arch/powerpc/kernel/rtas-rtc.c +++ b/arch/powerpc/kernel/rtas-rtc.c | |||
@@ -52,7 +52,7 @@ void rtas_get_rtc_time(struct rtc_time *rtc_tm) | |||
52 | error = rtas_call(rtas_token("get-time-of-day"), 0, 8, ret); | 52 | error = rtas_call(rtas_token("get-time-of-day"), 0, 8, ret); |
53 | if (error == RTAS_CLOCK_BUSY || rtas_is_extended_busy(error)) { | 53 | if (error == RTAS_CLOCK_BUSY || rtas_is_extended_busy(error)) { |
54 | if (in_interrupt() && printk_ratelimit()) { | 54 | if (in_interrupt() && printk_ratelimit()) { |
55 | memset(&rtc_tm, 0, sizeof(struct rtc_time)); | 55 | memset(rtc_tm, 0, sizeof(struct rtc_time)); |
56 | printk(KERN_WARNING "error: reading clock" | 56 | printk(KERN_WARNING "error: reading clock" |
57 | " would delay interrupt\n"); | 57 | " would delay interrupt\n"); |
58 | return; /* delay not allowed */ | 58 | return; /* delay not allowed */ |
diff --git a/arch/powerpc/kernel/rtas_pci.c b/arch/powerpc/kernel/rtas_pci.c index 5579f6559912..7442775ef2a1 100644 --- a/arch/powerpc/kernel/rtas_pci.c +++ b/arch/powerpc/kernel/rtas_pci.c | |||
@@ -280,8 +280,7 @@ static int phb_set_bus_ranges(struct device_node *dev, | |||
280 | return 0; | 280 | return 0; |
281 | } | 281 | } |
282 | 282 | ||
283 | static int __devinit setup_phb(struct device_node *dev, | 283 | int __devinit setup_phb(struct device_node *dev, struct pci_controller *phb) |
284 | struct pci_controller *phb) | ||
285 | { | 284 | { |
286 | if (is_python(dev)) | 285 | if (is_python(dev)) |
287 | python_countermeasures(dev); | 286 | python_countermeasures(dev); |
@@ -359,27 +358,6 @@ unsigned long __init find_and_init_phbs(void) | |||
359 | return 0; | 358 | return 0; |
360 | } | 359 | } |
361 | 360 | ||
362 | struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) | ||
363 | { | ||
364 | struct pci_controller *phb; | ||
365 | int primary; | ||
366 | |||
367 | primary = list_empty(&hose_list); | ||
368 | phb = pcibios_alloc_controller(dn); | ||
369 | if (!phb) | ||
370 | return NULL; | ||
371 | setup_phb(dn, phb); | ||
372 | pci_process_bridge_OF_ranges(phb, dn, primary); | ||
373 | |||
374 | pci_setup_phb_io_dynamic(phb, primary); | ||
375 | |||
376 | pci_devs_phb_init_dynamic(phb); | ||
377 | scan_phb(phb); | ||
378 | |||
379 | return phb; | ||
380 | } | ||
381 | EXPORT_SYMBOL(init_phb_dynamic); | ||
382 | |||
383 | /* RPA-specific bits for removing PHBs */ | 361 | /* RPA-specific bits for removing PHBs */ |
384 | int pcibios_remove_root_bus(struct pci_controller *phb) | 362 | int pcibios_remove_root_bus(struct pci_controller *phb) |
385 | { | 363 | { |
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index a717dff695ef..f96c49b03ba0 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
@@ -311,8 +311,6 @@ void smp_release_cpus(void) | |||
311 | 311 | ||
312 | DBG(" <- smp_release_cpus()\n"); | 312 | DBG(" <- smp_release_cpus()\n"); |
313 | } | 313 | } |
314 | #else | ||
315 | #define smp_release_cpus() | ||
316 | #endif /* CONFIG_SMP || CONFIG_KEXEC */ | 314 | #endif /* CONFIG_SMP || CONFIG_KEXEC */ |
317 | 315 | ||
318 | /* | 316 | /* |
@@ -473,10 +471,12 @@ void __init setup_system(void) | |||
473 | check_smt_enabled(); | 471 | check_smt_enabled(); |
474 | smp_setup_cpu_maps(); | 472 | smp_setup_cpu_maps(); |
475 | 473 | ||
474 | #ifdef CONFIG_SMP | ||
476 | /* Release secondary cpus out of their spinloops at 0x60 now that | 475 | /* Release secondary cpus out of their spinloops at 0x60 now that |
477 | * we can map physical -> logical CPU ids | 476 | * we can map physical -> logical CPU ids |
478 | */ | 477 | */ |
479 | smp_release_cpus(); | 478 | smp_release_cpus(); |
479 | #endif | ||
480 | 480 | ||
481 | printk("Starting Linux PPC64 %s\n", system_utsname.version); | 481 | printk("Starting Linux PPC64 %s\n", system_utsname.version); |
482 | 482 | ||
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c index bd837b5dbf06..d7a4e814974d 100644 --- a/arch/powerpc/kernel/signal_32.c +++ b/arch/powerpc/kernel/signal_32.c | |||
@@ -151,10 +151,7 @@ static inline int save_general_regs(struct pt_regs *regs, | |||
151 | elf_greg_t64 *gregs = (elf_greg_t64 *)regs; | 151 | elf_greg_t64 *gregs = (elf_greg_t64 *)regs; |
152 | int i; | 152 | int i; |
153 | 153 | ||
154 | if (!FULL_REGS(regs)) { | 154 | WARN_ON(!FULL_REGS(regs)); |
155 | set_thread_flag(TIF_SAVE_NVGPRS); | ||
156 | current_thread_info()->nvgprs_frame = frame->mc_gregs; | ||
157 | } | ||
158 | 155 | ||
159 | for (i = 0; i <= PT_RESULT; i ++) { | 156 | for (i = 0; i <= PT_RESULT; i ++) { |
160 | if (i == 14 && !FULL_REGS(regs)) | 157 | if (i == 14 && !FULL_REGS(regs)) |
@@ -215,15 +212,7 @@ static inline int get_old_sigaction(struct k_sigaction *new_ka, | |||
215 | static inline int save_general_regs(struct pt_regs *regs, | 212 | static inline int save_general_regs(struct pt_regs *regs, |
216 | struct mcontext __user *frame) | 213 | struct mcontext __user *frame) |
217 | { | 214 | { |
218 | if (!FULL_REGS(regs)) { | 215 | WARN_ON(!FULL_REGS(regs)); |
219 | /* Zero out the unsaved GPRs to avoid information | ||
220 | leak, and set TIF_SAVE_NVGPRS to ensure that the | ||
221 | registers do actually get saved later. */ | ||
222 | memset(®s->gpr[14], 0, 18 * sizeof(unsigned long)); | ||
223 | current_thread_info()->nvgprs_frame = &frame->mc_gregs; | ||
224 | set_thread_flag(TIF_SAVE_NVGPRS); | ||
225 | } | ||
226 | |||
227 | return __copy_to_user(&frame->mc_gregs, regs, GP_REGS_SIZE); | 216 | return __copy_to_user(&frame->mc_gregs, regs, GP_REGS_SIZE); |
228 | } | 217 | } |
229 | 218 | ||
@@ -826,8 +815,8 @@ static int do_setcontext(struct ucontext __user *ucp, struct pt_regs *regs, int | |||
826 | } | 815 | } |
827 | 816 | ||
828 | long sys_swapcontext(struct ucontext __user *old_ctx, | 817 | long sys_swapcontext(struct ucontext __user *old_ctx, |
829 | struct ucontext __user *new_ctx, | 818 | struct ucontext __user *new_ctx, |
830 | int ctx_size, int r6, int r7, int r8, struct pt_regs *regs) | 819 | int ctx_size, int r6, int r7, int r8, struct pt_regs *regs) |
831 | { | 820 | { |
832 | unsigned char tmp; | 821 | unsigned char tmp; |
833 | 822 | ||
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c index 497a5d3df359..4324f8a8ba24 100644 --- a/arch/powerpc/kernel/signal_64.c +++ b/arch/powerpc/kernel/signal_64.c | |||
@@ -118,14 +118,7 @@ static long setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, | |||
118 | err |= __put_user(0, &sc->v_regs); | 118 | err |= __put_user(0, &sc->v_regs); |
119 | #endif /* CONFIG_ALTIVEC */ | 119 | #endif /* CONFIG_ALTIVEC */ |
120 | err |= __put_user(&sc->gp_regs, &sc->regs); | 120 | err |= __put_user(&sc->gp_regs, &sc->regs); |
121 | if (!FULL_REGS(regs)) { | 121 | WARN_ON(!FULL_REGS(regs)); |
122 | /* Zero out the unsaved GPRs to avoid information | ||
123 | leak, and set TIF_SAVE_NVGPRS to ensure that the | ||
124 | registers do actually get saved later. */ | ||
125 | memset(®s->gpr[14], 0, 18 * sizeof(unsigned long)); | ||
126 | set_thread_flag(TIF_SAVE_NVGPRS); | ||
127 | current_thread_info()->nvgprs_frame = &sc->gp_regs; | ||
128 | } | ||
129 | err |= __copy_to_user(&sc->gp_regs, regs, GP_REGS_SIZE); | 122 | err |= __copy_to_user(&sc->gp_regs, regs, GP_REGS_SIZE); |
130 | err |= __copy_to_user(&sc->fp_regs, ¤t->thread.fpr, FP_REGS_SIZE); | 123 | err |= __copy_to_user(&sc->fp_regs, ¤t->thread.fpr, FP_REGS_SIZE); |
131 | err |= __put_user(signr, &sc->signal); | 124 | err |= __put_user(signr, &sc->signal); |
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c index 475249dc2350..cd75ab2908fa 100644 --- a/arch/powerpc/kernel/sys_ppc32.c +++ b/arch/powerpc/kernel/sys_ppc32.c | |||
@@ -176,7 +176,6 @@ struct timex32 { | |||
176 | }; | 176 | }; |
177 | 177 | ||
178 | extern int do_adjtimex(struct timex *); | 178 | extern int do_adjtimex(struct timex *); |
179 | extern void ppc_adjtimex(void); | ||
180 | 179 | ||
181 | asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp) | 180 | asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp) |
182 | { | 181 | { |
@@ -209,9 +208,6 @@ asmlinkage long compat_sys_adjtimex(struct timex32 __user *utp) | |||
209 | 208 | ||
210 | ret = do_adjtimex(&txc); | 209 | ret = do_adjtimex(&txc); |
211 | 210 | ||
212 | /* adjust the conversion of TB to time of day to track adjtimex */ | ||
213 | ppc_adjtimex(); | ||
214 | |||
215 | if(put_user(txc.modes, &utp->modes) || | 211 | if(put_user(txc.modes, &utp->modes) || |
216 | __put_user(txc.offset, &utp->offset) || | 212 | __put_user(txc.offset, &utp->offset) || |
217 | __put_user(txc.freq, &utp->freq) || | 213 | __put_user(txc.freq, &utp->freq) || |
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S index 007b15ee36d2..1ad55f0466fd 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.S | |||
@@ -36,8 +36,6 @@ | |||
36 | #ifdef CONFIG_PPC64 | 36 | #ifdef CONFIG_PPC64 |
37 | #define sys_sigpending sys_ni_syscall | 37 | #define sys_sigpending sys_ni_syscall |
38 | #define sys_old_getrlimit sys_ni_syscall | 38 | #define sys_old_getrlimit sys_ni_syscall |
39 | #else | ||
40 | #define ppc_rtas sys_ni_syscall | ||
41 | #endif | 39 | #endif |
42 | 40 | ||
43 | _GLOBAL(sys_call_table) | 41 | _GLOBAL(sys_call_table) |
@@ -290,7 +288,7 @@ COMPAT_SYS(clock_settime) | |||
290 | COMPAT_SYS(clock_gettime) | 288 | COMPAT_SYS(clock_gettime) |
291 | COMPAT_SYS(clock_getres) | 289 | COMPAT_SYS(clock_getres) |
292 | COMPAT_SYS(clock_nanosleep) | 290 | COMPAT_SYS(clock_nanosleep) |
293 | COMPAT_SYS(swapcontext) | 291 | SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext) |
294 | COMPAT_SYS(tgkill) | 292 | COMPAT_SYS(tgkill) |
295 | COMPAT_SYS(utimes) | 293 | COMPAT_SYS(utimes) |
296 | COMPAT_SYS(statfs64) | 294 | COMPAT_SYS(statfs64) |
@@ -323,3 +321,4 @@ SYSCALL(spu_run) | |||
323 | SYSCALL(spu_create) | 321 | SYSCALL(spu_create) |
324 | COMPAT_SYS(pselect6) | 322 | COMPAT_SYS(pselect6) |
325 | COMPAT_SYS(ppoll) | 323 | COMPAT_SYS(ppoll) |
324 | SYSCALL(unshare) | ||
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 1886045a2fd8..86f7e3d154d8 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <linux/security.h> | 50 | #include <linux/security.h> |
51 | #include <linux/percpu.h> | 51 | #include <linux/percpu.h> |
52 | #include <linux/rtc.h> | 52 | #include <linux/rtc.h> |
53 | #include <linux/jiffies.h> | ||
53 | 54 | ||
54 | #include <asm/io.h> | 55 | #include <asm/io.h> |
55 | #include <asm/processor.h> | 56 | #include <asm/processor.h> |
@@ -99,7 +100,15 @@ EXPORT_SYMBOL(tb_ticks_per_usec); | |||
99 | unsigned long tb_ticks_per_sec; | 100 | unsigned long tb_ticks_per_sec; |
100 | u64 tb_to_xs; | 101 | u64 tb_to_xs; |
101 | unsigned tb_to_us; | 102 | unsigned tb_to_us; |
102 | unsigned long processor_freq; | 103 | |
104 | #define TICKLEN_SCALE (SHIFT_SCALE - 10) | ||
105 | u64 last_tick_len; /* units are ns / 2^TICKLEN_SCALE */ | ||
106 | u64 ticklen_to_xs; /* 0.64 fraction */ | ||
107 | |||
108 | /* If last_tick_len corresponds to about 1/HZ seconds, then | ||
109 | last_tick_len << TICKLEN_SHIFT will be about 2^63. */ | ||
110 | #define TICKLEN_SHIFT (63 - 30 - TICKLEN_SCALE + SHIFT_HZ) | ||
111 | |||
103 | DEFINE_SPINLOCK(rtc_lock); | 112 | DEFINE_SPINLOCK(rtc_lock); |
104 | EXPORT_SYMBOL_GPL(rtc_lock); | 113 | EXPORT_SYMBOL_GPL(rtc_lock); |
105 | 114 | ||
@@ -113,10 +122,6 @@ extern unsigned long wall_jiffies; | |||
113 | extern struct timezone sys_tz; | 122 | extern struct timezone sys_tz; |
114 | static long timezone_offset; | 123 | static long timezone_offset; |
115 | 124 | ||
116 | void ppc_adjtimex(void); | ||
117 | |||
118 | static unsigned adjusting_time = 0; | ||
119 | |||
120 | unsigned long ppc_proc_freq; | 125 | unsigned long ppc_proc_freq; |
121 | unsigned long ppc_tb_freq; | 126 | unsigned long ppc_tb_freq; |
122 | 127 | ||
@@ -178,8 +183,7 @@ static __inline__ void timer_check_rtc(void) | |||
178 | */ | 183 | */ |
179 | if (ppc_md.set_rtc_time && ntp_synced() && | 184 | if (ppc_md.set_rtc_time && ntp_synced() && |
180 | xtime.tv_sec - last_rtc_update >= 659 && | 185 | xtime.tv_sec - last_rtc_update >= 659 && |
181 | abs((xtime.tv_nsec/1000) - (1000000-1000000/HZ)) < 500000/HZ && | 186 | abs((xtime.tv_nsec/1000) - (1000000-1000000/HZ)) < 500000/HZ) { |
182 | jiffies - wall_jiffies == 1) { | ||
183 | struct rtc_time tm; | 187 | struct rtc_time tm; |
184 | to_tm(xtime.tv_sec + 1 + timezone_offset, &tm); | 188 | to_tm(xtime.tv_sec + 1 + timezone_offset, &tm); |
185 | tm.tm_year -= 1900; | 189 | tm.tm_year -= 1900; |
@@ -226,15 +230,14 @@ void do_gettimeofday(struct timeval *tv) | |||
226 | if (__USE_RTC()) { | 230 | if (__USE_RTC()) { |
227 | /* do this the old way */ | 231 | /* do this the old way */ |
228 | unsigned long flags, seq; | 232 | unsigned long flags, seq; |
229 | unsigned int sec, nsec, usec, lost; | 233 | unsigned int sec, nsec, usec; |
230 | 234 | ||
231 | do { | 235 | do { |
232 | seq = read_seqbegin_irqsave(&xtime_lock, flags); | 236 | seq = read_seqbegin_irqsave(&xtime_lock, flags); |
233 | sec = xtime.tv_sec; | 237 | sec = xtime.tv_sec; |
234 | nsec = xtime.tv_nsec + tb_ticks_since(tb_last_stamp); | 238 | nsec = xtime.tv_nsec + tb_ticks_since(tb_last_stamp); |
235 | lost = jiffies - wall_jiffies; | ||
236 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); | 239 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); |
237 | usec = nsec / 1000 + lost * (1000000 / HZ); | 240 | usec = nsec / 1000; |
238 | while (usec >= 1000000) { | 241 | while (usec >= 1000000) { |
239 | usec -= 1000000; | 242 | usec -= 1000000; |
240 | ++sec; | 243 | ++sec; |
@@ -248,23 +251,6 @@ void do_gettimeofday(struct timeval *tv) | |||
248 | 251 | ||
249 | EXPORT_SYMBOL(do_gettimeofday); | 252 | EXPORT_SYMBOL(do_gettimeofday); |
250 | 253 | ||
251 | /* Synchronize xtime with do_gettimeofday */ | ||
252 | |||
253 | static inline void timer_sync_xtime(unsigned long cur_tb) | ||
254 | { | ||
255 | #ifdef CONFIG_PPC64 | ||
256 | /* why do we do this? */ | ||
257 | struct timeval my_tv; | ||
258 | |||
259 | __do_gettimeofday(&my_tv, cur_tb); | ||
260 | |||
261 | if (xtime.tv_sec <= my_tv.tv_sec) { | ||
262 | xtime.tv_sec = my_tv.tv_sec; | ||
263 | xtime.tv_nsec = my_tv.tv_usec * 1000; | ||
264 | } | ||
265 | #endif | ||
266 | } | ||
267 | |||
268 | /* | 254 | /* |
269 | * There are two copies of tb_to_xs and stamp_xsec so that no | 255 | * There are two copies of tb_to_xs and stamp_xsec so that no |
270 | * lock is needed to access and use these values in | 256 | * lock is needed to access and use these values in |
@@ -297,9 +283,9 @@ static inline void update_gtod(u64 new_tb_stamp, u64 new_stamp_xsec, | |||
297 | * the two values of tb_update_count match and are even then the | 283 | * the two values of tb_update_count match and are even then the |
298 | * tb_to_xs and stamp_xsec values are consistent. If not, then it | 284 | * tb_to_xs and stamp_xsec values are consistent. If not, then it |
299 | * loops back and reads them again until this criteria is met. | 285 | * loops back and reads them again until this criteria is met. |
286 | * We expect the caller to have done the first increment of | ||
287 | * vdso_data->tb_update_count already. | ||
300 | */ | 288 | */ |
301 | ++(vdso_data->tb_update_count); | ||
302 | smp_wmb(); | ||
303 | vdso_data->tb_orig_stamp = new_tb_stamp; | 289 | vdso_data->tb_orig_stamp = new_tb_stamp; |
304 | vdso_data->stamp_xsec = new_stamp_xsec; | 290 | vdso_data->stamp_xsec = new_stamp_xsec; |
305 | vdso_data->tb_to_xs = new_tb_to_xs; | 291 | vdso_data->tb_to_xs = new_tb_to_xs; |
@@ -323,15 +309,40 @@ static __inline__ void timer_recalc_offset(u64 cur_tb) | |||
323 | { | 309 | { |
324 | unsigned long offset; | 310 | unsigned long offset; |
325 | u64 new_stamp_xsec; | 311 | u64 new_stamp_xsec; |
312 | u64 tlen, t2x; | ||
313 | u64 tb, xsec_old, xsec_new; | ||
314 | struct gettimeofday_vars *varp; | ||
326 | 315 | ||
327 | if (__USE_RTC()) | 316 | if (__USE_RTC()) |
328 | return; | 317 | return; |
318 | tlen = current_tick_length(); | ||
329 | offset = cur_tb - do_gtod.varp->tb_orig_stamp; | 319 | offset = cur_tb - do_gtod.varp->tb_orig_stamp; |
330 | if ((offset & 0x80000000u) == 0) | 320 | if (tlen == last_tick_len && offset < 0x80000000u) |
331 | return; | 321 | return; |
332 | new_stamp_xsec = do_gtod.varp->stamp_xsec | 322 | if (tlen != last_tick_len) { |
333 | + mulhdu(offset, do_gtod.varp->tb_to_xs); | 323 | t2x = mulhdu(tlen << TICKLEN_SHIFT, ticklen_to_xs); |
334 | update_gtod(cur_tb, new_stamp_xsec, do_gtod.varp->tb_to_xs); | 324 | last_tick_len = tlen; |
325 | } else | ||
326 | t2x = do_gtod.varp->tb_to_xs; | ||
327 | new_stamp_xsec = (u64) xtime.tv_nsec * XSEC_PER_SEC; | ||
328 | do_div(new_stamp_xsec, 1000000000); | ||
329 | new_stamp_xsec += (u64) xtime.tv_sec * XSEC_PER_SEC; | ||
330 | |||
331 | ++vdso_data->tb_update_count; | ||
332 | smp_mb(); | ||
333 | |||
334 | /* | ||
335 | * Make sure time doesn't go backwards for userspace gettimeofday. | ||
336 | */ | ||
337 | tb = get_tb(); | ||
338 | varp = do_gtod.varp; | ||
339 | xsec_old = mulhdu(tb - varp->tb_orig_stamp, varp->tb_to_xs) | ||
340 | + varp->stamp_xsec; | ||
341 | xsec_new = mulhdu(tb - cur_tb, t2x) + new_stamp_xsec; | ||
342 | if (xsec_new < xsec_old) | ||
343 | new_stamp_xsec += xsec_old - xsec_new; | ||
344 | |||
345 | update_gtod(cur_tb, new_stamp_xsec, t2x); | ||
335 | } | 346 | } |
336 | 347 | ||
337 | #ifdef CONFIG_SMP | 348 | #ifdef CONFIG_SMP |
@@ -462,13 +473,10 @@ void timer_interrupt(struct pt_regs * regs) | |||
462 | write_seqlock(&xtime_lock); | 473 | write_seqlock(&xtime_lock); |
463 | tb_last_jiffy += tb_ticks_per_jiffy; | 474 | tb_last_jiffy += tb_ticks_per_jiffy; |
464 | tb_last_stamp = per_cpu(last_jiffy, cpu); | 475 | tb_last_stamp = per_cpu(last_jiffy, cpu); |
465 | timer_recalc_offset(tb_last_jiffy); | ||
466 | do_timer(regs); | 476 | do_timer(regs); |
467 | timer_sync_xtime(tb_last_jiffy); | 477 | timer_recalc_offset(tb_last_jiffy); |
468 | timer_check_rtc(); | 478 | timer_check_rtc(); |
469 | write_sequnlock(&xtime_lock); | 479 | write_sequnlock(&xtime_lock); |
470 | if (adjusting_time && (time_adjust == 0)) | ||
471 | ppc_adjtimex(); | ||
472 | } | 480 | } |
473 | 481 | ||
474 | next_dec = tb_ticks_per_jiffy - ticks; | 482 | next_dec = tb_ticks_per_jiffy - ticks; |
@@ -492,16 +500,18 @@ void timer_interrupt(struct pt_regs * regs) | |||
492 | 500 | ||
493 | void wakeup_decrementer(void) | 501 | void wakeup_decrementer(void) |
494 | { | 502 | { |
495 | int i; | 503 | unsigned long ticks; |
496 | 504 | ||
497 | set_dec(tb_ticks_per_jiffy); | ||
498 | /* | 505 | /* |
499 | * We don't expect this to be called on a machine with a 601, | 506 | * The timebase gets saved on sleep and restored on wakeup, |
500 | * so using get_tbl is fine. | 507 | * so all we need to do is to reset the decrementer. |
501 | */ | 508 | */ |
502 | tb_last_stamp = tb_last_jiffy = get_tb(); | 509 | ticks = tb_ticks_since(__get_cpu_var(last_jiffy)); |
503 | for_each_cpu(i) | 510 | if (ticks < tb_ticks_per_jiffy) |
504 | per_cpu(last_jiffy, i) = tb_last_stamp; | 511 | ticks = tb_ticks_per_jiffy - ticks; |
512 | else | ||
513 | ticks = 1; | ||
514 | set_dec(ticks); | ||
505 | } | 515 | } |
506 | 516 | ||
507 | #ifdef CONFIG_SMP | 517 | #ifdef CONFIG_SMP |
@@ -541,8 +551,8 @@ int do_settimeofday(struct timespec *tv) | |||
541 | time_t wtm_sec, new_sec = tv->tv_sec; | 551 | time_t wtm_sec, new_sec = tv->tv_sec; |
542 | long wtm_nsec, new_nsec = tv->tv_nsec; | 552 | long wtm_nsec, new_nsec = tv->tv_nsec; |
543 | unsigned long flags; | 553 | unsigned long flags; |
544 | long int tb_delta; | 554 | u64 new_xsec; |
545 | u64 new_xsec, tb_delta_xs; | 555 | unsigned long tb_delta; |
546 | 556 | ||
547 | if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) | 557 | if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) |
548 | return -EINVAL; | 558 | return -EINVAL; |
@@ -563,9 +573,23 @@ int do_settimeofday(struct timespec *tv) | |||
563 | first_settimeofday = 0; | 573 | first_settimeofday = 0; |
564 | } | 574 | } |
565 | #endif | 575 | #endif |
576 | |||
577 | /* Make userspace gettimeofday spin until we're done. */ | ||
578 | ++vdso_data->tb_update_count; | ||
579 | smp_mb(); | ||
580 | |||
581 | /* | ||
582 | * Subtract off the number of nanoseconds since the | ||
583 | * beginning of the last tick. | ||
584 | * Note that since we don't increment jiffies_64 anywhere other | ||
585 | * than in do_timer (since we don't have a lost tick problem), | ||
586 | * wall_jiffies will always be the same as jiffies, | ||
587 | * and therefore the (jiffies - wall_jiffies) computation | ||
588 | * has been removed. | ||
589 | */ | ||
566 | tb_delta = tb_ticks_since(tb_last_stamp); | 590 | tb_delta = tb_ticks_since(tb_last_stamp); |
567 | tb_delta += (jiffies - wall_jiffies) * tb_ticks_per_jiffy; | 591 | tb_delta = mulhdu(tb_delta, do_gtod.varp->tb_to_xs); /* in xsec */ |
568 | tb_delta_xs = mulhdu(tb_delta, do_gtod.varp->tb_to_xs); | 592 | new_nsec -= SCALE_XSEC(tb_delta, 1000000000); |
569 | 593 | ||
570 | wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - new_sec); | 594 | wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - new_sec); |
571 | wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - new_nsec); | 595 | wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - new_nsec); |
@@ -580,12 +604,12 @@ int do_settimeofday(struct timespec *tv) | |||
580 | 604 | ||
581 | ntp_clear(); | 605 | ntp_clear(); |
582 | 606 | ||
583 | new_xsec = 0; | 607 | new_xsec = xtime.tv_nsec; |
584 | if (new_nsec != 0) { | 608 | if (new_xsec != 0) { |
585 | new_xsec = (u64)new_nsec * XSEC_PER_SEC; | 609 | new_xsec *= XSEC_PER_SEC; |
586 | do_div(new_xsec, NSEC_PER_SEC); | 610 | do_div(new_xsec, NSEC_PER_SEC); |
587 | } | 611 | } |
588 | new_xsec += (u64)new_sec * XSEC_PER_SEC - tb_delta_xs; | 612 | new_xsec += (u64)xtime.tv_sec * XSEC_PER_SEC; |
589 | update_gtod(tb_last_jiffy, new_xsec, do_gtod.varp->tb_to_xs); | 613 | update_gtod(tb_last_jiffy, new_xsec, do_gtod.varp->tb_to_xs); |
590 | 614 | ||
591 | vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; | 615 | vdso_data->tz_minuteswest = sys_tz.tz_minuteswest; |
@@ -671,7 +695,7 @@ void __init time_init(void) | |||
671 | unsigned long flags; | 695 | unsigned long flags; |
672 | unsigned long tm = 0; | 696 | unsigned long tm = 0; |
673 | struct div_result res; | 697 | struct div_result res; |
674 | u64 scale; | 698 | u64 scale, x; |
675 | unsigned shift; | 699 | unsigned shift; |
676 | 700 | ||
677 | if (ppc_md.time_init != NULL) | 701 | if (ppc_md.time_init != NULL) |
@@ -693,11 +717,42 @@ void __init time_init(void) | |||
693 | } | 717 | } |
694 | 718 | ||
695 | tb_ticks_per_jiffy = ppc_tb_freq / HZ; | 719 | tb_ticks_per_jiffy = ppc_tb_freq / HZ; |
696 | tb_ticks_per_sec = tb_ticks_per_jiffy * HZ; | 720 | tb_ticks_per_sec = ppc_tb_freq; |
697 | tb_ticks_per_usec = ppc_tb_freq / 1000000; | 721 | tb_ticks_per_usec = ppc_tb_freq / 1000000; |
698 | tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000); | 722 | tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000); |
699 | div128_by_32(1024*1024, 0, tb_ticks_per_sec, &res); | 723 | |
700 | tb_to_xs = res.result_low; | 724 | /* |
725 | * Calculate the length of each tick in ns. It will not be | ||
726 | * exactly 1e9/HZ unless ppc_tb_freq is divisible by HZ. | ||
727 | * We compute 1e9 * tb_ticks_per_jiffy / ppc_tb_freq, | ||
728 | * rounded up. | ||
729 | */ | ||
730 | x = (u64) NSEC_PER_SEC * tb_ticks_per_jiffy + ppc_tb_freq - 1; | ||
731 | do_div(x, ppc_tb_freq); | ||
732 | tick_nsec = x; | ||
733 | last_tick_len = x << TICKLEN_SCALE; | ||
734 | |||
735 | /* | ||
736 | * Compute ticklen_to_xs, which is a factor which gets multiplied | ||
737 | * by (last_tick_len << TICKLEN_SHIFT) to get a tb_to_xs value. | ||
738 | * It is computed as: | ||
739 | * ticklen_to_xs = 2^N / (tb_ticks_per_jiffy * 1e9) | ||
740 | * where N = 64 + 20 - TICKLEN_SCALE - TICKLEN_SHIFT | ||
741 | * which turns out to be N = 51 - SHIFT_HZ. | ||
742 | * This gives the result as a 0.64 fixed-point fraction. | ||
743 | * That value is reduced by an offset amounting to 1 xsec per | ||
744 | * 2^31 timebase ticks to avoid problems with time going backwards | ||
745 | * by 1 xsec when we do timer_recalc_offset due to losing the | ||
746 | * fractional xsec. That offset is equal to ppc_tb_freq/2^51 | ||
747 | * since there are 2^20 xsec in a second. | ||
748 | */ | ||
749 | div128_by_32((1ULL << 51) - ppc_tb_freq, 0, | ||
750 | tb_ticks_per_jiffy << SHIFT_HZ, &res); | ||
751 | div128_by_32(res.result_high, res.result_low, NSEC_PER_SEC, &res); | ||
752 | ticklen_to_xs = res.result_low; | ||
753 | |||
754 | /* Compute tb_to_xs from tick_nsec */ | ||
755 | tb_to_xs = mulhdu(last_tick_len << TICKLEN_SHIFT, ticklen_to_xs); | ||
701 | 756 | ||
702 | /* | 757 | /* |
703 | * Compute scale factor for sched_clock. | 758 | * Compute scale factor for sched_clock. |
@@ -724,6 +779,14 @@ void __init time_init(void) | |||
724 | tm = get_boot_time(); | 779 | tm = get_boot_time(); |
725 | 780 | ||
726 | write_seqlock_irqsave(&xtime_lock, flags); | 781 | write_seqlock_irqsave(&xtime_lock, flags); |
782 | |||
783 | /* If platform provided a timezone (pmac), we correct the time */ | ||
784 | if (timezone_offset) { | ||
785 | sys_tz.tz_minuteswest = -timezone_offset / 60; | ||
786 | sys_tz.tz_dsttime = 0; | ||
787 | tm -= timezone_offset; | ||
788 | } | ||
789 | |||
727 | xtime.tv_sec = tm; | 790 | xtime.tv_sec = tm; |
728 | xtime.tv_nsec = 0; | 791 | xtime.tv_nsec = 0; |
729 | do_gtod.varp = &do_gtod.vars[0]; | 792 | do_gtod.varp = &do_gtod.vars[0]; |
@@ -738,18 +801,11 @@ void __init time_init(void) | |||
738 | vdso_data->tb_orig_stamp = tb_last_jiffy; | 801 | vdso_data->tb_orig_stamp = tb_last_jiffy; |
739 | vdso_data->tb_update_count = 0; | 802 | vdso_data->tb_update_count = 0; |
740 | vdso_data->tb_ticks_per_sec = tb_ticks_per_sec; | 803 | vdso_data->tb_ticks_per_sec = tb_ticks_per_sec; |
741 | vdso_data->stamp_xsec = xtime.tv_sec * XSEC_PER_SEC; | 804 | vdso_data->stamp_xsec = (u64) xtime.tv_sec * XSEC_PER_SEC; |
742 | vdso_data->tb_to_xs = tb_to_xs; | 805 | vdso_data->tb_to_xs = tb_to_xs; |
743 | 806 | ||
744 | time_freq = 0; | 807 | time_freq = 0; |
745 | 808 | ||
746 | /* If platform provided a timezone (pmac), we correct the time */ | ||
747 | if (timezone_offset) { | ||
748 | sys_tz.tz_minuteswest = -timezone_offset / 60; | ||
749 | sys_tz.tz_dsttime = 0; | ||
750 | xtime.tv_sec -= timezone_offset; | ||
751 | } | ||
752 | |||
753 | last_rtc_update = xtime.tv_sec; | 809 | last_rtc_update = xtime.tv_sec; |
754 | set_normalized_timespec(&wall_to_monotonic, | 810 | set_normalized_timespec(&wall_to_monotonic, |
755 | -xtime.tv_sec, -xtime.tv_nsec); | 811 | -xtime.tv_sec, -xtime.tv_nsec); |
@@ -759,126 +815,6 @@ void __init time_init(void) | |||
759 | set_dec(tb_ticks_per_jiffy); | 815 | set_dec(tb_ticks_per_jiffy); |
760 | } | 816 | } |
761 | 817 | ||
762 | /* | ||
763 | * After adjtimex is called, adjust the conversion of tb ticks | ||
764 | * to microseconds to keep do_gettimeofday synchronized | ||
765 | * with ntpd. | ||
766 | * | ||
767 | * Use the time_adjust, time_freq and time_offset computed by adjtimex to | ||
768 | * adjust the frequency. | ||
769 | */ | ||
770 | |||
771 | /* #define DEBUG_PPC_ADJTIMEX 1 */ | ||
772 | |||
773 | void ppc_adjtimex(void) | ||
774 | { | ||
775 | #ifdef CONFIG_PPC64 | ||
776 | unsigned long den, new_tb_ticks_per_sec, tb_ticks, old_xsec, | ||
777 | new_tb_to_xs, new_xsec, new_stamp_xsec; | ||
778 | unsigned long tb_ticks_per_sec_delta; | ||
779 | long delta_freq, ltemp; | ||
780 | struct div_result divres; | ||
781 | unsigned long flags; | ||
782 | long singleshot_ppm = 0; | ||
783 | |||
784 | /* | ||
785 | * Compute parts per million frequency adjustment to | ||
786 | * accomplish the time adjustment implied by time_offset to be | ||
787 | * applied over the elapsed time indicated by time_constant. | ||
788 | * Use SHIFT_USEC to get it into the same units as | ||
789 | * time_freq. | ||
790 | */ | ||
791 | if ( time_offset < 0 ) { | ||
792 | ltemp = -time_offset; | ||
793 | ltemp <<= SHIFT_USEC - SHIFT_UPDATE; | ||
794 | ltemp >>= SHIFT_KG + time_constant; | ||
795 | ltemp = -ltemp; | ||
796 | } else { | ||
797 | ltemp = time_offset; | ||
798 | ltemp <<= SHIFT_USEC - SHIFT_UPDATE; | ||
799 | ltemp >>= SHIFT_KG + time_constant; | ||
800 | } | ||
801 | |||
802 | /* If there is a single shot time adjustment in progress */ | ||
803 | if ( time_adjust ) { | ||
804 | #ifdef DEBUG_PPC_ADJTIMEX | ||
805 | printk("ppc_adjtimex: "); | ||
806 | if ( adjusting_time == 0 ) | ||
807 | printk("starting "); | ||
808 | printk("single shot time_adjust = %ld\n", time_adjust); | ||
809 | #endif | ||
810 | |||
811 | adjusting_time = 1; | ||
812 | |||
813 | /* | ||
814 | * Compute parts per million frequency adjustment | ||
815 | * to match time_adjust | ||
816 | */ | ||
817 | singleshot_ppm = tickadj * HZ; | ||
818 | /* | ||
819 | * The adjustment should be tickadj*HZ to match the code in | ||
820 | * linux/kernel/timer.c, but experiments show that this is too | ||
821 | * large. 3/4 of tickadj*HZ seems about right | ||
822 | */ | ||
823 | singleshot_ppm -= singleshot_ppm / 4; | ||
824 | /* Use SHIFT_USEC to get it into the same units as time_freq */ | ||
825 | singleshot_ppm <<= SHIFT_USEC; | ||
826 | if ( time_adjust < 0 ) | ||
827 | singleshot_ppm = -singleshot_ppm; | ||
828 | } | ||
829 | else { | ||
830 | #ifdef DEBUG_PPC_ADJTIMEX | ||
831 | if ( adjusting_time ) | ||
832 | printk("ppc_adjtimex: ending single shot time_adjust\n"); | ||
833 | #endif | ||
834 | adjusting_time = 0; | ||
835 | } | ||
836 | |||
837 | /* Add up all of the frequency adjustments */ | ||
838 | delta_freq = time_freq + ltemp + singleshot_ppm; | ||
839 | |||
840 | /* | ||
841 | * Compute a new value for tb_ticks_per_sec based on | ||
842 | * the frequency adjustment | ||
843 | */ | ||
844 | den = 1000000 * (1 << (SHIFT_USEC - 8)); | ||
845 | if ( delta_freq < 0 ) { | ||
846 | tb_ticks_per_sec_delta = ( tb_ticks_per_sec * ( (-delta_freq) >> (SHIFT_USEC - 8))) / den; | ||
847 | new_tb_ticks_per_sec = tb_ticks_per_sec + tb_ticks_per_sec_delta; | ||
848 | } | ||
849 | else { | ||
850 | tb_ticks_per_sec_delta = ( tb_ticks_per_sec * ( delta_freq >> (SHIFT_USEC - 8))) / den; | ||
851 | new_tb_ticks_per_sec = tb_ticks_per_sec - tb_ticks_per_sec_delta; | ||
852 | } | ||
853 | |||
854 | #ifdef DEBUG_PPC_ADJTIMEX | ||
855 | printk("ppc_adjtimex: ltemp = %ld, time_freq = %ld, singleshot_ppm = %ld\n", ltemp, time_freq, singleshot_ppm); | ||
856 | printk("ppc_adjtimex: tb_ticks_per_sec - base = %ld new = %ld\n", tb_ticks_per_sec, new_tb_ticks_per_sec); | ||
857 | #endif | ||
858 | |||
859 | /* | ||
860 | * Compute a new value of tb_to_xs (used to convert tb to | ||
861 | * microseconds) and a new value of stamp_xsec which is the | ||
862 | * time (in 1/2^20 second units) corresponding to | ||
863 | * tb_orig_stamp. This new value of stamp_xsec compensates | ||
864 | * for the change in frequency (implied by the new tb_to_xs) | ||
865 | * which guarantees that the current time remains the same. | ||
866 | */ | ||
867 | write_seqlock_irqsave( &xtime_lock, flags ); | ||
868 | tb_ticks = get_tb() - do_gtod.varp->tb_orig_stamp; | ||
869 | div128_by_32(1024*1024, 0, new_tb_ticks_per_sec, &divres); | ||
870 | new_tb_to_xs = divres.result_low; | ||
871 | new_xsec = mulhdu(tb_ticks, new_tb_to_xs); | ||
872 | |||
873 | old_xsec = mulhdu(tb_ticks, do_gtod.varp->tb_to_xs); | ||
874 | new_stamp_xsec = do_gtod.varp->stamp_xsec + old_xsec - new_xsec; | ||
875 | |||
876 | update_gtod(do_gtod.varp->tb_orig_stamp, new_stamp_xsec, new_tb_to_xs); | ||
877 | |||
878 | write_sequnlock_irqrestore( &xtime_lock, flags ); | ||
879 | #endif /* CONFIG_PPC64 */ | ||
880 | } | ||
881 | |||
882 | 818 | ||
883 | #define FEBRUARY 2 | 819 | #define FEBRUARY 2 |
884 | #define STARTOFTIME 1970 | 820 | #define STARTOFTIME 1970 |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 7509aa6474f2..98660aedeeb7 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -814,6 +814,8 @@ void __kprobes program_check_exception(struct pt_regs *regs) | |||
814 | return; | 814 | return; |
815 | } | 815 | } |
816 | 816 | ||
817 | local_irq_enable(); | ||
818 | |||
817 | /* Try to emulate it if we should. */ | 819 | /* Try to emulate it if we should. */ |
818 | if (reason & (REASON_ILLEGAL | REASON_PRIVILEGED)) { | 820 | if (reason & (REASON_ILLEGAL | REASON_PRIVILEGED)) { |
819 | switch (emulate_instruction(regs)) { | 821 | switch (emulate_instruction(regs)) { |
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index f0c47dab0903..04f7df39ffbb 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c | |||
@@ -182,8 +182,8 @@ static struct page * vdso_vma_nopage(struct vm_area_struct * vma, | |||
182 | unsigned long offset = address - vma->vm_start; | 182 | unsigned long offset = address - vma->vm_start; |
183 | struct page *pg; | 183 | struct page *pg; |
184 | #ifdef CONFIG_PPC64 | 184 | #ifdef CONFIG_PPC64 |
185 | void *vbase = test_thread_flag(TIF_32BIT) ? | 185 | void *vbase = (vma->vm_mm->task_size > TASK_SIZE_USER32) ? |
186 | vdso32_kbase : vdso64_kbase; | 186 | vdso64_kbase : vdso32_kbase; |
187 | #else | 187 | #else |
188 | void *vbase = vdso32_kbase; | 188 | void *vbase = vdso32_kbase; |
189 | #endif | 189 | #endif |
diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S index ccaeda5136d1..4ee871f1cadb 100644 --- a/arch/powerpc/kernel/vdso64/gettimeofday.S +++ b/arch/powerpc/kernel/vdso64/gettimeofday.S | |||
@@ -225,9 +225,9 @@ V_FUNCTION_BEGIN(__do_get_xsec) | |||
225 | .cfi_startproc | 225 | .cfi_startproc |
226 | /* check for update count & load values */ | 226 | /* check for update count & load values */ |
227 | 1: ld r8,CFG_TB_UPDATE_COUNT(r3) | 227 | 1: ld r8,CFG_TB_UPDATE_COUNT(r3) |
228 | andi. r0,r4,1 /* pending update ? loop */ | 228 | andi. r0,r8,1 /* pending update ? loop */ |
229 | bne- 1b | 229 | bne- 1b |
230 | xor r0,r4,r4 /* create dependency */ | 230 | xor r0,r8,r8 /* create dependency */ |
231 | add r3,r3,r0 | 231 | add r3,r3,r0 |
232 | 232 | ||
233 | /* Get TB & offset it */ | 233 | /* Get TB & offset it */ |
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c index d96bcfe4c6f6..33654d1b1b43 100644 --- a/arch/powerpc/mm/hash_native_64.c +++ b/arch/powerpc/mm/hash_native_64.c | |||
@@ -403,12 +403,17 @@ static void native_hpte_clear(void) | |||
403 | */ | 403 | */ |
404 | hpte_v = hptep->v; | 404 | hpte_v = hptep->v; |
405 | 405 | ||
406 | /* | ||
407 | * Call __tlbie() here rather than tlbie() since we | ||
408 | * already hold the native_tlbie_lock. | ||
409 | */ | ||
406 | if (hpte_v & HPTE_V_VALID) { | 410 | if (hpte_v & HPTE_V_VALID) { |
407 | hptep->v = 0; | 411 | hptep->v = 0; |
408 | tlbie(slot2va(hpte_v, slot), MMU_PAGE_4K, 0); | 412 | __tlbie(slot2va(hpte_v, slot), MMU_PAGE_4K); |
409 | } | 413 | } |
410 | } | 414 | } |
411 | 415 | ||
416 | asm volatile("eieio; tlbsync; ptesync":::"memory"); | ||
412 | spin_unlock(&native_tlbie_lock); | 417 | spin_unlock(&native_tlbie_lock); |
413 | local_irq_restore(flags); | 418 | local_irq_restore(flags); |
414 | } | 419 | } |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 149351a84b94..e9d589eefc14 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -88,6 +88,7 @@ static unsigned long _SDR1; | |||
88 | struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; | 88 | struct mmu_psize_def mmu_psize_defs[MMU_PAGE_COUNT]; |
89 | 89 | ||
90 | hpte_t *htab_address; | 90 | hpte_t *htab_address; |
91 | unsigned long htab_size_bytes; | ||
91 | unsigned long htab_hash_mask; | 92 | unsigned long htab_hash_mask; |
92 | int mmu_linear_psize = MMU_PAGE_4K; | 93 | int mmu_linear_psize = MMU_PAGE_4K; |
93 | int mmu_virtual_psize = MMU_PAGE_4K; | 94 | int mmu_virtual_psize = MMU_PAGE_4K; |
@@ -168,7 +169,7 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend, | |||
168 | #ifdef CONFIG_PPC_ISERIES | 169 | #ifdef CONFIG_PPC_ISERIES |
169 | if (_machine == PLATFORM_ISERIES_LPAR) | 170 | if (_machine == PLATFORM_ISERIES_LPAR) |
170 | ret = iSeries_hpte_insert(hpteg, va, | 171 | ret = iSeries_hpte_insert(hpteg, va, |
171 | virt_to_abs(paddr), | 172 | __pa(vaddr), |
172 | tmp_mode, | 173 | tmp_mode, |
173 | HPTE_V_BOLTED, | 174 | HPTE_V_BOLTED, |
174 | psize); | 175 | psize); |
@@ -399,7 +400,7 @@ void create_section_mapping(unsigned long start, unsigned long end) | |||
399 | 400 | ||
400 | void __init htab_initialize(void) | 401 | void __init htab_initialize(void) |
401 | { | 402 | { |
402 | unsigned long table, htab_size_bytes; | 403 | unsigned long table; |
403 | unsigned long pteg_count; | 404 | unsigned long pteg_count; |
404 | unsigned long mode_rw; | 405 | unsigned long mode_rw; |
405 | unsigned long base = 0, size = 0; | 406 | unsigned long base = 0, size = 0; |
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index f4e5ac122615..d296eb6b4545 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | unsigned long ioremap_base; | 38 | unsigned long ioremap_base; |
39 | unsigned long ioremap_bot; | 39 | unsigned long ioremap_bot; |
40 | EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */ | ||
40 | int io_bat_index; | 41 | int io_bat_index; |
41 | 42 | ||
42 | #if defined(CONFIG_6xx) || defined(CONFIG_POWER3) | 43 | #if defined(CONFIG_6xx) || defined(CONFIG_POWER3) |
@@ -153,6 +154,7 @@ ioremap64(unsigned long long addr, unsigned long size) | |||
153 | { | 154 | { |
154 | return __ioremap(addr, size, _PAGE_NO_CACHE); | 155 | return __ioremap(addr, size, _PAGE_NO_CACHE); |
155 | } | 156 | } |
157 | EXPORT_SYMBOL(ioremap64); | ||
156 | 158 | ||
157 | void __iomem * | 159 | void __iomem * |
158 | ioremap(phys_addr_t addr, unsigned long size) | 160 | ioremap(phys_addr_t addr, unsigned long size) |
@@ -162,6 +164,7 @@ ioremap(phys_addr_t addr, unsigned long size) | |||
162 | return ioremap64(addr64, size); | 164 | return ioremap64(addr64, size); |
163 | } | 165 | } |
164 | #endif /* CONFIG_PHYS_64BIT */ | 166 | #endif /* CONFIG_PHYS_64BIT */ |
167 | EXPORT_SYMBOL(ioremap); | ||
165 | 168 | ||
166 | void __iomem * | 169 | void __iomem * |
167 | __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) | 170 | __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) |
@@ -247,6 +250,7 @@ __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) | |||
247 | out: | 250 | out: |
248 | return (void __iomem *) (v + ((unsigned long)addr & ~PAGE_MASK)); | 251 | return (void __iomem *) (v + ((unsigned long)addr & ~PAGE_MASK)); |
249 | } | 252 | } |
253 | EXPORT_SYMBOL(__ioremap); | ||
250 | 254 | ||
251 | void iounmap(volatile void __iomem *addr) | 255 | void iounmap(volatile void __iomem *addr) |
252 | { | 256 | { |
@@ -259,6 +263,7 @@ void iounmap(volatile void __iomem *addr) | |||
259 | if (addr > high_memory && (unsigned long) addr < ioremap_bot) | 263 | if (addr > high_memory && (unsigned long) addr < ioremap_bot) |
260 | vunmap((void *) (PAGE_MASK & (unsigned long)addr)); | 264 | vunmap((void *) (PAGE_MASK & (unsigned long)addr)); |
261 | } | 265 | } |
266 | EXPORT_SYMBOL(iounmap); | ||
262 | 267 | ||
263 | void __iomem *ioport_map(unsigned long port, unsigned int len) | 268 | void __iomem *ioport_map(unsigned long port, unsigned int len) |
264 | { | 269 | { |
diff --git a/arch/powerpc/oprofile/Kconfig b/arch/powerpc/oprofile/Kconfig index eb2dece76a54..d03c0e5ca870 100644 --- a/arch/powerpc/oprofile/Kconfig +++ b/arch/powerpc/oprofile/Kconfig | |||
@@ -1,4 +1,5 @@ | |||
1 | config PROFILING | 1 | config PROFILING |
2 | depends on !PPC_ISERIES | ||
2 | bool "Profiling support (EXPERIMENTAL)" | 3 | bool "Profiling support (EXPERIMENTAL)" |
3 | help | 4 | help |
4 | Say Y here to enable the extended profiling support mechanisms used | 5 | Say Y here to enable the extended profiling support mechanisms used |
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c index 0b885300d1d1..8ca7b9396355 100644 --- a/arch/powerpc/platforms/iseries/lpevents.c +++ b/arch/powerpc/platforms/iseries/lpevents.c | |||
@@ -184,6 +184,8 @@ void setup_hvlpevent_queue(void) | |||
184 | { | 184 | { |
185 | void *eventStack; | 185 | void *eventStack; |
186 | 186 | ||
187 | spin_lock_init(&hvlpevent_queue.lock); | ||
188 | |||
187 | /* Allocate a page for the Event Stack. */ | 189 | /* Allocate a page for the Event Stack. */ |
188 | eventStack = alloc_bootmem_pages(LpEventStackSize); | 190 | eventStack = alloc_bootmem_pages(LpEventStackSize); |
189 | memset(eventStack, 0, LpEventStackSize); | 191 | memset(eventStack, 0, LpEventStackSize); |
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c index 3f8790146b00..3ecc4a652d82 100644 --- a/arch/powerpc/platforms/iseries/setup.c +++ b/arch/powerpc/platforms/iseries/setup.c | |||
@@ -648,6 +648,7 @@ static void yield_shared_processor(void) | |||
648 | * here and let the timer_interrupt code sort out the actual time. | 648 | * here and let the timer_interrupt code sort out the actual time. |
649 | */ | 649 | */ |
650 | get_lppaca()->int_dword.fields.decr_int = 1; | 650 | get_lppaca()->int_dword.fields.decr_int = 1; |
651 | ppc64_runlatch_on(); | ||
651 | process_iSeries_events(); | 652 | process_iSeries_events(); |
652 | } | 653 | } |
653 | 654 | ||
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c index 7d4099a34f92..85d6c93659cc 100644 --- a/arch/powerpc/platforms/maple/pci.c +++ b/arch/powerpc/platforms/maple/pci.c | |||
@@ -435,8 +435,8 @@ void __init maple_pci_init(void) | |||
435 | PCI_DN(np)->busno = 0xf0; | 435 | PCI_DN(np)->busno = 0xf0; |
436 | } | 436 | } |
437 | 437 | ||
438 | /* Tell pci.c to use the common resource allocation mecanism */ | 438 | /* Tell pci.c to not change any resource allocations. */ |
439 | pci_probe_only = 0; | 439 | pci_probe_only = 1; |
440 | 440 | ||
441 | /* Allow all IO */ | 441 | /* Allow all IO */ |
442 | io_page_mask = -1; | 442 | io_page_mask = -1; |
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c index 558dd0692092..bbe794891a20 100644 --- a/arch/powerpc/platforms/powermac/feature.c +++ b/arch/powerpc/platforms/powermac/feature.c | |||
@@ -1646,10 +1646,10 @@ static void intrepid_shutdown(struct macio_chip *macio, int sleep_mode) | |||
1646 | KL0_SCC_CELL_ENABLE); | 1646 | KL0_SCC_CELL_ENABLE); |
1647 | 1647 | ||
1648 | MACIO_BIC(KEYLARGO_FCR1, | 1648 | MACIO_BIC(KEYLARGO_FCR1, |
1649 | /*KL1_USB2_CELL_ENABLE |*/ | ||
1650 | KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT | | 1649 | KL1_I2S0_CELL_ENABLE | KL1_I2S0_CLK_ENABLE_BIT | |
1651 | KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE | | 1650 | KL1_I2S0_ENABLE | KL1_I2S1_CELL_ENABLE | |
1652 | KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE); | 1651 | KL1_I2S1_CLK_ENABLE_BIT | KL1_I2S1_ENABLE | |
1652 | KL1_EIDE0_ENABLE); | ||
1653 | if (pmac_mb.board_flags & PMAC_MB_MOBILE) | 1653 | if (pmac_mb.board_flags & PMAC_MB_MOBILE) |
1654 | MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N); | 1654 | MACIO_BIC(KEYLARGO_FCR1, KL1_UIDE_RESET_N); |
1655 | 1655 | ||
@@ -2183,7 +2183,7 @@ static struct pmac_mb_def pmac_mb_defs[] = { | |||
2183 | }, | 2183 | }, |
2184 | { "PowerMac10,1", "Mac mini", | 2184 | { "PowerMac10,1", "Mac mini", |
2185 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2185 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2186 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER, | 2186 | PMAC_MB_MAY_SLEEP, |
2187 | }, | 2187 | }, |
2188 | { "iMac,1", "iMac (first generation)", | 2188 | { "iMac,1", "iMac (first generation)", |
2189 | PMAC_TYPE_ORIG_IMAC, paddington_features, | 2189 | PMAC_TYPE_ORIG_IMAC, paddington_features, |
@@ -2295,11 +2295,11 @@ static struct pmac_mb_def pmac_mb_defs[] = { | |||
2295 | }, | 2295 | }, |
2296 | { "PowerBook5,8", "PowerBook G4 15\"", | 2296 | { "PowerBook5,8", "PowerBook G4 15\"", |
2297 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2297 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2298 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | 2298 | PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE, |
2299 | }, | 2299 | }, |
2300 | { "PowerBook5,9", "PowerBook G4 17\"", | 2300 | { "PowerBook5,9", "PowerBook G4 17\"", |
2301 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2301 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
2302 | PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, | 2302 | PMAC_MB_MAY_SLEEP | PMAC_MB_MOBILE, |
2303 | }, | 2303 | }, |
2304 | { "PowerBook6,1", "PowerBook G4 12\"", | 2304 | { "PowerBook6,1", "PowerBook G4 12\"", |
2305 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, | 2305 | PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, |
@@ -2491,9 +2491,7 @@ found: | |||
2491 | pmac_mb.model_id = PMAC_TYPE_COMET; | 2491 | pmac_mb.model_id = PMAC_TYPE_COMET; |
2492 | iounmap(mach_id_ptr); | 2492 | iounmap(mach_id_ptr); |
2493 | } | 2493 | } |
2494 | #endif /* CONFIG_POWER4 */ | ||
2495 | 2494 | ||
2496 | #ifdef CONFIG_6xx | ||
2497 | /* Set default value of powersave_nap on machines that support it. | 2495 | /* Set default value of powersave_nap on machines that support it. |
2498 | * It appears that uninorth rev 3 has a problem with it, we don't | 2496 | * It appears that uninorth rev 3 has a problem with it, we don't |
2499 | * enable it on those. In theory, the flush-on-lock property is | 2497 | * enable it on those. In theory, the flush-on-lock property is |
@@ -2522,10 +2520,11 @@ found: | |||
2522 | * NAP mode | 2520 | * NAP mode |
2523 | */ | 2521 | */ |
2524 | powersave_lowspeed = 1; | 2522 | powersave_lowspeed = 1; |
2525 | #endif /* CONFIG_6xx */ | 2523 | |
2526 | #ifdef CONFIG_POWER4 | 2524 | #else /* CONFIG_POWER4 */ |
2527 | powersave_nap = 1; | 2525 | powersave_nap = 1; |
2528 | #endif | 2526 | #endif /* CONFIG_POWER4 */ |
2527 | |||
2529 | /* Check for "mobile" machine */ | 2528 | /* Check for "mobile" machine */ |
2530 | if (model && (strncmp(model, "PowerBook", 9) == 0 | 2529 | if (model && (strncmp(model, "PowerBook", 9) == 0 |
2531 | || strncmp(model, "iBook", 5) == 0)) | 2530 | || strncmp(model, "iBook", 5) == 0)) |
diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c index 4ffd2a9832a0..9b7150f10414 100644 --- a/arch/powerpc/platforms/powermac/pfunc_base.c +++ b/arch/powerpc/platforms/powermac/pfunc_base.c | |||
@@ -9,7 +9,12 @@ | |||
9 | #include <asm/pmac_feature.h> | 9 | #include <asm/pmac_feature.h> |
10 | #include <asm/pmac_pfunc.h> | 10 | #include <asm/pmac_pfunc.h> |
11 | 11 | ||
12 | #undef DEBUG | ||
13 | #ifdef DEBUG | ||
12 | #define DBG(fmt...) printk(fmt) | 14 | #define DBG(fmt...) printk(fmt) |
15 | #else | ||
16 | #define DBG(fmt...) | ||
17 | #endif | ||
13 | 18 | ||
14 | static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs) | 19 | static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs) |
15 | { | 20 | { |
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c index 356a739e52b2..4baa75b1d36f 100644 --- a/arch/powerpc/platforms/powermac/pfunc_core.c +++ b/arch/powerpc/platforms/powermac/pfunc_core.c | |||
@@ -20,7 +20,13 @@ | |||
20 | #define LOG_PARSE(fmt...) | 20 | #define LOG_PARSE(fmt...) |
21 | #define LOG_ERROR(fmt...) printk(fmt) | 21 | #define LOG_ERROR(fmt...) printk(fmt) |
22 | #define LOG_BLOB(t,b,c) | 22 | #define LOG_BLOB(t,b,c) |
23 | |||
24 | #undef DEBUG | ||
25 | #ifdef DEBUG | ||
23 | #define DBG(fmt...) printk(fmt) | 26 | #define DBG(fmt...) printk(fmt) |
27 | #else | ||
28 | #define DBG(fmt...) | ||
29 | #endif | ||
24 | 30 | ||
25 | /* Command numbers */ | 31 | /* Command numbers */ |
26 | #define PMF_CMD_LIST 0 | 32 | #define PMF_CMD_LIST 0 |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 1955462f4082..29c2946f1c77 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -621,10 +621,6 @@ static void __init pmac_init_early(void) | |||
621 | /* Probe motherboard chipset */ | 621 | /* Probe motherboard chipset */ |
622 | pmac_feature_init(); | 622 | pmac_feature_init(); |
623 | 623 | ||
624 | /* We can NAP */ | ||
625 | powersave_nap = 1; | ||
626 | printk(KERN_INFO "Using native/NAP idle loop\n"); | ||
627 | |||
628 | /* Initialize debug stuff */ | 624 | /* Initialize debug stuff */ |
629 | udbg_scc_init(!!strstr(cmd_line, "sccdbg")); | 625 | udbg_scc_init(!!strstr(cmd_line, "sccdbg")); |
630 | udbg_adb_init(!!strstr(cmd_line, "btextdbg")); | 626 | udbg_adb_init(!!strstr(cmd_line, "btextdbg")); |
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index 0df2cdcd805c..6d64a9bf3474 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -435,7 +435,7 @@ struct smp_ops_t psurge_smp_ops = { | |||
435 | */ | 435 | */ |
436 | 436 | ||
437 | static void (*pmac_tb_freeze)(int freeze); | 437 | static void (*pmac_tb_freeze)(int freeze); |
438 | static unsigned long timebase; | 438 | static u64 timebase; |
439 | static int tb_req; | 439 | static int tb_req; |
440 | 440 | ||
441 | static void smp_core99_give_timebase(void) | 441 | static void smp_core99_give_timebase(void) |
diff --git a/arch/powerpc/platforms/pseries/Kconfig b/arch/powerpc/platforms/pseries/Kconfig index e3fc3407bb1f..a57032cf6f1b 100644 --- a/arch/powerpc/platforms/pseries/Kconfig +++ b/arch/powerpc/platforms/pseries/Kconfig | |||
@@ -9,13 +9,6 @@ config PPC_SPLPAR | |||
9 | processors, that is, which share physical processors between | 9 | processors, that is, which share physical processors between |
10 | two or more partitions. | 10 | two or more partitions. |
11 | 11 | ||
12 | config HMT | ||
13 | bool "Hardware multithreading" | ||
14 | depends on SMP && PPC_PSERIES && BROKEN | ||
15 | help | ||
16 | This option enables hardware multithreading on RS64 cpus. | ||
17 | pSeries systems p620 and p660 have such a cpu type. | ||
18 | |||
19 | config EEH | 12 | config EEH |
20 | bool "PCI Extended Error Handling (EEH)" if EMBEDDED | 13 | bool "PCI Extended Error Handling (EEH)" if EMBEDDED |
21 | depends on PPC_PSERIES | 14 | depends on PPC_PSERIES |
@@ -26,7 +19,7 @@ config SCANLOG | |||
26 | depends on RTAS_PROC && PPC_PSERIES | 19 | depends on RTAS_PROC && PPC_PSERIES |
27 | 20 | ||
28 | config LPARCFG | 21 | config LPARCFG |
29 | tristate "LPAR Configuration Data" | 22 | bool "LPAR Configuration Data" |
30 | depends on PPC_PSERIES || PPC_ISERIES | 23 | depends on PPC_PSERIES || PPC_ISERIES |
31 | help | 24 | help |
32 | Provide system capacity information via human readable | 25 | Provide system capacity information via human readable |
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 83578313ee7e..2ab9dcdfb415 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -893,6 +893,20 @@ void eeh_add_device_tree_early(struct device_node *dn) | |||
893 | } | 893 | } |
894 | EXPORT_SYMBOL_GPL(eeh_add_device_tree_early); | 894 | EXPORT_SYMBOL_GPL(eeh_add_device_tree_early); |
895 | 895 | ||
896 | void eeh_add_device_tree_late(struct pci_bus *bus) | ||
897 | { | ||
898 | struct pci_dev *dev; | ||
899 | |||
900 | list_for_each_entry(dev, &bus->devices, bus_list) { | ||
901 | eeh_add_device_late(dev); | ||
902 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) { | ||
903 | struct pci_bus *subbus = dev->subordinate; | ||
904 | if (subbus) | ||
905 | eeh_add_device_tree_late(subbus); | ||
906 | } | ||
907 | } | ||
908 | } | ||
909 | |||
896 | /** | 910 | /** |
897 | * eeh_add_device_late - perform EEH initialization for the indicated pci device | 911 | * eeh_add_device_late - perform EEH initialization for the indicated pci device |
898 | * @dev: pci device for which to set up EEH | 912 | * @dev: pci device for which to set up EEH |
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c index e3cbba49fd6e..b811d5ff92fe 100644 --- a/arch/powerpc/platforms/pseries/eeh_driver.c +++ b/arch/powerpc/platforms/pseries/eeh_driver.c | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | static inline const char * pcid_name (struct pci_dev *pdev) | 38 | static inline const char * pcid_name (struct pci_dev *pdev) |
39 | { | 39 | { |
40 | if (pdev->dev.driver) | 40 | if (pdev && pdev->dev.driver) |
41 | return pdev->dev.driver->name; | 41 | return pdev->dev.driver->name; |
42 | return ""; | 42 | return ""; |
43 | } | 43 | } |
diff --git a/arch/powerpc/platforms/pseries/pci_dlpar.c b/arch/powerpc/platforms/pseries/pci_dlpar.c index bdaa8aabdaa6..44abdeb9ca03 100644 --- a/arch/powerpc/platforms/pseries/pci_dlpar.c +++ b/arch/powerpc/platforms/pseries/pci_dlpar.c | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | #include <linux/pci.h> | 28 | #include <linux/pci.h> |
29 | #include <asm/pci-bridge.h> | 29 | #include <asm/pci-bridge.h> |
30 | #include <asm/ppc-pci.h> | ||
30 | 31 | ||
31 | static struct pci_bus * | 32 | static struct pci_bus * |
32 | find_bus_among_children(struct pci_bus *bus, | 33 | find_bus_among_children(struct pci_bus *bus, |
@@ -106,6 +107,8 @@ pcibios_fixup_new_pci_devices(struct pci_bus *bus, int fix_bus) | |||
106 | } | 107 | } |
107 | } | 108 | } |
108 | } | 109 | } |
110 | |||
111 | eeh_add_device_tree_late(bus); | ||
109 | } | 112 | } |
110 | EXPORT_SYMBOL_GPL(pcibios_fixup_new_pci_devices); | 113 | EXPORT_SYMBOL_GPL(pcibios_fixup_new_pci_devices); |
111 | 114 | ||
@@ -114,7 +117,6 @@ pcibios_pci_config_bridge(struct pci_dev *dev) | |||
114 | { | 117 | { |
115 | u8 sec_busno; | 118 | u8 sec_busno; |
116 | struct pci_bus *child_bus; | 119 | struct pci_bus *child_bus; |
117 | struct pci_dev *child_dev; | ||
118 | 120 | ||
119 | /* Get busno of downstream bus */ | 121 | /* Get busno of downstream bus */ |
120 | pci_read_config_byte(dev, PCI_SECONDARY_BUS, &sec_busno); | 122 | pci_read_config_byte(dev, PCI_SECONDARY_BUS, &sec_busno); |
@@ -129,10 +131,6 @@ pcibios_pci_config_bridge(struct pci_dev *dev) | |||
129 | 131 | ||
130 | pci_scan_child_bus(child_bus); | 132 | pci_scan_child_bus(child_bus); |
131 | 133 | ||
132 | list_for_each_entry(child_dev, &child_bus->devices, bus_list) { | ||
133 | eeh_add_device_late(child_dev); | ||
134 | } | ||
135 | |||
136 | /* Fixup new pci devices without touching bus struct */ | 134 | /* Fixup new pci devices without touching bus struct */ |
137 | pcibios_fixup_new_pci_devices(child_bus, 0); | 135 | pcibios_fixup_new_pci_devices(child_bus, 0); |
138 | 136 | ||
@@ -160,18 +158,52 @@ pcibios_add_pci_devices(struct pci_bus * bus) | |||
160 | 158 | ||
161 | eeh_add_device_tree_early(dn); | 159 | eeh_add_device_tree_early(dn); |
162 | 160 | ||
163 | /* pci_scan_slot should find all children */ | 161 | if (_machine == PLATFORM_PSERIES_LPAR) { |
164 | slotno = PCI_SLOT(PCI_DN(dn->child)->devfn); | 162 | /* use ofdt-based probe */ |
165 | num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0)); | 163 | of_scan_bus(dn, bus); |
166 | if (num) { | 164 | if (!list_empty(&bus->devices)) { |
167 | pcibios_fixup_new_pci_devices(bus, 1); | 165 | pcibios_fixup_new_pci_devices(bus, 0); |
168 | pci_bus_add_devices(bus); | 166 | pci_bus_add_devices(bus); |
169 | } | 167 | } |
168 | } else { | ||
169 | /* use legacy probe */ | ||
170 | slotno = PCI_SLOT(PCI_DN(dn->child)->devfn); | ||
171 | num = pci_scan_slot(bus, PCI_DEVFN(slotno, 0)); | ||
172 | if (num) { | ||
173 | pcibios_fixup_new_pci_devices(bus, 1); | ||
174 | pci_bus_add_devices(bus); | ||
175 | } | ||
170 | 176 | ||
171 | list_for_each_entry(dev, &bus->devices, bus_list) { | 177 | list_for_each_entry(dev, &bus->devices, bus_list) |
172 | eeh_add_device_late (dev); | 178 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) |
173 | if (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE) | 179 | pcibios_pci_config_bridge(dev); |
174 | pcibios_pci_config_bridge(dev); | ||
175 | } | 180 | } |
176 | } | 181 | } |
177 | EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); | 182 | EXPORT_SYMBOL_GPL(pcibios_add_pci_devices); |
183 | |||
184 | struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn) | ||
185 | { | ||
186 | struct pci_controller *phb; | ||
187 | int primary; | ||
188 | |||
189 | primary = list_empty(&hose_list); | ||
190 | phb = pcibios_alloc_controller(dn); | ||
191 | if (!phb) | ||
192 | return NULL; | ||
193 | setup_phb(dn, phb); | ||
194 | pci_process_bridge_OF_ranges(phb, dn, 0); | ||
195 | |||
196 | pci_setup_phb_io_dynamic(phb, primary); | ||
197 | |||
198 | pci_devs_phb_init_dynamic(phb); | ||
199 | |||
200 | if (dn->child) | ||
201 | eeh_add_device_tree_early(dn); | ||
202 | |||
203 | scan_phb(phb); | ||
204 | pcibios_fixup_new_pci_devices(phb->bus, 0); | ||
205 | pci_bus_add_devices(phb->bus); | ||
206 | |||
207 | return phb; | ||
208 | } | ||
209 | EXPORT_SYMBOL_GPL(init_phb_dynamic); | ||
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index 8e6b1ed1396e..8d710af50756 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -292,7 +292,7 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu) | |||
292 | if (start_cpu == RTAS_UNKNOWN_SERVICE) | 292 | if (start_cpu == RTAS_UNKNOWN_SERVICE) |
293 | return 1; | 293 | return 1; |
294 | 294 | ||
295 | status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, lcpu); | 295 | status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, pcpu); |
296 | if (status != 0) { | 296 | if (status != 0) { |
297 | printk(KERN_ERR "start-cpu failed: %i\n", status); | 297 | printk(KERN_ERR "start-cpu failed: %i\n", status); |
298 | return 0; | 298 | return 0; |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 4f26304d0263..7dcdfcb3c984 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -234,7 +234,7 @@ static void mpic_shutdown_ht_interrupt(struct mpic *mpic, unsigned int source, | |||
234 | spin_lock_irqsave(&mpic->fixup_lock, flags); | 234 | spin_lock_irqsave(&mpic->fixup_lock, flags); |
235 | writeb(0x10 + 2 * fixup->index, fixup->base + 2); | 235 | writeb(0x10 + 2 * fixup->index, fixup->base + 2); |
236 | tmp = readl(fixup->base + 4); | 236 | tmp = readl(fixup->base + 4); |
237 | tmp &= ~1U; | 237 | tmp |= 1; |
238 | writel(tmp, fixup->base + 4); | 238 | writel(tmp, fixup->base + 4); |
239 | spin_unlock_irqrestore(&mpic->fixup_lock, flags); | 239 | spin_unlock_irqrestore(&mpic->fixup_lock, flags); |
240 | } | 240 | } |
@@ -446,14 +446,15 @@ static unsigned int mpic_startup_irq(unsigned int irq) | |||
446 | #ifdef CONFIG_MPIC_BROKEN_U3 | 446 | #ifdef CONFIG_MPIC_BROKEN_U3 |
447 | struct mpic *mpic = mpic_from_irq(irq); | 447 | struct mpic *mpic = mpic_from_irq(irq); |
448 | unsigned int src = irq - mpic->irq_offset; | 448 | unsigned int src = irq - mpic->irq_offset; |
449 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | ||
450 | |||
451 | mpic_enable_irq(irq); | ||
449 | 452 | ||
453 | #ifdef CONFIG_MPIC_BROKEN_U3 | ||
450 | if (mpic_is_ht_interrupt(mpic, src)) | 454 | if (mpic_is_ht_interrupt(mpic, src)) |
451 | mpic_startup_ht_interrupt(mpic, src, irq_desc[irq].status); | 455 | mpic_startup_ht_interrupt(mpic, src, irq_desc[irq].status); |
452 | |||
453 | #endif /* CONFIG_MPIC_BROKEN_U3 */ | 456 | #endif /* CONFIG_MPIC_BROKEN_U3 */ |
454 | 457 | ||
455 | mpic_enable_irq(irq); | ||
456 | |||
457 | return 0; | 458 | return 0; |
458 | } | 459 | } |
459 | 460 | ||
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c index 7964bf660e92..77e4dc780f8c 100644 --- a/arch/ppc/kernel/asm-offsets.c +++ b/arch/ppc/kernel/asm-offsets.c | |||
@@ -131,7 +131,6 @@ main(void) | |||
131 | DEFINE(CPU_SPEC_FEATURES, offsetof(struct cpu_spec, cpu_features)); | 131 | DEFINE(CPU_SPEC_FEATURES, offsetof(struct cpu_spec, cpu_features)); |
132 | DEFINE(CPU_SPEC_SETUP, offsetof(struct cpu_spec, cpu_setup)); | 132 | DEFINE(CPU_SPEC_SETUP, offsetof(struct cpu_spec, cpu_setup)); |
133 | 133 | ||
134 | DEFINE(TI_SIGFRAME, offsetof(struct thread_info, nvgprs_frame)); | ||
135 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); | 134 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); |
136 | DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); | 135 | DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain)); |
137 | DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); | 136 | DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); |
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S index a48b950722a1..3a2815978488 100644 --- a/arch/ppc/kernel/entry.S +++ b/arch/ppc/kernel/entry.S | |||
@@ -227,7 +227,7 @@ ret_from_syscall: | |||
227 | MTMSRD(r10) | 227 | MTMSRD(r10) |
228 | lwz r9,TI_FLAGS(r12) | 228 | lwz r9,TI_FLAGS(r12) |
229 | li r8,-_LAST_ERRNO | 229 | li r8,-_LAST_ERRNO |
230 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL) | 230 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK) |
231 | bne- syscall_exit_work | 231 | bne- syscall_exit_work |
232 | cmplw 0,r3,r8 | 232 | cmplw 0,r3,r8 |
233 | blt+ syscall_exit_cont | 233 | blt+ syscall_exit_cont |
@@ -287,8 +287,10 @@ syscall_dotrace: | |||
287 | 287 | ||
288 | syscall_exit_work: | 288 | syscall_exit_work: |
289 | andi. r0,r9,_TIF_RESTOREALL | 289 | andi. r0,r9,_TIF_RESTOREALL |
290 | bne- 2f | 290 | beq+ 0f |
291 | cmplw 0,r3,r8 | 291 | REST_NVGPRS(r1) |
292 | b 2f | ||
293 | 0: cmplw 0,r3,r8 | ||
292 | blt+ 1f | 294 | blt+ 1f |
293 | andi. r0,r9,_TIF_NOERROR | 295 | andi. r0,r9,_TIF_NOERROR |
294 | bne- 1f | 296 | bne- 1f |
@@ -302,9 +304,7 @@ syscall_exit_work: | |||
302 | 2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) | 304 | 2: andi. r0,r9,(_TIF_PERSYSCALL_MASK) |
303 | beq 4f | 305 | beq 4f |
304 | 306 | ||
305 | /* Clear per-syscall TIF flags if any are set, but _leave_ | 307 | /* Clear per-syscall TIF flags if any are set. */ |
306 | _TIF_SAVE_NVGPRS set in r9 since we haven't dealt with that | ||
307 | yet. */ | ||
308 | 308 | ||
309 | li r11,_TIF_PERSYSCALL_MASK | 309 | li r11,_TIF_PERSYSCALL_MASK |
310 | addi r12,r12,TI_FLAGS | 310 | addi r12,r12,TI_FLAGS |
@@ -318,8 +318,13 @@ syscall_exit_work: | |||
318 | subi r12,r12,TI_FLAGS | 318 | subi r12,r12,TI_FLAGS |
319 | 319 | ||
320 | 4: /* Anything which requires enabling interrupts? */ | 320 | 4: /* Anything which requires enabling interrupts? */ |
321 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_SAVE_NVGPRS) | 321 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) |
322 | beq 7f | 322 | beq ret_from_except |
323 | |||
324 | /* Re-enable interrupts */ | ||
325 | ori r10,r10,MSR_EE | ||
326 | SYNC | ||
327 | MTMSRD(r10) | ||
323 | 328 | ||
324 | /* Save NVGPRS if they're not saved already */ | 329 | /* Save NVGPRS if they're not saved already */ |
325 | lwz r4,TRAP(r1) | 330 | lwz r4,TRAP(r1) |
@@ -328,71 +333,11 @@ syscall_exit_work: | |||
328 | SAVE_NVGPRS(r1) | 333 | SAVE_NVGPRS(r1) |
329 | li r4,0xc00 | 334 | li r4,0xc00 |
330 | stw r4,TRAP(r1) | 335 | stw r4,TRAP(r1) |
331 | 336 | 5: | |
332 | /* Re-enable interrupts */ | ||
333 | 5: ori r10,r10,MSR_EE | ||
334 | SYNC | ||
335 | MTMSRD(r10) | ||
336 | |||
337 | andi. r0,r9,_TIF_SAVE_NVGPRS | ||
338 | bne save_user_nvgprs | ||
339 | |||
340 | save_user_nvgprs_cont: | ||
341 | andi. r0,r9,(_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP) | ||
342 | beq 7f | ||
343 | |||
344 | addi r3,r1,STACK_FRAME_OVERHEAD | 337 | addi r3,r1,STACK_FRAME_OVERHEAD |
345 | bl do_syscall_trace_leave | 338 | bl do_syscall_trace_leave |
346 | REST_NVGPRS(r1) | 339 | b ret_from_except_full |
347 | |||
348 | 6: lwz r3,GPR3(r1) | ||
349 | LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */ | ||
350 | SYNC | ||
351 | MTMSRD(r10) /* disable interrupts again */ | ||
352 | rlwinm r12,r1,0,0,18 /* current_thread_info() */ | ||
353 | lwz r9,TI_FLAGS(r12) | ||
354 | 7: | ||
355 | andi. r0,r9,_TIF_NEED_RESCHED | ||
356 | bne 8f | ||
357 | lwz r5,_MSR(r1) | ||
358 | andi. r5,r5,MSR_PR | ||
359 | beq ret_from_except | ||
360 | andi. r0,r9,_TIF_SIGPENDING | ||
361 | beq ret_from_except | ||
362 | b do_user_signal | ||
363 | 8: | ||
364 | ori r10,r10,MSR_EE | ||
365 | SYNC | ||
366 | MTMSRD(r10) /* re-enable interrupts */ | ||
367 | bl schedule | ||
368 | b 6b | ||
369 | |||
370 | save_user_nvgprs: | ||
371 | lwz r8,TI_SIGFRAME(r12) | ||
372 | |||
373 | .macro savewords start, end | ||
374 | 1: stw \start,4*(\start)(r8) | ||
375 | .section __ex_table,"a" | ||
376 | .align 2 | ||
377 | .long 1b,save_user_nvgprs_fault | ||
378 | .previous | ||
379 | .if \end - \start | ||
380 | savewords "(\start+1)",\end | ||
381 | .endif | ||
382 | .endm | ||
383 | savewords 14,31 | ||
384 | b save_user_nvgprs_cont | ||
385 | |||
386 | |||
387 | save_user_nvgprs_fault: | ||
388 | li r3,11 /* SIGSEGV */ | ||
389 | lwz r4,TI_TASK(r12) | ||
390 | bl force_sigsegv | ||
391 | 340 | ||
392 | rlwinm r12,r1,0,0,18 /* current_thread_info() */ | ||
393 | lwz r9,TI_FLAGS(r12) | ||
394 | b save_user_nvgprs_cont | ||
395 | |||
396 | #ifdef SHOW_SYSCALLS | 341 | #ifdef SHOW_SYSCALLS |
397 | do_show_syscall: | 342 | do_show_syscall: |
398 | #ifdef SHOW_SYSCALLS_TASK | 343 | #ifdef SHOW_SYSCALLS_TASK |
@@ -490,6 +435,14 @@ ppc_clone: | |||
490 | stw r0,TRAP(r1) /* register set saved */ | 435 | stw r0,TRAP(r1) /* register set saved */ |
491 | b sys_clone | 436 | b sys_clone |
492 | 437 | ||
438 | .globl ppc_swapcontext | ||
439 | ppc_swapcontext: | ||
440 | SAVE_NVGPRS(r1) | ||
441 | lwz r0,TRAP(r1) | ||
442 | rlwinm r0,r0,0,0,30 /* clear LSB to indicate full */ | ||
443 | stw r0,TRAP(r1) /* register set saved */ | ||
444 | b sys_swapcontext | ||
445 | |||
493 | /* | 446 | /* |
494 | * Top-level page fault handling. | 447 | * Top-level page fault handling. |
495 | * This is in assembler because if do_page_fault tells us that | 448 | * This is in assembler because if do_page_fault tells us that |
@@ -683,7 +636,7 @@ user_exc_return: /* r10 contains MSR_KERNEL here */ | |||
683 | /* Check current_thread_info()->flags */ | 636 | /* Check current_thread_info()->flags */ |
684 | rlwinm r9,r1,0,0,18 | 637 | rlwinm r9,r1,0,0,18 |
685 | lwz r9,TI_FLAGS(r9) | 638 | lwz r9,TI_FLAGS(r9) |
686 | andi. r0,r9,(_TIF_SIGPENDING|_TIF_NEED_RESCHED|_TIF_RESTOREALL) | 639 | andi. r0,r9,(_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK|_TIF_NEED_RESCHED) |
687 | bne do_work | 640 | bne do_work |
688 | 641 | ||
689 | restore_user: | 642 | restore_user: |
diff --git a/arch/ppc/kernel/head.S b/arch/ppc/kernel/head.S index c5a890dca9cf..53ea845fb911 100644 --- a/arch/ppc/kernel/head.S +++ b/arch/ppc/kernel/head.S | |||
@@ -751,6 +751,7 @@ AltiVecUnavailable: | |||
751 | #ifdef CONFIG_ALTIVEC | 751 | #ifdef CONFIG_ALTIVEC |
752 | bne load_up_altivec /* if from user, just load it up */ | 752 | bne load_up_altivec /* if from user, just load it up */ |
753 | #endif /* CONFIG_ALTIVEC */ | 753 | #endif /* CONFIG_ALTIVEC */ |
754 | addi r3,r1,STACK_FRAME_OVERHEAD | ||
754 | EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) | 755 | EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception) |
755 | 756 | ||
756 | #ifdef CONFIG_PPC64BRIDGE | 757 | #ifdef CONFIG_PPC64BRIDGE |
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S index c3427eed8345..5a936566fd61 100644 --- a/arch/ppc/kernel/misc.S +++ b/arch/ppc/kernel/misc.S | |||
@@ -1048,286 +1048,3 @@ _GLOBAL(name) \ | |||
1048 | blr | 1048 | blr |
1049 | 1049 | ||
1050 | SYSCALL(execve) | 1050 | SYSCALL(execve) |
1051 | |||
1052 | /* Why isn't this a) automatic, b) written in 'C'? */ | ||
1053 | .data | ||
1054 | .align 4 | ||
1055 | _GLOBAL(sys_call_table) | ||
1056 | .long sys_restart_syscall /* 0 */ | ||
1057 | .long sys_exit | ||
1058 | .long ppc_fork | ||
1059 | .long sys_read | ||
1060 | .long sys_write | ||
1061 | .long sys_open /* 5 */ | ||
1062 | .long sys_close | ||
1063 | .long sys_waitpid | ||
1064 | .long sys_creat | ||
1065 | .long sys_link | ||
1066 | .long sys_unlink /* 10 */ | ||
1067 | .long sys_execve | ||
1068 | .long sys_chdir | ||
1069 | .long sys_time | ||
1070 | .long sys_mknod | ||
1071 | .long sys_chmod /* 15 */ | ||
1072 | .long sys_lchown | ||
1073 | .long sys_ni_syscall /* old break syscall holder */ | ||
1074 | .long sys_stat | ||
1075 | .long sys_lseek | ||
1076 | .long sys_getpid /* 20 */ | ||
1077 | .long sys_mount | ||
1078 | .long sys_oldumount | ||
1079 | .long sys_setuid | ||
1080 | .long sys_getuid | ||
1081 | .long sys_stime /* 25 */ | ||
1082 | .long sys_ptrace | ||
1083 | .long sys_alarm | ||
1084 | .long sys_fstat | ||
1085 | .long sys_pause | ||
1086 | .long sys_utime /* 30 */ | ||
1087 | .long sys_ni_syscall /* old stty syscall holder */ | ||
1088 | .long sys_ni_syscall /* old gtty syscall holder */ | ||
1089 | .long sys_access | ||
1090 | .long sys_nice | ||
1091 | .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */ | ||
1092 | .long sys_sync | ||
1093 | .long sys_kill | ||
1094 | .long sys_rename | ||
1095 | .long sys_mkdir | ||
1096 | .long sys_rmdir /* 40 */ | ||
1097 | .long sys_dup | ||
1098 | .long sys_pipe | ||
1099 | .long sys_times | ||
1100 | .long sys_ni_syscall /* old prof syscall holder */ | ||
1101 | .long sys_brk /* 45 */ | ||
1102 | .long sys_setgid | ||
1103 | .long sys_getgid | ||
1104 | .long sys_signal | ||
1105 | .long sys_geteuid | ||
1106 | .long sys_getegid /* 50 */ | ||
1107 | .long sys_acct | ||
1108 | .long sys_umount /* recycled never used phys() */ | ||
1109 | .long sys_ni_syscall /* old lock syscall holder */ | ||
1110 | .long sys_ioctl | ||
1111 | .long sys_fcntl /* 55 */ | ||
1112 | .long sys_ni_syscall /* old mpx syscall holder */ | ||
1113 | .long sys_setpgid | ||
1114 | .long sys_ni_syscall /* old ulimit syscall holder */ | ||
1115 | .long sys_olduname | ||
1116 | .long sys_umask /* 60 */ | ||
1117 | .long sys_chroot | ||
1118 | .long sys_ustat | ||
1119 | .long sys_dup2 | ||
1120 | .long sys_getppid | ||
1121 | .long sys_getpgrp /* 65 */ | ||
1122 | .long sys_setsid | ||
1123 | .long sys_sigaction | ||
1124 | .long sys_sgetmask | ||
1125 | .long sys_ssetmask | ||
1126 | .long sys_setreuid /* 70 */ | ||
1127 | .long sys_setregid | ||
1128 | .long sys_sigsuspend | ||
1129 | .long sys_sigpending | ||
1130 | .long sys_sethostname | ||
1131 | .long sys_setrlimit /* 75 */ | ||
1132 | .long sys_old_getrlimit | ||
1133 | .long sys_getrusage | ||
1134 | .long sys_gettimeofday | ||
1135 | .long sys_settimeofday | ||
1136 | .long sys_getgroups /* 80 */ | ||
1137 | .long sys_setgroups | ||
1138 | .long ppc_select | ||
1139 | .long sys_symlink | ||
1140 | .long sys_lstat | ||
1141 | .long sys_readlink /* 85 */ | ||
1142 | .long sys_uselib | ||
1143 | .long sys_swapon | ||
1144 | .long sys_reboot | ||
1145 | .long old_readdir | ||
1146 | .long sys_mmap /* 90 */ | ||
1147 | .long sys_munmap | ||
1148 | .long sys_truncate | ||
1149 | .long sys_ftruncate | ||
1150 | .long sys_fchmod | ||
1151 | .long sys_fchown /* 95 */ | ||
1152 | .long sys_getpriority | ||
1153 | .long sys_setpriority | ||
1154 | .long sys_ni_syscall /* old profil syscall holder */ | ||
1155 | .long sys_statfs | ||
1156 | .long sys_fstatfs /* 100 */ | ||
1157 | .long sys_ni_syscall | ||
1158 | .long sys_socketcall | ||
1159 | .long sys_syslog | ||
1160 | .long sys_setitimer | ||
1161 | .long sys_getitimer /* 105 */ | ||
1162 | .long sys_newstat | ||
1163 | .long sys_newlstat | ||
1164 | .long sys_newfstat | ||
1165 | .long sys_uname | ||
1166 | .long sys_ni_syscall /* 110 */ | ||
1167 | .long sys_vhangup | ||
1168 | .long sys_ni_syscall /* old 'idle' syscall */ | ||
1169 | .long sys_ni_syscall | ||
1170 | .long sys_wait4 | ||
1171 | .long sys_swapoff /* 115 */ | ||
1172 | .long sys_sysinfo | ||
1173 | .long sys_ipc | ||
1174 | .long sys_fsync | ||
1175 | .long sys_sigreturn | ||
1176 | .long ppc_clone /* 120 */ | ||
1177 | .long sys_setdomainname | ||
1178 | .long sys_newuname | ||
1179 | .long sys_ni_syscall | ||
1180 | .long sys_adjtimex | ||
1181 | .long sys_mprotect /* 125 */ | ||
1182 | .long sys_sigprocmask | ||
1183 | .long sys_ni_syscall /* old sys_create_module */ | ||
1184 | .long sys_init_module | ||
1185 | .long sys_delete_module | ||
1186 | .long sys_ni_syscall /* old sys_get_kernel_syms */ /* 130 */ | ||
1187 | .long sys_quotactl | ||
1188 | .long sys_getpgid | ||
1189 | .long sys_fchdir | ||
1190 | .long sys_bdflush | ||
1191 | .long sys_sysfs /* 135 */ | ||
1192 | .long sys_personality | ||
1193 | .long sys_ni_syscall /* for afs_syscall */ | ||
1194 | .long sys_setfsuid | ||
1195 | .long sys_setfsgid | ||
1196 | .long sys_llseek /* 140 */ | ||
1197 | .long sys_getdents | ||
1198 | .long ppc_select | ||
1199 | .long sys_flock | ||
1200 | .long sys_msync | ||
1201 | .long sys_readv /* 145 */ | ||
1202 | .long sys_writev | ||
1203 | .long sys_getsid | ||
1204 | .long sys_fdatasync | ||
1205 | .long sys_sysctl | ||
1206 | .long sys_mlock /* 150 */ | ||
1207 | .long sys_munlock | ||
1208 | .long sys_mlockall | ||
1209 | .long sys_munlockall | ||
1210 | .long sys_sched_setparam | ||
1211 | .long sys_sched_getparam /* 155 */ | ||
1212 | .long sys_sched_setscheduler | ||
1213 | .long sys_sched_getscheduler | ||
1214 | .long sys_sched_yield | ||
1215 | .long sys_sched_get_priority_max | ||
1216 | .long sys_sched_get_priority_min /* 160 */ | ||
1217 | .long sys_sched_rr_get_interval | ||
1218 | .long sys_nanosleep | ||
1219 | .long sys_mremap | ||
1220 | .long sys_setresuid | ||
1221 | .long sys_getresuid /* 165 */ | ||
1222 | .long sys_ni_syscall /* old sys_query_module */ | ||
1223 | .long sys_poll | ||
1224 | .long sys_nfsservctl | ||
1225 | .long sys_setresgid | ||
1226 | .long sys_getresgid /* 170 */ | ||
1227 | .long sys_prctl | ||
1228 | .long sys_rt_sigreturn | ||
1229 | .long sys_rt_sigaction | ||
1230 | .long sys_rt_sigprocmask | ||
1231 | .long sys_rt_sigpending /* 175 */ | ||
1232 | .long sys_rt_sigtimedwait | ||
1233 | .long sys_rt_sigqueueinfo | ||
1234 | .long sys_rt_sigsuspend | ||
1235 | .long sys_pread64 | ||
1236 | .long sys_pwrite64 /* 180 */ | ||
1237 | .long sys_chown | ||
1238 | .long sys_getcwd | ||
1239 | .long sys_capget | ||
1240 | .long sys_capset | ||
1241 | .long sys_sigaltstack /* 185 */ | ||
1242 | .long sys_sendfile | ||
1243 | .long sys_ni_syscall /* streams1 */ | ||
1244 | .long sys_ni_syscall /* streams2 */ | ||
1245 | .long ppc_vfork | ||
1246 | .long sys_getrlimit /* 190 */ | ||
1247 | .long sys_readahead | ||
1248 | .long sys_mmap2 | ||
1249 | .long sys_truncate64 | ||
1250 | .long sys_ftruncate64 | ||
1251 | .long sys_stat64 /* 195 */ | ||
1252 | .long sys_lstat64 | ||
1253 | .long sys_fstat64 | ||
1254 | .long sys_pciconfig_read | ||
1255 | .long sys_pciconfig_write | ||
1256 | .long sys_pciconfig_iobase /* 200 */ | ||
1257 | .long sys_ni_syscall /* 201 - reserved - MacOnLinux - new */ | ||
1258 | .long sys_getdents64 | ||
1259 | .long sys_pivot_root | ||
1260 | .long sys_fcntl64 | ||
1261 | .long sys_madvise /* 205 */ | ||
1262 | .long sys_mincore | ||
1263 | .long sys_gettid | ||
1264 | .long sys_tkill | ||
1265 | .long sys_setxattr | ||
1266 | .long sys_lsetxattr /* 210 */ | ||
1267 | .long sys_fsetxattr | ||
1268 | .long sys_getxattr | ||
1269 | .long sys_lgetxattr | ||
1270 | .long sys_fgetxattr | ||
1271 | .long sys_listxattr /* 215 */ | ||
1272 | .long sys_llistxattr | ||
1273 | .long sys_flistxattr | ||
1274 | .long sys_removexattr | ||
1275 | .long sys_lremovexattr | ||
1276 | .long sys_fremovexattr /* 220 */ | ||
1277 | .long sys_futex | ||
1278 | .long sys_sched_setaffinity | ||
1279 | .long sys_sched_getaffinity | ||
1280 | .long sys_ni_syscall | ||
1281 | .long sys_ni_syscall /* 225 - reserved for Tux */ | ||
1282 | .long sys_sendfile64 | ||
1283 | .long sys_io_setup | ||
1284 | .long sys_io_destroy | ||
1285 | .long sys_io_getevents | ||
1286 | .long sys_io_submit /* 230 */ | ||
1287 | .long sys_io_cancel | ||
1288 | .long sys_set_tid_address | ||
1289 | .long sys_fadvise64 | ||
1290 | .long sys_exit_group | ||
1291 | .long sys_lookup_dcookie /* 235 */ | ||
1292 | .long sys_epoll_create | ||
1293 | .long sys_epoll_ctl | ||
1294 | .long sys_epoll_wait | ||
1295 | .long sys_remap_file_pages | ||
1296 | .long sys_timer_create /* 240 */ | ||
1297 | .long sys_timer_settime | ||
1298 | .long sys_timer_gettime | ||
1299 | .long sys_timer_getoverrun | ||
1300 | .long sys_timer_delete | ||
1301 | .long sys_clock_settime /* 245 */ | ||
1302 | .long sys_clock_gettime | ||
1303 | .long sys_clock_getres | ||
1304 | .long sys_clock_nanosleep | ||
1305 | .long sys_swapcontext | ||
1306 | .long sys_tgkill /* 250 */ | ||
1307 | .long sys_utimes | ||
1308 | .long sys_statfs64 | ||
1309 | .long sys_fstatfs64 | ||
1310 | .long ppc_fadvise64_64 | ||
1311 | .long sys_ni_syscall /* 255 - rtas (used on ppc64) */ | ||
1312 | .long sys_debug_setcontext | ||
1313 | .long sys_ni_syscall /* 257 reserved for vserver */ | ||
1314 | .long sys_ni_syscall /* 258 reserved for new sys_remap_file_pages */ | ||
1315 | .long sys_ni_syscall /* 259 reserved for new sys_mbind */ | ||
1316 | .long sys_ni_syscall /* 260 reserved for new sys_get_mempolicy */ | ||
1317 | .long sys_ni_syscall /* 261 reserved for new sys_set_mempolicy */ | ||
1318 | .long sys_mq_open | ||
1319 | .long sys_mq_unlink | ||
1320 | .long sys_mq_timedsend | ||
1321 | .long sys_mq_timedreceive /* 265 */ | ||
1322 | .long sys_mq_notify | ||
1323 | .long sys_mq_getsetattr | ||
1324 | .long sys_kexec_load | ||
1325 | .long sys_add_key | ||
1326 | .long sys_request_key /* 270 */ | ||
1327 | .long sys_keyctl | ||
1328 | .long sys_waitid | ||
1329 | .long sys_ioprio_set | ||
1330 | .long sys_ioprio_get | ||
1331 | .long sys_inotify_init /* 275 */ | ||
1332 | .long sys_inotify_add_watch | ||
1333 | .long sys_inotify_rm_watch | ||
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c index 15bd9b448a48..82adb4601348 100644 --- a/arch/ppc/kernel/ppc_ksyms.c +++ b/arch/ppc/kernel/ppc_ksyms.c | |||
@@ -93,15 +93,8 @@ EXPORT_SYMBOL(test_and_change_bit); | |||
93 | EXPORT_SYMBOL(strcpy); | 93 | EXPORT_SYMBOL(strcpy); |
94 | EXPORT_SYMBOL(strncpy); | 94 | EXPORT_SYMBOL(strncpy); |
95 | EXPORT_SYMBOL(strcat); | 95 | EXPORT_SYMBOL(strcat); |
96 | EXPORT_SYMBOL(strncat); | ||
97 | EXPORT_SYMBOL(strchr); | ||
98 | EXPORT_SYMBOL(strrchr); | ||
99 | EXPORT_SYMBOL(strpbrk); | ||
100 | EXPORT_SYMBOL(strstr); | ||
101 | EXPORT_SYMBOL(strlen); | 96 | EXPORT_SYMBOL(strlen); |
102 | EXPORT_SYMBOL(strnlen); | ||
103 | EXPORT_SYMBOL(strcmp); | 97 | EXPORT_SYMBOL(strcmp); |
104 | EXPORT_SYMBOL(strncmp); | ||
105 | EXPORT_SYMBOL(strcasecmp); | 98 | EXPORT_SYMBOL(strcasecmp); |
106 | EXPORT_SYMBOL(__div64_32); | 99 | EXPORT_SYMBOL(__div64_32); |
107 | 100 | ||
@@ -253,7 +246,6 @@ EXPORT_SYMBOL(memcpy); | |||
253 | EXPORT_SYMBOL(cacheable_memcpy); | 246 | EXPORT_SYMBOL(cacheable_memcpy); |
254 | EXPORT_SYMBOL(memset); | 247 | EXPORT_SYMBOL(memset); |
255 | EXPORT_SYMBOL(memmove); | 248 | EXPORT_SYMBOL(memmove); |
256 | EXPORT_SYMBOL(memscan); | ||
257 | EXPORT_SYMBOL(memcmp); | 249 | EXPORT_SYMBOL(memcmp); |
258 | EXPORT_SYMBOL(memchr); | 250 | EXPORT_SYMBOL(memchr); |
259 | 251 | ||
diff --git a/arch/ppc/platforms/4xx/bamboo.c b/arch/ppc/platforms/4xx/bamboo.c index 159b228eca1e..0ec53f049338 100644 --- a/arch/ppc/platforms/4xx/bamboo.c +++ b/arch/ppc/platforms/4xx/bamboo.c | |||
@@ -332,8 +332,8 @@ bamboo_early_serial_map(void) | |||
332 | port.irq = 0; | 332 | port.irq = 0; |
333 | port.uartclk = clocks.uart0; | 333 | port.uartclk = clocks.uart0; |
334 | port.regshift = 0; | 334 | port.regshift = 0; |
335 | port.iotype = SERIAL_IO_MEM; | 335 | port.iotype = UPIO_MEM; |
336 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 336 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
337 | port.line = 0; | 337 | port.line = 0; |
338 | 338 | ||
339 | if (early_serial_setup(&port) != 0) { | 339 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/4xx/bubinga.c b/arch/ppc/platforms/4xx/bubinga.c index 8110f55668c5..ce48a4f08cbb 100644 --- a/arch/ppc/platforms/4xx/bubinga.c +++ b/arch/ppc/platforms/4xx/bubinga.c | |||
@@ -97,8 +97,8 @@ bubinga_early_serial_map(void) | |||
97 | port.irq = ACTING_UART0_INT; | 97 | port.irq = ACTING_UART0_INT; |
98 | port.uartclk = uart_clock; | 98 | port.uartclk = uart_clock; |
99 | port.regshift = 0; | 99 | port.regshift = 0; |
100 | port.iotype = SERIAL_IO_MEM; | 100 | port.iotype = UPIO_MEM; |
101 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 101 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
102 | port.line = 0; | 102 | port.line = 0; |
103 | 103 | ||
104 | if (early_serial_setup(&port) != 0) { | 104 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/4xx/ebony.c b/arch/ppc/platforms/4xx/ebony.c index 64ebae19cdbb..9a828b623417 100644 --- a/arch/ppc/platforms/4xx/ebony.c +++ b/arch/ppc/platforms/4xx/ebony.c | |||
@@ -225,8 +225,8 @@ ebony_early_serial_map(void) | |||
225 | port.irq = 0; | 225 | port.irq = 0; |
226 | port.uartclk = clocks.uart0; | 226 | port.uartclk = clocks.uart0; |
227 | port.regshift = 0; | 227 | port.regshift = 0; |
228 | port.iotype = SERIAL_IO_MEM; | 228 | port.iotype = UPIO_MEM; |
229 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 229 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
230 | port.line = 0; | 230 | port.line = 0; |
231 | 231 | ||
232 | if (early_serial_setup(&port) != 0) { | 232 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/4xx/luan.c b/arch/ppc/platforms/4xx/luan.c index d810b736d9bf..21d29132aebd 100644 --- a/arch/ppc/platforms/4xx/luan.c +++ b/arch/ppc/platforms/4xx/luan.c | |||
@@ -279,8 +279,8 @@ luan_early_serial_map(void) | |||
279 | port.irq = UART0_INT; | 279 | port.irq = UART0_INT; |
280 | port.uartclk = clocks.uart0; | 280 | port.uartclk = clocks.uart0; |
281 | port.regshift = 0; | 281 | port.regshift = 0; |
282 | port.iotype = SERIAL_IO_MEM; | 282 | port.iotype = UPIO_MEM; |
283 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 283 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
284 | port.line = 0; | 284 | port.line = 0; |
285 | 285 | ||
286 | if (early_serial_setup(&port) != 0) { | 286 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/4xx/ocotea.c b/arch/ppc/platforms/4xx/ocotea.c index 73b2c98158f6..4f355b6acab2 100644 --- a/arch/ppc/platforms/4xx/ocotea.c +++ b/arch/ppc/platforms/4xx/ocotea.c | |||
@@ -248,8 +248,8 @@ ocotea_early_serial_map(void) | |||
248 | port.irq = UART0_INT; | 248 | port.irq = UART0_INT; |
249 | port.uartclk = clocks.uart0; | 249 | port.uartclk = clocks.uart0; |
250 | port.regshift = 0; | 250 | port.regshift = 0; |
251 | port.iotype = SERIAL_IO_MEM; | 251 | port.iotype = UPIO_MEM; |
252 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 252 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
253 | port.line = 0; | 253 | port.line = 0; |
254 | 254 | ||
255 | if (early_serial_setup(&port) != 0) { | 255 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/4xx/xilinx_ml300.c b/arch/ppc/platforms/4xx/xilinx_ml300.c index 0b1b77d986bf..e90d97f64f76 100644 --- a/arch/ppc/platforms/4xx/xilinx_ml300.c +++ b/arch/ppc/platforms/4xx/xilinx_ml300.c | |||
@@ -95,8 +95,8 @@ ml300_early_serial_map(void) | |||
95 | port.irq = old_ports[i].irq; | 95 | port.irq = old_ports[i].irq; |
96 | port.uartclk = old_ports[i].baud_base * 16; | 96 | port.uartclk = old_ports[i].baud_base * 16; |
97 | port.regshift = old_ports[i].iomem_reg_shift; | 97 | port.regshift = old_ports[i].iomem_reg_shift; |
98 | port.iotype = SERIAL_IO_MEM; | 98 | port.iotype = UPIO_MEM; |
99 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 99 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
100 | port.line = i; | 100 | port.line = i; |
101 | 101 | ||
102 | if (early_serial_setup(&port) != 0) { | 102 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/4xx/yucca.c b/arch/ppc/platforms/4xx/yucca.c index e60f4bd437ec..b065b8babcd3 100644 --- a/arch/ppc/platforms/4xx/yucca.c +++ b/arch/ppc/platforms/4xx/yucca.c | |||
@@ -305,8 +305,8 @@ yucca_early_serial_map(void) | |||
305 | port.irq = UART0_INT; | 305 | port.irq = UART0_INT; |
306 | port.uartclk = clocks.uart0; | 306 | port.uartclk = clocks.uart0; |
307 | port.regshift = 0; | 307 | port.regshift = 0; |
308 | port.iotype = SERIAL_IO_MEM; | 308 | port.iotype = UPIO_MEM; |
309 | port.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; | 309 | port.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; |
310 | port.line = 0; | 310 | port.line = 0; |
311 | 311 | ||
312 | if (early_serial_setup(&port) != 0) { | 312 | if (early_serial_setup(&port) != 0) { |
diff --git a/arch/ppc/platforms/83xx/mpc834x_sys.c b/arch/ppc/platforms/83xx/mpc834x_sys.c index 012e1e652c03..1a659bbc1860 100644 --- a/arch/ppc/platforms/83xx/mpc834x_sys.c +++ b/arch/ppc/platforms/83xx/mpc834x_sys.c | |||
@@ -301,14 +301,14 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
301 | struct uart_port p; | 301 | struct uart_port p; |
302 | 302 | ||
303 | memset(&p, 0, sizeof (p)); | 303 | memset(&p, 0, sizeof (p)); |
304 | p.iotype = SERIAL_IO_MEM; | 304 | p.iotype = UPIO_MEM; |
305 | p.membase = (unsigned char __iomem *)(VIRT_IMMRBAR + 0x4500); | 305 | p.membase = (unsigned char __iomem *)(VIRT_IMMRBAR + 0x4500); |
306 | p.uartclk = binfo->bi_busfreq; | 306 | p.uartclk = binfo->bi_busfreq; |
307 | 307 | ||
308 | gen550_init(0, &p); | 308 | gen550_init(0, &p); |
309 | 309 | ||
310 | memset(&p, 0, sizeof (p)); | 310 | memset(&p, 0, sizeof (p)); |
311 | p.iotype = SERIAL_IO_MEM; | 311 | p.iotype = UPIO_MEM; |
312 | p.membase = (unsigned char __iomem *)(VIRT_IMMRBAR + 0x4600); | 312 | p.membase = (unsigned char __iomem *)(VIRT_IMMRBAR + 0x4600); |
313 | p.uartclk = binfo->bi_busfreq; | 313 | p.uartclk = binfo->bi_busfreq; |
314 | 314 | ||
diff --git a/arch/ppc/platforms/85xx/mpc8540_ads.c b/arch/ppc/platforms/85xx/mpc8540_ads.c index 2eceb1e6f4eb..408d64f18e1a 100644 --- a/arch/ppc/platforms/85xx/mpc8540_ads.c +++ b/arch/ppc/platforms/85xx/mpc8540_ads.c | |||
@@ -162,14 +162,14 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
162 | binfo->bi_immr_base, MPC85xx_CCSRBAR_SIZE, _PAGE_IO, 0); | 162 | binfo->bi_immr_base, MPC85xx_CCSRBAR_SIZE, _PAGE_IO, 0); |
163 | 163 | ||
164 | memset(&p, 0, sizeof (p)); | 164 | memset(&p, 0, sizeof (p)); |
165 | p.iotype = SERIAL_IO_MEM; | 165 | p.iotype = UPIO_MEM; |
166 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART0_OFFSET; | 166 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART0_OFFSET; |
167 | p.uartclk = binfo->bi_busfreq; | 167 | p.uartclk = binfo->bi_busfreq; |
168 | 168 | ||
169 | gen550_init(0, &p); | 169 | gen550_init(0, &p); |
170 | 170 | ||
171 | memset(&p, 0, sizeof (p)); | 171 | memset(&p, 0, sizeof (p)); |
172 | p.iotype = SERIAL_IO_MEM; | 172 | p.iotype = UPIO_MEM; |
173 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART1_OFFSET; | 173 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART1_OFFSET; |
174 | p.uartclk = binfo->bi_busfreq; | 174 | p.uartclk = binfo->bi_busfreq; |
175 | 175 | ||
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c index b332ebae6bd3..1801ab392e22 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c +++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c | |||
@@ -534,14 +534,14 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
534 | binfo->bi_immr_base, MPC85xx_CCSRBAR_SIZE, _PAGE_IO, 0); | 534 | binfo->bi_immr_base, MPC85xx_CCSRBAR_SIZE, _PAGE_IO, 0); |
535 | 535 | ||
536 | memset(&p, 0, sizeof (p)); | 536 | memset(&p, 0, sizeof (p)); |
537 | p.iotype = SERIAL_IO_MEM; | 537 | p.iotype = UPIO_MEM; |
538 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART0_OFFSET; | 538 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART0_OFFSET; |
539 | p.uartclk = binfo->bi_busfreq; | 539 | p.uartclk = binfo->bi_busfreq; |
540 | 540 | ||
541 | gen550_init(0, &p); | 541 | gen550_init(0, &p); |
542 | 542 | ||
543 | memset(&p, 0, sizeof (p)); | 543 | memset(&p, 0, sizeof (p)); |
544 | p.iotype = SERIAL_IO_MEM; | 544 | p.iotype = UPIO_MEM; |
545 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART1_OFFSET; | 545 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART1_OFFSET; |
546 | p.uartclk = binfo->bi_busfreq; | 546 | p.uartclk = binfo->bi_busfreq; |
547 | 547 | ||
diff --git a/arch/ppc/platforms/85xx/sbc8560.c b/arch/ppc/platforms/85xx/sbc8560.c index e777ba824aa9..8a72221f816c 100644 --- a/arch/ppc/platforms/85xx/sbc8560.c +++ b/arch/ppc/platforms/85xx/sbc8560.c | |||
@@ -64,7 +64,7 @@ sbc8560_early_serial_map(void) | |||
64 | uart_req.irq = MPC85xx_IRQ_EXT9; | 64 | uart_req.irq = MPC85xx_IRQ_EXT9; |
65 | uart_req.flags = STD_COM_FLAGS; | 65 | uart_req.flags = STD_COM_FLAGS; |
66 | uart_req.uartclk = BASE_BAUD * 16; | 66 | uart_req.uartclk = BASE_BAUD * 16; |
67 | uart_req.iotype = SERIAL_IO_MEM; | 67 | uart_req.iotype = UPIO_MEM; |
68 | uart_req.mapbase = UARTA_ADDR; | 68 | uart_req.mapbase = UARTA_ADDR; |
69 | uart_req.membase = ioremap(uart_req.mapbase, MPC85xx_UART0_SIZE); | 69 | uart_req.membase = ioremap(uart_req.mapbase, MPC85xx_UART0_SIZE); |
70 | uart_req.type = PORT_16650; | 70 | uart_req.type = PORT_16650; |
diff --git a/arch/ppc/platforms/85xx/tqm85xx.c b/arch/ppc/platforms/85xx/tqm85xx.c index b436f4d0a3fa..a5e38ba62732 100644 --- a/arch/ppc/platforms/85xx/tqm85xx.c +++ b/arch/ppc/platforms/85xx/tqm85xx.c | |||
@@ -346,14 +346,14 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
346 | binfo->bi_immr_base, MPC85xx_CCSRBAR_SIZE, _PAGE_IO, 0); | 346 | binfo->bi_immr_base, MPC85xx_CCSRBAR_SIZE, _PAGE_IO, 0); |
347 | 347 | ||
348 | memset(&p, 0, sizeof (p)); | 348 | memset(&p, 0, sizeof (p)); |
349 | p.iotype = SERIAL_IO_MEM; | 349 | p.iotype = UPIO_MEM; |
350 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART0_OFFSET; | 350 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART0_OFFSET; |
351 | p.uartclk = binfo->bi_busfreq; | 351 | p.uartclk = binfo->bi_busfreq; |
352 | 352 | ||
353 | gen550_init(0, &p); | 353 | gen550_init(0, &p); |
354 | 354 | ||
355 | memset(&p, 0, sizeof (p)); | 355 | memset(&p, 0, sizeof (p)); |
356 | p.iotype = SERIAL_IO_MEM; | 356 | p.iotype = UPIO_MEM; |
357 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART1_OFFSET; | 357 | p.membase = (void *) binfo->bi_immr_base + MPC85xx_UART1_OFFSET; |
358 | p.uartclk = binfo->bi_busfreq; | 358 | p.uartclk = binfo->bi_busfreq; |
359 | 359 | ||
diff --git a/arch/ppc/platforms/chestnut.c b/arch/ppc/platforms/chestnut.c index 48a4a510d598..aefcc0e7be57 100644 --- a/arch/ppc/platforms/chestnut.c +++ b/arch/ppc/platforms/chestnut.c | |||
@@ -116,7 +116,7 @@ chestnut_early_serial_map(void) | |||
116 | port.uartclk = BASE_BAUD * 16; | 116 | port.uartclk = BASE_BAUD * 16; |
117 | port.irq = UART0_INT; | 117 | port.irq = UART0_INT; |
118 | port.flags = STD_COM_FLAGS | UPF_IOREMAP; | 118 | port.flags = STD_COM_FLAGS | UPF_IOREMAP; |
119 | port.iotype = SERIAL_IO_MEM; | 119 | port.iotype = UPIO_MEM; |
120 | port.mapbase = CHESTNUT_UART0_IO_BASE; | 120 | port.mapbase = CHESTNUT_UART0_IO_BASE; |
121 | port.regshift = 0; | 121 | port.regshift = 0; |
122 | 122 | ||
diff --git a/arch/ppc/platforms/ev64260.c b/arch/ppc/platforms/ev64260.c index 32358b3fb236..ffde8f6f6302 100644 --- a/arch/ppc/platforms/ev64260.c +++ b/arch/ppc/platforms/ev64260.c | |||
@@ -330,7 +330,7 @@ ev64260_early_serial_map(void) | |||
330 | port.irq = EV64260_UART_0_IRQ; | 330 | port.irq = EV64260_UART_0_IRQ; |
331 | port.uartclk = BASE_BAUD * 16; | 331 | port.uartclk = BASE_BAUD * 16; |
332 | port.regshift = 2; | 332 | port.regshift = 2; |
333 | port.iotype = SERIAL_IO_MEM; | 333 | port.iotype = UPIO_MEM; |
334 | port.flags = STD_COM_FLAGS; | 334 | port.flags = STD_COM_FLAGS; |
335 | 335 | ||
336 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) | 336 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) |
diff --git a/arch/ppc/platforms/radstone_ppc7d.c b/arch/ppc/platforms/radstone_ppc7d.c index 708b8739ecdd..872c0a3ba3c7 100644 --- a/arch/ppc/platforms/radstone_ppc7d.c +++ b/arch/ppc/platforms/radstone_ppc7d.c | |||
@@ -100,7 +100,7 @@ static void __init ppc7d_early_serial_map(void) | |||
100 | serial_req.uartclk = UART_CLK; | 100 | serial_req.uartclk = UART_CLK; |
101 | serial_req.irq = 4; | 101 | serial_req.irq = 4; |
102 | serial_req.flags = STD_COM_FLAGS; | 102 | serial_req.flags = STD_COM_FLAGS; |
103 | serial_req.iotype = SERIAL_IO_MEM; | 103 | serial_req.iotype = UPIO_MEM; |
104 | serial_req.membase = (u_char *) PPC7D_SERIAL_0; | 104 | serial_req.membase = (u_char *) PPC7D_SERIAL_0; |
105 | 105 | ||
106 | gen550_init(0, &serial_req); | 106 | gen550_init(0, &serial_req); |
diff --git a/arch/ppc/platforms/spruce.c b/arch/ppc/platforms/spruce.c index 5ad70d357cb9..69e1de7971f2 100644 --- a/arch/ppc/platforms/spruce.c +++ b/arch/ppc/platforms/spruce.c | |||
@@ -176,8 +176,8 @@ spruce_early_serial_map(void) | |||
176 | memset(&serial_req, 0, sizeof(serial_req)); | 176 | memset(&serial_req, 0, sizeof(serial_req)); |
177 | serial_req.uartclk = uart_clk; | 177 | serial_req.uartclk = uart_clk; |
178 | serial_req.irq = UART0_INT; | 178 | serial_req.irq = UART0_INT; |
179 | serial_req.flags = ASYNC_BOOT_AUTOCONF; | 179 | serial_req.flags = UPF_BOOT_AUTOCONF; |
180 | serial_req.iotype = SERIAL_IO_MEM; | 180 | serial_req.iotype = UPIO_MEM; |
181 | serial_req.membase = (u_char *)UART0_IO_BASE; | 181 | serial_req.membase = (u_char *)UART0_IO_BASE; |
182 | serial_req.regshift = 0; | 182 | serial_req.regshift = 0; |
183 | 183 | ||
diff --git a/arch/ppc/syslib/ppc83xx_setup.c b/arch/ppc/syslib/ppc83xx_setup.c index 1b5fe9e398d4..7bada82527a8 100644 --- a/arch/ppc/syslib/ppc83xx_setup.c +++ b/arch/ppc/syslib/ppc83xx_setup.c | |||
@@ -108,7 +108,7 @@ mpc83xx_early_serial_map(void) | |||
108 | 108 | ||
109 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) | 109 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) |
110 | memset(&serial_req, 0, sizeof (serial_req)); | 110 | memset(&serial_req, 0, sizeof (serial_req)); |
111 | serial_req.iotype = SERIAL_IO_MEM; | 111 | serial_req.iotype = UPIO_MEM; |
112 | serial_req.mapbase = pdata[0].mapbase; | 112 | serial_req.mapbase = pdata[0].mapbase; |
113 | serial_req.membase = pdata[0].membase; | 113 | serial_req.membase = pdata[0].membase; |
114 | serial_req.regshift = 0; | 114 | serial_req.regshift = 0; |
diff --git a/arch/ppc/syslib/ppc85xx_setup.c b/arch/ppc/syslib/ppc85xx_setup.c index 1a47ff4b831d..e4dda43fdaa7 100644 --- a/arch/ppc/syslib/ppc85xx_setup.c +++ b/arch/ppc/syslib/ppc85xx_setup.c | |||
@@ -90,7 +90,7 @@ mpc85xx_early_serial_map(void) | |||
90 | 90 | ||
91 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) | 91 | #if defined(CONFIG_SERIAL_TEXT_DEBUG) || defined(CONFIG_KGDB) |
92 | memset(&serial_req, 0, sizeof (serial_req)); | 92 | memset(&serial_req, 0, sizeof (serial_req)); |
93 | serial_req.iotype = SERIAL_IO_MEM; | 93 | serial_req.iotype = UPIO_MEM; |
94 | serial_req.mapbase = pdata[0].mapbase; | 94 | serial_req.mapbase = pdata[0].mapbase; |
95 | serial_req.membase = pdata[0].membase; | 95 | serial_req.membase = pdata[0].membase; |
96 | serial_req.regshift = 0; | 96 | serial_req.regshift = 0; |
diff --git a/arch/ppc/xmon/adb.c b/arch/ppc/xmon/adb.c deleted file mode 100644 index e91384dcccac..000000000000 --- a/arch/ppc/xmon/adb.c +++ /dev/null | |||
@@ -1,212 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1996 Paul Mackerras. | ||
3 | */ | ||
4 | #include "nonstdio.h" | ||
5 | #include "privinst.h" | ||
6 | |||
7 | #define scanhex xmon_scanhex | ||
8 | #define skipbl xmon_skipbl | ||
9 | |||
10 | #define ADB_B (*(volatile unsigned char *)0xf3016000) | ||
11 | #define ADB_SR (*(volatile unsigned char *)0xf3017400) | ||
12 | #define ADB_ACR (*(volatile unsigned char *)0xf3017600) | ||
13 | #define ADB_IFR (*(volatile unsigned char *)0xf3017a00) | ||
14 | |||
15 | static inline void eieio(void) { asm volatile ("eieio" : :); } | ||
16 | |||
17 | #define N_ADB_LOG 1000 | ||
18 | struct adb_log { | ||
19 | unsigned char b; | ||
20 | unsigned char ifr; | ||
21 | unsigned char acr; | ||
22 | unsigned int time; | ||
23 | } adb_log[N_ADB_LOG]; | ||
24 | int n_adb_log; | ||
25 | |||
26 | void | ||
27 | init_adb_log(void) | ||
28 | { | ||
29 | adb_log[0].b = ADB_B; | ||
30 | adb_log[0].ifr = ADB_IFR; | ||
31 | adb_log[0].acr = ADB_ACR; | ||
32 | adb_log[0].time = get_dec(); | ||
33 | n_adb_log = 0; | ||
34 | } | ||
35 | |||
36 | void | ||
37 | dump_adb_log(void) | ||
38 | { | ||
39 | unsigned t, t0; | ||
40 | struct adb_log *ap; | ||
41 | int i; | ||
42 | |||
43 | ap = adb_log; | ||
44 | t0 = ap->time; | ||
45 | for (i = 0; i <= n_adb_log; ++i, ++ap) { | ||
46 | t = t0 - ap->time; | ||
47 | printf("b=%x ifr=%x acr=%x at %d.%.7d\n", ap->b, ap->ifr, ap->acr, | ||
48 | t / 1000000000, (t % 1000000000) / 100); | ||
49 | } | ||
50 | } | ||
51 | |||
52 | void | ||
53 | adb_chklog(void) | ||
54 | { | ||
55 | struct adb_log *ap = &adb_log[n_adb_log + 1]; | ||
56 | |||
57 | ap->b = ADB_B; | ||
58 | ap->ifr = ADB_IFR; | ||
59 | ap->acr = ADB_ACR; | ||
60 | if (ap->b != ap[-1].b || (ap->ifr & 4) != (ap[-1].ifr & 4) | ||
61 | || ap->acr != ap[-1].acr) { | ||
62 | ap->time = get_dec(); | ||
63 | ++n_adb_log; | ||
64 | } | ||
65 | } | ||
66 | |||
67 | int | ||
68 | adb_bitwait(int bmask, int bval, int fmask, int fval) | ||
69 | { | ||
70 | int i; | ||
71 | struct adb_log *ap; | ||
72 | |||
73 | for (i = 10000; i > 0; --i) { | ||
74 | adb_chklog(); | ||
75 | ap = &adb_log[n_adb_log]; | ||
76 | if ((ap->b & bmask) == bval && (ap->ifr & fmask) == fval) | ||
77 | return 0; | ||
78 | } | ||
79 | return -1; | ||
80 | } | ||
81 | |||
82 | int | ||
83 | adb_wait(void) | ||
84 | { | ||
85 | if (adb_bitwait(0, 0, 4, 4) < 0) { | ||
86 | printf("adb: ready wait timeout\n"); | ||
87 | return -1; | ||
88 | } | ||
89 | return 0; | ||
90 | } | ||
91 | |||
92 | void | ||
93 | adb_readin(void) | ||
94 | { | ||
95 | int i, j; | ||
96 | unsigned char d[64]; | ||
97 | |||
98 | if (ADB_B & 8) { | ||
99 | printf("ADB_B: %x\n", ADB_B); | ||
100 | return; | ||
101 | } | ||
102 | i = 0; | ||
103 | adb_wait(); | ||
104 | j = ADB_SR; | ||
105 | eieio(); | ||
106 | ADB_B &= ~0x20; | ||
107 | eieio(); | ||
108 | for (;;) { | ||
109 | if (adb_wait() < 0) | ||
110 | break; | ||
111 | d[i++] = ADB_SR; | ||
112 | eieio(); | ||
113 | if (ADB_B & 8) | ||
114 | break; | ||
115 | ADB_B ^= 0x10; | ||
116 | eieio(); | ||
117 | } | ||
118 | ADB_B |= 0x30; | ||
119 | if (adb_wait() == 0) | ||
120 | j = ADB_SR; | ||
121 | for (j = 0; j < i; ++j) | ||
122 | printf("%.2x ", d[j]); | ||
123 | printf("\n"); | ||
124 | } | ||
125 | |||
126 | int | ||
127 | adb_write(unsigned char *d, int i) | ||
128 | { | ||
129 | int j; | ||
130 | unsigned x; | ||
131 | |||
132 | if ((ADB_B & 8) == 0) { | ||
133 | printf("r: "); | ||
134 | adb_readin(); | ||
135 | } | ||
136 | for (;;) { | ||
137 | ADB_ACR = 0x1c; | ||
138 | eieio(); | ||
139 | ADB_SR = d[0]; | ||
140 | eieio(); | ||
141 | ADB_B &= ~0x20; | ||
142 | eieio(); | ||
143 | if (ADB_B & 8) | ||
144 | break; | ||
145 | ADB_ACR = 0xc; | ||
146 | eieio(); | ||
147 | ADB_B |= 0x20; | ||
148 | eieio(); | ||
149 | adb_readin(); | ||
150 | } | ||
151 | adb_wait(); | ||
152 | for (j = 1; j < i; ++j) { | ||
153 | ADB_SR = d[j]; | ||
154 | eieio(); | ||
155 | ADB_B ^= 0x10; | ||
156 | eieio(); | ||
157 | if (adb_wait() < 0) | ||
158 | break; | ||
159 | } | ||
160 | ADB_ACR = 0xc; | ||
161 | eieio(); | ||
162 | x = ADB_SR; | ||
163 | eieio(); | ||
164 | ADB_B |= 0x30; | ||
165 | return j; | ||
166 | } | ||
167 | |||
168 | void | ||
169 | adbcmds(void) | ||
170 | { | ||
171 | char cmd; | ||
172 | unsigned rtcu, rtcl, dec, pdec, x; | ||
173 | int i, j; | ||
174 | unsigned char d[64]; | ||
175 | |||
176 | cmd = skipbl(); | ||
177 | switch (cmd) { | ||
178 | case 't': | ||
179 | for (;;) { | ||
180 | rtcl = get_rtcl(); | ||
181 | rtcu = get_rtcu(); | ||
182 | dec = get_dec(); | ||
183 | printf("rtc u=%u l=%u dec=%x (%d = %d.%.7d)\n", | ||
184 | rtcu, rtcl, dec, pdec - dec, (pdec - dec) / 1000000000, | ||
185 | ((pdec - dec) % 1000000000) / 100); | ||
186 | pdec = dec; | ||
187 | if (cmd == 'x') | ||
188 | break; | ||
189 | while (xmon_read(stdin, &cmd, 1) != 1) | ||
190 | ; | ||
191 | } | ||
192 | break; | ||
193 | case 'r': | ||
194 | init_adb_log(); | ||
195 | while (adb_bitwait(8, 0, 0, 0) == 0) | ||
196 | adb_readin(); | ||
197 | break; | ||
198 | case 'w': | ||
199 | i = 0; | ||
200 | while (scanhex(&x)) | ||
201 | d[i++] = x; | ||
202 | init_adb_log(); | ||
203 | j = adb_write(d, i); | ||
204 | printf("sent %d bytes\n", j); | ||
205 | while (adb_bitwait(8, 0, 0, 0) == 0) | ||
206 | adb_readin(); | ||
207 | break; | ||
208 | case 'l': | ||
209 | dump_adb_log(); | ||
210 | break; | ||
211 | } | ||
212 | } | ||
diff --git a/arch/ppc/xmon/start.c b/arch/ppc/xmon/start.c index 4344cbe9b5c5..ff86b2d814cb 100644 --- a/arch/ppc/xmon/start.c +++ b/arch/ppc/xmon/start.c | |||
@@ -6,16 +6,11 @@ | |||
6 | #include <asm/machdep.h> | 6 | #include <asm/machdep.h> |
7 | #include <asm/io.h> | 7 | #include <asm/io.h> |
8 | #include <asm/page.h> | 8 | #include <asm/page.h> |
9 | #include <linux/adb.h> | ||
10 | #include <linux/pmu.h> | ||
11 | #include <linux/cuda.h> | ||
12 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
13 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
14 | #include <linux/sysrq.h> | 11 | #include <linux/sysrq.h> |
15 | #include <linux/bitops.h> | 12 | #include <linux/bitops.h> |
16 | #include <asm/xmon.h> | 13 | #include <asm/xmon.h> |
17 | #include <asm/prom.h> | ||
18 | #include <asm/bootx.h> | ||
19 | #include <asm/machdep.h> | 14 | #include <asm/machdep.h> |
20 | #include <asm/errno.h> | 15 | #include <asm/errno.h> |
21 | #include <asm/processor.h> | 16 | #include <asm/processor.h> |
@@ -26,9 +21,7 @@ static volatile unsigned char *sccc, *sccd; | |||
26 | unsigned int TXRDY, RXRDY, DLAB; | 21 | unsigned int TXRDY, RXRDY, DLAB; |
27 | static int xmon_expect(const char *str, unsigned int timeout); | 22 | static int xmon_expect(const char *str, unsigned int timeout); |
28 | 23 | ||
29 | static int use_screen; | ||
30 | static int via_modem; | 24 | static int via_modem; |
31 | static int xmon_use_sccb; | ||
32 | 25 | ||
33 | #define TB_SPEED 25000000 | 26 | #define TB_SPEED 25000000 |
34 | 27 | ||
@@ -46,47 +39,6 @@ void buf_access(void) | |||
46 | sccd[3] &= ~DLAB; /* reset DLAB */ | 39 | sccd[3] &= ~DLAB; /* reset DLAB */ |
47 | } | 40 | } |
48 | 41 | ||
49 | extern int adb_init(void); | ||
50 | |||
51 | #ifdef CONFIG_PPC_CHRP | ||
52 | /* | ||
53 | * This looks in the "ranges" property for the primary PCI host bridge | ||
54 | * to find the physical address of the start of PCI/ISA I/O space. | ||
55 | * It is basically a cut-down version of pci_process_bridge_OF_ranges. | ||
56 | */ | ||
57 | static unsigned long chrp_find_phys_io_base(void) | ||
58 | { | ||
59 | struct device_node *node; | ||
60 | unsigned int *ranges; | ||
61 | unsigned long base = CHRP_ISA_IO_BASE; | ||
62 | int rlen = 0; | ||
63 | int np; | ||
64 | |||
65 | node = find_devices("isa"); | ||
66 | if (node != NULL) { | ||
67 | node = node->parent; | ||
68 | if (node == NULL || node->type == NULL | ||
69 | || strcmp(node->type, "pci") != 0) | ||
70 | node = NULL; | ||
71 | } | ||
72 | if (node == NULL) | ||
73 | node = find_devices("pci"); | ||
74 | if (node == NULL) | ||
75 | return base; | ||
76 | |||
77 | ranges = (unsigned int *) get_property(node, "ranges", &rlen); | ||
78 | np = prom_n_addr_cells(node) + 5; | ||
79 | while ((rlen -= np * sizeof(unsigned int)) >= 0) { | ||
80 | if ((ranges[0] >> 24) == 1 && ranges[2] == 0) { | ||
81 | /* I/O space starting at 0, grab the phys base */ | ||
82 | base = ranges[np - 3]; | ||
83 | break; | ||
84 | } | ||
85 | ranges += np; | ||
86 | } | ||
87 | return base; | ||
88 | } | ||
89 | #endif /* CONFIG_PPC_CHRP */ | ||
90 | 42 | ||
91 | #ifdef CONFIG_MAGIC_SYSRQ | 43 | #ifdef CONFIG_MAGIC_SYSRQ |
92 | static void sysrq_handle_xmon(int key, struct pt_regs *regs, | 44 | static void sysrq_handle_xmon(int key, struct pt_regs *regs, |
@@ -109,22 +61,6 @@ xmon_map_scc(void) | |||
109 | #ifdef CONFIG_PPC_MULTIPLATFORM | 61 | #ifdef CONFIG_PPC_MULTIPLATFORM |
110 | volatile unsigned char *base; | 62 | volatile unsigned char *base; |
111 | 63 | ||
112 | #ifdef CONFIG_PPC_CHRP | ||
113 | base = (volatile unsigned char *) isa_io_base; | ||
114 | if (_machine == _MACH_chrp) | ||
115 | base = (volatile unsigned char *) | ||
116 | ioremap(chrp_find_phys_io_base(), 0x1000); | ||
117 | |||
118 | sccc = base + 0x3fd; | ||
119 | sccd = base + 0x3f8; | ||
120 | if (xmon_use_sccb) { | ||
121 | sccc -= 0x100; | ||
122 | sccd -= 0x100; | ||
123 | } | ||
124 | TXRDY = 0x20; | ||
125 | RXRDY = 1; | ||
126 | DLAB = 0x80; | ||
127 | #endif /* CONFIG_PPC_CHRP */ | ||
128 | #elif defined(CONFIG_GEMINI) | 64 | #elif defined(CONFIG_GEMINI) |
129 | /* should already be mapped by the kernel boot */ | 65 | /* should already be mapped by the kernel boot */ |
130 | sccc = (volatile unsigned char *) 0xffeffb0d; | 66 | sccc = (volatile unsigned char *) 0xffeffb0d; |
@@ -143,22 +79,9 @@ xmon_map_scc(void) | |||
143 | register_sysrq_key('x', &sysrq_xmon_op); | 79 | register_sysrq_key('x', &sysrq_xmon_op); |
144 | } | 80 | } |
145 | 81 | ||
146 | static int scc_initialized = 0; | 82 | static int scc_initialized; |
147 | 83 | ||
148 | void xmon_init_scc(void); | 84 | void xmon_init_scc(void); |
149 | extern void cuda_poll(void); | ||
150 | |||
151 | static inline void do_poll_adb(void) | ||
152 | { | ||
153 | #ifdef CONFIG_ADB_PMU | ||
154 | if (sys_ctrler == SYS_CTRLER_PMU) | ||
155 | pmu_poll_adb(); | ||
156 | #endif /* CONFIG_ADB_PMU */ | ||
157 | #ifdef CONFIG_ADB_CUDA | ||
158 | if (sys_ctrler == SYS_CTRLER_CUDA) | ||
159 | cuda_poll(); | ||
160 | #endif /* CONFIG_ADB_CUDA */ | ||
161 | } | ||
162 | 85 | ||
163 | int | 86 | int |
164 | xmon_write(void *handle, void *ptr, int nb) | 87 | xmon_write(void *handle, void *ptr, int nb) |
@@ -176,20 +99,12 @@ xmon_write(void *handle, void *ptr, int nb) | |||
176 | break; | 99 | break; |
177 | #endif | 100 | #endif |
178 | 101 | ||
179 | #ifdef CONFIG_BOOTX_TEXT | ||
180 | if (use_screen) { | ||
181 | /* write it on the screen */ | ||
182 | for (i = 0; i < nb; ++i) | ||
183 | btext_drawchar(*p++); | ||
184 | goto out; | ||
185 | } | ||
186 | #endif | ||
187 | if (!scc_initialized) | 102 | if (!scc_initialized) |
188 | xmon_init_scc(); | 103 | xmon_init_scc(); |
189 | ct = 0; | 104 | ct = 0; |
190 | for (i = 0; i < nb; ++i) { | 105 | for (i = 0; i < nb; ++i) { |
191 | while ((*sccc & TXRDY) == 0) | 106 | while ((*sccc & TXRDY) == 0) |
192 | do_poll_adb(); | 107 | ; |
193 | c = p[i]; | 108 | c = p[i]; |
194 | if (c == '\n' && !ct) { | 109 | if (c == '\n' && !ct) { |
195 | c = '\r'; | 110 | c = '\r'; |
@@ -203,7 +118,6 @@ xmon_write(void *handle, void *ptr, int nb) | |||
203 | eieio(); | 118 | eieio(); |
204 | } | 119 | } |
205 | 120 | ||
206 | out: | ||
207 | #ifdef CONFIG_SMP | 121 | #ifdef CONFIG_SMP |
208 | if (!locked) | 122 | if (!locked) |
209 | clear_bit(0, &xmon_write_lock); | 123 | clear_bit(0, &xmon_write_lock); |
@@ -212,65 +126,7 @@ xmon_write(void *handle, void *ptr, int nb) | |||
212 | } | 126 | } |
213 | 127 | ||
214 | int xmon_wants_key; | 128 | int xmon_wants_key; |
215 | int xmon_adb_keycode; | ||
216 | |||
217 | #ifdef CONFIG_BOOTX_TEXT | ||
218 | static int xmon_adb_shiftstate; | ||
219 | |||
220 | static unsigned char xmon_keytab[128] = | ||
221 | "asdfhgzxcv\000bqwer" /* 0x00 - 0x0f */ | ||
222 | "yt123465=97-80]o" /* 0x10 - 0x1f */ | ||
223 | "u[ip\rlj'k;\\,/nm." /* 0x20 - 0x2f */ | ||
224 | "\t `\177\0\033\0\0\0\0\0\0\0\0\0\0" /* 0x30 - 0x3f */ | ||
225 | "\0.\0*\0+\0\0\0\0\0/\r\0-\0" /* 0x40 - 0x4f */ | ||
226 | "\0\0000123456789\0\0\0"; /* 0x50 - 0x5f */ | ||
227 | |||
228 | static unsigned char xmon_shift_keytab[128] = | ||
229 | "ASDFHGZXCV\000BQWER" /* 0x00 - 0x0f */ | ||
230 | "YT!@#$^%+(&_*)}O" /* 0x10 - 0x1f */ | ||
231 | "U{IP\rLJ\"K:|<?NM>" /* 0x20 - 0x2f */ | ||
232 | "\t ~\177\0\033\0\0\0\0\0\0\0\0\0\0" /* 0x30 - 0x3f */ | ||
233 | "\0.\0*\0+\0\0\0\0\0/\r\0-\0" /* 0x40 - 0x4f */ | ||
234 | "\0\0000123456789\0\0\0"; /* 0x50 - 0x5f */ | ||
235 | |||
236 | static int | ||
237 | xmon_get_adb_key(void) | ||
238 | { | ||
239 | int k, t, on; | ||
240 | 129 | ||
241 | xmon_wants_key = 1; | ||
242 | for (;;) { | ||
243 | xmon_adb_keycode = -1; | ||
244 | t = 0; | ||
245 | on = 0; | ||
246 | do { | ||
247 | if (--t < 0) { | ||
248 | on = 1 - on; | ||
249 | btext_drawchar(on? 0xdb: 0x20); | ||
250 | btext_drawchar('\b'); | ||
251 | t = 200000; | ||
252 | } | ||
253 | do_poll_adb(); | ||
254 | } while (xmon_adb_keycode == -1); | ||
255 | k = xmon_adb_keycode; | ||
256 | if (on) | ||
257 | btext_drawstring(" \b"); | ||
258 | |||
259 | /* test for shift keys */ | ||
260 | if ((k & 0x7f) == 0x38 || (k & 0x7f) == 0x7b) { | ||
261 | xmon_adb_shiftstate = (k & 0x80) == 0; | ||
262 | continue; | ||
263 | } | ||
264 | if (k >= 0x80) | ||
265 | continue; /* ignore up transitions */ | ||
266 | k = (xmon_adb_shiftstate? xmon_shift_keytab: xmon_keytab)[k]; | ||
267 | if (k != 0) | ||
268 | break; | ||
269 | } | ||
270 | xmon_wants_key = 0; | ||
271 | return k; | ||
272 | } | ||
273 | #endif /* CONFIG_BOOTX_TEXT */ | ||
274 | 130 | ||
275 | int | 131 | int |
276 | xmon_read(void *handle, void *ptr, int nb) | 132 | xmon_read(void *handle, void *ptr, int nb) |
@@ -278,18 +134,11 @@ xmon_read(void *handle, void *ptr, int nb) | |||
278 | char *p = ptr; | 134 | char *p = ptr; |
279 | int i; | 135 | int i; |
280 | 136 | ||
281 | #ifdef CONFIG_BOOTX_TEXT | ||
282 | if (use_screen) { | ||
283 | for (i = 0; i < nb; ++i) | ||
284 | *p++ = xmon_get_adb_key(); | ||
285 | return i; | ||
286 | } | ||
287 | #endif | ||
288 | if (!scc_initialized) | 137 | if (!scc_initialized) |
289 | xmon_init_scc(); | 138 | xmon_init_scc(); |
290 | for (i = 0; i < nb; ++i) { | 139 | for (i = 0; i < nb; ++i) { |
291 | while ((*sccc & RXRDY) == 0) | 140 | while ((*sccc & RXRDY) == 0) |
292 | do_poll_adb(); | 141 | ; |
293 | buf_access(); | 142 | buf_access(); |
294 | *p++ = *sccd; | 143 | *p++ = *sccd; |
295 | } | 144 | } |
@@ -300,7 +149,7 @@ int | |||
300 | xmon_read_poll(void) | 149 | xmon_read_poll(void) |
301 | { | 150 | { |
302 | if ((*sccc & RXRDY) == 0) { | 151 | if ((*sccc & RXRDY) == 0) { |
303 | do_poll_adb(); | 152 | ; |
304 | return -1; | 153 | return -1; |
305 | } | 154 | } |
306 | buf_access(); | 155 | buf_access(); |
@@ -310,15 +159,6 @@ xmon_read_poll(void) | |||
310 | void | 159 | void |
311 | xmon_init_scc(void) | 160 | xmon_init_scc(void) |
312 | { | 161 | { |
313 | if ( _machine == _MACH_chrp ) | ||
314 | { | ||
315 | sccd[3] = 0x83; eieio(); /* LCR = 8N1 + DLAB */ | ||
316 | sccd[0] = 12; eieio(); /* DLL = 9600 baud */ | ||
317 | sccd[1] = 0; eieio(); | ||
318 | sccd[2] = 0; eieio(); /* FCR = 0 */ | ||
319 | sccd[3] = 3; eieio(); /* LCR = 8N1 */ | ||
320 | sccd[1] = 0; eieio(); /* IER = 0 */ | ||
321 | } | ||
322 | scc_initialized = 1; | 162 | scc_initialized = 1; |
323 | if (via_modem) { | 163 | if (via_modem) { |
324 | for (;;) { | 164 | for (;;) { |
@@ -334,22 +174,6 @@ xmon_init_scc(void) | |||
334 | } | 174 | } |
335 | } | 175 | } |
336 | 176 | ||
337 | #if 0 | ||
338 | extern int (*prom_entry)(void *); | ||
339 | |||
340 | int | ||
341 | xmon_exit(void) | ||
342 | { | ||
343 | struct prom_args { | ||
344 | char *service; | ||
345 | } args; | ||
346 | |||
347 | for (;;) { | ||
348 | args.service = "exit"; | ||
349 | (*prom_entry)(&args); | ||
350 | } | ||
351 | } | ||
352 | #endif | ||
353 | 177 | ||
354 | void *xmon_stdin; | 178 | void *xmon_stdin; |
355 | void *xmon_stdout; | 179 | void *xmon_stdout; |
diff --git a/arch/ppc/xmon/xmon.c b/arch/ppc/xmon/xmon.c index bdaf6597b4c2..06fa44b5c647 100644 --- a/arch/ppc/xmon/xmon.c +++ b/arch/ppc/xmon/xmon.c | |||
@@ -12,8 +12,6 @@ | |||
12 | #include <linux/kallsyms.h> | 12 | #include <linux/kallsyms.h> |
13 | #include <asm/ptrace.h> | 13 | #include <asm/ptrace.h> |
14 | #include <asm/string.h> | 14 | #include <asm/string.h> |
15 | #include <asm/prom.h> | ||
16 | #include <asm/bootx.h> | ||
17 | #include <asm/machdep.h> | 15 | #include <asm/machdep.h> |
18 | #include <asm/xmon.h> | 16 | #include <asm/xmon.h> |
19 | #include "nonstdio.h" | 17 | #include "nonstdio.h" |
@@ -101,9 +99,6 @@ void cacheflush(void); | |||
101 | static void cpu_cmd(void); | 99 | static void cpu_cmd(void); |
102 | #endif /* CONFIG_SMP */ | 100 | #endif /* CONFIG_SMP */ |
103 | static void csum(void); | 101 | static void csum(void); |
104 | #ifdef CONFIG_BOOTX_TEXT | ||
105 | static void vidcmds(void); | ||
106 | #endif | ||
107 | static void bootcmds(void); | 102 | static void bootcmds(void); |
108 | static void proccall(void); | 103 | static void proccall(void); |
109 | static void printtime(void); | 104 | static void printtime(void); |
@@ -522,11 +517,6 @@ cmds(struct pt_regs *excp) | |||
522 | cpu_cmd(); | 517 | cpu_cmd(); |
523 | break; | 518 | break; |
524 | #endif /* CONFIG_SMP */ | 519 | #endif /* CONFIG_SMP */ |
525 | #ifdef CONFIG_BOOTX_TEXT | ||
526 | case 'v': | ||
527 | vidcmds(); | ||
528 | break; | ||
529 | #endif | ||
530 | case 'z': | 520 | case 'z': |
531 | bootcmds(); | 521 | bootcmds(); |
532 | break; | 522 | break; |
@@ -618,43 +608,6 @@ static void cpu_cmd(void) | |||
618 | } | 608 | } |
619 | #endif /* CONFIG_SMP */ | 609 | #endif /* CONFIG_SMP */ |
620 | 610 | ||
621 | #ifdef CONFIG_BOOTX_TEXT | ||
622 | extern boot_infos_t disp_bi; | ||
623 | |||
624 | static void vidcmds(void) | ||
625 | { | ||
626 | int c = inchar(); | ||
627 | unsigned int val, w; | ||
628 | extern int boot_text_mapped; | ||
629 | |||
630 | if (!boot_text_mapped) | ||
631 | return; | ||
632 | if (c != '\n' && scanhex(&val)) { | ||
633 | switch (c) { | ||
634 | case 'd': | ||
635 | w = disp_bi.dispDeviceRowBytes | ||
636 | / (disp_bi.dispDeviceDepth >> 3); | ||
637 | disp_bi.dispDeviceDepth = val; | ||
638 | disp_bi.dispDeviceRowBytes = w * (val >> 3); | ||
639 | return; | ||
640 | case 'p': | ||
641 | disp_bi.dispDeviceRowBytes = val; | ||
642 | return; | ||
643 | case 'w': | ||
644 | disp_bi.dispDeviceRect[2] = val; | ||
645 | return; | ||
646 | case 'h': | ||
647 | disp_bi.dispDeviceRect[3] = val; | ||
648 | return; | ||
649 | } | ||
650 | } | ||
651 | printf("W = %d (0x%x) H = %d (0x%x) D = %d (0x%x) P = %d (0x%x)\n", | ||
652 | disp_bi.dispDeviceRect[2], disp_bi.dispDeviceRect[2], | ||
653 | disp_bi.dispDeviceRect[3], disp_bi.dispDeviceRect[3], | ||
654 | disp_bi.dispDeviceDepth, disp_bi.dispDeviceDepth, | ||
655 | disp_bi.dispDeviceRowBytes, disp_bi.dispDeviceRowBytes); | ||
656 | } | ||
657 | #endif /* CONFIG_BOOTX_TEXT */ | ||
658 | 611 | ||
659 | static unsigned short fcstab[256] = { | 612 | static unsigned short fcstab[256] = { |
660 | 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, | 613 | 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, |
@@ -1020,7 +973,6 @@ dump_hash_table(void) | |||
1020 | } | 973 | } |
1021 | #else | 974 | #else |
1022 | 975 | ||
1023 | #ifndef CONFIG_PPC64BRIDGE | ||
1024 | static void | 976 | static void |
1025 | dump_hash_table_seg(unsigned seg, unsigned start, unsigned end) | 977 | dump_hash_table_seg(unsigned seg, unsigned start, unsigned end) |
1026 | { | 978 | { |
@@ -1079,66 +1031,6 @@ dump_hash_table_seg(unsigned seg, unsigned start, unsigned end) | |||
1079 | printf(" ... %x\n", last_va); | 1031 | printf(" ... %x\n", last_va); |
1080 | } | 1032 | } |
1081 | 1033 | ||
1082 | #else /* CONFIG_PPC64BRIDGE */ | ||
1083 | static void | ||
1084 | dump_hash_table_seg(unsigned seg, unsigned start, unsigned end) | ||
1085 | { | ||
1086 | extern void *Hash; | ||
1087 | extern unsigned long Hash_size; | ||
1088 | unsigned *htab = Hash; | ||
1089 | unsigned hsize = Hash_size; | ||
1090 | unsigned v, hmask, va, last_va; | ||
1091 | int found, last_found, i; | ||
1092 | unsigned *hg, w1, last_w2, last_va0; | ||
1093 | |||
1094 | last_found = 0; | ||
1095 | hmask = hsize / 128 - 1; | ||
1096 | va = start; | ||
1097 | start = (start >> 12) & 0xffff; | ||
1098 | end = (end >> 12) & 0xffff; | ||
1099 | for (v = start; v < end; ++v) { | ||
1100 | found = 0; | ||
1101 | hg = htab + (((v ^ seg) & hmask) * 32); | ||
1102 | w1 = 1 | (seg << 12) | ((v & 0xf800) >> 4); | ||
1103 | for (i = 0; i < 8; ++i, hg += 4) { | ||
1104 | if (hg[1] == w1) { | ||
1105 | found = 1; | ||
1106 | break; | ||
1107 | } | ||
1108 | } | ||
1109 | if (!found) { | ||
1110 | w1 ^= 2; | ||
1111 | hg = htab + ((~(v ^ seg) & hmask) * 32); | ||
1112 | for (i = 0; i < 8; ++i, hg += 4) { | ||
1113 | if (hg[1] == w1) { | ||
1114 | found = 1; | ||
1115 | break; | ||
1116 | } | ||
1117 | } | ||
1118 | } | ||
1119 | if (!(last_found && found && (hg[3] & ~0x180) == last_w2 + 4096)) { | ||
1120 | if (last_found) { | ||
1121 | if (last_va != last_va0) | ||
1122 | printf(" ... %x", last_va); | ||
1123 | printf("\n"); | ||
1124 | } | ||
1125 | if (found) { | ||
1126 | printf("%x to %x", va, hg[3]); | ||
1127 | last_va0 = va; | ||
1128 | } | ||
1129 | last_found = found; | ||
1130 | } | ||
1131 | if (found) { | ||
1132 | last_w2 = hg[3] & ~0x180; | ||
1133 | last_va = va; | ||
1134 | } | ||
1135 | va += 4096; | ||
1136 | } | ||
1137 | if (last_found) | ||
1138 | printf(" ... %x\n", last_va); | ||
1139 | } | ||
1140 | #endif /* CONFIG_PPC64BRIDGE */ | ||
1141 | |||
1142 | static unsigned hash_ctx; | 1034 | static unsigned hash_ctx; |
1143 | static unsigned hash_start; | 1035 | static unsigned hash_start; |
1144 | static unsigned hash_end; | 1036 | static unsigned hash_end; |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index b66602ad7b33..b7ca5bf9acfc 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -80,6 +80,10 @@ config HOTPLUG_CPU | |||
80 | can be controlled through /sys/devices/system/cpu/cpu#. | 80 | can be controlled through /sys/devices/system/cpu/cpu#. |
81 | Say N if you want to disable CPU hotplug. | 81 | Say N if you want to disable CPU hotplug. |
82 | 82 | ||
83 | config DEFAULT_MIGRATION_COST | ||
84 | int | ||
85 | default "1000000" | ||
86 | |||
83 | config MATHEMU | 87 | config MATHEMU |
84 | bool "IEEE FPU emulation" | 88 | bool "IEEE FPU emulation" |
85 | depends on MARCH_G5 | 89 | depends on MARCH_G5 |
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index 3525c91204d4..f8d0cd540a06 100644 --- a/arch/s390/defconfig +++ b/arch/s390/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.16-rc2 |
4 | # Thu Jan 19 10:58:53 2006 | 4 | # Wed Feb 8 10:44:39 2006 |
5 | # | 5 | # |
6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
7 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 7 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
@@ -12,7 +12,6 @@ CONFIG_S390=y | |||
12 | # Code maturity level options | 12 | # Code maturity level options |
13 | # | 13 | # |
14 | CONFIG_EXPERIMENTAL=y | 14 | CONFIG_EXPERIMENTAL=y |
15 | CONFIG_CLEAN_COMPILE=y | ||
16 | CONFIG_LOCK_KERNEL=y | 15 | CONFIG_LOCK_KERNEL=y |
17 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 16 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
18 | 17 | ||
@@ -154,6 +153,7 @@ CONFIG_NET=y | |||
154 | # | 153 | # |
155 | # Networking options | 154 | # Networking options |
156 | # | 155 | # |
156 | # CONFIG_NETDEBUG is not set | ||
157 | CONFIG_PACKET=y | 157 | CONFIG_PACKET=y |
158 | # CONFIG_PACKET_MMAP is not set | 158 | # CONFIG_PACKET_MMAP is not set |
159 | CONFIG_UNIX=y | 159 | CONFIG_UNIX=y |
@@ -607,6 +607,7 @@ CONFIG_MSDOS_PARTITION=y | |||
607 | # Instrumentation Support | 607 | # Instrumentation Support |
608 | # | 608 | # |
609 | # CONFIG_PROFILING is not set | 609 | # CONFIG_PROFILING is not set |
610 | # CONFIG_STATISTICS is not set | ||
610 | 611 | ||
611 | # | 612 | # |
612 | # Kernel hacking | 613 | # Kernel hacking |
@@ -624,7 +625,7 @@ CONFIG_DEBUG_MUTEXES=y | |||
624 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 625 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
625 | # CONFIG_DEBUG_KOBJECT is not set | 626 | # CONFIG_DEBUG_KOBJECT is not set |
626 | # CONFIG_DEBUG_INFO is not set | 627 | # CONFIG_DEBUG_INFO is not set |
627 | # CONFIG_DEBUG_FS is not set | 628 | CONFIG_DEBUG_FS=y |
628 | # CONFIG_DEBUG_VM is not set | 629 | # CONFIG_DEBUG_VM is not set |
629 | CONFIG_FORCED_INLINING=y | 630 | CONFIG_FORCED_INLINING=y |
630 | # CONFIG_RCU_TORTURE_TEST is not set | 631 | # CONFIG_RCU_TORTURE_TEST is not set |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index cc20f0e3a7d3..cc058dc3bc8b 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -905,6 +905,26 @@ asmlinkage long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * sta | |||
905 | return ret; | 905 | return ret; |
906 | } | 906 | } |
907 | 907 | ||
908 | asmlinkage long sys32_fstatat64(unsigned int dfd, char __user *filename, | ||
909 | struct stat64_emu31 __user* statbuf, int flag) | ||
910 | { | ||
911 | struct kstat stat; | ||
912 | int error = -EINVAL; | ||
913 | |||
914 | if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) | ||
915 | goto out; | ||
916 | |||
917 | if (flag & AT_SYMLINK_NOFOLLOW) | ||
918 | error = vfs_lstat_fd(dfd, filename, &stat); | ||
919 | else | ||
920 | error = vfs_stat_fd(dfd, filename, &stat); | ||
921 | |||
922 | if (!error) | ||
923 | error = cp_stat64(statbuf, &stat); | ||
924 | out: | ||
925 | return error; | ||
926 | } | ||
927 | |||
908 | /* | 928 | /* |
909 | * Linux/i386 didn't use to be able to handle more than | 929 | * Linux/i386 didn't use to be able to handle more than |
910 | * 4 system call parameters, so these system calls used a memory | 930 | * 4 system call parameters, so these system calls used a memory |
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index ef706694a0c1..5291b5f8788d 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -195,9 +195,6 @@ sys32_sigaction(int sig, const struct old_sigaction32 __user *act, | |||
195 | return ret; | 195 | return ret; |
196 | } | 196 | } |
197 | 197 | ||
198 | int | ||
199 | do_sigaction(int sig, const struct k_sigaction *act, struct k_sigaction *oact); | ||
200 | |||
201 | asmlinkage long | 198 | asmlinkage long |
202 | sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, | 199 | sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, |
203 | struct sigaction32 __user *oact, size_t sigsetsize) | 200 | struct sigaction32 __user *oact, size_t sigsetsize) |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 83b33fe1923c..50e80138e7ad 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1523,13 +1523,13 @@ compat_sys_futimesat_wrapper: | |||
1523 | llgtr %r4,%r4 # struct timeval * | 1523 | llgtr %r4,%r4 # struct timeval * |
1524 | jg compat_sys_futimesat | 1524 | jg compat_sys_futimesat |
1525 | 1525 | ||
1526 | .globl compat_sys_newfstatat_wrapper | 1526 | .globl sys32_fstatat64_wrapper |
1527 | compat_sys_newfstatat_wrapper: | 1527 | sys32_fstatat64_wrapper: |
1528 | llgfr %r2,%r2 # unsigned int | 1528 | llgfr %r2,%r2 # unsigned int |
1529 | llgtr %r3,%r3 # char * | 1529 | llgtr %r3,%r3 # char * |
1530 | llgtr %r4,%r4 # struct stat * | 1530 | llgtr %r4,%r4 # struct stat64 * |
1531 | lgfr %r5,%r5 # int | 1531 | lgfr %r5,%r5 # int |
1532 | jg compat_sys_newfstatat | 1532 | jg sys32_fstatat64 |
1533 | 1533 | ||
1534 | .globl sys_unlinkat_wrapper | 1534 | .globl sys_unlinkat_wrapper |
1535 | sys_unlinkat_wrapper: | 1535 | sys_unlinkat_wrapper: |
@@ -1552,6 +1552,7 @@ sys_linkat_wrapper: | |||
1552 | llgtr %r3,%r3 # const char * | 1552 | llgtr %r3,%r3 # const char * |
1553 | lgfr %r4,%r4 # int | 1553 | lgfr %r4,%r4 # int |
1554 | llgtr %r5,%r5 # const char * | 1554 | llgtr %r5,%r5 # const char * |
1555 | lgfr %r6,%r6 # int | ||
1555 | jg sys_linkat | 1556 | jg sys_linkat |
1556 | 1557 | ||
1557 | .globl sys_symlinkat_wrapper | 1558 | .globl sys_symlinkat_wrapper |
@@ -1602,3 +1603,8 @@ compat_sys_ppoll_wrapper: | |||
1602 | llgtr %r5,%r5 # const sigset_t * | 1603 | llgtr %r5,%r5 # const sigset_t * |
1603 | llgfr %r6,%r6 # size_t | 1604 | llgfr %r6,%r6 # size_t |
1604 | jg compat_sys_ppoll | 1605 | jg compat_sys_ppoll |
1606 | |||
1607 | .globl sys_unshare_wrapper | ||
1608 | sys_unshare_wrapper: | ||
1609 | llgfr %r2,%r2 # unsigned long | ||
1610 | jg sys_unshare | ||
diff --git a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c index f0ed5c642c74..bad81b5832db 100644 --- a/arch/s390/kernel/machine_kexec.c +++ b/arch/s390/kernel/machine_kexec.c | |||
@@ -12,15 +12,16 @@ | |||
12 | * on the S390 architecture. | 12 | * on the S390 architecture. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <asm/cio.h> | ||
16 | #include <asm/setup.h> | ||
17 | #include <linux/device.h> | 15 | #include <linux/device.h> |
18 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
19 | #include <linux/kexec.h> | 17 | #include <linux/kexec.h> |
20 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
19 | #include <asm/cio.h> | ||
20 | #include <asm/setup.h> | ||
21 | #include <asm/pgtable.h> | 21 | #include <asm/pgtable.h> |
22 | #include <asm/pgalloc.h> | 22 | #include <asm/pgalloc.h> |
23 | #include <asm/system.h> | 23 | #include <asm/system.h> |
24 | #include <asm/smp.h> | ||
24 | 25 | ||
25 | static void kexec_halt_all_cpus(void *); | 26 | static void kexec_halt_all_cpus(void *); |
26 | 27 | ||
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 008c74526fd3..da6fbae8df91 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -128,8 +128,10 @@ void default_idle(void) | |||
128 | __ctl_set_bit(8, 15); | 128 | __ctl_set_bit(8, 15); |
129 | 129 | ||
130 | #ifdef CONFIG_HOTPLUG_CPU | 130 | #ifdef CONFIG_HOTPLUG_CPU |
131 | if (cpu_is_offline(cpu)) | 131 | if (cpu_is_offline(cpu)) { |
132 | preempt_enable_no_resched(); | ||
132 | cpu_die(); | 133 | cpu_die(); |
134 | } | ||
133 | #endif | 135 | #endif |
134 | 136 | ||
135 | local_mcck_disable(); | 137 | local_mcck_disable(); |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index de8784267473..24f62f16c0e5 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -600,6 +600,7 @@ setup_arch(char **cmdline_p) | |||
600 | init_mm.brk = (unsigned long) &_end; | 600 | init_mm.brk = (unsigned long) &_end; |
601 | 601 | ||
602 | parse_cmdline_early(cmdline_p); | 602 | parse_cmdline_early(cmdline_p); |
603 | parse_early_param(); | ||
603 | 604 | ||
604 | setup_memory(); | 605 | setup_memory(); |
605 | setup_resources(); | 606 | setup_resources(); |
@@ -607,6 +608,7 @@ setup_arch(char **cmdline_p) | |||
607 | 608 | ||
608 | cpu_init(); | 609 | cpu_init(); |
609 | __cpu_logical_map[0] = S390_lowcore.cpu_data.cpu_addr; | 610 | __cpu_logical_map[0] = S390_lowcore.cpu_data.cpu_addr; |
611 | smp_setup_cpu_possible_map(); | ||
610 | 612 | ||
611 | /* | 613 | /* |
612 | * Create kernel page tables and switch to virtual addressing. | 614 | * Create kernel page tables and switch to virtual addressing. |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index cbfcfd02a43a..7dbe00c76c6b 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/smp.c | 2 | * arch/s390/kernel/smp.c |
3 | * | 3 | * |
4 | * S390 version | 4 | * Copyright (C) IBM Corp. 1999,2006 |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
6 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), | 5 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | * Heiko Carstens (heiko.carstens@de.ibm.com) | 7 | * Heiko Carstens (heiko.carstens@de.ibm.com) |
@@ -41,8 +40,6 @@ | |||
41 | #include <asm/cpcmd.h> | 40 | #include <asm/cpcmd.h> |
42 | #include <asm/tlbflush.h> | 41 | #include <asm/tlbflush.h> |
43 | 42 | ||
44 | /* prototypes */ | ||
45 | |||
46 | extern volatile int __cpu_logical_map[]; | 43 | extern volatile int __cpu_logical_map[]; |
47 | 44 | ||
48 | /* | 45 | /* |
@@ -51,13 +48,11 @@ extern volatile int __cpu_logical_map[]; | |||
51 | 48 | ||
52 | struct _lowcore *lowcore_ptr[NR_CPUS]; | 49 | struct _lowcore *lowcore_ptr[NR_CPUS]; |
53 | 50 | ||
54 | cpumask_t cpu_online_map; | 51 | cpumask_t cpu_online_map = CPU_MASK_NONE; |
55 | cpumask_t cpu_possible_map; | 52 | cpumask_t cpu_possible_map = CPU_MASK_NONE; |
56 | 53 | ||
57 | static struct task_struct *current_set[NR_CPUS]; | 54 | static struct task_struct *current_set[NR_CPUS]; |
58 | 55 | ||
59 | EXPORT_SYMBOL(cpu_online_map); | ||
60 | |||
61 | /* | 56 | /* |
62 | * Reboot, halt and power_off routines for SMP. | 57 | * Reboot, halt and power_off routines for SMP. |
63 | */ | 58 | */ |
@@ -490,10 +485,10 @@ void smp_ctl_clear_bit(int cr, int bit) { | |||
490 | * Lets check how many CPUs we have. | 485 | * Lets check how many CPUs we have. |
491 | */ | 486 | */ |
492 | 487 | ||
493 | void | 488 | static unsigned int |
494 | __init smp_check_cpus(unsigned int max_cpus) | 489 | __init smp_count_cpus(void) |
495 | { | 490 | { |
496 | int cpu, num_cpus; | 491 | unsigned int cpu, num_cpus; |
497 | __u16 boot_cpu_addr; | 492 | __u16 boot_cpu_addr; |
498 | 493 | ||
499 | /* | 494 | /* |
@@ -503,22 +498,20 @@ __init smp_check_cpus(unsigned int max_cpus) | |||
503 | boot_cpu_addr = S390_lowcore.cpu_data.cpu_addr; | 498 | boot_cpu_addr = S390_lowcore.cpu_data.cpu_addr; |
504 | current_thread_info()->cpu = 0; | 499 | current_thread_info()->cpu = 0; |
505 | num_cpus = 1; | 500 | num_cpus = 1; |
506 | for (cpu = 0; cpu <= 65535 && num_cpus < max_cpus; cpu++) { | 501 | for (cpu = 0; cpu <= 65535; cpu++) { |
507 | if ((__u16) cpu == boot_cpu_addr) | 502 | if ((__u16) cpu == boot_cpu_addr) |
508 | continue; | 503 | continue; |
509 | __cpu_logical_map[num_cpus] = (__u16) cpu; | 504 | __cpu_logical_map[1] = (__u16) cpu; |
510 | if (signal_processor(num_cpus, sigp_sense) == | 505 | if (signal_processor(1, sigp_sense) == |
511 | sigp_not_operational) | 506 | sigp_not_operational) |
512 | continue; | 507 | continue; |
513 | cpu_set(num_cpus, cpu_present_map); | ||
514 | num_cpus++; | 508 | num_cpus++; |
515 | } | 509 | } |
516 | 510 | ||
517 | for (cpu = 1; cpu < max_cpus; cpu++) | ||
518 | cpu_set(cpu, cpu_possible_map); | ||
519 | |||
520 | printk("Detected %d CPU's\n",(int) num_cpus); | 511 | printk("Detected %d CPU's\n",(int) num_cpus); |
521 | printk("Boot cpu address %2X\n", boot_cpu_addr); | 512 | printk("Boot cpu address %2X\n", boot_cpu_addr); |
513 | |||
514 | return num_cpus; | ||
522 | } | 515 | } |
523 | 516 | ||
524 | /* | 517 | /* |
@@ -679,6 +672,44 @@ __cpu_up(unsigned int cpu) | |||
679 | return 0; | 672 | return 0; |
680 | } | 673 | } |
681 | 674 | ||
675 | static unsigned int __initdata additional_cpus; | ||
676 | static unsigned int __initdata possible_cpus; | ||
677 | |||
678 | void __init smp_setup_cpu_possible_map(void) | ||
679 | { | ||
680 | unsigned int phy_cpus, pos_cpus, cpu; | ||
681 | |||
682 | phy_cpus = smp_count_cpus(); | ||
683 | pos_cpus = min(phy_cpus + additional_cpus, (unsigned int) NR_CPUS); | ||
684 | |||
685 | if (possible_cpus) | ||
686 | pos_cpus = min(possible_cpus, (unsigned int) NR_CPUS); | ||
687 | |||
688 | for (cpu = 0; cpu < pos_cpus; cpu++) | ||
689 | cpu_set(cpu, cpu_possible_map); | ||
690 | |||
691 | phy_cpus = min(phy_cpus, pos_cpus); | ||
692 | |||
693 | for (cpu = 0; cpu < phy_cpus; cpu++) | ||
694 | cpu_set(cpu, cpu_present_map); | ||
695 | } | ||
696 | |||
697 | #ifdef CONFIG_HOTPLUG_CPU | ||
698 | |||
699 | static int __init setup_additional_cpus(char *s) | ||
700 | { | ||
701 | additional_cpus = simple_strtoul(s, NULL, 0); | ||
702 | return 0; | ||
703 | } | ||
704 | early_param("additional_cpus", setup_additional_cpus); | ||
705 | |||
706 | static int __init setup_possible_cpus(char *s) | ||
707 | { | ||
708 | possible_cpus = simple_strtoul(s, NULL, 0); | ||
709 | return 0; | ||
710 | } | ||
711 | early_param("possible_cpus", setup_possible_cpus); | ||
712 | |||
682 | int | 713 | int |
683 | __cpu_disable(void) | 714 | __cpu_disable(void) |
684 | { | 715 | { |
@@ -747,6 +778,8 @@ cpu_die(void) | |||
747 | for(;;); | 778 | for(;;); |
748 | } | 779 | } |
749 | 780 | ||
781 | #endif /* CONFIG_HOTPLUG_CPU */ | ||
782 | |||
750 | /* | 783 | /* |
751 | * Cycle through the processors and setup structures. | 784 | * Cycle through the processors and setup structures. |
752 | */ | 785 | */ |
@@ -760,7 +793,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
760 | /* request the 0x1201 emergency signal external interrupt */ | 793 | /* request the 0x1201 emergency signal external interrupt */ |
761 | if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0) | 794 | if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0) |
762 | panic("Couldn't request external interrupt 0x1201"); | 795 | panic("Couldn't request external interrupt 0x1201"); |
763 | smp_check_cpus(max_cpus); | ||
764 | memset(lowcore_ptr,0,sizeof(lowcore_ptr)); | 796 | memset(lowcore_ptr,0,sizeof(lowcore_ptr)); |
765 | /* | 797 | /* |
766 | * Initialize prefix pages and stacks for all possible cpus | 798 | * Initialize prefix pages and stacks for all possible cpus |
@@ -809,8 +841,6 @@ void __devinit smp_prepare_boot_cpu(void) | |||
809 | BUG_ON(smp_processor_id() != 0); | 841 | BUG_ON(smp_processor_id() != 0); |
810 | 842 | ||
811 | cpu_set(0, cpu_online_map); | 843 | cpu_set(0, cpu_online_map); |
812 | cpu_set(0, cpu_present_map); | ||
813 | cpu_set(0, cpu_possible_map); | ||
814 | S390_lowcore.percpu_offset = __per_cpu_offset[0]; | 844 | S390_lowcore.percpu_offset = __per_cpu_offset[0]; |
815 | current_set[0] = current; | 845 | current_set[0] = current; |
816 | } | 846 | } |
@@ -849,6 +879,7 @@ static int __init topology_init(void) | |||
849 | 879 | ||
850 | subsys_initcall(topology_init); | 880 | subsys_initcall(topology_init); |
851 | 881 | ||
882 | EXPORT_SYMBOL(cpu_online_map); | ||
852 | EXPORT_SYMBOL(cpu_possible_map); | 883 | EXPORT_SYMBOL(cpu_possible_map); |
853 | EXPORT_SYMBOL(lowcore_ptr); | 884 | EXPORT_SYMBOL(lowcore_ptr); |
854 | EXPORT_SYMBOL(smp_ctl_set_bit); | 885 | EXPORT_SYMBOL(smp_ctl_set_bit); |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 3280345efacd..7c88d85c3597 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -301,7 +301,7 @@ SYSCALL(sys_mkdirat,sys_mkdirat,sys_mkdirat_wrapper) | |||
301 | SYSCALL(sys_mknodat,sys_mknodat,sys_mknodat_wrapper) /* 290 */ | 301 | SYSCALL(sys_mknodat,sys_mknodat,sys_mknodat_wrapper) /* 290 */ |
302 | SYSCALL(sys_fchownat,sys_fchownat,sys_fchownat_wrapper) | 302 | SYSCALL(sys_fchownat,sys_fchownat,sys_fchownat_wrapper) |
303 | SYSCALL(sys_futimesat,sys_futimesat,compat_sys_futimesat_wrapper) | 303 | SYSCALL(sys_futimesat,sys_futimesat,compat_sys_futimesat_wrapper) |
304 | SYSCALL(sys_newfstatat,sys_newfstatat,compat_sys_newfstatat_wrapper) | 304 | SYSCALL(sys_fstatat64,sys_newfstatat,sys32_fstatat64_wrapper) |
305 | SYSCALL(sys_unlinkat,sys_unlinkat,sys_unlinkat_wrapper) | 305 | SYSCALL(sys_unlinkat,sys_unlinkat,sys_unlinkat_wrapper) |
306 | SYSCALL(sys_renameat,sys_renameat,sys_renameat_wrapper) /* 295 */ | 306 | SYSCALL(sys_renameat,sys_renameat,sys_renameat_wrapper) /* 295 */ |
307 | SYSCALL(sys_linkat,sys_linkat,sys_linkat_wrapper) | 307 | SYSCALL(sys_linkat,sys_linkat,sys_linkat_wrapper) |
@@ -311,3 +311,4 @@ SYSCALL(sys_fchmodat,sys_fchmodat,sys_fchmodat_wrapper) | |||
311 | SYSCALL(sys_faccessat,sys_faccessat,sys_faccessat_wrapper) /* 300 */ | 311 | SYSCALL(sys_faccessat,sys_faccessat,sys_faccessat_wrapper) /* 300 */ |
312 | SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper) | 312 | SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper) |
313 | SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper) | 313 | SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper) |
314 | SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper) | ||
diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c index e96c35bddac7..71f0a2fb3078 100644 --- a/arch/s390/lib/delay.c +++ b/arch/s390/lib/delay.c | |||
@@ -30,7 +30,7 @@ void __delay(unsigned long loops) | |||
30 | */ | 30 | */ |
31 | __asm__ __volatile__( | 31 | __asm__ __volatile__( |
32 | "0: brct %0,0b" | 32 | "0: brct %0,0b" |
33 | : /* no outputs */ : "r" (loops/2) ); | 33 | : /* no outputs */ : "r" ((loops/2) + 1)); |
34 | } | 34 | } |
35 | 35 | ||
36 | /* | 36 | /* |
diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c index 60f80a4eed4e..b9b7958a226a 100644 --- a/arch/s390/lib/spinlock.c +++ b/arch/s390/lib/spinlock.c | |||
@@ -2,8 +2,7 @@ | |||
2 | * arch/s390/lib/spinlock.c | 2 | * arch/s390/lib/spinlock.c |
3 | * Out of line spinlock code. | 3 | * Out of line spinlock code. |
4 | * | 4 | * |
5 | * S390 version | 5 | * Copyright (C) IBM Corp. 2004, 2006 |
6 | * Copyright (C) 2004 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | */ | 7 | */ |
9 | 8 | ||
@@ -44,6 +43,8 @@ _raw_spin_lock_wait(raw_spinlock_t *lp, unsigned int pc) | |||
44 | _diag44(); | 43 | _diag44(); |
45 | count = spin_retry; | 44 | count = spin_retry; |
46 | } | 45 | } |
46 | if (__raw_spin_is_locked(lp)) | ||
47 | continue; | ||
47 | if (_raw_compare_and_swap(&lp->lock, 0, pc) == 0) | 48 | if (_raw_compare_and_swap(&lp->lock, 0, pc) == 0) |
48 | return; | 49 | return; |
49 | } | 50 | } |
@@ -56,6 +57,8 @@ _raw_spin_trylock_retry(raw_spinlock_t *lp, unsigned int pc) | |||
56 | int count = spin_retry; | 57 | int count = spin_retry; |
57 | 58 | ||
58 | while (count-- > 0) { | 59 | while (count-- > 0) { |
60 | if (__raw_spin_is_locked(lp)) | ||
61 | continue; | ||
59 | if (_raw_compare_and_swap(&lp->lock, 0, pc) == 0) | 62 | if (_raw_compare_and_swap(&lp->lock, 0, pc) == 0) |
60 | return 1; | 63 | return 1; |
61 | } | 64 | } |
@@ -74,6 +77,8 @@ _raw_read_lock_wait(raw_rwlock_t *rw) | |||
74 | _diag44(); | 77 | _diag44(); |
75 | count = spin_retry; | 78 | count = spin_retry; |
76 | } | 79 | } |
80 | if (!__raw_read_can_lock(rw)) | ||
81 | continue; | ||
77 | old = rw->lock & 0x7fffffffU; | 82 | old = rw->lock & 0x7fffffffU; |
78 | if (_raw_compare_and_swap(&rw->lock, old, old + 1) == old) | 83 | if (_raw_compare_and_swap(&rw->lock, old, old + 1) == old) |
79 | return; | 84 | return; |
@@ -88,6 +93,8 @@ _raw_read_trylock_retry(raw_rwlock_t *rw) | |||
88 | int count = spin_retry; | 93 | int count = spin_retry; |
89 | 94 | ||
90 | while (count-- > 0) { | 95 | while (count-- > 0) { |
96 | if (!__raw_read_can_lock(rw)) | ||
97 | continue; | ||
91 | old = rw->lock & 0x7fffffffU; | 98 | old = rw->lock & 0x7fffffffU; |
92 | if (_raw_compare_and_swap(&rw->lock, old, old + 1) == old) | 99 | if (_raw_compare_and_swap(&rw->lock, old, old + 1) == old) |
93 | return 1; | 100 | return 1; |
@@ -106,6 +113,8 @@ _raw_write_lock_wait(raw_rwlock_t *rw) | |||
106 | _diag44(); | 113 | _diag44(); |
107 | count = spin_retry; | 114 | count = spin_retry; |
108 | } | 115 | } |
116 | if (!__raw_write_can_lock(rw)) | ||
117 | continue; | ||
109 | if (_raw_compare_and_swap(&rw->lock, 0, 0x80000000) == 0) | 118 | if (_raw_compare_and_swap(&rw->lock, 0, 0x80000000) == 0) |
110 | return; | 119 | return; |
111 | } | 120 | } |
@@ -118,6 +127,8 @@ _raw_write_trylock_retry(raw_rwlock_t *rw) | |||
118 | int count = spin_retry; | 127 | int count = spin_retry; |
119 | 128 | ||
120 | while (count-- > 0) { | 129 | while (count-- > 0) { |
130 | if (!__raw_write_can_lock(rw)) | ||
131 | continue; | ||
121 | if (_raw_compare_and_swap(&rw->lock, 0, 0x80000000) == 0) | 132 | if (_raw_compare_and_swap(&rw->lock, 0, 0x80000000) == 0) |
122 | return 1; | 133 | return 1; |
123 | } | 134 | } |
diff --git a/arch/s390/lib/uaccess.S b/arch/s390/lib/uaccess.S index 88fc94fe6488..5d59e2625048 100644 --- a/arch/s390/lib/uaccess.S +++ b/arch/s390/lib/uaccess.S | |||
@@ -198,12 +198,12 @@ __strnlen_user_asm: | |||
198 | 0: srst %r2,%r1 | 198 | 0: srst %r2,%r1 |
199 | jo 0b | 199 | jo 0b |
200 | sacf 0 | 200 | sacf 0 |
201 | jh 1f # \0 found in string ? | ||
202 | ahi %r2,1 # strnlen_user result includes the \0 | 201 | ahi %r2,1 # strnlen_user result includes the \0 |
203 | 1: slr %r2,%r3 | 202 | # or return count+1 if \0 not found |
203 | slr %r2,%r3 | ||
204 | br %r14 | 204 | br %r14 |
205 | 2: sacf 0 | 205 | 2: sacf 0 |
206 | lhi %r2,-EFAULT | 206 | slr %r2,%r2 # return 0 on exception |
207 | br %r14 | 207 | br %r14 |
208 | .section __ex_table,"a" | 208 | .section __ex_table,"a" |
209 | .long 0b,2b | 209 | .long 0b,2b |
diff --git a/arch/s390/lib/uaccess64.S b/arch/s390/lib/uaccess64.S index 50219786fc7a..19b41a33c230 100644 --- a/arch/s390/lib/uaccess64.S +++ b/arch/s390/lib/uaccess64.S | |||
@@ -194,12 +194,12 @@ __strnlen_user_asm: | |||
194 | 0: srst %r2,%r1 | 194 | 0: srst %r2,%r1 |
195 | jo 0b | 195 | jo 0b |
196 | sacf 0 | 196 | sacf 0 |
197 | jh 1f # \0 found in string ? | ||
198 | aghi %r2,1 # strnlen_user result includes the \0 | 197 | aghi %r2,1 # strnlen_user result includes the \0 |
199 | 1: slgr %r2,%r3 | 198 | # or return count+1 if \0 not found |
199 | slgr %r2,%r3 | ||
200 | br %r14 | 200 | br %r14 |
201 | 2: sacf 0 | 201 | 2: sacf 0 |
202 | lghi %r2,-EFAULT | 202 | slgr %r2,%r2 # return 0 on exception |
203 | br %r14 | 203 | br %r14 |
204 | .section __ex_table,"a" | 204 | .section __ex_table,"a" |
205 | .quad 0b,2b | 205 | .quad 0b,2b |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 504d56f8ca7f..e9b275d90737 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -392,9 +392,9 @@ config SH_TMU | |||
392 | 392 | ||
393 | endmenu | 393 | endmenu |
394 | 394 | ||
395 | source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" | 395 | #source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" |
396 | 396 | ||
397 | source "arch/sh/boards/renesas/rts7751r2d/Kconfig" | 397 | #source "arch/sh/boards/renesas/rts7751r2d/Kconfig" |
398 | 398 | ||
399 | config SH_PCLK_FREQ | 399 | config SH_PCLK_FREQ |
400 | int "Peripheral clock frequency (in Hz)" | 400 | int "Peripheral clock frequency (in Hz)" |
@@ -446,7 +446,7 @@ endmenu | |||
446 | 446 | ||
447 | config ISA_DMA_API | 447 | config ISA_DMA_API |
448 | bool | 448 | bool |
449 | depends on MPC1211 | 449 | depends on SH_MPC1211 |
450 | default y | 450 | default y |
451 | 451 | ||
452 | menu "Kernel features" | 452 | menu "Kernel features" |
diff --git a/arch/sparc/kernel/systbls.S b/arch/sparc/kernel/systbls.S index c0314705d73a..768de64b371f 100644 --- a/arch/sparc/kernel/systbls.S +++ b/arch/sparc/kernel/systbls.S | |||
@@ -76,7 +76,7 @@ sys_call_table: | |||
76 | /*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink | 76 | /*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink |
77 | /*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid | 77 | /*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid |
78 | /*280*/ .long sys_ni_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat | 78 | /*280*/ .long sys_ni_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat |
79 | /*285*/ .long sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_newfstatat | 79 | /*285*/ .long sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64 |
80 | /*290*/ .long sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat | 80 | /*290*/ .long sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat |
81 | /*295*/ .long sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare | 81 | /*295*/ .long sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare |
82 | 82 | ||
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index ab733be9af08..4c0a50a76554 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -383,6 +383,7 @@ source "arch/sparc64/oprofile/Kconfig" | |||
383 | 383 | ||
384 | config KPROBES | 384 | config KPROBES |
385 | bool "Kprobes (EXPERIMENTAL)" | 385 | bool "Kprobes (EXPERIMENTAL)" |
386 | depends on EXPERIMENTAL && MODULES | ||
386 | help | 387 | help |
387 | Kprobes allows you to trap at almost any kernel address and | 388 | Kprobes allows you to trap at almost any kernel address and |
388 | execute a callback function. register_kprobe() establishes | 389 | execute a callback function. register_kprobe() establishes |
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 054461e6946d..158bd31e15b7 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -542,6 +542,8 @@ void __init setup_arch(char **cmdline_p) | |||
542 | } | 542 | } |
543 | #endif | 543 | #endif |
544 | 544 | ||
545 | smp_setup_cpu_possible_map(); | ||
546 | |||
545 | paging_init(); | 547 | paging_init(); |
546 | } | 548 | } |
547 | 549 | ||
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 1fb6323e65a4..1f7ad8a69052 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -1079,18 +1079,12 @@ int setup_profiling_timer(unsigned int multiplier) | |||
1079 | return 0; | 1079 | return 0; |
1080 | } | 1080 | } |
1081 | 1081 | ||
1082 | /* Constrain the number of cpus to max_cpus. */ | ||
1082 | void __init smp_prepare_cpus(unsigned int max_cpus) | 1083 | void __init smp_prepare_cpus(unsigned int max_cpus) |
1083 | { | 1084 | { |
1084 | int instance, mid; | ||
1085 | |||
1086 | instance = 0; | ||
1087 | while (!cpu_find_by_instance(instance, NULL, &mid)) { | ||
1088 | if (mid < max_cpus) | ||
1089 | cpu_set(mid, phys_cpu_present_map); | ||
1090 | instance++; | ||
1091 | } | ||
1092 | |||
1093 | if (num_possible_cpus() > max_cpus) { | 1085 | if (num_possible_cpus() > max_cpus) { |
1086 | int instance, mid; | ||
1087 | |||
1094 | instance = 0; | 1088 | instance = 0; |
1095 | while (!cpu_find_by_instance(instance, NULL, &mid)) { | 1089 | while (!cpu_find_by_instance(instance, NULL, &mid)) { |
1096 | if (mid != boot_cpu_id) { | 1090 | if (mid != boot_cpu_id) { |
@@ -1105,6 +1099,22 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
1105 | smp_store_cpu_info(boot_cpu_id); | 1099 | smp_store_cpu_info(boot_cpu_id); |
1106 | } | 1100 | } |
1107 | 1101 | ||
1102 | /* Set this up early so that things like the scheduler can init | ||
1103 | * properly. We use the same cpu mask for both the present and | ||
1104 | * possible cpu map. | ||
1105 | */ | ||
1106 | void __init smp_setup_cpu_possible_map(void) | ||
1107 | { | ||
1108 | int instance, mid; | ||
1109 | |||
1110 | instance = 0; | ||
1111 | while (!cpu_find_by_instance(instance, NULL, &mid)) { | ||
1112 | if (mid < NR_CPUS) | ||
1113 | cpu_set(mid, phys_cpu_present_map); | ||
1114 | instance++; | ||
1115 | } | ||
1116 | } | ||
1117 | |||
1108 | void __devinit smp_prepare_boot_cpu(void) | 1118 | void __devinit smp_prepare_boot_cpu(void) |
1109 | { | 1119 | { |
1110 | if (hard_smp_processor_id() >= NR_CPUS) { | 1120 | if (hard_smp_processor_id() >= NR_CPUS) { |
diff --git a/arch/sparc64/kernel/sys32.S b/arch/sparc64/kernel/sys32.S index 60b59375aa78..c4a1cef4b1e5 100644 --- a/arch/sparc64/kernel/sys32.S +++ b/arch/sparc64/kernel/sys32.S | |||
@@ -318,7 +318,7 @@ do_sys_recvmsg: /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int) | |||
318 | nop | 318 | nop |
319 | nop | 319 | nop |
320 | 320 | ||
321 | .section __ex_table | 321 | .section __ex_table,"a" |
322 | .align 4 | 322 | .align 4 |
323 | .word 1b, __retl_efault, 2b, __retl_efault | 323 | .word 1b, __retl_efault, 2b, __retl_efault |
324 | .word 3b, __retl_efault, 4b, __retl_efault | 324 | .word 3b, __retl_efault, 4b, __retl_efault |
diff --git a/arch/sparc64/kernel/sys_sparc32.c b/arch/sparc64/kernel/sys_sparc32.c index 9264ccbaaafa..417727bd87ba 100644 --- a/arch/sparc64/kernel/sys_sparc32.c +++ b/arch/sparc64/kernel/sys_sparc32.c | |||
@@ -428,6 +428,27 @@ asmlinkage long compat_sys_fstat64(unsigned int fd, | |||
428 | return error; | 428 | return error; |
429 | } | 429 | } |
430 | 430 | ||
431 | asmlinkage long compat_sys_fstatat64(unsigned int dfd, char __user *filename, | ||
432 | struct compat_stat64 __user * statbuf, int flag) | ||
433 | { | ||
434 | struct kstat stat; | ||
435 | int error = -EINVAL; | ||
436 | |||
437 | if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) | ||
438 | goto out; | ||
439 | |||
440 | if (flag & AT_SYMLINK_NOFOLLOW) | ||
441 | error = vfs_lstat_fd(dfd, filename, &stat); | ||
442 | else | ||
443 | error = vfs_stat_fd(dfd, filename, &stat); | ||
444 | |||
445 | if (!error) | ||
446 | error = cp_compat_stat64(&stat, statbuf); | ||
447 | |||
448 | out: | ||
449 | return error; | ||
450 | } | ||
451 | |||
431 | asmlinkage long compat_sys_sysfs(int option, u32 arg1, u32 arg2) | 452 | asmlinkage long compat_sys_sysfs(int option, u32 arg1, u32 arg2) |
432 | { | 453 | { |
433 | return sys_sysfs(option, arg1, arg2); | 454 | return sys_sysfs(option, arg1, arg2); |
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S index 5928b3c33e27..c3adb7ac167d 100644 --- a/arch/sparc64/kernel/systbls.S +++ b/arch/sparc64/kernel/systbls.S | |||
@@ -77,7 +77,7 @@ sys_call_table32: | |||
77 | /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink | 77 | /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink |
78 | .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid | 78 | .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid |
79 | /*280*/ .word sys_ni_syscall, sys_add_key, sys_request_key, sys_keyctl, compat_sys_openat | 79 | /*280*/ .word sys_ni_syscall, sys_add_key, sys_request_key, sys_keyctl, compat_sys_openat |
80 | .word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_newfstatat | 80 | .word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_fstatat64 |
81 | /*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat | 81 | /*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat |
82 | .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare | 82 | .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare |
83 | 83 | ||
@@ -146,7 +146,7 @@ sys_call_table: | |||
146 | /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink | 146 | /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink |
147 | .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid | 147 | .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid |
148 | /*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat | 148 | /*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl, sys_openat |
149 | .word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, compat_sys_newfstatat | 149 | .word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64 |
150 | /*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat | 150 | /*285*/ .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat |
151 | .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare | 151 | .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare |
152 | 152 | ||
diff --git a/arch/sparc64/kernel/una_asm.S b/arch/sparc64/kernel/una_asm.S index 1f5b5b708ce7..be183fe41443 100644 --- a/arch/sparc64/kernel/una_asm.S +++ b/arch/sparc64/kernel/una_asm.S | |||
@@ -47,7 +47,7 @@ __do_int_store: | |||
47 | mov 0, %o0 | 47 | mov 0, %o0 |
48 | .size __do_int_store, .-__do_int_store | 48 | .size __do_int_store, .-__do_int_store |
49 | 49 | ||
50 | .section __ex_table | 50 | .section __ex_table,"a" |
51 | .word 4b, __retl_efault | 51 | .word 4b, __retl_efault |
52 | .word 5b, __retl_efault | 52 | .word 5b, __retl_efault |
53 | .word 6b, __retl_efault | 53 | .word 6b, __retl_efault |
@@ -129,7 +129,7 @@ do_int_load: | |||
129 | mov 0, %o0 | 129 | mov 0, %o0 |
130 | .size __do_int_load, .-__do_int_load | 130 | .size __do_int_load, .-__do_int_load |
131 | 131 | ||
132 | .section __ex_table | 132 | .section __ex_table,"a" |
133 | .word 4b, __retl_efault | 133 | .word 4b, __retl_efault |
134 | .word 5b, __retl_efault | 134 | .word 5b, __retl_efault |
135 | .word 6b, __retl_efault | 135 | .word 6b, __retl_efault |
diff --git a/arch/sparc64/lib/U1copy_from_user.S b/arch/sparc64/lib/U1copy_from_user.S index 93146a81e2d3..3192b0bf4fab 100644 --- a/arch/sparc64/lib/U1copy_from_user.S +++ b/arch/sparc64/lib/U1copy_from_user.S | |||
@@ -9,7 +9,7 @@ | |||
9 | .align 4; \ | 9 | .align 4; \ |
10 | 99: retl; \ | 10 | 99: retl; \ |
11 | mov 1, %o0; \ | 11 | mov 1, %o0; \ |
12 | .section __ex_table; \ | 12 | .section __ex_table,"a";\ |
13 | .align 4; \ | 13 | .align 4; \ |
14 | .word 98b, 99b; \ | 14 | .word 98b, 99b; \ |
15 | .text; \ | 15 | .text; \ |
diff --git a/arch/sparc64/lib/U1copy_to_user.S b/arch/sparc64/lib/U1copy_to_user.S index 1fccc521e2bd..d1210ffb0b82 100644 --- a/arch/sparc64/lib/U1copy_to_user.S +++ b/arch/sparc64/lib/U1copy_to_user.S | |||
@@ -9,7 +9,7 @@ | |||
9 | .align 4; \ | 9 | .align 4; \ |
10 | 99: retl; \ | 10 | 99: retl; \ |
11 | mov 1, %o0; \ | 11 | mov 1, %o0; \ |
12 | .section __ex_table; \ | 12 | .section __ex_table,"a";\ |
13 | .align 4; \ | 13 | .align 4; \ |
14 | .word 98b, 99b; \ | 14 | .word 98b, 99b; \ |
15 | .text; \ | 15 | .text; \ |
diff --git a/arch/sparc64/lib/U3copy_from_user.S b/arch/sparc64/lib/U3copy_from_user.S index df600b667e48..f5bfc8d9d216 100644 --- a/arch/sparc64/lib/U3copy_from_user.S +++ b/arch/sparc64/lib/U3copy_from_user.S | |||
@@ -9,7 +9,7 @@ | |||
9 | .align 4; \ | 9 | .align 4; \ |
10 | 99: retl; \ | 10 | 99: retl; \ |
11 | mov 1, %o0; \ | 11 | mov 1, %o0; \ |
12 | .section __ex_table; \ | 12 | .section __ex_table,"a";\ |
13 | .align 4; \ | 13 | .align 4; \ |
14 | .word 98b, 99b; \ | 14 | .word 98b, 99b; \ |
15 | .text; \ | 15 | .text; \ |
diff --git a/arch/sparc64/lib/U3copy_to_user.S b/arch/sparc64/lib/U3copy_to_user.S index f337f22ed82e..2334f111bb0c 100644 --- a/arch/sparc64/lib/U3copy_to_user.S +++ b/arch/sparc64/lib/U3copy_to_user.S | |||
@@ -9,7 +9,7 @@ | |||
9 | .align 4; \ | 9 | .align 4; \ |
10 | 99: retl; \ | 10 | 99: retl; \ |
11 | mov 1, %o0; \ | 11 | mov 1, %o0; \ |
12 | .section __ex_table; \ | 12 | .section __ex_table,"a";\ |
13 | .align 4; \ | 13 | .align 4; \ |
14 | .word 98b, 99b; \ | 14 | .word 98b, 99b; \ |
15 | .text; \ | 15 | .text; \ |
diff --git a/arch/sparc64/lib/bzero.S b/arch/sparc64/lib/bzero.S index 21a933ffb7c2..1d2abcfa4e52 100644 --- a/arch/sparc64/lib/bzero.S +++ b/arch/sparc64/lib/bzero.S | |||
@@ -92,7 +92,7 @@ __bzero_done: | |||
92 | .align 4; \ | 92 | .align 4; \ |
93 | 99: retl; \ | 93 | 99: retl; \ |
94 | mov %o1, %o0; \ | 94 | mov %o1, %o0; \ |
95 | .section __ex_table; \ | 95 | .section __ex_table,"a";\ |
96 | .align 4; \ | 96 | .align 4; \ |
97 | .word 98b, 99b; \ | 97 | .word 98b, 99b; \ |
98 | .text; \ | 98 | .text; \ |
diff --git a/arch/sparc64/lib/copy_in_user.S b/arch/sparc64/lib/copy_in_user.S index 816076c0bc06..650af3f21f78 100644 --- a/arch/sparc64/lib/copy_in_user.S +++ b/arch/sparc64/lib/copy_in_user.S | |||
@@ -13,7 +13,7 @@ | |||
13 | .align 4; \ | 13 | .align 4; \ |
14 | 99: retl; \ | 14 | 99: retl; \ |
15 | mov 1, %o0; \ | 15 | mov 1, %o0; \ |
16 | .section __ex_table; \ | 16 | .section __ex_table,"a";\ |
17 | .align 4; \ | 17 | .align 4; \ |
18 | .word 98b, 99b; \ | 18 | .word 98b, 99b; \ |
19 | .text; \ | 19 | .text; \ |
diff --git a/arch/sparc64/lib/csum_copy_from_user.S b/arch/sparc64/lib/csum_copy_from_user.S index 817ebdae39f8..a22eddbe5dba 100644 --- a/arch/sparc64/lib/csum_copy_from_user.S +++ b/arch/sparc64/lib/csum_copy_from_user.S | |||
@@ -9,7 +9,7 @@ | |||
9 | .align 4; \ | 9 | .align 4; \ |
10 | 99: retl; \ | 10 | 99: retl; \ |
11 | mov -1, %o0; \ | 11 | mov -1, %o0; \ |
12 | .section __ex_table; \ | 12 | .section __ex_table,"a";\ |
13 | .align 4; \ | 13 | .align 4; \ |
14 | .word 98b, 99b; \ | 14 | .word 98b, 99b; \ |
15 | .text; \ | 15 | .text; \ |
diff --git a/arch/sparc64/lib/csum_copy_to_user.S b/arch/sparc64/lib/csum_copy_to_user.S index c2f9463ea1e2..d5b12f441f02 100644 --- a/arch/sparc64/lib/csum_copy_to_user.S +++ b/arch/sparc64/lib/csum_copy_to_user.S | |||
@@ -9,7 +9,7 @@ | |||
9 | .align 4; \ | 9 | .align 4; \ |
10 | 99: retl; \ | 10 | 99: retl; \ |
11 | mov -1, %o0; \ | 11 | mov -1, %o0; \ |
12 | .section __ex_table; \ | 12 | .section __ex_table,"a";\ |
13 | .align 4; \ | 13 | .align 4; \ |
14 | .word 98b, 99b; \ | 14 | .word 98b, 99b; \ |
15 | .text; \ | 15 | .text; \ |
diff --git a/arch/sparc64/lib/strlen_user.S b/arch/sparc64/lib/strlen_user.S index 9ed54ba14fc6..114ed111e251 100644 --- a/arch/sparc64/lib/strlen_user.S +++ b/arch/sparc64/lib/strlen_user.S | |||
@@ -85,7 +85,7 @@ __strnlen_user: | |||
85 | retl | 85 | retl |
86 | clr %o0 | 86 | clr %o0 |
87 | 87 | ||
88 | .section __ex_table,#alloc | 88 | .section __ex_table,"a" |
89 | .align 4 | 89 | .align 4 |
90 | 90 | ||
91 | .word 10b, 30b | 91 | .word 10b, 30b |
diff --git a/arch/sparc64/lib/strncpy_from_user.S b/arch/sparc64/lib/strncpy_from_user.S index e1264650ca7a..b2f499f79427 100644 --- a/arch/sparc64/lib/strncpy_from_user.S +++ b/arch/sparc64/lib/strncpy_from_user.S | |||
@@ -125,7 +125,7 @@ __strncpy_from_user: | |||
125 | add %o2, %o3, %o0 | 125 | add %o2, %o3, %o0 |
126 | .size __strncpy_from_user, .-__strncpy_from_user | 126 | .size __strncpy_from_user, .-__strncpy_from_user |
127 | 127 | ||
128 | .section __ex_table,#alloc | 128 | .section __ex_table,"a" |
129 | .align 4 | 129 | .align 4 |
130 | .word 60b, __retl_efault | 130 | .word 60b, __retl_efault |
131 | .word 61b, __retl_efault | 131 | .word 61b, __retl_efault |
diff --git a/arch/sparc64/solaris/entry64.S b/arch/sparc64/solaris/entry64.S index eb314ed23cdb..f170324e8bf2 100644 --- a/arch/sparc64/solaris/entry64.S +++ b/arch/sparc64/solaris/entry64.S | |||
@@ -217,7 +217,7 @@ solaris_unimplemented: | |||
217 | ba,pt %xcc, ret_from_solaris | 217 | ba,pt %xcc, ret_from_solaris |
218 | nop | 218 | nop |
219 | 219 | ||
220 | .section __ex_table,#alloc | 220 | .section __ex_table,"a" |
221 | .align 4 | 221 | .align 4 |
222 | .word exen, exenf | 222 | .word exen, exenf |
223 | 223 | ||
diff --git a/arch/um/drivers/cow.h b/arch/um/drivers/cow.h index dc36b222100b..04e3958266e0 100644 --- a/arch/um/drivers/cow.h +++ b/arch/um/drivers/cow.h | |||
@@ -46,7 +46,7 @@ extern int file_reader(__u64 offset, char *buf, int len, void *arg); | |||
46 | extern int read_cow_header(int (*reader)(__u64, char *, int, void *), | 46 | extern int read_cow_header(int (*reader)(__u64, char *, int, void *), |
47 | void *arg, __u32 *version_out, | 47 | void *arg, __u32 *version_out, |
48 | char **backing_file_out, time_t *mtime_out, | 48 | char **backing_file_out, time_t *mtime_out, |
49 | unsigned long long *size_out, int *sectorsize_out, | 49 | __u64 *size_out, int *sectorsize_out, |
50 | __u32 *align_out, int *bitmap_offset_out); | 50 | __u32 *align_out, int *bitmap_offset_out); |
51 | 51 | ||
52 | extern int write_cow_header(char *cow_file, int fd, char *backing_file, | 52 | extern int write_cow_header(char *cow_file, int fd, char *backing_file, |
diff --git a/arch/um/drivers/cow_sys.h b/arch/um/drivers/cow_sys.h index c83fc5d68936..94de4ead4f7a 100644 --- a/arch/um/drivers/cow_sys.h +++ b/arch/um/drivers/cow_sys.h | |||
@@ -23,17 +23,17 @@ static inline char *cow_strdup(char *str) | |||
23 | return(uml_strdup(str)); | 23 | return(uml_strdup(str)); |
24 | } | 24 | } |
25 | 25 | ||
26 | static inline int cow_seek_file(int fd, unsigned long long offset) | 26 | static inline int cow_seek_file(int fd, __u64 offset) |
27 | { | 27 | { |
28 | return(os_seek_file(fd, offset)); | 28 | return(os_seek_file(fd, offset)); |
29 | } | 29 | } |
30 | 30 | ||
31 | static inline int cow_file_size(char *file, unsigned long long *size_out) | 31 | static inline int cow_file_size(char *file, __u64 *size_out) |
32 | { | 32 | { |
33 | return(os_file_size(file, size_out)); | 33 | return(os_file_size(file, size_out)); |
34 | } | 34 | } |
35 | 35 | ||
36 | static inline int cow_write_file(int fd, char *buf, int size) | 36 | static inline int cow_write_file(int fd, void *buf, int size) |
37 | { | 37 | { |
38 | return(os_write_file(fd, buf, size)); | 38 | return(os_write_file(fd, buf, size)); |
39 | } | 39 | } |
diff --git a/arch/um/drivers/cow_user.c b/arch/um/drivers/cow_user.c index fbe2217db5dd..61951b721268 100644 --- a/arch/um/drivers/cow_user.c +++ b/arch/um/drivers/cow_user.c | |||
@@ -176,7 +176,7 @@ int write_cow_header(char *cow_file, int fd, char *backing_file, | |||
176 | err = -ENOMEM; | 176 | err = -ENOMEM; |
177 | header = cow_malloc(sizeof(*header)); | 177 | header = cow_malloc(sizeof(*header)); |
178 | if(header == NULL){ | 178 | if(header == NULL){ |
179 | cow_printf("Failed to allocate COW V3 header\n"); | 179 | cow_printf("write_cow_header - failed to allocate COW V3 header\n"); |
180 | goto out; | 180 | goto out; |
181 | } | 181 | } |
182 | header->magic = htonl(COW_MAGIC); | 182 | header->magic = htonl(COW_MAGIC); |
@@ -196,15 +196,17 @@ int write_cow_header(char *cow_file, int fd, char *backing_file, | |||
196 | 196 | ||
197 | err = os_file_modtime(header->backing_file, &modtime); | 197 | err = os_file_modtime(header->backing_file, &modtime); |
198 | if(err < 0){ | 198 | if(err < 0){ |
199 | cow_printf("Backing file '%s' mtime request failed, " | 199 | cow_printf("write_cow_header - backing file '%s' mtime " |
200 | "err = %d\n", header->backing_file, -err); | 200 | "request failed, err = %d\n", header->backing_file, |
201 | -err); | ||
201 | goto out_free; | 202 | goto out_free; |
202 | } | 203 | } |
203 | 204 | ||
204 | err = cow_file_size(header->backing_file, size); | 205 | err = cow_file_size(header->backing_file, size); |
205 | if(err < 0){ | 206 | if(err < 0){ |
206 | cow_printf("Couldn't get size of backing file '%s', " | 207 | cow_printf("write_cow_header - couldn't get size of " |
207 | "err = %d\n", header->backing_file, -err); | 208 | "backing file '%s', err = %d\n", |
209 | header->backing_file, -err); | ||
208 | goto out_free; | 210 | goto out_free; |
209 | } | 211 | } |
210 | 212 | ||
@@ -214,10 +216,11 @@ int write_cow_header(char *cow_file, int fd, char *backing_file, | |||
214 | header->alignment = htonl(alignment); | 216 | header->alignment = htonl(alignment); |
215 | header->cow_format = COW_BITMAP; | 217 | header->cow_format = COW_BITMAP; |
216 | 218 | ||
217 | err = os_write_file(fd, header, sizeof(*header)); | 219 | err = cow_write_file(fd, header, sizeof(*header)); |
218 | if(err != sizeof(*header)){ | 220 | if(err != sizeof(*header)){ |
219 | cow_printf("Write of header to new COW file '%s' failed, " | 221 | cow_printf("write_cow_header - write of header to " |
220 | "err = %d\n", cow_file, -err); | 222 | "new COW file '%s' failed, err = %d\n", cow_file, |
223 | -err); | ||
221 | goto out_free; | 224 | goto out_free; |
222 | } | 225 | } |
223 | err = 0; | 226 | err = 0; |
@@ -299,7 +302,7 @@ int read_cow_header(int (*reader)(__u64, char *, int, void *), void *arg, | |||
299 | } | 302 | } |
300 | else if(version == 3){ | 303 | else if(version == 3){ |
301 | if(n < sizeof(header->v3)){ | 304 | if(n < sizeof(header->v3)){ |
302 | cow_printf("read_cow_header - failed to read V2 " | 305 | cow_printf("read_cow_header - failed to read V3 " |
303 | "header\n"); | 306 | "header\n"); |
304 | goto out; | 307 | goto out; |
305 | } | 308 | } |
@@ -359,7 +362,8 @@ int init_cow_file(int fd, char *cow_file, char *backing_file, int sectorsize, | |||
359 | if(err != sizeof(zero)){ | 362 | if(err != sizeof(zero)){ |
360 | cow_printf("Write of bitmap to new COW file '%s' failed, " | 363 | cow_printf("Write of bitmap to new COW file '%s' failed, " |
361 | "err = %d\n", cow_file, -err); | 364 | "err = %d\n", cow_file, -err); |
362 | err = -EINVAL; | 365 | if (err >= 0) |
366 | err = -EINVAL; | ||
363 | goto out; | 367 | goto out; |
364 | } | 368 | } |
365 | 369 | ||
diff --git a/arch/um/drivers/net_user.c b/arch/um/drivers/net_user.c index 098fa65981ab..0e2f06187ea7 100644 --- a/arch/um/drivers/net_user.c +++ b/arch/um/drivers/net_user.c | |||
@@ -47,10 +47,12 @@ void tap_check_ips(char *gate_addr, unsigned char *eth_addr) | |||
47 | } | 47 | } |
48 | } | 48 | } |
49 | 49 | ||
50 | /* Do reliable error handling as this fails frequently enough. */ | ||
50 | void read_output(int fd, char *output, int len) | 51 | void read_output(int fd, char *output, int len) |
51 | { | 52 | { |
52 | int remain, n, actual; | 53 | int remain, ret, expected; |
53 | char c; | 54 | char c; |
55 | char *str; | ||
54 | 56 | ||
55 | if(output == NULL){ | 57 | if(output == NULL){ |
56 | output = &c; | 58 | output = &c; |
@@ -58,23 +60,31 @@ void read_output(int fd, char *output, int len) | |||
58 | } | 60 | } |
59 | 61 | ||
60 | *output = '\0'; | 62 | *output = '\0'; |
61 | n = os_read_file(fd, &remain, sizeof(remain)); | 63 | ret = os_read_file(fd, &remain, sizeof(remain)); |
62 | if(n != sizeof(remain)){ | 64 | |
63 | printk("read_output - read of length failed, err = %d\n", -n); | 65 | if (ret != sizeof(remain)) { |
64 | return; | 66 | expected = sizeof(remain); |
67 | str = "length"; | ||
68 | goto err; | ||
65 | } | 69 | } |
66 | 70 | ||
67 | while(remain != 0){ | 71 | while(remain != 0){ |
68 | n = (remain < len) ? remain : len; | 72 | expected = (remain < len) ? remain : len; |
69 | actual = os_read_file(fd, output, n); | 73 | ret = os_read_file(fd, output, expected); |
70 | if(actual != n){ | 74 | if (ret != expected) { |
71 | printk("read_output - read of data failed, " | 75 | str = "data"; |
72 | "err = %d\n", -actual); | 76 | goto err; |
73 | return; | ||
74 | } | 77 | } |
75 | remain -= actual; | 78 | remain -= ret; |
76 | } | 79 | } |
80 | |||
77 | return; | 81 | return; |
82 | |||
83 | err: | ||
84 | if (ret < 0) | ||
85 | printk("read_output - read of %s failed, errno = %d\n", str, -ret); | ||
86 | else | ||
87 | printk("read_output - read of %s failed, read only %d of %d bytes\n", str, ret, expected); | ||
78 | } | 88 | } |
79 | 89 | ||
80 | int net_read(int fd, void *buf, int len) | 90 | int net_read(int fd, void *buf, int len) |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 101efd26d467..fa617e0719ab 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -1135,7 +1135,7 @@ static int path_requires_switch(char *from_cmdline, char *from_cow, char *cow) | |||
1135 | static int backing_file_mismatch(char *file, __u64 size, time_t mtime) | 1135 | static int backing_file_mismatch(char *file, __u64 size, time_t mtime) |
1136 | { | 1136 | { |
1137 | unsigned long modtime; | 1137 | unsigned long modtime; |
1138 | long long actual; | 1138 | unsigned long long actual; |
1139 | int err; | 1139 | int err; |
1140 | 1140 | ||
1141 | err = os_file_modtime(file, &modtime); | 1141 | err = os_file_modtime(file, &modtime); |
diff --git a/arch/um/include/init.h b/arch/um/include/init.h index cbd79a8d213d..d4de7c0120ce 100644 --- a/arch/um/include/init.h +++ b/arch/um/include/init.h | |||
@@ -122,7 +122,7 @@ extern struct uml_param __uml_setup_start, __uml_setup_end; | |||
122 | 122 | ||
123 | #define __exitcall(fn) static exitcall_t __exitcall_##fn __exit_call = fn | 123 | #define __exitcall(fn) static exitcall_t __exitcall_##fn __exit_call = fn |
124 | 124 | ||
125 | #define __init_call __attribute__ ((unused,__section__ (".initcall.init"))) | 125 | #define __init_call __attribute_used__ __attribute__ ((__section__ (".initcall.init"))) |
126 | 126 | ||
127 | #endif | 127 | #endif |
128 | 128 | ||
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index eb1710b81255..2a1c64d8d0bf 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
@@ -179,8 +179,11 @@ extern void os_stop_process(int pid); | |||
179 | extern void os_kill_process(int pid, int reap_child); | 179 | extern void os_kill_process(int pid, int reap_child); |
180 | extern void os_kill_ptraced_process(int pid, int reap_child); | 180 | extern void os_kill_ptraced_process(int pid, int reap_child); |
181 | extern void os_usr1_process(int pid); | 181 | extern void os_usr1_process(int pid); |
182 | extern long os_ptrace_ldt(long pid, long addr, long data); | ||
183 | |||
182 | extern int os_getpid(void); | 184 | extern int os_getpid(void); |
183 | extern int os_getpgrp(void); | 185 | extern int os_getpgrp(void); |
186 | |||
184 | extern void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)); | 187 | extern void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)); |
185 | extern void init_new_thread_signals(int altstack); | 188 | extern void init_new_thread_signals(int altstack); |
186 | extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr); | 189 | extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr); |
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c index f55773c819e6..3bd10deea280 100644 --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c | |||
@@ -272,14 +272,23 @@ int os_connect_socket(char *name) | |||
272 | snprintf(sock.sun_path, sizeof(sock.sun_path), "%s", name); | 272 | snprintf(sock.sun_path, sizeof(sock.sun_path), "%s", name); |
273 | 273 | ||
274 | fd = socket(AF_UNIX, SOCK_STREAM, 0); | 274 | fd = socket(AF_UNIX, SOCK_STREAM, 0); |
275 | if(fd < 0) | 275 | if(fd < 0) { |
276 | return(fd); | 276 | err = -errno; |
277 | goto out; | ||
278 | } | ||
277 | 279 | ||
278 | err = connect(fd, (struct sockaddr *) &sock, sizeof(sock)); | 280 | err = connect(fd, (struct sockaddr *) &sock, sizeof(sock)); |
279 | if(err) | 281 | if(err) { |
280 | return(-errno); | 282 | err = -errno; |
283 | goto out_close; | ||
284 | } | ||
281 | 285 | ||
282 | return(fd); | 286 | return fd; |
287 | |||
288 | out_close: | ||
289 | close(fd); | ||
290 | out: | ||
291 | return err; | ||
283 | } | 292 | } |
284 | 293 | ||
285 | void os_close_file(int fd) | 294 | void os_close_file(int fd) |
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c index 7f5e2dac2a35..d261888f39c4 100644 --- a/arch/um/os-Linux/process.c +++ b/arch/um/os-Linux/process.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include "irq_user.h" | 19 | #include "irq_user.h" |
20 | #include "kern_util.h" | 20 | #include "kern_util.h" |
21 | #include "longjmp.h" | 21 | #include "longjmp.h" |
22 | #include "skas_ptrace.h" | ||
22 | 23 | ||
23 | #define ARBITRARY_ADDR -1 | 24 | #define ARBITRARY_ADDR -1 |
24 | #define FAILURE_PID -1 | 25 | #define FAILURE_PID -1 |
@@ -100,6 +101,21 @@ void os_kill_process(int pid, int reap_child) | |||
100 | 101 | ||
101 | } | 102 | } |
102 | 103 | ||
104 | /* This is here uniquely to have access to the userspace errno, i.e. the one | ||
105 | * used by ptrace in case of error. | ||
106 | */ | ||
107 | |||
108 | long os_ptrace_ldt(long pid, long addr, long data) | ||
109 | { | ||
110 | int ret; | ||
111 | |||
112 | ret = ptrace(PTRACE_LDT, pid, addr, data); | ||
113 | |||
114 | if (ret < 0) | ||
115 | return -errno; | ||
116 | return ret; | ||
117 | } | ||
118 | |||
103 | /* Kill off a ptraced child by all means available. kill it normally first, | 119 | /* Kill off a ptraced child by all means available. kill it normally first, |
104 | * then PTRACE_KILL it, then PTRACE_CONT it in case it's in a run state from | 120 | * then PTRACE_KILL it, then PTRACE_CONT it in case it's in a run state from |
105 | * which it can't exit directly. | 121 | * which it can't exit directly. |
diff --git a/arch/um/sys-i386/ldt.c b/arch/um/sys-i386/ldt.c index 1fa09a79a10b..fe0877b3509c 100644 --- a/arch/um/sys-i386/ldt.c +++ b/arch/um/sys-i386/ldt.c | |||
@@ -107,7 +107,7 @@ long write_ldt_entry(struct mm_id * mm_idp, int func, struct user_desc * desc, | |||
107 | * So we need to switch child's mm into our userspace, then | 107 | * So we need to switch child's mm into our userspace, then |
108 | * later switch back. | 108 | * later switch back. |
109 | * | 109 | * |
110 | * Note: I'm unshure: should interrupts be disabled here? | 110 | * Note: I'm unsure: should interrupts be disabled here? |
111 | */ | 111 | */ |
112 | if(!current->active_mm || current->active_mm == &init_mm || | 112 | if(!current->active_mm || current->active_mm == &init_mm || |
113 | mm_idp != ¤t->active_mm->context.skas.id) | 113 | mm_idp != ¤t->active_mm->context.skas.id) |
@@ -129,9 +129,7 @@ long write_ldt_entry(struct mm_id * mm_idp, int func, struct user_desc * desc, | |||
129 | pid = userspace_pid[cpu]; | 129 | pid = userspace_pid[cpu]; |
130 | } | 130 | } |
131 | 131 | ||
132 | res = ptrace(PTRACE_LDT, pid, 0, (unsigned long) &ldt_op); | 132 | res = os_ptrace_ldt(pid, 0, (unsigned long) &ldt_op); |
133 | if(res) | ||
134 | res = errno; | ||
135 | 133 | ||
136 | if(proc_mm) | 134 | if(proc_mm) |
137 | put_cpu(); | 135 | put_cpu(); |
@@ -181,8 +179,7 @@ static long read_ldt_from_host(void __user * ptr, unsigned long bytecount) | |||
181 | */ | 179 | */ |
182 | 180 | ||
183 | cpu = get_cpu(); | 181 | cpu = get_cpu(); |
184 | res = ptrace(PTRACE_LDT, userspace_pid[cpu], 0, | 182 | res = os_ptrace_ldt(userspace_pid[cpu], 0, (unsigned long) &ptrace_ldt); |
185 | (unsigned long) &ptrace_ldt); | ||
186 | put_cpu(); | 183 | put_cpu(); |
187 | if(res < 0) | 184 | if(res < 0) |
188 | goto out; | 185 | goto out; |
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index 04494638b963..e7fc3e500342 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig | |||
@@ -28,6 +28,10 @@ config GENERIC_IRQ_PROBE | |||
28 | bool | 28 | bool |
29 | default y | 29 | default y |
30 | 30 | ||
31 | config TIME_LOW_RES | ||
32 | bool | ||
33 | default y | ||
34 | |||
31 | # Turn off some random 386 crap that can affect device config | 35 | # Turn off some random 386 crap that can affect device config |
32 | config ISA | 36 | config ISA |
33 | bool | 37 | bool |
diff --git a/arch/v850/kernel/process.c b/arch/v850/kernel/process.c index eb909937958b..621111ddf907 100644 --- a/arch/v850/kernel/process.c +++ b/arch/v850/kernel/process.c | |||
@@ -30,6 +30,9 @@ | |||
30 | #include <asm/system.h> | 30 | #include <asm/system.h> |
31 | #include <asm/pgtable.h> | 31 | #include <asm/pgtable.h> |
32 | 32 | ||
33 | void (*pm_power_off)(void) = NULL; | ||
34 | EXPORT_SYMBOL(pm_power_off); | ||
35 | |||
33 | extern void ret_from_fork (void); | 36 | extern void ret_from_fork (void); |
34 | 37 | ||
35 | 38 | ||
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index 2f9deca31cc9..e18eb79bf855 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -354,21 +354,6 @@ config HPET_TIMER | |||
354 | as it is off-chip. You can find the HPET spec at | 354 | as it is off-chip. You can find the HPET spec at |
355 | <http://www.intel.com/hardwaredesign/hpetspec.htm>. | 355 | <http://www.intel.com/hardwaredesign/hpetspec.htm>. |
356 | 356 | ||
357 | config X86_PM_TIMER | ||
358 | bool "PM timer" if EMBEDDED | ||
359 | depends on ACPI | ||
360 | default y | ||
361 | help | ||
362 | Support the ACPI PM timer for time keeping. This is slow, | ||
363 | but is useful on some chipsets without HPET on systems with more | ||
364 | than one CPU. On a single processor or single socket multi core | ||
365 | system it is normally not required. | ||
366 | When the PM timer is active 64bit vsyscalls are disabled | ||
367 | and should not be enabled (/proc/sys/kernel/vsyscall64 should | ||
368 | not be changed). | ||
369 | The kernel selects the PM timer only as a last resort, so it is | ||
370 | useful to enable just in case. | ||
371 | |||
372 | config HPET_EMULATE_RTC | 357 | config HPET_EMULATE_RTC |
373 | bool "Provide RTC interrupt" | 358 | bool "Provide RTC interrupt" |
374 | depends on HPET_TIMER && RTC=y | 359 | depends on HPET_TIMER && RTC=y |
@@ -592,6 +577,7 @@ source "arch/x86_64/oprofile/Kconfig" | |||
592 | 577 | ||
593 | config KPROBES | 578 | config KPROBES |
594 | bool "Kprobes (EXPERIMENTAL)" | 579 | bool "Kprobes (EXPERIMENTAL)" |
580 | depends on EXPERIMENTAL && MODULES | ||
595 | help | 581 | help |
596 | Kprobes allows you to trap at almost any kernel address and | 582 | Kprobes allows you to trap at almost any kernel address and |
597 | execute a callback function. register_kprobe() establishes | 583 | execute a callback function. register_kprobe() establishes |
diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig index 56832929a543..ce4de61ed85d 100644 --- a/arch/x86_64/defconfig +++ b/arch/x86_64/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.16-rc1-git2 | 3 | # Linux kernel version: 2.6.16-rc3-git9 |
4 | # Thu Jan 19 10:05:21 2006 | 4 | # Sat Feb 18 00:27:03 2006 |
5 | # | 5 | # |
6 | CONFIG_X86_64=y | 6 | CONFIG_X86_64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -21,7 +21,6 @@ CONFIG_DMI=y | |||
21 | # Code maturity level options | 21 | # Code maturity level options |
22 | # | 22 | # |
23 | CONFIG_EXPERIMENTAL=y | 23 | CONFIG_EXPERIMENTAL=y |
24 | CONFIG_CLEAN_COMPILE=y | ||
25 | CONFIG_LOCK_KERNEL=y | 24 | CONFIG_LOCK_KERNEL=y |
26 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 25 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
27 | 26 | ||
@@ -267,6 +266,7 @@ CONFIG_NET=y | |||
267 | # | 266 | # |
268 | # Networking options | 267 | # Networking options |
269 | # | 268 | # |
269 | # CONFIG_NETDEBUG is not set | ||
270 | CONFIG_PACKET=y | 270 | CONFIG_PACKET=y |
271 | # CONFIG_PACKET_MMAP is not set | 271 | # CONFIG_PACKET_MMAP is not set |
272 | CONFIG_UNIX=y | 272 | CONFIG_UNIX=y |
@@ -446,7 +446,6 @@ CONFIG_BLK_DEV_PIIX=y | |||
446 | # CONFIG_BLK_DEV_NS87415 is not set | 446 | # CONFIG_BLK_DEV_NS87415 is not set |
447 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | 447 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set |
448 | CONFIG_BLK_DEV_PDC202XX_NEW=y | 448 | CONFIG_BLK_DEV_PDC202XX_NEW=y |
449 | # CONFIG_PDC202XX_FORCE is not set | ||
450 | # CONFIG_BLK_DEV_SVWKS is not set | 449 | # CONFIG_BLK_DEV_SVWKS is not set |
451 | # CONFIG_BLK_DEV_SIIMAGE is not set | 450 | # CONFIG_BLK_DEV_SIIMAGE is not set |
452 | # CONFIG_BLK_DEV_SIS5513 is not set | 451 | # CONFIG_BLK_DEV_SIS5513 is not set |
@@ -573,7 +572,33 @@ CONFIG_FUSION_MAX_SGE=128 | |||
573 | # | 572 | # |
574 | # IEEE 1394 (FireWire) support | 573 | # IEEE 1394 (FireWire) support |
575 | # | 574 | # |
576 | # CONFIG_IEEE1394 is not set | 575 | CONFIG_IEEE1394=y |
576 | |||
577 | # | ||
578 | # Subsystem Options | ||
579 | # | ||
580 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set | ||
581 | # CONFIG_IEEE1394_OUI_DB is not set | ||
582 | # CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set | ||
583 | # CONFIG_IEEE1394_EXPORT_FULL_API is not set | ||
584 | |||
585 | # | ||
586 | # Device Drivers | ||
587 | # | ||
588 | |||
589 | # | ||
590 | # Texas Instruments PCILynx requires I2C | ||
591 | # | ||
592 | CONFIG_IEEE1394_OHCI1394=y | ||
593 | |||
594 | # | ||
595 | # Protocol Drivers | ||
596 | # | ||
597 | # CONFIG_IEEE1394_VIDEO1394 is not set | ||
598 | # CONFIG_IEEE1394_SBP2 is not set | ||
599 | # CONFIG_IEEE1394_ETH1394 is not set | ||
600 | # CONFIG_IEEE1394_DV1394 is not set | ||
601 | CONFIG_IEEE1394_RAWIO=y | ||
577 | 602 | ||
578 | # | 603 | # |
579 | # I2O device support | 604 | # I2O device support |
@@ -772,6 +797,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
772 | # | 797 | # |
773 | CONFIG_SERIAL_CORE=y | 798 | CONFIG_SERIAL_CORE=y |
774 | CONFIG_SERIAL_CORE_CONSOLE=y | 799 | CONFIG_SERIAL_CORE_CONSOLE=y |
800 | # CONFIG_SERIAL_JSM is not set | ||
775 | CONFIG_UNIX98_PTYS=y | 801 | CONFIG_UNIX98_PTYS=y |
776 | CONFIG_LEGACY_PTYS=y | 802 | CONFIG_LEGACY_PTYS=y |
777 | CONFIG_LEGACY_PTY_COUNT=256 | 803 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -871,6 +897,7 @@ CONFIG_HPET_MMAP=y | |||
871 | # | 897 | # |
872 | CONFIG_HWMON=y | 898 | CONFIG_HWMON=y |
873 | # CONFIG_HWMON_VID is not set | 899 | # CONFIG_HWMON_VID is not set |
900 | # CONFIG_SENSORS_F71805F is not set | ||
874 | # CONFIG_SENSORS_HDAPS is not set | 901 | # CONFIG_SENSORS_HDAPS is not set |
875 | # CONFIG_HWMON_DEBUG_CHIP is not set | 902 | # CONFIG_HWMON_DEBUG_CHIP is not set |
876 | 903 | ||
@@ -1101,7 +1128,6 @@ CONFIG_USB_MON=y | |||
1101 | # EDAC - error detection and reporting (RAS) | 1128 | # EDAC - error detection and reporting (RAS) |
1102 | # | 1129 | # |
1103 | # CONFIG_EDAC is not set | 1130 | # CONFIG_EDAC is not set |
1104 | # CONFIG_EDAC_POLL is not set | ||
1105 | 1131 | ||
1106 | # | 1132 | # |
1107 | # Firmware Drivers | 1133 | # Firmware Drivers |
@@ -1296,9 +1322,7 @@ CONFIG_DEBUG_FS=y | |||
1296 | # CONFIG_DEBUG_VM is not set | 1322 | # CONFIG_DEBUG_VM is not set |
1297 | # CONFIG_FRAME_POINTER is not set | 1323 | # CONFIG_FRAME_POINTER is not set |
1298 | # CONFIG_FORCED_INLINING is not set | 1324 | # CONFIG_FORCED_INLINING is not set |
1299 | # CONFIG_UNWIND_INFO is not set | ||
1300 | # CONFIG_RCU_TORTURE_TEST is not set | 1325 | # CONFIG_RCU_TORTURE_TEST is not set |
1301 | CONFIG_INIT_DEBUG=y | ||
1302 | # CONFIG_DEBUG_RODATA is not set | 1326 | # CONFIG_DEBUG_RODATA is not set |
1303 | # CONFIG_IOMMU_DEBUG is not set | 1327 | # CONFIG_IOMMU_DEBUG is not set |
1304 | 1328 | ||
diff --git a/arch/x86_64/ia32/ia32entry.S b/arch/x86_64/ia32/ia32entry.S index 067c0f47bd0d..00dee176c08e 100644 --- a/arch/x86_64/ia32/ia32entry.S +++ b/arch/x86_64/ia32/ia32entry.S | |||
@@ -677,7 +677,7 @@ ia32_sys_call_table: | |||
677 | .quad sys_mknodat | 677 | .quad sys_mknodat |
678 | .quad sys_fchownat | 678 | .quad sys_fchownat |
679 | .quad compat_sys_futimesat | 679 | .quad compat_sys_futimesat |
680 | .quad compat_sys_newfstatat /* 300 */ | 680 | .quad sys32_fstatat /* 300 */ |
681 | .quad sys_unlinkat | 681 | .quad sys_unlinkat |
682 | .quad sys_renameat | 682 | .quad sys_renameat |
683 | .quad sys_linkat | 683 | .quad sys_linkat |
@@ -685,6 +685,9 @@ ia32_sys_call_table: | |||
685 | .quad sys_readlinkat /* 305 */ | 685 | .quad sys_readlinkat /* 305 */ |
686 | .quad sys_fchmodat | 686 | .quad sys_fchmodat |
687 | .quad sys_faccessat | 687 | .quad sys_faccessat |
688 | .quad sys_ni_syscall /* pselect6 for now */ | ||
689 | .quad sys_ni_syscall /* ppoll for now */ | ||
690 | .quad sys_unshare /* 310 */ | ||
688 | ia32_syscall_end: | 691 | ia32_syscall_end: |
689 | .rept IA32_NR_syscalls-(ia32_syscall_end-ia32_sys_call_table)/8 | 692 | .rept IA32_NR_syscalls-(ia32_syscall_end-ia32_sys_call_table)/8 |
690 | .quad ni_syscall | 693 | .quad ni_syscall |
diff --git a/arch/x86_64/ia32/sys_ia32.c b/arch/x86_64/ia32/sys_ia32.c index 54481af5344a..2bc55af95419 100644 --- a/arch/x86_64/ia32/sys_ia32.c +++ b/arch/x86_64/ia32/sys_ia32.c | |||
@@ -180,6 +180,28 @@ sys32_fstat64(unsigned int fd, struct stat64 __user *statbuf) | |||
180 | return ret; | 180 | return ret; |
181 | } | 181 | } |
182 | 182 | ||
183 | asmlinkage long | ||
184 | sys32_fstatat(unsigned int dfd, char __user *filename, | ||
185 | struct stat64 __user* statbuf, int flag) | ||
186 | { | ||
187 | struct kstat stat; | ||
188 | int error = -EINVAL; | ||
189 | |||
190 | if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) | ||
191 | goto out; | ||
192 | |||
193 | if (flag & AT_SYMLINK_NOFOLLOW) | ||
194 | error = vfs_lstat_fd(dfd, filename, &stat); | ||
195 | else | ||
196 | error = vfs_stat_fd(dfd, filename, &stat); | ||
197 | |||
198 | if (!error) | ||
199 | error = cp_stat64(statbuf, &stat); | ||
200 | |||
201 | out: | ||
202 | return error; | ||
203 | } | ||
204 | |||
183 | /* | 205 | /* |
184 | * Linux/i386 didn't use to be able to handle more than | 206 | * Linux/i386 didn't use to be able to handle more than |
185 | * 4 system call parameters, so these system calls used a memory | 207 | * 4 system call parameters, so these system calls used a memory |
diff --git a/arch/x86_64/kernel/Makefile b/arch/x86_64/kernel/Makefile index 72fe60c20d39..a098a11e7755 100644 --- a/arch/x86_64/kernel/Makefile +++ b/arch/x86_64/kernel/Makefile | |||
@@ -43,7 +43,7 @@ CFLAGS_vsyscall.o := $(PROFILING) -g0 | |||
43 | 43 | ||
44 | bootflag-y += ../../i386/kernel/bootflag.o | 44 | bootflag-y += ../../i386/kernel/bootflag.o |
45 | cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o | 45 | cpuid-$(subst m,y,$(CONFIG_X86_CPUID)) += ../../i386/kernel/cpuid.o |
46 | topology-y += ../../i386/mach-default/topology.o | 46 | topology-y += ../../i386/kernel/topology.o |
47 | microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o | 47 | microcode-$(subst m,y,$(CONFIG_MICROCODE)) += ../../i386/kernel/microcode.o |
48 | intel_cacheinfo-y += ../../i386/kernel/cpu/intel_cacheinfo.o | 48 | intel_cacheinfo-y += ../../i386/kernel/cpu/intel_cacheinfo.o |
49 | quirks-y += ../../i386/kernel/quirks.o | 49 | quirks-y += ../../i386/kernel/quirks.o |
diff --git a/arch/x86_64/kernel/aperture.c b/arch/x86_64/kernel/aperture.c index e4e2b7d01f89..a0f955b9995f 100644 --- a/arch/x86_64/kernel/aperture.c +++ b/arch/x86_64/kernel/aperture.c | |||
@@ -248,7 +248,7 @@ void __init iommu_hole_init(void) | |||
248 | /* Got the aperture from the AGP bridge */ | 248 | /* Got the aperture from the AGP bridge */ |
249 | } else if (swiotlb && !valid_agp) { | 249 | } else if (swiotlb && !valid_agp) { |
250 | /* Do nothing */ | 250 | /* Do nothing */ |
251 | } else if ((!no_iommu && end_pfn >= MAX_DMA32_PFN) || | 251 | } else if ((!no_iommu && end_pfn > MAX_DMA32_PFN) || |
252 | force_iommu || | 252 | force_iommu || |
253 | valid_agp || | 253 | valid_agp || |
254 | fallback_aper_force) { | 254 | fallback_aper_force) { |
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c index 6147770b4347..e5b14c57eaa0 100644 --- a/arch/x86_64/kernel/apic.c +++ b/arch/x86_64/kernel/apic.c | |||
@@ -708,7 +708,7 @@ static void setup_APIC_timer(unsigned int clocks) | |||
708 | local_irq_save(flags); | 708 | local_irq_save(flags); |
709 | 709 | ||
710 | /* wait for irq slice */ | 710 | /* wait for irq slice */ |
711 | if (vxtime.hpet_address) { | 711 | if (vxtime.hpet_address && hpet_use_timer) { |
712 | int trigger = hpet_readl(HPET_T0_CMP); | 712 | int trigger = hpet_readl(HPET_T0_CMP); |
713 | while (hpet_readl(HPET_COUNTER) >= trigger) | 713 | while (hpet_readl(HPET_COUNTER) >= trigger) |
714 | /* do nothing */ ; | 714 | /* do nothing */ ; |
@@ -1152,6 +1152,7 @@ __setup("noapicmaintimer", setup_noapicmaintimer); | |||
1152 | static __init int setup_apicpmtimer(char *s) | 1152 | static __init int setup_apicpmtimer(char *s) |
1153 | { | 1153 | { |
1154 | apic_calibrate_pmtmr = 1; | 1154 | apic_calibrate_pmtmr = 1; |
1155 | notsc_setup(NULL); | ||
1155 | return setup_apicmaintimer(NULL); | 1156 | return setup_apicmaintimer(NULL); |
1156 | } | 1157 | } |
1157 | __setup("apicpmtimer", setup_apicpmtimer); | 1158 | __setup("apicpmtimer", setup_apicpmtimer); |
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index b150c87a08c6..7c10e9009d61 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
@@ -554,6 +554,7 @@ iret_label: | |||
554 | /* running with kernel gs */ | 554 | /* running with kernel gs */ |
555 | bad_iret: | 555 | bad_iret: |
556 | movq $-9999,%rdi /* better code? */ | 556 | movq $-9999,%rdi /* better code? */ |
557 | sti | ||
557 | jmp do_exit | 558 | jmp do_exit |
558 | .previous | 559 | .previous |
559 | 560 | ||
diff --git a/arch/x86_64/kernel/head.S b/arch/x86_64/kernel/head.S index 692c737feddb..02fc7fa0ea28 100644 --- a/arch/x86_64/kernel/head.S +++ b/arch/x86_64/kernel/head.S | |||
@@ -213,6 +213,11 @@ ENTRY(early_idt_handler) | |||
213 | cmpl $2,early_recursion_flag(%rip) | 213 | cmpl $2,early_recursion_flag(%rip) |
214 | jz 1f | 214 | jz 1f |
215 | call dump_stack | 215 | call dump_stack |
216 | #ifdef CONFIG_KALLSYMS | ||
217 | leaq early_idt_ripmsg(%rip),%rdi | ||
218 | movq 8(%rsp),%rsi # get rip again | ||
219 | call __print_symbol | ||
220 | #endif | ||
216 | 1: hlt | 221 | 1: hlt |
217 | jmp 1b | 222 | jmp 1b |
218 | early_recursion_flag: | 223 | early_recursion_flag: |
@@ -220,6 +225,8 @@ early_recursion_flag: | |||
220 | 225 | ||
221 | early_idt_msg: | 226 | early_idt_msg: |
222 | .asciz "PANIC: early exception rip %lx error %lx cr2 %lx\n" | 227 | .asciz "PANIC: early exception rip %lx error %lx cr2 %lx\n" |
228 | early_idt_ripmsg: | ||
229 | .asciz "RIP %s\n" | ||
223 | 230 | ||
224 | .code32 | 231 | .code32 |
225 | ENTRY(no_long_mode) | 232 | ENTRY(no_long_mode) |
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index 4282d72b2a26..ffed464e6b12 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c | |||
@@ -30,6 +30,9 @@ | |||
30 | #include <linux/mc146818rtc.h> | 30 | #include <linux/mc146818rtc.h> |
31 | #include <linux/acpi.h> | 31 | #include <linux/acpi.h> |
32 | #include <linux/sysdev.h> | 32 | #include <linux/sysdev.h> |
33 | #ifdef CONFIG_ACPI | ||
34 | #include <acpi/acpi_bus.h> | ||
35 | #endif | ||
33 | 36 | ||
34 | #include <asm/io.h> | 37 | #include <asm/io.h> |
35 | #include <asm/smp.h> | 38 | #include <asm/smp.h> |
@@ -47,6 +50,8 @@ static int no_timer_check; | |||
47 | 50 | ||
48 | int disable_timer_pin_1 __initdata; | 51 | int disable_timer_pin_1 __initdata; |
49 | 52 | ||
53 | int timer_over_8254 __initdata = 1; | ||
54 | |||
50 | /* Where if anywhere is the i8259 connect in external int mode */ | 55 | /* Where if anywhere is the i8259 connect in external int mode */ |
51 | static struct { int pin, apic; } ioapic_i8259 = { -1, -1 }; | 56 | static struct { int pin, apic; } ioapic_i8259 = { -1, -1 }; |
52 | 57 | ||
@@ -248,6 +253,20 @@ static int __init enable_ioapic_setup(char *str) | |||
248 | __setup("noapic", disable_ioapic_setup); | 253 | __setup("noapic", disable_ioapic_setup); |
249 | __setup("apic", enable_ioapic_setup); | 254 | __setup("apic", enable_ioapic_setup); |
250 | 255 | ||
256 | static int __init setup_disable_8254_timer(char *s) | ||
257 | { | ||
258 | timer_over_8254 = -1; | ||
259 | return 1; | ||
260 | } | ||
261 | static int __init setup_enable_8254_timer(char *s) | ||
262 | { | ||
263 | timer_over_8254 = 2; | ||
264 | return 1; | ||
265 | } | ||
266 | |||
267 | __setup("disable_8254_timer", setup_disable_8254_timer); | ||
268 | __setup("enable_8254_timer", setup_enable_8254_timer); | ||
269 | |||
251 | #include <asm/pci-direct.h> | 270 | #include <asm/pci-direct.h> |
252 | #include <linux/pci_ids.h> | 271 | #include <linux/pci_ids.h> |
253 | #include <linux/pci.h> | 272 | #include <linux/pci.h> |
@@ -260,6 +279,8 @@ __setup("apic", enable_ioapic_setup); | |||
260 | 279 | ||
261 | And another hack to disable the IOMMU on VIA chipsets. | 280 | And another hack to disable the IOMMU on VIA chipsets. |
262 | 281 | ||
282 | ... and others. Really should move this somewhere else. | ||
283 | |||
263 | Kludge-O-Rama. */ | 284 | Kludge-O-Rama. */ |
264 | void __init check_ioapic(void) | 285 | void __init check_ioapic(void) |
265 | { | 286 | { |
@@ -304,16 +325,20 @@ void __init check_ioapic(void) | |||
304 | #endif | 325 | #endif |
305 | /* RED-PEN skip them on mptables too? */ | 326 | /* RED-PEN skip them on mptables too? */ |
306 | return; | 327 | return; |
328 | |||
329 | /* This should be actually default, but | ||
330 | for 2.6.16 let's do it for ATI only where | ||
331 | it's really needed. */ | ||
307 | case PCI_VENDOR_ID_ATI: | 332 | case PCI_VENDOR_ID_ATI: |
308 | if (apic_runs_main_timer != 0) | 333 | if (timer_over_8254 == 1) { |
309 | break; | 334 | timer_over_8254 = 0; |
310 | printk(KERN_INFO | 335 | printk(KERN_INFO |
311 | "ATI board detected. Using APIC/PM timer.\n"); | 336 | "ATI board detected. Disabling timer routing over 8254.\n"); |
312 | apic_runs_main_timer = 1; | 337 | } |
313 | nohpet = 1; | ||
314 | return; | 338 | return; |
315 | } | 339 | } |
316 | 340 | ||
341 | |||
317 | /* No multi-function device? */ | 342 | /* No multi-function device? */ |
318 | type = read_pci_config_byte(num,slot,func, | 343 | type = read_pci_config_byte(num,slot,func, |
319 | PCI_HEADER_TYPE); | 344 | PCI_HEADER_TYPE); |
@@ -1757,6 +1782,8 @@ static inline void unlock_ExtINT_logic(void) | |||
1757 | * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ | 1782 | * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ |
1758 | * is so screwy. Thanks to Brian Perkins for testing/hacking this beast | 1783 | * is so screwy. Thanks to Brian Perkins for testing/hacking this beast |
1759 | * fanatically on his truly buggy board. | 1784 | * fanatically on his truly buggy board. |
1785 | * | ||
1786 | * FIXME: really need to revamp this for modern platforms only. | ||
1760 | */ | 1787 | */ |
1761 | static inline void check_timer(void) | 1788 | static inline void check_timer(void) |
1762 | { | 1789 | { |
@@ -1779,7 +1806,8 @@ static inline void check_timer(void) | |||
1779 | */ | 1806 | */ |
1780 | apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); | 1807 | apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); |
1781 | init_8259A(1); | 1808 | init_8259A(1); |
1782 | enable_8259A_irq(0); | 1809 | if (timer_over_8254 > 0) |
1810 | enable_8259A_irq(0); | ||
1783 | 1811 | ||
1784 | pin1 = find_isa_irq_pin(0, mp_INT); | 1812 | pin1 = find_isa_irq_pin(0, mp_INT); |
1785 | apic1 = find_isa_irq_apic(0, mp_INT); | 1813 | apic1 = find_isa_irq_apic(0, mp_INT); |
@@ -1834,7 +1862,7 @@ static inline void check_timer(void) | |||
1834 | } | 1862 | } |
1835 | printk(" failed.\n"); | 1863 | printk(" failed.\n"); |
1836 | 1864 | ||
1837 | if (nmi_watchdog) { | 1865 | if (nmi_watchdog == NMI_IO_APIC) { |
1838 | printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n"); | 1866 | printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n"); |
1839 | nmi_watchdog = 0; | 1867 | nmi_watchdog = 0; |
1840 | } | 1868 | } |
diff --git a/arch/x86_64/kernel/machine_kexec.c b/arch/x86_64/kernel/machine_kexec.c index 89fab51e20f4..25ac8a3faae6 100644 --- a/arch/x86_64/kernel/machine_kexec.c +++ b/arch/x86_64/kernel/machine_kexec.c | |||
@@ -140,7 +140,7 @@ static void load_segments(void) | |||
140 | "\tmovl %0,%%ss\n" | 140 | "\tmovl %0,%%ss\n" |
141 | "\tmovl %0,%%fs\n" | 141 | "\tmovl %0,%%fs\n" |
142 | "\tmovl %0,%%gs\n" | 142 | "\tmovl %0,%%gs\n" |
143 | : : "a" (__KERNEL_DS) | 143 | : : "a" (__KERNEL_DS) : "memory" |
144 | ); | 144 | ); |
145 | } | 145 | } |
146 | 146 | ||
diff --git a/arch/x86_64/kernel/mpparse.c b/arch/x86_64/kernel/mpparse.c index dc49bfb6db0a..9013a90b5c2e 100644 --- a/arch/x86_64/kernel/mpparse.c +++ b/arch/x86_64/kernel/mpparse.c | |||
@@ -288,9 +288,9 @@ static int __init smp_read_mpc(struct mp_config_table *mpc) | |||
288 | 288 | ||
289 | memcpy(str,mpc->mpc_productid,12); | 289 | memcpy(str,mpc->mpc_productid,12); |
290 | str[12]=0; | 290 | str[12]=0; |
291 | printk(KERN_INFO "Product ID: %s ",str); | 291 | printk("Product ID: %s ",str); |
292 | 292 | ||
293 | printk(KERN_INFO "APIC at: 0x%X\n",mpc->mpc_lapic); | 293 | printk("APIC at: 0x%X\n",mpc->mpc_lapic); |
294 | 294 | ||
295 | /* save the local APIC address, it might be non-default */ | 295 | /* save the local APIC address, it might be non-default */ |
296 | if (!acpi_lapic) | 296 | if (!acpi_lapic) |
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index 8be407a1f62d..5bf17e41cd2d 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
@@ -236,6 +236,7 @@ static void enable_lapic_nmi_watchdog(void) | |||
236 | { | 236 | { |
237 | if (nmi_active < 0) { | 237 | if (nmi_active < 0) { |
238 | nmi_watchdog = NMI_LOCAL_APIC; | 238 | nmi_watchdog = NMI_LOCAL_APIC; |
239 | touch_nmi_watchdog(); | ||
239 | setup_apic_nmi_watchdog(); | 240 | setup_apic_nmi_watchdog(); |
240 | } | 241 | } |
241 | } | 242 | } |
@@ -456,15 +457,17 @@ static DEFINE_PER_CPU(int, nmi_touch); | |||
456 | 457 | ||
457 | void touch_nmi_watchdog (void) | 458 | void touch_nmi_watchdog (void) |
458 | { | 459 | { |
459 | int i; | 460 | if (nmi_watchdog > 0) { |
461 | unsigned cpu; | ||
460 | 462 | ||
461 | /* | 463 | /* |
462 | * Tell other CPUs to reset their alert counters. We cannot | 464 | * Tell other CPUs to reset their alert counters. We cannot |
463 | * do it ourselves because the alert count increase is not | 465 | * do it ourselves because the alert count increase is not |
464 | * atomic. | 466 | * atomic. |
465 | */ | 467 | */ |
466 | for (i = 0; i < NR_CPUS; i++) | 468 | for_each_present_cpu (cpu) |
467 | per_cpu(nmi_touch, i) = 1; | 469 | per_cpu(nmi_touch, cpu) = 1; |
470 | } | ||
468 | 471 | ||
469 | touch_softlockup_watchdog(); | 472 | touch_softlockup_watchdog(); |
470 | } | 473 | } |
diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 2fe23a6c361b..0c3f052ba6ce 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c | |||
@@ -228,11 +228,6 @@ static inline int need_iommu(struct device *dev, unsigned long addr, size_t size | |||
228 | int mmu = high; | 228 | int mmu = high; |
229 | if (force_iommu) | 229 | if (force_iommu) |
230 | mmu = 1; | 230 | mmu = 1; |
231 | if (no_iommu) { | ||
232 | if (high) | ||
233 | panic("PCI-DMA: high address but no IOMMU.\n"); | ||
234 | mmu = 0; | ||
235 | } | ||
236 | return mmu; | 231 | return mmu; |
237 | } | 232 | } |
238 | 233 | ||
@@ -241,11 +236,6 @@ static inline int nonforced_iommu(struct device *dev, unsigned long addr, size_t | |||
241 | u64 mask = *dev->dma_mask; | 236 | u64 mask = *dev->dma_mask; |
242 | int high = addr + size >= mask; | 237 | int high = addr + size >= mask; |
243 | int mmu = high; | 238 | int mmu = high; |
244 | if (no_iommu) { | ||
245 | if (high) | ||
246 | panic("PCI-DMA: high address but no IOMMU.\n"); | ||
247 | mmu = 0; | ||
248 | } | ||
249 | return mmu; | 239 | return mmu; |
250 | } | 240 | } |
251 | 241 | ||
@@ -379,7 +369,7 @@ static int __dma_map_cont(struct scatterlist *sg, int start, int stopat, | |||
379 | SET_LEAK(iommu_page); | 369 | SET_LEAK(iommu_page); |
380 | addr += PAGE_SIZE; | 370 | addr += PAGE_SIZE; |
381 | iommu_page++; | 371 | iommu_page++; |
382 | } | 372 | } |
383 | } | 373 | } |
384 | BUG_ON(iommu_page - iommu_start != pages); | 374 | BUG_ON(iommu_page - iommu_start != pages); |
385 | return 0; | 375 | return 0; |
@@ -634,17 +624,13 @@ static int __init pci_iommu_init(void) | |||
634 | (agp_copy_info(agp_bridge, &info) < 0); | 624 | (agp_copy_info(agp_bridge, &info) < 0); |
635 | #endif | 625 | #endif |
636 | 626 | ||
637 | if (swiotlb) { | 627 | if (swiotlb) |
638 | no_iommu = 1; | ||
639 | return -1; | 628 | return -1; |
640 | } | 629 | |
641 | |||
642 | if (no_iommu || | 630 | if (no_iommu || |
643 | (!force_iommu && end_pfn <= MAX_DMA32_PFN) || | 631 | (!force_iommu && end_pfn <= MAX_DMA32_PFN) || |
644 | !iommu_aperture || | 632 | !iommu_aperture || |
645 | (no_agp && init_k8_gatt(&info) < 0)) { | 633 | (no_agp && init_k8_gatt(&info) < 0)) { |
646 | no_iommu = 1; | ||
647 | no_iommu_init(); | ||
648 | printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n"); | 634 | printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n"); |
649 | if (end_pfn > MAX_DMA32_PFN) { | 635 | if (end_pfn > MAX_DMA32_PFN) { |
650 | printk(KERN_ERR "WARNING more than 4GB of memory " | 636 | printk(KERN_ERR "WARNING more than 4GB of memory " |
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index 9435ab7d6fb8..aa55e3cec665 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
@@ -423,6 +423,12 @@ static __init void parse_cmdline_early (char ** cmdline_p) | |||
423 | else if(!memcmp(from, "elfcorehdr=", 11)) | 423 | else if(!memcmp(from, "elfcorehdr=", 11)) |
424 | elfcorehdr_addr = memparse(from+11, &from); | 424 | elfcorehdr_addr = memparse(from+11, &from); |
425 | #endif | 425 | #endif |
426 | |||
427 | #ifdef CONFIG_HOTPLUG_CPU | ||
428 | else if (!memcmp(from, "additional_cpus=", 16)) | ||
429 | setup_additional_cpus(from+16); | ||
430 | #endif | ||
431 | |||
426 | next_char: | 432 | next_char: |
427 | c = *(from++); | 433 | c = *(from++); |
428 | if (!c) | 434 | if (!c) |
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index 67e4e28f4df8..66e98659d077 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -1152,8 +1152,6 @@ void __init smp_cpus_done(unsigned int max_cpus) | |||
1152 | setup_ioapic_dest(); | 1152 | setup_ioapic_dest(); |
1153 | #endif | 1153 | #endif |
1154 | 1154 | ||
1155 | time_init_gtod(); | ||
1156 | |||
1157 | check_nmi_watchdog(); | 1155 | check_nmi_watchdog(); |
1158 | } | 1156 | } |
1159 | 1157 | ||
@@ -1244,7 +1242,7 @@ void __cpu_die(unsigned int cpu) | |||
1244 | printk(KERN_ERR "CPU %u didn't die...\n", cpu); | 1242 | printk(KERN_ERR "CPU %u didn't die...\n", cpu); |
1245 | } | 1243 | } |
1246 | 1244 | ||
1247 | static __init int setup_additional_cpus(char *s) | 1245 | __init int setup_additional_cpus(char *s) |
1248 | { | 1246 | { |
1249 | return get_option(&s, &additional_cpus); | 1247 | return get_option(&s, &additional_cpus); |
1250 | } | 1248 | } |
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c index dba7237be5c1..3080f84bf7b7 100644 --- a/arch/x86_64/kernel/time.c +++ b/arch/x86_64/kernel/time.c | |||
@@ -48,6 +48,8 @@ static void cpufreq_delayed_get(void); | |||
48 | extern void i8254_timer_resume(void); | 48 | extern void i8254_timer_resume(void); |
49 | extern int using_apic_timer; | 49 | extern int using_apic_timer; |
50 | 50 | ||
51 | static char *time_init_gtod(void); | ||
52 | |||
51 | DEFINE_SPINLOCK(rtc_lock); | 53 | DEFINE_SPINLOCK(rtc_lock); |
52 | DEFINE_SPINLOCK(i8253_lock); | 54 | DEFINE_SPINLOCK(i8253_lock); |
53 | 55 | ||
@@ -59,7 +61,7 @@ static int notsc __initdata = 0; | |||
59 | unsigned int cpu_khz; /* TSC clocks / usec, not used here */ | 61 | unsigned int cpu_khz; /* TSC clocks / usec, not used here */ |
60 | static unsigned long hpet_period; /* fsecs / HPET clock */ | 62 | static unsigned long hpet_period; /* fsecs / HPET clock */ |
61 | unsigned long hpet_tick; /* HPET clocks / interrupt */ | 63 | unsigned long hpet_tick; /* HPET clocks / interrupt */ |
62 | static int hpet_use_timer; /* Use counter of hpet for time keeping, otherwise PIT */ | 64 | int hpet_use_timer; /* Use counter of hpet for time keeping, otherwise PIT */ |
63 | unsigned long vxtime_hz = PIT_TICK_RATE; | 65 | unsigned long vxtime_hz = PIT_TICK_RATE; |
64 | int report_lost_ticks; /* command line option */ | 66 | int report_lost_ticks; /* command line option */ |
65 | unsigned long long monotonic_base; | 67 | unsigned long long monotonic_base; |
@@ -326,7 +328,10 @@ static noinline void handle_lost_ticks(int lost, struct pt_regs *regs) | |||
326 | print_symbol("rip %s\n", regs->rip); | 328 | print_symbol("rip %s\n", regs->rip); |
327 | if (vxtime.mode == VXTIME_TSC && vxtime.hpet_address) { | 329 | if (vxtime.mode == VXTIME_TSC && vxtime.hpet_address) { |
328 | printk(KERN_WARNING "Falling back to HPET\n"); | 330 | printk(KERN_WARNING "Falling back to HPET\n"); |
329 | vxtime.last = hpet_readl(HPET_T0_CMP) - hpet_tick; | 331 | if (hpet_use_timer) |
332 | vxtime.last = hpet_readl(HPET_T0_CMP) - hpet_tick; | ||
333 | else | ||
334 | vxtime.last = hpet_readl(HPET_COUNTER); | ||
330 | vxtime.mode = VXTIME_HPET; | 335 | vxtime.mode = VXTIME_HPET; |
331 | do_gettimeoffset = do_gettimeoffset_hpet; | 336 | do_gettimeoffset = do_gettimeoffset_hpet; |
332 | } | 337 | } |
@@ -898,6 +903,7 @@ static struct irqaction irq0 = { | |||
898 | void __init time_init(void) | 903 | void __init time_init(void) |
899 | { | 904 | { |
900 | char *timename; | 905 | char *timename; |
906 | char *gtod; | ||
901 | 907 | ||
902 | #ifdef HPET_HACK_ENABLE_DANGEROUS | 908 | #ifdef HPET_HACK_ENABLE_DANGEROUS |
903 | if (!vxtime.hpet_address) { | 909 | if (!vxtime.hpet_address) { |
@@ -942,21 +948,19 @@ void __init time_init(void) | |||
942 | timename = "PIT"; | 948 | timename = "PIT"; |
943 | } | 949 | } |
944 | 950 | ||
945 | printk(KERN_INFO "time.c: Using %ld.%06ld MHz %s timer.\n", | 951 | vxtime.mode = VXTIME_TSC; |
946 | vxtime_hz / 1000000, vxtime_hz % 1000000, timename); | 952 | gtod = time_init_gtod(); |
953 | |||
954 | printk(KERN_INFO "time.c: Using %ld.%06ld MHz WALL %s GTOD %s timer.\n", | ||
955 | vxtime_hz / 1000000, vxtime_hz % 1000000, timename, gtod); | ||
947 | printk(KERN_INFO "time.c: Detected %d.%03d MHz processor.\n", | 956 | printk(KERN_INFO "time.c: Detected %d.%03d MHz processor.\n", |
948 | cpu_khz / 1000, cpu_khz % 1000); | 957 | cpu_khz / 1000, cpu_khz % 1000); |
949 | vxtime.mode = VXTIME_TSC; | ||
950 | vxtime.quot = (1000000L << 32) / vxtime_hz; | 958 | vxtime.quot = (1000000L << 32) / vxtime_hz; |
951 | vxtime.tsc_quot = (1000L << 32) / cpu_khz; | 959 | vxtime.tsc_quot = (1000L << 32) / cpu_khz; |
952 | vxtime.last_tsc = get_cycles_sync(); | 960 | vxtime.last_tsc = get_cycles_sync(); |
953 | setup_irq(0, &irq0); | 961 | setup_irq(0, &irq0); |
954 | 962 | ||
955 | set_cyc2ns_scale(cpu_khz); | 963 | set_cyc2ns_scale(cpu_khz); |
956 | |||
957 | #ifndef CONFIG_SMP | ||
958 | time_init_gtod(); | ||
959 | #endif | ||
960 | } | 964 | } |
961 | 965 | ||
962 | /* | 966 | /* |
@@ -978,9 +982,9 @@ __cpuinit int unsynchronized_tsc(void) | |||
978 | } | 982 | } |
979 | 983 | ||
980 | /* | 984 | /* |
981 | * Decide after all CPUs are booted what mode gettimeofday should use. | 985 | * Decide what mode gettimeofday should use. |
982 | */ | 986 | */ |
983 | void __init time_init_gtod(void) | 987 | __init static char *time_init_gtod(void) |
984 | { | 988 | { |
985 | char *timetype; | 989 | char *timetype; |
986 | 990 | ||
@@ -988,7 +992,10 @@ void __init time_init_gtod(void) | |||
988 | notsc = 1; | 992 | notsc = 1; |
989 | if (vxtime.hpet_address && notsc) { | 993 | if (vxtime.hpet_address && notsc) { |
990 | timetype = hpet_use_timer ? "HPET" : "PIT/HPET"; | 994 | timetype = hpet_use_timer ? "HPET" : "PIT/HPET"; |
991 | vxtime.last = hpet_readl(HPET_T0_CMP) - hpet_tick; | 995 | if (hpet_use_timer) |
996 | vxtime.last = hpet_readl(HPET_T0_CMP) - hpet_tick; | ||
997 | else | ||
998 | vxtime.last = hpet_readl(HPET_COUNTER); | ||
992 | vxtime.mode = VXTIME_HPET; | 999 | vxtime.mode = VXTIME_HPET; |
993 | do_gettimeoffset = do_gettimeoffset_hpet; | 1000 | do_gettimeoffset = do_gettimeoffset_hpet; |
994 | #ifdef CONFIG_X86_PM_TIMER | 1001 | #ifdef CONFIG_X86_PM_TIMER |
@@ -1005,8 +1012,7 @@ void __init time_init_gtod(void) | |||
1005 | timetype = hpet_use_timer ? "HPET/TSC" : "PIT/TSC"; | 1012 | timetype = hpet_use_timer ? "HPET/TSC" : "PIT/TSC"; |
1006 | vxtime.mode = VXTIME_TSC; | 1013 | vxtime.mode = VXTIME_TSC; |
1007 | } | 1014 | } |
1008 | 1015 | return timetype; | |
1009 | printk(KERN_INFO "time.c: Using %s based timekeeping.\n", timetype); | ||
1010 | } | 1016 | } |
1011 | 1017 | ||
1012 | __setup("report_lost_ticks", time_setup); | 1018 | __setup("report_lost_ticks", time_setup); |
@@ -1321,8 +1327,7 @@ static int __init nohpet_setup(char *s) | |||
1321 | 1327 | ||
1322 | __setup("nohpet", nohpet_setup); | 1328 | __setup("nohpet", nohpet_setup); |
1323 | 1329 | ||
1324 | 1330 | int __init notsc_setup(char *s) | |
1325 | static int __init notsc_setup(char *s) | ||
1326 | { | 1331 | { |
1327 | notsc = 1; | 1332 | notsc = 1; |
1328 | return 0; | 1333 | return 0; |
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c index ee1b2da9e5e7..28d50dc540e8 100644 --- a/arch/x86_64/kernel/traps.c +++ b/arch/x86_64/kernel/traps.c | |||
@@ -90,6 +90,20 @@ static inline void conditional_sti(struct pt_regs *regs) | |||
90 | local_irq_enable(); | 90 | local_irq_enable(); |
91 | } | 91 | } |
92 | 92 | ||
93 | static inline void preempt_conditional_sti(struct pt_regs *regs) | ||
94 | { | ||
95 | preempt_disable(); | ||
96 | if (regs->eflags & X86_EFLAGS_IF) | ||
97 | local_irq_enable(); | ||
98 | } | ||
99 | |||
100 | static inline void preempt_conditional_cli(struct pt_regs *regs) | ||
101 | { | ||
102 | if (regs->eflags & X86_EFLAGS_IF) | ||
103 | local_irq_disable(); | ||
104 | preempt_enable_no_resched(); | ||
105 | } | ||
106 | |||
93 | static int kstack_depth_to_print = 10; | 107 | static int kstack_depth_to_print = 10; |
94 | 108 | ||
95 | #ifdef CONFIG_KALLSYMS | 109 | #ifdef CONFIG_KALLSYMS |
@@ -693,7 +707,7 @@ asmlinkage void __kprobes do_debug(struct pt_regs * regs, | |||
693 | SIGTRAP) == NOTIFY_STOP) | 707 | SIGTRAP) == NOTIFY_STOP) |
694 | return; | 708 | return; |
695 | 709 | ||
696 | conditional_sti(regs); | 710 | preempt_conditional_sti(regs); |
697 | 711 | ||
698 | /* Mask out spurious debug traps due to lazy DR7 setting */ | 712 | /* Mask out spurious debug traps due to lazy DR7 setting */ |
699 | if (condition & (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3)) { | 713 | if (condition & (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3)) { |
@@ -738,11 +752,13 @@ asmlinkage void __kprobes do_debug(struct pt_regs * regs, | |||
738 | 752 | ||
739 | clear_dr7: | 753 | clear_dr7: |
740 | set_debugreg(0UL, 7); | 754 | set_debugreg(0UL, 7); |
755 | preempt_conditional_cli(regs); | ||
741 | return; | 756 | return; |
742 | 757 | ||
743 | clear_TF_reenable: | 758 | clear_TF_reenable: |
744 | set_tsk_thread_flag(tsk, TIF_SINGLESTEP); | 759 | set_tsk_thread_flag(tsk, TIF_SINGLESTEP); |
745 | regs->eflags &= ~TF_MASK; | 760 | regs->eflags &= ~TF_MASK; |
761 | preempt_conditional_cli(regs); | ||
746 | } | 762 | } |
747 | 763 | ||
748 | static int kernel_math_error(struct pt_regs *regs, const char *str, int trapnr) | 764 | static int kernel_math_error(struct pt_regs *regs, const char *str, int trapnr) |
diff --git a/arch/x86_64/mm/k8topology.c b/arch/x86_64/mm/k8topology.c index a5663e0bb01c..dd60e71fdba6 100644 --- a/arch/x86_64/mm/k8topology.c +++ b/arch/x86_64/mm/k8topology.c | |||
@@ -155,7 +155,7 @@ int __init k8_scan_nodes(unsigned long start, unsigned long end) | |||
155 | if (!found) | 155 | if (!found) |
156 | return -1; | 156 | return -1; |
157 | 157 | ||
158 | memnode_shift = compute_hash_shift(nodes, numnodes); | 158 | memnode_shift = compute_hash_shift(nodes, 8); |
159 | if (memnode_shift < 0) { | 159 | if (memnode_shift < 0) { |
160 | printk(KERN_ERR "No NUMA node hash function found. Contact maintainer\n"); | 160 | printk(KERN_ERR "No NUMA node hash function found. Contact maintainer\n"); |
161 | return -1; | 161 | return -1; |
diff --git a/arch/x86_64/mm/numa.c b/arch/x86_64/mm/numa.c index 6ef9f9a76235..22e51beee8d3 100644 --- a/arch/x86_64/mm/numa.c +++ b/arch/x86_64/mm/numa.c | |||
@@ -351,7 +351,7 @@ void __init init_cpu_to_node(void) | |||
351 | continue; | 351 | continue; |
352 | if (apicid_to_node[apicid] == NUMA_NO_NODE) | 352 | if (apicid_to_node[apicid] == NUMA_NO_NODE) |
353 | continue; | 353 | continue; |
354 | cpu_to_node[i] = apicid_to_node[apicid]; | 354 | numa_set_node(i,apicid_to_node[apicid]); |
355 | } | 355 | } |
356 | } | 356 | } |
357 | 357 | ||
diff --git a/arch/x86_64/mm/srat.c b/arch/x86_64/mm/srat.c index cd25300726fc..482c25767369 100644 --- a/arch/x86_64/mm/srat.c +++ b/arch/x86_64/mm/srat.c | |||
@@ -228,7 +228,8 @@ static int nodes_cover_memory(void) | |||
228 | } | 228 | } |
229 | 229 | ||
230 | e820ram = end_pfn - e820_hole_size(0, end_pfn); | 230 | e820ram = end_pfn - e820_hole_size(0, end_pfn); |
231 | if (pxmram < e820ram) { | 231 | /* We seem to lose 3 pages somewhere. Allow a bit of slack. */ |
232 | if ((long)(e820ram - pxmram) >= 1*1024*1024) { | ||
232 | printk(KERN_ERR | 233 | printk(KERN_ERR |
233 | "SRAT: PXMs only cover %luMB of your %luMB e820 RAM. Not used.\n", | 234 | "SRAT: PXMs only cover %luMB of your %luMB e820 RAM. Not used.\n", |
234 | (pxmram << PAGE_SHIFT) >> 20, | 235 | (pxmram << PAGE_SHIFT) >> 20, |
@@ -270,7 +271,7 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end) | |||
270 | return -1; | 271 | return -1; |
271 | } | 272 | } |
272 | 273 | ||
273 | memnode_shift = compute_hash_shift(nodes, nodes_weight(nodes_parsed)); | 274 | memnode_shift = compute_hash_shift(nodes, MAX_NUMNODES); |
274 | if (memnode_shift < 0) { | 275 | if (memnode_shift < 0) { |
275 | printk(KERN_ERR | 276 | printk(KERN_ERR |
276 | "SRAT: No NUMA node hash function found. Contact maintainer\n"); | 277 | "SRAT: No NUMA node hash function found. Contact maintainer\n"); |
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 7ee4a14ec3b1..e90ef5db8913 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig | |||
@@ -26,6 +26,10 @@ config GENERIC_HARDIRQS | |||
26 | bool | 26 | bool |
27 | default y | 27 | default y |
28 | 28 | ||
29 | config RWSEM_GENERIC_SPINLOCK | ||
30 | bool | ||
31 | default y | ||
32 | |||
29 | source "init/Kconfig" | 33 | source "init/Kconfig" |
30 | 34 | ||
31 | menu "Processor type and features" | 35 | menu "Processor type and features" |
diff --git a/arch/xtensa/kernel/process.c b/arch/xtensa/kernel/process.c index f1f596644bfc..64a649eb883f 100644 --- a/arch/xtensa/kernel/process.c +++ b/arch/xtensa/kernel/process.c | |||
@@ -64,6 +64,9 @@ EXPORT_SYMBOL(init_task); | |||
64 | 64 | ||
65 | struct task_struct *current_set[NR_CPUS] = {&init_task, }; | 65 | struct task_struct *current_set[NR_CPUS] = {&init_task, }; |
66 | 66 | ||
67 | void (*pm_power_off)(void) = NULL; | ||
68 | EXPORT_SYMBOL(pm_power_off); | ||
69 | |||
67 | 70 | ||
68 | #if XCHAL_CP_NUM > 0 | 71 | #if XCHAL_CP_NUM > 0 |
69 | 72 | ||