aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/common/dmabounce.c2
-rw-r--r--arch/arm/configs/acs5k_defconfig1
-rw-r--r--arch/arm/configs/acs5k_tiny_defconfig1
-rw-r--r--arch/arm/configs/afeb9260_defconfig1
-rw-r--r--arch/arm/configs/am200epdkit_defconfig1
-rw-r--r--arch/arm/configs/am3517_evm_defconfig1
-rw-r--r--arch/arm/configs/ams_delta_defconfig1
-rw-r--r--arch/arm/configs/assabet_defconfig1
-rw-r--r--arch/arm/configs/at91cap9adk_defconfig1
-rw-r--r--arch/arm/configs/at91rm9200dk_defconfig1
-rw-r--r--arch/arm/configs/at91rm9200ek_defconfig1
-rw-r--r--arch/arm/configs/at91sam9260ek_defconfig1
-rw-r--r--arch/arm/configs/at91sam9261ek_defconfig1
-rw-r--r--arch/arm/configs/at91sam9263ek_defconfig1
-rw-r--r--arch/arm/configs/at91sam9g20ek_defconfig1
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig1
-rw-r--r--arch/arm/configs/ateb9200_defconfig1
-rw-r--r--arch/arm/configs/badge4_defconfig1
-rw-r--r--arch/arm/configs/bcmring_defconfig1
-rw-r--r--arch/arm/configs/cam60_defconfig1
-rw-r--r--arch/arm/configs/carmeva_defconfig1
-rw-r--r--arch/arm/configs/cerfcube_defconfig1
-rw-r--r--arch/arm/configs/cm_t35_defconfig1
-rw-r--r--arch/arm/configs/cm_x2xx_defconfig1
-rw-r--r--arch/arm/configs/cm_x300_defconfig1
-rw-r--r--arch/arm/configs/colibri_pxa270_defconfig1
-rw-r--r--arch/arm/configs/colibri_pxa300_defconfig1
-rw-r--r--arch/arm/configs/collie_defconfig1
-rw-r--r--arch/arm/configs/corgi_defconfig1
-rw-r--r--arch/arm/configs/cpu9260_defconfig1
-rw-r--r--arch/arm/configs/cpu9g20_defconfig1
-rw-r--r--arch/arm/configs/cpuat91_defconfig1
-rw-r--r--arch/arm/configs/csb337_defconfig1
-rw-r--r--arch/arm/configs/csb637_defconfig1
-rw-r--r--arch/arm/configs/da8xx_omapl_defconfig1
-rw-r--r--arch/arm/configs/davinci_all_defconfig1
-rw-r--r--arch/arm/configs/dove_defconfig1
-rw-r--r--arch/arm/configs/ebsa110_defconfig1
-rw-r--r--arch/arm/configs/ecbat91_defconfig1
-rw-r--r--arch/arm/configs/edb7211_defconfig1
-rw-r--r--arch/arm/configs/em_x270_defconfig1
-rw-r--r--arch/arm/configs/ep93xx_defconfig1
-rw-r--r--arch/arm/configs/eseries_pxa_defconfig1
-rw-r--r--arch/arm/configs/ezx_defconfig1
-rw-r--r--arch/arm/configs/footbridge_defconfig1
-rw-r--r--arch/arm/configs/fortunet_defconfig1
-rw-r--r--arch/arm/configs/h3600_defconfig1
-rw-r--r--arch/arm/configs/h5000_defconfig1
-rw-r--r--arch/arm/configs/h7201_defconfig1
-rw-r--r--arch/arm/configs/h7202_defconfig1
-rw-r--r--arch/arm/configs/hackkit_defconfig1
-rw-r--r--arch/arm/configs/htcherald_defconfig1
-rw-r--r--arch/arm/configs/igep0020_defconfig1
-rw-r--r--arch/arm/configs/integrator_defconfig1
-rw-r--r--arch/arm/configs/iop13xx_defconfig1
-rw-r--r--arch/arm/configs/iop32x_defconfig1
-rw-r--r--arch/arm/configs/iop33x_defconfig1
-rw-r--r--arch/arm/configs/ixp2000_defconfig1
-rw-r--r--arch/arm/configs/ixp23xx_defconfig1
-rw-r--r--arch/arm/configs/ixp4xx_defconfig1
-rw-r--r--arch/arm/configs/jornada720_defconfig1
-rw-r--r--arch/arm/configs/kafa_defconfig1
-rw-r--r--arch/arm/configs/kb9202_defconfig1
-rw-r--r--arch/arm/configs/kirkwood_defconfig1
-rw-r--r--arch/arm/configs/ks8695_defconfig1
-rw-r--r--arch/arm/configs/lart_defconfig1
-rw-r--r--arch/arm/configs/loki_defconfig1
-rw-r--r--arch/arm/configs/lpd270_defconfig1
-rw-r--r--arch/arm/configs/lpd7a400_defconfig1
-rw-r--r--arch/arm/configs/lpd7a404_defconfig1
-rw-r--r--arch/arm/configs/lubbock_defconfig1
-rw-r--r--arch/arm/configs/lusl7200_defconfig1
-rw-r--r--arch/arm/configs/magician_defconfig1
-rw-r--r--arch/arm/configs/mainstone_defconfig1
-rw-r--r--arch/arm/configs/mini2440_defconfig1
-rw-r--r--arch/arm/configs/msm_defconfig1
-rw-r--r--arch/arm/configs/mv78xx0_defconfig1
-rw-r--r--arch/arm/configs/mx1_defconfig1
-rw-r--r--arch/arm/configs/mx1ads_defconfig1
-rw-r--r--arch/arm/configs/mx21_defconfig1
-rw-r--r--arch/arm/configs/mx27_defconfig1
-rw-r--r--arch/arm/configs/mx31pdk_defconfig1
-rw-r--r--arch/arm/configs/mx3_defconfig1
-rw-r--r--arch/arm/configs/n770_defconfig1
-rw-r--r--arch/arm/configs/n8x0_defconfig1
-rw-r--r--arch/arm/configs/neocore926_defconfig1
-rw-r--r--arch/arm/configs/neponset_defconfig1
-rw-r--r--arch/arm/configs/netwinder_defconfig1
-rw-r--r--arch/arm/configs/netx_defconfig1
-rw-r--r--arch/arm/configs/nhk8815_defconfig1
-rw-r--r--arch/arm/configs/nuc910_defconfig1
-rw-r--r--arch/arm/configs/nuc950_defconfig1
-rw-r--r--arch/arm/configs/nuc960_defconfig1
-rw-r--r--arch/arm/configs/omap3_beagle_defconfig1
-rw-r--r--arch/arm/configs/omap3_defconfig1
-rw-r--r--arch/arm/configs/omap3_evm_defconfig1
-rw-r--r--arch/arm/configs/omap3_pandora_defconfig1
-rw-r--r--arch/arm/configs/omap3_touchbook_defconfig1
-rw-r--r--arch/arm/configs/omap_2430sdp_defconfig1
-rw-r--r--arch/arm/configs/omap_3430sdp_defconfig1
-rw-r--r--arch/arm/configs/omap_3630sdp_defconfig1
-rw-r--r--arch/arm/configs/omap_4430sdp_defconfig1
-rw-r--r--arch/arm/configs/omap_apollon_2420_defconfig1
-rw-r--r--arch/arm/configs/omap_generic_1510_defconfig1
-rw-r--r--arch/arm/configs/omap_generic_1610_defconfig1
-rw-r--r--arch/arm/configs/omap_generic_1710_defconfig1
-rw-r--r--arch/arm/configs/omap_generic_2420_defconfig1
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig1
-rw-r--r--arch/arm/configs/omap_h4_2420_defconfig1
-rw-r--r--arch/arm/configs/omap_innovator_1510_defconfig1
-rw-r--r--arch/arm/configs/omap_innovator_1610_defconfig1
-rw-r--r--arch/arm/configs/omap_ldp_defconfig1
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig1
-rw-r--r--arch/arm/configs/omap_perseus2_730_defconfig1
-rw-r--r--arch/arm/configs/omap_zoom2_defconfig1
-rw-r--r--arch/arm/configs/omap_zoom3_defconfig1
-rw-r--r--arch/arm/configs/onearm_defconfig1
-rw-r--r--arch/arm/configs/orion5x_defconfig1
-rw-r--r--arch/arm/configs/overo_defconfig1
-rw-r--r--arch/arm/configs/palmte_defconfig1
-rw-r--r--arch/arm/configs/palmtt_defconfig1
-rw-r--r--arch/arm/configs/palmz71_defconfig1
-rw-r--r--arch/arm/configs/palmz72_defconfig1
-rw-r--r--arch/arm/configs/pcm027_defconfig1
-rw-r--r--arch/arm/configs/picotux200_defconfig1
-rw-r--r--arch/arm/configs/pleb_defconfig1
-rw-r--r--arch/arm/configs/pnx4008_defconfig1
-rw-r--r--arch/arm/configs/pxa168_defconfig1
-rw-r--r--arch/arm/configs/pxa255-idp_defconfig1
-rw-r--r--arch/arm/configs/pxa3xx_defconfig1
-rw-r--r--arch/arm/configs/pxa910_defconfig1
-rw-r--r--arch/arm/configs/qil-a9260_defconfig1
-rw-r--r--arch/arm/configs/realview-smp_defconfig1
-rw-r--r--arch/arm/configs/realview_defconfig1
-rw-r--r--arch/arm/configs/rpc_defconfig1
-rw-r--r--arch/arm/configs/rx51_defconfig1
-rw-r--r--arch/arm/configs/s3c2410_defconfig1
-rw-r--r--arch/arm/configs/s3c6400_defconfig1
-rw-r--r--arch/arm/configs/s5pc100_defconfig1
-rw-r--r--arch/arm/configs/sam9_l9260_defconfig1
-rw-r--r--arch/arm/configs/shannon_defconfig1
-rw-r--r--arch/arm/configs/shark_defconfig1
-rw-r--r--arch/arm/configs/simpad_defconfig1
-rw-r--r--arch/arm/configs/spitz_defconfig1
-rw-r--r--arch/arm/configs/stmp378x_defconfig1
-rw-r--r--arch/arm/configs/stmp37xx_defconfig1
-rw-r--r--arch/arm/configs/sx1_defconfig1
-rw-r--r--arch/arm/configs/tct_hammer_defconfig1
-rw-r--r--arch/arm/configs/trizeps4_defconfig1
-rw-r--r--arch/arm/configs/u300_defconfig1
-rw-r--r--arch/arm/configs/u8500_defconfig1
-rw-r--r--arch/arm/configs/usb-a9260_defconfig1
-rw-r--r--arch/arm/configs/usb-a9263_defconfig1
-rw-r--r--arch/arm/configs/versatile_defconfig1
-rw-r--r--arch/arm/configs/viper_defconfig1
-rw-r--r--arch/arm/configs/xcep_defconfig1
-rw-r--r--arch/arm/configs/yl9200_defconfig1
-rw-r--r--arch/arm/configs/zeus_defconfig1
-rw-r--r--arch/arm/include/asm/proc-fns.h374
-rw-r--r--arch/arm/include/asm/thread_notify.h2
-rw-r--r--arch/arm/kernel/crunch.c2
-rw-r--r--arch/arm/kernel/dma-isa.c4
-rw-r--r--arch/arm/kernel/process.c12
-rw-r--r--arch/arm/kernel/xscale-cp0.c2
-rw-r--r--arch/arm/mach-footbridge/Makefile4
-rw-r--r--arch/arm/mach-footbridge/dc21285-timer.c2
-rw-r--r--arch/arm/mach-footbridge/isa-rtc.c57
-rw-r--r--arch/arm/mach-footbridge/isa-timer.c2
-rw-r--r--arch/arm/mach-footbridge/isa.c18
-rw-r--r--arch/arm/mach-footbridge/time.c164
-rw-r--r--arch/arm/mach-w90x900/cpu.c1
-rw-r--r--arch/arm/mach-w90x900/dev.c2
-rw-r--r--arch/arm/mach-w90x900/include/mach/uncompress.h10
-rw-r--r--arch/arm/mm/Kconfig4
-rw-r--r--arch/arm/mm/copypage-v6.c2
-rw-r--r--arch/arm/mm/fault-armv.c5
-rw-r--r--arch/arm/mm/mmu.c3
-rw-r--r--arch/arm/nwfpe/Makefile4
-rw-r--r--arch/arm/oprofile/op_model_v7.c8
-rw-r--r--arch/arm/vfp/vfpmodule.c19
-rw-r--r--arch/sh/boards/mach-ecovec24/setup.c4
-rw-r--r--arch/sh/include/asm/dma.h6
-rw-r--r--arch/sh/include/cpu-sh4/cpu/dma-sh4a.h8
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7724.c15
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7785.c14
-rw-r--r--arch/sh/kernel/idle.c2
-rw-r--r--arch/sh/mm/cache.c8
-rw-r--r--drivers/char/nwflash.c1
-rw-r--r--drivers/edac/amd64_edac.c45
-rw-r--r--drivers/edac/edac_pci_sysfs.c2
-rw-r--r--drivers/i2c/busses/i2c-bfin-twi.c6
-rw-r--r--drivers/i2c/busses/i2c-omap.c13
-rw-r--r--drivers/serial/sh-sci.c20
-rw-r--r--drivers/serial/sh-sci.h118
-rw-r--r--drivers/video/cyber2000fb.c12
-rw-r--r--drivers/watchdog/adx_wdt.c4
-rw-r--r--drivers/watchdog/at32ap700x_wdt.c2
-rw-r--r--drivers/watchdog/davinci_wdt.c2
-rw-r--r--drivers/watchdog/iTCO_wdt.c4
-rw-r--r--drivers/watchdog/mpcore_wdt.c2
-rw-r--r--drivers/watchdog/mv64x60_wdt.c2
-rw-r--r--drivers/watchdog/omap_wdt.c9
-rw-r--r--drivers/watchdog/pnx4008_wdt.c2
-rw-r--r--drivers/watchdog/s3c2410_wdt.c2
-rw-r--r--drivers/watchdog/txx9wdt.c6
-rw-r--r--fs/ocfs2/Kconfig10
-rw-r--r--fs/ocfs2/Makefile7
-rw-r--r--fs/ocfs2/acl.c4
-rw-r--r--fs/ocfs2/acl.h22
-rw-r--r--fs/ocfs2/cluster/heartbeat.c6
-rw-r--r--fs/ocfs2/cluster/nodemanager.c51
-rw-r--r--fs/ocfs2/cluster/nodemanager.h7
-rw-r--r--fs/ocfs2/cluster/quorum.c16
-rw-r--r--fs/ocfs2/dlm/dlmrecovery.c18
-rw-r--r--fs/ocfs2/extent_map.c25
-rw-r--r--fs/ocfs2/namei.c1
-rw-r--r--fs/ocfs2/ocfs2.h8
-rw-r--r--fs/ocfs2/ocfs2_fs.h2
-rw-r--r--fs/ocfs2/stack_user.c2
-rw-r--r--fs/ocfs2/super.c95
-rw-r--r--fs/ocfs2/symlink.c2
-rw-r--r--fs/ocfs2/xattr.c6
-rw-r--r--fs/ocfs2/xattr.h2
-rw-r--r--include/linux/fiemap.h2
224 files changed, 668 insertions, 787 deletions
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index bc90364a96c7..cc32c1e54a59 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -312,7 +312,7 @@ static inline void unmap_single(struct device *dev, dma_addr_t dma_addr,
312 * we need to ensure that the data will be coherent 312 * we need to ensure that the data will be coherent
313 * with user mappings. 313 * with user mappings.
314 */ 314 */
315 __cpuc_flush_kernel_dcache_area(ptr, size); 315 __cpuc_flush_dcache_area(ptr, size);
316 } 316 }
317 free_safe_buffer(dev->archdata.dmabounce, buf); 317 free_safe_buffer(dev->archdata.dmabounce, buf);
318 } 318 }
diff --git a/arch/arm/configs/acs5k_defconfig b/arch/arm/configs/acs5k_defconfig
index 1cab4e79d368..6e32a85641a7 100644
--- a/arch/arm/configs/acs5k_defconfig
+++ b/arch/arm/configs/acs5k_defconfig
@@ -187,7 +187,6 @@ CONFIG_MACH_ACS5K=y
187# 187#
188# Processor Type 188# Processor Type
189# 189#
190CONFIG_CPU_32=y
191CONFIG_CPU_ARM922T=y 190CONFIG_CPU_ARM922T=y
192CONFIG_CPU_32v4T=y 191CONFIG_CPU_32v4T=y
193CONFIG_CPU_ABRT_EV4T=y 192CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/acs5k_tiny_defconfig b/arch/arm/configs/acs5k_tiny_defconfig
index 8e3d084afd78..b34b1eabac3b 100644
--- a/arch/arm/configs/acs5k_tiny_defconfig
+++ b/arch/arm/configs/acs5k_tiny_defconfig
@@ -186,7 +186,6 @@ CONFIG_MACH_ACS5K=y
186# 186#
187# Processor Type 187# Processor Type
188# 188#
189CONFIG_CPU_32=y
190CONFIG_CPU_ARM922T=y 189CONFIG_CPU_ARM922T=y
191CONFIG_CPU_32v4T=y 190CONFIG_CPU_32v4T=y
192CONFIG_CPU_ABRT_EV4T=y 191CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig
index f7a272cb3da0..64fe7f10c12a 100644
--- a/arch/arm/configs/afeb9260_defconfig
+++ b/arch/arm/configs/afeb9260_defconfig
@@ -227,7 +227,6 @@ CONFIG_AT91_EARLY_DBGU=y
227# 227#
228# Processor Type 228# Processor Type
229# 229#
230CONFIG_CPU_32=y
231CONFIG_CPU_ARM926T=y 230CONFIG_CPU_ARM926T=y
232CONFIG_CPU_32v5=y 231CONFIG_CPU_32v5=y
233CONFIG_CPU_ABRT_EV5TJ=y 232CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig
index 5e68420f4680..30927cac6a9a 100644
--- a/arch/arm/configs/am200epdkit_defconfig
+++ b/arch/arm/configs/am200epdkit_defconfig
@@ -189,7 +189,6 @@ CONFIG_PXA25x=y
189# 189#
190# Processor Type 190# Processor Type
191# 191#
192CONFIG_CPU_32=y
193CONFIG_CPU_XSCALE=y 192CONFIG_CPU_XSCALE=y
194CONFIG_CPU_32v5=y 193CONFIG_CPU_32v5=y
195CONFIG_CPU_ABRT_EV5T=y 194CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/am3517_evm_defconfig b/arch/arm/configs/am3517_evm_defconfig
index ad54e92dd436..abe9966781ce 100644
--- a/arch/arm/configs/am3517_evm_defconfig
+++ b/arch/arm/configs/am3517_evm_defconfig
@@ -233,7 +233,6 @@ CONFIG_MACH_OMAP3517EVM=y
233# 233#
234# Processor Type 234# Processor Type
235# 235#
236CONFIG_CPU_32=y
237CONFIG_CPU_32v6K=y 236CONFIG_CPU_32v6K=y
238CONFIG_CPU_V7=y 237CONFIG_CPU_V7=y
239CONFIG_CPU_32v7=y 238CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig
index e8f7380b67d6..3b3a3775bbf4 100644
--- a/arch/arm/configs/ams_delta_defconfig
+++ b/arch/arm/configs/ams_delta_defconfig
@@ -210,7 +210,6 @@ CONFIG_OMAP_ARM_150MHZ=y
210# 210#
211# Processor Type 211# Processor Type
212# 212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM925T=y 213CONFIG_CPU_ARM925T=y
215CONFIG_CPU_32v4T=y 214CONFIG_CPU_32v4T=y
216CONFIG_CPU_ABRT_EV4T=y 215CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/assabet_defconfig b/arch/arm/configs/assabet_defconfig
index c66dd399e426..daa75bc98d46 100644
--- a/arch/arm/configs/assabet_defconfig
+++ b/arch/arm/configs/assabet_defconfig
@@ -101,7 +101,6 @@ CONFIG_SA1100_ASSABET=y
101# 101#
102# Processor Type 102# Processor Type
103# 103#
104CONFIG_CPU_32=y
105CONFIG_CPU_SA1100=y 104CONFIG_CPU_SA1100=y
106CONFIG_CPU_32v4=y 105CONFIG_CPU_32v4=y
107CONFIG_CPU_ABRT_EV4=y 106CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/at91cap9adk_defconfig b/arch/arm/configs/at91cap9adk_defconfig
index bc6bd9f6174d..b1ab50bee461 100644
--- a/arch/arm/configs/at91cap9adk_defconfig
+++ b/arch/arm/configs/at91cap9adk_defconfig
@@ -181,7 +181,6 @@ CONFIG_AT91_TIMER_HZ=100
181# 181#
182# Processor Type 182# Processor Type
183# 183#
184CONFIG_CPU_32=y
185CONFIG_CPU_ARM926T=y 184CONFIG_CPU_ARM926T=y
186CONFIG_CPU_32v5=y 185CONFIG_CPU_32v5=y
187CONFIG_CPU_ABRT_EV5TJ=y 186CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig
index c97e1022ada1..1fffec86a113 100644
--- a/arch/arm/configs/at91rm9200dk_defconfig
+++ b/arch/arm/configs/at91rm9200dk_defconfig
@@ -130,7 +130,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
130# 130#
131# Processor Type 131# Processor Type
132# 132#
133CONFIG_CPU_32=y
134CONFIG_CPU_ARM920T=y 133CONFIG_CPU_ARM920T=y
135CONFIG_CPU_32v4=y 134CONFIG_CPU_32v4=y
136CONFIG_CPU_ABRT_EV4T=y 135CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig
index 9f7a99ace514..c846a795d1d5 100644
--- a/arch/arm/configs/at91rm9200ek_defconfig
+++ b/arch/arm/configs/at91rm9200ek_defconfig
@@ -129,7 +129,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
129# 129#
130# Processor Type 130# Processor Type
131# 131#
132CONFIG_CPU_32=y
133CONFIG_CPU_ARM920T=y 132CONFIG_CPU_ARM920T=y
134CONFIG_CPU_32v4=y 133CONFIG_CPU_32v4=y
135CONFIG_CPU_ABRT_EV4T=y 134CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/at91sam9260ek_defconfig b/arch/arm/configs/at91sam9260ek_defconfig
index 98e2f3de4bc5..472ea11eedf1 100644
--- a/arch/arm/configs/at91sam9260ek_defconfig
+++ b/arch/arm/configs/at91sam9260ek_defconfig
@@ -188,7 +188,6 @@ CONFIG_AT91_TIMER_HZ=100
188# 188#
189# Processor Type 189# Processor Type
190# 190#
191CONFIG_CPU_32=y
192CONFIG_CPU_ARM926T=y 191CONFIG_CPU_ARM926T=y
193CONFIG_CPU_32v5=y 192CONFIG_CPU_32v5=y
194CONFIG_CPU_ABRT_EV5TJ=y 193CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/at91sam9261ek_defconfig b/arch/arm/configs/at91sam9261ek_defconfig
index 149456142392..4ecde429cf15 100644
--- a/arch/arm/configs/at91sam9261ek_defconfig
+++ b/arch/arm/configs/at91sam9261ek_defconfig
@@ -181,7 +181,6 @@ CONFIG_AT91_TIMER_HZ=100
181# 181#
182# Processor Type 182# Processor Type
183# 183#
184CONFIG_CPU_32=y
185CONFIG_CPU_ARM926T=y 184CONFIG_CPU_ARM926T=y
186CONFIG_CPU_32v5=y 185CONFIG_CPU_32v5=y
187CONFIG_CPU_ABRT_EV5TJ=y 186CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/at91sam9263ek_defconfig b/arch/arm/configs/at91sam9263ek_defconfig
index 21599f3c6275..9b792b60c7ff 100644
--- a/arch/arm/configs/at91sam9263ek_defconfig
+++ b/arch/arm/configs/at91sam9263ek_defconfig
@@ -181,7 +181,6 @@ CONFIG_AT91_TIMER_HZ=100
181# 181#
182# Processor Type 182# Processor Type
183# 183#
184CONFIG_CPU_32=y
185CONFIG_CPU_ARM926T=y 184CONFIG_CPU_ARM926T=y
186CONFIG_CPU_32v5=y 185CONFIG_CPU_32v5=y
187CONFIG_CPU_ABRT_EV5TJ=y 186CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/at91sam9g20ek_defconfig b/arch/arm/configs/at91sam9g20ek_defconfig
index 7e018a04c31b..64ce106d53eb 100644
--- a/arch/arm/configs/at91sam9g20ek_defconfig
+++ b/arch/arm/configs/at91sam9g20ek_defconfig
@@ -187,7 +187,6 @@ CONFIG_AT91_EARLY_DBGU=y
187# 187#
188# Processor Type 188# Processor Type
189# 189#
190CONFIG_CPU_32=y
191CONFIG_CPU_ARM926T=y 190CONFIG_CPU_ARM926T=y
192CONFIG_CPU_32v5=y 191CONFIG_CPU_32v5=y
193CONFIG_CPU_ABRT_EV5TJ=y 192CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
index e2df81a3e804..90e48bfda16f 100644
--- a/arch/arm/configs/at91sam9rlek_defconfig
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -179,7 +179,6 @@ CONFIG_AT91_TIMER_HZ=100
179# 179#
180# Processor Type 180# Processor Type
181# 181#
182CONFIG_CPU_32=y
183CONFIG_CPU_ARM926T=y 182CONFIG_CPU_ARM926T=y
184CONFIG_CPU_32v5=y 183CONFIG_CPU_32v5=y
185CONFIG_CPU_ABRT_EV5TJ=y 184CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/ateb9200_defconfig b/arch/arm/configs/ateb9200_defconfig
index a19e824cf7f8..6315534976cf 100644
--- a/arch/arm/configs/ateb9200_defconfig
+++ b/arch/arm/configs/ateb9200_defconfig
@@ -132,7 +132,6 @@ CONFIG_MACH_ATEB9200=y
132# 132#
133# Processor Type 133# Processor Type
134# 134#
135CONFIG_CPU_32=y
136CONFIG_CPU_ARM920T=y 135CONFIG_CPU_ARM920T=y
137CONFIG_CPU_32v4=y 136CONFIG_CPU_32v4=y
138CONFIG_CPU_ABRT_EV4T=y 137CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/badge4_defconfig b/arch/arm/configs/badge4_defconfig
index f264846218a2..b175b6b8feb4 100644
--- a/arch/arm/configs/badge4_defconfig
+++ b/arch/arm/configs/badge4_defconfig
@@ -103,7 +103,6 @@ CONFIG_SA1100_BADGE4=y
103# 103#
104# Processor Type 104# Processor Type
105# 105#
106CONFIG_CPU_32=y
107CONFIG_CPU_SA1100=y 106CONFIG_CPU_SA1100=y
108CONFIG_CPU_32v4=y 107CONFIG_CPU_32v4=y
109CONFIG_CPU_ABRT_EV4=y 108CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/bcmring_defconfig b/arch/arm/configs/bcmring_defconfig
index bcc0bac551a5..1e12167c89b7 100644
--- a/arch/arm/configs/bcmring_defconfig
+++ b/arch/arm/configs/bcmring_defconfig
@@ -181,7 +181,6 @@ CONFIG_BCM_ZRELADDR=0x8000
181# 181#
182# Processor Type 182# Processor Type
183# 183#
184CONFIG_CPU_32=y
185CONFIG_CPU_V6=y 184CONFIG_CPU_V6=y
186CONFIG_CPU_32v6K=y 185CONFIG_CPU_32v6K=y
187CONFIG_CPU_32v6=y 186CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/cam60_defconfig b/arch/arm/configs/cam60_defconfig
index 8448108347cf..eef33de3ca12 100644
--- a/arch/arm/configs/cam60_defconfig
+++ b/arch/arm/configs/cam60_defconfig
@@ -196,7 +196,6 @@ CONFIG_AT91_EARLY_DBGU=y
196# 196#
197# Processor Type 197# Processor Type
198# 198#
199CONFIG_CPU_32=y
200CONFIG_CPU_ARM926T=y 199CONFIG_CPU_ARM926T=y
201CONFIG_CPU_32v5=y 200CONFIG_CPU_32v5=y
202CONFIG_CPU_ABRT_EV5TJ=y 201CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/carmeva_defconfig b/arch/arm/configs/carmeva_defconfig
index d392833b31fb..b6a706306781 100644
--- a/arch/arm/configs/carmeva_defconfig
+++ b/arch/arm/configs/carmeva_defconfig
@@ -97,7 +97,6 @@ CONFIG_MACH_CARMEVA=y
97# 97#
98# Processor Type 98# Processor Type
99# 99#
100CONFIG_CPU_32=y
101CONFIG_CPU_ARM920T=y 100CONFIG_CPU_ARM920T=y
102CONFIG_CPU_32v4=y 101CONFIG_CPU_32v4=y
103CONFIG_CPU_ABRT_EV4T=y 102CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/cerfcube_defconfig b/arch/arm/configs/cerfcube_defconfig
index 2b4c0668b1b4..d662cab9cc21 100644
--- a/arch/arm/configs/cerfcube_defconfig
+++ b/arch/arm/configs/cerfcube_defconfig
@@ -105,7 +105,6 @@ CONFIG_SA1100_CERF_FLASH_16MB=y
105# 105#
106# Processor Type 106# Processor Type
107# 107#
108CONFIG_CPU_32=y
109CONFIG_CPU_SA1100=y 108CONFIG_CPU_SA1100=y
110CONFIG_CPU_32v4=y 109CONFIG_CPU_32v4=y
111CONFIG_CPU_ABRT_EV4=y 110CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/cm_t35_defconfig b/arch/arm/configs/cm_t35_defconfig
index e42c5c873eb2..893cd267e075 100644
--- a/arch/arm/configs/cm_t35_defconfig
+++ b/arch/arm/configs/cm_t35_defconfig
@@ -236,7 +236,6 @@ CONFIG_MACH_CM_T35=y
236# 236#
237# Processor Type 237# Processor Type
238# 238#
239CONFIG_CPU_32=y
240CONFIG_CPU_32v6K=y 239CONFIG_CPU_32v6K=y
241CONFIG_CPU_V7=y 240CONFIG_CPU_V7=y
242CONFIG_CPU_32v7=y 241CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/cm_x2xx_defconfig b/arch/arm/configs/cm_x2xx_defconfig
index 797b790cba78..47d22d09e70e 100644
--- a/arch/arm/configs/cm_x2xx_defconfig
+++ b/arch/arm/configs/cm_x2xx_defconfig
@@ -205,7 +205,6 @@ CONFIG_PXA_SSP=y
205# 205#
206# Processor Type 206# Processor Type
207# 207#
208CONFIG_CPU_32=y
209CONFIG_CPU_XSCALE=y 208CONFIG_CPU_XSCALE=y
210CONFIG_CPU_32v5=y 209CONFIG_CPU_32v5=y
211CONFIG_CPU_ABRT_EV5T=y 210CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index a0170867130e..a334069c7904 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -247,7 +247,6 @@ CONFIG_PLAT_PXA=y
247# 247#
248# Processor Type 248# Processor Type
249# 249#
250CONFIG_CPU_32=y
251CONFIG_CPU_XSC3=y 250CONFIG_CPU_XSC3=y
252CONFIG_CPU_32v5=y 251CONFIG_CPU_32v5=y
253CONFIG_CPU_ABRT_EV5T=y 252CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/colibri_pxa270_defconfig b/arch/arm/configs/colibri_pxa270_defconfig
index 4cf3bde1c522..c962870b3f85 100644
--- a/arch/arm/configs/colibri_pxa270_defconfig
+++ b/arch/arm/configs/colibri_pxa270_defconfig
@@ -204,7 +204,6 @@ CONFIG_PXA27x=y
204# 204#
205# Processor Type 205# Processor Type
206# 206#
207CONFIG_CPU_32=y
208CONFIG_CPU_XSCALE=y 207CONFIG_CPU_XSCALE=y
209CONFIG_CPU_32v5=y 208CONFIG_CPU_32v5=y
210CONFIG_CPU_ABRT_EV5T=y 209CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/colibri_pxa300_defconfig b/arch/arm/configs/colibri_pxa300_defconfig
index 4774a36fa740..11fdb5afdec7 100644
--- a/arch/arm/configs/colibri_pxa300_defconfig
+++ b/arch/arm/configs/colibri_pxa300_defconfig
@@ -212,7 +212,6 @@ CONFIG_PXA3xx=y
212# 212#
213# Processor Type 213# Processor Type
214# 214#
215CONFIG_CPU_32=y
216CONFIG_CPU_XSC3=y 215CONFIG_CPU_XSC3=y
217CONFIG_CPU_32v5=y 216CONFIG_CPU_32v5=y
218CONFIG_CPU_ABRT_EV5T=y 217CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig
index 1aa62249031b..26e458d82634 100644
--- a/arch/arm/configs/collie_defconfig
+++ b/arch/arm/configs/collie_defconfig
@@ -125,7 +125,6 @@ CONFIG_SA1100_COLLIE=y
125# 125#
126# Processor Type 126# Processor Type
127# 127#
128CONFIG_CPU_32=y
129CONFIG_CPU_SA1100=y 128CONFIG_CPU_SA1100=y
130CONFIG_CPU_32v4=y 129CONFIG_CPU_32v4=y
131CONFIG_CPU_ABRT_EV4=y 130CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig
index d6cd165e9310..5e4069f42754 100644
--- a/arch/arm/configs/corgi_defconfig
+++ b/arch/arm/configs/corgi_defconfig
@@ -214,7 +214,6 @@ CONFIG_PXA_HAVE_BOARD_IRQS=y
214# 214#
215# Processor Type 215# Processor Type
216# 216#
217CONFIG_CPU_32=y
218CONFIG_CPU_XSCALE=y 217CONFIG_CPU_XSCALE=y
219CONFIG_CPU_32v5=y 218CONFIG_CPU_32v5=y
220CONFIG_CPU_ABRT_EV5T=y 219CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/cpu9260_defconfig b/arch/arm/configs/cpu9260_defconfig
index 601e7f3d5e97..c9137aaf23a9 100644
--- a/arch/arm/configs/cpu9260_defconfig
+++ b/arch/arm/configs/cpu9260_defconfig
@@ -229,7 +229,6 @@ CONFIG_AT91_EARLY_DBGU=y
229# 229#
230# Processor Type 230# Processor Type
231# 231#
232CONFIG_CPU_32=y
233CONFIG_CPU_ARM926T=y 232CONFIG_CPU_ARM926T=y
234CONFIG_CPU_32v5=y 233CONFIG_CPU_32v5=y
235CONFIG_CPU_ABRT_EV5TJ=y 234CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/cpu9g20_defconfig b/arch/arm/configs/cpu9g20_defconfig
index b5b9cbbc6977..d2344799171a 100644
--- a/arch/arm/configs/cpu9g20_defconfig
+++ b/arch/arm/configs/cpu9g20_defconfig
@@ -219,7 +219,6 @@ CONFIG_AT91_EARLY_DBGU=y
219# 219#
220# Processor Type 220# Processor Type
221# 221#
222CONFIG_CPU_32=y
223CONFIG_CPU_ARM926T=y 222CONFIG_CPU_ARM926T=y
224CONFIG_CPU_32v5=y 223CONFIG_CPU_32v5=y
225CONFIG_CPU_ABRT_EV5TJ=y 224CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/cpuat91_defconfig b/arch/arm/configs/cpuat91_defconfig
index 4901827253fb..1f8dda6e37c3 100644
--- a/arch/arm/configs/cpuat91_defconfig
+++ b/arch/arm/configs/cpuat91_defconfig
@@ -230,7 +230,6 @@ CONFIG_AT91_EARLY_DBGU=y
230# 230#
231# Processor Type 231# Processor Type
232# 232#
233CONFIG_CPU_32=y
234CONFIG_CPU_ARM920T=y 233CONFIG_CPU_ARM920T=y
235CONFIG_CPU_32v4T=y 234CONFIG_CPU_32v4T=y
236CONFIG_CPU_ABRT_EV4T=y 235CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/csb337_defconfig b/arch/arm/configs/csb337_defconfig
index 29f68c2effe6..f095040dab07 100644
--- a/arch/arm/configs/csb337_defconfig
+++ b/arch/arm/configs/csb337_defconfig
@@ -193,7 +193,6 @@ CONFIG_AT91_TIMER_HZ=128
193# 193#
194# Processor Type 194# Processor Type
195# 195#
196CONFIG_CPU_32=y
197CONFIG_CPU_ARM920T=y 196CONFIG_CPU_ARM920T=y
198CONFIG_CPU_32v4T=y 197CONFIG_CPU_32v4T=y
199CONFIG_CPU_ABRT_EV4T=y 198CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/csb637_defconfig b/arch/arm/configs/csb637_defconfig
index f7b60ceed6c7..507154016fc8 100644
--- a/arch/arm/configs/csb637_defconfig
+++ b/arch/arm/configs/csb637_defconfig
@@ -215,7 +215,6 @@ CONFIG_AT91_EARLY_DBGU=y
215# 215#
216# Processor Type 216# Processor Type
217# 217#
218CONFIG_CPU_32=y
219CONFIG_CPU_ARM920T=y 218CONFIG_CPU_ARM920T=y
220CONFIG_CPU_32v4T=y 219CONFIG_CPU_32v4T=y
221CONFIG_CPU_ABRT_EV4T=y 220CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig
index 50bd25a10f0d..e14c99c2b574 100644
--- a/arch/arm/configs/da8xx_omapl_defconfig
+++ b/arch/arm/configs/da8xx_omapl_defconfig
@@ -225,7 +225,6 @@ CONFIG_DAVINCI_RESET_CLOCKS=y
225# 225#
226# Processor Type 226# Processor Type
227# 227#
228CONFIG_CPU_32=y
229CONFIG_CPU_ARM926T=y 228CONFIG_CPU_ARM926T=y
230CONFIG_CPU_32v5=y 229CONFIG_CPU_32v5=y
231CONFIG_CPU_ABRT_EV5TJ=y 230CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
index bd656e8e6e4c..625035fd0a6c 100644
--- a/arch/arm/configs/davinci_all_defconfig
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -223,7 +223,6 @@ CONFIG_DAVINCI_RESET_CLOCKS=y
223# 223#
224# Processor Type 224# Processor Type
225# 225#
226CONFIG_CPU_32=y
227CONFIG_CPU_ARM926T=y 226CONFIG_CPU_ARM926T=y
228CONFIG_CPU_32v5=y 227CONFIG_CPU_32v5=y
229CONFIG_CPU_ABRT_EV5TJ=y 228CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig
index b3a491675d59..b7b2ab088dd9 100644
--- a/arch/arm/configs/dove_defconfig
+++ b/arch/arm/configs/dove_defconfig
@@ -186,7 +186,6 @@ CONFIG_PLAT_ORION=y
186# 186#
187# Processor Type 187# Processor Type
188# 188#
189CONFIG_CPU_32=y
190CONFIG_CPU_V6=y 189CONFIG_CPU_V6=y
191CONFIG_CPU_32v6K=y 190CONFIG_CPU_32v6K=y
192CONFIG_CPU_32v6=y 191CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/ebsa110_defconfig b/arch/arm/configs/ebsa110_defconfig
index afcfff6140f2..d5e827969118 100644
--- a/arch/arm/configs/ebsa110_defconfig
+++ b/arch/arm/configs/ebsa110_defconfig
@@ -83,7 +83,6 @@ CONFIG_ARCH_EBSA110=y
83# 83#
84# Processor Type 84# Processor Type
85# 85#
86CONFIG_CPU_32=y
87CONFIG_CPU_SA110=y 86CONFIG_CPU_SA110=y
88CONFIG_CPU_32v4=y 87CONFIG_CPU_32v4=y
89CONFIG_CPU_ABRT_EV4=y 88CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/ecbat91_defconfig b/arch/arm/configs/ecbat91_defconfig
index ca520733bdb0..25dd53b7cefd 100644
--- a/arch/arm/configs/ecbat91_defconfig
+++ b/arch/arm/configs/ecbat91_defconfig
@@ -186,7 +186,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
186# 186#
187# Processor Type 187# Processor Type
188# 188#
189CONFIG_CPU_32=y
190CONFIG_CPU_ARM920T=y 189CONFIG_CPU_ARM920T=y
191CONFIG_CPU_32v4T=y 190CONFIG_CPU_32v4T=y
192CONFIG_CPU_ABRT_EV4T=y 191CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/edb7211_defconfig b/arch/arm/configs/edb7211_defconfig
index 6ba7355ff85b..e3a6cd32669d 100644
--- a/arch/arm/configs/edb7211_defconfig
+++ b/arch/arm/configs/edb7211_defconfig
@@ -90,7 +90,6 @@ CONFIG_ARCH_EP7211=y
90# 90#
91# Processor Type 91# Processor Type
92# 92#
93CONFIG_CPU_32=y
94CONFIG_CPU_ARM720T=y 93CONFIG_CPU_ARM720T=y
95CONFIG_CPU_32v4=y 94CONFIG_CPU_32v4=y
96CONFIG_CPU_ABRT_LV4T=y 95CONFIG_CPU_ABRT_LV4T=y
diff --git a/arch/arm/configs/em_x270_defconfig b/arch/arm/configs/em_x270_defconfig
index e9955b786c80..2bee932439f6 100644
--- a/arch/arm/configs/em_x270_defconfig
+++ b/arch/arm/configs/em_x270_defconfig
@@ -202,7 +202,6 @@ CONFIG_PXA_SSP=y
202# 202#
203# Processor Type 203# Processor Type
204# 204#
205CONFIG_CPU_32=y
206CONFIG_CPU_XSCALE=y 205CONFIG_CPU_XSCALE=y
207CONFIG_CPU_32v5=y 206CONFIG_CPU_32v5=y
208CONFIG_CPU_ABRT_EV5T=y 207CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index 3fb083b81b0a..35d735ede9b8 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -198,7 +198,6 @@ CONFIG_EP93XX_EARLY_UART1=y
198# 198#
199# Processor Type 199# Processor Type
200# 200#
201CONFIG_CPU_32=y
202CONFIG_CPU_ARM920T=y 201CONFIG_CPU_ARM920T=y
203CONFIG_CPU_32v4T=y 202CONFIG_CPU_32v4T=y
204CONFIG_CPU_ABRT_EV4T=y 203CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/eseries_pxa_defconfig b/arch/arm/configs/eseries_pxa_defconfig
index b6c5cbbf4c85..74baf5709290 100644
--- a/arch/arm/configs/eseries_pxa_defconfig
+++ b/arch/arm/configs/eseries_pxa_defconfig
@@ -203,7 +203,6 @@ CONFIG_PXA_HAVE_BOARD_IRQS=y
203# 203#
204# Processor Type 204# Processor Type
205# 205#
206CONFIG_CPU_32=y
207CONFIG_CPU_XSCALE=y 206CONFIG_CPU_XSCALE=y
208CONFIG_CPU_32v5=y 207CONFIG_CPU_32v5=y
209CONFIG_CPU_ABRT_EV5T=y 208CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index 492f29aba332..9e9057c5a2a3 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -240,7 +240,6 @@ CONFIG_PLAT_PXA=y
240# 240#
241# Processor Type 241# Processor Type
242# 242#
243CONFIG_CPU_32=y
244CONFIG_CPU_XSCALE=y 243CONFIG_CPU_XSCALE=y
245CONFIG_CPU_32v5=y 244CONFIG_CPU_32v5=y
246CONFIG_CPU_ABRT_EV5T=y 245CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/footbridge_defconfig b/arch/arm/configs/footbridge_defconfig
index 6ace512fa101..04d97937afe2 100644
--- a/arch/arm/configs/footbridge_defconfig
+++ b/arch/arm/configs/footbridge_defconfig
@@ -95,7 +95,6 @@ CONFIG_ARCH_EBSA285=y
95# 95#
96# Processor Type 96# Processor Type
97# 97#
98CONFIG_CPU_32=y
99CONFIG_CPU_SA110=y 98CONFIG_CPU_SA110=y
100CONFIG_CPU_32v4=y 99CONFIG_CPU_32v4=y
101CONFIG_CPU_ABRT_EV4=y 100CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/fortunet_defconfig b/arch/arm/configs/fortunet_defconfig
index 65dc73a88c43..d58142bf6fa1 100644
--- a/arch/arm/configs/fortunet_defconfig
+++ b/arch/arm/configs/fortunet_defconfig
@@ -88,7 +88,6 @@ CONFIG_ARCH_FORTUNET=y
88# 88#
89# Processor Type 89# Processor Type
90# 90#
91CONFIG_CPU_32=y
92CONFIG_CPU_ARM720T=y 91CONFIG_CPU_ARM720T=y
93CONFIG_CPU_32v4=y 92CONFIG_CPU_32v4=y
94CONFIG_CPU_ABRT_LV4T=y 93CONFIG_CPU_ABRT_LV4T=y
diff --git a/arch/arm/configs/h3600_defconfig b/arch/arm/configs/h3600_defconfig
index efa78e144e5c..a8ad8fbe1188 100644
--- a/arch/arm/configs/h3600_defconfig
+++ b/arch/arm/configs/h3600_defconfig
@@ -205,7 +205,6 @@ CONFIG_SA1100_H3600=y
205# 205#
206# Processor Type 206# Processor Type
207# 207#
208CONFIG_CPU_32=y
209CONFIG_CPU_SA1100=y 208CONFIG_CPU_SA1100=y
210CONFIG_CPU_32v4=y 209CONFIG_CPU_32v4=y
211CONFIG_CPU_ABRT_EV4=y 210CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/h5000_defconfig b/arch/arm/configs/h5000_defconfig
index 649baa370495..5bb73728fad6 100644
--- a/arch/arm/configs/h5000_defconfig
+++ b/arch/arm/configs/h5000_defconfig
@@ -206,7 +206,6 @@ CONFIG_PXA25x=y
206# 206#
207# Processor Type 207# Processor Type
208# 208#
209CONFIG_CPU_32=y
210CONFIG_CPU_XSCALE=y 209CONFIG_CPU_XSCALE=y
211CONFIG_CPU_32v5=y 210CONFIG_CPU_32v5=y
212CONFIG_CPU_ABRT_EV5T=y 211CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/h7201_defconfig b/arch/arm/configs/h7201_defconfig
index 116920aecef7..09a6c6a27bdc 100644
--- a/arch/arm/configs/h7201_defconfig
+++ b/arch/arm/configs/h7201_defconfig
@@ -87,7 +87,6 @@ CONFIG_CPU_H7201=y
87# 87#
88# Processor Type 88# Processor Type
89# 89#
90CONFIG_CPU_32=y
91CONFIG_CPU_ARM720T=y 90CONFIG_CPU_ARM720T=y
92CONFIG_CPU_32v4=y 91CONFIG_CPU_32v4=y
93CONFIG_CPU_ABRT_LV4T=y 92CONFIG_CPU_ABRT_LV4T=y
diff --git a/arch/arm/configs/h7202_defconfig b/arch/arm/configs/h7202_defconfig
index 0e739af52713..fedc52bd22b3 100644
--- a/arch/arm/configs/h7202_defconfig
+++ b/arch/arm/configs/h7202_defconfig
@@ -91,7 +91,6 @@ CONFIG_CPU_H7202=y
91# 91#
92# Processor Type 92# Processor Type
93# 93#
94CONFIG_CPU_32=y
95CONFIG_CPU_ARM720T=y 94CONFIG_CPU_ARM720T=y
96CONFIG_CPU_32v4=y 95CONFIG_CPU_32v4=y
97CONFIG_CPU_ABRT_LV4T=y 96CONFIG_CPU_ABRT_LV4T=y
diff --git a/arch/arm/configs/hackkit_defconfig b/arch/arm/configs/hackkit_defconfig
index db0708d5cbea..2da1acf41f4b 100644
--- a/arch/arm/configs/hackkit_defconfig
+++ b/arch/arm/configs/hackkit_defconfig
@@ -103,7 +103,6 @@ CONFIG_SA1100_HACKKIT=y
103# 103#
104# Processor Type 104# Processor Type
105# 105#
106CONFIG_CPU_32=y
107CONFIG_CPU_SA1100=y 106CONFIG_CPU_SA1100=y
108CONFIG_CPU_32v4=y 107CONFIG_CPU_32v4=y
109CONFIG_CPU_ABRT_EV4=y 108CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/htcherald_defconfig b/arch/arm/configs/htcherald_defconfig
index 1b39691b816f..e0ef0d121aac 100644
--- a/arch/arm/configs/htcherald_defconfig
+++ b/arch/arm/configs/htcherald_defconfig
@@ -241,7 +241,6 @@ CONFIG_OMAP_ARM_195MHZ=y
241# 241#
242# Processor Type 242# Processor Type
243# 243#
244CONFIG_CPU_32=y
245CONFIG_CPU_ARM925T=y 244CONFIG_CPU_ARM925T=y
246CONFIG_CPU_ARM926T=y 245CONFIG_CPU_ARM926T=y
247CONFIG_CPU_32v4T=y 246CONFIG_CPU_32v4T=y
diff --git a/arch/arm/configs/igep0020_defconfig b/arch/arm/configs/igep0020_defconfig
index c97f8d0ded48..a192248c6dd6 100644
--- a/arch/arm/configs/igep0020_defconfig
+++ b/arch/arm/configs/igep0020_defconfig
@@ -238,7 +238,6 @@ CONFIG_MACH_IGEP0020=y
238# 238#
239# Processor Type 239# Processor Type
240# 240#
241CONFIG_CPU_32=y
242CONFIG_CPU_32v6K=y 241CONFIG_CPU_32v6K=y
243CONFIG_CPU_V7=y 242CONFIG_CPU_V7=y
244CONFIG_CPU_32v7=y 243CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/integrator_defconfig b/arch/arm/configs/integrator_defconfig
index 3ce96e60b409..6b0d04395639 100644
--- a/arch/arm/configs/integrator_defconfig
+++ b/arch/arm/configs/integrator_defconfig
@@ -92,7 +92,6 @@ CONFIG_ARCH_INTEGRATOR_AP=y
92# 92#
93# Processor Type 93# Processor Type
94# 94#
95CONFIG_CPU_32=y
96CONFIG_CPU_ARM720T=y 95CONFIG_CPU_ARM720T=y
97CONFIG_CPU_ARM920T=y 96CONFIG_CPU_ARM920T=y
98# CONFIG_CPU_ARM922T is not set 97# CONFIG_CPU_ARM922T is not set
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig
index 89c17761726b..3c040cc9f3b6 100644
--- a/arch/arm/configs/iop13xx_defconfig
+++ b/arch/arm/configs/iop13xx_defconfig
@@ -163,7 +163,6 @@ CONFIG_PLAT_IOP=y
163# 163#
164# Processor Type 164# Processor Type
165# 165#
166CONFIG_CPU_32=y
167CONFIG_CPU_XSC3=y 166CONFIG_CPU_XSC3=y
168CONFIG_CPU_32v5=y 167CONFIG_CPU_32v5=y
169CONFIG_CPU_ABRT_EV5T=y 168CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig
index d70177b38f5f..62a854996be1 100644
--- a/arch/arm/configs/iop32x_defconfig
+++ b/arch/arm/configs/iop32x_defconfig
@@ -168,7 +168,6 @@ CONFIG_PLAT_IOP=y
168# 168#
169# Processor Type 169# Processor Type
170# 170#
171CONFIG_CPU_32=y
172CONFIG_CPU_XSCALE=y 171CONFIG_CPU_XSCALE=y
173CONFIG_CPU_32v5=y 172CONFIG_CPU_32v5=y
174CONFIG_CPU_ABRT_EV5T=y 173CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig
index ed2d59d01829..0bc23ece4c2f 100644
--- a/arch/arm/configs/iop33x_defconfig
+++ b/arch/arm/configs/iop33x_defconfig
@@ -198,7 +198,6 @@ CONFIG_PLAT_IOP=y
198# 198#
199# Processor Type 199# Processor Type
200# 200#
201CONFIG_CPU_32=y
202CONFIG_CPU_XSCALE=y 201CONFIG_CPU_XSCALE=y
203CONFIG_CPU_32v5=y 202CONFIG_CPU_32v5=y
204CONFIG_CPU_ABRT_EV5T=y 203CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index 57526c15e854..8b5b5764a228 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -151,7 +151,6 @@ CONFIG_ARCH_IXDP2X01=y
151# 151#
152# Processor Type 152# Processor Type
153# 153#
154CONFIG_CPU_32=y
155CONFIG_CPU_XSCALE=y 154CONFIG_CPU_XSCALE=y
156CONFIG_CPU_32v5=y 155CONFIG_CPU_32v5=y
157CONFIG_CPU_ABRT_EV5T=y 156CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index ef97561ed75b..59c11c93180f 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -145,7 +145,6 @@ CONFIG_MACH_ROADRUNNER=y
145# 145#
146# Processor Type 146# Processor Type
147# 147#
148CONFIG_CPU_32=y
149CONFIG_CPU_XSC3=y 148CONFIG_CPU_XSC3=y
150CONFIG_CPU_32v5=y 149CONFIG_CPU_32v5=y
151CONFIG_CPU_ABRT_EV5T=y 150CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig
index 95cd8dfb5f1e..a907ad50ad33 100644
--- a/arch/arm/configs/ixp4xx_defconfig
+++ b/arch/arm/configs/ixp4xx_defconfig
@@ -189,7 +189,6 @@ CONFIG_IXP4XX_NPE=y
189# 189#
190# Processor Type 190# Processor Type
191# 191#
192CONFIG_CPU_32=y
193CONFIG_CPU_XSCALE=y 192CONFIG_CPU_XSCALE=y
194CONFIG_CPU_32v5=y 193CONFIG_CPU_32v5=y
195CONFIG_CPU_ABRT_EV5T=y 194CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig
index df9bfbea8612..d1f1646e23c5 100644
--- a/arch/arm/configs/jornada720_defconfig
+++ b/arch/arm/configs/jornada720_defconfig
@@ -202,7 +202,6 @@ CONFIG_SA1100_SSP=y
202# 202#
203# Processor Type 203# Processor Type
204# 204#
205CONFIG_CPU_32=y
206CONFIG_CPU_SA1100=y 205CONFIG_CPU_SA1100=y
207CONFIG_CPU_32v4=y 206CONFIG_CPU_32v4=y
208CONFIG_CPU_ABRT_EV4=y 207CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/kafa_defconfig b/arch/arm/configs/kafa_defconfig
index 9f92fc527f59..f661e765d9ba 100644
--- a/arch/arm/configs/kafa_defconfig
+++ b/arch/arm/configs/kafa_defconfig
@@ -132,7 +132,6 @@ CONFIG_MACH_KAFA=y
132# 132#
133# Processor Type 133# Processor Type
134# 134#
135CONFIG_CPU_32=y
136CONFIG_CPU_ARM920T=y 135CONFIG_CPU_ARM920T=y
137CONFIG_CPU_32v4=y 136CONFIG_CPU_32v4=y
138CONFIG_CPU_ABRT_EV4T=y 137CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/kb9202_defconfig b/arch/arm/configs/kb9202_defconfig
index 605a8462f172..668ba59946d9 100644
--- a/arch/arm/configs/kb9202_defconfig
+++ b/arch/arm/configs/kb9202_defconfig
@@ -230,7 +230,6 @@ CONFIG_AT91_EARLY_DBGU=y
230# 230#
231# Processor Type 231# Processor Type
232# 232#
233CONFIG_CPU_32=y
234CONFIG_CPU_ARM920T=y 233CONFIG_CPU_ARM920T=y
235CONFIG_CPU_32v4T=y 234CONFIG_CPU_32v4T=y
236CONFIG_CPU_ABRT_EV4T=y 235CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index bcfade33bca9..5fc44c94b0ad 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -201,7 +201,6 @@ CONFIG_PLAT_ORION=y
201# 201#
202# Processor Type 202# Processor Type
203# 203#
204CONFIG_CPU_32=y
205CONFIG_CPU_FEROCEON=y 204CONFIG_CPU_FEROCEON=y
206# CONFIG_CPU_FEROCEON_OLD_ID is not set 205# CONFIG_CPU_FEROCEON_OLD_ID is not set
207CONFIG_CPU_32v5=y 206CONFIG_CPU_32v5=y
diff --git a/arch/arm/configs/ks8695_defconfig b/arch/arm/configs/ks8695_defconfig
index d25c41bab06c..e6f2276904f2 100644
--- a/arch/arm/configs/ks8695_defconfig
+++ b/arch/arm/configs/ks8695_defconfig
@@ -186,7 +186,6 @@ CONFIG_MACH_DSM320=y
186# 186#
187# Processor Type 187# Processor Type
188# 188#
189CONFIG_CPU_32=y
190CONFIG_CPU_ARM922T=y 189CONFIG_CPU_ARM922T=y
191CONFIG_CPU_32v4T=y 190CONFIG_CPU_32v4T=y
192CONFIG_CPU_ABRT_EV4T=y 191CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/lart_defconfig b/arch/arm/configs/lart_defconfig
index 56ae56899d2e..af7595176939 100644
--- a/arch/arm/configs/lart_defconfig
+++ b/arch/arm/configs/lart_defconfig
@@ -99,7 +99,6 @@ CONFIG_SA1100_LART=y
99# 99#
100# Processor Type 100# Processor Type
101# 101#
102CONFIG_CPU_32=y
103CONFIG_CPU_SA1100=y 102CONFIG_CPU_SA1100=y
104CONFIG_CPU_32v4=y 103CONFIG_CPU_32v4=y
105CONFIG_CPU_ABRT_EV4=y 104CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/loki_defconfig b/arch/arm/configs/loki_defconfig
index b720fcffbcd4..6df7b147161c 100644
--- a/arch/arm/configs/loki_defconfig
+++ b/arch/arm/configs/loki_defconfig
@@ -174,7 +174,6 @@ CONFIG_PLAT_ORION=y
174# 174#
175# Processor Type 175# Processor Type
176# 176#
177CONFIG_CPU_32=y
178CONFIG_CPU_FEROCEON=y 177CONFIG_CPU_FEROCEON=y
179# CONFIG_CPU_FEROCEON_OLD_ID is not set 178# CONFIG_CPU_FEROCEON_OLD_ID is not set
180CONFIG_CPU_32v5=y 179CONFIG_CPU_32v5=y
diff --git a/arch/arm/configs/lpd270_defconfig b/arch/arm/configs/lpd270_defconfig
index 1a38d8e3fe66..aeb768615347 100644
--- a/arch/arm/configs/lpd270_defconfig
+++ b/arch/arm/configs/lpd270_defconfig
@@ -143,7 +143,6 @@ CONFIG_PXA27x=y
143# 143#
144# Processor Type 144# Processor Type
145# 145#
146CONFIG_CPU_32=y
147CONFIG_CPU_XSCALE=y 146CONFIG_CPU_XSCALE=y
148CONFIG_CPU_32v5=y 147CONFIG_CPU_32v5=y
149CONFIG_CPU_ABRT_EV5T=y 148CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/lpd7a400_defconfig b/arch/arm/configs/lpd7a400_defconfig
index f8ac29d5c654..6116feea2e12 100644
--- a/arch/arm/configs/lpd7a400_defconfig
+++ b/arch/arm/configs/lpd7a400_defconfig
@@ -95,7 +95,6 @@ CONFIG_LPD7A40X_CPLD_SSP=y
95# 95#
96# Processor Type 96# Processor Type
97# 97#
98CONFIG_CPU_32=y
99CONFIG_CPU_ARM922T=y 98CONFIG_CPU_ARM922T=y
100CONFIG_CPU_32v4=y 99CONFIG_CPU_32v4=y
101CONFIG_CPU_ABRT_EV4T=y 100CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/lpd7a404_defconfig b/arch/arm/configs/lpd7a404_defconfig
index 7a2e932da1c6..142cccdd971e 100644
--- a/arch/arm/configs/lpd7a404_defconfig
+++ b/arch/arm/configs/lpd7a404_defconfig
@@ -117,7 +117,6 @@ CONFIG_ARCH_LH7A404=y
117# 117#
118# Processor Type 118# Processor Type
119# 119#
120CONFIG_CPU_32=y
121CONFIG_CPU_ARM922T=y 120CONFIG_CPU_ARM922T=y
122CONFIG_CPU_32v4=y 121CONFIG_CPU_32v4=y
123CONFIG_CPU_ABRT_EV4T=y 122CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/lubbock_defconfig b/arch/arm/configs/lubbock_defconfig
index e544bfbbde5d..75c6293376bb 100644
--- a/arch/arm/configs/lubbock_defconfig
+++ b/arch/arm/configs/lubbock_defconfig
@@ -92,7 +92,6 @@ CONFIG_PXA25x=y
92# 92#
93# Processor Type 93# Processor Type
94# 94#
95CONFIG_CPU_32=y
96CONFIG_CPU_XSCALE=y 95CONFIG_CPU_XSCALE=y
97CONFIG_CPU_32v5=y 96CONFIG_CPU_32v5=y
98CONFIG_CPU_ABRT_EV5T=y 97CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/lusl7200_defconfig b/arch/arm/configs/lusl7200_defconfig
index 42f6a77bc3c0..c1a1fb049a7c 100644
--- a/arch/arm/configs/lusl7200_defconfig
+++ b/arch/arm/configs/lusl7200_defconfig
@@ -82,7 +82,6 @@ CONFIG_ARCH_L7200=y
82# 82#
83# Processor Type 83# Processor Type
84# 84#
85CONFIG_CPU_32=y
86CONFIG_CPU_ARM720T=y 85CONFIG_CPU_ARM720T=y
87CONFIG_CPU_32v4=y 86CONFIG_CPU_32v4=y
88CONFIG_CPU_ABRT_LV4T=y 87CONFIG_CPU_ABRT_LV4T=y
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig
index 957fd5fa27ca..8e9a7232bc42 100644
--- a/arch/arm/configs/magician_defconfig
+++ b/arch/arm/configs/magician_defconfig
@@ -204,7 +204,6 @@ CONFIG_PXA_HAVE_BOARD_IRQS=y
204# 204#
205# Processor Type 205# Processor Type
206# 206#
207CONFIG_CPU_32=y
208CONFIG_CPU_XSCALE=y 207CONFIG_CPU_XSCALE=y
209CONFIG_CPU_32v5=y 208CONFIG_CPU_32v5=y
210CONFIG_CPU_ABRT_EV5T=y 209CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/mainstone_defconfig b/arch/arm/configs/mainstone_defconfig
index cc8c95b99292..1cddb6178496 100644
--- a/arch/arm/configs/mainstone_defconfig
+++ b/arch/arm/configs/mainstone_defconfig
@@ -93,7 +93,6 @@ CONFIG_IWMMXT=y
93# 93#
94# Processor Type 94# Processor Type
95# 95#
96CONFIG_CPU_32=y
97CONFIG_CPU_XSCALE=y 96CONFIG_CPU_XSCALE=y
98CONFIG_CPU_32v5=y 97CONFIG_CPU_32v5=y
99CONFIG_CPU_ABRT_EV5T=y 98CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/mini2440_defconfig b/arch/arm/configs/mini2440_defconfig
index e49ed40f3be7..d2a90eb844a9 100644
--- a/arch/arm/configs/mini2440_defconfig
+++ b/arch/arm/configs/mini2440_defconfig
@@ -256,7 +256,6 @@ CONFIG_MACH_MINI2440=y
256# 256#
257# Processor Type 257# Processor Type
258# 258#
259CONFIG_CPU_32=y
260CONFIG_CPU_ARM920T=y 259CONFIG_CPU_ARM920T=y
261CONFIG_CPU_32v4T=y 260CONFIG_CPU_32v4T=y
262CONFIG_CPU_ABRT_EV4T=y 261CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig
index cc3b06ee24f9..fe25e3b9a45a 100644
--- a/arch/arm/configs/msm_defconfig
+++ b/arch/arm/configs/msm_defconfig
@@ -155,7 +155,6 @@ CONFIG_MSM_SMD=y
155# 155#
156# Processor Type 156# Processor Type
157# 157#
158CONFIG_CPU_32=y
159CONFIG_CPU_V6=y 158CONFIG_CPU_V6=y
160# CONFIG_CPU_32v6K is not set 159# CONFIG_CPU_32v6K is not set
161CONFIG_CPU_32v6=y 160CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig
index 398274b0771a..6afa2c108eaa 100644
--- a/arch/arm/configs/mv78xx0_defconfig
+++ b/arch/arm/configs/mv78xx0_defconfig
@@ -181,7 +181,6 @@ CONFIG_PLAT_ORION=y
181# 181#
182# Processor Type 182# Processor Type
183# 183#
184CONFIG_CPU_32=y
185CONFIG_CPU_FEROCEON=y 184CONFIG_CPU_FEROCEON=y
186CONFIG_CPU_FEROCEON_OLD_ID=y 185CONFIG_CPU_FEROCEON_OLD_ID=y
187CONFIG_CPU_32v5=y 186CONFIG_CPU_32v5=y
diff --git a/arch/arm/configs/mx1_defconfig b/arch/arm/configs/mx1_defconfig
index 0200d67e30ba..f5750703b707 100644
--- a/arch/arm/configs/mx1_defconfig
+++ b/arch/arm/configs/mx1_defconfig
@@ -190,7 +190,6 @@ CONFIG_MXC_IRQ_PRIOR=y
190# 190#
191# Processor Type 191# Processor Type
192# 192#
193CONFIG_CPU_32=y
194CONFIG_CPU_ARM920T=y 193CONFIG_CPU_ARM920T=y
195CONFIG_CPU_32v4T=y 194CONFIG_CPU_32v4T=y
196CONFIG_CPU_ABRT_EV4T=y 195CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/mx1ads_defconfig b/arch/arm/configs/mx1ads_defconfig
index 577d7e1b5d42..3cabbb6d9276 100644
--- a/arch/arm/configs/mx1ads_defconfig
+++ b/arch/arm/configs/mx1ads_defconfig
@@ -88,7 +88,6 @@ CONFIG_ARCH_MX1ADS=y
88# 88#
89# Processor Type 89# Processor Type
90# 90#
91CONFIG_CPU_32=y
92CONFIG_CPU_ARM920T=y 91CONFIG_CPU_ARM920T=y
93CONFIG_CPU_32v4=y 92CONFIG_CPU_32v4=y
94CONFIG_CPU_ABRT_EV4T=y 93CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/mx21_defconfig b/arch/arm/configs/mx21_defconfig
index 4b04290d8e81..1ecd6276e0f1 100644
--- a/arch/arm/configs/mx21_defconfig
+++ b/arch/arm/configs/mx21_defconfig
@@ -185,7 +185,6 @@ CONFIG_MXC_PWM=y
185# 185#
186# Processor Type 186# Processor Type
187# 187#
188CONFIG_CPU_32=y
189CONFIG_CPU_ARM926T=y 188CONFIG_CPU_ARM926T=y
190CONFIG_CPU_32v5=y 189CONFIG_CPU_32v5=y
191CONFIG_CPU_ABRT_EV5TJ=y 190CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/mx27_defconfig b/arch/arm/configs/mx27_defconfig
index 75263a83741c..edfdd6faf800 100644
--- a/arch/arm/configs/mx27_defconfig
+++ b/arch/arm/configs/mx27_defconfig
@@ -207,7 +207,6 @@ CONFIG_MXC_PWM=y
207# 207#
208# Processor Type 208# Processor Type
209# 209#
210CONFIG_CPU_32=y
211CONFIG_CPU_ARM926T=y 210CONFIG_CPU_ARM926T=y
212CONFIG_CPU_32v5=y 211CONFIG_CPU_32v5=y
213CONFIG_CPU_ABRT_EV5TJ=y 212CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/mx31pdk_defconfig b/arch/arm/configs/mx31pdk_defconfig
index 95ffc0db95a0..d40953798d9e 100644
--- a/arch/arm/configs/mx31pdk_defconfig
+++ b/arch/arm/configs/mx31pdk_defconfig
@@ -173,7 +173,6 @@ CONFIG_MACH_MX31_3DS=y
173# 173#
174# Processor Type 174# Processor Type
175# 175#
176CONFIG_CPU_32=y
177CONFIG_CPU_V6=y 176CONFIG_CPU_V6=y
178# CONFIG_CPU_32v6K is not set 177# CONFIG_CPU_32v6K is not set
179CONFIG_CPU_32v6=y 178CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/mx3_defconfig b/arch/arm/configs/mx3_defconfig
index 7734ccab2119..8a06bc64fe59 100644
--- a/arch/arm/configs/mx3_defconfig
+++ b/arch/arm/configs/mx3_defconfig
@@ -218,7 +218,6 @@ CONFIG_ARCH_MXC_IOMUX_V3=y
218# 218#
219# Processor Type 219# Processor Type
220# 220#
221CONFIG_CPU_32=y
222CONFIG_CPU_V6=y 221CONFIG_CPU_V6=y
223# CONFIG_CPU_32v6K is not set 222# CONFIG_CPU_32v6K is not set
224CONFIG_CPU_32v6=y 223CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
index a1657b73683f..75cae18fbcb6 100644
--- a/arch/arm/configs/n770_defconfig
+++ b/arch/arm/configs/n770_defconfig
@@ -210,7 +210,6 @@ CONFIG_OMAP_ARM_216MHZ=y
210# 210#
211# Processor Type 211# Processor Type
212# 212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM926T=y 213CONFIG_CPU_ARM926T=y
215CONFIG_CPU_32v5=y 214CONFIG_CPU_32v5=y
216CONFIG_CPU_ABRT_EV5TJ=y 215CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index 264f52b5c52d..e6f667c5e58a 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -232,7 +232,6 @@ CONFIG_MACH_NOKIA_N8X0=y
232# 232#
233# Processor Type 233# Processor Type
234# 234#
235CONFIG_CPU_32=y
236CONFIG_CPU_V6=y 235CONFIG_CPU_V6=y
237# CONFIG_CPU_32v6K is not set 236# CONFIG_CPU_32v6K is not set
238CONFIG_CPU_32v6=y 237CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/neocore926_defconfig b/arch/arm/configs/neocore926_defconfig
index e0e4e98b5aa2..d165c757e44c 100644
--- a/arch/arm/configs/neocore926_defconfig
+++ b/arch/arm/configs/neocore926_defconfig
@@ -218,7 +218,6 @@ CONFIG_AT91_EARLY_DBGU=y
218# 218#
219# Processor Type 219# Processor Type
220# 220#
221CONFIG_CPU_32=y
222CONFIG_CPU_ARM926T=y 221CONFIG_CPU_ARM926T=y
223CONFIG_CPU_32v5=y 222CONFIG_CPU_32v5=y
224CONFIG_CPU_ABRT_EV5TJ=y 223CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/neponset_defconfig b/arch/arm/configs/neponset_defconfig
index 36cd62edd05c..171265ed02ef 100644
--- a/arch/arm/configs/neponset_defconfig
+++ b/arch/arm/configs/neponset_defconfig
@@ -103,7 +103,6 @@ CONFIG_ASSABET_NEPONSET=y
103# 103#
104# Processor Type 104# Processor Type
105# 105#
106CONFIG_CPU_32=y
107CONFIG_CPU_SA1100=y 106CONFIG_CPU_SA1100=y
108CONFIG_CPU_32v4=y 107CONFIG_CPU_32v4=y
109CONFIG_CPU_ABRT_EV4=y 108CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/netwinder_defconfig b/arch/arm/configs/netwinder_defconfig
index c1a63a35c58d..78f58a99c5a3 100644
--- a/arch/arm/configs/netwinder_defconfig
+++ b/arch/arm/configs/netwinder_defconfig
@@ -89,7 +89,6 @@ CONFIG_FOOTBRIDGE_HOST=y
89# 89#
90# Processor Type 90# Processor Type
91# 91#
92CONFIG_CPU_32=y
93CONFIG_CPU_SA110=y 92CONFIG_CPU_SA110=y
94CONFIG_CPU_32v4=y 93CONFIG_CPU_32v4=y
95CONFIG_CPU_ABRT_EV4=y 94CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/netx_defconfig b/arch/arm/configs/netx_defconfig
index 61d0fc5b2417..2a97e361ec7b 100644
--- a/arch/arm/configs/netx_defconfig
+++ b/arch/arm/configs/netx_defconfig
@@ -122,7 +122,6 @@ CONFIG_MACH_NXEB500HMI=y
122# 122#
123# Processor Type 123# Processor Type
124# 124#
125CONFIG_CPU_32=y
126CONFIG_CPU_ARM926T=y 125CONFIG_CPU_ARM926T=y
127CONFIG_CPU_32v5=y 126CONFIG_CPU_32v5=y
128CONFIG_CPU_ABRT_EV5TJ=y 127CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig
index 600cb270f2bf..92d90862f5ed 100644
--- a/arch/arm/configs/nhk8815_defconfig
+++ b/arch/arm/configs/nhk8815_defconfig
@@ -191,7 +191,6 @@ CONFIG_I2C_BITBANG_8815NHK=y
191# 191#
192# Processor Type 192# Processor Type
193# 193#
194CONFIG_CPU_32=y
195CONFIG_CPU_ARM926T=y 194CONFIG_CPU_ARM926T=y
196CONFIG_CPU_32v5=y 195CONFIG_CPU_32v5=y
197CONFIG_CPU_ABRT_EV5TJ=y 196CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/nuc910_defconfig b/arch/arm/configs/nuc910_defconfig
index 5245655a0ad3..f80848a929ae 100644
--- a/arch/arm/configs/nuc910_defconfig
+++ b/arch/arm/configs/nuc910_defconfig
@@ -180,7 +180,6 @@ CONFIG_MACH_W90P910EVB=y
180# 180#
181# Processor Type 181# Processor Type
182# 182#
183CONFIG_CPU_32=y
184CONFIG_CPU_ARM926T=y 183CONFIG_CPU_ARM926T=y
185CONFIG_CPU_32v5=y 184CONFIG_CPU_32v5=y
186CONFIG_CPU_ABRT_EV5TJ=y 185CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/nuc950_defconfig b/arch/arm/configs/nuc950_defconfig
index df1de9b45ca4..97300ec478dd 100644
--- a/arch/arm/configs/nuc950_defconfig
+++ b/arch/arm/configs/nuc950_defconfig
@@ -201,7 +201,6 @@ CONFIG_MACH_W90P950EVB=y
201# 201#
202# Processor Type 202# Processor Type
203# 203#
204CONFIG_CPU_32=y
205CONFIG_CPU_ARM926T=y 204CONFIG_CPU_ARM926T=y
206CONFIG_CPU_32v5=y 205CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5TJ=y 206CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/nuc960_defconfig b/arch/arm/configs/nuc960_defconfig
index 4b2cd9eae9bc..aa7e128f5d79 100644
--- a/arch/arm/configs/nuc960_defconfig
+++ b/arch/arm/configs/nuc960_defconfig
@@ -201,7 +201,6 @@ CONFIG_MACH_W90N960EVB=y
201# 201#
202# Processor Type 202# Processor Type
203# 203#
204CONFIG_CPU_32=y
205CONFIG_CPU_ARM926T=y 204CONFIG_CPU_ARM926T=y
206CONFIG_CPU_32v5=y 205CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5TJ=y 206CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
index 9cfae374e041..c7999f5b1c9a 100644
--- a/arch/arm/configs/omap3_beagle_defconfig
+++ b/arch/arm/configs/omap3_beagle_defconfig
@@ -213,7 +213,6 @@ CONFIG_MACH_OMAP3_BEAGLE=y
213# 213#
214# Processor Type 214# Processor Type
215# 215#
216CONFIG_CPU_32=y
217CONFIG_CPU_32v6K=y 216CONFIG_CPU_32v6K=y
218CONFIG_CPU_V7=y 217CONFIG_CPU_V7=y
219CONFIG_CPU_32v7=y 218CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap3_defconfig b/arch/arm/configs/omap3_defconfig
index 2af28eab9060..367be98a6aef 100644
--- a/arch/arm/configs/omap3_defconfig
+++ b/arch/arm/configs/omap3_defconfig
@@ -245,7 +245,6 @@ CONFIG_MACH_OMAP_3630SDP=y
245# 245#
246# Processor Type 246# Processor Type
247# 247#
248CONFIG_CPU_32=y
249CONFIG_CPU_32v6K=y 248CONFIG_CPU_32v6K=y
250CONFIG_CPU_V7=y 249CONFIG_CPU_V7=y
251CONFIG_CPU_32v7=y 250CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig
index e190fc8b9a7c..86cc4bea616b 100644
--- a/arch/arm/configs/omap3_evm_defconfig
+++ b/arch/arm/configs/omap3_evm_defconfig
@@ -220,7 +220,6 @@ CONFIG_MACH_OMAP3EVM=y
220# 220#
221# Processor Type 221# Processor Type
222# 222#
223CONFIG_CPU_32=y
224CONFIG_CPU_32v6K=y 223CONFIG_CPU_32v6K=y
225CONFIG_CPU_V7=y 224CONFIG_CPU_V7=y
226CONFIG_CPU_32v7=y 225CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap3_pandora_defconfig b/arch/arm/configs/omap3_pandora_defconfig
index b7a8d9fa49db..f74eb9a1d191 100644
--- a/arch/arm/configs/omap3_pandora_defconfig
+++ b/arch/arm/configs/omap3_pandora_defconfig
@@ -211,7 +211,6 @@ CONFIG_MACH_OMAP3_PANDORA=y
211# 211#
212# Processor Type 212# Processor Type
213# 213#
214CONFIG_CPU_32=y
215CONFIG_CPU_32v6K=y 214CONFIG_CPU_32v6K=y
216CONFIG_CPU_V7=y 215CONFIG_CPU_V7=y
217CONFIG_CPU_32v7=y 216CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap3_touchbook_defconfig b/arch/arm/configs/omap3_touchbook_defconfig
index 7c8515e65c02..74fe6be9c5ec 100644
--- a/arch/arm/configs/omap3_touchbook_defconfig
+++ b/arch/arm/configs/omap3_touchbook_defconfig
@@ -246,7 +246,6 @@ CONFIG_MACH_OMAP3_TOUCHBOOK=y
246# 246#
247# Processor Type 247# Processor Type
248# 248#
249CONFIG_CPU_32=y
250CONFIG_CPU_32v6K=y 249CONFIG_CPU_32v6K=y
251CONFIG_CPU_V7=y 250CONFIG_CPU_V7=y
252CONFIG_CPU_32v7=y 251CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap_2430sdp_defconfig b/arch/arm/configs/omap_2430sdp_defconfig
index 640e9afc4630..45b4ebae3056 100644
--- a/arch/arm/configs/omap_2430sdp_defconfig
+++ b/arch/arm/configs/omap_2430sdp_defconfig
@@ -197,7 +197,6 @@ CONFIG_MACH_OMAP_2430SDP=y
197# 197#
198# Processor Type 198# Processor Type
199# 199#
200CONFIG_CPU_32=y
201CONFIG_CPU_V6=y 200CONFIG_CPU_V6=y
202# CONFIG_CPU_32v6K is not set 201# CONFIG_CPU_32v6K is not set
203CONFIG_CPU_32v6=y 202CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/omap_3430sdp_defconfig b/arch/arm/configs/omap_3430sdp_defconfig
index 592457cfbbe5..bb2917e5cb47 100644
--- a/arch/arm/configs/omap_3430sdp_defconfig
+++ b/arch/arm/configs/omap_3430sdp_defconfig
@@ -232,7 +232,6 @@ CONFIG_MACH_OMAP_3430SDP=y
232# 232#
233# Processor Type 233# Processor Type
234# 234#
235CONFIG_CPU_32=y
236CONFIG_CPU_32v6K=y 235CONFIG_CPU_32v6K=y
237CONFIG_CPU_V7=y 236CONFIG_CPU_V7=y
238CONFIG_CPU_32v7=y 237CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap_3630sdp_defconfig b/arch/arm/configs/omap_3630sdp_defconfig
index e836c8a00148..d25c3d4424ca 100644
--- a/arch/arm/configs/omap_3630sdp_defconfig
+++ b/arch/arm/configs/omap_3630sdp_defconfig
@@ -236,7 +236,6 @@ CONFIG_MACH_OMAP_3630SDP=y
236# 236#
237# Processor Type 237# Processor Type
238# 238#
239CONFIG_CPU_32=y
240CONFIG_CPU_32v6K=y 239CONFIG_CPU_32v6K=y
241CONFIG_CPU_V7=y 240CONFIG_CPU_V7=y
242CONFIG_CPU_32v7=y 241CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap_4430sdp_defconfig b/arch/arm/configs/omap_4430sdp_defconfig
index 2319113c86bf..3de640ac294b 100644
--- a/arch/arm/configs/omap_4430sdp_defconfig
+++ b/arch/arm/configs/omap_4430sdp_defconfig
@@ -220,7 +220,6 @@ CONFIG_MACH_OMAP_4430SDP=y
220# 220#
221# Processor Type 221# Processor Type
222# 222#
223CONFIG_CPU_32=y
224CONFIG_CPU_32v6K=y 223CONFIG_CPU_32v6K=y
225CONFIG_CPU_V7=y 224CONFIG_CPU_V7=y
226CONFIG_CPU_32v7=y 225CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap_apollon_2420_defconfig b/arch/arm/configs/omap_apollon_2420_defconfig
index ac7adf34c54a..cc86342896a0 100644
--- a/arch/arm/configs/omap_apollon_2420_defconfig
+++ b/arch/arm/configs/omap_apollon_2420_defconfig
@@ -196,7 +196,6 @@ CONFIG_MACH_OMAP_APOLLON=y
196# 196#
197# Processor Type 197# Processor Type
198# 198#
199CONFIG_CPU_32=y
200CONFIG_CPU_V6=y 199CONFIG_CPU_V6=y
201# CONFIG_CPU_32v6K is not set 200# CONFIG_CPU_32v6K is not set
202CONFIG_CPU_32v6=y 201CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/omap_generic_1510_defconfig b/arch/arm/configs/omap_generic_1510_defconfig
index ccdc661b5856..61744e507e47 100644
--- a/arch/arm/configs/omap_generic_1510_defconfig
+++ b/arch/arm/configs/omap_generic_1510_defconfig
@@ -205,7 +205,6 @@ CONFIG_OMAP_ARM_168MHZ=y
205# 205#
206# Processor Type 206# Processor Type
207# 207#
208CONFIG_CPU_32=y
209CONFIG_CPU_ARM925T=y 208CONFIG_CPU_ARM925T=y
210CONFIG_CPU_32v4T=y 209CONFIG_CPU_32v4T=y
211CONFIG_CPU_ABRT_EV4T=y 210CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/omap_generic_1610_defconfig b/arch/arm/configs/omap_generic_1610_defconfig
index 0c42c8955047..d773857ed0cd 100644
--- a/arch/arm/configs/omap_generic_1610_defconfig
+++ b/arch/arm/configs/omap_generic_1610_defconfig
@@ -207,7 +207,6 @@ CONFIG_OMAP_ARM_192MHZ=y
207# 207#
208# Processor Type 208# Processor Type
209# 209#
210CONFIG_CPU_32=y
211CONFIG_CPU_ARM926T=y 210CONFIG_CPU_ARM926T=y
212CONFIG_CPU_32v5=y 211CONFIG_CPU_32v5=y
213CONFIG_CPU_ABRT_EV5TJ=y 212CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap_generic_1710_defconfig b/arch/arm/configs/omap_generic_1710_defconfig
index 0a00a708a4fc..6ec487e6e027 100644
--- a/arch/arm/configs/omap_generic_1710_defconfig
+++ b/arch/arm/configs/omap_generic_1710_defconfig
@@ -201,7 +201,6 @@ CONFIG_OMAP_ARM_192MHZ=y
201# 201#
202# Processor Type 202# Processor Type
203# 203#
204CONFIG_CPU_32=y
205CONFIG_CPU_ARM926T=y 204CONFIG_CPU_ARM926T=y
206CONFIG_CPU_32v5=y 205CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5TJ=y 206CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap_generic_2420_defconfig b/arch/arm/configs/omap_generic_2420_defconfig
index cf4073b47aaa..7218b96c0b76 100644
--- a/arch/arm/configs/omap_generic_2420_defconfig
+++ b/arch/arm/configs/omap_generic_2420_defconfig
@@ -191,7 +191,6 @@ CONFIG_ARCH_OMAP2420=y
191# 191#
192# Processor Type 192# Processor Type
193# 193#
194CONFIG_CPU_32=y
195CONFIG_CPU_V6=y 194CONFIG_CPU_V6=y
196# CONFIG_CPU_32v6K is not set 195# CONFIG_CPU_32v6K is not set
197CONFIG_CPU_32v6=y 196CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index 74dbdc644d32..523189586a4b 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -231,7 +231,6 @@ CONFIG_OMAP_ARM_60MHZ=y
231# 231#
232# Processor Type 232# Processor Type
233# 233#
234CONFIG_CPU_32=y
235CONFIG_CPU_ARM926T=y 234CONFIG_CPU_ARM926T=y
236CONFIG_CPU_32v5=y 235CONFIG_CPU_32v5=y
237CONFIG_CPU_ABRT_EV5TJ=y 236CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap_h4_2420_defconfig b/arch/arm/configs/omap_h4_2420_defconfig
index a4aab8e4c29b..b12b406c1960 100644
--- a/arch/arm/configs/omap_h4_2420_defconfig
+++ b/arch/arm/configs/omap_h4_2420_defconfig
@@ -201,7 +201,6 @@ CONFIG_MACH_OMAP_H4=y
201# 201#
202# Processor Type 202# Processor Type
203# 203#
204CONFIG_CPU_32=y
205CONFIG_CPU_V6=y 204CONFIG_CPU_V6=y
206# CONFIG_CPU_32v6K is not set 205# CONFIG_CPU_32v6K is not set
207CONFIG_CPU_32v6=y 206CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/omap_innovator_1510_defconfig b/arch/arm/configs/omap_innovator_1510_defconfig
index 0cfe363e3365..e9c140821256 100644
--- a/arch/arm/configs/omap_innovator_1510_defconfig
+++ b/arch/arm/configs/omap_innovator_1510_defconfig
@@ -205,7 +205,6 @@ CONFIG_OMAP_ARM_168MHZ=y
205# 205#
206# Processor Type 206# Processor Type
207# 207#
208CONFIG_CPU_32=y
209CONFIG_CPU_ARM925T=y 208CONFIG_CPU_ARM925T=y
210CONFIG_CPU_32v4T=y 209CONFIG_CPU_32v4T=y
211CONFIG_CPU_ABRT_EV4T=y 210CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/omap_innovator_1610_defconfig b/arch/arm/configs/omap_innovator_1610_defconfig
index 95d9f2be53e0..fea9319ed7fd 100644
--- a/arch/arm/configs/omap_innovator_1610_defconfig
+++ b/arch/arm/configs/omap_innovator_1610_defconfig
@@ -206,7 +206,6 @@ CONFIG_OMAP_ARM_192MHZ=y
206# 206#
207# Processor Type 207# Processor Type
208# 208#
209CONFIG_CPU_32=y
210CONFIG_CPU_ARM926T=y 209CONFIG_CPU_ARM926T=y
211CONFIG_CPU_32v5=y 210CONFIG_CPU_32v5=y
212CONFIG_CPU_ABRT_EV5TJ=y 211CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap_ldp_defconfig b/arch/arm/configs/omap_ldp_defconfig
index 9139532c3be7..0efb4b044fff 100644
--- a/arch/arm/configs/omap_ldp_defconfig
+++ b/arch/arm/configs/omap_ldp_defconfig
@@ -214,7 +214,6 @@ CONFIG_MACH_OMAP_LDP=y
214# 214#
215# Processor Type 215# Processor Type
216# 216#
217CONFIG_CPU_32=y
218CONFIG_CPU_32v6K=y 217CONFIG_CPU_32v6K=y
219CONFIG_CPU_V7=y 218CONFIG_CPU_V7=y
220CONFIG_CPU_32v7=y 219CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index 6b3b5c610da0..556fcca1b1db 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -212,7 +212,6 @@ CONFIG_OMAP_ARM_192MHZ=y
212# 212#
213# Processor Type 213# Processor Type
214# 214#
215CONFIG_CPU_32=y
216CONFIG_CPU_ARM926T=y 215CONFIG_CPU_ARM926T=y
217CONFIG_CPU_32v5=y 216CONFIG_CPU_32v5=y
218CONFIG_CPU_ABRT_EV5TJ=y 217CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap_perseus2_730_defconfig b/arch/arm/configs/omap_perseus2_730_defconfig
index b94800c0e000..9a15d5da57f9 100644
--- a/arch/arm/configs/omap_perseus2_730_defconfig
+++ b/arch/arm/configs/omap_perseus2_730_defconfig
@@ -199,7 +199,6 @@ CONFIG_OMAP_ARM_182MHZ=y
199# 199#
200# Processor Type 200# Processor Type
201# 201#
202CONFIG_CPU_32=y
203CONFIG_CPU_ARM926T=y 202CONFIG_CPU_ARM926T=y
204CONFIG_CPU_32v5=y 203CONFIG_CPU_32v5=y
205CONFIG_CPU_ABRT_EV5TJ=y 204CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig
index 4b00a4306812..a82e81332a03 100644
--- a/arch/arm/configs/omap_zoom2_defconfig
+++ b/arch/arm/configs/omap_zoom2_defconfig
@@ -222,7 +222,6 @@ CONFIG_MACH_OMAP_ZOOM2=y
222# 222#
223# Processor Type 223# Processor Type
224# 224#
225CONFIG_CPU_32=y
226CONFIG_CPU_32v6K=y 225CONFIG_CPU_32v6K=y
227CONFIG_CPU_V7=y 226CONFIG_CPU_V7=y
228CONFIG_CPU_32v7=y 227CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/omap_zoom3_defconfig b/arch/arm/configs/omap_zoom3_defconfig
index 0d7e37a3651b..a3e3c8274c9b 100644
--- a/arch/arm/configs/omap_zoom3_defconfig
+++ b/arch/arm/configs/omap_zoom3_defconfig
@@ -236,7 +236,6 @@ CONFIG_MACH_OMAP_ZOOM3=y
236# 236#
237# Processor Type 237# Processor Type
238# 238#
239CONFIG_CPU_32=y
240CONFIG_CPU_32v6K=y 239CONFIG_CPU_32v6K=y
241CONFIG_CPU_V7=y 240CONFIG_CPU_V7=y
242CONFIG_CPU_32v7=y 241CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index f8701fadb600..19b91dedc7fe 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -161,7 +161,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
161# 161#
162# Processor Type 162# Processor Type
163# 163#
164CONFIG_CPU_32=y
165CONFIG_CPU_ARM920T=y 164CONFIG_CPU_ARM920T=y
166CONFIG_CPU_32v4T=y 165CONFIG_CPU_32v4T=y
167CONFIG_CPU_ABRT_EV4T=y 166CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index 5383cd0dff54..85b05d3e279b 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -210,7 +210,6 @@ CONFIG_PLAT_ORION=y
210# 210#
211# Processor Type 211# Processor Type
212# 212#
213CONFIG_CPU_32=y
214CONFIG_CPU_FEROCEON=y 213CONFIG_CPU_FEROCEON=y
215CONFIG_CPU_FEROCEON_OLD_ID=y 214CONFIG_CPU_FEROCEON_OLD_ID=y
216CONFIG_CPU_32v5=y 215CONFIG_CPU_32v5=y
diff --git a/arch/arm/configs/overo_defconfig b/arch/arm/configs/overo_defconfig
index b3ea2c4c0f91..bf06d3660a30 100644
--- a/arch/arm/configs/overo_defconfig
+++ b/arch/arm/configs/overo_defconfig
@@ -217,7 +217,6 @@ CONFIG_MACH_OVERO=y
217# 217#
218# Processor Type 218# Processor Type
219# 219#
220CONFIG_CPU_32=y
221CONFIG_CPU_32v6K=y 220CONFIG_CPU_32v6K=y
222CONFIG_CPU_V7=y 221CONFIG_CPU_V7=y
223CONFIG_CPU_32v7=y 222CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/palmte_defconfig b/arch/arm/configs/palmte_defconfig
index 40fc6a778e00..feffaa2deae2 100644
--- a/arch/arm/configs/palmte_defconfig
+++ b/arch/arm/configs/palmte_defconfig
@@ -196,7 +196,6 @@ CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
196# 196#
197# Processor Type 197# Processor Type
198# 198#
199CONFIG_CPU_32=y
200CONFIG_CPU_ARM925T=y 199CONFIG_CPU_ARM925T=y
201CONFIG_CPU_32v4T=y 200CONFIG_CPU_32v4T=y
202CONFIG_CPU_ABRT_EV4T=y 201CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/palmtt_defconfig b/arch/arm/configs/palmtt_defconfig
index e54ced41217e..55d5b7dfb7a6 100644
--- a/arch/arm/configs/palmtt_defconfig
+++ b/arch/arm/configs/palmtt_defconfig
@@ -176,7 +176,6 @@ CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
176# 176#
177# Processor Type 177# Processor Type
178# 178#
179CONFIG_CPU_32=y
180CONFIG_CPU_ARM925T=y 179CONFIG_CPU_ARM925T=y
181CONFIG_CPU_32v4T=y 180CONFIG_CPU_32v4T=y
182CONFIG_CPU_ABRT_EV4T=y 181CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/palmz71_defconfig b/arch/arm/configs/palmz71_defconfig
index 08e14068fff7..6efc7465a76c 100644
--- a/arch/arm/configs/palmz71_defconfig
+++ b/arch/arm/configs/palmz71_defconfig
@@ -200,7 +200,6 @@ CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
200# 200#
201# Processor Type 201# Processor Type
202# 202#
203CONFIG_CPU_32=y
204CONFIG_CPU_ARM925T=y 203CONFIG_CPU_ARM925T=y
205CONFIG_CPU_32v4T=y 204CONFIG_CPU_32v4T=y
206CONFIG_CPU_ABRT_EV4T=y 205CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/palmz72_defconfig b/arch/arm/configs/palmz72_defconfig
index a0dc37c05dea..6d162b137ce8 100644
--- a/arch/arm/configs/palmz72_defconfig
+++ b/arch/arm/configs/palmz72_defconfig
@@ -209,7 +209,6 @@ CONFIG_PXA_PWM=y
209# 209#
210# Processor Type 210# Processor Type
211# 211#
212CONFIG_CPU_32=y
213CONFIG_CPU_XSCALE=y 212CONFIG_CPU_XSCALE=y
214CONFIG_CPU_32v5=y 213CONFIG_CPU_32v5=y
215CONFIG_CPU_ABRT_EV5T=y 214CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/pcm027_defconfig b/arch/arm/configs/pcm027_defconfig
index 05ad96a43b1d..fa153f2711bb 100644
--- a/arch/arm/configs/pcm027_defconfig
+++ b/arch/arm/configs/pcm027_defconfig
@@ -168,7 +168,6 @@ CONFIG_PXA27x=y
168# 168#
169# Processor Type 169# Processor Type
170# 170#
171CONFIG_CPU_32=y
172CONFIG_CPU_XSCALE=y 171CONFIG_CPU_XSCALE=y
173CONFIG_CPU_32v5=y 172CONFIG_CPU_32v5=y
174CONFIG_CPU_ABRT_EV5T=y 173CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/picotux200_defconfig b/arch/arm/configs/picotux200_defconfig
index 9018f0f298aa..6e7155c122a4 100644
--- a/arch/arm/configs/picotux200_defconfig
+++ b/arch/arm/configs/picotux200_defconfig
@@ -168,7 +168,6 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
168# 168#
169# Processor Type 169# Processor Type
170# 170#
171CONFIG_CPU_32=y
172CONFIG_CPU_ARM920T=y 171CONFIG_CPU_ARM920T=y
173CONFIG_CPU_32v4T=y 172CONFIG_CPU_32v4T=y
174CONFIG_CPU_ABRT_EV4T=y 173CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/pleb_defconfig b/arch/arm/configs/pleb_defconfig
index f2d2dda25949..dbfabb5eede8 100644
--- a/arch/arm/configs/pleb_defconfig
+++ b/arch/arm/configs/pleb_defconfig
@@ -100,7 +100,6 @@ CONFIG_SA1100_PLEB=y
100# 100#
101# Processor Type 101# Processor Type
102# 102#
103CONFIG_CPU_32=y
104CONFIG_CPU_SA1100=y 103CONFIG_CPU_SA1100=y
105CONFIG_CPU_32v4=y 104CONFIG_CPU_32v4=y
106CONFIG_CPU_ABRT_EV4=y 105CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/pnx4008_defconfig b/arch/arm/configs/pnx4008_defconfig
index 67b5f1e15f4a..2f7b9ce7dad3 100644
--- a/arch/arm/configs/pnx4008_defconfig
+++ b/arch/arm/configs/pnx4008_defconfig
@@ -121,7 +121,6 @@ CONFIG_ARCH_PNX4008=y
121# 121#
122# Processor Type 122# Processor Type
123# 123#
124CONFIG_CPU_32=y
125CONFIG_CPU_ARM926T=y 124CONFIG_CPU_ARM926T=y
126CONFIG_CPU_32v5=y 125CONFIG_CPU_32v5=y
127CONFIG_CPU_ABRT_EV5TJ=y 126CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/pxa168_defconfig b/arch/arm/configs/pxa168_defconfig
index db5faeaec96c..791b8c39aefc 100644
--- a/arch/arm/configs/pxa168_defconfig
+++ b/arch/arm/configs/pxa168_defconfig
@@ -184,7 +184,6 @@ CONFIG_PLAT_PXA=y
184# 184#
185# Processor Type 185# Processor Type
186# 186#
187CONFIG_CPU_32=y
188CONFIG_CPU_MOHAWK=y 187CONFIG_CPU_MOHAWK=y
189CONFIG_CPU_32v5=y 188CONFIG_CPU_32v5=y
190CONFIG_CPU_ABRT_EV5T=y 189CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/pxa255-idp_defconfig b/arch/arm/configs/pxa255-idp_defconfig
index 46e5089df0ae..3365c5d77cad 100644
--- a/arch/arm/configs/pxa255-idp_defconfig
+++ b/arch/arm/configs/pxa255-idp_defconfig
@@ -92,7 +92,6 @@ CONFIG_PXA25x=y
92# 92#
93# Processor Type 93# Processor Type
94# 94#
95CONFIG_CPU_32=y
96CONFIG_CPU_XSCALE=y 95CONFIG_CPU_XSCALE=y
97CONFIG_CPU_32v5=y 96CONFIG_CPU_32v5=y
98CONFIG_CPU_ABRT_EV5T=y 97CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/pxa3xx_defconfig b/arch/arm/configs/pxa3xx_defconfig
index 733b851e5b7e..82ca6c80d6af 100644
--- a/arch/arm/configs/pxa3xx_defconfig
+++ b/arch/arm/configs/pxa3xx_defconfig
@@ -240,7 +240,6 @@ CONFIG_PLAT_PXA=y
240# 240#
241# Processor Type 241# Processor Type
242# 242#
243CONFIG_CPU_32=y
244CONFIG_CPU_XSC3=y 243CONFIG_CPU_XSC3=y
245CONFIG_CPU_32v5=y 244CONFIG_CPU_32v5=y
246CONFIG_CPU_ABRT_EV5T=y 245CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/pxa910_defconfig b/arch/arm/configs/pxa910_defconfig
index 8c7e299f1d66..94e20fe6dbde 100644
--- a/arch/arm/configs/pxa910_defconfig
+++ b/arch/arm/configs/pxa910_defconfig
@@ -184,7 +184,6 @@ CONFIG_PLAT_PXA=y
184# 184#
185# Processor Type 185# Processor Type
186# 186#
187CONFIG_CPU_32=y
188CONFIG_CPU_MOHAWK=y 187CONFIG_CPU_MOHAWK=y
189CONFIG_CPU_32v5=y 188CONFIG_CPU_32v5=y
190CONFIG_CPU_ABRT_EV5T=y 189CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/qil-a9260_defconfig b/arch/arm/configs/qil-a9260_defconfig
index 9b32d0eb89ba..12d0d64e3216 100644
--- a/arch/arm/configs/qil-a9260_defconfig
+++ b/arch/arm/configs/qil-a9260_defconfig
@@ -195,7 +195,6 @@ CONFIG_AT91_EARLY_USART0=y
195# 195#
196# Processor Type 196# Processor Type
197# 197#
198CONFIG_CPU_32=y
199CONFIG_CPU_ARM926T=y 198CONFIG_CPU_ARM926T=y
200CONFIG_CPU_32v5=y 199CONFIG_CPU_32v5=y
201CONFIG_CPU_ABRT_EV5TJ=y 200CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/realview-smp_defconfig b/arch/arm/configs/realview-smp_defconfig
index 21db4b3ec8ff..123701754d42 100644
--- a/arch/arm/configs/realview-smp_defconfig
+++ b/arch/arm/configs/realview-smp_defconfig
@@ -186,7 +186,6 @@ CONFIG_REALVIEW_HIGH_PHYS_OFFSET=y
186# 186#
187# Processor Type 187# Processor Type
188# 188#
189CONFIG_CPU_32=y
190# CONFIG_CPU_ARM926T is not set 189# CONFIG_CPU_ARM926T is not set
191CONFIG_CPU_V6=y 190CONFIG_CPU_V6=y
192CONFIG_CPU_32v6K=y 191CONFIG_CPU_32v6K=y
diff --git a/arch/arm/configs/realview_defconfig b/arch/arm/configs/realview_defconfig
index 9a75c30b910d..a509a5e59d2c 100644
--- a/arch/arm/configs/realview_defconfig
+++ b/arch/arm/configs/realview_defconfig
@@ -184,7 +184,6 @@ CONFIG_MACH_REALVIEW_PB1176=y
184# 184#
185# Processor Type 185# Processor Type
186# 186#
187CONFIG_CPU_32=y
188# CONFIG_CPU_ARM926T is not set 187# CONFIG_CPU_ARM926T is not set
189CONFIG_CPU_V6=y 188CONFIG_CPU_V6=y
190# CONFIG_CPU_32v6K is not set 189# CONFIG_CPU_32v6K is not set
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig
index a29d61fe4c6a..e9124a000393 100644
--- a/arch/arm/configs/rpc_defconfig
+++ b/arch/arm/configs/rpc_defconfig
@@ -150,7 +150,6 @@ CONFIG_ARCH_ACORN=y
150# 150#
151# Processor Type 151# Processor Type
152# 152#
153CONFIG_CPU_32=y
154CONFIG_CPU_ARM610=y 153CONFIG_CPU_ARM610=y
155CONFIG_CPU_ARM710=y 154CONFIG_CPU_ARM710=y
156CONFIG_CPU_SA110=y 155CONFIG_CPU_SA110=y
diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 155973426025..b6eeebb31761 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -212,7 +212,6 @@ CONFIG_MACH_NOKIA_RX51=y
212# 212#
213# Processor Type 213# Processor Type
214# 214#
215CONFIG_CPU_32=y
216CONFIG_CPU_32v6K=y 215CONFIG_CPU_32v6K=y
217CONFIG_CPU_V7=y 216CONFIG_CPU_V7=y
218CONFIG_CPU_32v7=y 217CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index b49810461e41..2f10dae02796 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -277,7 +277,6 @@ CONFIG_MACH_SMDK2443=y
277# 277#
278# Processor Type 278# Processor Type
279# 279#
280CONFIG_CPU_32=y
281CONFIG_CPU_ARM920T=y 280CONFIG_CPU_ARM920T=y
282CONFIG_CPU_ARM926T=y 281CONFIG_CPU_ARM926T=y
283CONFIG_CPU_32v4T=y 282CONFIG_CPU_32v4T=y
diff --git a/arch/arm/configs/s3c6400_defconfig b/arch/arm/configs/s3c6400_defconfig
index 32860609e057..f56e50fab79b 100644
--- a/arch/arm/configs/s3c6400_defconfig
+++ b/arch/arm/configs/s3c6400_defconfig
@@ -192,7 +192,6 @@ CONFIG_SMDK6410_SD_CH0=y
192# 192#
193# Processor Type 193# Processor Type
194# 194#
195CONFIG_CPU_32=y
196CONFIG_CPU_V6=y 195CONFIG_CPU_V6=y
197CONFIG_CPU_32v6K=y 196CONFIG_CPU_32v6K=y
198CONFIG_CPU_32v6=y 197CONFIG_CPU_32v6=y
diff --git a/arch/arm/configs/s5pc100_defconfig b/arch/arm/configs/s5pc100_defconfig
index b0d7d3d3a5e3..dc108afc060c 100644
--- a/arch/arm/configs/s5pc100_defconfig
+++ b/arch/arm/configs/s5pc100_defconfig
@@ -202,7 +202,6 @@ CONFIG_MACH_SMDKC100=y
202# 202#
203# Processor Type 203# Processor Type
204# 204#
205CONFIG_CPU_32=y
206CONFIG_CPU_32v6K=y 205CONFIG_CPU_32v6K=y
207CONFIG_CPU_V7=y 206CONFIG_CPU_V7=y
208CONFIG_CPU_32v7=y 207CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/sam9_l9260_defconfig b/arch/arm/configs/sam9_l9260_defconfig
index 1174e2764875..81b290ad5d25 100644
--- a/arch/arm/configs/sam9_l9260_defconfig
+++ b/arch/arm/configs/sam9_l9260_defconfig
@@ -175,7 +175,6 @@ CONFIG_MTD_AT91_DATAFLASH_CARD=y
175# 175#
176# Processor Type 176# Processor Type
177# 177#
178CONFIG_CPU_32=y
179CONFIG_CPU_ARM926T=y 178CONFIG_CPU_ARM926T=y
180CONFIG_CPU_32v5=y 179CONFIG_CPU_32v5=y
181CONFIG_CPU_ABRT_EV5TJ=y 180CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/shannon_defconfig b/arch/arm/configs/shannon_defconfig
index 984f7096a533..7c49bc352462 100644
--- a/arch/arm/configs/shannon_defconfig
+++ b/arch/arm/configs/shannon_defconfig
@@ -99,7 +99,6 @@ CONFIG_SA1100_SHANNON=y
99# 99#
100# Processor Type 100# Processor Type
101# 101#
102CONFIG_CPU_32=y
103CONFIG_CPU_SA1100=y 102CONFIG_CPU_SA1100=y
104CONFIG_CPU_32v4=y 103CONFIG_CPU_32v4=y
105CONFIG_CPU_ABRT_EV4=y 104CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/shark_defconfig b/arch/arm/configs/shark_defconfig
index 90235bf7a1de..46de1247d127 100644
--- a/arch/arm/configs/shark_defconfig
+++ b/arch/arm/configs/shark_defconfig
@@ -173,7 +173,6 @@ CONFIG_ARCH_SHARK=y
173# 173#
174# Processor Type 174# Processor Type
175# 175#
176CONFIG_CPU_32=y
177CONFIG_CPU_SA110=y 176CONFIG_CPU_SA110=y
178CONFIG_CPU_32v4=y 177CONFIG_CPU_32v4=y
179CONFIG_CPU_ABRT_EV4=y 178CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/simpad_defconfig b/arch/arm/configs/simpad_defconfig
index 685d2b513206..ee25e6344151 100644
--- a/arch/arm/configs/simpad_defconfig
+++ b/arch/arm/configs/simpad_defconfig
@@ -101,7 +101,6 @@ CONFIG_SA1100_SIMPAD=y
101# 101#
102# Processor Type 102# Processor Type
103# 103#
104CONFIG_CPU_32=y
105CONFIG_CPU_SA1100=y 104CONFIG_CPU_SA1100=y
106CONFIG_CPU_32v4=y 105CONFIG_CPU_32v4=y
107CONFIG_CPU_ABRT_EV4=y 106CONFIG_CPU_ABRT_EV4=y
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig
index 745c68ffb885..7d894894194f 100644
--- a/arch/arm/configs/spitz_defconfig
+++ b/arch/arm/configs/spitz_defconfig
@@ -212,7 +212,6 @@ CONFIG_PXA_SSP=y
212# 212#
213# Processor Type 213# Processor Type
214# 214#
215CONFIG_CPU_32=y
216CONFIG_CPU_XSCALE=y 215CONFIG_CPU_XSCALE=y
217CONFIG_CPU_32v5=y 216CONFIG_CPU_32v5=y
218CONFIG_CPU_ABRT_EV5T=y 217CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/stmp378x_defconfig b/arch/arm/configs/stmp378x_defconfig
index 44461f197a17..b1a3a97d46ee 100644
--- a/arch/arm/configs/stmp378x_defconfig
+++ b/arch/arm/configs/stmp378x_defconfig
@@ -193,7 +193,6 @@ CONFIG_MACH_STMP378X=y
193# 193#
194# Processor Type 194# Processor Type
195# 195#
196CONFIG_CPU_32=y
197CONFIG_CPU_ARM926T=y 196CONFIG_CPU_ARM926T=y
198CONFIG_CPU_32v5=y 197CONFIG_CPU_32v5=y
199CONFIG_CPU_ABRT_EV5TJ=y 198CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/stmp37xx_defconfig b/arch/arm/configs/stmp37xx_defconfig
index 401279d531d5..a3751c9e1416 100644
--- a/arch/arm/configs/stmp37xx_defconfig
+++ b/arch/arm/configs/stmp37xx_defconfig
@@ -182,7 +182,6 @@ CONFIG_MACH_STMP37XX=y
182# 182#
183# Processor Type 183# Processor Type
184# 184#
185CONFIG_CPU_32=y
186CONFIG_CPU_ARM926T=y 185CONFIG_CPU_ARM926T=y
187CONFIG_CPU_32v5=y 186CONFIG_CPU_32v5=y
188CONFIG_CPU_ABRT_EV5TJ=y 187CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig
index 25b007ff8bab..8a9e7e6bd03b 100644
--- a/arch/arm/configs/sx1_defconfig
+++ b/arch/arm/configs/sx1_defconfig
@@ -210,7 +210,6 @@ CONFIG_OMAP_ARM_168MHZ=y
210# 210#
211# Processor Type 211# Processor Type
212# 212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM925T=y 213CONFIG_CPU_ARM925T=y
215CONFIG_CPU_32v4T=y 214CONFIG_CPU_32v4T=y
216CONFIG_CPU_ABRT_EV4T=y 215CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/tct_hammer_defconfig b/arch/arm/configs/tct_hammer_defconfig
index 9d32faef05f6..dccf14b4ee02 100644
--- a/arch/arm/configs/tct_hammer_defconfig
+++ b/arch/arm/configs/tct_hammer_defconfig
@@ -215,7 +215,6 @@ CONFIG_MACH_TCT_HAMMER=y
215# 215#
216# Processor Type 216# Processor Type
217# 217#
218CONFIG_CPU_32=y
219CONFIG_CPU_ARM920T=y 218CONFIG_CPU_ARM920T=y
220CONFIG_CPU_32v4T=y 219CONFIG_CPU_32v4T=y
221CONFIG_CPU_ABRT_EV4T=y 220CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig
index b6f838197816..1e8f5a211856 100644
--- a/arch/arm/configs/trizeps4_defconfig
+++ b/arch/arm/configs/trizeps4_defconfig
@@ -156,7 +156,6 @@ CONFIG_PXA27x=y
156# 156#
157# Processor Type 157# Processor Type
158# 158#
159CONFIG_CPU_32=y
160CONFIG_CPU_XSCALE=y 159CONFIG_CPU_XSCALE=y
161CONFIG_CPU_32v5=y 160CONFIG_CPU_32v5=y
162CONFIG_CPU_ABRT_EV5T=y 161CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig
index 953ba0297fc4..610ac3c47b0f 100644
--- a/arch/arm/configs/u300_defconfig
+++ b/arch/arm/configs/u300_defconfig
@@ -207,7 +207,6 @@ CONFIG_MACH_U300_SPIDUMMY=y
207# 207#
208# Processor Type 208# Processor Type
209# 209#
210CONFIG_CPU_32=y
211CONFIG_CPU_ARM926T=y 210CONFIG_CPU_ARM926T=y
212CONFIG_CPU_32v5=y 211CONFIG_CPU_32v5=y
213CONFIG_CPU_ABRT_EV5TJ=y 212CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig
index 15fde22ce3f3..727aff9fe347 100644
--- a/arch/arm/configs/u8500_defconfig
+++ b/arch/arm/configs/u8500_defconfig
@@ -201,7 +201,6 @@ CONFIG_MACH_U8500_MOP=y
201# 201#
202# Processor Type 202# Processor Type
203# 203#
204CONFIG_CPU_32=y
205CONFIG_CPU_32v6K=y 204CONFIG_CPU_32v6K=y
206CONFIG_CPU_V7=y 205CONFIG_CPU_V7=y
207CONFIG_CPU_32v7=y 206CONFIG_CPU_32v7=y
diff --git a/arch/arm/configs/usb-a9260_defconfig b/arch/arm/configs/usb-a9260_defconfig
index fd7774033d64..87b700e2db84 100644
--- a/arch/arm/configs/usb-a9260_defconfig
+++ b/arch/arm/configs/usb-a9260_defconfig
@@ -195,7 +195,6 @@ CONFIG_AT91_EARLY_DBGU=y
195# 195#
196# Processor Type 196# Processor Type
197# 197#
198CONFIG_CPU_32=y
199CONFIG_CPU_ARM926T=y 198CONFIG_CPU_ARM926T=y
200CONFIG_CPU_32v5=y 199CONFIG_CPU_32v5=y
201CONFIG_CPU_ABRT_EV5TJ=y 200CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/usb-a9263_defconfig b/arch/arm/configs/usb-a9263_defconfig
index e7c19dd92557..7f018edd2480 100644
--- a/arch/arm/configs/usb-a9263_defconfig
+++ b/arch/arm/configs/usb-a9263_defconfig
@@ -187,7 +187,6 @@ CONFIG_AT91_EARLY_DBGU=y
187# 187#
188# Processor Type 188# Processor Type
189# 189#
190CONFIG_CPU_32=y
191CONFIG_CPU_ARM926T=y 190CONFIG_CPU_ARM926T=y
192CONFIG_CPU_32v5=y 191CONFIG_CPU_32v5=y
193CONFIG_CPU_ABRT_EV5TJ=y 192CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig
index b11c5da3996c..a1af0b972c0d 100644
--- a/arch/arm/configs/versatile_defconfig
+++ b/arch/arm/configs/versatile_defconfig
@@ -117,7 +117,6 @@ CONFIG_MACH_VERSATILE_AB=y
117# 117#
118# Processor Type 118# Processor Type
119# 119#
120CONFIG_CPU_32=y
121CONFIG_CPU_ARM926T=y 120CONFIG_CPU_ARM926T=y
122CONFIG_CPU_32v5=y 121CONFIG_CPU_32v5=y
123CONFIG_CPU_ABRT_EV5TJ=y 122CONFIG_CPU_ABRT_EV5TJ=y
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
index 6ab5dd5868de..909887ae524c 100644
--- a/arch/arm/configs/viper_defconfig
+++ b/arch/arm/configs/viper_defconfig
@@ -204,7 +204,6 @@ CONFIG_PXA_HAVE_ISA_IRQS=y
204# 204#
205# Processor Type 205# Processor Type
206# 206#
207CONFIG_CPU_32=y
208CONFIG_CPU_XSCALE=y 207CONFIG_CPU_XSCALE=y
209CONFIG_CPU_32v5=y 208CONFIG_CPU_32v5=y
210CONFIG_CPU_ABRT_EV5T=y 209CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/xcep_defconfig b/arch/arm/configs/xcep_defconfig
index 33bb7250946b..84a72ac222cf 100644
--- a/arch/arm/configs/xcep_defconfig
+++ b/arch/arm/configs/xcep_defconfig
@@ -208,7 +208,6 @@ CONFIG_PLAT_PXA=y
208# 208#
209# Processor Type 209# Processor Type
210# 210#
211CONFIG_CPU_32=y
212CONFIG_CPU_XSCALE=y 211CONFIG_CPU_XSCALE=y
213CONFIG_CPU_32v5=y 212CONFIG_CPU_32v5=y
214CONFIG_CPU_ABRT_EV5T=y 213CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/configs/yl9200_defconfig b/arch/arm/configs/yl9200_defconfig
index 9192e5977674..3b627aadeb54 100644
--- a/arch/arm/configs/yl9200_defconfig
+++ b/arch/arm/configs/yl9200_defconfig
@@ -183,7 +183,6 @@ CONFIG_MACH_YL9200=y
183# 183#
184# Processor Type 184# Processor Type
185# 185#
186CONFIG_CPU_32=y
187CONFIG_CPU_ARM920T=y 186CONFIG_CPU_ARM920T=y
188CONFIG_CPU_32v4T=y 187CONFIG_CPU_32v4T=y
189CONFIG_CPU_ABRT_EV4T=y 188CONFIG_CPU_ABRT_EV4T=y
diff --git a/arch/arm/configs/zeus_defconfig b/arch/arm/configs/zeus_defconfig
index 823b11e7091a..fca5ff68ea67 100644
--- a/arch/arm/configs/zeus_defconfig
+++ b/arch/arm/configs/zeus_defconfig
@@ -271,7 +271,6 @@ CONFIG_PLAT_PXA=y
271# 271#
272# Processor Type 272# Processor Type
273# 273#
274CONFIG_CPU_32=y
275CONFIG_CPU_XSCALE=y 274CONFIG_CPU_XSCALE=y
276CONFIG_CPU_32v5=y 275CONFIG_CPU_32v5=y
277CONFIG_CPU_ABRT_EV5T=y 276CONFIG_CPU_ABRT_EV5T=y
diff --git a/arch/arm/include/asm/proc-fns.h b/arch/arm/include/asm/proc-fns.h
index 3976412685f8..8fdae9bc9abb 100644
--- a/arch/arm/include/asm/proc-fns.h
+++ b/arch/arm/include/asm/proc-fns.h
@@ -24,206 +24,228 @@
24 * CPU_NAME - the prefix for CPU related functions 24 * CPU_NAME - the prefix for CPU related functions
25 */ 25 */
26 26
27#ifdef CONFIG_CPU_32 27#ifdef CONFIG_CPU_ARM610
28# ifdef CONFIG_CPU_ARM610 28# ifdef CPU_NAME
29# ifdef CPU_NAME 29# undef MULTI_CPU
30# undef MULTI_CPU 30# define MULTI_CPU
31# define MULTI_CPU 31# else
32# else 32# define CPU_NAME cpu_arm6
33# define CPU_NAME cpu_arm6
34# endif
35# endif 33# endif
36# ifdef CONFIG_CPU_ARM7TDMI 34#endif
37# ifdef CPU_NAME 35
38# undef MULTI_CPU 36#ifdef CONFIG_CPU_ARM7TDMI
39# define MULTI_CPU 37# ifdef CPU_NAME
40# else 38# undef MULTI_CPU
41# define CPU_NAME cpu_arm7tdmi 39# define MULTI_CPU
42# endif 40# else
41# define CPU_NAME cpu_arm7tdmi
43# endif 42# endif
44# ifdef CONFIG_CPU_ARM710 43#endif
45# ifdef CPU_NAME 44
46# undef MULTI_CPU 45#ifdef CONFIG_CPU_ARM710
47# define MULTI_CPU 46# ifdef CPU_NAME
48# else 47# undef MULTI_CPU
49# define CPU_NAME cpu_arm7 48# define MULTI_CPU
50# endif 49# else
50# define CPU_NAME cpu_arm7
51# endif 51# endif
52# ifdef CONFIG_CPU_ARM720T 52#endif
53# ifdef CPU_NAME 53
54# undef MULTI_CPU 54#ifdef CONFIG_CPU_ARM720T
55# define MULTI_CPU 55# ifdef CPU_NAME
56# else 56# undef MULTI_CPU
57# define CPU_NAME cpu_arm720 57# define MULTI_CPU
58# endif 58# else
59# define CPU_NAME cpu_arm720
59# endif 60# endif
60# ifdef CONFIG_CPU_ARM740T 61#endif
61# ifdef CPU_NAME 62
62# undef MULTI_CPU 63#ifdef CONFIG_CPU_ARM740T
63# define MULTI_CPU 64# ifdef CPU_NAME
64# else 65# undef MULTI_CPU
65# define CPU_NAME cpu_arm740 66# define MULTI_CPU
66# endif 67# else
68# define CPU_NAME cpu_arm740
67# endif 69# endif
68# ifdef CONFIG_CPU_ARM9TDMI 70#endif
69# ifdef CPU_NAME 71
70# undef MULTI_CPU 72#ifdef CONFIG_CPU_ARM9TDMI
71# define MULTI_CPU 73# ifdef CPU_NAME
72# else 74# undef MULTI_CPU
73# define CPU_NAME cpu_arm9tdmi 75# define MULTI_CPU
74# endif 76# else
77# define CPU_NAME cpu_arm9tdmi
75# endif 78# endif
76# ifdef CONFIG_CPU_ARM920T 79#endif
77# ifdef CPU_NAME 80
78# undef MULTI_CPU 81#ifdef CONFIG_CPU_ARM920T
79# define MULTI_CPU 82# ifdef CPU_NAME
80# else 83# undef MULTI_CPU
81# define CPU_NAME cpu_arm920 84# define MULTI_CPU
82# endif 85# else
86# define CPU_NAME cpu_arm920
83# endif 87# endif
84# ifdef CONFIG_CPU_ARM922T 88#endif
85# ifdef CPU_NAME 89
86# undef MULTI_CPU 90#ifdef CONFIG_CPU_ARM922T
87# define MULTI_CPU 91# ifdef CPU_NAME
88# else 92# undef MULTI_CPU
89# define CPU_NAME cpu_arm922 93# define MULTI_CPU
90# endif 94# else
95# define CPU_NAME cpu_arm922
91# endif 96# endif
92# ifdef CONFIG_CPU_FA526 97#endif
93# ifdef CPU_NAME 98
94# undef MULTI_CPU 99#ifdef CONFIG_CPU_FA526
95# define MULTI_CPU 100# ifdef CPU_NAME
96# else 101# undef MULTI_CPU
97# define CPU_NAME cpu_fa526 102# define MULTI_CPU
98# endif 103# else
104# define CPU_NAME cpu_fa526
99# endif 105# endif
100# ifdef CONFIG_CPU_ARM925T 106#endif
101# ifdef CPU_NAME 107
102# undef MULTI_CPU 108#ifdef CONFIG_CPU_ARM925T
103# define MULTI_CPU 109# ifdef CPU_NAME
104# else 110# undef MULTI_CPU
105# define CPU_NAME cpu_arm925 111# define MULTI_CPU
106# endif 112# else
113# define CPU_NAME cpu_arm925
107# endif 114# endif
108# ifdef CONFIG_CPU_ARM926T 115#endif
109# ifdef CPU_NAME 116
110# undef MULTI_CPU 117#ifdef CONFIG_CPU_ARM926T
111# define MULTI_CPU 118# ifdef CPU_NAME
112# else 119# undef MULTI_CPU
113# define CPU_NAME cpu_arm926 120# define MULTI_CPU
114# endif 121# else
122# define CPU_NAME cpu_arm926
115# endif 123# endif
116# ifdef CONFIG_CPU_ARM940T 124#endif
117# ifdef CPU_NAME 125
118# undef MULTI_CPU 126#ifdef CONFIG_CPU_ARM940T
119# define MULTI_CPU 127# ifdef CPU_NAME
120# else 128# undef MULTI_CPU
121# define CPU_NAME cpu_arm940 129# define MULTI_CPU
122# endif 130# else
131# define CPU_NAME cpu_arm940
123# endif 132# endif
124# ifdef CONFIG_CPU_ARM946E 133#endif
125# ifdef CPU_NAME 134
126# undef MULTI_CPU 135#ifdef CONFIG_CPU_ARM946E
127# define MULTI_CPU 136# ifdef CPU_NAME
128# else 137# undef MULTI_CPU
129# define CPU_NAME cpu_arm946 138# define MULTI_CPU
130# endif 139# else
140# define CPU_NAME cpu_arm946
131# endif 141# endif
132# ifdef CONFIG_CPU_SA110 142#endif
133# ifdef CPU_NAME 143
134# undef MULTI_CPU 144#ifdef CONFIG_CPU_SA110
135# define MULTI_CPU 145# ifdef CPU_NAME
136# else 146# undef MULTI_CPU
137# define CPU_NAME cpu_sa110 147# define MULTI_CPU
138# endif 148# else
149# define CPU_NAME cpu_sa110
139# endif 150# endif
140# ifdef CONFIG_CPU_SA1100 151#endif
141# ifdef CPU_NAME 152
142# undef MULTI_CPU 153#ifdef CONFIG_CPU_SA1100
143# define MULTI_CPU 154# ifdef CPU_NAME
144# else 155# undef MULTI_CPU
145# define CPU_NAME cpu_sa1100 156# define MULTI_CPU
146# endif 157# else
158# define CPU_NAME cpu_sa1100
147# endif 159# endif
148# ifdef CONFIG_CPU_ARM1020 160#endif
149# ifdef CPU_NAME 161
150# undef MULTI_CPU 162#ifdef CONFIG_CPU_ARM1020
151# define MULTI_CPU 163# ifdef CPU_NAME
152# else 164# undef MULTI_CPU
153# define CPU_NAME cpu_arm1020 165# define MULTI_CPU
154# endif 166# else
167# define CPU_NAME cpu_arm1020
155# endif 168# endif
156# ifdef CONFIG_CPU_ARM1020E 169#endif
157# ifdef CPU_NAME 170
158# undef MULTI_CPU 171#ifdef CONFIG_CPU_ARM1020E
159# define MULTI_CPU 172# ifdef CPU_NAME
160# else 173# undef MULTI_CPU
161# define CPU_NAME cpu_arm1020e 174# define MULTI_CPU
162# endif 175# else
176# define CPU_NAME cpu_arm1020e
163# endif 177# endif
164# ifdef CONFIG_CPU_ARM1022 178#endif
165# ifdef CPU_NAME 179
166# undef MULTI_CPU 180#ifdef CONFIG_CPU_ARM1022
167# define MULTI_CPU 181# ifdef CPU_NAME
168# else 182# undef MULTI_CPU
169# define CPU_NAME cpu_arm1022 183# define MULTI_CPU
170# endif 184# else
185# define CPU_NAME cpu_arm1022
171# endif 186# endif
172# ifdef CONFIG_CPU_ARM1026 187#endif
173# ifdef CPU_NAME 188
174# undef MULTI_CPU 189#ifdef CONFIG_CPU_ARM1026
175# define MULTI_CPU 190# ifdef CPU_NAME
176# else 191# undef MULTI_CPU
177# define CPU_NAME cpu_arm1026 192# define MULTI_CPU
178# endif 193# else
194# define CPU_NAME cpu_arm1026
179# endif 195# endif
180# ifdef CONFIG_CPU_XSCALE 196#endif
181# ifdef CPU_NAME 197
182# undef MULTI_CPU 198#ifdef CONFIG_CPU_XSCALE
183# define MULTI_CPU 199# ifdef CPU_NAME
184# else 200# undef MULTI_CPU
185# define CPU_NAME cpu_xscale 201# define MULTI_CPU
186# endif 202# else
203# define CPU_NAME cpu_xscale
187# endif 204# endif
188# ifdef CONFIG_CPU_XSC3 205#endif
189# ifdef CPU_NAME 206
190# undef MULTI_CPU 207#ifdef CONFIG_CPU_XSC3
191# define MULTI_CPU 208# ifdef CPU_NAME
192# else 209# undef MULTI_CPU
193# define CPU_NAME cpu_xsc3 210# define MULTI_CPU
194# endif 211# else
212# define CPU_NAME cpu_xsc3
195# endif 213# endif
196# ifdef CONFIG_CPU_MOHAWK 214#endif
197# ifdef CPU_NAME 215
198# undef MULTI_CPU 216#ifdef CONFIG_CPU_MOHAWK
199# define MULTI_CPU 217# ifdef CPU_NAME
200# else 218# undef MULTI_CPU
201# define CPU_NAME cpu_mohawk 219# define MULTI_CPU
202# endif 220# else
221# define CPU_NAME cpu_mohawk
203# endif 222# endif
204# ifdef CONFIG_CPU_FEROCEON 223#endif
205# ifdef CPU_NAME 224
206# undef MULTI_CPU 225#ifdef CONFIG_CPU_FEROCEON
207# define MULTI_CPU 226# ifdef CPU_NAME
208# else 227# undef MULTI_CPU
209# define CPU_NAME cpu_feroceon 228# define MULTI_CPU
210# endif 229# else
230# define CPU_NAME cpu_feroceon
211# endif 231# endif
212# ifdef CONFIG_CPU_V6 232#endif
213# ifdef CPU_NAME 233
214# undef MULTI_CPU 234#ifdef CONFIG_CPU_V6
215# define MULTI_CPU 235# ifdef CPU_NAME
216# else 236# undef MULTI_CPU
217# define CPU_NAME cpu_v6 237# define MULTI_CPU
218# endif 238# else
239# define CPU_NAME cpu_v6
219# endif 240# endif
220# ifdef CONFIG_CPU_V7 241#endif
221# ifdef CPU_NAME 242
222# undef MULTI_CPU 243#ifdef CONFIG_CPU_V7
223# define MULTI_CPU 244# ifdef CPU_NAME
224# else 245# undef MULTI_CPU
225# define CPU_NAME cpu_v7 246# define MULTI_CPU
226# endif 247# else
248# define CPU_NAME cpu_v7
227# endif 249# endif
228#endif 250#endif
229 251
diff --git a/arch/arm/include/asm/thread_notify.h b/arch/arm/include/asm/thread_notify.h
index f27379d7f72a..c4391ba20350 100644
--- a/arch/arm/include/asm/thread_notify.h
+++ b/arch/arm/include/asm/thread_notify.h
@@ -41,7 +41,7 @@ static inline void thread_notify(unsigned long rc, struct thread_info *thread)
41 * These are the reason codes for the thread notifier. 41 * These are the reason codes for the thread notifier.
42 */ 42 */
43#define THREAD_NOTIFY_FLUSH 0 43#define THREAD_NOTIFY_FLUSH 0
44#define THREAD_NOTIFY_RELEASE 1 44#define THREAD_NOTIFY_EXIT 1
45#define THREAD_NOTIFY_SWITCH 2 45#define THREAD_NOTIFY_SWITCH 2
46 46
47#endif 47#endif
diff --git a/arch/arm/kernel/crunch.c b/arch/arm/kernel/crunch.c
index 769abe15cf91..25ef223ba7f3 100644
--- a/arch/arm/kernel/crunch.c
+++ b/arch/arm/kernel/crunch.c
@@ -51,7 +51,7 @@ static int crunch_do(struct notifier_block *self, unsigned long cmd, void *t)
51 * initialised state information on the first fault. 51 * initialised state information on the first fault.
52 */ 52 */
53 53
54 case THREAD_NOTIFY_RELEASE: 54 case THREAD_NOTIFY_EXIT:
55 crunch_task_release(thread); 55 crunch_task_release(thread);
56 break; 56 break;
57 57
diff --git a/arch/arm/kernel/dma-isa.c b/arch/arm/kernel/dma-isa.c
index 0e88e46fc732..360bb6d701f5 100644
--- a/arch/arm/kernel/dma-isa.c
+++ b/arch/arm/kernel/dma-isa.c
@@ -207,8 +207,6 @@ void __init isa_init_dma(void)
207 outb(0x32, 0x4d6); 207 outb(0x32, 0x4d6);
208 outb(0x33, 0x4d6); 208 outb(0x33, 0x4d6);
209 209
210 request_dma(DMA_ISA_CASCADE, "cascade");
211
212 for (i = 0; i < ARRAY_SIZE(dma_resources); i++) 210 for (i = 0; i < ARRAY_SIZE(dma_resources); i++)
213 request_resource(&ioport_resource, dma_resources + i); 211 request_resource(&ioport_resource, dma_resources + i);
214 212
@@ -218,5 +216,7 @@ void __init isa_init_dma(void)
218 printk(KERN_ERR "ISADMA%u: unable to register: %d\n", 216 printk(KERN_ERR "ISADMA%u: unable to register: %d\n",
219 chan, ret); 217 chan, ret);
220 } 218 }
219
220 request_dma(DMA_ISA_CASCADE, "cascade");
221 } 221 }
222} 222}
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 0d96d0171c05..67304138a2ca 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -274,17 +274,18 @@ void show_regs(struct pt_regs * regs)
274 __backtrace(); 274 __backtrace();
275} 275}
276 276
277ATOMIC_NOTIFIER_HEAD(thread_notify_head);
278
279EXPORT_SYMBOL_GPL(thread_notify_head);
280
277/* 281/*
278 * Free current thread data structures etc.. 282 * Free current thread data structures etc..
279 */ 283 */
280void exit_thread(void) 284void exit_thread(void)
281{ 285{
286 thread_notify(THREAD_NOTIFY_EXIT, current_thread_info());
282} 287}
283 288
284ATOMIC_NOTIFIER_HEAD(thread_notify_head);
285
286EXPORT_SYMBOL_GPL(thread_notify_head);
287
288void flush_thread(void) 289void flush_thread(void)
289{ 290{
290 struct thread_info *thread = current_thread_info(); 291 struct thread_info *thread = current_thread_info();
@@ -299,9 +300,6 @@ void flush_thread(void)
299 300
300void release_thread(struct task_struct *dead_task) 301void release_thread(struct task_struct *dead_task)
301{ 302{
302 struct thread_info *thread = task_thread_info(dead_task);
303
304 thread_notify(THREAD_NOTIFY_RELEASE, thread);
305} 303}
306 304
307asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); 305asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
diff --git a/arch/arm/kernel/xscale-cp0.c b/arch/arm/kernel/xscale-cp0.c
index 17127db906fa..1796157e3dd5 100644
--- a/arch/arm/kernel/xscale-cp0.c
+++ b/arch/arm/kernel/xscale-cp0.c
@@ -70,7 +70,7 @@ static int iwmmxt_do(struct notifier_block *self, unsigned long cmd, void *t)
70 * initialised state information on the first fault. 70 * initialised state information on the first fault.
71 */ 71 */
72 72
73 case THREAD_NOTIFY_RELEASE: 73 case THREAD_NOTIFY_EXIT:
74 iwmmxt_task_release(thread); 74 iwmmxt_task_release(thread);
75 break; 75 break;
76 76
diff --git a/arch/arm/mach-footbridge/Makefile b/arch/arm/mach-footbridge/Makefile
index 32f8609e4f85..3afb1b25946f 100644
--- a/arch/arm/mach-footbridge/Makefile
+++ b/arch/arm/mach-footbridge/Makefile
@@ -4,7 +4,7 @@
4 4
5# Object file lists. 5# Object file lists.
6 6
7obj-y := common.o dc21285.o dma.o isa-irq.o time.o 7obj-y := common.o dc21285.o dma.o isa-irq.o
8obj-m := 8obj-m :=
9obj-n := 9obj-n :=
10obj- := 10obj- :=
@@ -25,4 +25,4 @@ obj-$(CONFIG_ARCH_PERSONAL_SERVER) += personal.o dc21285-timer.o
25obj-$(CONFIG_PCI) +=$(pci-y) 25obj-$(CONFIG_PCI) +=$(pci-y)
26obj-$(CONFIG_LEDS) +=$(leds-y) 26obj-$(CONFIG_LEDS) +=$(leds-y)
27 27
28obj-$(CONFIG_ISA) += isa.o 28obj-$(CONFIG_ISA) += isa.o isa-rtc.o
diff --git a/arch/arm/mach-footbridge/dc21285-timer.c b/arch/arm/mach-footbridge/dc21285-timer.c
index da35bc5c5ccc..bc5e83fb5819 100644
--- a/arch/arm/mach-footbridge/dc21285-timer.c
+++ b/arch/arm/mach-footbridge/dc21285-timer.c
@@ -56,8 +56,6 @@ static void __init footbridge_timer_init(void)
56 *CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD | TIMER_CNTL_DIV16; 56 *CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD | TIMER_CNTL_DIV16;
57 57
58 setup_irq(IRQ_TIMER1, &footbridge_timer_irq); 58 setup_irq(IRQ_TIMER1, &footbridge_timer_irq);
59
60 isa_rtc_init();
61} 59}
62 60
63struct sys_timer footbridge_timer = { 61struct sys_timer footbridge_timer = {
diff --git a/arch/arm/mach-footbridge/isa-rtc.c b/arch/arm/mach-footbridge/isa-rtc.c
new file mode 100644
index 000000000000..07fde4051f78
--- /dev/null
+++ b/arch/arm/mach-footbridge/isa-rtc.c
@@ -0,0 +1,57 @@
1/*
2 * arch/arm/mach-footbridge/isa-rtc.c
3 *
4 * Copyright (C) 1998 Russell King.
5 * Copyright (C) 1998 Phil Blundell
6 *
7 * CATS has a real-time clock, though the evaluation board doesn't.
8 *
9 * Changelog:
10 * 21-Mar-1998 RMK Created
11 * 27-Aug-1998 PJB CATS support
12 * 28-Dec-1998 APH Made leds optional
13 * 20-Jan-1999 RMK Started merge of EBSA285, CATS and NetWinder
14 * 16-Mar-1999 RMK More support for EBSA285-like machines with RTCs in
15 */
16
17#define RTC_PORT(x) (0x70+(x))
18#define RTC_ALWAYS_BCD 0
19
20#include <linux/init.h>
21#include <linux/mc146818rtc.h>
22#include <linux/bcd.h>
23#include <linux/io.h>
24
25#include "common.h"
26
27void __init isa_rtc_init(void)
28{
29 int reg_d, reg_b;
30
31 /*
32 * Probe for the RTC.
33 */
34 reg_d = CMOS_READ(RTC_REG_D);
35
36 /*
37 * make sure the divider is set
38 */
39 CMOS_WRITE(RTC_REF_CLCK_32KHZ, RTC_REG_A);
40
41 /*
42 * Set control reg B
43 * (24 hour mode, update enabled)
44 */
45 reg_b = CMOS_READ(RTC_REG_B) & 0x7f;
46 reg_b |= 2;
47 CMOS_WRITE(reg_b, RTC_REG_B);
48
49 if ((CMOS_READ(RTC_REG_A) & 0x7f) == RTC_REF_CLCK_32KHZ &&
50 CMOS_READ(RTC_REG_B) == reg_b) {
51 /*
52 * We have a RTC. Check the battery
53 */
54 if ((reg_d & 0x80) == 0)
55 printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n");
56 }
57}
diff --git a/arch/arm/mach-footbridge/isa-timer.c b/arch/arm/mach-footbridge/isa-timer.c
index 0c8390082fa8..f488fa2082d7 100644
--- a/arch/arm/mach-footbridge/isa-timer.c
+++ b/arch/arm/mach-footbridge/isa-timer.c
@@ -76,8 +76,6 @@ static struct irqaction isa_timer_irq = {
76 76
77static void __init isa_timer_init(void) 77static void __init isa_timer_init(void)
78{ 78{
79 isa_rtc_init();
80
81 /* enable PIT timer */ 79 /* enable PIT timer */
82 /* set for periodic (4) and LSB/MSB write (0x30) */ 80 /* set for periodic (4) and LSB/MSB write (0x30) */
83 outb(0x34, 0x43); 81 outb(0x34, 0x43);
diff --git a/arch/arm/mach-footbridge/isa.c b/arch/arm/mach-footbridge/isa.c
index 725a219d0ed5..4d9276c27d6f 100644
--- a/arch/arm/mach-footbridge/isa.c
+++ b/arch/arm/mach-footbridge/isa.c
@@ -11,6 +11,9 @@
11#include <linux/serial_8250.h> 11#include <linux/serial_8250.h>
12 12
13#include <asm/irq.h> 13#include <asm/irq.h>
14#include <asm/hardware/dec21285.h>
15
16#include "common.h"
14 17
15static struct resource rtc_resources[] = { 18static struct resource rtc_resources[] = {
16 [0] = { 19 [0] = {
@@ -77,11 +80,18 @@ static struct platform_device serial_device = {
77 80
78static int __init footbridge_isa_init(void) 81static int __init footbridge_isa_init(void)
79{ 82{
80 int err; 83 int err = 0;
81 84
82 err = platform_device_register(&rtc_device); 85 if (!footbridge_cfn_mode())
83 if (err) 86 return 0;
84 printk(KERN_ERR "Unable to register RTC device: %d\n", err); 87
88 /* Personal server doesn't have RTC */
89 if (!machine_is_personal_server()) {
90 isa_rtc_init();
91 err = platform_device_register(&rtc_device);
92 if (err)
93 printk(KERN_ERR "Unable to register RTC device: %d\n", err);
94 }
85 err = platform_device_register(&serial_device); 95 err = platform_device_register(&serial_device);
86 if (err) 96 if (err)
87 printk(KERN_ERR "Unable to register serial device: %d\n", err); 97 printk(KERN_ERR "Unable to register serial device: %d\n", err);
diff --git a/arch/arm/mach-footbridge/time.c b/arch/arm/mach-footbridge/time.c
deleted file mode 100644
index cd1b54ff9fe2..000000000000
--- a/arch/arm/mach-footbridge/time.c
+++ /dev/null
@@ -1,164 +0,0 @@
1/*
2 * arch/arm/mach-footbridge/include/mach/time.h
3 *
4 * Copyright (C) 1998 Russell King.
5 * Copyright (C) 1998 Phil Blundell
6 *
7 * CATS has a real-time clock, though the evaluation board doesn't.
8 *
9 * Changelog:
10 * 21-Mar-1998 RMK Created
11 * 27-Aug-1998 PJB CATS support
12 * 28-Dec-1998 APH Made leds optional
13 * 20-Jan-1999 RMK Started merge of EBSA285, CATS and NetWinder
14 * 16-Mar-1999 RMK More support for EBSA285-like machines with RTCs in
15 */
16
17#define RTC_PORT(x) (rtc_base+(x))
18#define RTC_ALWAYS_BCD 0
19
20#include <linux/timex.h>
21#include <linux/init.h>
22#include <linux/sched.h>
23#include <linux/mc146818rtc.h>
24#include <linux/bcd.h>
25#include <linux/io.h>
26
27#include <mach/hardware.h>
28
29#include <asm/mach/time.h>
30#include "common.h"
31
32static int rtc_base;
33
34static unsigned long __init get_isa_cmos_time(void)
35{
36 unsigned int year, mon, day, hour, min, sec;
37
38 // check to see if the RTC makes sense.....
39 if ((CMOS_READ(RTC_VALID) & RTC_VRT) == 0)
40 return mktime(1970, 1, 1, 0, 0, 0);
41
42 do {
43 sec = CMOS_READ(RTC_SECONDS);
44 min = CMOS_READ(RTC_MINUTES);
45 hour = CMOS_READ(RTC_HOURS);
46 day = CMOS_READ(RTC_DAY_OF_MONTH);
47 mon = CMOS_READ(RTC_MONTH);
48 year = CMOS_READ(RTC_YEAR);
49 } while (sec != CMOS_READ(RTC_SECONDS));
50
51 if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
52 sec = bcd2bin(sec);
53 min = bcd2bin(min);
54 hour = bcd2bin(hour);
55 day = bcd2bin(day);
56 mon = bcd2bin(mon);
57 year = bcd2bin(year);
58 }
59 if ((year += 1900) < 1970)
60 year += 100;
61 return mktime(year, mon, day, hour, min, sec);
62}
63
64static int set_isa_cmos_time(void)
65{
66 int retval = 0;
67 int real_seconds, real_minutes, cmos_minutes;
68 unsigned char save_control, save_freq_select;
69 unsigned long nowtime = xtime.tv_sec;
70
71 save_control = CMOS_READ(RTC_CONTROL); /* tell the clock it's being set */
72 CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL);
73
74 save_freq_select = CMOS_READ(RTC_FREQ_SELECT); /* stop and reset prescaler */
75 CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT);
76
77 cmos_minutes = CMOS_READ(RTC_MINUTES);
78 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
79 cmos_minutes = bcd2bin(cmos_minutes);
80
81 /*
82 * since we're only adjusting minutes and seconds,
83 * don't interfere with hour overflow. This avoids
84 * messing with unknown time zones but requires your
85 * RTC not to be off by more than 15 minutes
86 */
87 real_seconds = nowtime % 60;
88 real_minutes = nowtime / 60;
89 if (((abs(real_minutes - cmos_minutes) + 15)/30) & 1)
90 real_minutes += 30; /* correct for half hour time zone */
91 real_minutes %= 60;
92
93 if (abs(real_minutes - cmos_minutes) < 30) {
94 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
95 real_seconds = bin2bcd(real_seconds);
96 real_minutes = bin2bcd(real_minutes);
97 }
98 CMOS_WRITE(real_seconds,RTC_SECONDS);
99 CMOS_WRITE(real_minutes,RTC_MINUTES);
100 } else
101 retval = -1;
102
103 /* The following flags have to be released exactly in this order,
104 * otherwise the DS12887 (popular MC146818A clone with integrated
105 * battery and quartz) will not reset the oscillator and will not
106 * update precisely 500 ms later. You won't find this mentioned in
107 * the Dallas Semiconductor data sheets, but who believes data
108 * sheets anyway ... -- Markus Kuhn
109 */
110 CMOS_WRITE(save_control, RTC_CONTROL);
111 CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
112
113 return retval;
114}
115
116void __init isa_rtc_init(void)
117{
118 if (machine_is_personal_server())
119 /*
120 * Add-in 21285s shouldn't access the RTC
121 */
122 rtc_base = 0;
123 else
124 rtc_base = 0x70;
125
126 if (rtc_base) {
127 int reg_d, reg_b;
128
129 /*
130 * Probe for the RTC.
131 */
132 reg_d = CMOS_READ(RTC_REG_D);
133
134 /*
135 * make sure the divider is set
136 */
137 CMOS_WRITE(RTC_REF_CLCK_32KHZ, RTC_REG_A);
138
139 /*
140 * Set control reg B
141 * (24 hour mode, update enabled)
142 */
143 reg_b = CMOS_READ(RTC_REG_B) & 0x7f;
144 reg_b |= 2;
145 CMOS_WRITE(reg_b, RTC_REG_B);
146
147 if ((CMOS_READ(RTC_REG_A) & 0x7f) == RTC_REF_CLCK_32KHZ &&
148 CMOS_READ(RTC_REG_B) == reg_b) {
149 struct timespec tv;
150
151 /*
152 * We have a RTC. Check the battery
153 */
154 if ((reg_d & 0x80) == 0)
155 printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n");
156
157 tv.tv_nsec = 0;
158 tv.tv_sec = get_isa_cmos_time();
159 do_settimeofday(&tv);
160 set_rtc = set_isa_cmos_time;
161 } else
162 rtc_base = 0;
163 }
164}
diff --git a/arch/arm/mach-w90x900/cpu.c b/arch/arm/mach-w90x900/cpu.c
index 921cef991bf0..20dc0c96214d 100644
--- a/arch/arm/mach-w90x900/cpu.c
+++ b/arch/arm/mach-w90x900/cpu.c
@@ -96,6 +96,7 @@ static struct clk_lookup nuc900_clkregs[] = {
96 96
97struct plat_serial8250_port nuc900_uart_data[] = { 97struct plat_serial8250_port nuc900_uart_data[] = {
98 NUC900_8250PORT(UART0), 98 NUC900_8250PORT(UART0),
99 {},
99}; 100};
100 101
101struct platform_device nuc900_serial_device = { 102struct platform_device nuc900_serial_device = {
diff --git a/arch/arm/mach-w90x900/dev.c b/arch/arm/mach-w90x900/dev.c
index 51f17b753348..ec711f4b4019 100644
--- a/arch/arm/mach-w90x900/dev.c
+++ b/arch/arm/mach-w90x900/dev.c
@@ -197,7 +197,7 @@ static struct platform_device nuc900_device_emc = {
197 197
198/* SPI device */ 198/* SPI device */
199 199
200static struct w90p910_spi_info nuc900_spiflash_data = { 200static struct nuc900_spi_info nuc900_spiflash_data = {
201 .num_cs = 1, 201 .num_cs = 1,
202 .lsb = 0, 202 .lsb = 0,
203 .txneg = 1, 203 .txneg = 1,
diff --git a/arch/arm/mach-w90x900/include/mach/uncompress.h b/arch/arm/mach-w90x900/include/mach/uncompress.h
index 050d9fe5ae1b..56f1a74d7016 100644
--- a/arch/arm/mach-w90x900/include/mach/uncompress.h
+++ b/arch/arm/mach-w90x900/include/mach/uncompress.h
@@ -22,11 +22,21 @@
22 22
23#include <mach/regs-serial.h> 23#include <mach/regs-serial.h>
24#include <mach/map.h> 24#include <mach/map.h>
25#include <linux/serial_reg.h>
25 26
26#define arch_decomp_wdog() 27#define arch_decomp_wdog()
27 28
29#define TX_DONE (UART_LSR_TEMT | UART_LSR_THRE)
30static volatile u32 * uart_base = (u32 *)UART0_PA;
31
28static void putc(int ch) 32static void putc(int ch)
29{ 33{
34 /* Check THRE and TEMT bits before we transmit the character.
35 */
36 while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
37 barrier();
38
39 *uart_base = ch;
30} 40}
31 41
32static inline void flush(void) 42static inline void flush(void)
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index dd4698c67cc3..baf638487a2d 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -1,9 +1,5 @@
1comment "Processor Type" 1comment "Processor Type"
2 2
3config CPU_32
4 bool
5 default y
6
7# Select CPU types depending on the architecture selected. This selects 3# Select CPU types depending on the architecture selected. This selects
8# which CPUs we support in the kernel image, and the compiler instruction 4# which CPUs we support in the kernel image, and the compiler instruction
9# optimiser behaviour. 5# optimiser behaviour.
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c
index 841f355319bf..0fa1319273de 100644
--- a/arch/arm/mm/copypage-v6.c
+++ b/arch/arm/mm/copypage-v6.c
@@ -48,7 +48,7 @@ static void v6_copy_user_highpage_nonaliasing(struct page *to,
48 */ 48 */
49 if (page_address(to) != NULL) 49 if (page_address(to) != NULL)
50#endif 50#endif
51 __cpuc_flush_dcache_page(kto); 51 __cpuc_flush_dcache_area(kto, PAGE_SIZE);
52 kunmap_atomic(kto, KM_USER1); 52 kunmap_atomic(kto, KM_USER1);
53 kunmap_atomic(kfrom, KM_USER0); 53 kunmap_atomic(kfrom, KM_USER0);
54} 54}
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index 729602291958..56ee15321b00 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -207,9 +207,8 @@ void __init check_writebuffer_bugs(void)
207 page = alloc_page(GFP_KERNEL); 207 page = alloc_page(GFP_KERNEL);
208 if (page) { 208 if (page) {
209 unsigned long *p1, *p2; 209 unsigned long *p1, *p2;
210 pgprot_t prot = __pgprot(L_PTE_PRESENT|L_PTE_YOUNG| 210 pgprot_t prot = __pgprot_modify(PAGE_KERNEL,
211 L_PTE_DIRTY|L_PTE_WRITE| 211 L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE);
212 L_PTE_MT_BUFFERABLE);
213 212
214 p1 = vmap(&page, 1, VM_IOREMAP, prot); 213 p1 = vmap(&page, 1, VM_IOREMAP, prot);
215 p2 = vmap(&page, 1, VM_IOREMAP, prot); 214 p2 = vmap(&page, 1, VM_IOREMAP, prot);
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 8c7fbd19a4b3..1708da82da96 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -453,8 +453,7 @@ static void __init build_mem_type_table(void)
453 453
454 pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot); 454 pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot);
455 pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | 455 pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG |
456 L_PTE_DIRTY | L_PTE_WRITE | 456 L_PTE_DIRTY | L_PTE_WRITE | kern_pgprot);
457 L_PTE_EXEC | kern_pgprot);
458 457
459 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask; 458 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
460 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask; 459 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
diff --git a/arch/arm/nwfpe/Makefile b/arch/arm/nwfpe/Makefile
index b29178c0414e..deb3a82ddbdf 100644
--- a/arch/arm/nwfpe/Makefile
+++ b/arch/arm/nwfpe/Makefile
@@ -6,7 +6,7 @@ obj-$(CONFIG_FPE_NWFPE) += nwfpe.o
6 6
7nwfpe-y += fpa11.o fpa11_cpdo.o fpa11_cpdt.o \ 7nwfpe-y += fpa11.o fpa11_cpdo.o fpa11_cpdt.o \
8 fpa11_cprt.o fpmodule.o fpopcode.o \ 8 fpa11_cprt.o fpmodule.o fpopcode.o \
9 softfloat.o single_cpdo.o double_cpdo.o 9 softfloat.o single_cpdo.o double_cpdo.o \
10 entry.o
10 11
11nwfpe-$(CONFIG_FPE_NWFPE_XP) += extended_cpdo.o 12nwfpe-$(CONFIG_FPE_NWFPE_XP) += extended_cpdo.o
12nwfpe-$(CONFIG_CPU_32) += entry.o
diff --git a/arch/arm/oprofile/op_model_v7.c b/arch/arm/oprofile/op_model_v7.c
index f20295f14adb..2088a6c0cc0e 100644
--- a/arch/arm/oprofile/op_model_v7.c
+++ b/arch/arm/oprofile/op_model_v7.c
@@ -191,12 +191,8 @@ int armv7_setup_pmnc(void)
191 return -EBUSY; 191 return -EBUSY;
192 } 192 }
193 193
194 /* 194 /* Initialize & Reset PMNC: C bit and P bit */
195 * Initialize & Reset PMNC: C bit, D bit and P bit. 195 armv7_pmnc_write(PMNC_P | PMNC_C);
196 * Note: Using a slower count for CCNT (D bit: divide by 64) results
197 * in a more stable system
198 */
199 armv7_pmnc_write(PMNC_P | PMNC_C | PMNC_D);
200 196
201 197
202 for (cnt = CCNT; cnt < CNTMAX; cnt++) { 198 for (cnt = CCNT; cnt < CNTMAX; cnt++) {
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
index aed05bc3c2ea..f60a5400a25b 100644
--- a/arch/arm/vfp/vfpmodule.c
+++ b/arch/arm/vfp/vfpmodule.c
@@ -63,14 +63,15 @@ static void vfp_thread_flush(struct thread_info *thread)
63 put_cpu(); 63 put_cpu();
64} 64}
65 65
66static void vfp_thread_release(struct thread_info *thread) 66static void vfp_thread_exit(struct thread_info *thread)
67{ 67{
68 /* release case: Per-thread VFP cleanup. */ 68 /* release case: Per-thread VFP cleanup. */
69 union vfp_state *vfp = &thread->vfpstate; 69 union vfp_state *vfp = &thread->vfpstate;
70 unsigned int cpu = thread->cpu; 70 unsigned int cpu = get_cpu();
71 71
72 if (last_VFP_context[cpu] == vfp) 72 if (last_VFP_context[cpu] == vfp)
73 last_VFP_context[cpu] = NULL; 73 last_VFP_context[cpu] = NULL;
74 put_cpu();
74} 75}
75 76
76/* 77/*
@@ -88,11 +89,13 @@ static void vfp_thread_release(struct thread_info *thread)
88 * but may change at any time. 89 * but may change at any time.
89 * - we could be preempted if tree preempt rcu is enabled, so 90 * - we could be preempted if tree preempt rcu is enabled, so
90 * it is unsafe to use thread->cpu. 91 * it is unsafe to use thread->cpu.
91 * THREAD_NOTIFY_RELEASE: 92 * THREAD_NOTIFY_EXIT
92 * - the thread (v) will not be running on any CPU; it is a dead thread. 93 * - the thread (v) will be running on the local CPU, so
93 * - thread->cpu will be the last CPU the thread ran on, which may not 94 * v === current_thread_info()
94 * be the current CPU. 95 * - thread->cpu is the local CPU number at the time it is accessed,
95 * - we could be preempted if tree preempt rcu is enabled. 96 * but may change at any time.
97 * - we could be preempted if tree preempt rcu is enabled, so
98 * it is unsafe to use thread->cpu.
96 */ 99 */
97static int vfp_notifier(struct notifier_block *self, unsigned long cmd, void *v) 100static int vfp_notifier(struct notifier_block *self, unsigned long cmd, void *v)
98{ 101{
@@ -133,7 +136,7 @@ static int vfp_notifier(struct notifier_block *self, unsigned long cmd, void *v)
133 if (cmd == THREAD_NOTIFY_FLUSH) 136 if (cmd == THREAD_NOTIFY_FLUSH)
134 vfp_thread_flush(thread); 137 vfp_thread_flush(thread);
135 else 138 else
136 vfp_thread_release(thread); 139 vfp_thread_exit(thread);
137 140
138 return NOTIFY_DONE; 141 return NOTIFY_DONE;
139} 142}
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c
index 194aaca22d47..6a8861b39f05 100644
--- a/arch/sh/boards/mach-ecovec24/setup.c
+++ b/arch/sh/boards/mach-ecovec24/setup.c
@@ -128,8 +128,6 @@ static struct platform_device nor_flash_device = {
128 128
129/* SH Eth */ 129/* SH Eth */
130#define SH_ETH_ADDR (0xA4600000) 130#define SH_ETH_ADDR (0xA4600000)
131#define SH_ETH_MAHR (SH_ETH_ADDR + 0x1C0)
132#define SH_ETH_MALR (SH_ETH_ADDR + 0x1C8)
133static struct resource sh_eth_resources[] = { 131static struct resource sh_eth_resources[] = {
134 [0] = { 132 [0] = {
135 .start = SH_ETH_ADDR, 133 .start = SH_ETH_ADDR,
@@ -509,6 +507,7 @@ static struct platform_device sdhi1_device = {
509 507
510#else 508#else
511 509
510/* MMC SPI */
512static int mmc_spi_get_ro(struct device *dev) 511static int mmc_spi_get_ro(struct device *dev)
513{ 512{
514 return gpio_get_value(GPIO_PTY6); 513 return gpio_get_value(GPIO_PTY6);
@@ -542,6 +541,7 @@ static struct spi_board_info spi_bus[] = {
542 }, 541 },
543}; 542};
544 543
544/* MSIOF0 */
545static struct sh_msiof_spi_info msiof0_data = { 545static struct sh_msiof_spi_info msiof0_data = {
546 .num_chipselect = 1, 546 .num_chipselect = 1,
547}; 547};
diff --git a/arch/sh/include/asm/dma.h b/arch/sh/include/asm/dma.h
index 04ad0e1e637e..07373a074090 100644
--- a/arch/sh/include/asm/dma.h
+++ b/arch/sh/include/asm/dma.h
@@ -19,9 +19,11 @@
19#include <asm-generic/dma.h> 19#include <asm-generic/dma.h>
20 20
21#ifdef CONFIG_NR_DMA_CHANNELS 21#ifdef CONFIG_NR_DMA_CHANNELS
22# define MAX_DMA_CHANNELS (CONFIG_NR_DMA_CHANNELS) 22# define MAX_DMA_CHANNELS (CONFIG_NR_DMA_CHANNELS)
23#elif defined(CONFIG_NR_ONCHIP_DMA_CHANNELS)
24# define MAX_DMA_CHANNELS (CONFIG_NR_ONCHIP_DMA_CHANNELS)
23#else 25#else
24# define MAX_DMA_CHANNELS (CONFIG_NR_ONCHIP_DMA_CHANNELS) 26# define MAX_DMA_CHANNELS 0
25#endif 27#endif
26 28
27/* 29/*
diff --git a/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h b/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
index f0886bc880e0..c4ed660c14cf 100644
--- a/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
+++ b/arch/sh/include/cpu-sh4/cpu/dma-sh4a.h
@@ -19,10 +19,10 @@
19#elif defined(CONFIG_CPU_SUBTYPE_SH7723) || \ 19#elif defined(CONFIG_CPU_SUBTYPE_SH7723) || \
20 defined(CONFIG_CPU_SUBTYPE_SH7724) 20 defined(CONFIG_CPU_SUBTYPE_SH7724)
21#define DMTE0_IRQ 48 /* DMAC0A*/ 21#define DMTE0_IRQ 48 /* DMAC0A*/
22#define DMTE4_IRQ 40 /* DMAC0B */ 22#define DMTE4_IRQ 76 /* DMAC0B */
23#define DMTE6_IRQ 42 23#define DMTE6_IRQ 40
24#define DMTE8_IRQ 76 /* DMAC1A */ 24#define DMTE8_IRQ 42 /* DMAC1A */
25#define DMTE9_IRQ 77 25#define DMTE9_IRQ 43
26#define DMTE10_IRQ 72 /* DMAC1B */ 26#define DMTE10_IRQ 72 /* DMAC1B */
27#define DMTE11_IRQ 73 27#define DMTE11_IRQ 73
28#define DMAE0_IRQ 78 /* DMA Error IRQ*/ 28#define DMAE0_IRQ 78 /* DMA Error IRQ*/
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
index a52f35117e82..d32f96c1cc15 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
@@ -23,9 +23,23 @@
23#include <linux/notifier.h> 23#include <linux/notifier.h>
24#include <asm/suspend.h> 24#include <asm/suspend.h>
25#include <asm/clock.h> 25#include <asm/clock.h>
26#include <asm/dma-sh.h>
26#include <asm/mmzone.h> 27#include <asm/mmzone.h>
27#include <cpu/sh7724.h> 28#include <cpu/sh7724.h>
28 29
30/* DMA */
31static struct sh_dmae_pdata dma_platform_data = {
32 .mode = SHDMA_DMAOR1,
33};
34
35static struct platform_device dma_device = {
36 .name = "sh-dma-engine",
37 .id = -1,
38 .dev = {
39 .platform_data = &dma_platform_data,
40 },
41};
42
29/* Serial */ 43/* Serial */
30static struct plat_sci_port scif0_platform_data = { 44static struct plat_sci_port scif0_platform_data = {
31 .mapbase = 0xffe00000, 45 .mapbase = 0xffe00000,
@@ -649,6 +663,7 @@ static struct platform_device *sh7724_devices[] __initdata = {
649 &tmu3_device, 663 &tmu3_device,
650 &tmu4_device, 664 &tmu4_device,
651 &tmu5_device, 665 &tmu5_device,
666 &dma_device,
652 &rtc_device, 667 &rtc_device,
653 &iic0_device, 668 &iic0_device,
654 &iic1_device, 669 &iic1_device,
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
index ef26ebda6e8b..f685b9b21999 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
@@ -14,6 +14,7 @@
14#include <linux/io.h> 14#include <linux/io.h>
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/sh_timer.h> 16#include <linux/sh_timer.h>
17#include <asm/dma-sh.h>
17#include <asm/mmzone.h> 18#include <asm/mmzone.h>
18 19
19static struct plat_sci_port scif0_platform_data = { 20static struct plat_sci_port scif0_platform_data = {
@@ -294,6 +295,18 @@ static struct platform_device tmu5_device = {
294 .num_resources = ARRAY_SIZE(tmu5_resources), 295 .num_resources = ARRAY_SIZE(tmu5_resources),
295}; 296};
296 297
298static struct sh_dmae_pdata dma_platform_data = {
299 .mode = (SHDMA_MIX_IRQ | SHDMA_DMAOR1),
300};
301
302static struct platform_device dma_device = {
303 .name = "sh-dma-engine",
304 .id = -1,
305 .dev = {
306 .platform_data = &dma_platform_data,
307 },
308};
309
297static struct platform_device *sh7785_devices[] __initdata = { 310static struct platform_device *sh7785_devices[] __initdata = {
298 &scif0_device, 311 &scif0_device,
299 &scif1_device, 312 &scif1_device,
@@ -307,6 +320,7 @@ static struct platform_device *sh7785_devices[] __initdata = {
307 &tmu3_device, 320 &tmu3_device,
308 &tmu4_device, 321 &tmu4_device,
309 &tmu5_device, 322 &tmu5_device,
323 &dma_device,
310}; 324};
311 325
312static int __init sh7785_devices_setup(void) 326static int __init sh7785_devices_setup(void)
diff --git a/arch/sh/kernel/idle.c b/arch/sh/kernel/idle.c
index aaff0037fcd7..6b3d706deac1 100644
--- a/arch/sh/kernel/idle.c
+++ b/arch/sh/kernel/idle.c
@@ -62,6 +62,7 @@ void default_idle(void)
62 clear_thread_flag(TIF_POLLING_NRFLAG); 62 clear_thread_flag(TIF_POLLING_NRFLAG);
63 smp_mb__after_clear_bit(); 63 smp_mb__after_clear_bit();
64 64
65 set_bl_bit();
65 if (!need_resched()) { 66 if (!need_resched()) {
66 local_irq_enable(); 67 local_irq_enable();
67 cpu_sleep(); 68 cpu_sleep();
@@ -69,6 +70,7 @@ void default_idle(void)
69 local_irq_enable(); 70 local_irq_enable();
70 71
71 set_thread_flag(TIF_POLLING_NRFLAG); 72 set_thread_flag(TIF_POLLING_NRFLAG);
73 clear_bl_bit();
72 } else 74 } else
73 poll_idle(); 75 poll_idle();
74} 76}
diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c
index e9415d3ea94a..b8607fa7ae12 100644
--- a/arch/sh/mm/cache.c
+++ b/arch/sh/mm/cache.c
@@ -133,12 +133,8 @@ void __update_cache(struct vm_area_struct *vma,
133 page = pfn_to_page(pfn); 133 page = pfn_to_page(pfn);
134 if (pfn_valid(pfn)) { 134 if (pfn_valid(pfn)) {
135 int dirty = test_and_clear_bit(PG_dcache_dirty, &page->flags); 135 int dirty = test_and_clear_bit(PG_dcache_dirty, &page->flags);
136 if (dirty) { 136 if (dirty)
137 unsigned long addr = (unsigned long)page_address(page); 137 __flush_purge_region(page_address(page), PAGE_SIZE);
138
139 if (pages_do_alias(addr, address & PAGE_MASK))
140 __flush_purge_region((void *)addr, PAGE_SIZE);
141 }
142 } 138 }
143} 139}
144 140
diff --git a/drivers/char/nwflash.c b/drivers/char/nwflash.c
index 8c7df5ba088f..f80810901db6 100644
--- a/drivers/char/nwflash.c
+++ b/drivers/char/nwflash.c
@@ -27,6 +27,7 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/smp_lock.h> 28#include <linux/smp_lock.h>
29#include <linux/mutex.h> 29#include <linux/mutex.h>
30#include <linux/jiffies.h>
30 31
31#include <asm/hardware/dec21285.h> 32#include <asm/hardware/dec21285.h>
32#include <asm/io.h> 33#include <asm/io.h>
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index df5b68433f34..c5facd951dda 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -1700,11 +1700,14 @@ static void f10_map_sysaddr_to_csrow(struct mem_ctl_info *mci,
1700 */ 1700 */
1701static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt) 1701static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt)
1702{ 1702{
1703 int dimm, size0, size1; 1703 int dimm, size0, size1, factor = 0;
1704 u32 dbam; 1704 u32 dbam;
1705 u32 *dcsb; 1705 u32 *dcsb;
1706 1706
1707 if (boot_cpu_data.x86 == 0xf) { 1707 if (boot_cpu_data.x86 == 0xf) {
1708 if (pvt->dclr0 & F10_WIDTH_128)
1709 factor = 1;
1710
1708 /* K8 families < revF not supported yet */ 1711 /* K8 families < revF not supported yet */
1709 if (pvt->ext_model < K8_REV_F) 1712 if (pvt->ext_model < K8_REV_F)
1710 return; 1713 return;
@@ -1732,7 +1735,8 @@ static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt)
1732 size1 = pvt->ops->dbam_to_cs(pvt, DBAM_DIMM(dimm, dbam)); 1735 size1 = pvt->ops->dbam_to_cs(pvt, DBAM_DIMM(dimm, dbam));
1733 1736
1734 edac_printk(KERN_DEBUG, EDAC_MC, " %d: %5dMB %d: %5dMB\n", 1737 edac_printk(KERN_DEBUG, EDAC_MC, " %d: %5dMB %d: %5dMB\n",
1735 dimm * 2, size0, dimm * 2 + 1, size1); 1738 dimm * 2, size0 << factor,
1739 dimm * 2 + 1, size1 << factor);
1736 } 1740 }
1737} 1741}
1738 1742
@@ -2345,7 +2349,7 @@ static void amd64_read_mc_registers(struct amd64_pvt *pvt)
2345 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCLR_0, &pvt->dclr0); 2349 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCLR_0, &pvt->dclr0);
2346 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCHR_0, &pvt->dchr0); 2350 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCHR_0, &pvt->dchr0);
2347 2351
2348 if (!dct_ganging_enabled(pvt)) { 2352 if (!dct_ganging_enabled(pvt) && boot_cpu_data.x86 >= 0x10) {
2349 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCLR_1, &pvt->dclr1); 2353 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCLR_1, &pvt->dclr1);
2350 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCHR_1, &pvt->dchr1); 2354 amd64_read_pci_cfg(pvt->dram_f2_ctl, F10_DCHR_1, &pvt->dchr1);
2351 } 2355 }
@@ -2686,9 +2690,8 @@ static int amd64_check_ecc_enabled(struct amd64_pvt *pvt)
2686 amd64_printk(KERN_WARNING, "%s", ecc_warning); 2690 amd64_printk(KERN_WARNING, "%s", ecc_warning);
2687 return -ENODEV; 2691 return -ENODEV;
2688 } 2692 }
2689 } else
2690 /* CLEAR the override, since BIOS controlled it */
2691 ecc_enable_override = 0; 2693 ecc_enable_override = 0;
2694 }
2692 2695
2693 return 0; 2696 return 0;
2694} 2697}
@@ -2925,16 +2928,15 @@ static void __devexit amd64_remove_one_instance(struct pci_dev *pdev)
2925 2928
2926 amd64_free_mc_sibling_devices(pvt); 2929 amd64_free_mc_sibling_devices(pvt);
2927 2930
2928 kfree(pvt);
2929 mci->pvt_info = NULL;
2930
2931 mci_lookup[pvt->mc_node_id] = NULL;
2932
2933 /* unregister from EDAC MCE */ 2931 /* unregister from EDAC MCE */
2934 amd_report_gart_errors(false); 2932 amd_report_gart_errors(false);
2935 amd_unregister_ecc_decoder(amd64_decode_bus_error); 2933 amd_unregister_ecc_decoder(amd64_decode_bus_error);
2936 2934
2937 /* Free the EDAC CORE resources */ 2935 /* Free the EDAC CORE resources */
2936 mci->pvt_info = NULL;
2937 mci_lookup[pvt->mc_node_id] = NULL;
2938
2939 kfree(pvt);
2938 edac_mc_free(mci); 2940 edac_mc_free(mci);
2939} 2941}
2940 2942
@@ -3011,25 +3013,29 @@ static void amd64_setup_pci_device(void)
3011static int __init amd64_edac_init(void) 3013static int __init amd64_edac_init(void)
3012{ 3014{
3013 int nb, err = -ENODEV; 3015 int nb, err = -ENODEV;
3016 bool load_ok = false;
3014 3017
3015 edac_printk(KERN_INFO, EDAC_MOD_STR, EDAC_AMD64_VERSION "\n"); 3018 edac_printk(KERN_INFO, EDAC_MOD_STR, EDAC_AMD64_VERSION "\n");
3016 3019
3017 opstate_init(); 3020 opstate_init();
3018 3021
3019 if (cache_k8_northbridges() < 0) 3022 if (cache_k8_northbridges() < 0)
3020 return err; 3023 goto err_ret;
3021 3024
3022 msrs = msrs_alloc(); 3025 msrs = msrs_alloc();
3026 if (!msrs)
3027 goto err_ret;
3023 3028
3024 err = pci_register_driver(&amd64_pci_driver); 3029 err = pci_register_driver(&amd64_pci_driver);
3025 if (err) 3030 if (err)
3026 return err; 3031 goto err_pci;
3027 3032
3028 /* 3033 /*
3029 * At this point, the array 'pvt_lookup[]' contains pointers to alloc'd 3034 * At this point, the array 'pvt_lookup[]' contains pointers to alloc'd
3030 * amd64_pvt structs. These will be used in the 2nd stage init function 3035 * amd64_pvt structs. These will be used in the 2nd stage init function
3031 * to finish initialization of the MC instances. 3036 * to finish initialization of the MC instances.
3032 */ 3037 */
3038 err = -ENODEV;
3033 for (nb = 0; nb < num_k8_northbridges; nb++) { 3039 for (nb = 0; nb < num_k8_northbridges; nb++) {
3034 if (!pvt_lookup[nb]) 3040 if (!pvt_lookup[nb])
3035 continue; 3041 continue;
@@ -3037,16 +3043,21 @@ static int __init amd64_edac_init(void)
3037 err = amd64_init_2nd_stage(pvt_lookup[nb]); 3043 err = amd64_init_2nd_stage(pvt_lookup[nb]);
3038 if (err) 3044 if (err)
3039 goto err_2nd_stage; 3045 goto err_2nd_stage;
3040 }
3041 3046
3042 amd64_setup_pci_device(); 3047 load_ok = true;
3048 }
3043 3049
3044 return 0; 3050 if (load_ok) {
3051 amd64_setup_pci_device();
3052 return 0;
3053 }
3045 3054
3046err_2nd_stage: 3055err_2nd_stage:
3047 debugf0("2nd stage failed\n");
3048 pci_unregister_driver(&amd64_pci_driver); 3056 pci_unregister_driver(&amd64_pci_driver);
3049 3057err_pci:
3058 msrs_free(msrs);
3059 msrs = NULL;
3060err_ret:
3050 return err; 3061 return err;
3051} 3062}
3052 3063
diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
index 422728cfe994..fb60a877d768 100644
--- a/drivers/edac/edac_pci_sysfs.c
+++ b/drivers/edac/edac_pci_sysfs.c
@@ -534,8 +534,6 @@ static void edac_pci_dev_parity_clear(struct pci_dev *dev)
534{ 534{
535 u8 header_type; 535 u8 header_type;
536 536
537 debugf0("%s()\n", __func__);
538
539 get_pci_parity_status(dev, 0); 537 get_pci_parity_status(dev, 0);
540 538
541 /* read the device TYPE, looking for bridges */ 539 /* read the device TYPE, looking for bridges */
diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c
index b309ac2c3d5c..fe3fb567317d 100644
--- a/drivers/i2c/busses/i2c-bfin-twi.c
+++ b/drivers/i2c/busses/i2c-bfin-twi.c
@@ -693,13 +693,13 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev)
693 } 693 }
694 694
695 /* Set TWI internal clock as 10MHz */ 695 /* Set TWI internal clock as 10MHz */
696 write_CONTROL(iface, ((get_sclk() / 1024 / 1024 + 5) / 10) & 0x7F); 696 write_CONTROL(iface, ((get_sclk() / 1000 / 1000 + 5) / 10) & 0x7F);
697 697
698 /* 698 /*
699 * We will not end up with a CLKDIV=0 because no one will specify 699 * We will not end up with a CLKDIV=0 because no one will specify
700 * 20kHz SCL or less in Kconfig now. (5 * 1024 / 20 = 0x100) 700 * 20kHz SCL or less in Kconfig now. (5 * 1000 / 20 = 250)
701 */ 701 */
702 clkhilow = 5 * 1024 / CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ; 702 clkhilow = ((10 * 1000 / CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ) + 1) / 2;
703 703
704 /* Set Twi interface clock as specified */ 704 /* Set Twi interface clock as specified */
705 write_CLKDIV(iface, (clkhilow << 8) | clkhilow); 705 write_CLKDIV(iface, (clkhilow << 8) | clkhilow);
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 75bf3ad18099..0037e31076ba 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -247,7 +247,13 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev)
247 omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN); 247 omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
248 } 248 }
249 dev->idle = 0; 249 dev->idle = 0;
250 omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate); 250
251 /*
252 * Don't write to this register if the IE state is 0 as it can
253 * cause deadlock.
254 */
255 if (dev->iestate)
256 omap_i2c_write_reg(dev, OMAP_I2C_IE_REG, dev->iestate);
251} 257}
252 258
253static void omap_i2c_idle(struct omap_i2c_dev *dev) 259static void omap_i2c_idle(struct omap_i2c_dev *dev)
@@ -280,6 +286,11 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)
280 unsigned long internal_clk = 0; 286 unsigned long internal_clk = 0;
281 287
282 if (dev->rev >= OMAP_I2C_REV_2) { 288 if (dev->rev >= OMAP_I2C_REV_2) {
289 /* Disable I2C controller before soft reset */
290 omap_i2c_write_reg(dev, OMAP_I2C_CON_REG,
291 omap_i2c_read_reg(dev, OMAP_I2C_CON_REG) &
292 ~(OMAP_I2C_CON_EN));
293
283 omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK); 294 omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK);
284 /* For some reason we need to set the EN bit before the 295 /* For some reason we need to set the EN bit before the
285 * reset done bit gets set. */ 296 * reset done bit gets set. */
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 68c7f6cfd728..37f0de9dd9ce 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -222,9 +222,9 @@ static inline void sci_init_pins(struct uart_port *port, unsigned int cflag)
222 Set SCP6MD1,0 = {01} (output) */ 222 Set SCP6MD1,0 = {01} (output) */
223 __raw_writew((data & 0x0fcf) | 0x1000, SCPCR); 223 __raw_writew((data & 0x0fcf) | 0x1000, SCPCR);
224 224
225 data = ctrl_inb(SCPDR); 225 data = __raw_readb(SCPDR);
226 /* Set /RTS2 (bit6) = 0 */ 226 /* Set /RTS2 (bit6) = 0 */
227 ctrl_outb(data & 0xbf, SCPDR); 227 __raw_writeb(data & 0xbf, SCPDR);
228 } 228 }
229} 229}
230#elif defined(CONFIG_CPU_SUBTYPE_SH7722) 230#elif defined(CONFIG_CPU_SUBTYPE_SH7722)
@@ -897,11 +897,21 @@ static void sci_shutdown(struct uart_port *port)
897static void sci_set_termios(struct uart_port *port, struct ktermios *termios, 897static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
898 struct ktermios *old) 898 struct ktermios *old)
899{ 899{
900 unsigned int status, baud, smr_val; 900 unsigned int status, baud, smr_val, max_baud;
901 int t = -1; 901 int t = -1;
902 902
903 baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); 903 /*
904 if (likely(baud)) 904 * earlyprintk comes here early on with port->uartclk set to zero.
905 * the clock framework is not up and running at this point so here
906 * we assume that 115200 is the maximum baud rate. please note that
907 * the baud rate is not programmed during earlyprintk - it is assumed
908 * that the previous boot loader has enabled required clocks and
909 * setup the baud rate generator hardware for us already.
910 */
911 max_baud = port->uartclk ? port->uartclk / 16 : 115200;
912
913 baud = uart_get_baud_rate(port, termios, old, 0, max_baud);
914 if (likely(baud && port->uartclk))
905 t = SCBRR_VALUE(baud, port->uartclk); 915 t = SCBRR_VALUE(baud, port->uartclk);
906 916
907 do { 917 do {
diff --git a/drivers/serial/sh-sci.h b/drivers/serial/sh-sci.h
index a32094eeb42b..0efcded59ae6 100644
--- a/drivers/serial/sh-sci.h
+++ b/drivers/serial/sh-sci.h
@@ -517,20 +517,20 @@ static const struct __attribute__((packed)) {
517static inline int sci_rxd_in(struct uart_port *port) 517static inline int sci_rxd_in(struct uart_port *port)
518{ 518{
519 if (port->mapbase == 0xfffffe80) 519 if (port->mapbase == 0xfffffe80)
520 return ctrl_inb(SCPDR)&0x01 ? 1 : 0; /* SCI */ 520 return __raw_readb(SCPDR)&0x01 ? 1 : 0; /* SCI */
521 if (port->mapbase == 0xa4000150) 521 if (port->mapbase == 0xa4000150)
522 return ctrl_inb(SCPDR)&0x10 ? 1 : 0; /* SCIF */ 522 return __raw_readb(SCPDR)&0x10 ? 1 : 0; /* SCIF */
523 if (port->mapbase == 0xa4000140) 523 if (port->mapbase == 0xa4000140)
524 return ctrl_inb(SCPDR)&0x04 ? 1 : 0; /* IRDA */ 524 return __raw_readb(SCPDR)&0x04 ? 1 : 0; /* IRDA */
525 return 1; 525 return 1;
526} 526}
527#elif defined(CONFIG_CPU_SUBTYPE_SH7705) 527#elif defined(CONFIG_CPU_SUBTYPE_SH7705)
528static inline int sci_rxd_in(struct uart_port *port) 528static inline int sci_rxd_in(struct uart_port *port)
529{ 529{
530 if (port->mapbase == SCIF0) 530 if (port->mapbase == SCIF0)
531 return ctrl_inb(SCPDR)&0x04 ? 1 : 0; /* IRDA */ 531 return __raw_readb(SCPDR)&0x04 ? 1 : 0; /* IRDA */
532 if (port->mapbase == SCIF2) 532 if (port->mapbase == SCIF2)
533 return ctrl_inb(SCPDR)&0x10 ? 1 : 0; /* SCIF */ 533 return __raw_readb(SCPDR)&0x10 ? 1 : 0; /* SCIF */
534 return 1; 534 return 1;
535} 535}
536#elif defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712) 536#elif defined(CONFIG_CPU_SUBTYPE_SH7710) || defined(CONFIG_CPU_SUBTYPE_SH7712)
@@ -557,68 +557,68 @@ static inline int sci_rxd_in(struct uart_port *port)
557static inline int sci_rxd_in(struct uart_port *port) 557static inline int sci_rxd_in(struct uart_port *port)
558{ 558{
559 if (port->mapbase == 0xffe00000) 559 if (port->mapbase == 0xffe00000)
560 return ctrl_inb(SCSPTR1)&0x01 ? 1 : 0; /* SCI */ 560 return __raw_readb(SCSPTR1)&0x01 ? 1 : 0; /* SCI */
561 if (port->mapbase == 0xffe80000) 561 if (port->mapbase == 0xffe80000)
562 return ctrl_inw(SCSPTR2)&0x0001 ? 1 : 0; /* SCIF */ 562 return __raw_readw(SCSPTR2)&0x0001 ? 1 : 0; /* SCIF */
563 return 1; 563 return 1;
564} 564}
565#elif defined(CONFIG_CPU_SUBTYPE_SH4_202) 565#elif defined(CONFIG_CPU_SUBTYPE_SH4_202)
566static inline int sci_rxd_in(struct uart_port *port) 566static inline int sci_rxd_in(struct uart_port *port)
567{ 567{
568 if (port->mapbase == 0xffe80000) 568 if (port->mapbase == 0xffe80000)
569 return ctrl_inw(SCSPTR2)&0x0001 ? 1 : 0; /* SCIF */ 569 return __raw_readw(SCSPTR2)&0x0001 ? 1 : 0; /* SCIF */
570 return 1; 570 return 1;
571} 571}
572#elif defined(CONFIG_CPU_SUBTYPE_SH7757) 572#elif defined(CONFIG_CPU_SUBTYPE_SH7757)
573static inline int sci_rxd_in(struct uart_port *port) 573static inline int sci_rxd_in(struct uart_port *port)
574{ 574{
575 if (port->mapbase == 0xfe4b0000) 575 if (port->mapbase == 0xfe4b0000)
576 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; 576 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0;
577 if (port->mapbase == 0xfe4c0000) 577 if (port->mapbase == 0xfe4c0000)
578 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; 578 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0;
579 if (port->mapbase == 0xfe4d0000) 579 if (port->mapbase == 0xfe4d0000)
580 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; 580 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0;
581} 581}
582#elif defined(CONFIG_CPU_SUBTYPE_SH7760) 582#elif defined(CONFIG_CPU_SUBTYPE_SH7760)
583static inline int sci_rxd_in(struct uart_port *port) 583static inline int sci_rxd_in(struct uart_port *port)
584{ 584{
585 if (port->mapbase == 0xfe600000) 585 if (port->mapbase == 0xfe600000)
586 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 586 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
587 if (port->mapbase == 0xfe610000) 587 if (port->mapbase == 0xfe610000)
588 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 588 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
589 if (port->mapbase == 0xfe620000) 589 if (port->mapbase == 0xfe620000)
590 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 590 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
591 return 1; 591 return 1;
592} 592}
593#elif defined(CONFIG_CPU_SUBTYPE_SH7343) 593#elif defined(CONFIG_CPU_SUBTYPE_SH7343)
594static inline int sci_rxd_in(struct uart_port *port) 594static inline int sci_rxd_in(struct uart_port *port)
595{ 595{
596 if (port->mapbase == 0xffe00000) 596 if (port->mapbase == 0xffe00000)
597 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 597 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
598 if (port->mapbase == 0xffe10000) 598 if (port->mapbase == 0xffe10000)
599 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 599 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
600 if (port->mapbase == 0xffe20000) 600 if (port->mapbase == 0xffe20000)
601 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 601 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
602 if (port->mapbase == 0xffe30000) 602 if (port->mapbase == 0xffe30000)
603 return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */ 603 return __raw_readw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */
604 return 1; 604 return 1;
605} 605}
606#elif defined(CONFIG_CPU_SUBTYPE_SH7366) 606#elif defined(CONFIG_CPU_SUBTYPE_SH7366)
607static inline int sci_rxd_in(struct uart_port *port) 607static inline int sci_rxd_in(struct uart_port *port)
608{ 608{
609 if (port->mapbase == 0xffe00000) 609 if (port->mapbase == 0xffe00000)
610 return ctrl_inb(SCPDR0) & 0x0001 ? 1 : 0; /* SCIF0 */ 610 return __raw_readb(SCPDR0) & 0x0001 ? 1 : 0; /* SCIF0 */
611 return 1; 611 return 1;
612} 612}
613#elif defined(CONFIG_CPU_SUBTYPE_SH7722) 613#elif defined(CONFIG_CPU_SUBTYPE_SH7722)
614static inline int sci_rxd_in(struct uart_port *port) 614static inline int sci_rxd_in(struct uart_port *port)
615{ 615{
616 if (port->mapbase == 0xffe00000) 616 if (port->mapbase == 0xffe00000)
617 return ctrl_inb(PSDR) & 0x02 ? 1 : 0; /* SCIF0 */ 617 return __raw_readb(PSDR) & 0x02 ? 1 : 0; /* SCIF0 */
618 if (port->mapbase == 0xffe10000) 618 if (port->mapbase == 0xffe10000)
619 return ctrl_inb(PADR) & 0x40 ? 1 : 0; /* SCIF1 */ 619 return __raw_readb(PADR) & 0x40 ? 1 : 0; /* SCIF1 */
620 if (port->mapbase == 0xffe20000) 620 if (port->mapbase == 0xffe20000)
621 return ctrl_inb(PWDR) & 0x04 ? 1 : 0; /* SCIF2 */ 621 return __raw_readb(PWDR) & 0x04 ? 1 : 0; /* SCIF2 */
622 622
623 return 1; 623 return 1;
624} 624}
@@ -626,17 +626,17 @@ static inline int sci_rxd_in(struct uart_port *port)
626static inline int sci_rxd_in(struct uart_port *port) 626static inline int sci_rxd_in(struct uart_port *port)
627{ 627{
628 if (port->mapbase == 0xffe00000) 628 if (port->mapbase == 0xffe00000)
629 return ctrl_inb(SCSPTR0) & 0x0008 ? 1 : 0; /* SCIF0 */ 629 return __raw_readb(SCSPTR0) & 0x0008 ? 1 : 0; /* SCIF0 */
630 if (port->mapbase == 0xffe10000) 630 if (port->mapbase == 0xffe10000)
631 return ctrl_inb(SCSPTR1) & 0x0020 ? 1 : 0; /* SCIF1 */ 631 return __raw_readb(SCSPTR1) & 0x0020 ? 1 : 0; /* SCIF1 */
632 if (port->mapbase == 0xffe20000) 632 if (port->mapbase == 0xffe20000)
633 return ctrl_inb(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF2 */ 633 return __raw_readb(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF2 */
634 if (port->mapbase == 0xa4e30000) 634 if (port->mapbase == 0xa4e30000)
635 return ctrl_inb(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF3 */ 635 return __raw_readb(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF3 */
636 if (port->mapbase == 0xa4e40000) 636 if (port->mapbase == 0xa4e40000)
637 return ctrl_inb(SCSPTR4) & 0x0001 ? 1 : 0; /* SCIF4 */ 637 return __raw_readb(SCSPTR4) & 0x0001 ? 1 : 0; /* SCIF4 */
638 if (port->mapbase == 0xa4e50000) 638 if (port->mapbase == 0xa4e50000)
639 return ctrl_inb(SCSPTR5) & 0x0008 ? 1 : 0; /* SCIF5 */ 639 return __raw_readb(SCSPTR5) & 0x0008 ? 1 : 0; /* SCIF5 */
640 return 1; 640 return 1;
641} 641}
642#elif defined(CONFIG_CPU_SUBTYPE_SH7724) 642#elif defined(CONFIG_CPU_SUBTYPE_SH7724)
@@ -645,9 +645,9 @@ static inline int sci_rxd_in(struct uart_port *port)
645static inline int sci_rxd_in(struct uart_port *port) 645static inline int sci_rxd_in(struct uart_port *port)
646{ 646{
647 if (port->type == PORT_SCIF) 647 if (port->type == PORT_SCIF)
648 return ctrl_inw((port->mapbase + SCFSR)) & SCIF_BRK ? 1 : 0; 648 return __raw_readw((port->mapbase + SCFSR)) & SCIF_BRK ? 1 : 0;
649 if (port->type == PORT_SCIFA) 649 if (port->type == PORT_SCIFA)
650 return ctrl_inw((port->mapbase + SCASSR)) & SCIF_BRK ? 1 : 0; 650 return __raw_readw((port->mapbase + SCASSR)) & SCIF_BRK ? 1 : 0;
651 return 1; 651 return 1;
652} 652}
653#elif defined(CONFIG_CPU_SUBTYPE_SH5_101) || defined(CONFIG_CPU_SUBTYPE_SH5_103) 653#elif defined(CONFIG_CPU_SUBTYPE_SH5_101) || defined(CONFIG_CPU_SUBTYPE_SH5_103)
@@ -665,11 +665,11 @@ static inline int sci_rxd_in(struct uart_port *port)
665static inline int sci_rxd_in(struct uart_port *port) 665static inline int sci_rxd_in(struct uart_port *port)
666{ 666{
667 if (port->mapbase == 0xffe00000) 667 if (port->mapbase == 0xffe00000)
668 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 668 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
669 if (port->mapbase == 0xffe08000) 669 if (port->mapbase == 0xffe08000)
670 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 670 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
671 if (port->mapbase == 0xffe10000) 671 if (port->mapbase == 0xffe10000)
672 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF/IRDA */ 672 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF/IRDA */
673 673
674 return 1; 674 return 1;
675} 675}
@@ -677,20 +677,20 @@ static inline int sci_rxd_in(struct uart_port *port)
677static inline int sci_rxd_in(struct uart_port *port) 677static inline int sci_rxd_in(struct uart_port *port)
678{ 678{
679 if (port->mapbase == 0xff923000) 679 if (port->mapbase == 0xff923000)
680 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 680 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
681 if (port->mapbase == 0xff924000) 681 if (port->mapbase == 0xff924000)
682 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 682 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
683 if (port->mapbase == 0xff925000) 683 if (port->mapbase == 0xff925000)
684 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 684 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
685 return 1; 685 return 1;
686} 686}
687#elif defined(CONFIG_CPU_SUBTYPE_SH7780) 687#elif defined(CONFIG_CPU_SUBTYPE_SH7780)
688static inline int sci_rxd_in(struct uart_port *port) 688static inline int sci_rxd_in(struct uart_port *port)
689{ 689{
690 if (port->mapbase == 0xffe00000) 690 if (port->mapbase == 0xffe00000)
691 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 691 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
692 if (port->mapbase == 0xffe10000) 692 if (port->mapbase == 0xffe10000)
693 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 693 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
694 return 1; 694 return 1;
695} 695}
696#elif defined(CONFIG_CPU_SUBTYPE_SH7785) || \ 696#elif defined(CONFIG_CPU_SUBTYPE_SH7785) || \
@@ -698,17 +698,17 @@ static inline int sci_rxd_in(struct uart_port *port)
698static inline int sci_rxd_in(struct uart_port *port) 698static inline int sci_rxd_in(struct uart_port *port)
699{ 699{
700 if (port->mapbase == 0xffea0000) 700 if (port->mapbase == 0xffea0000)
701 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 701 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
702 if (port->mapbase == 0xffeb0000) 702 if (port->mapbase == 0xffeb0000)
703 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 703 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
704 if (port->mapbase == 0xffec0000) 704 if (port->mapbase == 0xffec0000)
705 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 705 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
706 if (port->mapbase == 0xffed0000) 706 if (port->mapbase == 0xffed0000)
707 return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */ 707 return __raw_readw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */
708 if (port->mapbase == 0xffee0000) 708 if (port->mapbase == 0xffee0000)
709 return ctrl_inw(SCSPTR4) & 0x0001 ? 1 : 0; /* SCIF */ 709 return __raw_readw(SCSPTR4) & 0x0001 ? 1 : 0; /* SCIF */
710 if (port->mapbase == 0xffef0000) 710 if (port->mapbase == 0xffef0000)
711 return ctrl_inw(SCSPTR5) & 0x0001 ? 1 : 0; /* SCIF */ 711 return __raw_readw(SCSPTR5) & 0x0001 ? 1 : 0; /* SCIF */
712 return 1; 712 return 1;
713} 713}
714#elif defined(CONFIG_CPU_SUBTYPE_SH7201) || \ 714#elif defined(CONFIG_CPU_SUBTYPE_SH7201) || \
@@ -718,22 +718,22 @@ static inline int sci_rxd_in(struct uart_port *port)
718static inline int sci_rxd_in(struct uart_port *port) 718static inline int sci_rxd_in(struct uart_port *port)
719{ 719{
720 if (port->mapbase == 0xfffe8000) 720 if (port->mapbase == 0xfffe8000)
721 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 721 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
722 if (port->mapbase == 0xfffe8800) 722 if (port->mapbase == 0xfffe8800)
723 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 723 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
724 if (port->mapbase == 0xfffe9000) 724 if (port->mapbase == 0xfffe9000)
725 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 725 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
726 if (port->mapbase == 0xfffe9800) 726 if (port->mapbase == 0xfffe9800)
727 return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */ 727 return __raw_readw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */
728#if defined(CONFIG_CPU_SUBTYPE_SH7201) 728#if defined(CONFIG_CPU_SUBTYPE_SH7201)
729 if (port->mapbase == 0xfffeA000) 729 if (port->mapbase == 0xfffeA000)
730 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 730 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
731 if (port->mapbase == 0xfffeA800) 731 if (port->mapbase == 0xfffeA800)
732 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 732 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
733 if (port->mapbase == 0xfffeB000) 733 if (port->mapbase == 0xfffeB000)
734 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 734 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
735 if (port->mapbase == 0xfffeB800) 735 if (port->mapbase == 0xfffeB800)
736 return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */ 736 return __raw_readw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */
737#endif 737#endif
738 return 1; 738 return 1;
739} 739}
@@ -741,24 +741,24 @@ static inline int sci_rxd_in(struct uart_port *port)
741static inline int sci_rxd_in(struct uart_port *port) 741static inline int sci_rxd_in(struct uart_port *port)
742{ 742{
743 if (port->mapbase == 0xf8400000) 743 if (port->mapbase == 0xf8400000)
744 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 744 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
745 if (port->mapbase == 0xf8410000) 745 if (port->mapbase == 0xf8410000)
746 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 746 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
747 if (port->mapbase == 0xf8420000) 747 if (port->mapbase == 0xf8420000)
748 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 748 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
749 return 1; 749 return 1;
750} 750}
751#elif defined(CONFIG_CPU_SUBTYPE_SHX3) 751#elif defined(CONFIG_CPU_SUBTYPE_SHX3)
752static inline int sci_rxd_in(struct uart_port *port) 752static inline int sci_rxd_in(struct uart_port *port)
753{ 753{
754 if (port->mapbase == 0xffc30000) 754 if (port->mapbase == 0xffc30000)
755 return ctrl_inw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */ 755 return __raw_readw(SCSPTR0) & 0x0001 ? 1 : 0; /* SCIF */
756 if (port->mapbase == 0xffc40000) 756 if (port->mapbase == 0xffc40000)
757 return ctrl_inw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */ 757 return __raw_readw(SCSPTR1) & 0x0001 ? 1 : 0; /* SCIF */
758 if (port->mapbase == 0xffc50000) 758 if (port->mapbase == 0xffc50000)
759 return ctrl_inw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */ 759 return __raw_readw(SCSPTR2) & 0x0001 ? 1 : 0; /* SCIF */
760 if (port->mapbase == 0xffc60000) 760 if (port->mapbase == 0xffc60000)
761 return ctrl_inw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */ 761 return __raw_readw(SCSPTR3) & 0x0001 ? 1 : 0; /* SCIF */
762 return 1; 762 return 1;
763} 763}
764#endif 764#endif
diff --git a/drivers/video/cyber2000fb.c b/drivers/video/cyber2000fb.c
index da7c01b39be2..3a561df2e8a2 100644
--- a/drivers/video/cyber2000fb.c
+++ b/drivers/video/cyber2000fb.c
@@ -1573,15 +1573,15 @@ cyberpro_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
1573 if (err) 1573 if (err)
1574 return err; 1574 return err;
1575 1575
1576 err = pci_request_regions(dev, name);
1577 if (err)
1578 return err;
1579
1580 err = -ENOMEM; 1576 err = -ENOMEM;
1581 cfb = cyberpro_alloc_fb_info(id->driver_data, name); 1577 cfb = cyberpro_alloc_fb_info(id->driver_data, name);
1582 if (!cfb) 1578 if (!cfb)
1583 goto failed_release; 1579 goto failed_release;
1584 1580
1581 err = pci_request_regions(dev, cfb->fb.fix.id);
1582 if (err)
1583 goto failed_regions;
1584
1585 cfb->dev = dev; 1585 cfb->dev = dev;
1586 cfb->region = pci_ioremap_bar(dev, 0); 1586 cfb->region = pci_ioremap_bar(dev, 0);
1587 if (!cfb->region) 1587 if (!cfb->region)
@@ -1633,10 +1633,10 @@ cyberpro_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
1633failed: 1633failed:
1634 iounmap(cfb->region); 1634 iounmap(cfb->region);
1635failed_ioremap: 1635failed_ioremap:
1636 pci_release_regions(dev);
1637failed_regions:
1636 cyberpro_free_fb_info(cfb); 1638 cyberpro_free_fb_info(cfb);
1637failed_release: 1639failed_release:
1638 pci_release_regions(dev);
1639
1640 return err; 1640 return err;
1641} 1641}
1642 1642
diff --git a/drivers/watchdog/adx_wdt.c b/drivers/watchdog/adx_wdt.c
index 9c6594473d3b..9d7d155364f8 100644
--- a/drivers/watchdog/adx_wdt.c
+++ b/drivers/watchdog/adx_wdt.c
@@ -242,14 +242,14 @@ static int __devinit adx_wdt_probe(struct platform_device *pdev)
242 } 242 }
243 243
244 res = devm_request_mem_region(&pdev->dev, res->start, 244 res = devm_request_mem_region(&pdev->dev, res->start,
245 res->end - res->start + 1, res->name); 245 resource_size(res), res->name);
246 if (!res) { 246 if (!res) {
247 dev_err(&pdev->dev, "cannot request I/O memory region\n"); 247 dev_err(&pdev->dev, "cannot request I/O memory region\n");
248 return -ENXIO; 248 return -ENXIO;
249 } 249 }
250 250
251 wdt->base = devm_ioremap_nocache(&pdev->dev, res->start, 251 wdt->base = devm_ioremap_nocache(&pdev->dev, res->start,
252 res->end - res->start + 1); 252 resource_size(res));
253 if (!wdt->base) { 253 if (!wdt->base) {
254 dev_err(&pdev->dev, "cannot remap I/O memory region\n"); 254 dev_err(&pdev->dev, "cannot remap I/O memory region\n");
255 return -ENXIO; 255 return -ENXIO;
diff --git a/drivers/watchdog/at32ap700x_wdt.c b/drivers/watchdog/at32ap700x_wdt.c
index e8ae638e5804..037847923dcb 100644
--- a/drivers/watchdog/at32ap700x_wdt.c
+++ b/drivers/watchdog/at32ap700x_wdt.c
@@ -326,7 +326,7 @@ static int __init at32_wdt_probe(struct platform_device *pdev)
326 return -ENOMEM; 326 return -ENOMEM;
327 } 327 }
328 328
329 wdt->regs = ioremap(regs->start, regs->end - regs->start + 1); 329 wdt->regs = ioremap(regs->start, resource_size(regs));
330 if (!wdt->regs) { 330 if (!wdt->regs) {
331 ret = -ENOMEM; 331 ret = -ENOMEM;
332 dev_dbg(&pdev->dev, "could not map I/O memory\n"); 332 dev_dbg(&pdev->dev, "could not map I/O memory\n");
diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c
index 9d7520fa9e9c..887136de1857 100644
--- a/drivers/watchdog/davinci_wdt.c
+++ b/drivers/watchdog/davinci_wdt.c
@@ -221,7 +221,7 @@ static int __devinit davinci_wdt_probe(struct platform_device *pdev)
221 return -ENOENT; 221 return -ENOENT;
222 } 222 }
223 223
224 size = res->end - res->start + 1; 224 size = resource_size(res);
225 wdt_mem = request_mem_region(res->start, size, pdev->name); 225 wdt_mem = request_mem_region(res->start, size, pdev->name);
226 226
227 if (wdt_mem == NULL) { 227 if (wdt_mem == NULL) {
diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c
index e44fbb31bc6f..c8a3bec26830 100644
--- a/drivers/watchdog/iTCO_wdt.c
+++ b/drivers/watchdog/iTCO_wdt.c
@@ -30,6 +30,7 @@
30 * document number 316972-004, 316973-012: 82801I (ICH9) 30 * document number 316972-004, 316973-012: 82801I (ICH9)
31 * document number 319973-002, 319974-002: 82801J (ICH10) 31 * document number 319973-002, 319974-002: 82801J (ICH10)
32 * document number 322169-001, 322170-001: 5 Series, 3400 Series (PCH) 32 * document number 322169-001, 322170-001: 5 Series, 3400 Series (PCH)
33 * document number 320066-003, 320257-008: EP80597 (IICH)
33 */ 34 */
34 35
35/* 36/*
@@ -100,6 +101,7 @@ enum iTCO_chipsets {
100 TCO_PCH, /* PCH Desktop Full Featured */ 101 TCO_PCH, /* PCH Desktop Full Featured */
101 TCO_PCHM, /* PCH Mobile Full Featured */ 102 TCO_PCHM, /* PCH Mobile Full Featured */
102 TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */ 103 TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */
104 TCO_EP80579, /* EP80579 */
103}; 105};
104 106
105static struct { 107static struct {
@@ -143,6 +145,7 @@ static struct {
143 {"PCH Desktop Full Featured", 2}, 145 {"PCH Desktop Full Featured", 2},
144 {"PCH Mobile Full Featured", 2}, 146 {"PCH Mobile Full Featured", 2},
145 {"PCH Mobile SFF Full Featured", 2}, 147 {"PCH Mobile SFF Full Featured", 2},
148 {"EP80579", 2},
146 {NULL, 0} 149 {NULL, 0}
147}; 150};
148 151
@@ -214,6 +217,7 @@ static struct pci_device_id iTCO_wdt_pci_tbl[] = {
214 { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)}, 217 { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)},
215 { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)}, 218 { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)},
216 { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)}, 219 { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)},
220 { ITCO_PCI_DEVICE(0x5031, TCO_EP80579)},
217 { 0, }, /* End of list */ 221 { 0, }, /* End of list */
218}; 222};
219MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); 223MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl);
diff --git a/drivers/watchdog/mpcore_wdt.c b/drivers/watchdog/mpcore_wdt.c
index 83fa34b214b4..a2dc07c2ed49 100644
--- a/drivers/watchdog/mpcore_wdt.c
+++ b/drivers/watchdog/mpcore_wdt.c
@@ -350,7 +350,7 @@ static int __devinit mpcore_wdt_probe(struct platform_device *dev)
350 ret = -ENXIO; 350 ret = -ENXIO;
351 goto err_free; 351 goto err_free;
352 } 352 }
353 wdt->base = ioremap(res->start, res->end - res->start + 1); 353 wdt->base = ioremap(res->start, resource_size(res));
354 if (!wdt->base) { 354 if (!wdt->base) {
355 ret = -ENOMEM; 355 ret = -ENOMEM;
356 goto err_free; 356 goto err_free;
diff --git a/drivers/watchdog/mv64x60_wdt.c b/drivers/watchdog/mv64x60_wdt.c
index acf589dc057c..a51dbe4c43da 100644
--- a/drivers/watchdog/mv64x60_wdt.c
+++ b/drivers/watchdog/mv64x60_wdt.c
@@ -275,7 +275,7 @@ static int __devinit mv64x60_wdt_probe(struct platform_device *dev)
275 if (!r) 275 if (!r)
276 return -ENODEV; 276 return -ENODEV;
277 277
278 mv64x60_wdt_regs = ioremap(r->start, r->end - r->start + 1); 278 mv64x60_wdt_regs = ioremap(r->start, resource_size(r));
279 if (mv64x60_wdt_regs == NULL) 279 if (mv64x60_wdt_regs == NULL)
280 return -ENOMEM; 280 return -ENOMEM;
281 281
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index 429ea99eaee5..c6aaf2845741 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -277,8 +277,7 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev)
277 goto err_busy; 277 goto err_busy;
278 } 278 }
279 279
280 mem = request_mem_region(res->start, res->end - res->start + 1, 280 mem = request_mem_region(res->start, resource_size(res), pdev->name);
281 pdev->name);
282 if (!mem) { 281 if (!mem) {
283 ret = -EBUSY; 282 ret = -EBUSY;
284 goto err_busy; 283 goto err_busy;
@@ -306,7 +305,7 @@ static int __devinit omap_wdt_probe(struct platform_device *pdev)
306 goto err_clk; 305 goto err_clk;
307 } 306 }
308 307
309 wdev->base = ioremap(res->start, res->end - res->start + 1); 308 wdev->base = ioremap(res->start, resource_size(res));
310 if (!wdev->base) { 309 if (!wdev->base) {
311 ret = -ENOMEM; 310 ret = -ENOMEM;
312 goto err_ioremap; 311 goto err_ioremap;
@@ -358,7 +357,7 @@ err_clk:
358 kfree(wdev); 357 kfree(wdev);
359 358
360err_kzalloc: 359err_kzalloc:
361 release_mem_region(res->start, res->end - res->start + 1); 360 release_mem_region(res->start, resource_size(res));
362 361
363err_busy: 362err_busy:
364err_get_resource: 363err_get_resource:
@@ -383,7 +382,7 @@ static int __devexit omap_wdt_remove(struct platform_device *pdev)
383 return -ENOENT; 382 return -ENOENT;
384 383
385 misc_deregister(&(wdev->omap_wdt_miscdev)); 384 misc_deregister(&(wdev->omap_wdt_miscdev));
386 release_mem_region(res->start, res->end - res->start + 1); 385 release_mem_region(res->start, resource_size(res));
387 platform_set_drvdata(pdev, NULL); 386 platform_set_drvdata(pdev, NULL);
388 387
389 clk_put(wdev->ick); 388 clk_put(wdev->ick);
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index 4d227b152001..430a5848a9a5 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -264,7 +264,7 @@ static int __devinit pnx4008_wdt_probe(struct platform_device *pdev)
264 return -ENOENT; 264 return -ENOENT;
265 } 265 }
266 266
267 size = res->end - res->start + 1; 267 size = resource_size(res);
268 wdt_mem = request_mem_region(res->start, size, pdev->name); 268 wdt_mem = request_mem_region(res->start, size, pdev->name);
269 269
270 if (wdt_mem == NULL) { 270 if (wdt_mem == NULL) {
diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
index 85b93e15d011..8760a26ab2a3 100644
--- a/drivers/watchdog/s3c2410_wdt.c
+++ b/drivers/watchdog/s3c2410_wdt.c
@@ -421,7 +421,7 @@ static int __devinit s3c2410wdt_probe(struct platform_device *pdev)
421 return -ENOENT; 421 return -ENOENT;
422 } 422 }
423 423
424 size = (res->end - res->start) + 1; 424 size = resource_size(res);
425 wdt_mem = request_mem_region(res->start, size, pdev->name); 425 wdt_mem = request_mem_region(res->start, size, pdev->name);
426 if (wdt_mem == NULL) { 426 if (wdt_mem == NULL) {
427 dev_err(dev, "failed to get memory region\n"); 427 dev_err(dev, "failed to get memory region\n");
diff --git a/drivers/watchdog/txx9wdt.c b/drivers/watchdog/txx9wdt.c
index 6adab77fbbb0..d635566e9307 100644
--- a/drivers/watchdog/txx9wdt.c
+++ b/drivers/watchdog/txx9wdt.c
@@ -214,12 +214,10 @@ static int __init txx9wdt_probe(struct platform_device *dev)
214 res = platform_get_resource(dev, IORESOURCE_MEM, 0); 214 res = platform_get_resource(dev, IORESOURCE_MEM, 0);
215 if (!res) 215 if (!res)
216 goto exit_busy; 216 goto exit_busy;
217 if (!devm_request_mem_region(&dev->dev, 217 if (!devm_request_mem_region(&dev->dev, res->start, resource_size(res),
218 res->start, res->end - res->start + 1,
219 "txx9wdt")) 218 "txx9wdt"))
220 goto exit_busy; 219 goto exit_busy;
221 txx9wdt_reg = devm_ioremap(&dev->dev, 220 txx9wdt_reg = devm_ioremap(&dev->dev, res->start, resource_size(res));
222 res->start, res->end - res->start + 1);
223 if (!txx9wdt_reg) 221 if (!txx9wdt_reg)
224 goto exit_busy; 222 goto exit_busy;
225 223
diff --git a/fs/ocfs2/Kconfig b/fs/ocfs2/Kconfig
index 701b7a3a872e..0d840669698e 100644
--- a/fs/ocfs2/Kconfig
+++ b/fs/ocfs2/Kconfig
@@ -6,6 +6,7 @@ config OCFS2_FS
6 select CRC32 6 select CRC32
7 select QUOTA 7 select QUOTA
8 select QUOTA_TREE 8 select QUOTA_TREE
9 select FS_POSIX_ACL
9 help 10 help
10 OCFS2 is a general purpose extent based shared disk cluster file 11 OCFS2 is a general purpose extent based shared disk cluster file
11 system with many similarities to ext3. It supports 64 bit inode 12 system with many similarities to ext3. It supports 64 bit inode
@@ -74,12 +75,3 @@ config OCFS2_DEBUG_FS
74 This option will enable expensive consistency checks. Enable 75 This option will enable expensive consistency checks. Enable
75 this option for debugging only as it is likely to decrease 76 this option for debugging only as it is likely to decrease
76 performance of the filesystem. 77 performance of the filesystem.
77
78config OCFS2_FS_POSIX_ACL
79 bool "OCFS2 POSIX Access Control Lists"
80 depends on OCFS2_FS
81 select FS_POSIX_ACL
82 default n
83 help
84 Posix Access Control Lists (ACLs) support permissions for users and
85 groups beyond the owner/group/world scheme.
diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
index 31f25ce32c97..600d2d2ade11 100644
--- a/fs/ocfs2/Makefile
+++ b/fs/ocfs2/Makefile
@@ -39,11 +39,8 @@ ocfs2-objs := \
39 ver.o \ 39 ver.o \
40 quota_local.o \ 40 quota_local.o \
41 quota_global.o \ 41 quota_global.o \
42 xattr.o 42 xattr.o \
43 43 acl.o
44ifeq ($(CONFIG_OCFS2_FS_POSIX_ACL),y)
45ocfs2-objs += acl.o
46endif
47 44
48ocfs2_stackglue-objs := stackglue.o 45ocfs2_stackglue-objs := stackglue.o
49ocfs2_stack_o2cb-objs := stack_o2cb.o 46ocfs2_stack_o2cb-objs := stack_o2cb.o
diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c
index e3e47415d851..0501974bedd0 100644
--- a/fs/ocfs2/acl.c
+++ b/fs/ocfs2/acl.c
@@ -98,15 +98,11 @@ static struct posix_acl *ocfs2_get_acl_nolock(struct inode *inode,
98 int type, 98 int type,
99 struct buffer_head *di_bh) 99 struct buffer_head *di_bh)
100{ 100{
101 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
102 int name_index; 101 int name_index;
103 char *value = NULL; 102 char *value = NULL;
104 struct posix_acl *acl; 103 struct posix_acl *acl;
105 int retval; 104 int retval;
106 105
107 if (!(osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL))
108 return NULL;
109
110 switch (type) { 106 switch (type) {
111 case ACL_TYPE_ACCESS: 107 case ACL_TYPE_ACCESS:
112 name_index = OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS; 108 name_index = OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS;
diff --git a/fs/ocfs2/acl.h b/fs/ocfs2/acl.h
index 8f6389ed4da5..5c5d31f05853 100644
--- a/fs/ocfs2/acl.h
+++ b/fs/ocfs2/acl.h
@@ -26,8 +26,6 @@ struct ocfs2_acl_entry {
26 __le32 e_id; 26 __le32 e_id;
27}; 27};
28 28
29#ifdef CONFIG_OCFS2_FS_POSIX_ACL
30
31extern int ocfs2_check_acl(struct inode *, int); 29extern int ocfs2_check_acl(struct inode *, int);
32extern int ocfs2_acl_chmod(struct inode *); 30extern int ocfs2_acl_chmod(struct inode *);
33extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *, 31extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *,
@@ -35,24 +33,4 @@ extern int ocfs2_init_acl(handle_t *, struct inode *, struct inode *,
35 struct ocfs2_alloc_context *, 33 struct ocfs2_alloc_context *,
36 struct ocfs2_alloc_context *); 34 struct ocfs2_alloc_context *);
37 35
38#else /* CONFIG_OCFS2_FS_POSIX_ACL*/
39
40#define ocfs2_check_acl NULL
41static inline int ocfs2_acl_chmod(struct inode *inode)
42{
43 return 0;
44}
45static inline int ocfs2_init_acl(handle_t *handle,
46 struct inode *inode,
47 struct inode *dir,
48 struct buffer_head *di_bh,
49 struct buffer_head *dir_bh,
50 struct ocfs2_alloc_context *meta_ac,
51 struct ocfs2_alloc_context *data_ac)
52{
53 return 0;
54}
55
56#endif /* CONFIG_OCFS2_FS_POSIX_ACL*/
57
58#endif /* OCFS2_ACL_H */ 36#endif /* OCFS2_ACL_H */
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index c452d116b892..eda5b8bcddd5 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -176,7 +176,8 @@ static void o2hb_write_timeout(struct work_struct *work)
176 176
177static void o2hb_arm_write_timeout(struct o2hb_region *reg) 177static void o2hb_arm_write_timeout(struct o2hb_region *reg)
178{ 178{
179 mlog(0, "Queue write timeout for %u ms\n", O2HB_MAX_WRITE_TIMEOUT_MS); 179 mlog(ML_HEARTBEAT, "Queue write timeout for %u ms\n",
180 O2HB_MAX_WRITE_TIMEOUT_MS);
180 181
181 cancel_delayed_work(&reg->hr_write_timeout_work); 182 cancel_delayed_work(&reg->hr_write_timeout_work);
182 reg->hr_last_timeout_start = jiffies; 183 reg->hr_last_timeout_start = jiffies;
@@ -874,7 +875,8 @@ static int o2hb_thread(void *data)
874 do_gettimeofday(&after_hb); 875 do_gettimeofday(&after_hb);
875 elapsed_msec = o2hb_elapsed_msecs(&before_hb, &after_hb); 876 elapsed_msec = o2hb_elapsed_msecs(&before_hb, &after_hb);
876 877
877 mlog(0, "start = %lu.%lu, end = %lu.%lu, msec = %u\n", 878 mlog(ML_HEARTBEAT,
879 "start = %lu.%lu, end = %lu.%lu, msec = %u\n",
878 before_hb.tv_sec, (unsigned long) before_hb.tv_usec, 880 before_hb.tv_sec, (unsigned long) before_hb.tv_usec,
879 after_hb.tv_sec, (unsigned long) after_hb.tv_usec, 881 after_hb.tv_sec, (unsigned long) after_hb.tv_usec,
880 elapsed_msec); 882 elapsed_msec);
diff --git a/fs/ocfs2/cluster/nodemanager.c b/fs/ocfs2/cluster/nodemanager.c
index 7ee6188bc79a..c81142e3ef84 100644
--- a/fs/ocfs2/cluster/nodemanager.c
+++ b/fs/ocfs2/cluster/nodemanager.c
@@ -35,6 +35,10 @@
35 * cluster references throughout where nodes are looked up */ 35 * cluster references throughout where nodes are looked up */
36struct o2nm_cluster *o2nm_single_cluster = NULL; 36struct o2nm_cluster *o2nm_single_cluster = NULL;
37 37
38char *o2nm_fence_method_desc[O2NM_FENCE_METHODS] = {
39 "reset", /* O2NM_FENCE_RESET */
40 "panic", /* O2NM_FENCE_PANIC */
41};
38 42
39struct o2nm_node *o2nm_get_node_by_num(u8 node_num) 43struct o2nm_node *o2nm_get_node_by_num(u8 node_num)
40{ 44{
@@ -579,6 +583,43 @@ static ssize_t o2nm_cluster_attr_reconnect_delay_ms_write(
579 return o2nm_cluster_attr_write(page, count, 583 return o2nm_cluster_attr_write(page, count,
580 &cluster->cl_reconnect_delay_ms); 584 &cluster->cl_reconnect_delay_ms);
581} 585}
586
587static ssize_t o2nm_cluster_attr_fence_method_read(
588 struct o2nm_cluster *cluster, char *page)
589{
590 ssize_t ret = 0;
591
592 if (cluster)
593 ret = sprintf(page, "%s\n",
594 o2nm_fence_method_desc[cluster->cl_fence_method]);
595 return ret;
596}
597
598static ssize_t o2nm_cluster_attr_fence_method_write(
599 struct o2nm_cluster *cluster, const char *page, size_t count)
600{
601 unsigned int i;
602
603 if (page[count - 1] != '\n')
604 goto bail;
605
606 for (i = 0; i < O2NM_FENCE_METHODS; ++i) {
607 if (count != strlen(o2nm_fence_method_desc[i]) + 1)
608 continue;
609 if (strncasecmp(page, o2nm_fence_method_desc[i], count - 1))
610 continue;
611 if (cluster->cl_fence_method != i) {
612 printk(KERN_INFO "ocfs2: Changing fence method to %s\n",
613 o2nm_fence_method_desc[i]);
614 cluster->cl_fence_method = i;
615 }
616 return count;
617 }
618
619bail:
620 return -EINVAL;
621}
622
582static struct o2nm_cluster_attribute o2nm_cluster_attr_idle_timeout_ms = { 623static struct o2nm_cluster_attribute o2nm_cluster_attr_idle_timeout_ms = {
583 .attr = { .ca_owner = THIS_MODULE, 624 .attr = { .ca_owner = THIS_MODULE,
584 .ca_name = "idle_timeout_ms", 625 .ca_name = "idle_timeout_ms",
@@ -603,10 +644,19 @@ static struct o2nm_cluster_attribute o2nm_cluster_attr_reconnect_delay_ms = {
603 .store = o2nm_cluster_attr_reconnect_delay_ms_write, 644 .store = o2nm_cluster_attr_reconnect_delay_ms_write,
604}; 645};
605 646
647static struct o2nm_cluster_attribute o2nm_cluster_attr_fence_method = {
648 .attr = { .ca_owner = THIS_MODULE,
649 .ca_name = "fence_method",
650 .ca_mode = S_IRUGO | S_IWUSR },
651 .show = o2nm_cluster_attr_fence_method_read,
652 .store = o2nm_cluster_attr_fence_method_write,
653};
654
606static struct configfs_attribute *o2nm_cluster_attrs[] = { 655static struct configfs_attribute *o2nm_cluster_attrs[] = {
607 &o2nm_cluster_attr_idle_timeout_ms.attr, 656 &o2nm_cluster_attr_idle_timeout_ms.attr,
608 &o2nm_cluster_attr_keepalive_delay_ms.attr, 657 &o2nm_cluster_attr_keepalive_delay_ms.attr,
609 &o2nm_cluster_attr_reconnect_delay_ms.attr, 658 &o2nm_cluster_attr_reconnect_delay_ms.attr,
659 &o2nm_cluster_attr_fence_method.attr,
610 NULL, 660 NULL,
611}; 661};
612static ssize_t o2nm_cluster_show(struct config_item *item, 662static ssize_t o2nm_cluster_show(struct config_item *item,
@@ -778,6 +828,7 @@ static struct config_group *o2nm_cluster_group_make_group(struct config_group *g
778 cluster->cl_reconnect_delay_ms = O2NET_RECONNECT_DELAY_MS_DEFAULT; 828 cluster->cl_reconnect_delay_ms = O2NET_RECONNECT_DELAY_MS_DEFAULT;
779 cluster->cl_idle_timeout_ms = O2NET_IDLE_TIMEOUT_MS_DEFAULT; 829 cluster->cl_idle_timeout_ms = O2NET_IDLE_TIMEOUT_MS_DEFAULT;
780 cluster->cl_keepalive_delay_ms = O2NET_KEEPALIVE_DELAY_MS_DEFAULT; 830 cluster->cl_keepalive_delay_ms = O2NET_KEEPALIVE_DELAY_MS_DEFAULT;
831 cluster->cl_fence_method = O2NM_FENCE_RESET;
781 832
782 ret = &cluster->cl_group; 833 ret = &cluster->cl_group;
783 o2nm_single_cluster = cluster; 834 o2nm_single_cluster = cluster;
diff --git a/fs/ocfs2/cluster/nodemanager.h b/fs/ocfs2/cluster/nodemanager.h
index c992ea0da4ad..09ea2d388bbb 100644
--- a/fs/ocfs2/cluster/nodemanager.h
+++ b/fs/ocfs2/cluster/nodemanager.h
@@ -33,6 +33,12 @@
33#include <linux/configfs.h> 33#include <linux/configfs.h>
34#include <linux/rbtree.h> 34#include <linux/rbtree.h>
35 35
36enum o2nm_fence_method {
37 O2NM_FENCE_RESET = 0,
38 O2NM_FENCE_PANIC,
39 O2NM_FENCE_METHODS, /* Number of fence methods */
40};
41
36struct o2nm_node { 42struct o2nm_node {
37 spinlock_t nd_lock; 43 spinlock_t nd_lock;
38 struct config_item nd_item; 44 struct config_item nd_item;
@@ -58,6 +64,7 @@ struct o2nm_cluster {
58 unsigned int cl_idle_timeout_ms; 64 unsigned int cl_idle_timeout_ms;
59 unsigned int cl_keepalive_delay_ms; 65 unsigned int cl_keepalive_delay_ms;
60 unsigned int cl_reconnect_delay_ms; 66 unsigned int cl_reconnect_delay_ms;
67 enum o2nm_fence_method cl_fence_method;
61 68
62 /* this bitmap is part of a hack for disk bitmap.. will go eventually. - zab */ 69 /* this bitmap is part of a hack for disk bitmap.. will go eventually. - zab */
63 unsigned long cl_nodes_bitmap[BITS_TO_LONGS(O2NM_MAX_NODES)]; 70 unsigned long cl_nodes_bitmap[BITS_TO_LONGS(O2NM_MAX_NODES)];
diff --git a/fs/ocfs2/cluster/quorum.c b/fs/ocfs2/cluster/quorum.c
index bbacf7da48a4..639024033fce 100644
--- a/fs/ocfs2/cluster/quorum.c
+++ b/fs/ocfs2/cluster/quorum.c
@@ -74,8 +74,20 @@ static void o2quo_fence_self(void)
74 * threads can still schedule, etc, etc */ 74 * threads can still schedule, etc, etc */
75 o2hb_stop_all_regions(); 75 o2hb_stop_all_regions();
76 76
77 printk("ocfs2 is very sorry to be fencing this system by restarting\n"); 77 switch (o2nm_single_cluster->cl_fence_method) {
78 emergency_restart(); 78 case O2NM_FENCE_PANIC:
79 panic("*** ocfs2 is very sorry to be fencing this system by "
80 "panicing ***\n");
81 break;
82 default:
83 WARN_ON(o2nm_single_cluster->cl_fence_method >=
84 O2NM_FENCE_METHODS);
85 case O2NM_FENCE_RESET:
86 printk(KERN_ERR "*** ocfs2 is very sorry to be fencing this "
87 "system by restarting ***\n");
88 emergency_restart();
89 break;
90 };
79} 91}
80 92
81/* Indicate that a timeout occured on a hearbeat region write. The 93/* Indicate that a timeout occured on a hearbeat region write. The
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
index d9fa3d22e17c..2f9e4e19a4f2 100644
--- a/fs/ocfs2/dlm/dlmrecovery.c
+++ b/fs/ocfs2/dlm/dlmrecovery.c
@@ -2589,6 +2589,14 @@ retry:
2589 "begin reco msg (%d)\n", dlm->name, nodenum, ret); 2589 "begin reco msg (%d)\n", dlm->name, nodenum, ret);
2590 ret = 0; 2590 ret = 0;
2591 } 2591 }
2592 if (ret == -EAGAIN) {
2593 mlog(0, "%s: trying to start recovery of node "
2594 "%u, but node %u is waiting for last recovery "
2595 "to complete, backoff for a bit\n", dlm->name,
2596 dead_node, nodenum);
2597 msleep(100);
2598 goto retry;
2599 }
2592 if (ret < 0) { 2600 if (ret < 0) {
2593 struct dlm_lock_resource *res; 2601 struct dlm_lock_resource *res;
2594 /* this is now a serious problem, possibly ENOMEM 2602 /* this is now a serious problem, possibly ENOMEM
@@ -2608,14 +2616,6 @@ retry:
2608 * another ENOMEM */ 2616 * another ENOMEM */
2609 msleep(100); 2617 msleep(100);
2610 goto retry; 2618 goto retry;
2611 } else if (ret == EAGAIN) {
2612 mlog(0, "%s: trying to start recovery of node "
2613 "%u, but node %u is waiting for last recovery "
2614 "to complete, backoff for a bit\n", dlm->name,
2615 dead_node, nodenum);
2616 /* TODO Look into replacing msleep with cond_resched() */
2617 msleep(100);
2618 goto retry;
2619 } 2619 }
2620 } 2620 }
2621 2621
@@ -2639,7 +2639,7 @@ int dlm_begin_reco_handler(struct o2net_msg *msg, u32 len, void *data,
2639 dlm->name, br->node_idx, br->dead_node, 2639 dlm->name, br->node_idx, br->dead_node,
2640 dlm->reco.dead_node, dlm->reco.new_master); 2640 dlm->reco.dead_node, dlm->reco.new_master);
2641 spin_unlock(&dlm->spinlock); 2641 spin_unlock(&dlm->spinlock);
2642 return EAGAIN; 2642 return -EAGAIN;
2643 } 2643 }
2644 spin_unlock(&dlm->spinlock); 2644 spin_unlock(&dlm->spinlock);
2645 2645
diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
index 843db64e9d4a..d35a27f4523e 100644
--- a/fs/ocfs2/extent_map.c
+++ b/fs/ocfs2/extent_map.c
@@ -37,6 +37,7 @@
37#include "extent_map.h" 37#include "extent_map.h"
38#include "inode.h" 38#include "inode.h"
39#include "super.h" 39#include "super.h"
40#include "symlink.h"
40 41
41#include "buffer_head_io.h" 42#include "buffer_head_io.h"
42 43
@@ -703,6 +704,12 @@ out:
703 return ret; 704 return ret;
704} 705}
705 706
707/*
708 * The ocfs2_fiemap_inline() may be a little bit misleading, since
709 * it not only handles the fiemap for inlined files, but also deals
710 * with the fast symlink, cause they have no difference for extent
711 * mapping per se.
712 */
706static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh, 713static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh,
707 struct fiemap_extent_info *fieinfo, 714 struct fiemap_extent_info *fieinfo,
708 u64 map_start) 715 u64 map_start)
@@ -715,11 +722,18 @@ static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh,
715 struct ocfs2_inode_info *oi = OCFS2_I(inode); 722 struct ocfs2_inode_info *oi = OCFS2_I(inode);
716 723
717 di = (struct ocfs2_dinode *)di_bh->b_data; 724 di = (struct ocfs2_dinode *)di_bh->b_data;
718 id_count = le16_to_cpu(di->id2.i_data.id_count); 725 if (ocfs2_inode_is_fast_symlink(inode))
726 id_count = ocfs2_fast_symlink_chars(inode->i_sb);
727 else
728 id_count = le16_to_cpu(di->id2.i_data.id_count);
719 729
720 if (map_start < id_count) { 730 if (map_start < id_count) {
721 phys = oi->ip_blkno << inode->i_sb->s_blocksize_bits; 731 phys = oi->ip_blkno << inode->i_sb->s_blocksize_bits;
722 phys += offsetof(struct ocfs2_dinode, id2.i_data.id_data); 732 if (ocfs2_inode_is_fast_symlink(inode))
733 phys += offsetof(struct ocfs2_dinode, id2.i_symlink);
734 else
735 phys += offsetof(struct ocfs2_dinode,
736 id2.i_data.id_data);
723 737
724 ret = fiemap_fill_next_extent(fieinfo, 0, phys, id_count, 738 ret = fiemap_fill_next_extent(fieinfo, 0, phys, id_count,
725 flags); 739 flags);
@@ -756,9 +770,10 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
756 down_read(&OCFS2_I(inode)->ip_alloc_sem); 770 down_read(&OCFS2_I(inode)->ip_alloc_sem);
757 771
758 /* 772 /*
759 * Handle inline-data separately. 773 * Handle inline-data and fast symlink separately.
760 */ 774 */
761 if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) { 775 if ((OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) ||
776 ocfs2_inode_is_fast_symlink(inode)) {
762 ret = ocfs2_fiemap_inline(inode, di_bh, fieinfo, map_start); 777 ret = ocfs2_fiemap_inline(inode, di_bh, fieinfo, map_start);
763 goto out_unlock; 778 goto out_unlock;
764 } 779 }
@@ -786,6 +801,8 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
786 fe_flags = 0; 801 fe_flags = 0;
787 if (rec.e_flags & OCFS2_EXT_UNWRITTEN) 802 if (rec.e_flags & OCFS2_EXT_UNWRITTEN)
788 fe_flags |= FIEMAP_EXTENT_UNWRITTEN; 803 fe_flags |= FIEMAP_EXTENT_UNWRITTEN;
804 if (rec.e_flags & OCFS2_EXT_REFCOUNTED)
805 fe_flags |= FIEMAP_EXTENT_SHARED;
789 if (is_last) 806 if (is_last)
790 fe_flags |= FIEMAP_EXTENT_LAST; 807 fe_flags |= FIEMAP_EXTENT_LAST;
791 len_bytes = (u64)le16_to_cpu(rec.e_leaf_clusters) << osb->s_clustersize_bits; 808 len_bytes = (u64)le16_to_cpu(rec.e_leaf_clusters) << osb->s_clustersize_bits;
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index 3e9b46002f22..50fb26a6a5f5 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -2329,4 +2329,5 @@ const struct inode_operations ocfs2_dir_iops = {
2329 .getxattr = generic_getxattr, 2329 .getxattr = generic_getxattr,
2330 .listxattr = ocfs2_listxattr, 2330 .listxattr = ocfs2_listxattr,
2331 .removexattr = generic_removexattr, 2331 .removexattr = generic_removexattr,
2332 .fiemap = ocfs2_fiemap,
2332}; 2333};
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
index d963d8638709..9362eea7424b 100644
--- a/fs/ocfs2/ocfs2.h
+++ b/fs/ocfs2/ocfs2.h
@@ -245,9 +245,11 @@ enum ocfs2_mount_options
245 OCFS2_MOUNT_LOCALFLOCKS = 1 << 5, /* No cluster aware user file locks */ 245 OCFS2_MOUNT_LOCALFLOCKS = 1 << 5, /* No cluster aware user file locks */
246 OCFS2_MOUNT_NOUSERXATTR = 1 << 6, /* No user xattr */ 246 OCFS2_MOUNT_NOUSERXATTR = 1 << 6, /* No user xattr */
247 OCFS2_MOUNT_INODE64 = 1 << 7, /* Allow inode numbers > 2^32 */ 247 OCFS2_MOUNT_INODE64 = 1 << 7, /* Allow inode numbers > 2^32 */
248 OCFS2_MOUNT_POSIX_ACL = 1 << 8, /* POSIX access control lists */ 248 OCFS2_MOUNT_POSIX_ACL = 1 << 8, /* Force POSIX access control lists */
249 OCFS2_MOUNT_USRQUOTA = 1 << 9, /* We support user quotas */ 249 OCFS2_MOUNT_NO_POSIX_ACL = 1 << 9, /* Disable POSIX access
250 OCFS2_MOUNT_GRPQUOTA = 1 << 10, /* We support group quotas */ 250 control lists */
251 OCFS2_MOUNT_USRQUOTA = 1 << 10, /* We support user quotas */
252 OCFS2_MOUNT_GRPQUOTA = 1 << 11, /* We support group quotas */
251}; 253};
252 254
253#define OCFS2_OSB_SOFT_RO 0x0001 255#define OCFS2_OSB_SOFT_RO 0x0001
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
index e9431e4a5e7c..1a1a679e51b5 100644
--- a/fs/ocfs2/ocfs2_fs.h
+++ b/fs/ocfs2/ocfs2_fs.h
@@ -1202,7 +1202,7 @@ struct ocfs2_local_disk_dqinfo {
1202/* Header of one chunk of a quota file */ 1202/* Header of one chunk of a quota file */
1203struct ocfs2_local_disk_chunk { 1203struct ocfs2_local_disk_chunk {
1204 __le32 dqc_free; /* Number of free entries in the bitmap */ 1204 __le32 dqc_free; /* Number of free entries in the bitmap */
1205 u8 dqc_bitmap[0]; /* Bitmap of entries in the corresponding 1205 __u8 dqc_bitmap[0]; /* Bitmap of entries in the corresponding
1206 * chunk of quota file */ 1206 * chunk of quota file */
1207}; 1207};
1208 1208
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index ff4c798a5635..da78a2a334fd 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -814,7 +814,7 @@ static int fs_protocol_compare(struct ocfs2_protocol_version *existing,
814static int user_cluster_connect(struct ocfs2_cluster_connection *conn) 814static int user_cluster_connect(struct ocfs2_cluster_connection *conn)
815{ 815{
816 dlm_lockspace_t *fsdlm; 816 dlm_lockspace_t *fsdlm;
817 struct ocfs2_live_connection *control; 817 struct ocfs2_live_connection *uninitialized_var(control);
818 int rc = 0; 818 int rc = 0;
819 819
820 BUG_ON(conn == NULL); 820 BUG_ON(conn == NULL);
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index 14f47d2bfe02..26069917a9f5 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -100,6 +100,8 @@ struct mount_options
100static int ocfs2_parse_options(struct super_block *sb, char *options, 100static int ocfs2_parse_options(struct super_block *sb, char *options,
101 struct mount_options *mopt, 101 struct mount_options *mopt,
102 int is_remount); 102 int is_remount);
103static int ocfs2_check_set_options(struct super_block *sb,
104 struct mount_options *options);
103static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt); 105static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt);
104static void ocfs2_put_super(struct super_block *sb); 106static void ocfs2_put_super(struct super_block *sb);
105static int ocfs2_mount_volume(struct super_block *sb); 107static int ocfs2_mount_volume(struct super_block *sb);
@@ -600,7 +602,8 @@ static int ocfs2_remount(struct super_block *sb, int *flags, char *data)
600 602
601 lock_kernel(); 603 lock_kernel();
602 604
603 if (!ocfs2_parse_options(sb, data, &parsed_options, 1)) { 605 if (!ocfs2_parse_options(sb, data, &parsed_options, 1) ||
606 !ocfs2_check_set_options(sb, &parsed_options)) {
604 ret = -EINVAL; 607 ret = -EINVAL;
605 goto out; 608 goto out;
606 } 609 }
@@ -691,8 +694,6 @@ unlock_osb:
691 if (!ret) { 694 if (!ret) {
692 /* Only save off the new mount options in case of a successful 695 /* Only save off the new mount options in case of a successful
693 * remount. */ 696 * remount. */
694 if (!(osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_XATTR))
695 parsed_options.mount_opt &= ~OCFS2_MOUNT_POSIX_ACL;
696 osb->s_mount_opt = parsed_options.mount_opt; 697 osb->s_mount_opt = parsed_options.mount_opt;
697 osb->s_atime_quantum = parsed_options.atime_quantum; 698 osb->s_atime_quantum = parsed_options.atime_quantum;
698 osb->preferred_slot = parsed_options.slot; 699 osb->preferred_slot = parsed_options.slot;
@@ -701,6 +702,10 @@ unlock_osb:
701 702
702 if (!ocfs2_is_hard_readonly(osb)) 703 if (!ocfs2_is_hard_readonly(osb))
703 ocfs2_set_journal_params(osb); 704 ocfs2_set_journal_params(osb);
705
706 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
707 ((osb->s_mount_opt & OCFS2_MOUNT_POSIX_ACL) ?
708 MS_POSIXACL : 0);
704 } 709 }
705out: 710out:
706 unlock_kernel(); 711 unlock_kernel();
@@ -1011,31 +1016,16 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
1011 brelse(bh); 1016 brelse(bh);
1012 bh = NULL; 1017 bh = NULL;
1013 1018
1014 if (!(osb->s_feature_incompat & OCFS2_FEATURE_INCOMPAT_XATTR)) 1019 if (!ocfs2_check_set_options(sb, &parsed_options)) {
1015 parsed_options.mount_opt &= ~OCFS2_MOUNT_POSIX_ACL; 1020 status = -EINVAL;
1016 1021 goto read_super_error;
1022 }
1017 osb->s_mount_opt = parsed_options.mount_opt; 1023 osb->s_mount_opt = parsed_options.mount_opt;
1018 osb->s_atime_quantum = parsed_options.atime_quantum; 1024 osb->s_atime_quantum = parsed_options.atime_quantum;
1019 osb->preferred_slot = parsed_options.slot; 1025 osb->preferred_slot = parsed_options.slot;
1020 osb->osb_commit_interval = parsed_options.commit_interval; 1026 osb->osb_commit_interval = parsed_options.commit_interval;
1021 osb->local_alloc_default_bits = ocfs2_megabytes_to_clusters(sb, parsed_options.localalloc_opt); 1027 osb->local_alloc_default_bits = ocfs2_megabytes_to_clusters(sb, parsed_options.localalloc_opt);
1022 osb->local_alloc_bits = osb->local_alloc_default_bits; 1028 osb->local_alloc_bits = osb->local_alloc_default_bits;
1023 if (osb->s_mount_opt & OCFS2_MOUNT_USRQUOTA &&
1024 !OCFS2_HAS_RO_COMPAT_FEATURE(sb,
1025 OCFS2_FEATURE_RO_COMPAT_USRQUOTA)) {
1026 status = -EINVAL;
1027 mlog(ML_ERROR, "User quotas were requested, but this "
1028 "filesystem does not have the feature enabled.\n");
1029 goto read_super_error;
1030 }
1031 if (osb->s_mount_opt & OCFS2_MOUNT_GRPQUOTA &&
1032 !OCFS2_HAS_RO_COMPAT_FEATURE(sb,
1033 OCFS2_FEATURE_RO_COMPAT_GRPQUOTA)) {
1034 status = -EINVAL;
1035 mlog(ML_ERROR, "Group quotas were requested, but this "
1036 "filesystem does not have the feature enabled.\n");
1037 goto read_super_error;
1038 }
1039 1029
1040 status = ocfs2_verify_userspace_stack(osb, &parsed_options); 1030 status = ocfs2_verify_userspace_stack(osb, &parsed_options);
1041 if (status) 1031 if (status)
@@ -1245,6 +1235,40 @@ static struct file_system_type ocfs2_fs_type = {
1245 .next = NULL 1235 .next = NULL
1246}; 1236};
1247 1237
1238static int ocfs2_check_set_options(struct super_block *sb,
1239 struct mount_options *options)
1240{
1241 if (options->mount_opt & OCFS2_MOUNT_USRQUOTA &&
1242 !OCFS2_HAS_RO_COMPAT_FEATURE(sb,
1243 OCFS2_FEATURE_RO_COMPAT_USRQUOTA)) {
1244 mlog(ML_ERROR, "User quotas were requested, but this "
1245 "filesystem does not have the feature enabled.\n");
1246 return 0;
1247 }
1248 if (options->mount_opt & OCFS2_MOUNT_GRPQUOTA &&
1249 !OCFS2_HAS_RO_COMPAT_FEATURE(sb,
1250 OCFS2_FEATURE_RO_COMPAT_GRPQUOTA)) {
1251 mlog(ML_ERROR, "Group quotas were requested, but this "
1252 "filesystem does not have the feature enabled.\n");
1253 return 0;
1254 }
1255 if (options->mount_opt & OCFS2_MOUNT_POSIX_ACL &&
1256 !OCFS2_HAS_INCOMPAT_FEATURE(sb, OCFS2_FEATURE_INCOMPAT_XATTR)) {
1257 mlog(ML_ERROR, "ACL support requested but extended attributes "
1258 "feature is not enabled\n");
1259 return 0;
1260 }
1261 /* No ACL setting specified? Use XATTR feature... */
1262 if (!(options->mount_opt & (OCFS2_MOUNT_POSIX_ACL |
1263 OCFS2_MOUNT_NO_POSIX_ACL))) {
1264 if (OCFS2_HAS_INCOMPAT_FEATURE(sb, OCFS2_FEATURE_INCOMPAT_XATTR))
1265 options->mount_opt |= OCFS2_MOUNT_POSIX_ACL;
1266 else
1267 options->mount_opt |= OCFS2_MOUNT_NO_POSIX_ACL;
1268 }
1269 return 1;
1270}
1271
1248static int ocfs2_parse_options(struct super_block *sb, 1272static int ocfs2_parse_options(struct super_block *sb,
1249 char *options, 1273 char *options,
1250 struct mount_options *mopt, 1274 struct mount_options *mopt,
@@ -1392,40 +1416,19 @@ static int ocfs2_parse_options(struct super_block *sb,
1392 mopt->mount_opt |= OCFS2_MOUNT_INODE64; 1416 mopt->mount_opt |= OCFS2_MOUNT_INODE64;
1393 break; 1417 break;
1394 case Opt_usrquota: 1418 case Opt_usrquota:
1395 /* We check only on remount, otherwise features
1396 * aren't yet initialized. */
1397 if (is_remount && !OCFS2_HAS_RO_COMPAT_FEATURE(sb,
1398 OCFS2_FEATURE_RO_COMPAT_USRQUOTA)) {
1399 mlog(ML_ERROR, "User quota requested but "
1400 "filesystem feature is not set\n");
1401 status = 0;
1402 goto bail;
1403 }
1404 mopt->mount_opt |= OCFS2_MOUNT_USRQUOTA; 1419 mopt->mount_opt |= OCFS2_MOUNT_USRQUOTA;
1405 break; 1420 break;
1406 case Opt_grpquota: 1421 case Opt_grpquota:
1407 if (is_remount && !OCFS2_HAS_RO_COMPAT_FEATURE(sb,
1408 OCFS2_FEATURE_RO_COMPAT_GRPQUOTA)) {
1409 mlog(ML_ERROR, "Group quota requested but "
1410 "filesystem feature is not set\n");
1411 status = 0;
1412 goto bail;
1413 }
1414 mopt->mount_opt |= OCFS2_MOUNT_GRPQUOTA; 1422 mopt->mount_opt |= OCFS2_MOUNT_GRPQUOTA;
1415 break; 1423 break;
1416#ifdef CONFIG_OCFS2_FS_POSIX_ACL
1417 case Opt_acl: 1424 case Opt_acl:
1418 mopt->mount_opt |= OCFS2_MOUNT_POSIX_ACL; 1425 mopt->mount_opt |= OCFS2_MOUNT_POSIX_ACL;
1426 mopt->mount_opt &= ~OCFS2_MOUNT_NO_POSIX_ACL;
1419 break; 1427 break;
1420 case Opt_noacl: 1428 case Opt_noacl:
1429 mopt->mount_opt |= OCFS2_MOUNT_NO_POSIX_ACL;
1421 mopt->mount_opt &= ~OCFS2_MOUNT_POSIX_ACL; 1430 mopt->mount_opt &= ~OCFS2_MOUNT_POSIX_ACL;
1422 break; 1431 break;
1423#else
1424 case Opt_acl:
1425 case Opt_noacl:
1426 printk(KERN_INFO "ocfs2 (no)acl options not supported\n");
1427 break;
1428#endif
1429 default: 1432 default:
1430 mlog(ML_ERROR, 1433 mlog(ML_ERROR,
1431 "Unrecognized mount option \"%s\" " 1434 "Unrecognized mount option \"%s\" "
@@ -1502,12 +1505,10 @@ static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt)
1502 if (opts & OCFS2_MOUNT_INODE64) 1505 if (opts & OCFS2_MOUNT_INODE64)
1503 seq_printf(s, ",inode64"); 1506 seq_printf(s, ",inode64");
1504 1507
1505#ifdef CONFIG_OCFS2_FS_POSIX_ACL
1506 if (opts & OCFS2_MOUNT_POSIX_ACL) 1508 if (opts & OCFS2_MOUNT_POSIX_ACL)
1507 seq_printf(s, ",acl"); 1509 seq_printf(s, ",acl");
1508 else 1510 else
1509 seq_printf(s, ",noacl"); 1511 seq_printf(s, ",noacl");
1510#endif
1511 1512
1512 return 0; 1513 return 0;
1513} 1514}
diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c
index e3421030a69f..49b133ccbf11 100644
--- a/fs/ocfs2/symlink.c
+++ b/fs/ocfs2/symlink.c
@@ -163,6 +163,7 @@ const struct inode_operations ocfs2_symlink_inode_operations = {
163 .getxattr = generic_getxattr, 163 .getxattr = generic_getxattr,
164 .listxattr = ocfs2_listxattr, 164 .listxattr = ocfs2_listxattr,
165 .removexattr = generic_removexattr, 165 .removexattr = generic_removexattr,
166 .fiemap = ocfs2_fiemap,
166}; 167};
167const struct inode_operations ocfs2_fast_symlink_inode_operations = { 168const struct inode_operations ocfs2_fast_symlink_inode_operations = {
168 .readlink = ocfs2_readlink, 169 .readlink = ocfs2_readlink,
@@ -174,4 +175,5 @@ const struct inode_operations ocfs2_fast_symlink_inode_operations = {
174 .getxattr = generic_getxattr, 175 .getxattr = generic_getxattr,
175 .listxattr = ocfs2_listxattr, 176 .listxattr = ocfs2_listxattr,
176 .removexattr = generic_removexattr, 177 .removexattr = generic_removexattr,
178 .fiemap = ocfs2_fiemap,
177}; 179};
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
index 43c114831c0d..8fc6fb071c6d 100644
--- a/fs/ocfs2/xattr.c
+++ b/fs/ocfs2/xattr.c
@@ -98,10 +98,8 @@ static struct ocfs2_xattr_def_value_root def_xv = {
98 98
99struct xattr_handler *ocfs2_xattr_handlers[] = { 99struct xattr_handler *ocfs2_xattr_handlers[] = {
100 &ocfs2_xattr_user_handler, 100 &ocfs2_xattr_user_handler,
101#ifdef CONFIG_OCFS2_FS_POSIX_ACL
102 &ocfs2_xattr_acl_access_handler, 101 &ocfs2_xattr_acl_access_handler,
103 &ocfs2_xattr_acl_default_handler, 102 &ocfs2_xattr_acl_default_handler,
104#endif
105 &ocfs2_xattr_trusted_handler, 103 &ocfs2_xattr_trusted_handler,
106 &ocfs2_xattr_security_handler, 104 &ocfs2_xattr_security_handler,
107 NULL 105 NULL
@@ -109,12 +107,10 @@ struct xattr_handler *ocfs2_xattr_handlers[] = {
109 107
110static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = { 108static struct xattr_handler *ocfs2_xattr_handler_map[OCFS2_XATTR_MAX] = {
111 [OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler, 109 [OCFS2_XATTR_INDEX_USER] = &ocfs2_xattr_user_handler,
112#ifdef CONFIG_OCFS2_FS_POSIX_ACL
113 [OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS] 110 [OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS]
114 = &ocfs2_xattr_acl_access_handler, 111 = &ocfs2_xattr_acl_access_handler,
115 [OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT] 112 [OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT]
116 = &ocfs2_xattr_acl_default_handler, 113 = &ocfs2_xattr_acl_default_handler,
117#endif
118 [OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler, 114 [OCFS2_XATTR_INDEX_TRUSTED] = &ocfs2_xattr_trusted_handler,
119 [OCFS2_XATTR_INDEX_SECURITY] = &ocfs2_xattr_security_handler, 115 [OCFS2_XATTR_INDEX_SECURITY] = &ocfs2_xattr_security_handler,
120}; 116};
@@ -6064,7 +6060,7 @@ static int ocfs2_value_metas_in_xattr_header(struct super_block *sb,
6064 * to the extent block, so just calculate a maximum record num. 6060 * to the extent block, so just calculate a maximum record num.
6065 */ 6061 */
6066 if (!xv->xr_list.l_tree_depth) 6062 if (!xv->xr_list.l_tree_depth)
6067 *num_recs += xv->xr_list.l_next_free_rec; 6063 *num_recs += le16_to_cpu(xv->xr_list.l_next_free_rec);
6068 else 6064 else
6069 *num_recs += ocfs2_clusters_for_bytes(sb, 6065 *num_recs += ocfs2_clusters_for_bytes(sb,
6070 XATTR_SIZE_MAX); 6066 XATTR_SIZE_MAX);
diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h
index 08e36389f56d..abd72a47f520 100644
--- a/fs/ocfs2/xattr.h
+++ b/fs/ocfs2/xattr.h
@@ -40,10 +40,8 @@ struct ocfs2_security_xattr_info {
40extern struct xattr_handler ocfs2_xattr_user_handler; 40extern struct xattr_handler ocfs2_xattr_user_handler;
41extern struct xattr_handler ocfs2_xattr_trusted_handler; 41extern struct xattr_handler ocfs2_xattr_trusted_handler;
42extern struct xattr_handler ocfs2_xattr_security_handler; 42extern struct xattr_handler ocfs2_xattr_security_handler;
43#ifdef CONFIG_OCFS2_FS_POSIX_ACL
44extern struct xattr_handler ocfs2_xattr_acl_access_handler; 43extern struct xattr_handler ocfs2_xattr_acl_access_handler;
45extern struct xattr_handler ocfs2_xattr_acl_default_handler; 44extern struct xattr_handler ocfs2_xattr_acl_default_handler;
46#endif
47extern struct xattr_handler *ocfs2_xattr_handlers[]; 45extern struct xattr_handler *ocfs2_xattr_handlers[];
48 46
49ssize_t ocfs2_listxattr(struct dentry *, char *, size_t); 47ssize_t ocfs2_listxattr(struct dentry *, char *, size_t);
diff --git a/include/linux/fiemap.h b/include/linux/fiemap.h
index 934e22d65801..d830747f5c0b 100644
--- a/include/linux/fiemap.h
+++ b/include/linux/fiemap.h
@@ -62,5 +62,7 @@ struct fiemap {
62#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively 62#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively
63 * support extents. Result 63 * support extents. Result
64 * merged for efficiency. */ 64 * merged for efficiency. */
65#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other
66 * files. */
65 67
66#endif /* _LINUX_FIEMAP_H */ 68#endif /* _LINUX_FIEMAP_H */