summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/kernel/vm86.c1
-rw-r--r--arch/i386/mm/fault.c30
-rw-r--r--arch/i386/mm/init.c8
-rw-r--r--arch/ia64/sn/fakeprom/fw-emu.c4
-rw-r--r--arch/mips/Kconfig25
-rw-r--r--arch/mips/Makefile6
-rw-r--r--arch/mips/configs/atlas_defconfig8
-rw-r--r--arch/mips/configs/bosporus_defconfig5
-rw-r--r--arch/mips/configs/capcella_defconfig8
-rw-r--r--arch/mips/configs/cobalt_defconfig7
-rw-r--r--arch/mips/configs/db1000_defconfig5
-rw-r--r--arch/mips/configs/db1100_defconfig5
-rw-r--r--arch/mips/configs/db1500_defconfig6
-rw-r--r--arch/mips/configs/ddb5476_defconfig8
-rw-r--r--arch/mips/configs/ddb5477_defconfig7
-rw-r--r--arch/mips/configs/decstation_defconfig5
-rw-r--r--arch/mips/configs/e55_defconfig6
-rw-r--r--arch/mips/configs/eagle_defconfig750
-rw-r--r--arch/mips/configs/ev64120_defconfig6
-rw-r--r--arch/mips/configs/ev96100_defconfig4
-rw-r--r--arch/mips/configs/ip22_defconfig12
-rw-r--r--arch/mips/configs/ip27_defconfig12
-rw-r--r--arch/mips/configs/ip32_defconfig10
-rw-r--r--arch/mips/configs/it8172_defconfig6
-rw-r--r--arch/mips/configs/ivr_defconfig8
-rw-r--r--arch/mips/configs/jaguar-atx_defconfig15
-rw-r--r--arch/mips/configs/jmr3927_defconfig7
-rw-r--r--arch/mips/configs/lasat200_defconfig7
-rw-r--r--arch/mips/configs/malta_defconfig7
-rw-r--r--arch/mips/configs/mirage_defconfig5
-rw-r--r--arch/mips/configs/mpc30x_defconfig7
-rw-r--r--arch/mips/configs/mtx1_defconfig5
-rw-r--r--arch/mips/configs/ocelot_c_defconfig9
-rw-r--r--arch/mips/configs/ocelot_defconfig4
-rw-r--r--arch/mips/configs/ocelot_g_defconfig7
-rw-r--r--arch/mips/configs/osprey_defconfig4
-rw-r--r--arch/mips/configs/pb1000_defconfig5
-rw-r--r--arch/mips/configs/pb1100_defconfig5
-rw-r--r--arch/mips/configs/pb1500_defconfig9
-rw-r--r--arch/mips/configs/pb1550_defconfig9
-rw-r--r--arch/mips/configs/rm200_defconfig23
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig7
-rw-r--r--arch/mips/configs/sead_defconfig3
-rw-r--r--arch/mips/configs/tb0226_defconfig9
-rw-r--r--arch/mips/configs/tb0229_defconfig10
-rw-r--r--arch/mips/configs/workpad_defconfig6
-rw-r--r--arch/mips/configs/xxs1500_defconfig5
-rw-r--r--arch/mips/configs/yosemite_defconfig6
-rw-r--r--arch/mips/defconfig12
-rw-r--r--arch/mips/kernel/Makefile2
-rw-r--r--arch/mips/kernel/irq-mv6434x.c4
-rw-r--r--arch/mips/kernel/traps.c24
-rw-r--r--arch/mips/mm/sc-rm7k.c70
-rw-r--r--arch/mips/momentum/jaguar_atx/prom.c11
-rw-r--r--arch/mips/momentum/jaguar_atx/setup.c65
-rw-r--r--arch/mips/momentum/ocelot_c/prom.c12
-rw-r--r--arch/mips/momentum/ocelot_c/setup.c6
-rw-r--r--arch/mips/momentum/ocelot_g/gt-irq.c18
-rw-r--r--arch/mips/momentum/ocelot_g/prom.c4
-rw-r--r--arch/mips/momentum/ocelot_g/setup.c8
-rw-r--r--arch/mips/pci/Makefile5
-rw-r--r--arch/mips/pci/fixup-eagle.c60
-rw-r--r--arch/mips/pci/ops-gt64240.c149
-rw-r--r--arch/mips/pci/ops-marvell.c93
-rw-r--r--arch/mips/pci/ops-mv64340.c145
-rw-r--r--arch/mips/pci/ops-vrc4173.c120
-rw-r--r--arch/mips/pci/pci-ocelot-c.c56
-rw-r--r--arch/mips/pci/pci-ocelot-g.c36
-rw-r--r--arch/mips/sibyte/sb1250/irq_handler.S2
-rw-r--r--arch/mips/vr41xx/nec-eagle/Makefile10
-rw-r--r--arch/mips/vr41xx/nec-eagle/irq.c190
-rw-r--r--arch/mips/vr41xx/nec-eagle/setup.c97
-rw-r--r--arch/ppc/Kconfig10
-rw-r--r--arch/ppc/configs/ebony_defconfig22
-rw-r--r--arch/ppc/configs/ocotea_defconfig94
-rw-r--r--arch/ppc/kernel/head_44x.S6
-rw-r--r--arch/ppc/kernel/head_4xx.S2
-rw-r--r--arch/ppc/platforms/lopec_setup.c17
-rw-r--r--arch/ppc/platforms/powerpmc250.c2
-rw-r--r--arch/ppc/platforms/sandpoint.c12
-rw-r--r--arch/ppc/syslib/Makefile7
-rw-r--r--arch/ppc/syslib/ibm440gp_common.c6
-rw-r--r--arch/ppc/syslib/mpc10x_common.c81
-rw-r--r--arch/ppc/syslib/ppc4xx_pic.c8
-rw-r--r--arch/ppc64/kernel/ItLpQueue.c2
-rw-r--r--arch/ppc64/kernel/asm-offsets.c30
-rw-r--r--arch/ppc64/kernel/chrp_setup.c2
-rw-r--r--arch/ppc64/kernel/eeh.c7
-rw-r--r--arch/ppc64/kernel/head.S38
-rw-r--r--arch/ppc64/kernel/iSeries_proc.c2
-rw-r--r--arch/ppc64/kernel/iSeries_setup.c4
-rw-r--r--arch/ppc64/kernel/idle.c26
-rw-r--r--arch/ppc64/kernel/irq.c16
-rw-r--r--arch/ppc64/kernel/lparcfg.c5
-rw-r--r--arch/ppc64/kernel/pSeries_pci.c1
-rw-r--r--arch/ppc64/kernel/pacaData.c37
-rw-r--r--arch/ppc64/kernel/pmac_smp.c2
-rw-r--r--arch/ppc64/kernel/prom.c12
-rw-r--r--arch/ppc64/kernel/ras.c16
-rw-r--r--arch/ppc64/kernel/rtas.c49
-rw-r--r--arch/ppc64/kernel/rtc.c1
-rw-r--r--arch/ppc64/kernel/scanlog.c2
-rw-r--r--arch/ppc64/kernel/setup.c7
-rw-r--r--arch/ppc64/kernel/smp.c52
-rw-r--r--arch/ppc64/kernel/stab.c18
-rw-r--r--arch/ppc64/kernel/sysfs.c2
-rw-r--r--arch/ppc64/kernel/time.c9
-rw-r--r--arch/ppc64/kernel/traps.c1
-rw-r--r--arch/ppc64/lib/locks.c13
-rw-r--r--arch/ppc64/xmon/xmon.c7
-rw-r--r--arch/s390/Kconfig6
-rw-r--r--arch/s390/defconfig21
-rw-r--r--arch/s390/kernel/debug.c120
-rw-r--r--arch/s390/kernel/entry64.S3
-rw-r--r--arch/s390/kernel/head.S4
-rw-r--r--arch/s390/kernel/head64.S4
-rw-r--r--arch/s390/kernel/s390_ksyms.c3
-rw-r--r--arch/s390/kernel/setup.c16
-rw-r--r--arch/s390/kernel/time.c11
-rw-r--r--arch/sparc64/kernel/itlb_base.S6
-rw-r--r--arch/sparc64/mm/fault.c12
-rw-r--r--arch/x86_64/kernel/suspend.c76
122 files changed, 1082 insertions, 2153 deletions
diff --git a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c
index a4f5a20a263f..4484e47a77c5 100644
--- a/arch/i386/kernel/vm86.c
+++ b/arch/i386/kernel/vm86.c
@@ -394,6 +394,7 @@ static inline unsigned long get_vflags(struct kernel_vm86_regs * regs)
if (VEFLAGS & VIF_MASK)
flags |= IF_MASK;
+ flags |= IOPL_MASK;
return flags | (VEFLAGS & current->thread.v86mask);
}
diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c
index 5a92ad7ef8b3..f502dde14e52 100644
--- a/arch/i386/mm/fault.c
+++ b/arch/i386/mm/fault.c
@@ -188,11 +188,16 @@ static int __is_prefetch(struct pt_regs *regs, unsigned long addr)
return prefetch;
}
-static inline int is_prefetch(struct pt_regs *regs, unsigned long addr)
+static inline int is_prefetch(struct pt_regs *regs, unsigned long addr,
+ unsigned long error_code)
{
if (unlikely(boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
- boot_cpu_data.x86 >= 6))
+ boot_cpu_data.x86 >= 6)) {
+ /* Catch an obscure case of prefetch inside an NX page. */
+ if (nx_enabled && (error_code & 16))
+ return 0;
return __is_prefetch(regs, addr);
+ }
return 0;
}
@@ -374,7 +379,7 @@ bad_area_nosemaphore:
* Valid to do another page fault here because this one came
* from user space.
*/
- if (is_prefetch(regs, address))
+ if (is_prefetch(regs, address, error_code))
return;
tsk->thread.cr2 = address;
@@ -415,7 +420,7 @@ no_context:
* had been triggered by is_prefetch fixup_exception would have
* handled it.
*/
- if (is_prefetch(regs, address))
+ if (is_prefetch(regs, address, error_code))
return;
/*
@@ -426,18 +431,11 @@ no_context:
bust_spinlocks(1);
#ifdef CONFIG_X86_PAE
- {
- pgd_t *pgd;
- pmd_t *pmd;
-
+ if (error_code & 16) {
+ pte_t *pte = lookup_address(address);
-
- pgd = init_mm.pgd + pgd_index(address);
- if (pgd_present(*pgd)) {
- pmd = pmd_offset(pgd, address);
- if (pmd_val(*pmd) & _PAGE_NX)
- printk(KERN_CRIT "kernel tried to access NX-protected page - exploit attempt? (uid: %d)\n", current->uid);
- }
+ if (pte && pte_present(*pte) && !pte_exec_kernel(*pte))
+ printk(KERN_CRIT "kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n", current->uid);
}
#endif
if (address < PAGE_SIZE)
@@ -492,7 +490,7 @@ do_sigbus:
goto no_context;
/* User space => ok to do another page fault */
- if (is_prefetch(regs, address))
+ if (is_prefetch(regs, address, error_code))
return;
tsk->thread.cr2 = address;
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c
index d492599dac6a..a8bd0544ab2c 100644
--- a/arch/i386/mm/init.c
+++ b/arch/i386/mm/init.c
@@ -437,7 +437,7 @@ static int __init noexec_setup(char *str)
__setup("noexec=", noexec_setup);
#ifdef CONFIG_X86_PAE
-static int use_nx = 0;
+int nx_enabled = 0;
static void __init set_nx(void)
{
@@ -449,7 +449,7 @@ static void __init set_nx(void)
rdmsr(MSR_EFER, l, h);
l |= EFER_NX;
wrmsr(MSR_EFER, l, h);
- use_nx = 1;
+ nx_enabled = 1;
__supported_pte_mask |= _PAGE_NX;
}
}
@@ -470,7 +470,7 @@ int __init set_kernel_exec(unsigned long vaddr, int enable)
pte = lookup_address(vaddr);
BUG_ON(!pte);
- if (pte_val(*pte) & _PAGE_NX)
+ if (!pte_exec_kernel(*pte))
ret = 0;
if (enable)
@@ -495,7 +495,7 @@ void __init paging_init(void)
{
#ifdef CONFIG_X86_PAE
set_nx();
- if (use_nx)
+ if (nx_enabled)
printk("NX (Execute Disable) protection: active\n");
#endif
diff --git a/arch/ia64/sn/fakeprom/fw-emu.c b/arch/ia64/sn/fakeprom/fw-emu.c
index 7832af4d652f..7e6a7eae61c2 100644
--- a/arch/ia64/sn/fakeprom/fw-emu.c
+++ b/arch/ia64/sn/fakeprom/fw-emu.c
@@ -37,6 +37,7 @@
*/
#include <linux/config.h>
#include <linux/efi.h>
+#include <linux/kernel.h>
#include <asm/pal.h>
#include <asm/sal.h>
#include <asm/sn/sn_sal.h>
@@ -78,7 +79,6 @@
#define BOOT_PARAM_ADDR 0x40000
#define MAX(i,j) ((i) > (j) ? (i) : (j))
#define MIN(i,j) ((i) < (j) ? (i) : (j))
-#define ABS(i) ((i) > 0 ? (i) : -(i))
#define ALIGN8(p) (((long)(p) +7) & ~7)
#define FPROM_BUG() do {while (1);} while (0)
@@ -670,7 +670,7 @@ sys_fw_init (const char *args, int arglen, int bsp)
for (i=0; i<=max_nasid; i++)
for (j=0; j<=max_nasid; j++)
if (nasid_present(i) && nasid_present(j))
- *(cp+PROXIMITY_DOMAIN(i)*acpi_slit->localities+PROXIMITY_DOMAIN(j)) = 10 + MIN(254, 5*ABS(i-j));
+ *(cp+PROXIMITY_DOMAIN(i)*acpi_slit->localities+PROXIMITY_DOMAIN(j)) = 10 + MIN(254, 5*abs(i-j));
cp = acpi_slit->entry + acpi_slit->localities*acpi_slit->localities;
acpi_checksum(&acpi_slit->header, cp - (char*)acpi_slit);
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index ebfd35e5544d..6ab62cb4ddef 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -91,13 +91,6 @@ config IBM_WORKPAD
select IRQ_CPU
select ISA
-config NEC_EAGLE
- bool "Support for NEC Eagle/Hawk board"
- select DMA_NONCOHERENT
- select IRQ_CPU
- depends on MACH_VR41XX
- select HW_HAS_PCI
-
config TANBAC_TB0226
bool "Support for TANBAC TB0226 (Mbase)"
depends on MACH_VR41XX
@@ -311,6 +304,7 @@ config MOMENCO_OCELOT_G
select HW_HAS_PCI
select IRQ_CPU
select IRQ_CPU_RM7K
+ select PCI_MARVELL
select RM7000_CPU_SCACHE
help
The Ocelot is a MIPS-based Single Board Computer (SBC) made by
@@ -321,6 +315,8 @@ config MOMENCO_OCELOT_C
select DMA_NONCOHERENT
select HW_HAS_PCI
select IRQ_CPU
+ select IRQ_MV64340
+ select PCI_MARVELL
select RM7000_CPU_SCACHE
help
The Ocelot is a MIPS-based Single Board Computer (SBC) made by
@@ -332,7 +328,9 @@ config MOMENCO_JAGUAR_ATX
select HW_HAS_PCI
select IRQ_CPU
select IRQ_CPU_RM7K
+ select IRQ_MV64340
select LIMITED_DMA
+ select PCI_MARVELL
select RM7000_CPU_SCACHE
help
The Jaguar ATX is a MIPS-based Single Board Computer (SBC) made by
@@ -885,7 +883,7 @@ config MIPS_NILE4
config CPU_LITTLE_ENDIAN
bool "Generate little endian code"
- default y if ACER_PICA_61 || CASIO_E55 || DDB5074 || DDB5476 || DDB5477 || MACH_DECSTATION || HP_LASERJET || IBM_WORKPAD || LASAT || MIPS_COBALT || MIPS_ITE8172 || MIPS_IVR || SOC_AU1X00 || NEC_OSPREY || NEC_EAGLE || OLIVETTI_M700 || SNI_RM200_PCI || VICTOR_MPC30X || ZAO_CAPCELLA
+ default y if ACER_PICA_61 || CASIO_E55 || DDB5074 || DDB5476 || DDB5477 || MACH_DECSTATION || HP_LASERJET || IBM_WORKPAD || LASAT || MIPS_COBALT || MIPS_ITE8172 || MIPS_IVR || SOC_AU1X00 || NEC_OSPREY || OLIVETTI_M700 || SNI_RM200_PCI || VICTOR_MPC30X || ZAO_CAPCELLA
default n if BAGET_MIPS || MIPS_EV64120 || MIPS_EV96100 || MOMENCO_OCELOT || MOMENCO_OCELOT_G || SGI_IP22 || SGI_IP27 || SGI_IP32 || TOSHIBA_JMR3927
help
Some MIPS machines can be configured for either little or big endian
@@ -898,6 +896,9 @@ config IRQ_CPU
config IRQ_CPU_RM7K
bool
+config IRQ_MV64340
+ bool
+
config DDB5XXX_COMMON
bool
depends on DDB5074 || DDB5476 || DDB5477
@@ -918,16 +919,14 @@ config MIPS_GT64120
depends on MIPS_EV64120 || MIPS_EV96100 || LASAT || MIPS_ATLAS || MIPS_MALTA || MOMENCO_OCELOT
default y
-config MIPS_MV64340
- bool
- depends on MOMENCO_JAGUAR_ATX || MOMENCO_OCELOT_C
- default y
-
config MIPS_TX3927
bool
depends on TOSHIBA_JMR3927
default y
+config PCI_MARVELL
+ bool
+
config ITE_BOARD_GEN
bool
depends on MIPS_IVR || MIPS_ITE8172
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index c1aabc835f62..371558708a50 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -464,12 +464,6 @@ core-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/
cflags-$(CONFIG_MACH_VR41XX) += -Iinclude/asm-mips/mach-vr41xx
#
-# NEC Eagle/Hawk (VR4122/VR4131) board
-#
-core-$(CONFIG_NEC_EAGLE) += arch/mips/vr41xx/nec-eagle/
-load-$(CONFIG_NEC_EAGLE) += 0x80000000
-
-#
# ZAO Networks Capcella (VR4131)
#
core-$(CONFIG_ZAO_CAPCELLA) += arch/mips/vr41xx/zao-capcella/
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig
index cd4da1fb9f85..3cccab2b28d1 100644
--- a/arch/mips/configs/atlas_defconfig
+++ b/arch/mips/configs/atlas_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -143,6 +144,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -169,7 +171,7 @@ CONFIG_TRAD_SIGNALS=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_INITRD is not set
@@ -212,13 +214,13 @@ CONFIG_BLK_DEV_SD=y
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
@@ -321,6 +323,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -650,5 +653,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/bosporus_defconfig b/arch/mips/configs/bosporus_defconfig
index 2b71a0410b4e..369d8b04b252 100644
--- a/arch/mips/configs/bosporus_defconfig
+++ b/arch/mips/configs/bosporus_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -147,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -273,6 +275,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +610,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -661,6 +665,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig
index 44799daa96b6..fe6d0b69fbe5 100644
--- a/arch/mips/configs/capcella_defconfig
+++ b/arch/mips/configs/capcella_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -54,7 +55,6 @@ CONFIG_KMOD=y
CONFIG_MACH_VR41XX=y
# CONFIG_CASIO_E55 is not set
# CONFIG_IBM_WORKPAD is not set
-# CONFIG_NEC_EAGLE is not set
# CONFIG_TANBAC_TB0226 is not set
# CONFIG_TANBAC_TB0229 is not set
# CONFIG_VICTOR_MPC30X is not set
@@ -147,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -172,7 +173,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -185,6 +186,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -283,6 +285,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -624,5 +627,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig
index c3fda0f4e154..46f45c30bdd9 100644
--- a/arch/mips/configs/cobalt_defconfig
+++ b/arch/mips/configs/cobalt_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -137,6 +138,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -163,7 +165,7 @@ CONFIG_TRAD_SIGNALS=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -176,6 +178,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -270,6 +273,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -600,5 +604,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index 3ec36c06285c..0755f489b647 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -167,6 +168,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -293,6 +295,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -634,6 +637,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -688,6 +692,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index f649a7cafc04..88c42a5f2691 100644
--- a/arch/mips/configs/db1100_defconfig
+++ b/arch/mips/configs/db1100_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -165,6 +166,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -291,6 +293,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -629,6 +632,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -683,6 +687,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index ff5ec324a67e..cbe2b1e3265c 100644
--- a/arch/mips/configs/db1500_defconfig
+++ b/arch/mips/configs/db1500_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -167,6 +168,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -259,6 +261,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECS=m
@@ -372,6 +375,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -706,6 +710,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -760,6 +765,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig
index 2385348b99a7..122f2a9fa746 100644
--- a/arch/mips/configs/ddb5476_defconfig
+++ b/arch/mips/configs/ddb5476_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -139,6 +140,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -166,7 +168,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -179,6 +181,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -282,6 +285,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -485,6 +489,7 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# Graphics support
#
+# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ASILIANT is not set
@@ -640,5 +645,6 @@ CONFIG_CMDLINE="ip=any"
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig
index 3a2e7ca35066..fc23a6b9261f 100644
--- a/arch/mips/configs/ddb5477_defconfig
+++ b/arch/mips/configs/ddb5477_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -138,6 +139,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -163,7 +165,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -251,6 +253,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -306,6 +309,7 @@ CONFIG_PCNET32=y
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
# CONFIG_LAN_SAA9730 is not set
#
@@ -599,5 +603,6 @@ CONFIG_CMDLINE="ip=any"
#
# Library routines
#
+CONFIG_CRC16=y
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig
index c2bf43ff126b..06cf55a1678f 100644
--- a/arch/mips/configs/decstation_defconfig
+++ b/arch/mips/configs/decstation_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -137,6 +138,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -277,6 +279,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -554,7 +557,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
CONFIG_ULTRIX_PARTITION=y
# CONFIG_SUN_PARTITION is not set
@@ -585,5 +587,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig
index cda052941dbb..0d9c4053e3ee 100644
--- a/arch/mips/configs/e55_defconfig
+++ b/arch/mips/configs/e55_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -54,7 +55,6 @@ CONFIG_KMOD=y
CONFIG_MACH_VR41XX=y
CONFIG_CASIO_E55=y
# CONFIG_IBM_WORKPAD is not set
-# CONFIG_NEC_EAGLE is not set
# CONFIG_TANBAC_TB0226 is not set
# CONFIG_TANBAC_TB0229 is not set
# CONFIG_VICTOR_MPC30X is not set
@@ -143,6 +143,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -178,6 +179,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -277,6 +279,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -603,5 +606,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/eagle_defconfig b/arch/mips/configs/eagle_defconfig
deleted file mode 100644
index 78feb1ac0945..000000000000
--- a/arch/mips/configs/eagle_defconfig
+++ /dev/null
@@ -1,750 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-CONFIG_MIPS=y
-# CONFIG_MIPS64 is not set
-# CONFIG_64BIT is not set
-CONFIG_MIPS32=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_STANDALONE=y
-CONFIG_BROKEN_ON_SMP=y
-
-#
-# General setup
-#
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_HOTPLUG=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-CONFIG_MODVERSIONS=y
-CONFIG_KMOD=y
-
-#
-# Machine selection
-#
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_BAGET_MIPS is not set
-CONFIG_MACH_VR41XX=y
-# CONFIG_CASIO_E55 is not set
-# CONFIG_IBM_WORKPAD is not set
-CONFIG_NEC_EAGLE=y
-# CONFIG_TANBAC_TB0226 is not set
-# CONFIG_TANBAC_TB0229 is not set
-# CONFIG_VICTOR_MPC30X is not set
-# CONFIG_ZAO_CAPCELLA is not set
-CONFIG_PCI_VR41XX=y
-CONFIG_VRC4173=y
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MIPS_EV64120 is not set
-# CONFIG_MIPS_EV96100 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_LASAT is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_MOMENCO_OCELOT_C is not set
-# CONFIG_MOMENCO_JAGUAR_ATX is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_DDB5074 is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_NEC_OSPREY is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SOC_AU1X00 is not set
-# CONFIG_SIBYTE_SB1xxx_SOC is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_IRQ_CPU=y
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-# CONFIG_FB is not set
-
-#
-# CPU selection
-#
-# CONFIG_CPU_MIPS32 is not set
-# CONFIG_CPU_MIPS64 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-CONFIG_CPU_VR41XX=y
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-# CONFIG_CPU_ADVANCED is not set
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_PREEMPT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_HW_HAS_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_LEGACY_PROC=y
-CONFIG_PCI_NAMES=y
-CONFIG_MMU=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=y
-# CONFIG_PCMCIA_DEBUG is not set
-# CONFIG_YENTA is not set
-# CONFIG_I82092 is not set
-# CONFIG_TCIC is not set
-# CONFIG_PCMCIA_VRC4173 is not set
-
-#
-# PCI Hotplug Support
-#
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-# CONFIG_FW_LOADER is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_PARTITIONS is not set
-# CONFIG_MTD_CONCAT is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_GEOMETRY is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_OBSOLETE_CHIPS is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_START=0x1c000000
-CONFIG_MTD_PHYSMAP_LEN=0x2000000
-CONFIG_MTD_PHYSMAP_BUSWIDTH=4
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_LBD is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-CONFIG_BLK_DEV_IDEDISK=y
-CONFIG_IDEDISK_MULTI_MODE=y
-CONFIG_BLK_DEV_IDECS=y
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_TASKFILE_IO=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_IDEPCI is not set
-# CONFIG_IDE_ARM is not set
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-# CONFIG_SCSI is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_NETLINK_DEV=y
-CONFIG_UNIX=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-# CONFIG_IP_PNP_DHCP is not set
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETFILTER is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_FASTROUTE is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_ETHERTAP is not set
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-# CONFIG_MII is not set
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_PCI is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_TIGON3 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# PCMCIA network device support
-#
-CONFIG_NET_PCMCIA=y
-# CONFIG_PCMCIA_3C589 is not set
-# CONFIG_PCMCIA_3C574 is not set
-CONFIG_PCMCIA_FMVJ18X=y
-CONFIG_PCMCIA_PCNET=m
-# CONFIG_PCMCIA_NMCLAN is not set
-# CONFIG_PCMCIA_SMC91C92 is not set
-# CONFIG_PCMCIA_XIRC2PS is not set
-# CONFIG_PCMCIA_AXNET is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input I/O drivers
-#
-# CONFIG_GAMEPORT is not set
-CONFIG_SOUND_GAMEPORT=y
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PCIPS2 is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-# CONFIG_SERIAL_8250_CS is not set
-CONFIG_SERIAL_8250_NR_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_QIC02_TAPE is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_FTAPE is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-
-#
-# PCMCIA character devices
-#
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# Graphics support
-#
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB is not set
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-CONFIG_AUTOFS_FS=y
-CONFIG_AUTOFS4_FS=y
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-# CONFIG_FAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_SYSFS=y
-# CONFIG_DEVFS_FS is not set
-CONFIG_DEVPTS_FS_XATTR=y
-CONFIG_DEVPTS_FS_SECURITY=y
-# CONFIG_TMPFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-CONFIG_JFFS_FS=y
-CONFIG_JFFS_FS_VERBOSE=0
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_FS_NAND is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-# CONFIG_NFS_V3 is not set
-# CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=y
-# CONFIG_NFSD_V3 is not set
-# CONFIG_NFSD_TCP is not set
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_EXPORTFS=y
-CONFIG_SUNRPC=y
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_SMB_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-# CONFIG_NLS is not set
-
-#
-# Kernel hacking
-#
-CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE=""
-# CONFIG_DEBUG_KERNEL is not set
-
-#
-# Security options
-#
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=y
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA256 is not set
-CONFIG_CRYPTO_SHA512=y
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-CONFIG_CRYPTO_TWOFISH=y
-# CONFIG_CRYPTO_SERPENT is not set
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_ARC4 is not set
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_MICHAEL_MIC=y
-CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Library routines
-#
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig
index f1c310de72cc..2ae2e3d4cc89 100644
--- a/arch/mips/configs/ev64120_defconfig
+++ b/arch/mips/configs/ev64120_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -146,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -171,7 +173,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -258,6 +260,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -592,5 +595,6 @@ CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/d
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig
index 506214b4bbeb..927098b48e04 100644
--- a/arch/mips/configs/ev96100_defconfig
+++ b/arch/mips/configs/ev96100_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -146,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -252,6 +254,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -549,5 +552,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig
index 83d850031444..22f427c46eea 100644
--- a/arch/mips/configs/ip22_defconfig
+++ b/arch/mips/configs/ip22_defconfig
@@ -29,6 +29,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -148,6 +149,7 @@ CONFIG_BINFMT_IRIX=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -362,6 +364,8 @@ CONFIG_IP_NF_COMPAT_IPCHAINS=m
CONFIG_IP_NF_COMPAT_IPFWADM=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
#
# IPv6: Netfilter Configuration
@@ -438,8 +442,11 @@ CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_NET_CLS_IND is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
+# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
#
@@ -696,6 +703,8 @@ CONFIG_UDF_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
@@ -767,7 +776,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
@@ -801,6 +809,7 @@ CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
@@ -855,6 +864,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index a75dfcdd4bf4..490f2bc83788 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_defconfig
@@ -27,6 +27,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -153,6 +154,7 @@ CONFIG_BINFMT_ELF32=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -178,7 +180,7 @@ CONFIG_BINFMT_ELF32=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
#
@@ -218,12 +220,12 @@ CONFIG_SCSI_SPI_ATTRS=y
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
@@ -338,6 +340,7 @@ CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_GRED=y
CONFIG_NET_SCH_DSMARK=y
CONFIG_NET_SCH_DELAY=y
+# CONFIG_NET_SCH_INGRESS is not set
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
@@ -346,8 +349,11 @@ CONFIG_NET_CLS_ROUTE4=y
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=y
CONFIG_NET_CLS_U32=y
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_NET_CLS_IND is not set
CONFIG_NET_CLS_RSVP=y
CONFIG_NET_CLS_RSVP6=y
+# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
#
@@ -657,7 +663,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
@@ -707,6 +712,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index f6e3592da18b..02c732ab3236 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_defconfig
@@ -20,6 +20,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
@@ -27,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -141,6 +143,7 @@ CONFIG_BINFMT_ELF32=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -167,7 +170,7 @@ CONFIG_BINFMT_ELF32=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
#
@@ -208,6 +211,7 @@ CONFIG_SCSI_LOGGING=y
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=y
@@ -219,7 +223,6 @@ CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
@@ -321,6 +324,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -632,7 +636,6 @@ CONFIG_PARTITION_ADVANCED=y
# CONFIG_MAC_PARTITION is not set
# CONFIG_MSDOS_PARTITION is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
@@ -663,5 +666,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig
index 3460da6ad76a..8bbe2b3ee601 100644
--- a/arch/mips/configs/it8172_defconfig
+++ b/arch/mips/configs/it8172_defconfig
@@ -21,6 +21,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
@@ -28,6 +29,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -141,6 +143,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -231,6 +234,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -326,6 +330,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -650,5 +655,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig
index 4f3e01b3b8cc..c809e097b4c8 100644
--- a/arch/mips/configs/ivr_defconfig
+++ b/arch/mips/configs/ivr_defconfig
@@ -21,6 +21,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
@@ -28,6 +29,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -141,6 +143,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -166,7 +169,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -179,6 +182,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -276,6 +280,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -604,5 +609,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig
index f28e0657e6a7..b6f70da712ab 100644
--- a/arch/mips/configs/jaguar-atx_defconfig
+++ b/arch/mips/configs/jaguar-atx_defconfig
@@ -28,6 +28,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -39,7 +40,10 @@ CONFIG_IOSCHED_CFQ=y
#
# Loadable module support
#
-# CONFIG_MODULES is not set
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+CONFIG_KMOD=y
#
# Machine selection
@@ -73,7 +77,8 @@ CONFIG_LIMITED_DMA=y
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_IRQ_CPU=y
CONFIG_IRQ_CPU_RM7K=y
-CONFIG_MIPS_MV64340=y
+CONFIG_IRQ_MV64340=y
+CONFIG_PCI_MARVELL=y
CONFIG_SWAP_IO_SPACE=y
CONFIG_BOOT_ELF32=y
CONFIG_MIPS_L1_CACHE_SHIFT=5
@@ -140,6 +145,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -164,7 +170,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -234,6 +240,7 @@ CONFIG_IP_PNP_BOOTP=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -286,6 +293,7 @@ CONFIG_EEPRO100=y
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
#
# Ethernet (1000 Mbit)
@@ -538,5 +546,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig
index 17b715a04735..463fb5c33120 100644
--- a/arch/mips/configs/jmr3927_defconfig
+++ b/arch/mips/configs/jmr3927_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -137,6 +138,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -162,7 +164,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -250,6 +252,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -460,6 +463,7 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# Graphics support
#
+# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ASILIANT is not set
@@ -612,5 +616,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig
index d5874a83fbf4..2fb26c7f661e 100644
--- a/arch/mips/configs/lasat200_defconfig
+++ b/arch/mips/configs/lasat200_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -148,6 +149,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -229,7 +231,7 @@ CONFIG_MTD_LASAT=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -242,6 +244,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_BLK_DEV_IDECD is not set
@@ -365,6 +368,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -698,5 +702,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index 87e171b5f008..f5446e44c17a 100644
--- a/arch/mips/configs/malta_defconfig
+++ b/arch/mips/configs/malta_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -150,6 +151,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -175,7 +177,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_INITRD is not set
@@ -264,6 +266,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -319,6 +322,7 @@ CONFIG_PCNET32=y
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
# CONFIG_LAN_SAA9730 is not set
#
@@ -613,5 +617,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/mirage_defconfig b/arch/mips/configs/mirage_defconfig
index 2b71a0410b4e..369d8b04b252 100644
--- a/arch/mips/configs/mirage_defconfig
+++ b/arch/mips/configs/mirage_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -147,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -273,6 +275,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +610,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -661,6 +665,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig
index a78627cddd1d..96735cb12363 100644
--- a/arch/mips/configs/mpc30x_defconfig
+++ b/arch/mips/configs/mpc30x_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -54,7 +55,6 @@ CONFIG_KMOD=y
CONFIG_MACH_VR41XX=y
# CONFIG_CASIO_E55 is not set
# CONFIG_IBM_WORKPAD is not set
-# CONFIG_NEC_EAGLE is not set
# CONFIG_TANBAC_TB0226 is not set
# CONFIG_TANBAC_TB0229 is not set
CONFIG_VICTOR_MPC30X=y
@@ -147,6 +147,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -172,7 +173,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -261,6 +262,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +609,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index 2b71a0410b4e..369d8b04b252 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -147,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -273,6 +275,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +610,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -661,6 +665,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
index 704bd7e7845d..167007dd8db1 100644
--- a/arch/mips/configs/ocelot_c_defconfig
+++ b/arch/mips/configs/ocelot_c_defconfig
@@ -27,6 +27,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -74,7 +75,8 @@ CONFIG_HAVE_DEC_LOCK=y
CONFIG_DMA_NONCOHERENT=y
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_IRQ_CPU=y
-CONFIG_MIPS_MV64340=y
+CONFIG_IRQ_MV64340=y
+CONFIG_PCI_MARVELL=y
CONFIG_SWAP_IO_SPACE=y
CONFIG_MIPS_L1_CACHE_SHIFT=5
# CONFIG_FB is not set
@@ -139,6 +141,7 @@ CONFIG_BINFMT_ELF32=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -164,7 +167,7 @@ CONFIG_BINFMT_ELF32=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
#
@@ -250,6 +253,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -580,5 +584,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig
index e83e3f965082..da60ba05f984 100644
--- a/arch/mips/configs/ocelot_defconfig
+++ b/arch/mips/configs/ocelot_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -144,6 +145,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -250,6 +252,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -548,5 +551,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig
index d8e4d007a8c5..fa2584125bc4 100644
--- a/arch/mips/configs/ocelot_g_defconfig
+++ b/arch/mips/configs/ocelot_g_defconfig
@@ -27,6 +27,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -75,6 +76,7 @@ CONFIG_DMA_NONCOHERENT=y
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_IRQ_CPU=y
CONFIG_IRQ_CPU_RM7K=y
+CONFIG_PCI_MARVELL=y
CONFIG_SWAP_IO_SPACE=y
# CONFIG_SYSCLK_75 is not set
# CONFIG_SYSCLK_83 is not set
@@ -142,6 +144,7 @@ CONFIG_BINFMT_ELF32=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -167,7 +170,7 @@ CONFIG_BINFMT_ELF32=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
#
@@ -253,6 +256,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -583,5 +587,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/osprey_defconfig b/arch/mips/configs/osprey_defconfig
index c7a3bbd48560..22387c2e405f 100644
--- a/arch/mips/configs/osprey_defconfig
+++ b/arch/mips/configs/osprey_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -135,6 +136,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -242,6 +244,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -540,5 +543,6 @@ CONFIG_CMDLINE="ip=bootp ether=46,0x03fe0300,eth0"
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/pb1000_defconfig b/arch/mips/configs/pb1000_defconfig
index 2b71a0410b4e..369d8b04b252 100644
--- a/arch/mips/configs/pb1000_defconfig
+++ b/arch/mips/configs/pb1000_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -147,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -273,6 +275,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +610,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -661,6 +665,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index 2b71a0410b4e..369d8b04b252 100644
--- a/arch/mips/configs/pb1100_defconfig
+++ b/arch/mips/configs/pb1100_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -147,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -273,6 +275,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +610,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -661,6 +665,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index fbf01a172524..0ca1885fa9c0 100644
--- a/arch/mips/configs/pb1500_defconfig
+++ b/arch/mips/configs/pb1500_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -150,6 +151,7 @@ CONFIG_MMU=y
CONFIG_PCMCIA=m
# CONFIG_PCMCIA_DEBUG is not set
# CONFIG_YENTA is not set
+CONFIG_PD6729=m
# CONFIG_I82092 is not set
# CONFIG_TCIC is not set
# CONFIG_PCMCIA_AU1X00 is not set
@@ -173,6 +175,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -200,7 +203,7 @@ CONFIG_TRAD_SIGNALS=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -213,6 +216,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECS is not set
@@ -357,6 +361,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -721,6 +726,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -775,6 +781,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=y
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index 382b9f126477..147ebbde0b66 100644
--- a/arch/mips/configs/pb1550_defconfig
+++ b/arch/mips/configs/pb1550_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -149,6 +150,7 @@ CONFIG_MMU=y
CONFIG_PCMCIA=m
# CONFIG_PCMCIA_DEBUG is not set
# CONFIG_YENTA is not set
+CONFIG_PD6729=m
# CONFIG_I82092 is not set
# CONFIG_TCIC is not set
CONFIG_PCMCIA_AU1X00=m
@@ -172,6 +174,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -199,7 +202,7 @@ CONFIG_TRAD_SIGNALS=y
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -212,6 +215,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECS is not set
@@ -356,6 +360,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -720,6 +725,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -774,6 +780,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig
index 68d9ef86ac1c..5413cd0615db 100644
--- a/arch/mips/configs/rm200_defconfig
+++ b/arch/mips/configs/rm200_defconfig
@@ -21,6 +21,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
@@ -29,6 +30,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -152,6 +154,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -218,7 +221,7 @@ CONFIG_PARIDE_ON26=m
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_LBD is not set
@@ -261,6 +264,7 @@ CONFIG_SCSI_SPI_ATTRS=y
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
@@ -270,7 +274,6 @@ CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
@@ -335,6 +338,9 @@ CONFIG_MD_RAID5=m
CONFIG_MD_MULTIPATH=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_CRYPT is not set
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_ZERO is not set
#
# Fusion MPT device support
@@ -453,6 +459,8 @@ CONFIG_IP_NF_COMPAT_IPCHAINS=m
CONFIG_IP_NF_COMPAT_IPFWADM=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_RAW=m
+# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
+# CONFIG_IP_NF_MATCH_REALM is not set
#
# IPv6: Netfilter Configuration
@@ -554,8 +562,11 @@ CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_NET_CLS_IND is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
+# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
#
@@ -655,6 +666,7 @@ CONFIG_EEPRO100=m
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
# CONFIG_LAN_SAA9730 is not set
# CONFIG_NET_POCKET is not set
@@ -880,6 +892,7 @@ CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_RW_DETECT is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_DPCM=y
@@ -1089,6 +1102,8 @@ CONFIG_UDF_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
@@ -1148,6 +1163,7 @@ CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_POSIX is not set
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
@@ -1177,7 +1193,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
@@ -1211,6 +1226,7 @@ CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
+# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
@@ -1265,6 +1281,7 @@ CONFIG_CRYPTO_TEST=m
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index 7d3c4df26207..02b8829f14e3 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_defconfig
@@ -27,6 +27,7 @@ CONFIG_LOG_BUF_SHIFT=15
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -179,6 +180,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -204,7 +206,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=9220
CONFIG_BLK_DEV_INITRD=y
@@ -219,6 +221,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=y
@@ -317,6 +320,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -649,6 +653,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=y
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig
index d9b6532c23c4..b641d81e4da6 100644
--- a/arch/mips/configs/sead_defconfig
+++ b/arch/mips/configs/sead_defconfig
@@ -27,6 +27,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -139,6 +140,7 @@ CONFIG_EMBEDDED_RAMDISK_IMAGE="ramdisk.gz"
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -428,5 +430,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=y
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig
index 818bf63b72ea..b5a0d15728ad 100644
--- a/arch/mips/configs/tb0226_defconfig
+++ b/arch/mips/configs/tb0226_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -54,7 +55,6 @@ CONFIG_KMOD=y
CONFIG_MACH_VR41XX=y
# CONFIG_CASIO_E55 is not set
# CONFIG_IBM_WORKPAD is not set
-# CONFIG_NEC_EAGLE is not set
CONFIG_TANBAC_TB0226=y
# CONFIG_TANBAC_TB0229 is not set
# CONFIG_VICTOR_MPC30X is not set
@@ -143,6 +143,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -178,6 +179,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_BLK_DEV_IDECD is not set
@@ -310,6 +312,7 @@ CONFIG_SYN_COOKIES=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -553,6 +556,8 @@ CONFIG_ZISOFS_FS=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
@@ -644,6 +649,7 @@ CONFIG_NLS_CODEPAGE_932=m
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -679,6 +685,7 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/tb0229_defconfig b/arch/mips/configs/tb0229_defconfig
index 146c70cd6944..77deb2ba836e 100644
--- a/arch/mips/configs/tb0229_defconfig
+++ b/arch/mips/configs/tb0229_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -54,7 +55,6 @@ CONFIG_KMOD=y
CONFIG_MACH_VR41XX=y
# CONFIG_CASIO_E55 is not set
# CONFIG_IBM_WORKPAD is not set
-# CONFIG_NEC_EAGLE is not set
# CONFIG_TANBAC_TB0226 is not set
CONFIG_TANBAC_TB0229=y
# CONFIG_VICTOR_MPC30X is not set
@@ -148,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -174,7 +175,7 @@ CONFIG_TRAD_SIGNALS=y
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_INITRD is not set
@@ -271,6 +272,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -544,6 +546,8 @@ CONFIG_ZISOFS_FS=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
@@ -635,6 +639,7 @@ CONFIG_NLS_CODEPAGE_932=m
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -670,6 +675,7 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig
index e1923900c710..228a685f1599 100644
--- a/arch/mips/configs/workpad_defconfig
+++ b/arch/mips/configs/workpad_defconfig
@@ -28,6 +28,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -54,7 +55,6 @@ CONFIG_KMOD=y
CONFIG_MACH_VR41XX=y
# CONFIG_CASIO_E55 is not set
CONFIG_IBM_WORKPAD=y
-# CONFIG_NEC_EAGLE is not set
# CONFIG_TANBAC_TB0226 is not set
# CONFIG_TANBAC_TB0229 is not set
# CONFIG_VICTOR_MPC30X is not set
@@ -143,6 +143,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -178,6 +179,7 @@ CONFIG_BLK_DEV_IDE=y
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
+# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDECD is not set
@@ -277,6 +279,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,5 +610,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/configs/xxs1500_defconfig b/arch/mips/configs/xxs1500_defconfig
index 188176e34b83..f28e04a4e619 100644
--- a/arch/mips/configs/xxs1500_defconfig
+++ b/arch/mips/configs/xxs1500_defconfig
@@ -28,6 +28,7 @@ CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -147,6 +148,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
@@ -273,6 +275,7 @@ CONFIG_XFRM=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -607,6 +610,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
@@ -661,6 +665,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=y
#
# Library routines
#
+CONFIG_CRC16=m
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig
index 37d39a6677b5..bf259d809351 100644
--- a/arch/mips/configs/yosemite_defconfig
+++ b/arch/mips/configs/yosemite_defconfig
@@ -28,6 +28,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -137,6 +138,7 @@ CONFIG_TRAD_SIGNALS=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -161,7 +163,7 @@ CONFIG_TRAD_SIGNALS=y
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -232,6 +234,7 @@ CONFIG_IP_PNP_BOOTP=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -517,5 +520,6 @@ CONFIG_CMDLINE=""
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/mips/defconfig b/arch/mips/defconfig
index 83d850031444..22f427c46eea 100644
--- a/arch/mips/defconfig
+++ b/arch/mips/defconfig
@@ -29,6 +29,7 @@ CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -148,6 +149,7 @@ CONFIG_BINFMT_IRIX=y
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Memory Technology Devices (MTD)
@@ -362,6 +364,8 @@ CONFIG_IP_NF_COMPAT_IPCHAINS=m
CONFIG_IP_NF_COMPAT_IPFWADM=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
#
# IPv6: Netfilter Configuration
@@ -438,8 +442,11 @@ CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_NET_CLS_IND is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
+# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
#
@@ -696,6 +703,8 @@ CONFIG_UDF_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
@@ -767,7 +776,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
@@ -801,6 +809,7 @@ CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
@@ -855,6 +864,7 @@ CONFIG_CRYPTO_CRC32C=m
#
# Library routines
#
+CONFIG_CRC16=m
# CONFIG_CRC32 is not set
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 3a7f766fd961..3fd45773771e 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -38,7 +38,7 @@ obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_I8259) += i8259.o
obj-$(CONFIG_IRQ_CPU) += irq_cpu.o
obj-$(CONFIG_IRQ_CPU_RM7K) += irq-rm7000.o
-obj-$(CONFIG_MIPS_MV64340) += irq-mv6434x.o
+obj-$(CONFIG_IRQ_MV64340) += irq-mv6434x.o
obj-$(CONFIG_MIPS32) += scall32-o32.o
obj-$(CONFIG_MIPS64) += scall64-64.o
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c
index 1ed5ae59167c..cb9d2fe598f9 100644
--- a/arch/mips/kernel/irq-mv6434x.c
+++ b/arch/mips/kernel/irq-mv6434x.c
@@ -44,7 +44,7 @@ static inline void mask_mv64340_irq(unsigned int irq)
MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
} else {
value = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH);
- value &= ~(1 << (irq - (irq_base - 32)));
+ value &= ~(1 << (irq - irq_base - 32));
MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
}
}
@@ -60,7 +60,7 @@ static inline void unmask_mv64340_irq(unsigned int irq)
MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
} else {
value = MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH);
- value |= 1 << (irq - (irq_base - 32));
+ value |= 1 << (irq - irq_base - 32);
MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
}
}
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 83c9368de980..af1b42b58278 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -9,7 +9,7 @@
* Copyright (C) 1999 Silicon Graphics, Inc.
* Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
* Copyright (C) 2000, 01 MIPS Technologies, Inc.
- * Copyright (C) 2002, 2003 Maciej W. Rozycki
+ * Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki
*/
#include <linux/config.h>
#include <linux/init.h>
@@ -23,6 +23,7 @@
#include <asm/bootinfo.h>
#include <asm/branch.h>
+#include <asm/break.h>
#include <asm/cpu.h>
#include <asm/fpu.h>
#include <asm/module.h>
@@ -541,9 +542,12 @@ asmlinkage void do_bp(struct pt_regs *regs)
/*
* There is the ancient bug in the MIPS assemblers that the break
* code starts left to bit 16 instead to bit 6 in the opcode.
- * Gas is bug-compatible ...
+ * Gas is bug-compatible, but not always, grrr...
+ * We handle both cases with a simple heuristics. --macro
*/
- bcode = ((opcode >> 16) & ((1 << 20) - 1));
+ bcode = ((opcode >> 6) & ((1 << 20) - 1));
+ if (bcode < (1 << 10))
+ bcode <<= 10;
/*
* (A short test says that IRIX 5.3 sends SIGTRAP for all break
@@ -552,9 +556,9 @@ asmlinkage void do_bp(struct pt_regs *regs)
* But should we continue the brokenness??? --macro
*/
switch (bcode) {
- case 6:
- case 7:
- if (bcode == 7)
+ case BRK_OVERFLOW << 10:
+ case BRK_DIVZERO << 10:
+ if (bcode == (BRK_DIVZERO << 10))
info.si_code = FPE_INTDIV;
else
info.si_code = FPE_INTOVF;
@@ -580,7 +584,7 @@ asmlinkage void do_tr(struct pt_regs *regs)
/* Immediate versions don't provide a code. */
if (!(opcode & OPCODE))
- tcode = ((opcode >> 6) & ((1 << 20) - 1));
+ tcode = ((opcode >> 6) & ((1 << 10) - 1));
/*
* (A short test says that IRIX 5.3 sends SIGTRAP for all trap
@@ -589,9 +593,9 @@ asmlinkage void do_tr(struct pt_regs *regs)
* But should we continue the brokenness??? --macro
*/
switch (tcode) {
- case 6:
- case 7:
- if (tcode == 7)
+ case BRK_OVERFLOW:
+ case BRK_DIVZERO:
+ if (tcode == BRK_DIVZERO)
info.si_code = FPE_INTDIV;
else
info.si_code = FPE_INTOVF;
diff --git a/arch/mips/mm/sc-rm7k.c b/arch/mips/mm/sc-rm7k.c
index ec3ec9e906f9..9796a2279982 100644
--- a/arch/mips/mm/sc-rm7k.c
+++ b/arch/mips/mm/sc-rm7k.c
@@ -147,55 +147,47 @@ static void rm7k_sc_disable(void)
clear_c0_config(1<<3); /* CONF_SE */
}
-static inline int __init rm7k_sc_probe(void)
+struct bcache_ops rm7k_sc_ops = {
+ .bc_enable = rm7k_sc_enable,
+ .bc_disable = rm7k_sc_disable,
+ .bc_wback_inv = rm7k_sc_wback_inv,
+ .bc_inv = rm7k_sc_inv
+};
+
+void __init rm7k_sc_init(void)
{
unsigned int config = read_c0_config();
- if ((config >> 31) & 1)
- return 0;
+ if ((config >> 31) & 1) /* Bit 31 set -> no S-Cache */
+ return;
printk(KERN_INFO "Secondary cache size %dK, linesize %d bytes.\n",
(scache_size >> 10), sc_lsize);
- if ((config >> 3) & 1) /* CONF_SE */
- return 1;
+ if (!((config >> 3) & 1)) /* CONF_SE */
+ rm7k_sc_enable();
/*
* While we're at it let's deal with the tertiary cache.
*/
- if ((config >> 17) & 1)
- return 1;
-
- /*
- * We can't enable the L3 cache yet. There may be board-specific
- * magic necessary to turn it on, and blindly asking the CPU to
- * start using it would may give cache errors.
- *
- * Also, board-specific knowledge may allow us to use the
- * CACHE Flash_Invalidate_T instruction if the tag RAM supports
- * it, and may specify the size of the L3 cache so we don't have
- * to probe it.
- */
- printk(KERN_INFO "Tertiary cache present, %s enabled\n",
- config&(1<<12) ? "already" : "not (yet)");
-
- if ((config >> 12) & 1)
- rm7k_tcache_enabled = 1;
-
- return 1;
-}
-
-struct bcache_ops rm7k_sc_ops = {
- .bc_enable = rm7k_sc_enable,
- .bc_disable = rm7k_sc_disable,
- .bc_wback_inv = rm7k_sc_wback_inv,
- .bc_inv = rm7k_sc_inv
-};
-
-void __init rm7k_sc_init(void)
-{
- if (rm7k_sc_probe()) {
- rm7k_sc_enable();
- bcops = &rm7k_sc_ops;
+ if (!((config >> 17) & 1)) {
+
+ /*
+ * We can't enable the L3 cache yet. There may be board-specific
+ * magic necessary to turn it on, and blindly asking the CPU to
+ * start using it would may give cache errors.
+ *
+ * Also, board-specific knowledge may allow us to use the
+ * CACHE Flash_Invalidate_T instruction if the tag RAM supports
+ * it, and may specify the size of the L3 cache so we don't have
+ * to probe it.
+ */
+ printk(KERN_INFO "Tertiary cache present, %s enabled\n",
+ config&(1<<12) ? "already" : "not (yet)");
+
+ if ((config >> 12) & 1)
+ rm7k_tcache_enabled = 1;
}
+
+ bcops = &rm7k_sc_ops;
}
diff --git a/arch/mips/momentum/jaguar_atx/prom.c b/arch/mips/momentum/jaguar_atx/prom.c
index 0ec82a10df5c..df52d2adf49d 100644
--- a/arch/mips/momentum/jaguar_atx/prom.c
+++ b/arch/mips/momentum/jaguar_atx/prom.c
@@ -33,7 +33,6 @@ extern void ja_setup_console(void);
struct callvectors *debug_vectors;
-extern unsigned long mv64340_base;
extern unsigned long cpu_clock;
const char *get_system_type(void)
@@ -185,13 +184,13 @@ void __init prom_init(void)
break;
if (strncmp("gtbase", ptr, strlen("gtbase")) == 0) {
- mv64340_base = simple_strtol(ptr + strlen("gtbase="),
+ marvell_base = simple_strtol(ptr + strlen("gtbase="),
NULL, 16);
- if ((mv64340_base & 0xffffffff00000000) == 0)
- mv64340_base |= 0xffffffff00000000;
+ if ((marvell_base & 0xffffffff00000000) == 0)
+ marvell_base |= 0xffffffff00000000;
- printk("mv64340_base set to 0x%016lx\n", mv64340_base);
+ printk("marvell_base set to 0x%016lx\n", marvell_base);
}
if (strncmp("cpuclock", ptr, strlen("cpuclock")) == 0) {
cpu_clock = simple_strtol(ptr + strlen("cpuclock="),
@@ -218,7 +217,7 @@ void __init prom_init(void)
while (*env) {
if (strncmp("gtbase", *env, strlen("gtbase")) == 0) {
- mv64340_base = simple_strtol(*env + strlen("gtbase="),
+ marvell_base = simple_strtol(*env + strlen("gtbase="),
NULL, 16);
}
if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) {
diff --git a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c
index 261250737528..a849215b5352 100644
--- a/arch/mips/momentum/jaguar_atx/setup.c
+++ b/arch/mips/momentum/jaguar_atx/setup.c
@@ -46,6 +46,7 @@
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/bootmem.h>
+#include <linux/module.h>
#include <linux/pci.h>
#include <linux/swap.h>
#include <linux/ioport.h>
@@ -119,19 +120,21 @@ static __init void wire_stupidity_into_tlb(void)
// add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000),
// 0xfe000000UL, PM_16M);
- mv64340_base = 0xf4000000;
+ marvell_base = 0xf4000000;
//mv64340_sram_base = 0xfe000000; /* Currently unused */
#endif
}
-unsigned long mv64340_base = 0xf4000000L;
+unsigned long marvell_base = 0xf4000000L;
unsigned long ja_fpga_base = JAGUAR_ATX_CS0_ADDR;
unsigned long uart_base = 0xfd000000L;
static unsigned char *rtc_base = (unsigned char*) 0xfc800000L;
+EXPORT_SYMBOL(marvell_base);
+
static __init int per_cpu_mappings(void)
{
- mv64340_base = (unsigned long) ioremap(0xf4000000, 0x10000);
+ marvell_base = (unsigned long) ioremap(0xf4000000, 0x10000);
ja_fpga_base = (unsigned long) ioremap(JAGUAR_ATX_CS0_ADDR, 0x1000);
uart_base = (unsigned long) ioremap(0xfd000000UL, 0x1000);
rtc_base = ioremap(0xfc000000UL, 0x8000);
@@ -233,12 +236,14 @@ static struct resource mv_pci_mem0_resource = {
.flags = IORESOURCE_MEM
};
-extern struct pci_ops mv64340_bus0_pci_ops;
-
-static struct pci_controller mv_bus0_controller = {
- .pci_ops = &mv64340_bus0_pci_ops,
- .mem_resource = &mv_pci_mem0_resource,
- .io_resource = &mv_pci_io_mem0_resource,
+static struct mv_pci_controller mv_bus0_controller = {
+ .pcic = {
+ .pci_ops = &mv_pci_ops,
+ .mem_resource = &mv_pci_mem0_resource,
+ .io_resource = &mv_pci_io_mem0_resource,
+ },
+ .config_addr = MV64340_PCI_0_CONFIG_ADDR,
+ .config_vreg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG,
};
static uint32_t mv_io_base, mv_io_size;
@@ -253,16 +258,16 @@ static void ja_pci0_init(void)
mem0_base = MV_READ(MV64340_PCI_0_MEMORY0_BASE_ADDR) << 16;
mem0_size = (MV_READ(MV64340_PCI_0_MEMORY0_SIZE) + 1) << 16;
- mv_pci_io_mem0_resource.start = 0;
- mv_pci_io_mem0_resource.end = io_size - 1;
- mv_pci_mem0_resource.start = mem0_base;
- mv_pci_mem0_resource.end = mem0_base + mem0_size - 1;
- mv_bus0_controller.mem_offset = mem0_base;
- mv_bus0_controller.io_offset = 0;
+ mv_pci_io_mem0_resource.start = 0;
+ mv_pci_io_mem0_resource.end = io_size - 1;
+ mv_pci_mem0_resource.start = mem0_base;
+ mv_pci_mem0_resource.end = mem0_base + mem0_size - 1;
+ mv_bus0_controller.pcic.mem_offset = mem0_base;
+ mv_bus0_controller.pcic.io_offset = 0;
ioport_resource.end = io_size - 1;
- register_pci_controller(&mv_bus0_controller);
+ register_pci_controller(&mv_bus0_controller.pcic);
mv_io_base = io_base;
mv_io_size = io_size;
@@ -278,12 +283,14 @@ static struct resource mv_pci_mem1_resource = {
.flags = IORESOURCE_MEM
};
-extern struct pci_ops mv64340_bus1_pci_ops;
-
-static struct pci_controller mv_bus1_controller = {
- .pci_ops = &mv64340_bus1_pci_ops,
- .mem_resource = &mv_pci_mem1_resource,
- .io_resource = &mv_pci_io_mem1_resource,
+static struct mv_pci_controller mv_bus1_controller = {
+ .pcic = {
+ .pci_ops = &mv_pci_ops,
+ .mem_resource = &mv_pci_mem1_resource,
+ .io_resource = &mv_pci_io_mem1_resource,
+ },
+ .config_addr = MV64340_PCI_1_CONFIG_ADDR,
+ .config_vreg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG,
};
static __init void ja_pci1_init(void)
@@ -301,16 +308,16 @@ static __init void ja_pci1_init(void)
* the first. A gap is no problem but would waste address space for
* remapping the port space.
*/
- mv_pci_io_mem1_resource.start = mv_io_size;
- mv_pci_io_mem1_resource.end = mv_io_size + io_size - 1;
- mv_pci_mem1_resource.start = mem0_base;
- mv_pci_mem1_resource.end = mem0_base + mem0_size - 1;
- mv_bus1_controller.mem_offset = mem0_base;
- mv_bus1_controller.io_offset = 0;
+ mv_pci_io_mem1_resource.start = mv_io_size;
+ mv_pci_io_mem1_resource.end = mv_io_size + io_size - 1;
+ mv_pci_mem1_resource.start = mem0_base;
+ mv_pci_mem1_resource.end = mem0_base + mem0_size - 1;
+ mv_bus1_controller.pcic.mem_offset = mem0_base;
+ mv_bus1_controller.pcic.io_offset = 0;
ioport_resource.end = io_base + io_size -mv_io_base - 1;
- register_pci_controller(&mv_bus1_controller);
+ register_pci_controller(&mv_bus1_controller.pcic);
mv_io_size = io_base + io_size - mv_io_base;
}
diff --git a/arch/mips/momentum/ocelot_c/prom.c b/arch/mips/momentum/ocelot_c/prom.c
index a01bedb4485c..762112965f52 100644
--- a/arch/mips/momentum/ocelot_c/prom.c
+++ b/arch/mips/momentum/ocelot_c/prom.c
@@ -29,7 +29,7 @@
struct callvectors* debug_vectors;
-extern unsigned long mv64340_base;
+extern unsigned long marvell_base;
extern unsigned long cpu_clock;
#ifdef CONFIG_MV64340_ETH
@@ -180,13 +180,13 @@ void __init prom_init(void)
break;
if (strncmp("gtbase", ptr, strlen("gtbase")) == 0) {
- mv64340_base = simple_strtol(ptr + strlen("gtbase="),
+ marvell_base = simple_strtol(ptr + strlen("gtbase="),
NULL, 16);
- if ((mv64340_base & 0xffffffff00000000) == 0)
- mv64340_base |= 0xffffffff00000000;
+ if ((marvell_base & 0xffffffff00000000) == 0)
+ marvell_base |= 0xffffffff00000000;
- printk("mv64340_base set to 0x%016lx\n", mv64340_base);
+ printk("marvell_base set to 0x%016lx\n", marvell_base);
}
if (strncmp("cpuclock", ptr, strlen("cpuclock")) == 0) {
cpu_clock = simple_strtol(ptr + strlen("cpuclock="),
@@ -213,7 +213,7 @@ void __init prom_init(void)
while (*env) {
if (strncmp("gtbase", *env, strlen("gtbase")) == 0) {
- mv64340_base = simple_strtol(*env + strlen("gtbase="),
+ marvell_base = simple_strtol(*env + strlen("gtbase="),
NULL, 16);
}
if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) {
diff --git a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c
index 1bd2ba659bfd..021c00e3c07c 100644
--- a/arch/mips/momentum/ocelot_c/setup.c
+++ b/arch/mips/momentum/ocelot_c/setup.c
@@ -67,7 +67,7 @@
#include <asm/mv64340.h>
#include "ocelot_c_fpga.h"
-unsigned long mv64340_base;
+unsigned long marvell_base;
extern unsigned long mv64340_sram_base;
unsigned long cpu_clock;
@@ -117,7 +117,7 @@ void PMON_v2_setup(void)
/* m-sys and internal SRAM */
add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfffffffffe000000, PM_16M);
- mv64340_base = 0xfffffffff4000000;
+ marvell_base = 0xfffffffff4000000;
mv64340_sram_base = 0xfffffffffe000000;
#else
/* marvell and extra space */
@@ -127,7 +127,7 @@ void PMON_v2_setup(void)
/* m-sys and internal SRAM */
add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfe000000, PM_16M);
- mv64340_base = 0xf4000000;
+ marvell_base = 0xf4000000;
mv64340_sram_base = 0xfe000000;
#endif
}
diff --git a/arch/mips/momentum/ocelot_g/gt-irq.c b/arch/mips/momentum/ocelot_g/gt-irq.c
index 4ec4aefd6952..93708965be11 100644
--- a/arch/mips/momentum/ocelot_g/gt-irq.c
+++ b/arch/mips/momentum/ocelot_g/gt-irq.c
@@ -114,10 +114,10 @@ static irqreturn_t gt64240_p0int_irq(int irq, void *dev, struct pt_regs *regs)
int handled;
/* get the low interrupt cause register */
- irq_src = GT_READ(LOW_INTERRUPT_CAUSE_REGISTER);
+ irq_src = MV_READ(LOW_INTERRUPT_CAUSE_REGISTER);
/* get the mask register for this pin */
- irq_src_mask = GT_READ(PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW);
+ irq_src_mask = MV_READ(PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW);
/* mask off only the interrupts we're interested in */
irq_src = irq_src & irq_src_mask;
@@ -130,7 +130,7 @@ static irqreturn_t gt64240_p0int_irq(int irq, void *dev, struct pt_regs *regs)
irq_src &= ~0x00000100;
/* Clear any pending cause bits */
- GT_WRITE(TIMER_COUNTER_0_3_INTERRUPT_CAUSE, 0x0);
+ MV_WRITE(TIMER_COUNTER_0_3_INTERRUPT_CAUSE, 0x0);
/* handle the timer call */
do_timer(regs);
@@ -160,10 +160,10 @@ void gt64240_time_init(void)
static struct irqaction timer;
/* Stop the timer -- we'll use timer #0 */
- GT_WRITE(TIMER_COUNTER_0_3_CONTROL, 0x0);
+ MV_WRITE(TIMER_COUNTER_0_3_CONTROL, 0x0);
/* Load timer value for 100 Hz */
- GT_WRITE(TIMER_COUNTER0, bus_clock / 100);
+ MV_WRITE(TIMER_COUNTER0, bus_clock / 100);
/*
* Create the IRQ structure entry for the timer. Since we're too early
@@ -181,16 +181,16 @@ void gt64240_time_init(void)
enable_irq(6);
/* Clear any pending cause bits */
- GT_WRITE(TIMER_COUNTER_0_3_INTERRUPT_CAUSE, 0x0);
+ MV_WRITE(TIMER_COUNTER_0_3_INTERRUPT_CAUSE, 0x0);
/* Enable the interrupt for timer 0 */
- GT_WRITE(TIMER_COUNTER_0_3_INTERRUPT_MASK, 0x1);
+ MV_WRITE(TIMER_COUNTER_0_3_INTERRUPT_MASK, 0x1);
/* Enable the timer interrupt for GT-64240 pin P0_INT# */
- GT_WRITE (PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW, 0x100);
+ MV_WRITE (PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW, 0x100);
/* Configure and start the timer */
- GT_WRITE(TIMER_COUNTER_0_3_CONTROL, 0x3);
+ MV_WRITE(TIMER_COUNTER_0_3_CONTROL, 0x3);
}
void gt64240_irq_init(void)
diff --git a/arch/mips/momentum/ocelot_g/prom.c b/arch/mips/momentum/ocelot_g/prom.c
index 82bebaeb0087..6b4f577c2757 100644
--- a/arch/mips/momentum/ocelot_g/prom.c
+++ b/arch/mips/momentum/ocelot_g/prom.c
@@ -26,7 +26,7 @@
struct callvectors* debug_vectors;
-extern unsigned long gt64240_base;
+extern unsigned long marvell_base;
extern unsigned long bus_clock;
#ifdef CONFIG_GALILLEO_GT64240_ETH
@@ -69,7 +69,7 @@ void __init prom_init(void)
while (*env) {
if (strncmp("gtbase", *env, strlen("gtbase")) == 0) {
- gt64240_base = simple_strtol(*env + strlen("gtbase="),
+ marvell_base = simple_strtol(*env + strlen("gtbase="),
NULL, 16);
}
if (strncmp("busclock", *env, strlen("busclock")) == 0) {
diff --git a/arch/mips/momentum/ocelot_g/setup.c b/arch/mips/momentum/ocelot_g/setup.c
index 1d313eb56059..38a78ab8c830 100644
--- a/arch/mips/momentum/ocelot_g/setup.c
+++ b/arch/mips/momentum/ocelot_g/setup.c
@@ -67,7 +67,7 @@
extern unsigned char prom_mac_addr_base[6];
#endif
-unsigned long gt64240_base;
+unsigned long marvell_base;
/* These functions are used for rebooting or halting the machine*/
extern void momenco_ocelot_restart(char *command);
@@ -117,7 +117,7 @@ void PMON_v2_setup(void)
add_temporary_entry(ENTRYLO(0xfc800000), ENTRYLO(0xfc810000),
0xfc800000, PM_64K);
- gt64240_base = 0xf4000000;
+ marvell_base = 0xf4000000;
}
extern int rm7k_tcache_enabled;
@@ -133,7 +133,7 @@ static void __init setup_l3cache(unsigned long size)
printk("Enabling L3 cache...");
/* Enable the L3 cache in the GT64120A's CPU Configuration register */
- GT_WRITE(0, GT_READ(0) | (1<<14));
+ MV_WRITE(0, MV_READ(0) | (1<<14));
/* Enable the L3 cache in the CPU */
set_c0_config(1<<12 /* CONF_TE */);
@@ -239,7 +239,7 @@ static int __init momenco_ocelot_g_setup(void)
}
/* FIXME: Fix up the DiskOnChip mapping */
- GT_WRITE(0x468, 0xfef73);
+ MV_WRITE(0x468, 0xfef73);
return 0;
}
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 9cdb8b8ba00a..5ed03fa905a9 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -12,7 +12,7 @@ obj-$(CONFIG_MIPS_BONITO64) += ops-bonito64.o
obj-$(CONFIG_MIPS_GT64111) += ops-gt64111.o
obj-$(CONFIG_MIPS_GT64120) += ops-gt64120.o
obj-$(CONFIG_MIPS_GT96100) += ops-gt96100.o
-obj-$(CONFIG_MIPS_MV64340) += ops-mv64340.o
+obj-$(CONFIG_PCI_MARVELL) += ops-marvell.o
obj-$(CONFIG_MIPS_MSC) += ops-msc.o
obj-$(CONFIG_MIPS_NILE4) += ops-nile4.o
obj-$(CONFIG_MIPS_TX3927) += ops-jmr3927.o
@@ -38,8 +38,7 @@ obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o
obj-$(CONFIG_MOMENCO_JAGUAR_ATX)+= fixup-jaguar.o
obj-$(CONFIG_MOMENCO_OCELOT) += fixup-ocelot.o pci-ocelot.o
obj-$(CONFIG_MOMENCO_OCELOT_C) += fixup-ocelot-c.o pci-ocelot-c.o
-obj-$(CONFIG_MOMENCO_OCELOT_G) += fixup-ocelot-g.o ops-gt64240.o pci-ocelot-g.o
-obj-$(CONFIG_NEC_EAGLE) += fixup-eagle.o ops-vrc4173.o
+obj-$(CONFIG_MOMENCO_OCELOT_G) += fixup-ocelot-g.o pci-ocelot-g.o
obj-$(CONFIG_PMC_YOSEMITE) += fixup-yosemite.o ops-titan.o ops-titan-ht.o \
pci-yosemite.o
obj-$(CONFIG_SGI_IP27) += pci-ip27.o
diff --git a/arch/mips/pci/fixup-eagle.c b/arch/mips/pci/fixup-eagle.c
deleted file mode 100644
index ac6f9d845358..000000000000
--- a/arch/mips/pci/fixup-eagle.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * arch/mips/vr41xx/nec-eagle/pci_fixup.c
- *
- * The NEC Eagle/Hawk Board specific PCI fixups.
- *
- * Author: Yoichi Yuasa <you@mvista.com, or source@mvista.com>
- *
- * 2001-2002,2004 (c) MontaVista, Software, Inc. This file is licensed under
- * the terms of the GNU General Public License version 2. This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-#include <linux/init.h>
-#include <linux/pci.h>
-
-#include <asm/vr41xx/eagle.h>
-#include <asm/vr41xx/vrc4173.h>
-
-/*
- * Shortcuts
- */
-#define INTA CP_INTA_IRQ
-#define INTB CP_INTB_IRQ
-#define INTC CP_INTC_IRQ
-#define INTD CP_INTD_IRQ
-#define PCMCIA1 VRC4173_PCMCIA1_IRQ
-#define PCMCIA2 VRC4173_PCMCIA2_IRQ
-#define LAN LANINTA_IRQ
-#define SLOT PCISLOT_IRQ
-
-static char irq_tab_eagle[][5] __initdata = {
- [ 8] = { 0, INTA, INTB, INTC, INTD },
- [ 9] = { 0, INTD, INTA, INTB, INTC },
- [10] = { 0, INTC, INTD, INTA, INTB },
- [12] = { 0, PCMCIA1, 0, 0, 0 },
- [13] = { 0, PCMCIA2, 0, 0, 0 },
- [28] = { 0, LAN, 0, 0, 0 },
- [29] = { 0, SLOT, INTB, INTC, INTD },
-};
-
-/*
- * This is a multifunction device.
- */
-static char irq_func_tab[] __initdata = {
- VRC4173_CASCADE_IRQ,
- VRC4173_AC97_IRQ,
- VRC4173_USB_IRQ
-};
-
-int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
-{
- if (slot == 30)
- return irq_func_tab[PCI_FUNC(dev->devfn)];
-
- return irq_tab_eagle[slot][pin];
-}
-
-struct pci_fixup pcibios_fixups[] __initdata = {
- { .pass = 0, },
-};
diff --git a/arch/mips/pci/ops-gt64240.c b/arch/mips/pci/ops-gt64240.c
deleted file mode 100644
index 6929faa65490..000000000000
--- a/arch/mips/pci/ops-gt64240.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer
- * Author: Matthew Dharm <mdharm@momenco.com>
- * Copyright (C) 2004 Ralf Baechle <ralf@linux-mips.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <asm/io.h>
-#include <asm/gt64240.h>
-
-
-#define MASTER_ABORT_BIT 0x100
-
-/*
- * galileo_pcibios_(read/write)_config_(dword/word/byte) -
- *
- * reads/write a dword/word/byte register from the configuration space
- * of a device.
- *
- * Note that bus 0 and bus 1 are local, and we assume all other busses are
- * bridged from bus 1. This is a safe assumption, since any other
- * configuration will require major modifications to the CP7000G
- *
- * Inputs :
- * bus - bus number
- * dev - device number
- * offset - register offset in the configuration space
- * val - value to be written / read
- *
- * Outputs :
- * PCIBIOS_SUCCESSFUL when operation was succesfull
- * PCIBIOS_DEVICE_NOT_FOUND when the bus or dev is errorneous
- * PCIBIOS_BAD_REGISTER_NUMBER when accessing non aligned
- */
-
-
-static int gt_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
- int size, u32 *val, u32 address_reg, u32 data_reg)
-{
- uint32_t address;
- int dev, busno;
-
- busno = bus->number;
- dev = PCI_SLOT(devfn);
-
- /* verify the range */
- if (dev == 31)
- return PCIBIOS_DEVICE_NOT_FOUND;
-
- address = (busno << 16) | (devfn << 8) | (offset & 0xfc) | 0x80000000;
-
- /* start the configuration cycle */
- GT_WRITE(address_reg, address);
-
- switch (size) {
- case 1:
- GT_READ_8(data_reg + (offset & 0x3), val);
- break;
- case 2:
- GT_READ_16(data_reg + (offset & 0x3), val);
- break;
- case 4:
- *val = GT_READ(data_reg);
- break;
- }
-
- return PCIBIOS_SUCCESSFUL;
-}
-
-static int gt_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
- int size, u32 val, u32 address_reg, u32 data_reg)
-{
- unsigned int address;
- int dev, busno;
-
- busno = bus->number;
- dev = PCI_SLOT(devfn);
-
- /* verify the range */
- if (dev == 31)
- return PCIBIOS_DEVICE_NOT_FOUND;
-
- address = (busno << 16) | (devfn << 8) | (offset & 0xfc) | 0x80000000;
-
- /* start the configuration cycle */
- GT_WRITE(address_reg, address);
-
- switch (size) {
- case 1:
- GT_WRITE_8(data_reg + (offset & 0x3), val);
- break;
- case 2:
- GT_WRITE_16(data_reg + (offset & 0x3), val);
- break;
- case 4:
- GT_WRITE(data_reg, val);
- break;
- }
-
- return PCIBIOS_SUCCESSFUL;
-}
-
-#define BUILD_PCI_OPS(host) \
- \
-static int gt_bus ## host ## _read_config(struct pci_bus *bus, \
- unsigned int devfn, int reg, int size, u32 * val) \
-{ \
- return gt_read_config(bus, devfn, reg, size, val, \
- PCI_ ## host ## CONFIGURATION_ADDRESS, \
- PCI_ ## host ## CONFIGURATION_DATA_VIRTUAL_REGISTER); \
-} \
- \
-static int gt_bus ## host ## _write_config(struct pci_bus *bus, \
- unsigned int devfn, int reg, int size, u32 val) \
-{ \
- return gt_write_config(bus, devfn, reg, size, val, \
- PCI_ ## host ## CONFIGURATION_ADDRESS, \
- PCI_ ## host ## CONFIGURATION_DATA_VIRTUAL_REGISTER); \
-} \
- \
-struct pci_ops gt_bus ## host ## _pci_ops = { \
- .read = gt_bus ## host ## _read_config, \
- .write = gt_bus ## host ## _write_config \
-};
-
-BUILD_PCI_OPS(0)
-BUILD_PCI_OPS(1)
diff --git a/arch/mips/pci/ops-marvell.c b/arch/mips/pci/ops-marvell.c
new file mode 100644
index 000000000000..1ac5c59199d1
--- /dev/null
+++ b/arch/mips/pci/ops-marvell.c
@@ -0,0 +1,93 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2003, 2004 Ralf Baechle (ralf@linux-mips.org)
+ */
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/pci.h>
+
+#include <asm/marvell.h>
+
+static int mv_read_config(struct pci_bus *bus, unsigned int devfn,
+ int where, int size, u32 * val)
+{
+ struct mv_pci_controller *mvbc = bus->sysdata;
+ unsigned long address_reg, data_reg;
+ u32 address;
+
+ address_reg = mvbc->config_addr;
+ data_reg = mvbc->config_vreg;
+
+ /* Accessing device 31 crashes those Marvells. Since years.
+ Will they ever make sane controllers ... */
+ if (PCI_SLOT(devfn) == 31)
+ return PCIBIOS_DEVICE_NOT_FOUND;
+
+ address = (bus->number << 16) | (devfn << 8) |
+ (where & 0xfc) | 0x80000000;
+
+ /* start the configuration cycle */
+ MV_WRITE(address_reg, address);
+
+ switch (size) {
+ case 1:
+ *val = MV_READ_8(data_reg + (where & 0x3));
+ break;
+
+ case 2:
+ *val = MV_READ_16(data_reg + (where & 0x3));
+ break;
+
+ case 4:
+ *val = MV_READ(data_reg);
+ break;
+ }
+
+ return PCIBIOS_SUCCESSFUL;
+}
+
+static int mv_write_config(struct pci_bus *bus, unsigned int devfn,
+ int where, int size, u32 val)
+{
+ struct mv_pci_controller *mvbc = bus->sysdata;
+ unsigned long address_reg, data_reg;
+ u32 address;
+
+ address_reg = mvbc->config_addr;
+ data_reg = mvbc->config_vreg;
+
+ /* Accessing device 31 crashes those Marvells. Since years.
+ Will they ever make sane controllers ... */
+ if (PCI_SLOT(devfn) == 31)
+ return PCIBIOS_DEVICE_NOT_FOUND;
+
+ address = (bus->number << 16) | (devfn << 8) |
+ (where & 0xfc) | 0x80000000;
+
+ /* start the configuration cycle */
+ MV_WRITE(address_reg, address);
+
+ switch (size) {
+ case 1:
+ MV_WRITE_8(data_reg + (where & 0x3), val);
+ break;
+
+ case 2:
+ MV_WRITE_16(data_reg + (where & 0x3), val);
+ break;
+
+ case 4:
+ MV_WRITE(data_reg, val);
+ break;
+ }
+
+ return PCIBIOS_SUCCESSFUL;
+}
+
+struct pci_ops mv_pci_ops = {
+ .read = mv_read_config,
+ .write = mv_write_config
+};
diff --git a/arch/mips/pci/ops-mv64340.c b/arch/mips/pci/ops-mv64340.c
deleted file mode 100644
index 235e01b302e7..000000000000
--- a/arch/mips/pci/ops-mv64340.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright 2002 Momentum Computer
- * Author: Matthew Dharm <mdharm@momenco.com>
- *
- * Copyright (C) 2003, 2004 Ralf Baechle (ralf@linux-mips.org)
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <linux/types.h>
-#include <linux/pci.h>
-#include <linux/kernel.h>
-#include <asm/mv64340.h>
-
-/*
- * galileo_pcibios_(read/write)_config_(dword/word/byte) -
- *
- * reads/write a dword/word/byte register from the configuration space
- * of a device.
- *
- * Note that bus 0 and bus 1 are local, and we assume all other busses are
- * bridged from bus 1. This is a safe assumption, since any other
- * configuration will require major modifications to the CP7000G
- *
- * Inputs :
- * bus - bus number
- * dev - device number
- * offset - register offset in the configuration space
- * val - value to be written / read
- *
- * Outputs :
- * PCIBIOS_SUCCESSFUL when operation was succesfull
- * PCIBIOS_DEVICE_NOT_FOUND when the bus or dev is errorneous
- * PCIBIOS_BAD_REGISTER_NUMBER when accessing non aligned
- */
-
-static int mv64340_read_config(struct pci_bus *bus, unsigned int devfn, int reg,
- int size, u32 * val, u32 address_reg, u32 data_reg)
-{
- u32 address;
-
- /* Accessing device 31 crashes the MV-64340. */
- if (PCI_SLOT(devfn) > 5)
- return PCIBIOS_DEVICE_NOT_FOUND;
-
- address = (bus->number << 16) | (devfn << 8) |
- (reg & 0xfc) | 0x80000000;
-
- /* start the configuration cycle */
- MV_WRITE(address_reg, address);
-
- switch (size) {
- case 1:
- *val = MV_READ_8(data_reg + (reg & 0x3));
- break;
-
- case 2:
- *val = MV_READ_16(data_reg + (reg & 0x3));
- break;
-
- case 4:
- *val = MV_READ(data_reg);
- break;
- }
-
- return PCIBIOS_SUCCESSFUL;
-}
-
-static int mv64340_write_config(struct pci_bus *bus, unsigned int devfn,
- int reg, int size, u32 val, u32 address_reg, u32 data_reg)
-{
- u32 address;
-
- /* Accessing device 31 crashes the MV-64340. */
- if (PCI_SLOT(devfn) > 5)
- return PCIBIOS_DEVICE_NOT_FOUND;
-
- address = (bus->number << 16) | (devfn << 8) |
- (reg & 0xfc) | 0x80000000;
-
- /* start the configuration cycle */
- MV_WRITE(address_reg, address);
-
- switch (size) {
- case 1:
- /* write the data */
- MV_WRITE_8(data_reg + (reg & 0x3), val);
- break;
-
- case 2:
- /* write the data */
- MV_WRITE_16(data_reg + (reg & 0x3), val);
- break;
-
- case 4:
- /* write the data */
- MV_WRITE(data_reg, val);
- break;
- }
-
- return PCIBIOS_SUCCESSFUL;
-}
-
-#define BUILD_PCI_OPS(host) \
- \
-static int mv64340_bus ## host ## _read_config(struct pci_bus *bus, \
- unsigned int devfn, int reg, int size, u32 * val) \
-{ \
- return mv64340_read_config(bus, devfn, reg, size, val, \
- MV64340_PCI_ ## host ## _CONFIG_ADDR, \
- MV64340_PCI_ ## host ## _CONFIG_DATA_VIRTUAL_REG); \
-} \
- \
-static int mv64340_bus ## host ## _write_config(struct pci_bus *bus, \
- unsigned int devfn, int reg, int size, u32 val) \
-{ \
- return mv64340_write_config(bus, devfn, reg, size, val, \
- MV64340_PCI_ ## host ## _CONFIG_ADDR, \
- MV64340_PCI_ ## host ## _CONFIG_DATA_VIRTUAL_REG); \
-} \
- \
-struct pci_ops mv64340_bus ## host ## _pci_ops = { \
- .read = mv64340_bus ## host ## _read_config, \
- .write = mv64340_bus ## host ## _write_config \
-};
-
-BUILD_PCI_OPS(0)
-BUILD_PCI_OPS(1)
diff --git a/arch/mips/pci/ops-vrc4173.c b/arch/mips/pci/ops-vrc4173.c
deleted file mode 100644
index ce4e7029a5a4..000000000000
--- a/arch/mips/pci/ops-vrc4173.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * FILE NAME
- * arch/mips/vr41xx/nec-eagle/vrc4173.c
- *
- * BRIEF MODULE DESCRIPTION
- * Pre-setup for NEC VRC4173.
- *
- * Author: Yoichi Yuasa
- * yyuasa@mvista.com or source@mvista.com
- *
- * Copyright 2001,2002 MontaVista Software Inc.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <linux/init.h>
-#include <linux/pci.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/vr41xx/eagle.h>
-#include <asm/vr41xx/vrc4173.h>
-
-#define PCI_CONFIG_ADDR KSEG1ADDR(0x0f000c18)
-#define PCI_CONFIG_DATA KSEG1ADDR(0x0f000c14)
-
-static inline void config_writeb(u8 reg, u8 val)
-{
- u32 data;
- int shift;
-
- writel((1UL << 0x1e) | (reg & 0xfc), PCI_CONFIG_ADDR);
- data = readl(PCI_CONFIG_DATA);
-
- shift = (reg & 3) << 3;
- data &= ~(0xff << shift);
- data |= (((u32) val) << shift);
-
- writel(data, PCI_CONFIG_DATA);
-}
-
-static inline u16 config_readw(u8 reg)
-{
- u32 data;
-
- writel(((1UL << 30) | (reg & 0xfc)), PCI_CONFIG_ADDR);
- data = readl(PCI_CONFIG_DATA);
-
- return (u16) (data >> ((reg & 2) << 3));
-}
-
-static inline u32 config_readl(u8 reg)
-{
- writel(((1UL << 30) | (reg & 0xfc)), PCI_CONFIG_ADDR);
-
- return readl(PCI_CONFIG_DATA);
-}
-
-static inline void config_writel(u8 reg, u32 val)
-{
- writel((1UL << 0x1e) | (reg & 0xfc), PCI_CONFIG_ADDR);
- writel(val, PCI_CONFIG_DATA);
-}
-
-void __init vrc4173_preinit(void)
-{
- u32 cmdsts, base;
- u16 cmu_mask;
-
-
- if ((config_readw(PCI_VENDOR_ID) == PCI_VENDOR_ID_NEC) &&
- (config_readw(PCI_DEVICE_ID) == PCI_DEVICE_ID_NEC_VRC4173)) {
- /*
- * Initialized NEC VRC4173 Bus Control Unit
- */
- cmdsts = config_readl(PCI_COMMAND);
- config_writel(PCI_COMMAND,
- cmdsts |
- PCI_COMMAND_IO |
- PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
-
- config_writeb(PCI_LATENCY_TIMER, 0x80);
-
- config_writel(PCI_BASE_ADDRESS_0, VR41XX_PCI_IO_START);
- base = config_readl(PCI_BASE_ADDRESS_0);
- base &= PCI_BASE_ADDRESS_IO_MASK;
- config_writeb(0x40, 0x01);
-
- /* CARDU1 IDSEL = AD12, CARDU2 IDSEL = AD13 */
- config_writeb(0x41, 0);
-
- cmu_mask = 0x1000;
- outw(cmu_mask, base + 0x040);
- cmu_mask |= 0x0800;
- outw(cmu_mask, base + 0x040);
-
- outw(0x000f, base + 0x042); /* Soft reset of CMU */
- cmu_mask |= 0x05e0;
- outw(cmu_mask, base + 0x040);
- cmu_mask = inw(base + 0x040); /* dummy read */
- outw(0x0000, base + 0x042);
- }
-}
diff --git a/arch/mips/pci/pci-ocelot-c.c b/arch/mips/pci/pci-ocelot-c.c
index dec6d3754fde..8b22272773a9 100644
--- a/arch/mips/pci/pci-ocelot-c.c
+++ b/arch/mips/pci/pci-ocelot-c.c
@@ -27,12 +27,14 @@ static struct resource mv_pci_mem0_resource = {
.flags = IORESOURCE_MEM
};
-extern struct pci_ops mv64340_bus0_pci_ops;
-
-static struct pci_controller mv_bus0_controller = {
- .pci_ops = &mv64340_bus0_pci_ops,
- .mem_resource = &mv_pci_mem0_resource,
- .io_resource = &mv_pci_io_mem0_resource,
+static struct mv_pci_controller mv_bus0_controller = {
+ .pcic = {
+ .pci_ops = &mv_pci_ops,
+ .mem_resource = &mv_pci_mem0_resource,
+ .io_resource = &mv_pci_io_mem0_resource,
+ },
+ .config_addr = MV64340_PCI_0_CONFIG_ADDR,
+ .config_vreg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG,
};
static uint32_t mv_io_base, mv_io_size;
@@ -47,16 +49,16 @@ static void mv64340_pci0_init(void)
mem0_base = MV_READ(MV64340_PCI_0_MEMORY0_BASE_ADDR) << 16;
mem0_size = (MV_READ(MV64340_PCI_0_MEMORY0_SIZE) + 1) << 16;
- mv_pci_io_mem0_resource.start = 0;
- mv_pci_io_mem0_resource.end = io_size - 1;
- mv_pci_mem0_resource.start = mem0_base;
- mv_pci_mem0_resource.end = mem0_base + mem0_size - 1;
- mv_bus0_controller.mem_offset = mem0_base;
- mv_bus0_controller.io_offset = 0;
+ mv_pci_io_mem0_resource.start = 0;
+ mv_pci_io_mem0_resource.end = io_size - 1;
+ mv_pci_mem0_resource.start = mem0_base;
+ mv_pci_mem0_resource.end = mem0_base + mem0_size - 1;
+ mv_bus0_controller.pcic.mem_offset = mem0_base;
+ mv_bus0_controller.pcic.io_offset = 0;
ioport_resource.end = io_size - 1;
- register_pci_controller(&mv_bus0_controller);
+ register_pci_controller(&mv_bus0_controller.pcic);
mv_io_base = io_base;
mv_io_size = io_size;
@@ -72,12 +74,14 @@ static struct resource mv_pci_mem1_resource = {
.flags = IORESOURCE_MEM
};
-extern struct pci_ops mv64340_bus1_pci_ops;
-
-static struct pci_controller mv_bus1_controller = {
- .pci_ops = &mv64340_bus1_pci_ops,
- .mem_resource = &mv_pci_mem1_resource,
- .io_resource = &mv_pci_io_mem1_resource,
+static struct mv_pci_controller mv_bus1_controller = {
+ .pcic = {
+ .pci_ops = &mv_pci_ops,
+ .mem_resource = &mv_pci_mem1_resource,
+ .io_resource = &mv_pci_io_mem1_resource,
+ },
+ .config_addr = MV64340_PCI_1_CONFIG_ADDR,
+ .config_vreg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG,
};
static __init void mv64340_pci1_init(void)
@@ -95,16 +99,16 @@ static __init void mv64340_pci1_init(void)
* the first. A gap is no problem but would waste address space for
* remapping the port space.
*/
- mv_pci_io_mem1_resource.start = mv_io_size;
- mv_pci_io_mem1_resource.end = mv_io_size + io_size - 1;
- mv_pci_mem1_resource.start = mem0_base;
- mv_pci_mem1_resource.end = mem0_base + mem0_size - 1;
- mv_bus1_controller.mem_offset = mem0_base;
- mv_bus1_controller.io_offset = 0;
+ mv_pci_io_mem1_resource.start = mv_io_size;
+ mv_pci_io_mem1_resource.end = mv_io_size + io_size - 1;
+ mv_pci_mem1_resource.start = mem0_base;
+ mv_pci_mem1_resource.end = mem0_base + mem0_size - 1;
+ mv_bus1_controller.pcic.mem_offset = mem0_base;
+ mv_bus1_controller.pcic.io_offset = 0;
ioport_resource.end = io_base + io_size -mv_io_base - 1;
- register_pci_controller(&mv_bus1_controller);
+ register_pci_controller(&mv_bus1_controller.pcic);
mv_io_size = io_base + io_size - mv_io_base;
}
diff --git a/arch/mips/pci/pci-ocelot-g.c b/arch/mips/pci/pci-ocelot-g.c
index 11b05c7e6751..239b81fba17b 100644
--- a/arch/mips/pci/pci-ocelot-g.c
+++ b/arch/mips/pci/pci-ocelot-g.c
@@ -39,12 +39,16 @@ static struct resource gt_pci_io_mem0_resource = {
.flags = IORESOURCE_IO
};
-static struct pci_controller gt_bus0_controller = {
- .pci_ops = &gt_bus0_pci_ops,
- .mem_resource = &gt_pci_mem0_resource,
- .mem_offset = 0xc0000000UL,
- .io_resource = &gt_pci_io_mem0_resource,
- .io_offset = 0x00000000UL
+static struct mv_pci_controller gt_bus0_controller = {
+ .pcic = {
+ .pci_ops = &mv_pci_ops,
+ .mem_resource = &gt_pci_mem0_resource,
+ .mem_offset = 0xc0000000UL,
+ .io_resource = &gt_pci_io_mem0_resource,
+ .io_offset = 0x00000000UL
+ },
+ .config_addr = PCI_0CONFIGURATION_ADDRESS,
+ .config_vreg = PCI_0CONFIGURATION_DATA_VIRTUAL_REGISTER,
};
static struct resource gt_pci_mem1_resource = {
@@ -61,12 +65,16 @@ static struct resource gt_pci_io_mem1_resource = {
.flags = IORESOURCE_IO
};
-static struct pci_controller gt_bus1_controller = {
- .pci_ops = &gt_bus1_pci_ops,
- .mem_resource = &gt_pci_mem1_resource,
- .mem_offset = 0xd0000000UL,
- .io_resource = &gt_pci_io_mem1_resource,
- .io_offset = 0x10000000UL
+static struct mv_pci_controller gt_bus1_controller = {
+ .pcic = {
+ .pci_ops = &mv_pci_ops,
+ .mem_resource = &gt_pci_mem1_resource,
+ .mem_offset = 0xd0000000UL,
+ .io_resource = &gt_pci_io_mem1_resource,
+ .io_offset = 0x10000000UL
+ },
+ .config_addr = PCI_1CONFIGURATION_ADDRESS,
+ .config_vreg = PCI_1CONFIGURATION_DATA_VIRTUAL_REGISTER,
};
static __init int __init ocelot_g_pci_init(void)
@@ -81,8 +89,8 @@ static __init int __init ocelot_g_pci_init(void)
set_io_port_base(io_v_base);
}
- register_pci_controller(&gt_bus0_controller);
- register_pci_controller(&gt_bus1_controller);
+ register_pci_controller(&gt_bus0_controller.pcic);
+ register_pci_controller(&gt_bus1_controller.pcic);
return 0;
}
diff --git a/arch/mips/sibyte/sb1250/irq_handler.S b/arch/mips/sibyte/sb1250/irq_handler.S
index 08c6070c5302..ad6c6b055952 100644
--- a/arch/mips/sibyte/sb1250/irq_handler.S
+++ b/arch/mips/sibyte/sb1250/irq_handler.S
@@ -123,7 +123,7 @@
* check the 1250 interrupt registers to figure out what to do
* Need to detect which CPU we're on, now that smp_affinity is supported.
*/
- la v0, KSEG1 + A_IMR_CPU0_BASE
+ PTR_LA v0, KSEG1 + A_IMR_CPU0_BASE
#ifdef CONFIG_SMP
lw t1, TI_CPU($28)
sll t1, IMR_REGISTER_SPACING_SHIFT
diff --git a/arch/mips/vr41xx/nec-eagle/Makefile b/arch/mips/vr41xx/nec-eagle/Makefile
deleted file mode 100644
index 0b257254a10c..000000000000
--- a/arch/mips/vr41xx/nec-eagle/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# Makefile for the NEC Eagle/Hawk specific parts of the kernel
-#
-# Author: Yoichi Yuasa
-# yyuasa@mvista.com or source@mvista.com
-#
-# Copyright 2001,2002 MontaVista Software Inc.
-#
-
-obj-y += irq.o setup.o
diff --git a/arch/mips/vr41xx/nec-eagle/irq.c b/arch/mips/vr41xx/nec-eagle/irq.c
deleted file mode 100644
index 03f74a587daa..000000000000
--- a/arch/mips/vr41xx/nec-eagle/irq.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * irq.c, Interrupt routines for the NEC Eagle/Hawk board.
- *
- * Copyright (C) 2002 MontaVista Software, Inc.
- * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com>
- * Copyright (C) 2004 Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-/*
- * Changes:
- * MontaVista Software Inc. <yyuasa@mvista.com> or <source@mvista.com>
- * - New creation, NEC Eagle is supported.
- * - Added support for NEC Hawk.
- *
- * Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
- * - Changed from board_irq_init to driver module.
- */
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/module.h>
-#include <linux/types.h>
-
-#include <asm/io.h>
-#include <asm/vr41xx/eagle.h>
-
-MODULE_DESCRIPTION("IRQ module driver for NEC Eagle/Hawk");
-MODULE_AUTHOR("Yoichi Yuasa <yyuasa@mvista.com>");
-MODULE_LICENSE("GPL");
-
-static void enable_pciint_irq(unsigned int irq)
-{
- uint8_t val;
-
- val = readb(NEC_EAGLE_PCIINTMSKREG);
- val |= (uint8_t)1 << (irq - PCIINT_IRQ_BASE);
- writeb(val, NEC_EAGLE_PCIINTMSKREG);
-}
-
-static void disable_pciint_irq(unsigned int irq)
-{
- uint8_t val;
-
- val = readb(NEC_EAGLE_PCIINTMSKREG);
- val &= ~((uint8_t)1 << (irq - PCIINT_IRQ_BASE));
- writeb(val, NEC_EAGLE_PCIINTMSKREG);
-}
-
-static unsigned int startup_pciint_irq(unsigned int irq)
-{
- enable_pciint_irq(irq);
- return 0; /* never anything pending */
-}
-
-#define shutdown_pciint_irq disable_pciint_irq
-#define ack_pciint_irq disable_pciint_irq
-
-static void end_pciint_irq(unsigned int irq)
-{
- if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
- enable_pciint_irq(irq);
-}
-
-static struct hw_interrupt_type pciint_irq_type = {
- .typename = "PCIINT",
- .startup = startup_pciint_irq,
- .shutdown = shutdown_pciint_irq,
- .enable = enable_pciint_irq,
- .disable = disable_pciint_irq,
- .ack = ack_pciint_irq,
- .end = end_pciint_irq,
-};
-
-static void enable_sdbint_irq(unsigned int irq)
-{
- uint8_t val;
-
- val = readb(NEC_EAGLE_SDBINTMSK);
- val |= (uint8_t)1 << (irq - SDBINT_IRQ_BASE);
- writeb(val, NEC_EAGLE_SDBINTMSK);
-}
-
-static void disable_sdbint_irq(unsigned int irq)
-{
- uint8_t val;
-
- val = readb(NEC_EAGLE_SDBINTMSK);
- val &= ~((uint8_t)1 << (irq - SDBINT_IRQ_BASE));
- writeb(val, NEC_EAGLE_SDBINTMSK);
-}
-
-static unsigned int startup_sdbint_irq(unsigned int irq)
-{
- enable_sdbint_irq(irq);
- return 0; /* never anything pending */
-}
-
-#define shutdown_sdbint_irq disable_sdbint_irq
-#define ack_sdbint_irq disable_sdbint_irq
-
-static void end_sdbint_irq(unsigned int irq)
-{
- if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
- enable_sdbint_irq(irq);
-}
-
-static struct hw_interrupt_type sdbint_irq_type = {
- .typename = "SDBINT",
- .startup = startup_sdbint_irq,
- .shutdown = shutdown_sdbint_irq,
- .enable = enable_sdbint_irq,
- .disable = disable_sdbint_irq,
- .ack = ack_sdbint_irq,
- .end = end_sdbint_irq,
-};
-
-static int eagle_get_irq_number(int irq)
-{
- uint8_t sdbint, pciint;
- int i;
-
- sdbint = readb(NEC_EAGLE_SDBINT);
- sdbint &= (NEC_EAGLE_SDBINT_DEG | NEC_EAGLE_SDBINT_ENUM |
- NEC_EAGLE_SDBINT_SIO1INT | NEC_EAGLE_SDBINT_SIO2INT |
- NEC_EAGLE_SDBINT_PARINT);
- pciint = readb(NEC_EAGLE_PCIINTREG);
- pciint &= (NEC_EAGLE_PCIINT_CP_INTA | NEC_EAGLE_PCIINT_CP_INTB |
- NEC_EAGLE_PCIINT_CP_INTC | NEC_EAGLE_PCIINT_CP_INTD |
- NEC_EAGLE_PCIINT_LANINT);
-
- for (i = 1; i < 6; i++)
- if (sdbint & (0x01 << i))
- return SDBINT_IRQ_BASE + i;
-
- for (i = 0; i < 5; i++)
- if (pciint & (0x01 << i))
- return PCIINT_IRQ_BASE + i;
-
- return -EINVAL;
-}
-
-static int __devinit eagle_irq_init(void)
-{
- int i, retval;
-
- writeb(0, NEC_EAGLE_SDBINTMSK);
- writeb(0, NEC_EAGLE_PCIINTMSKREG);
-
- vr41xx_set_irq_trigger(PCISLOT_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH);
- vr41xx_set_irq_level(PCISLOT_PIN, LEVEL_HIGH);
-
- vr41xx_set_irq_trigger(FPGA_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH);
- vr41xx_set_irq_level(FPGA_PIN, LEVEL_HIGH);
-
- vr41xx_set_irq_trigger(DCD_PIN, TRIGGER_EDGE, SIGNAL_HOLD);
- vr41xx_set_irq_level(DCD_PIN, LEVEL_LOW);
-
- for (i = SDBINT_IRQ_BASE; i <= SDBINT_IRQ_LAST; i++)
- irq_desc[i].handler = &sdbint_irq_type;
-
- for (i = PCIINT_IRQ_BASE; i <= PCIINT_IRQ_LAST; i++)
- irq_desc[i].handler = &pciint_irq_type;
-
- retval = vr41xx_cascade_irq(FPGA_CASCADE_IRQ, eagle_get_irq_number);
- if (retval != 0)
- printk(KERN_ERR "eagle: Cannot cascade IRQ %d\n", FPGA_CASCADE_IRQ);
-
- return retval;
-}
-
-static void __devexit eagle_irq_exit(void)
-{
- free_irq(FPGA_CASCADE_IRQ, NULL);
-}
-
-module_init(eagle_irq_init);
-module_exit(eagle_irq_exit);
diff --git a/arch/mips/vr41xx/nec-eagle/setup.c b/arch/mips/vr41xx/nec-eagle/setup.c
deleted file mode 100644
index cc055af00e42..000000000000
--- a/arch/mips/vr41xx/nec-eagle/setup.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * arch/mips/vr41xx/nec-eagle/setup.c
- *
- * Setup for the NEC Eagle/Hawk board.
- *
- * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com>
- *
- * 2001-2004 (c) MontaVista, Software, Inc. This file is licensed under
- * the terms of the GNU General Public License version 2. This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-#include <linux/config.h>
-#include <linux/ioport.h>
-
-#include <asm/io.h>
-#include <asm/pci_channel.h>
-#include <asm/vr41xx/eagle.h>
-
-#ifdef CONFIG_PCI
-
-extern void vrc4173_preinit(void);
-
-static struct resource vr41xx_pci_io_resource = {
- "PCI I/O space",
- VR41XX_PCI_IO_START,
- VR41XX_PCI_IO_END,
- IORESOURCE_IO
-};
-
-static struct resource vr41xx_pci_mem_resource = {
- "PCI memory space",
- VR41XX_PCI_MEM_START,
- VR41XX_PCI_MEM_END,
- IORESOURCE_MEM
-};
-
-extern struct pci_ops vr41xx_pci_ops;
-
-struct pci_controller vr41xx_controller = {
- .pci_ops = &vr41xx_pci_ops,
- .io_resource = &vr41xx_pci_io_resource,
- .mem_resource = &vr41xx_pci_mem_resource,
-};
-
-struct vr41xx_pci_address_space vr41xx_pci_mem1 = {
- VR41XX_PCI_MEM1_BASE,
- VR41XX_PCI_MEM1_MASK,
- IO_MEM1_RESOURCE_START
-};
-
-struct vr41xx_pci_address_space vr41xx_pci_mem2 = {
- VR41XX_PCI_MEM2_BASE,
- VR41XX_PCI_MEM2_MASK,
- IO_MEM2_RESOURCE_START
-};
-
-struct vr41xx_pci_address_space vr41xx_pci_io = {
- VR41XX_PCI_IO_BASE,
- VR41XX_PCI_IO_MASK,
- IO_PORT_RESOURCE_START
-};
-
-static struct vr41xx_pci_address_map pci_address_map = {
- &vr41xx_pci_mem1,
- &vr41xx_pci_mem2,
- &vr41xx_pci_io
-};
-#endif
-
-const char *get_system_type(void)
-{
- return "NEC SDB-VR4122/VR4131(Eagle/Hawk)";
-}
-
-static int nec_eagle_setup(void)
-{
- set_io_port_base(IO_PORT_BASE);
- ioport_resource.start = IO_PORT_RESOURCE_START;
- ioport_resource.end = IO_PORT_RESOURCE_END;
-
-#ifdef CONFIG_SERIAL_8250
- vr41xx_select_siu_interface(SIU_RS232C, IRDA_NONE);
- vr41xx_siu_init();
- vr41xx_dsiu_init();
-#endif
-
-#ifdef CONFIG_PCI
- vr41xx_pciu_init(&pci_address_map);
-
- vrc4173_preinit();
-#endif
-
- return 0;
-}
-
-early_initcall(nec_eagle_setup);
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index 6de7ba17100d..8ce1cca29107 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -705,6 +705,16 @@ config MPC10X_BRIDGE
depends on PCORE || POWERPMC250 || LOPEC || SANDPOINT
default y
+config FSL_OCP
+ bool
+ depends on MPC10X_BRIDGE
+ default y
+
+config MPC10X_OPENPIC
+ bool
+ depends on POWERPMC250 || LOPEC || SANDPOINT
+ default y
+
config MPC10X_STORE_GATHERING
bool "Enable MPC10x store gathering"
depends on MPC10X_BRIDGE
diff --git a/arch/ppc/configs/ebony_defconfig b/arch/ppc/configs/ebony_defconfig
index 7dca4c6e19c4..2c1334a86691 100644
--- a/arch/ppc/configs/ebony_defconfig
+++ b/arch/ppc/configs/ebony_defconfig
@@ -30,6 +30,7 @@ CONFIG_LOG_BUF_SHIFT=14
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -56,6 +57,8 @@ CONFIG_44x=y
# CONFIG_POWER3 is not set
# CONFIG_POWER4 is not set
# CONFIG_8xx is not set
+# CONFIG_E500 is not set
+CONFIG_BOOKE=y
CONFIG_PTE_64BIT=y
# CONFIG_MATH_EMULATION is not set
# CONFIG_CPU_FREQ is not set
@@ -68,7 +71,6 @@ CONFIG_EBONY=y
# CONFIG_OCOTEA is not set
CONFIG_440GP=y
CONFIG_440=y
-CONFIG_BOOKE=y
CONFIG_IBM_OCP=y
# CONFIG_PM is not set
CONFIG_NOT_COHERENT_CACHE=y
@@ -106,6 +108,8 @@ CONFIG_HIGHMEM_START=0xfe000000
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
CONFIG_BOOT_LOAD=0x01000000
#
@@ -115,6 +119,7 @@ CONFIG_BOOT_LOAD=0x01000000
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
#
@@ -141,7 +146,7 @@ CONFIG_BOOT_LOAD=0x01000000
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_LBD=y
@@ -247,6 +252,7 @@ CONFIG_NETFILTER=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
@@ -272,6 +278,12 @@ CONFIG_NETDEVICES=y
# Ethernet (10 or 100Mbit)
#
# CONFIG_NET_ETHERNET is not set
+CONFIG_IBM_EMAC=y
+# CONFIG_IBM_EMAC_ERRMSG is not set
+CONFIG_IBM_EMAC_RXB=64
+CONFIG_IBM_EMAC_TXB=8
+CONFIG_IBM_EMAC_FGAP=8
+CONFIG_IBM_EMAC_SKBRES=0
#
# Ethernet (1000 Mbit)
@@ -310,7 +322,6 @@ CONFIG_NETDEVICES=y
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
-# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
@@ -545,6 +556,11 @@ CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
# Kernel hacking
#
CONFIG_DEBUG_KERNEL=y
diff --git a/arch/ppc/configs/ocotea_defconfig b/arch/ppc/configs/ocotea_defconfig
index 292d04b0b991..893d7a68a7a8 100644
--- a/arch/ppc/configs/ocotea_defconfig
+++ b/arch/ppc/configs/ocotea_defconfig
@@ -21,18 +21,22 @@ CONFIG_BROKEN_ON_SMP=y
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_HOTPLUG is not set
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
@@ -54,6 +58,8 @@ CONFIG_44x=y
# CONFIG_POWER3 is not set
# CONFIG_POWER4 is not set
# CONFIG_8xx is not set
+# CONFIG_E500 is not set
+CONFIG_BOOKE=y
CONFIG_PTE_64BIT=y
# CONFIG_MATH_EMULATION is not set
# CONFIG_CPU_FREQ is not set
@@ -66,9 +72,7 @@ CONFIG_4xx=y
CONFIG_OCOTEA=y
CONFIG_440GX=y
CONFIG_440A=y
-CONFIG_BOOKE=y
CONFIG_IBM_OCP=y
-CONFIG_PPC_OCP=y
CONFIG_IBM_EMAC4=y
# CONFIG_PM is not set
CONFIG_NOT_COHERENT_CACHE=y
@@ -106,6 +110,8 @@ CONFIG_HIGHMEM_START=0xfe000000
CONFIG_LOWMEM_SIZE=0x30000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_TASK_SIZE=0x80000000
+CONFIG_CONSISTENT_START=0xff100000
+CONFIG_CONSISTENT_SIZE=0x00200000
CONFIG_BOOT_LOAD=0x01000000
#
@@ -115,6 +121,7 @@ CONFIG_BOOT_LOAD=0x01000000
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_DEBUG_DRIVER is not set
#
@@ -141,7 +148,7 @@ CONFIG_BOOT_LOAD=0x01000000
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_CARMEL is not set
+# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_LBD is not set
@@ -163,7 +170,6 @@ CONFIG_BOOT_LOAD=0x01000000
#
# Fusion MPT device support
#
-# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
@@ -212,8 +218,6 @@ CONFIG_IP_PNP_BOOTP=y
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
-# CONFIG_DECNET is not set
-# CONFIG_BRIDGE is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
@@ -232,7 +236,9 @@ CONFIG_NETFILTER=y
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
@@ -248,21 +254,27 @@ CONFIG_NETFILTER=y
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
#
# Ethernet (10 or 100Mbit)
@@ -279,6 +291,12 @@ CONFIG_NET_ETHERNET=y
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
+CONFIG_IBM_EMAC=y
+# CONFIG_IBM_EMAC_ERRMSG is not set
+CONFIG_IBM_EMAC_RXB=128
+CONFIG_IBM_EMAC_TXB=128
+CONFIG_IBM_EMAC_FGAP=8
+CONFIG_IBM_EMAC_SKBRES=0
# CONFIG_NET_PCI is not set
#
@@ -291,7 +309,6 @@ CONFIG_NET_ETHERNET=y
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
@@ -299,51 +316,28 @@ CONFIG_NET_ETHERNET=y
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
-CONFIG_IBM_EMAC=y
-# CONFIG_IBM_EMAC_ERRMSG is not set
-CONFIG_IBM_EMAC_RXB=128
-CONFIG_IBM_EMAC_TXB=128
-CONFIG_IBM_EMAC_FGAP=8
-CONFIG_IBM_EMAC_SKBRES=0
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
+# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
-# CONFIG_RCPCI is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
+# Wireless LAN (non-hamradio)
#
-# CONFIG_IRDA is not set
+# CONFIG_NET_RADIO is not set
#
-# Bluetooth support
+# Wan interfaces
#
-# CONFIG_BT is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
#
# ISDN subsystem
@@ -515,6 +509,7 @@ CONFIG_LEGACY_PTY_COUNT=256
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
# CONFIG_TMPFS is not set
@@ -555,7 +550,6 @@ CONFIG_SUNRPC=y
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
-# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
@@ -573,6 +567,12 @@ CONFIG_MSDOS_PARTITION=y
# Library routines
#
CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
#
# Kernel hacking
@@ -587,7 +587,7 @@ CONFIG_DEBUG_KERNEL=y
CONFIG_BDI_SWITCH=y
CONFIG_DEBUG_INFO=y
# CONFIG_SERIAL_TEXT_DEBUG is not set
-CONFIG_OCP=y
+CONFIG_PPC_OCP=y
#
# Security options
diff --git a/arch/ppc/kernel/head_44x.S b/arch/ppc/kernel/head_44x.S
index f38298cbba86..6c7a98471565 100644
--- a/arch/ppc/kernel/head_44x.S
+++ b/arch/ppc/kernel/head_44x.S
@@ -177,11 +177,11 @@ skpinv: addi r4,r4,1 /* Increment */
rfi
/* If necessary, invalidate original entry we used */
-3: cmpwi r23,62
+3: cmpwi r23,63
beq 4f
li r6,0
tlbwe r6,r23,PPC44x_TLB_PAGEID
- sync
+ isync
4:
#ifdef CONFIG_SERIAL_TEXT_DEBUG
@@ -680,7 +680,7 @@ interrupt_base:
mfspr r4,SPRN_ESR /* Grab the ESR and save it */
stw r4,_ESR(r11)
addi r3,r1,STACK_FRAME_OVERHEAD
- EXC_XFER_EE(0x700, ProgramCheckException)
+ EXC_XFER_STD(0x700, ProgramCheckException)
/* Floating Point Unavailable Interrupt */
EXCEPTION(0x2010, FloatingPointUnavailable, UnknownException, EXC_XFER_EE)
diff --git a/arch/ppc/kernel/head_4xx.S b/arch/ppc/kernel/head_4xx.S
index 54de9b5bb858..5a8933688fbf 100644
--- a/arch/ppc/kernel/head_4xx.S
+++ b/arch/ppc/kernel/head_4xx.S
@@ -451,7 +451,7 @@ label:
mfspr r4,SPRN_ESR /* Grab the ESR and save it */
stw r4,_ESR(r11)
addi r3,r1,STACK_FRAME_OVERHEAD
- EXC_XFER_EE(0x700, ProgramCheckException)
+ EXC_XFER_STD(0x700, ProgramCheckException)
EXCEPTION(0x0800, Trap_08, UnknownException, EXC_XFER_EE)
EXCEPTION(0x0900, Trap_09, UnknownException, EXC_XFER_EE)
diff --git a/arch/ppc/platforms/lopec_setup.c b/arch/ppc/platforms/lopec_setup.c
index d675b76a9838..8e98f260759b 100644
--- a/arch/ppc/platforms/lopec_setup.c
+++ b/arch/ppc/platforms/lopec_setup.c
@@ -192,21 +192,8 @@ lopec_init_IRQ(void)
OpenPIC_InitSenses = lopec_openpic_initsenses;
OpenPIC_NumInitSenses = sizeof(lopec_openpic_initsenses);
- /*
- * We need to tell openpic_set_sources where things actually are.
- * mpc10x_common will setup OpenPIC_Addr at ioremap(EUMB phys base +
- * EPIC offset (0x40000)); The EPIC IRQ Register Address Map -
- * Interrupt Source Configuration Registers gives these numbers
- * as offsets starting at 0x50200, we need to adjust occordinly.
- */
- /* Map serial interrupts 0-15 */
- openpic_set_sources(0, 16, OpenPIC_Addr + 0x10200);
- /* Skip reserved space and map i2c and DMA Ch[01] */
- openpic_set_sources(16, 3, OpenPIC_Addr + 0x11020);
- /* Skip reserved space and map Message Unit Interrupt (I2O) */
- openpic_set_sources(19, 1, OpenPIC_Addr + 0x110C0);
-
- openpic_init(NUM_8259_INTERRUPTS);
+ mpc10x_set_openpic();
+
/* We have a cascade on OpenPIC IRQ 0, Linux IRQ 16 */
openpic_hookup_cascade(NUM_8259_INTERRUPTS, "82c59 cascade",
&i8259_irq);
diff --git a/arch/ppc/platforms/powerpmc250.c b/arch/ppc/platforms/powerpmc250.c
index 39677320c025..0abe15159e6c 100644
--- a/arch/ppc/platforms/powerpmc250.c
+++ b/arch/ppc/platforms/powerpmc250.c
@@ -197,7 +197,7 @@ powerpmc250_init_IRQ(void)
OpenPIC_InitSenses = powerpmc250_openpic_initsenses;
OpenPIC_NumInitSenses = sizeof(powerpmc250_openpic_initsenses);
- openpic_init(1, 0, 0, -1);
+ mpc10x_set_openpic();
}
/*
diff --git a/arch/ppc/platforms/sandpoint.c b/arch/ppc/platforms/sandpoint.c
index ab682fa5d773..fdcbcf24004b 100644
--- a/arch/ppc/platforms/sandpoint.c
+++ b/arch/ppc/platforms/sandpoint.c
@@ -433,17 +433,7 @@ sandpoint_init_IRQ(void)
OpenPIC_InitSenses = sandpoint_openpic_initsenses;
OpenPIC_NumInitSenses = sizeof(sandpoint_openpic_initsenses);
- /*
- * We need to tell openpic_set_sources where things actually are.
- * mpc10x_common will setup OpenPIC_Addr at ioremap(EUMB phys base +
- * EPIC offset (0x40000)); The EPIC IRQ Register Address Map -
- * Interrupt Source Configuration Registers gives these numbers
- * as offsets starting at 0x50200, we need to adjust occordinly.
- */
- /* Map serial interrupts 0-15 */
- openpic_set_sources(0, 16, OpenPIC_Addr + 0x10200);
-
- openpic_init(NUM_8259_INTERRUPTS);
+ mpc10x_set_openpic();
openpic_hookup_cascade(NUM_8259_INTERRUPTS, "82c59 cascade",
i8259_irq);
diff --git a/arch/ppc/syslib/Makefile b/arch/ppc/syslib/Makefile
index 426b3c001f64..313fe208e734 100644
--- a/arch/ppc/syslib/Makefile
+++ b/arch/ppc/syslib/Makefile
@@ -48,7 +48,7 @@ obj-$(CONFIG_EV64260) += gt64260_common.o gt64260_pic.o \
obj-$(CONFIG_GEMINI) += open_pic.o indirect_pci.o
obj-$(CONFIG_K2) += i8259.o indirect_pci.o todc_time.o \
pci_auto.o
-obj-$(CONFIG_LOPEC) += pci_auto.o open_pic.o i8259.o todc_time.o
+obj-$(CONFIG_LOPEC) += i8259.o pci_auto.o todc_time.o
obj-$(CONFIG_MCPN765) += todc_time.o indirect_pci.o pci_auto.o \
open_pic.o i8259.o hawk_common.o
obj-$(CONFIG_MENF1) += todc_time.o i8259.o mpc10x_common.o \
@@ -58,14 +58,14 @@ obj-$(CONFIG_MVME5100) += open_pic.o todc_time.o indirect_pci.o \
obj-$(CONFIG_OCOTEA) += indirect_pci.o pci_auto.o todc_time.o
obj-$(CONFIG_PAL4) += cpc700_pic.o
obj-$(CONFIG_PCORE) += todc_time.o i8259.o pci_auto.o
-obj-$(CONFIG_POWERPMC250) += open_pic.o pci_auto.o
+obj-$(CONFIG_POWERPMC250) += pci_auto.o
obj-$(CONFIG_PPLUS) += hawk_common.o open_pic.o i8259.o \
indirect_pci.o todc_time.o pci_auto.o
obj-$(CONFIG_PRPMC750) += open_pic.o indirect_pci.o pci_auto.o \
hawk_common.o
obj-$(CONFIG_HARRIER) += harrier.o
obj-$(CONFIG_PRPMC800) += open_pic.o indirect_pci.o pci_auto.o
-obj-$(CONFIG_SANDPOINT) += i8259.o open_pic.o pci_auto.o todc_time.o
+obj-$(CONFIG_SANDPOINT) += i8259.o pci_auto.o todc_time.o
obj-$(CONFIG_SBC82xx) += todc_time.o
obj-$(CONFIG_SPRUCE) += cpc700_pic.o indirect_pci.o pci_auto.o \
todc_time.o
@@ -79,6 +79,7 @@ obj-$(CONFIG_SERIAL_TEXT_DEBUG) += gen550_dbg.o
endif
obj-$(CONFIG_BOOTX_TEXT) += btext.o
obj-$(CONFIG_MPC10X_BRIDGE) += mpc10x_common.o indirect_pci.o
+obj-$(CONFIG_MPC10X_OPENPIC) += open_pic.o
obj-$(CONFIG_40x) += dcr.o
obj-$(CONFIG_BOOKE) += dcr.o
obj-$(CONFIG_85xx) += open_pic.o ppc85xx_common.o ppc85xx_setup.o
diff --git a/arch/ppc/syslib/ibm440gp_common.c b/arch/ppc/syslib/ibm440gp_common.c
index d1ce1435f50a..0d6be2d6dd67 100644
--- a/arch/ppc/syslib/ibm440gp_common.c
+++ b/arch/ppc/syslib/ibm440gp_common.c
@@ -30,7 +30,8 @@ void __init ibm440gp_get_clocks(struct ibm44x_clocks* p,
{
u32 cpc0_sys0 = mfdcr(DCRN_CPC0_SYS0);
u32 cpc0_cr0 = mfdcr(DCRN_CPC0_CR0);
- u32 opdv, epdv;
+ u32 opdv = ((cpc0_sys0 >> 10) & 0x3) + 1;
+ u32 epdv = ((cpc0_sys0 >> 8) & 0x3) + 1;
if (cpc0_sys0 & 0x2){
/* Bypass system PLL */
@@ -60,9 +61,6 @@ void __init ibm440gp_get_clocks(struct ibm44x_clocks* p,
p->plb = vco / fwdvb;
}
- opdv = ((cpc0_sys0 >> 10) & 0x3) + 1;
- epdv = ((cpc0_sys0 >> 8) & 0x3) + 1;
-
p->opb = p->plb / opdv;
p->ebc = p->opb / epdv;
diff --git a/arch/ppc/syslib/mpc10x_common.c b/arch/ppc/syslib/mpc10x_common.c
index 80c71501bb5e..153c811b13d2 100644
--- a/arch/ppc/syslib/mpc10x_common.c
+++ b/arch/ppc/syslib/mpc10x_common.c
@@ -30,7 +30,60 @@
#include <asm/pci-bridge.h>
#include <asm/open_pic.h>
#include <asm/mpc10x.h>
+#include <asm/ocp.h>
+
+/* The OCP structure is fixed by code below, before OCP initialises.
+ paddr depends on where the board places the EUMB.
+ - fixed in mpc10x_bridge_init().
+ irq depends on two things:
+ > does the board use the EPIC at all? (PCORE does not).
+ > is the EPIC in serial or parallel mode?
+ - fixed in mpc10x_set_openpic().
+*/
+
+#ifdef CONFIG_MPC10X_OPENPIC
+#ifdef CONFIG_EPIC_SERIAL_MODE
+#define EPIC_IRQ_BASE 16
+#else
+#define EPIC_IRQ_BASE 5
+#endif
+#define MPC10X_I2C_IRQ (EPIC_IRQ_BASE + NUM_8259_INTERRUPTS)
+#define MPC10X_DMA0_IRQ (EPIC_IRQ_BASE + 1 + NUM_8259_INTERRUPTS)
+#define MPC10X_DMA1_IRQ (EPIC_IRQ_BASE + 2 + NUM_8259_INTERRUPTS)
+#else
+#define MPC10X_I2C_IRQ OCP_IRQ_NA
+#define MPC10X_DMA0_IRQ OCP_IRQ_NA
+#define MPC10X_DMA1_IRQ OCP_IRQ_NA
+#endif
+
+struct ocp_def core_ocp[] = {
+ { .vendor = OCP_VENDOR_INVALID
+ }
+};
+
+static struct ocp_fs_i2c_data mpc10x_i2c_data = {
+ .flags = 0
+};
+static struct ocp_def mpc10x_i2c_ocp = {
+ .vendor = OCP_VENDOR_MOTOROLA,
+ .function = OCP_FUNC_IIC,
+ .index = 0,
+ .irq = MPC10X_I2C_IRQ,
+ .additions = &mpc10x_i2c_data
+};
+
+static struct ocp_def mpc10x_dma_ocp[2] = {
+{ .vendor = OCP_VENDOR_MOTOROLA,
+ .function = OCP_FUNC_DMA,
+ .index = 0,
+ .irq = MPC10X_DMA0_IRQ
+},
+{ .vendor = OCP_VENDOR_MOTOROLA,
+ .function = OCP_FUNC_DMA,
+ .index = 1,
+ .irq = MPC10X_DMA1_IRQ }
+};
/* Set resources to match bridge memory map */
void __init
@@ -231,11 +284,21 @@ mpc10x_bridge_init(struct pci_controller *hose,
PCI_DEVFN(0,0),
MPC10X_CFG_EUMBBAR,
phys_eumb_base);
-
- /* Map EPIC register part of EUMB into vitual memory */
+#ifdef CONFIG_MPC10X_OPENPIC
+ /* Map EPIC register part of EUMB into vitual memory - PCORE
+ uses an i8259 instead of EPIC. */
OpenPIC_Addr =
ioremap(phys_eumb_base + MPC10X_EUMB_EPIC_OFFSET,
MPC10X_EUMB_EPIC_SIZE);
+#endif
+ mpc10x_i2c_ocp.paddr = phys_eumb_base + MPC10X_EUMB_I2C_OFFSET;
+ ocp_add_one_device(&mpc10x_i2c_ocp);
+ mpc10x_dma_ocp[0].paddr = phys_eumb_base +
+ MPC10X_EUMB_DMA_OFFSET + 0x100;
+ ocp_add_one_device(&mpc10x_dma_ocp[0]);
+ mpc10x_dma_ocp[1].paddr = phys_eumb_base +
+ MPC10X_EUMB_DMA_OFFSET + 0x200;
+ ocp_add_one_device(&mpc10x_dma_ocp[1]);
}
#ifdef CONFIG_MPC10X_STORE_GATHERING
@@ -397,3 +460,17 @@ mpc10x_disable_store_gathering(struct pci_controller *hose)
return 0;
}
+
+#ifdef CONFIG_MPC10X_OPENPIC
+void __init mpc10x_set_openpic(void)
+{
+ /* Map external IRQs */
+ openpic_set_sources(0, EPIC_IRQ_BASE, OpenPIC_Addr + 0x10200);
+ /* Skip reserved space and map i2c and DMA Ch[01] */
+ openpic_set_sources(EPIC_IRQ_BASE, 3, OpenPIC_Addr + 0x11020);
+ /* Skip reserved space and map Message Unit Interrupt (I2O) */
+ openpic_set_sources(EPIC_IRQ_BASE + 3, 1, OpenPIC_Addr + 0x110C0);
+
+ openpic_init(NUM_8259_INTERRUPTS);
+}
+#endif
diff --git a/arch/ppc/syslib/ppc4xx_pic.c b/arch/ppc/syslib/ppc4xx_pic.c
index 22c9010e5e1b..e6da0a20d8ec 100644
--- a/arch/ppc/syslib/ppc4xx_pic.c
+++ b/arch/ppc/syslib/ppc4xx_pic.c
@@ -234,6 +234,9 @@ ppc4xx_uic_disable_and_ack(unsigned int irq)
case 1:
mtdcr(DCRN_UIC_ER(UIC1), ppc_cached_irq_mask[word]);
mtdcr(DCRN_UIC_SR(UIC1), (1 << (31 - bit)));
+#if (NR_UICS == 2)
+ mtdcr(DCRN_UIC_SR(UIC0), (1 << (31 - UIC0_UIC1NC)));
+#endif
#if (NR_UICS > 2)
mtdcr(DCRN_UIC_SR(UICB), UICB_UIC1NC);
#endif
@@ -285,6 +288,9 @@ ppc4xx_uic_end(unsigned int irq)
break;
case 1:
mtdcr(DCRN_UIC_SR(UIC1), 1 << (31 - bit));
+#if (NR_UICS == 2)
+ mtdcr(DCRN_UIC_SR(UIC0), (1 << (31 - UIC0_UIC1NC)));
+#endif
#if (NR_UICS > 2)
mtdcr(DCRN_UIC_SR(UICB), UICB_UIC1NC);
#endif
@@ -423,7 +429,7 @@ ppc4xx_extpic_init(void)
bit, sense);
#endif
ppc_cached_sense_mask[word] |=
- (sense & IRQ_SENSE_MASK) << (31 - bit);
+ (~sense & IRQ_SENSE_MASK) << (31 - bit);
ppc_cached_pol_mask[word] |=
((sense & IRQ_POLARITY_MASK) >> 1) << (31 - bit);
switch (word) {
diff --git a/arch/ppc64/kernel/ItLpQueue.c b/arch/ppc64/kernel/ItLpQueue.c
index 71ce7d6b2f0a..6f21bde213b9 100644
--- a/arch/ppc64/kernel/ItLpQueue.c
+++ b/arch/ppc64/kernel/ItLpQueue.c
@@ -161,7 +161,7 @@ unsigned ItLpQueue_process( struct ItLpQueue * lpQueue, struct pt_regs *regs )
mb();
clear_inUse( lpQueue );
- get_paca()->lpEvent_count += numIntsProcessed;
+ get_paca()->lpevent_count += numIntsProcessed;
return numIntsProcessed;
}
diff --git a/arch/ppc64/kernel/asm-offsets.c b/arch/ppc64/kernel/asm-offsets.c
index 27d694d6efb3..a3b589969cd6 100644
--- a/arch/ppc64/kernel/asm-offsets.c
+++ b/arch/ppc64/kernel/asm-offsets.c
@@ -79,33 +79,29 @@ int main(void)
/* paca */
DEFINE(PACA_SIZE, sizeof(struct paca_struct));
- DEFINE(PACAPACAINDEX, offsetof(struct paca_struct, xPacaIndex));
- DEFINE(PACAPROCSTART, offsetof(struct paca_struct, xProcStart));
- DEFINE(PACAKSAVE, offsetof(struct paca_struct, xKsave));
- DEFINE(PACACURRENT, offsetof(struct paca_struct, xCurrent));
- DEFINE(PACASAVEDMSR, offsetof(struct paca_struct, xSavedMsr));
- DEFINE(PACASTABREAL, offsetof(struct paca_struct, xStab_data.real));
- DEFINE(PACASTABVIRT, offsetof(struct paca_struct, xStab_data.virt));
- DEFINE(PACASTABRR, offsetof(struct paca_struct, xStab_data.next_round_robin));
- DEFINE(PACAR1, offsetof(struct paca_struct, xR1));
- DEFINE(PACALPQUEUE, offsetof(struct paca_struct, lpQueuePtr));
- DEFINE(PACATOC, offsetof(struct paca_struct, xTOC));
- DEFINE(PACAEXCSP, offsetof(struct paca_struct, exception_sp));
- DEFINE(PACAPROCENABLED, offsetof(struct paca_struct, xProcEnabled));
+ DEFINE(PACAPACAINDEX, offsetof(struct paca_struct, paca_index));
+ DEFINE(PACAPROCSTART, offsetof(struct paca_struct, cpu_start));
+ DEFINE(PACAKSAVE, offsetof(struct paca_struct, kstack));
+ DEFINE(PACACURRENT, offsetof(struct paca_struct, __current));
+ DEFINE(PACASAVEDMSR, offsetof(struct paca_struct, saved_msr));
+ DEFINE(PACASTABREAL, offsetof(struct paca_struct, stab_real));
+ DEFINE(PACASTABVIRT, offsetof(struct paca_struct, stab_addr));
+ DEFINE(PACASTABRR, offsetof(struct paca_struct, stab_next_rr));
+ DEFINE(PACAR1, offsetof(struct paca_struct, saved_r1));
+ DEFINE(PACATOC, offsetof(struct paca_struct, kernel_toc));
+ DEFINE(PACAPROCENABLED, offsetof(struct paca_struct, proc_enabled));
DEFINE(PACADEFAULTDECR, offsetof(struct paca_struct, default_decr));
DEFINE(PACAPROFENABLED, offsetof(struct paca_struct, prof_enabled));
DEFINE(PACAPROFLEN, offsetof(struct paca_struct, prof_len));
DEFINE(PACAPROFSHIFT, offsetof(struct paca_struct, prof_shift));
DEFINE(PACAPROFBUFFER, offsetof(struct paca_struct, prof_buffer));
DEFINE(PACAPROFSTEXT, offsetof(struct paca_struct, prof_stext));
- DEFINE(PACALPPACA, offsetof(struct paca_struct, xLpPaca));
- DEFINE(LPPACA, offsetof(struct paca_struct, xLpPaca));
- DEFINE(PACAREGSAV, offsetof(struct paca_struct, xRegSav));
DEFINE(PACA_EXGEN, offsetof(struct paca_struct, exgen));
DEFINE(PACA_EXMC, offsetof(struct paca_struct, exmc));
DEFINE(PACA_EXSLB, offsetof(struct paca_struct, exslb));
DEFINE(PACA_EXDSI, offsetof(struct paca_struct, exdsi));
- DEFINE(PACAGUARD, offsetof(struct paca_struct, guard));
+ DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp));
+ DEFINE(PACALPPACA, offsetof(struct paca_struct, lppaca));
DEFINE(LPPACASRR0, offsetof(struct ItLpPaca, xSavedSrr0));
DEFINE(LPPACASRR1, offsetof(struct ItLpPaca, xSavedSrr1));
DEFINE(LPPACAANYINT, offsetof(struct ItLpPaca, xIntDword.xAnyInt));
diff --git a/arch/ppc64/kernel/chrp_setup.c b/arch/ppc64/kernel/chrp_setup.c
index 123c889aa39a..e57717e194a5 100644
--- a/arch/ppc64/kernel/chrp_setup.c
+++ b/arch/ppc64/kernel/chrp_setup.c
@@ -189,7 +189,7 @@ chrp_init2(void)
*/
void __init fwnmi_init(void)
{
- long ret;
+ int ret;
int ibm_nmi_register = rtas_token("ibm,nmi-register");
if (ibm_nmi_register == RTAS_UNKNOWN_SERVICE)
return;
diff --git a/arch/ppc64/kernel/eeh.c b/arch/ppc64/kernel/eeh.c
index 6f2d189d44c9..03ee03340dd4 100644
--- a/arch/ppc64/kernel/eeh.c
+++ b/arch/ppc64/kernel/eeh.c
@@ -31,6 +31,7 @@
#include <asm/io.h>
#include <asm/machdep.h>
#include <asm/pgtable.h>
+#include <asm/rtas.h>
#include "pci.h"
#undef DEBUG
@@ -365,7 +366,7 @@ unsigned long eeh_check_failure(void *token, unsigned long val)
unsigned long addr;
struct pci_dev *dev;
struct device_node *dn;
- unsigned long ret;
+ int ret;
int rets[2];
static spinlock_t lock = SPIN_LOCK_UNLOCKED;
/* dont want this on the stack */
@@ -419,7 +420,7 @@ unsigned long eeh_check_failure(void *token, unsigned long val)
BUID_LO(dn->phb->buid));
if (ret == 0 && rets[1] == 1 && rets[0] >= 2) {
- unsigned long slot_err_ret;
+ int slot_err_ret;
spin_lock_irqsave(&lock, flags);
memset(slot_err_buf, 0, RTAS_ERROR_LOG_MAX);
@@ -470,7 +471,7 @@ struct eeh_early_enable_info {
static void *early_enable_eeh(struct device_node *dn, void *data)
{
struct eeh_early_enable_info *info = data;
- long ret;
+ int ret;
char *status = get_property(dn, "status", 0);
u32 *class_code = (u32 *)get_property(dn, "class-code", 0);
u32 *vendor_id = (u32 *)get_property(dn, "vendor-id", 0);
diff --git a/arch/ppc64/kernel/head.S b/arch/ppc64/kernel/head.S
index 115138551d81..375a29d67c22 100644
--- a/arch/ppc64/kernel/head.S
+++ b/arch/ppc64/kernel/head.S
@@ -238,8 +238,8 @@ exception_marker:
#define EXCEPTION_PROLOG_ISERIES_2 \
mfmsr r10; \
- ld r11,LPPACA+LPPACASRR0(r13); \
- ld r12,LPPACA+LPPACASRR1(r13); \
+ ld r11,PACALPPACA+LPPACASRR0(r13); \
+ ld r12,PACALPPACA+LPPACASRR1(r13); \
ori r10,r10,MSR_RI; \
mtmsrd r10,1
@@ -327,10 +327,10 @@ label##_Iseries_prof_ret: \
EXCEPTION_PROLOG_ISERIES_2; \
b label##_common; \
label##_Iseries_profile: \
- ld r12,LPPACA+LPPACASRR1(r13); \
+ ld r12,PACALPPACA+LPPACASRR1(r13); \
andi. r12,r12,MSR_PR; /* Test if in kernel */ \
bne label##_Iseries_prof_ret; \
- ld r11,LPPACA+LPPACASRR0(r13); \
+ ld r11,PACALPPACA+LPPACASRR0(r13); \
ld r12,PACAPROFSTEXT(r13); /* _stext */ \
subf r11,r12,r11; /* offset into kernel */ \
lwz r12,PACAPROFSHIFT(r13); \
@@ -690,8 +690,8 @@ Decrementer_Iseries_masked:
.globl HardwareInterrupt_Iseries_masked
HardwareInterrupt_Iseries_masked:
mtcrf 0x80,r9 /* Restore regs */
- ld r11,LPPACA+LPPACASRR0(r13)
- ld r12,LPPACA+LPPACASRR1(r13)
+ ld r11,PACALPPACA+LPPACASRR0(r13)
+ ld r12,PACALPPACA+LPPACASRR1(r13)
mtspr SRR0,r11
mtspr SRR1,r12
ld r9,PACA_EXGEN+EX_R9(r13)
@@ -776,7 +776,8 @@ MachineCheck_common:
* save the registers there, and call kernel_bad_stack(), which panics.
*/
bad_stack:
- addi r1,r13,8192-64-INT_FRAME_SIZE
+ ld r1,PACAEMERGSP(r13)
+ subi r1,r1,64+INT_FRAME_SIZE
std r9,_CCR(r1)
std r10,GPR1(r1)
std r11,_NIP(r1)
@@ -1319,9 +1320,7 @@ _GLOBAL(pseries_secondary_smp_init)
sync
/* Create a temp kernel stack for use before relocation is on. */
- mr r1,r13
- addi r1,r1,PACAGUARD
- addi r1,r1,0x1000
+ ld r1,PACAEMERGSP(r13)
subi r1,r1,STACK_FRAME_OVERHEAD
cmpwi 0,r23,0
@@ -1787,9 +1786,7 @@ _GLOBAL(pmac_secondary_start)
mtspr SPRG3,r13 /* Save vaddr of paca in SPRG3 */
/* Create a temp kernel stack for use before relocation is on. */
- mr r1,r13
- addi r1,r1,PACAGUARD
- addi r1,r1,0x1000
+ ld r1,PACAEMERGSP(r13)
subi r1,r1,STACK_FRAME_OVERHEAD
b .__secondary_start
@@ -1813,12 +1810,7 @@ _GLOBAL(__secondary_start)
HMT_MEDIUM /* Set thread priority to MEDIUM */
- /* set up the TOC (virtual address) */
- LOADADDR(r2,__toc_start)
- addi r2,r2,0x4000
- addi r2,r2,0x4000
-
- std r2,PACATOC(r13)
+ ld r2,PACATOC(r13)
li r6,0
stb r6,PACAPROCENABLED(r13)
@@ -2060,11 +2052,6 @@ _STATIC(start_here_common)
li r0,0
stdu r0,-STACK_FRAME_OVERHEAD(r1)
- /* set up the TOC */
- LOADADDR(r2,__toc_start)
- addi r2,r2,0x4000
- addi r2,r2,0x4000
-
/* Apply the CPUs-specific fixups (nop out sections not relevant
* to this CPU
*/
@@ -2093,7 +2080,8 @@ _STATIC(start_here_common)
LOADADDR(r4,init_task)
std r4,PACACURRENT(r13)
- std r2,PACATOC(r13)
+ /* Load the TOC */
+ ld r2,PACATOC(r13)
std r1,PACAKSAVE(r13)
/* Restore the parms passed in from the bootloader. */
diff --git a/arch/ppc64/kernel/iSeries_proc.c b/arch/ppc64/kernel/iSeries_proc.c
index 3ba18deaf734..1babbb6b9b14 100644
--- a/arch/ppc64/kernel/iSeries_proc.c
+++ b/arch/ppc64/kernel/iSeries_proc.c
@@ -68,7 +68,7 @@ static int proc_lpevents_show(struct seq_file *m, void *v)
seq_printf(m, "\n events processed by processor:\n");
for_each_online_cpu(i)
- seq_printf(m, " CPU%02d %10u\n", i, paca[i].lpEvent_count);
+ seq_printf(m, " CPU%02d %10u\n", i, paca[i].lpevent_count);
return 0;
}
diff --git a/arch/ppc64/kernel/iSeries_setup.c b/arch/ppc64/kernel/iSeries_setup.c
index a3549809aff4..e12b50f8c98c 100644
--- a/arch/ppc64/kernel/iSeries_setup.c
+++ b/arch/ppc64/kernel/iSeries_setup.c
@@ -571,7 +571,7 @@ static void __init build_iSeries_Memory_Map(void)
static void __init setup_iSeries_cache_sizes(void)
{
unsigned int i, n;
- unsigned int procIx = get_paca()->xLpPaca.xDynHvPhysicalProcIndex;
+ unsigned int procIx = get_paca()->lppaca.xDynHvPhysicalProcIndex;
systemcfg->iCacheL1Size =
xIoHriProcessorVpd[procIx].xInstCacheSize * 1024;
@@ -665,7 +665,7 @@ extern unsigned long ppc_tb_freq;
void __init iSeries_setup_arch(void)
{
void *eventStack;
- unsigned procIx = get_paca()->xLpPaca.xDynHvPhysicalProcIndex;
+ unsigned procIx = get_paca()->lppaca.xDynHvPhysicalProcIndex;
/* Add an eye catcher and the systemcfg layout version number */
strcpy(systemcfg->eye_catcher, "SYSTEMCFG:PPC64");
diff --git a/arch/ppc64/kernel/idle.c b/arch/ppc64/kernel/idle.c
index a9a501df397c..bc7dbbd2d72e 100644
--- a/arch/ppc64/kernel/idle.c
+++ b/arch/ppc64/kernel/idle.c
@@ -76,7 +76,7 @@ static void yield_shared_processor(void)
* The decrementer stops during the yield. Force a fake decrementer
* here and let the timer_interrupt code sort out the actual time.
*/
- get_paca()->xLpPaca.xIntDword.xFields.xDecrInt = 1;
+ get_paca()->lppaca.xIntDword.xFields.xDecrInt = 1;
process_iSeries_events();
}
@@ -98,8 +98,8 @@ int iSeries_idle(void)
lpaca = get_paca();
for (;;) {
- if (lpaca->xLpPaca.xSharedProc) {
- if (ItLpQueue_isLpIntPending(lpaca->lpQueuePtr))
+ if (lpaca->lppaca.xSharedProc) {
+ if (ItLpQueue_isLpIntPending(lpaca->lpqueue_ptr))
process_iSeries_events();
if (!need_resched())
yield_shared_processor();
@@ -111,7 +111,7 @@ int iSeries_idle(void)
while (!need_resched()) {
HMT_medium();
- if (ItLpQueue_isLpIntPending(lpaca->lpQueuePtr))
+ if (ItLpQueue_isLpIntPending(lpaca->lpqueue_ptr))
process_iSeries_events();
HMT_low();
}
@@ -175,7 +175,7 @@ int dedicated_idle(void)
while (1) {
/* Indicate to the HV that we are idle. Now would be
* a good time to find other work to dispatch. */
- lpaca->xLpPaca.xIdle = 1;
+ lpaca->lppaca.xIdle = 1;
oldval = test_and_clear_thread_flag(TIF_NEED_RESCHED);
if (!oldval) {
@@ -201,7 +201,7 @@ int dedicated_idle(void)
* ST mode.
*/
if((naca->smt_state == SMT_DYNAMIC) &&
- (!(ppaca->xLpPaca.xIdle))) {
+ (!(ppaca->lppaca.xIdle))) {
/* Indicate we are no longer polling for
* work, and then clear need_resched. If
* need_resched was 1, set it back to 1
@@ -216,7 +216,6 @@ int dedicated_idle(void)
/* DRENG: Go HMT_medium here ? */
local_irq_disable();
- lpaca->yielded = 1;
/* SMT dynamic mode. Cede will result
* in this thread going dormant, if the
@@ -227,8 +226,6 @@ int dedicated_idle(void)
* enables external interrupts.
*/
cede_processor();
-
- lpaca->yielded = 0;
} else {
/* Give the HV an opportunity at the
* processor, since we are not doing
@@ -242,7 +239,7 @@ int dedicated_idle(void)
}
HMT_medium();
- lpaca->xLpPaca.xIdle = 0;
+ lpaca->lppaca.xIdle = 0;
schedule();
if (cpu_is_offline(smp_processor_id()) &&
system_state == SYSTEM_RUNNING)
@@ -262,11 +259,10 @@ int shared_idle(void)
/* Indicate to the HV that we are idle. Now would be
* a good time to find other work to dispatch. */
- lpaca->xLpPaca.xIdle = 1;
+ lpaca->lppaca.xIdle = 1;
if (!need_resched()) {
local_irq_disable();
- lpaca->yielded = 1;
/*
* Yield the processor to the hypervisor. We return if
@@ -276,12 +272,10 @@ int shared_idle(void)
* are enabled.
*/
cede_processor();
-
- lpaca->yielded = 0;
}
HMT_medium();
- lpaca->xLpPaca.xIdle = 0;
+ lpaca->lppaca.xIdle = 0;
schedule();
}
@@ -313,7 +307,7 @@ int idle_setup(void)
#else
if (systemcfg->platform & PLATFORM_PSERIES) {
if (cur_cpu_spec->firmware_features & FW_FEATURE_SPLPAR) {
- if(get_paca()->xLpPaca.xSharedProc) {
+ if (get_paca()->lppaca.xSharedProc) {
printk("idle = shared_idle\n");
idle_loop = shared_idle;
} else {
diff --git a/arch/ppc64/kernel/irq.c b/arch/ppc64/kernel/irq.c
index a2db269c9d4d..2f777d55f3fb 100644
--- a/arch/ppc64/kernel/irq.c
+++ b/arch/ppc64/kernel/irq.c
@@ -68,8 +68,8 @@ irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = {
};
int __irq_offset_value;
-int ppc_spurious_interrupts = 0;
-unsigned long lpEvent_count = 0;
+int ppc_spurious_interrupts;
+unsigned long lpevent_count;
int
setup_irq(unsigned int irq, struct irqaction * new)
@@ -613,19 +613,19 @@ int do_IRQ(struct pt_regs *regs)
lpaca = get_paca();
#ifdef CONFIG_SMP
- if (lpaca->xLpPaca.xIntDword.xFields.xIpiCnt) {
- lpaca->xLpPaca.xIntDword.xFields.xIpiCnt = 0;
+ if (lpaca->lppaca.xIntDword.xFields.xIpiCnt) {
+ lpaca->lppaca.xIntDword.xFields.xIpiCnt = 0;
iSeries_smp_message_recv(regs);
}
#endif /* CONFIG_SMP */
- lpq = lpaca->lpQueuePtr;
+ lpq = lpaca->lpqueue_ptr;
if (lpq && ItLpQueue_isLpIntPending(lpq))
- lpEvent_count += ItLpQueue_process(lpq, regs);
+ lpevent_count += ItLpQueue_process(lpq, regs);
irq_exit();
- if (lpaca->xLpPaca.xIntDword.xFields.xDecrInt) {
- lpaca->xLpPaca.xIntDword.xFields.xDecrInt = 0;
+ if (lpaca->lppaca.xIntDword.xFields.xDecrInt) {
+ lpaca->lppaca.xIntDword.xFields.xDecrInt = 0;
/* Signal a fake decrementer interrupt */
timer_interrupt(regs);
}
diff --git a/arch/ppc64/kernel/lparcfg.c b/arch/ppc64/kernel/lparcfg.c
index 860f07e8c4e6..bb8d6abeb1fb 100644
--- a/arch/ppc64/kernel/lparcfg.c
+++ b/arch/ppc64/kernel/lparcfg.c
@@ -28,6 +28,7 @@
#include <asm/iSeries/ItLpPaca.h>
#include <asm/hvcall.h>
#include <asm/cputable.h>
+#include <asm/rtas.h>
#define MODULE_VERS "1.0"
#define MODULE_NAME "lparcfg"
@@ -133,7 +134,7 @@ static int lparcfg_data(unsigned char *buf, unsigned long size)
}
memset(buf, 0, size);
- shared = (int)(lpaca->xLpPacaPtr->xSharedProc);
+ shared = (int)(lpaca->lppaca.xSharedProc);
n += scnprintf(buf, LPARCFG_BUFF_SIZE - n,
"serial_number=%c%c%c%c%c%c%c\n",
e2a(xItExtVpdPanel.mfgID[2]),
@@ -244,7 +245,7 @@ unsigned int get_splpar_potential_characteristics(void)
/* return 0 for now. Underlying rtas functionality is not yet complete. 12/01/2003*/
return 0;
#if 0
- long call_status;
+ int call_status;
unsigned long ret[2];
char * buffer = kmalloc(SPLPAR_MAXLENGTH, GFP_KERNEL);
diff --git a/arch/ppc64/kernel/pSeries_pci.c b/arch/ppc64/kernel/pSeries_pci.c
index 3a88ae49a2a7..7312d6c35eaf 100644
--- a/arch/ppc64/kernel/pSeries_pci.c
+++ b/arch/ppc64/kernel/pSeries_pci.c
@@ -40,6 +40,7 @@
#include <asm/ppcdebug.h>
#include <asm/naca.h>
#include <asm/iommu.h>
+#include <asm/rtas.h>
#include "open_pic.h"
#include "pci.h"
diff --git a/arch/ppc64/kernel/pacaData.c b/arch/ppc64/kernel/pacaData.c
index 2cf631bb82fe..29105376072e 100644
--- a/arch/ppc64/kernel/pacaData.c
+++ b/arch/ppc64/kernel/pacaData.c
@@ -16,12 +16,22 @@
#include <asm/ptrace.h>
#include <asm/iSeries/ItLpPaca.h>
+#include <asm/iSeries/ItLpQueue.h>
#include <asm/naca.h>
#include <asm/paca.h>
struct naca_struct *naca;
struct systemcfg *systemcfg;
+/* This symbol is provided by the linker - let it fill in the paca
+ * field correctly */
+extern unsigned long __toc_start;
+
+/* Stack space used when we detect a bad kernel stack pointer, and
+ * early in SMP boots before relocation is enabled.
+ */
+char emergency_stack[PAGE_SIZE * NR_CPUS];
+
/* The Paca is an array with one entry per processor. Each contains an
* ItLpPaca, which contains the information shared between the
* hypervisor and Linux. Each also contains an ItLpRegSave area which
@@ -34,22 +44,19 @@ struct systemcfg *systemcfg;
*/
#define PACAINITDATA(number,start,lpq,asrr,asrv) \
{ \
- .xLpPacaPtr = &paca[number].xLpPaca, \
- .xLpRegSavePtr = &paca[number].xRegSav, \
+ .lppaca_ptr = &paca[number].lppaca, \
+ .reg_save_ptr = &paca[number].reg_save, \
.lock_token = 0x8000, \
- .xPacaIndex = (number), /* Paca Index */ \
+ .paca_index = (number), /* Paca Index */ \
+ .lpqueue_ptr = (lpq), /* &xItLpQueue, */ \
.default_decr = 0x00ff0000, /* Initial Decr */ \
- .xStab_data = { \
- .real = (asrr), /* Real pointer to segment table */ \
- .virt = (asrv), /* Virt pointer to segment table */ \
- .next_round_robin = 1, \
- }, \
- .lpQueuePtr = (lpq), /* &xItLpQueue, */ \
- /* .xRtas = { \
- .lock = SPIN_LOCK_UNLOCKED \
- }, */ \
- .xProcStart = (start), /* Processor start */ \
- .xLpPaca = { \
+ .kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \
+ .stab_real = (asrr), /* Real pointer to segment table */ \
+ .stab_addr = (asrv), /* Virt pointer to segment table */ \
+ .emergency_sp = &emergency_stack[((number)+1) * PAGE_SIZE], \
+ .cpu_start = (start), /* Processor start */ \
+ .stab_next_rr = 1, \
+ .lppaca = { \
.xDesc = 0xd397d781, /* "LpPa" */ \
.xSize = sizeof(struct ItLpPaca), \
.xFPRegsInUse = 1, \
@@ -58,7 +65,7 @@ struct systemcfg *systemcfg;
.xEndOfQuantum = 0xfffffffffffffffful, \
.xSLBCount = 64, \
}, \
- .xRegSav = { \
+ .reg_save = { \
.xDesc = 0xd397d9e2, /* "LpRS" */ \
.xSize = sizeof(struct ItLpRegSave) \
}, \
diff --git a/arch/ppc64/kernel/pmac_smp.c b/arch/ppc64/kernel/pmac_smp.c
index a96cbbb80dd2..a67e2a595c59 100644
--- a/arch/ppc64/kernel/pmac_smp.c
+++ b/arch/ppc64/kernel/pmac_smp.c
@@ -120,7 +120,7 @@ static void __init smp_core99_kick_cpu(int nr)
/* Put some life in our friend */
pmac_call_feature(PMAC_FTR_RESET_CPU, NULL, nr, 0);
- paca[nr].xProcStart = 1;
+ paca[nr].cpu_start = 1;
/* FIXME: We wait a bit for the CPU to take the exception, I should
* instead wait for the entry code to set something for me. Well,
diff --git a/arch/ppc64/kernel/prom.c b/arch/ppc64/kernel/prom.c
index d9c8703572ba..a4318c378651 100644
--- a/arch/ppc64/kernel/prom.c
+++ b/arch/ppc64/kernel/prom.c
@@ -919,7 +919,7 @@ static void __init prom_hold_cpus(unsigned long mem)
unsigned long secondary_hold
= virt_to_abs(*PTRRELOC((unsigned long *)__secondary_hold));
struct systemcfg *_systemcfg = RELOC(systemcfg);
- struct paca_struct *_xPaca = PTRRELOC(&paca[0]);
+ struct paca_struct *lpaca = PTRRELOC(&paca[0]);
struct prom_t *_prom = PTRRELOC(&prom);
#ifdef CONFIG_SMP
struct naca_struct *_naca = RELOC(naca);
@@ -937,7 +937,7 @@ static void __init prom_hold_cpus(unsigned long mem)
continue;
reg = -1;
prom_getprop(node, "reg", &reg, sizeof(reg));
- _xPaca[cpuid].xHwProcNum = reg;
+ lpaca[cpuid].hw_cpu_id = reg;
#ifdef CONFIG_SMP
cpu_set(cpuid, RELOC(cpu_available_map));
@@ -997,7 +997,7 @@ static void __init prom_hold_cpus(unsigned long mem)
prom_debug("\ncpuid = 0x%x\n", cpuid);
prom_debug("cpu hw idx = 0x%x\n", reg);
- _xPaca[cpuid].xHwProcNum = reg;
+ lpaca[cpuid].hw_cpu_id = reg;
/* Init the acknowledge var which will be reset by
* the secondary cpu when it awakens from its OF
@@ -1066,7 +1066,7 @@ next:
cpuid++;
if (cpuid >= NR_CPUS)
continue;
- _xPaca[cpuid].xHwProcNum = interrupt_server[i];
+ lpaca[cpuid].hw_cpu_id = interrupt_server[i];
prom_printf("%x : preparing thread ... ",
interrupt_server[i]);
if (_naca->smt_state) {
@@ -1664,7 +1664,7 @@ prom_init(unsigned long r3, unsigned long r4, unsigned long pp,
unsigned long phys;
u32 getprop_rval;
struct systemcfg *_systemcfg;
- struct paca_struct *_xPaca = PTRRELOC(&paca[0]);
+ struct paca_struct *lpaca = PTRRELOC(&paca[0]);
struct prom_t *_prom = PTRRELOC(&prom);
/* First zero the BSS -- use memset, some arches don't have
@@ -1735,7 +1735,7 @@ prom_init(unsigned long r3, unsigned long r4, unsigned long pp,
cpu_pkg = call_prom("instance-to-package", 1, 1, prom_cpu);
prom_getprop(cpu_pkg, "reg", &getprop_rval, sizeof(getprop_rval));
_prom->cpu = getprop_rval;
- _xPaca[0].xHwProcNum = _prom->cpu;
+ lpaca[0].hw_cpu_id = _prom->cpu;
RELOC(boot_cpuid) = 0;
diff --git a/arch/ppc64/kernel/ras.c b/arch/ppc64/kernel/ras.c
index c21e797a3c6d..9ed9ab01dcab 100644
--- a/arch/ppc64/kernel/ras.c
+++ b/arch/ppc64/kernel/ras.c
@@ -124,7 +124,7 @@ ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs)
{
struct rtas_error_log log_entry;
unsigned int size = sizeof(log_entry);
- long status = 0xdeadbeef;
+ int status = 0xdeadbeef;
spin_lock(&log_lock);
@@ -138,10 +138,10 @@ ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs)
spin_unlock(&log_lock);
- udbg_printf("EPOW <0x%lx 0x%lx>\n",
+ udbg_printf("EPOW <0x%lx 0x%x>\n",
*((unsigned long *)&log_entry), status);
printk(KERN_WARNING
- "EPOW <0x%lx 0x%lx>\n",*((unsigned long *)&log_entry), status);
+ "EPOW <0x%lx 0x%x>\n",*((unsigned long *)&log_entry), status);
/* format and print the extended information */
log_error((char *)&log_entry, ERR_TYPE_RTAS_LOG, 0);
@@ -162,7 +162,7 @@ ras_error_interrupt(int irq, void *dev_id, struct pt_regs * regs)
{
struct rtas_error_log log_entry;
unsigned int size = sizeof(log_entry);
- long status = 0xdeadbeef;
+ int status = 0xdeadbeef;
int fatal;
spin_lock(&log_lock);
@@ -186,10 +186,10 @@ ras_error_interrupt(int irq, void *dev_id, struct pt_regs * regs)
log_error((char *)&log_entry, ERR_TYPE_RTAS_LOG, fatal);
if (fatal) {
- udbg_printf("HW Error <0x%lx 0x%lx>\n",
+ udbg_printf("HW Error <0x%lx 0x%x>\n",
*((unsigned long *)&log_entry), status);
printk(KERN_EMERG
- "Error: Fatal hardware error <0x%lx 0x%lx>\n",
+ "Error: Fatal hardware error <0x%lx 0x%x>\n",
*((unsigned long *)&log_entry), status);
#ifndef DEBUG
@@ -200,10 +200,10 @@ ras_error_interrupt(int irq, void *dev_id, struct pt_regs * regs)
ppc_md.power_off();
#endif
} else {
- udbg_printf("Recoverable HW Error <0x%lx 0x%lx>\n",
+ udbg_printf("Recoverable HW Error <0x%lx 0x%x>\n",
*((unsigned long *)&log_entry), status);
printk(KERN_WARNING
- "Warning: Recoverable hardware error <0x%lx 0x%lx>\n",
+ "Warning: Recoverable hardware error <0x%lx 0x%x>\n",
*((unsigned long *)&log_entry), status);
}
return IRQ_HANDLED;
diff --git a/arch/ppc64/kernel/rtas.c b/arch/ppc64/kernel/rtas.c
index 251439160a2a..44c7ae9a67f8 100644
--- a/arch/ppc64/kernel/rtas.c
+++ b/arch/ppc64/kernel/rtas.c
@@ -45,11 +45,10 @@ char rtas_data_buf[RTAS_DATA_BUF_SIZE]__page_aligned;
void
call_rtas_display_status(char c)
{
- struct rtas_args *args;
+ struct rtas_args *args = &rtas.args;
unsigned long s;
spin_lock_irqsave(&rtas.lock, s);
- args = &(get_paca()->xRtas);
args->token = 10;
args->nargs = 1;
@@ -76,9 +75,9 @@ rtas_token(const char *service)
static int
-__log_rtas_error(struct rtas_args *rtas_args)
+__log_rtas_error(void)
{
- struct rtas_args err_args, temp_args;
+ struct rtas_args err_args, save_args;
err_args.token = rtas_token("rtas-last-error");
err_args.nargs = 2;
@@ -89,28 +88,28 @@ __log_rtas_error(struct rtas_args *rtas_args)
err_args.args[1] = RTAS_ERROR_LOG_MAX;
err_args.args[2] = 0;
- temp_args = *rtas_args;
- get_paca()->xRtas = err_args;
+ save_args = rtas.args;
+ rtas.args = err_args;
PPCDBG(PPCDBG_RTAS, "\tentering rtas with 0x%lx\n",
__pa(&err_args));
- enter_rtas(__pa(&get_paca()->xRtas));
+ enter_rtas(__pa(&rtas.args));
PPCDBG(PPCDBG_RTAS, "\treturned from rtas ...\n");
- err_args = get_paca()->xRtas;
- get_paca()->xRtas = temp_args;
+ err_args = rtas.args;
+ rtas.args = save_args;
return err_args.rets[0];
}
void
-log_rtas_error(struct rtas_args *rtas_args)
+log_rtas_error(void)
{
unsigned long s;
int rc;
spin_lock_irqsave(&rtas.lock, s);
- rc = __log_rtas_error(rtas_args);
+ rc = __log_rtas_error();
spin_unlock_irqrestore(&rtas.lock, s);
if (rc == 0)
log_error(rtas_err_buf, ERR_TYPE_RTAS_LOG, 0);
@@ -134,7 +133,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...)
/* Gotta do something different here, use global lock for now... */
spin_lock_irqsave(&rtas.lock, s);
- rtas_args = &(get_paca()->xRtas);
+ rtas_args = &rtas.args;
rtas_args->token = token;
rtas_args->nargs = nargs;
@@ -156,7 +155,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...)
PPCDBG(PPCDBG_RTAS, "\treturned from rtas ...\n");
if (rtas_args->rets[0] == -1)
- logit = (__log_rtas_error(rtas_args) == 0);
+ logit = (__log_rtas_error() == 0);
ifppcdebug(PPCDBG_RTAS) {
for(i=0; i < nret ;i++)
@@ -440,15 +439,15 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
spin_lock_irqsave(&rtas.lock, flags);
- get_paca()->xRtas = args;
- enter_rtas(__pa(&get_paca()->xRtas));
- args = get_paca()->xRtas;
+ rtas.args = args;
+ enter_rtas(__pa(&rtas.args));
+ args = rtas.args;
spin_unlock_irqrestore(&rtas.lock, flags);
args.rets = (rtas_arg_t *)&(args.args[nargs]);
if (args.rets[0] == -1)
- log_rtas_error(&args);
+ log_rtas_error();
/* Copy out args. */
if (copy_to_user(uargs->args + nargs,
@@ -460,19 +459,23 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
}
#ifdef CONFIG_HOTPLUG_CPU
-/* This version can't take the spinlock. */
+/* This version can't take the spinlock, because it never returns */
+
+struct rtas_args rtas_stop_self_args = {
+ /* The token is initialized for real in setup_system() */
+ .token = RTAS_UNKNOWN_SERVICE,
+ .nargs = 0,
+ .nret = 1,
+ .rets = &rtas_stop_self_args.args[0],
+};
void rtas_stop_self(void)
{
- struct rtas_args *rtas_args = &(get_paca()->xRtas);
+ struct rtas_args *rtas_args = &rtas_stop_self_args;
local_irq_disable();
- rtas_args->token = rtas_token("stop-self");
BUG_ON(rtas_args->token == RTAS_UNKNOWN_SERVICE);
- rtas_args->nargs = 0;
- rtas_args->nret = 1;
- rtas_args->rets = &(rtas_args->args[0]);
printk("%u %u Ready to die...\n",
smp_processor_id(), hard_smp_processor_id());
diff --git a/arch/ppc64/kernel/rtc.c b/arch/ppc64/kernel/rtc.c
index a08da09ed1a5..57a708dd546f 100644
--- a/arch/ppc64/kernel/rtc.c
+++ b/arch/ppc64/kernel/rtc.c
@@ -40,6 +40,7 @@
#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/time.h>
+#include <asm/rtas.h>
#include <asm/iSeries/LparData.h>
#include <asm/iSeries/mf.h>
diff --git a/arch/ppc64/kernel/scanlog.c b/arch/ppc64/kernel/scanlog.c
index 8f61669ad61a..b61d90edd84c 100644
--- a/arch/ppc64/kernel/scanlog.c
+++ b/arch/ppc64/kernel/scanlog.c
@@ -118,7 +118,7 @@ static ssize_t scanlog_read(struct file *file, char *buf,
wait_time = ms / (1000000/HZ); /* round down is fine */
/* Fall through to sleep */
} else {
- printk(KERN_ERR "scanlog: unknown error from rtas: %ld\n", status);
+ printk(KERN_ERR "scanlog: unknown error from rtas: %d\n", status);
return -EIO;
}
}
diff --git a/arch/ppc64/kernel/setup.c b/arch/ppc64/kernel/setup.c
index 0bf553cf535d..dc090d425e21 100644
--- a/arch/ppc64/kernel/setup.c
+++ b/arch/ppc64/kernel/setup.c
@@ -46,6 +46,7 @@
#include <asm/nvram.h>
#include <asm/setup.h>
#include <asm/system.h>
+#include <asm/rtas.h>
extern unsigned long klimit;
/* extern void *stab; */
@@ -254,6 +255,10 @@ void setup_system(unsigned long r3, unsigned long r4, unsigned long r5,
}
#endif /* CONFIG_PPC_PMAC */
+#if defined(CONFIG_HOTPLUG_CPU) && !defined(CONFIG_PPC_PMAC)
+ rtas_stop_self_args.token = rtas_token("stop-self");
+#endif /* CONFIG_HOTPLUG_CPU && !CONFIG_PPC_PMAC */
+
/* Finish initializing the hash table (do the dynamic
* patching for the fast-path hashtable.S code)
*/
@@ -698,7 +703,7 @@ int set_spread_lpevents( char * str )
unsigned long val = simple_strtoul( str, NULL, 0 );
if ( ( val > 0 ) && ( val <= NR_CPUS ) ) {
for ( i=1; i<val; ++i )
- paca[i].lpQueuePtr = paca[0].lpQueuePtr;
+ paca[i].lpqueue_ptr = paca[0].lpqueue_ptr;
printk("lpevent processing spread over %ld processors\n", val);
}
else
diff --git a/arch/ppc64/kernel/smp.c b/arch/ppc64/kernel/smp.c
index 0a341cf1e75c..ee2f18a327c0 100644
--- a/arch/ppc64/kernel/smp.c
+++ b/arch/ppc64/kernel/smp.c
@@ -52,6 +52,7 @@
#include <asm/xics.h>
#include <asm/cputable.h>
#include <asm/system.h>
+#include <asm/rtas.h>
int smp_threads_ready;
unsigned long cache_decay_ticks;
@@ -119,12 +120,10 @@ static void smp_iSeries_message_pass(int target, int msg)
static int smp_iSeries_numProcs(void)
{
unsigned np, i;
- struct ItLpPaca * lpPaca;
np = 0;
for (i=0; i < NR_CPUS; ++i) {
- lpPaca = paca[i].xLpPacaPtr;
- if ( lpPaca->xDynProcStatus < 2 ) {
+ if (paca[i].lppaca.xDynProcStatus < 2) {
cpu_set(i, cpu_available_map);
cpu_set(i, cpu_possible_map);
cpu_set(i, cpu_present_at_boot);
@@ -138,11 +137,9 @@ static int smp_iSeries_probe(void)
{
unsigned i;
unsigned np = 0;
- struct ItLpPaca *lpPaca;
for (i=0; i < NR_CPUS; ++i) {
- lpPaca = paca[i].xLpPacaPtr;
- if (lpPaca->xDynProcStatus < 2) {
+ if (paca[i].lppaca.xDynProcStatus < 2) {
/*paca[i].active = 1;*/
++np;
}
@@ -153,21 +150,18 @@ static int smp_iSeries_probe(void)
static void smp_iSeries_kick_cpu(int nr)
{
- struct ItLpPaca *lpPaca;
-
BUG_ON(nr < 0 || nr >= NR_CPUS);
/* Verify that our partition has a processor nr */
- lpPaca = paca[nr].xLpPacaPtr;
- if (lpPaca->xDynProcStatus >= 2)
+ if (paca[nr].lppaca.xDynProcStatus >= 2)
return;
/* The processor is currently spinning, waiting
- * for the xProcStart field to become non-zero
- * After we set xProcStart, the processor will
+ * for the cpu_start field to become non-zero
+ * After we set cpu_start, the processor will
* continue on to secondary_start in iSeries_head.S
*/
- paca[nr].xProcStart = 1;
+ paca[nr].cpu_start = 1;
}
static void __devinit smp_iSeries_setup_cpu(int nr)
@@ -296,7 +290,7 @@ void __cpu_die(unsigned int cpu)
* done here. Change isolate state to Isolate and
* change allocation-state to Unusable.
*/
- paca[cpu].xProcStart = 0;
+ paca[cpu].cpu_start = 0;
/* So we can recognize if it fails to come up next time. */
cpu_callin_map[cpu] = 0;
@@ -390,12 +384,12 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
}
/* Fixup atomic count: it exited inside IRQ handler. */
- paca[lcpu].xCurrent->thread_info->preempt_count = 0;
+ paca[lcpu].__current->thread_info->preempt_count = 0;
/* Fixup SLB round-robin so next segment (kernel) goes in segment 0 */
- paca[lcpu].xStab_data.next_round_robin = 0;
+ paca[lcpu].stab_next_rr = 0;
/* At boot this is done in prom.c. */
- paca[lcpu].xHwProcNum = pcpu;
+ paca[lcpu].hw_cpu_id = pcpu;
status = rtas_call(rtas_token("start-cpu"), 3, 1, NULL,
pcpu, start_here, lcpu);
@@ -460,12 +454,12 @@ static void smp_pSeries_kick_cpu(int nr)
if (!smp_startup_cpu(nr))
return;
- /* The processor is currently spinning, waiting
- * for the xProcStart field to become non-zero
- * After we set xProcStart, the processor will
- * continue on to secondary_start
+ /*
+ * The processor is currently spinning, waiting for the
+ * cpu_start field to become non-zero After we set cpu_start,
+ * the processor will continue on to secondary_start
*/
- paca[nr].xProcStart = 1;
+ paca[nr].cpu_start = 1;
}
#endif /* CONFIG_PPC_PSERIES */
@@ -490,10 +484,8 @@ void vpa_init(int cpu)
unsigned long flags;
/* Register the Virtual Processor Area (VPA) */
- printk(KERN_INFO "register_vpa: cpu 0x%x\n", cpu);
flags = 1UL << (63 - 18);
- paca[cpu].xLpPaca.xSLBCount = 64; /* SLB restore highwater mark */
- register_vpa(flags, cpu, __pa((unsigned long)&(paca[cpu].xLpPaca)));
+ register_vpa(flags, cpu, __pa((unsigned long)&(paca[cpu].lppaca)));
}
static inline void smp_xics_do_message(int cpu, int msg)
@@ -816,7 +808,7 @@ static void __init smp_create_idle(unsigned int cpu)
init_idle(p, cpu);
unhash_process(p);
- paca[cpu].xCurrent = p;
+ paca[cpu].__current = p;
current_set[cpu] = p->thread_info;
}
@@ -868,7 +860,7 @@ void __devinit smp_prepare_boot_cpu(void)
/* cpu_possible is set up in prom.c */
cpu_set(boot_cpuid, cpu_online_map);
- paca[boot_cpuid].xCurrent = current;
+ paca[boot_cpuid].__current = current;
current_set[boot_cpuid] = current->thread_info;
}
@@ -893,8 +885,8 @@ int __devinit __cpu_up(unsigned int cpu)
tmp = &stab_array[PAGE_SIZE * cpu];
memset(tmp, 0, PAGE_SIZE);
- paca[cpu].xStab_data.virt = (unsigned long)tmp;
- paca[cpu].xStab_data.real = virt_to_abs(tmp);
+ paca[cpu].stab_addr = (unsigned long)tmp;
+ paca[cpu].stab_real = virt_to_abs(tmp);
}
/* The information for processor bringup must
@@ -956,8 +948,6 @@ int __devinit start_secondary(void *unused)
if (smp_ops->take_timebase)
smp_ops->take_timebase();
- get_paca()->yielded = 0;
-
#ifdef CONFIG_PPC_PSERIES
if (cur_cpu_spec->firmware_features & FW_FEATURE_SPLPAR) {
vpa_init(cpu);
diff --git a/arch/ppc64/kernel/stab.c b/arch/ppc64/kernel/stab.c
index 0618904494b3..0c0dc272a7f8 100644
--- a/arch/ppc64/kernel/stab.c
+++ b/arch/ppc64/kernel/stab.c
@@ -36,7 +36,7 @@ static inline void slb_add_bolted(void)
* Bolt in the first vmalloc segment. Since modules end
* up there it gets hit very heavily.
*/
- get_paca()->xStab_data.next_round_robin = 1;
+ get_paca()->stab_next_rr = 1;
make_slbe(esid, vsid, 0, 1);
#endif
}
@@ -65,7 +65,7 @@ void stab_initialize(unsigned long stab)
asm volatile("isync":::"memory");
asm volatile("slbmte %0,%0"::"r" (0) : "memory");
asm volatile("isync; slbia; isync":::"memory");
- get_paca()->xStab_data.next_round_robin = 0;
+ get_paca()->stab_next_rr = 0;
make_slbe(esid, vsid, seg0_largepages, 1);
asm volatile("isync":::"memory");
#endif
@@ -129,7 +129,7 @@ static int make_ste(unsigned long stab, unsigned long esid, unsigned long vsid)
* Could not find empty entry, pick one with a round robin selection.
* Search all entries in the two groups.
*/
- castout_entry = get_paca()->xStab_data.next_round_robin;
+ castout_entry = get_paca()->stab_next_rr;
for (i = 0; i < 16; i++) {
if (castout_entry < 8) {
global_entry = (esid & 0x1f) << 3;
@@ -148,7 +148,7 @@ static int make_ste(unsigned long stab, unsigned long esid, unsigned long vsid)
castout_entry = (castout_entry + 1) & 0xf;
}
- get_paca()->xStab_data.next_round_robin = (castout_entry + 1) & 0xf;
+ get_paca()->stab_next_rr = (castout_entry + 1) & 0xf;
/* Modify the old entry to the new value. */
@@ -181,7 +181,7 @@ static inline void __ste_allocate(unsigned long esid, unsigned long vsid)
unsigned long offset;
int region_id = REGION_ID(esid << SID_SHIFT);
- stab_entry = make_ste(get_paca()->xStab_data.virt, esid, vsid);
+ stab_entry = make_ste(get_paca()->stab_addr, esid, vsid);
if (region_id != USER_REGION_ID)
return;
@@ -275,7 +275,7 @@ static void preload_stab(struct task_struct *tsk, struct mm_struct *mm)
/* Flush all user entries from the segment table of the current processor. */
void flush_stab(struct task_struct *tsk, struct mm_struct *mm)
{
- STE *stab = (STE *) get_paca()->xStab_data.virt;
+ STE *stab = (STE *) get_paca()->stab_addr;
STE *ste;
unsigned long offset = __get_cpu_var(stab_cache_ptr);
@@ -355,7 +355,7 @@ static void make_slbe(unsigned long esid, unsigned long vsid, int large,
* paca Ksave is always valid (even when on the interrupt stack)
* so we use that.
*/
- castout_entry = lpaca->xStab_data.next_round_robin;
+ castout_entry = lpaca->stab_next_rr;
do {
entry = castout_entry;
castout_entry++;
@@ -367,9 +367,9 @@ static void make_slbe(unsigned long esid, unsigned long vsid, int large,
castout_entry = 2;
asm volatile("slbmfee %0,%1" : "=r" (esid_data) : "r" (entry));
} while (esid_data.data.v &&
- esid_data.data.esid == GET_ESID(lpaca->xKsave));
+ esid_data.data.esid == GET_ESID(lpaca->kstack));
- lpaca->xStab_data.next_round_robin = castout_entry;
+ lpaca->stab_next_rr = castout_entry;
/* slbie not needed as the previous mapping is still valid. */
diff --git a/arch/ppc64/kernel/sysfs.c b/arch/ppc64/kernel/sysfs.c
index d271d7f7fafc..057c1382ed83 100644
--- a/arch/ppc64/kernel/sysfs.c
+++ b/arch/ppc64/kernel/sysfs.c
@@ -156,7 +156,7 @@ void ppc64_enable_pmcs(void)
/* instruct hypervisor to maintain PMCs */
if (cur_cpu_spec->firmware_features & FW_FEATURE_SPLPAR) {
- char *ptr = (char *)&paca[smp_processor_id()].xLpPaca;
+ char *ptr = (char *)&paca[smp_processor_id()].lppaca;
ptr[0xBB] = 1;
}
diff --git a/arch/ppc64/kernel/time.c b/arch/ppc64/kernel/time.c
index 33229ac0ac0b..64844df4a532 100644
--- a/arch/ppc64/kernel/time.c
+++ b/arch/ppc64/kernel/time.c
@@ -56,6 +56,7 @@
#include <asm/cache.h>
#include <asm/machdep.h>
#ifdef CONFIG_PPC_ISERIES
+#include <asm/iSeries/ItLpQueue.h>
#include <asm/iSeries/HvCallXm.h>
#endif
#include <asm/uaccess.h>
@@ -97,7 +98,7 @@ unsigned long tb_to_ns_shift;
struct gettimeofday_struct do_gtod;
extern unsigned long wall_jiffies;
-extern unsigned long lpEvent_count;
+extern unsigned long lpevent_count;
extern int smp_tb_synchronized;
void ppc_adjtimex(void);
@@ -275,7 +276,7 @@ int timer_interrupt(struct pt_regs * regs)
ppc64_do_profile(regs);
#endif
- lpaca->xLpPaca.xIntDword.xFields.xDecrInt = 0;
+ lpaca->lppaca.xIntDword.xFields.xDecrInt = 0;
while (lpaca->next_jiffy_update_tb <= (cur_tb = get_tb())) {
@@ -302,9 +303,9 @@ int timer_interrupt(struct pt_regs * regs)
#ifdef CONFIG_PPC_ISERIES
{
- struct ItLpQueue *lpq = lpaca->lpQueuePtr;
+ struct ItLpQueue *lpq = lpaca->lpqueue_ptr;
if (lpq && ItLpQueue_isLpIntPending(lpq))
- lpEvent_count += ItLpQueue_process(lpq, regs);
+ lpevent_count += ItLpQueue_process(lpq, regs);
}
#endif
diff --git a/arch/ppc64/kernel/traps.c b/arch/ppc64/kernel/traps.c
index ce6654ef0210..14cc3bbdf425 100644
--- a/arch/ppc64/kernel/traps.c
+++ b/arch/ppc64/kernel/traps.c
@@ -36,6 +36,7 @@
#include <asm/io.h>
#include <asm/processor.h>
#include <asm/ppcdebug.h>
+#include <asm/rtas.h>
#ifdef CONFIG_PPC_PSERIES
/* This is true if we are using the firmware NMI handler (typically LPAR) */
diff --git a/arch/ppc64/lib/locks.c b/arch/ppc64/lib/locks.c
index 4610cb938427..b2679d6e2671 100644
--- a/arch/ppc64/lib/locks.c
+++ b/arch/ppc64/lib/locks.c
@@ -16,6 +16,7 @@
#include <linux/kernel.h>
#include <linux/spinlock.h>
#include <linux/module.h>
+#include <linux/stringify.h>
#include <asm/hvcall.h>
#include <asm/iSeries/HvCall.h>
@@ -48,7 +49,7 @@ void __spin_yield(spinlock_t *lock)
holder_cpu = lock_value & 0xffff;
BUG_ON(holder_cpu >= NR_CPUS);
holder_paca = &paca[holder_cpu];
- yield_count = holder_paca->xLpPaca.xYieldCount;
+ yield_count = holder_paca->lppaca.xYieldCount;
if ((yield_count & 1) == 0)
return; /* virtual cpu is currently running */
rmb();
@@ -75,7 +76,7 @@ static __inline__ unsigned long __spin_trylock(spinlock_t *lock)
unsigned long tmp, tmp2;
__asm__ __volatile__(
-" lwz %1,24(13) # __spin_trylock\n\
+" lwz %1,%3(13) # __spin_trylock\n\
1: lwarx %0,0,%2\n\
cmpwi 0,%0,0\n\
bne- 2f\n\
@@ -83,7 +84,7 @@ static __inline__ unsigned long __spin_trylock(spinlock_t *lock)
bne- 1b\n\
isync\n\
2:" : "=&r" (tmp), "=&r" (tmp2)
- : "r" (&lock->lock)
+ : "r" (&lock->lock), "i" (offsetof(struct paca_struct, lock_token))
: "cr0", "memory");
return tmp;
@@ -157,7 +158,7 @@ void __rw_yield(rwlock_t *rw)
holder_cpu = lock_value & 0xffff;
BUG_ON(holder_cpu >= NR_CPUS);
holder_paca = &paca[holder_cpu];
- yield_count = holder_paca->xLpPaca.xYieldCount;
+ yield_count = holder_paca->lppaca.xYieldCount;
if ((yield_count & 1) == 0)
return; /* virtual cpu is currently running */
rmb();
@@ -246,7 +247,7 @@ static __inline__ long __write_trylock(rwlock_t *rw)
long tmp, tmp2;
__asm__ __volatile__(
-" lwz %1,24(13) # write_trylock\n\
+" lwz %1,%3(13) # write_trylock\n\
1: lwarx %0,0,%2\n\
cmpwi 0,%0,0\n\
bne- 2f\n\
@@ -254,7 +255,7 @@ static __inline__ long __write_trylock(rwlock_t *rw)
bne- 1b\n\
isync\n\
2:" : "=&r" (tmp), "=&r" (tmp2)
- : "r" (&rw->lock)
+ : "r" (&rw->lock), "i" (offsetof(struct paca_struct, lock_token))
: "cr0", "memory");
return tmp;
diff --git a/arch/ppc64/xmon/xmon.c b/arch/ppc64/xmon/xmon.c
index 679a4846e64b..d84ac32fa3b8 100644
--- a/arch/ppc64/xmon/xmon.c
+++ b/arch/ppc64/xmon/xmon.c
@@ -30,6 +30,7 @@
#include <asm/paca.h>
#include <asm/ppcdebug.h>
#include <asm/cputable.h>
+#include <asm/rtas.h>
#include "nonstdio.h"
#include "privinst.h"
@@ -1611,7 +1612,7 @@ super_regs()
ptrPaca = get_paca();
printf(" Local Processor Control Area (LpPaca): \n");
- ptrLpPaca = ptrPaca->xLpPacaPtr;
+ ptrLpPaca = ptrPaca->lppaca_ptr;
printf(" Saved Srr0=%.16lx Saved Srr1=%.16lx \n",
ptrLpPaca->xSavedSrr0, ptrLpPaca->xSavedSrr1);
printf(" Saved Gpr3=%.16lx Saved Gpr4=%.16lx \n",
@@ -1619,7 +1620,7 @@ super_regs()
printf(" Saved Gpr5=%.16lx \n", ptrLpPaca->xSavedGpr5);
printf(" Local Processor Register Save Area (LpRegSave): \n");
- ptrLpRegSave = ptrPaca->xLpRegSavePtr;
+ ptrLpRegSave = ptrPaca->reg_save_ptr;
printf(" Saved Sprg0=%.16lx Saved Sprg1=%.16lx \n",
ptrLpRegSave->xSPRG0, ptrLpRegSave->xSPRG0);
printf(" Saved Sprg2=%.16lx Saved Sprg3=%.16lx \n",
@@ -2521,7 +2522,7 @@ static void dump_slb(void)
static void dump_stab(void)
{
int i;
- unsigned long *tmp = (unsigned long *)get_paca()->xStab_data.virt;
+ unsigned long *tmp = (unsigned long *)get_paca()->stab_addr;
printf("Segment table contents of cpu %x\n", smp_processor_id());
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index eab5d1e96988..778c21724bc7 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -67,9 +67,9 @@ config MARCH_Z900
on older 31 bit only CPUs.
config MARCH_Z990
- bool "IBM eServer zSeries model z990"
+ bool "IBM eServer zSeries model z890 and z990"
help
- Select this enable optimizations for model z990.
+ Select this enable optimizations for model z890/z990.
This will be slightly faster but does not work on
older machines such as the z900.
@@ -154,7 +154,7 @@ config QDIO
tristate "QDIO support"
---help---
This driver provides the Queued Direct I/O base support for the
- IBM S/390 (G5 and G6) and eServer zSeries (z800, z900 and z990).
+ IBM S/390 (G5 and G6) and eServer zSeries (z800, z890, z900 and z990).
For details please refer to the documentation provided by IBM at
<http://www10.software.ibm.com/developerworks/opensource/linux390>
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index d258019e54f3..3b8924c05cf7 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/defconfig
@@ -29,6 +29,7 @@ CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
@@ -45,6 +46,7 @@ CONFIG_MODULES=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
+CONFIG_STOP_MACHINE=y
#
# Base setup
@@ -84,12 +86,14 @@ CONFIG_PFAULT=y
# CONFIG_SHARED_KERNEL is not set
# CONFIG_CMM is not set
# CONFIG_VIRT_TIMER is not set
-# CONFIG_NO_IDLE_HZ is not set
+CONFIG_NO_IDLE_HZ=y
+CONFIG_NO_IDLE_HZ_INIT=y
# CONFIG_PCMCIA is not set
#
# Generic Driver Options
#
+CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set
@@ -120,13 +124,12 @@ CONFIG_SCSI_LOGGING=y
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
+CONFIG_SCSI_FC_ATTRS=y
#
# SCSI low-level drivers
#
# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_DEBUG is not set
@@ -277,6 +280,7 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
# CONFIG_NET_SCH_DELAY is not set
+# CONFIG_NET_SCH_INGRESS is not set
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
@@ -285,8 +289,11 @@ CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_NET_CLS_IND is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
+# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
#
@@ -311,7 +318,11 @@ CONFIG_NET_ETHERNET=y
# CONFIG_MII is not set
#
-# Gigabit Ethernet (1000/10000 Mbit)
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
#
#
@@ -450,7 +461,6 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
-# CONFIG_NEC98_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
@@ -509,5 +519,6 @@ CONFIG_CRYPTO=y
#
# Library routines
#
+# CONFIG_CRC16 is not set
# CONFIG_CRC32 is not set
# CONFIG_LIBCRC32C is not set
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c
index 540a9a8bc9a8..f1e538c9dfe0 100644
--- a/arch/s390/kernel/debug.c
+++ b/arch/s390/kernel/debug.c
@@ -54,7 +54,7 @@ typedef struct
*
*/
long args[0];
-} debug_sprintf_entry;
+} debug_sprintf_entry_t;
extern void tod_to_timeval(uint64_t todval, struct timeval *xtime);
@@ -88,7 +88,7 @@ static int debug_raw_header_fn(debug_info_t * id, struct debug_view *view,
int area, debug_entry_t * entry, char *out_buf);
static int debug_sprintf_format_fn(debug_info_t * id, struct debug_view *view,
- char *out_buf, debug_sprintf_entry *curr_event);
+ char *out_buf, debug_sprintf_entry_t *curr_event);
/* globals */
@@ -692,31 +692,21 @@ extern inline debug_entry_t *get_active_entry(debug_info_t * id)
}
/*
- * debug_common:
+ * debug_finish_entry:
* - set timestamp, caller address, cpu number etc.
*/
-extern inline debug_entry_t *debug_common(debug_info_t * id, int level,
- const void *buf, int len, int exception)
+extern inline void debug_finish_entry(debug_info_t * id, debug_entry_t* active,
+ int level, int exception)
{
- unsigned long flags;
- debug_entry_t *active;
-
- spin_lock_irqsave(&id->lock, flags);
- active = get_active_entry(id);
STCK(active->id.stck);
active->id.fields.cpuid = smp_processor_id();
active->caller = __builtin_return_address(0);
active->id.fields.exception = exception;
active->id.fields.level = level;
- memset(DEBUG_DATA(active), 0, id->buf_size);
- memcpy(DEBUG_DATA(active), buf, MIN(len, id->buf_size));
proceed_active_entry(id);
if(exception)
proceed_active_area(id);
- spin_unlock_irqrestore(&id->lock, flags);
-
- return active;
}
/*
@@ -727,7 +717,17 @@ extern inline debug_entry_t *debug_common(debug_info_t * id, int level,
debug_entry_t *debug_event_common(debug_info_t * id, int level, const void *buf,
int len)
{
- return debug_common(id, level, buf, len, 0);
+ unsigned long flags;
+ debug_entry_t *active;
+
+ spin_lock_irqsave(&id->lock, flags);
+ active = get_active_entry(id);
+ memset(DEBUG_DATA(active), 0, id->buf_size);
+ memcpy(DEBUG_DATA(active), buf, MIN(len, id->buf_size));
+ debug_finish_entry(id, active, level, 0);
+ spin_unlock_irqrestore(&id->lock, flags);
+
+ return active;
}
/*
@@ -738,7 +738,17 @@ debug_entry_t *debug_event_common(debug_info_t * id, int level, const void *buf,
debug_entry_t *debug_exception_common(debug_info_t * id, int level,
const void *buf, int len)
{
- return debug_common(id, level, buf, len, 1);
+ unsigned long flags;
+ debug_entry_t *active;
+
+ spin_lock_irqsave(&id->lock, flags);
+ active = get_active_entry(id);
+ memset(DEBUG_DATA(active), 0, id->buf_size);
+ memcpy(DEBUG_DATA(active), buf, MIN(len, id->buf_size));
+ debug_finish_entry(id, active, level, 1);
+ spin_unlock_irqrestore(&id->lock, flags);
+
+ return active;
}
/*
@@ -764,27 +774,28 @@ debug_entry_t *debug_sprintf_event(debug_info_t* id,
int level,char *string,...)
{
va_list ap;
- int numargs,alloc_size,idx;
- debug_sprintf_entry *curr_event;
- debug_entry_t *retval = NULL;
+ int numargs,idx;
+ unsigned long flags;
+ debug_sprintf_entry_t *curr_event;
+ debug_entry_t *active;
if((!id) || (level > id->level))
return NULL;
- else {
- numargs=debug_count_numargs(string);
- alloc_size=offsetof(debug_sprintf_entry,args[numargs]);
- curr_event=alloca(alloc_size);
-
- if(curr_event){
- va_start(ap,string);
- curr_event->string=string;
- for(idx=0;idx<numargs;idx++)
- curr_event->args[idx]=va_arg(ap,long);
- retval=debug_common(id,level, curr_event,alloc_size,0);
- va_end(ap);
- }
- return retval;
- }
+
+ numargs=debug_count_numargs(string);
+
+ spin_lock_irqsave(&id->lock, flags);
+ active = get_active_entry(id);
+ curr_event=(debug_sprintf_entry_t *) DEBUG_DATA(active);
+ va_start(ap,string);
+ curr_event->string=string;
+ for(idx=0;idx<MIN(numargs,((id->buf_size / sizeof(long))-1));idx++)
+ curr_event->args[idx]=va_arg(ap,long);
+ va_end(ap);
+ debug_finish_entry(id, active, level, 0);
+ spin_unlock_irqrestore(&id->lock, flags);
+
+ return active;
}
/*
@@ -795,27 +806,28 @@ debug_entry_t *debug_sprintf_exception(debug_info_t* id,
int level,char *string,...)
{
va_list ap;
- int numargs,alloc_size,idx;
- debug_sprintf_entry *curr_event;
- debug_entry_t *retval = NULL;
+ int numargs,idx;
+ unsigned long flags;
+ debug_sprintf_entry_t *curr_event;
+ debug_entry_t *active;
if((!id) || (level > id->level))
return NULL;
- else {
- numargs=debug_count_numargs(string);
- alloc_size=offsetof(debug_sprintf_entry,args[numargs]);
- curr_event=alloca(alloc_size);
-
- if(curr_event){
- va_start(ap,string);
- curr_event->string=string;
- for(idx=0;idx<numargs;idx++)
- curr_event->args[idx]=va_arg(ap,long);
- retval=debug_common(id,level, curr_event,alloc_size,1);
- va_end(ap);
- }
- return retval;
- }
+
+ numargs=debug_count_numargs(string);
+
+ spin_lock_irqsave(&id->lock, flags);
+ active = get_active_entry(id);
+ curr_event=(debug_sprintf_entry_t *)DEBUG_DATA(active);
+ va_start(ap,string);
+ curr_event->string=string;
+ for(idx=0;idx<MIN(numargs,((id->buf_size / sizeof(long))-1));idx++)
+ curr_event->args[idx]=va_arg(ap,long);
+ va_end(ap);
+ debug_finish_entry(id, active, level, 1);
+ spin_unlock_irqrestore(&id->lock, flags);
+
+ return active;
}
/*
@@ -1127,7 +1139,7 @@ int debug_dflt_header_fn(debug_info_t * id, struct debug_view *view,
#define DEBUG_SPRINTF_MAX_ARGS 10
int debug_sprintf_format_fn(debug_info_t * id, struct debug_view *view,
- char *out_buf, debug_sprintf_entry *curr_event)
+ char *out_buf, debug_sprintf_entry_t *curr_event)
{
int num_longs, num_used_args = 0,i, rc = 0;
int index[DEBUG_SPRINTF_MAX_ARGS];
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index 533fa85ce3e7..926b58e1f890 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -305,7 +305,8 @@ sysc_restart:
#
sysc_singlestep:
ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
- mvi SP_TRAP+1(%r15),0x28 # set trap indication to pgm check
+ lhi %r0,__LC_PGM_OLD_PSW
+ sth %r0,SP_TRAP(%r15) # set trap indication to pgm check
la %r2,SP_PTREGS(%r15) # address of register-save area
larl %r14,sysc_return # load adr. of system return
jg do_debugger_trap # branch to do_debugger_trap
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index 068653a5e77e..fb295b79fed4 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -613,10 +613,6 @@ startup:basr %r13,0 # get base
bne .Lnop390-.LPG1(%r13)
oi 3(%r12),4 # set P/390 flag
.Lnop390:
- chi %r0,0x2084 # new stidp format?
- bne .Loldfmt-.LPG1(%r13)
- oi 3(%r12),64 # set new stidp flag
-.Loldfmt:
#
# find out if we have an IEEE fpu
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S
index 26caebd7d676..e32a8e90febb 100644
--- a/arch/s390/kernel/head64.S
+++ b/arch/s390/kernel/head64.S
@@ -623,10 +623,6 @@ startup:basr %r13,0 # get base
bne 1f-.LPG1(%r13)
oi 7(%r12),4 # set P/390 flag
1:
- chi %r0,0x2084 # new stidp format?
- bne 2f-.LPG1(%r13)
- oi 7(%r12),64 # set new stidp flag
-2:
#
# find out if we have the MVPG instruction
diff --git a/arch/s390/kernel/s390_ksyms.c b/arch/s390/kernel/s390_ksyms.c
index 90e7fe6687ba..90ccb07c1c65 100644
--- a/arch/s390/kernel/s390_ksyms.c
+++ b/arch/s390/kernel/s390_ksyms.c
@@ -72,7 +72,8 @@ EXPORT_SYMBOL(__udelay);
EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(csum_fold);
EXPORT_SYMBOL(console_mode);
-EXPORT_SYMBOL(console_device);
+EXPORT_SYMBOL(console_devno);
+EXPORT_SYMBOL(console_irq);
EXPORT_SYMBOL_NOVERS(do_call_softirq);
EXPORT_SYMBOL(sys_wait4);
EXPORT_SYMBOL(cpcmd);
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 8b4c40d8f7bf..f75cc79ae099 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -49,7 +49,7 @@
* Machine setup..
*/
unsigned int console_mode = 0;
-unsigned int console_device = -1;
+unsigned int console_devno = -1;
unsigned int console_irq = -1;
unsigned long memory_size = 0;
unsigned long machine_flags = 0;
@@ -160,7 +160,7 @@ static int __init condev_setup(char *str)
vdev = simple_strtoul(str, &str, 0);
if (vdev >= 0 && vdev < 65536) {
- console_device = vdev;
+ console_devno = vdev;
console_irq = -1;
}
return 1;
@@ -194,7 +194,7 @@ static void __init conmode_default(void)
if (MACHINE_IS_VM) {
cpcmd("QUERY CONSOLE", query_buffer, 1024);
- console_device = simple_strtoul(query_buffer + 5, NULL, 16);
+ console_devno = simple_strtoul(query_buffer + 5, NULL, 16);
ptr = strstr(query_buffer, "SUBCHANNEL =");
console_irq = simple_strtoul(ptr + 13, NULL, 16);
cpcmd("QUERY TERM", query_buffer, 1024);
@@ -649,3 +649,13 @@ int show_interrupts(struct seq_file *p, void *v)
return 0;
}
+
+/*
+ * For compatibilty only. S/390 specific setup of interrupts et al. is done
+ * much later in init_channel_subsystem().
+ */
+void __init
+init_IRQ(void)
+{
+ /* nothing... */
+}
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index e687d0aa4fb8..084cc5e3af07 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -518,19 +518,19 @@ void start_hz_timer(struct pt_regs *regs)
* Stop the HZ tick on the current CPU.
* Only cpu_idle may call this function.
*/
-int stop_hz_timer(void)
+void stop_hz_timer(void)
{
__u64 timer;
if (sysctl_hz_timer != 0)
- return 1;
+ return;
/*
* Leave the clock comparator set up for the next timer
* tick if either rcu or a softirq is pending.
*/
if (rcu_pending(smp_processor_id()) || local_softirq_pending())
- return 1;
+ return;
/*
* This cpu is going really idle. Set up the clock comparator
@@ -540,8 +540,6 @@ int stop_hz_timer(void)
timer = (__u64) (next_timer_interrupt() - jiffies) + jiffies_64;
timer = jiffies_timer_cc + timer * CLK_TICKS_PER_JIFFY;
asm volatile ("SCKC %0" : : "m" (timer));
-
- return 0;
}
#endif
@@ -572,8 +570,7 @@ int stop_timers(void)
#endif
#ifdef CONFIG_NO_IDLE_HZ
- if (stop_hz_timer())
- return 1;
+ stop_hz_timer();
#endif
/* enable monitor call class 0 */
diff --git a/arch/sparc64/kernel/itlb_base.S b/arch/sparc64/kernel/itlb_base.S
index 36c41501a344..b5e32dfa4fbc 100644
--- a/arch/sparc64/kernel/itlb_base.S
+++ b/arch/sparc64/kernel/itlb_base.S
@@ -41,6 +41,9 @@
CREATE_VPTE_OFFSET2(%g4, %g6) ! Create VPTE offset
ldxa [%g3 + %g6] ASI_P, %g5 ! Load VPTE
1: brgez,pn %g5, 3f ! Not valid, branch out
+ sethi %hi(_PAGE_EXEC), %g4 ! Delay-slot
+ andcc %g5, %g4, %g0 ! Executable?
+ be,pn %xcc, 3f ! Nope, branch.
nop ! Delay-slot
2: stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load PTE into TLB
retry ! Trap return
@@ -73,9 +76,6 @@ winfix_trampoline:
nop
nop
nop
- nop
- nop
- nop
CREATE_VPTE_NOP
#undef CREATE_VPTE_OFFSET1
diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c
index 5fc4644aad99..ac57b9e7960d 100644
--- a/arch/sparc64/mm/fault.c
+++ b/arch/sparc64/mm/fault.c
@@ -257,7 +257,7 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code,
* in that case.
*/
- if (!(fault_code & FAULT_CODE_WRITE) &&
+ if (!(fault_code & (FAULT_CODE_WRITE|FAULT_CODE_ITLB)) &&
(insn & 0xc0800000) == 0xc0800000) {
if (insn & 0x2000)
asi = (regs->tstate >> 24);
@@ -408,6 +408,16 @@ continue_fault:
*/
good_area:
si_code = SEGV_ACCERR;
+
+ /* If we took a ITLB miss on a non-executable page, catch
+ * that here.
+ */
+ if ((fault_code & FAULT_CODE_ITLB) && !(vma->vm_flags & VM_EXEC)) {
+ BUG_ON(address != regs->tpc);
+ BUG_ON(regs->tstate & TSTATE_PRIV);
+ goto bad_area;
+ }
+
if (fault_code & FAULT_CODE_WRITE) {
if (!(vma->vm_flags & VM_WRITE))
goto bad_area;
diff --git a/arch/x86_64/kernel/suspend.c b/arch/x86_64/kernel/suspend.c
index d8cdbe131c73..751982df5939 100644
--- a/arch/x86_64/kernel/suspend.c
+++ b/arch/x86_64/kernel/suspend.c
@@ -35,40 +35,45 @@ unsigned long saved_context_r08, saved_context_r09, saved_context_r10, saved_con
unsigned long saved_context_r12, saved_context_r13, saved_context_r14, saved_context_r15;
unsigned long saved_context_eflags;
-void save_processor_state (void)
+void __save_processor_state(struct saved_context *ctxt)
{
kernel_fpu_begin();
/*
* descriptor tables
*/
- asm volatile ("sgdt %0" : "=m" (saved_context.gdt_limit));
- asm volatile ("sidt %0" : "=m" (saved_context.idt_limit));
- asm volatile ("sldt %0" : "=m" (saved_context.ldt));
- asm volatile ("str %0" : "=m" (saved_context.tr));
+ asm volatile ("sgdt %0" : "=m" (ctxt->gdt_limit));
+ asm volatile ("sidt %0" : "=m" (ctxt->idt_limit));
+ asm volatile ("sldt %0" : "=m" (ctxt->ldt));
+ asm volatile ("str %0" : "=m" (ctxt->tr));
/* XMM0..XMM15 should be handled by kernel_fpu_begin(). */
/* EFER should be constant for kernel version, no need to handle it. */
/*
* segment registers
*/
- asm volatile ("movw %%ds, %0" : "=m" (saved_context.ds));
- asm volatile ("movw %%es, %0" : "=m" (saved_context.es));
- asm volatile ("movw %%fs, %0" : "=m" (saved_context.fs));
- asm volatile ("movw %%gs, %0" : "=m" (saved_context.gs));
- asm volatile ("movw %%ss, %0" : "=m" (saved_context.ss));
+ asm volatile ("movw %%ds, %0" : "=m" (ctxt->ds));
+ asm volatile ("movw %%es, %0" : "=m" (ctxt->es));
+ asm volatile ("movw %%fs, %0" : "=m" (ctxt->fs));
+ asm volatile ("movw %%gs, %0" : "=m" (ctxt->gs));
+ asm volatile ("movw %%ss, %0" : "=m" (ctxt->ss));
- rdmsrl(MSR_FS_BASE, saved_context.fs_base);
- rdmsrl(MSR_GS_BASE, saved_context.gs_base);
- rdmsrl(MSR_KERNEL_GS_BASE, saved_context.gs_kernel_base);
+ rdmsrl(MSR_FS_BASE, ctxt->fs_base);
+ rdmsrl(MSR_GS_BASE, ctxt->gs_base);
+ rdmsrl(MSR_KERNEL_GS_BASE, ctxt->gs_kernel_base);
/*
* control registers
*/
- asm volatile ("movq %%cr0, %0" : "=r" (saved_context.cr0));
- asm volatile ("movq %%cr2, %0" : "=r" (saved_context.cr2));
- asm volatile ("movq %%cr3, %0" : "=r" (saved_context.cr3));
- asm volatile ("movq %%cr4, %0" : "=r" (saved_context.cr4));
+ asm volatile ("movq %%cr0, %0" : "=r" (ctxt->cr0));
+ asm volatile ("movq %%cr2, %0" : "=r" (ctxt->cr2));
+ asm volatile ("movq %%cr3, %0" : "=r" (ctxt->cr3));
+ asm volatile ("movq %%cr4, %0" : "=r" (ctxt->cr4));
+}
+
+void save_processor_state(void)
+{
+ __save_processor_state(&saved_context);
}
static void
@@ -80,42 +85,47 @@ do_fpu_end(void)
mxcsr_feature_mask_init();
}
-void restore_processor_state(void)
+void __restore_processor_state(struct saved_context *ctxt)
{
/*
* control registers
*/
- asm volatile ("movq %0, %%cr4" :: "r" (saved_context.cr4));
- asm volatile ("movq %0, %%cr3" :: "r" (saved_context.cr3));
- asm volatile ("movq %0, %%cr2" :: "r" (saved_context.cr2));
- asm volatile ("movq %0, %%cr0" :: "r" (saved_context.cr0));
+ asm volatile ("movq %0, %%cr4" :: "r" (ctxt->cr4));
+ asm volatile ("movq %0, %%cr3" :: "r" (ctxt->cr3));
+ asm volatile ("movq %0, %%cr2" :: "r" (ctxt->cr2));
+ asm volatile ("movq %0, %%cr0" :: "r" (ctxt->cr0));
/*
* segment registers
*/
- asm volatile ("movw %0, %%ds" :: "r" (saved_context.ds));
- asm volatile ("movw %0, %%es" :: "r" (saved_context.es));
- asm volatile ("movw %0, %%fs" :: "r" (saved_context.fs));
- load_gs_index(saved_context.gs);
- asm volatile ("movw %0, %%ss" :: "r" (saved_context.ss));
+ asm volatile ("movw %0, %%ds" :: "r" (ctxt->ds));
+ asm volatile ("movw %0, %%es" :: "r" (ctxt->es));
+ asm volatile ("movw %0, %%fs" :: "r" (ctxt->fs));
+ load_gs_index(ctxt->gs);
+ asm volatile ("movw %0, %%ss" :: "r" (ctxt->ss));
- wrmsrl(MSR_FS_BASE, saved_context.fs_base);
- wrmsrl(MSR_GS_BASE, saved_context.gs_base);
- wrmsrl(MSR_KERNEL_GS_BASE, saved_context.gs_kernel_base);
+ wrmsrl(MSR_FS_BASE, ctxt->fs_base);
+ wrmsrl(MSR_GS_BASE, ctxt->gs_base);
+ wrmsrl(MSR_KERNEL_GS_BASE, ctxt->gs_kernel_base);
/*
* now restore the descriptor tables to their proper values
* ltr is done i fix_processor_context().
*/
- asm volatile ("lgdt %0" :: "m" (saved_context.gdt_limit));
- asm volatile ("lidt %0" :: "m" (saved_context.idt_limit));
- asm volatile ("lldt %0" :: "m" (saved_context.ldt));
+ asm volatile ("lgdt %0" :: "m" (ctxt->gdt_limit));
+ asm volatile ("lidt %0" :: "m" (ctxt->idt_limit));
+ asm volatile ("lldt %0" :: "m" (ctxt->ldt));
fix_processor_context();
do_fpu_end();
}
+void restore_processor_state(void)
+{
+ __restore_processor_state(&saved_context);
+}
+
void fix_processor_context(void)
{
int cpu = smp_processor_id();