diff --git a/debian/patches/bugfix/all/patch-2.6.26-rc6-git1 b/debian/patches/bugfix/all/patch-2.6.26-rc6-git1 deleted file mode 100644 index 607549593..000000000 --- a/debian/patches/bugfix/all/patch-2.6.26-rc6-git1 +++ /dev/null @@ -1,1889 +0,0 @@ -diff --git a/Documentation/cciss.txt b/Documentation/cciss.txt -index e65736c..63e59b8 100644 ---- a/Documentation/cciss.txt -+++ b/Documentation/cciss.txt -@@ -21,6 +21,11 @@ This driver is known to work with the following cards: - * SA E200 - * SA E200i - * SA E500 -+ * SA P212 -+ * SA P410 -+ * SA P410i -+ * SA P411 -+ * SA P812 - - Detecting drive failures: - ------------------------- -diff --git a/MAINTAINERS b/MAINTAINERS -index 9d43042..88aac5f 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -1202,6 +1202,7 @@ M: pj@sgi.com - M: menage@google.com - L: linux-kernel@vger.kernel.org - W: http://www.bullopensource.org/cpuset/ -+W: http://oss.sgi.com/projects/cpusets/ - S: Supported - - CRAMFS FILESYSTEM -@@ -3329,9 +3330,11 @@ L: video4linux-list@redhat.com - W: http://www.isely.net/pvrusb2/ - S: Maintained - --PXA2xx SUPPORT --P: Nicolas Pitre --M: nico@cam.org -+PXA2xx/PXA3xx SUPPORT -+P: Eric Miao -+M: eric.miao@marvell.com -+P: Russell King -+M: linux@arm.linux.org.uk - L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) - S: Maintained - -diff --git a/arch/m68knommu/platform/coldfire/timers.c b/arch/m68knommu/platform/coldfire/timers.c -index ba5a9f3..454f254 100644 ---- a/arch/m68knommu/platform/coldfire/timers.c -+++ b/arch/m68knommu/platform/coldfire/timers.c -@@ -111,7 +111,13 @@ void hw_timer_init(void) - - __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); - mcftmr_cycles_per_jiffy = FREQ / HZ; -- __raw_writetrr(mcftmr_cycles_per_jiffy, TA(MCFTIMER_TRR)); -+ /* -+ * The coldfire timer runs from 0 to TRR included, then 0 -+ * again and so on. It counts thus actually TRR + 1 steps -+ * for 1 tick, not TRR. So if you want n cycles, -+ * initialize TRR with n - 1. -+ */ -+ __raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR)); - __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | - MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); - -diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c -index b4b36e0..183db26 100644 ---- a/arch/um/os-Linux/start_up.c -+++ b/arch/um/os-Linux/start_up.c -@@ -121,8 +121,10 @@ static int stop_ptraced_child(int pid, int exitcode, int mustexit) - { - int status, n, ret = 0; - -- if (ptrace(PTRACE_CONT, pid, 0, 0) < 0) -- fatal_perror("stop_ptraced_child : ptrace failed"); -+ if (ptrace(PTRACE_CONT, pid, 0, 0) < 0) { -+ perror("stop_ptraced_child : ptrace failed"); -+ return -1; -+ } - CATCH_EINTR(n = waitpid(pid, &status, 0)); - if (!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { - int exit_with = WEXITSTATUS(status); -@@ -212,7 +214,7 @@ static void __init check_sysemu(void) - if (n < 0) - fatal_perror("check_sysemu : wait failed"); - if (!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP)) -- fatal("check_sysemu : expected SIGTRAP, got status = %d", -+ fatal("check_sysemu : expected SIGTRAP, got status = %d\n", - status); - - if (ptrace(PTRACE_GETREGS, pid, 0, regs) < 0) -@@ -254,9 +256,11 @@ static void __init check_sysemu(void) - - if (WIFSTOPPED(status) && - (WSTOPSIG(status) == (SIGTRAP|0x80))) { -- if (!count) -- fatal("check_ptrace : SYSEMU_SINGLESTEP " -- "doesn't singlestep"); -+ if (!count) { -+ non_fatal("check_ptrace : SYSEMU_SINGLESTEP " -+ "doesn't singlestep"); -+ goto fail; -+ } - n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, - os_getpid()); - if (n < 0) -@@ -266,9 +270,12 @@ static void __init check_sysemu(void) - } - else if (WIFSTOPPED(status) && (WSTOPSIG(status) == SIGTRAP)) - count++; -- else -- fatal("check_ptrace : expected SIGTRAP or " -- "(SIGTRAP | 0x80), got status = %d", status); -+ else { -+ non_fatal("check_ptrace : expected SIGTRAP or " -+ "(SIGTRAP | 0x80), got status = %d\n", -+ status); -+ goto fail; -+ } - } - if (stop_ptraced_child(pid, 0, 0) < 0) - goto fail_stopped; -diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c -index b487cbe..229f7a5 100644 ---- a/arch/um/os-Linux/sys-i386/registers.c -+++ b/arch/um/os-Linux/sys-i386/registers.c -@@ -6,7 +6,7 @@ - - #include - #include --#include -+#include - #include "kern_constants.h" - #include "longjmp.h" - #include "user.h" -@@ -76,7 +76,7 @@ int put_fp_registers(int pid, unsigned long *regs) - - void arch_init_registers(int pid) - { -- struct user_fxsr_struct fpx_regs; -+ struct user_fpxregs_struct fpx_regs; - int err; - - err = ptrace(PTRACE_GETFPXREGS, pid, 0, &fpx_regs); -diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c -index 9615eee..05191bb 100644 ---- a/arch/x86/kernel/rtc.c -+++ b/arch/x86/kernel/rtc.c -@@ -4,6 +4,8 @@ - #include - #include - #include -+#include -+#include - - #include - #include -@@ -197,3 +199,35 @@ unsigned long long native_read_tsc(void) - } - EXPORT_SYMBOL(native_read_tsc); - -+ -+static struct resource rtc_resources[] = { -+ [0] = { -+ .start = RTC_PORT(0), -+ .end = RTC_PORT(1), -+ .flags = IORESOURCE_IO, -+ }, -+ [1] = { -+ .start = RTC_IRQ, -+ .end = RTC_IRQ, -+ .flags = IORESOURCE_IRQ, -+ } -+}; -+ -+static struct platform_device rtc_device = { -+ .name = "rtc_cmos", -+ .id = -1, -+ .resource = rtc_resources, -+ .num_resources = ARRAY_SIZE(rtc_resources), -+}; -+ -+static __init int add_rtc_cmos(void) -+{ -+#ifdef CONFIG_PNP -+ if (!pnp_platform_devices) -+ platform_device_register(&rtc_device); -+#else -+ platform_device_register(&rtc_device); -+#endif /* CONFIG_PNP */ -+ return 0; -+} -+device_initcall(add_rtc_cmos); -diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c -index e336b05..5f1e1cc 100644 ---- a/drivers/block/cciss.c -+++ b/drivers/block/cciss.c -@@ -53,15 +53,16 @@ - #include - - #define CCISS_DRIVER_VERSION(maj,min,submin) ((maj<<16)|(min<<8)|(submin)) --#define DRIVER_NAME "HP CISS Driver (v 3.6.14)" --#define DRIVER_VERSION CCISS_DRIVER_VERSION(3,6,14) -+#define DRIVER_NAME "HP CISS Driver (v 3.6.20)" -+#define DRIVER_VERSION CCISS_DRIVER_VERSION(3, 6, 20) - - /* Embedded module documentation macros - see modules.h */ - MODULE_AUTHOR("Hewlett-Packard Company"); --MODULE_DESCRIPTION("Driver for HP Controller SA5xxx SA6xxx version 3.6.14"); -+MODULE_DESCRIPTION("Driver for HP Smart Array Controllers"); - MODULE_SUPPORTED_DEVICE("HP SA5i SA5i+ SA532 SA5300 SA5312 SA641 SA642 SA6400" -- " SA6i P600 P800 P400 P400i E200 E200i E500"); --MODULE_VERSION("3.6.14"); -+ " SA6i P600 P800 P400 P400i E200 E200i E500 P700m" -+ " Smart Array G2 Series SAS/SATA Controllers"); -+MODULE_VERSION("3.6.20"); - MODULE_LICENSE("GPL"); - - #include "cciss_cmd.h" -@@ -90,6 +91,11 @@ static const struct pci_device_id cciss_pci_device_id[] = { - {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSD, 0x103C, 0x3215}, - {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3237}, - {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x323D}, -+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3241}, -+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3243}, -+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245}, -+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3247}, -+ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249}, - {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, - {0,} -@@ -123,6 +129,11 @@ static struct board_type products[] = { - {0x3215103C, "Smart Array E200i", &SA5_access, 120}, - {0x3237103C, "Smart Array E500", &SA5_access, 512}, - {0x323D103C, "Smart Array P700m", &SA5_access, 512}, -+ {0x3241103C, "Smart Array P212", &SA5_access, 384}, -+ {0x3243103C, "Smart Array P410", &SA5_access, 384}, -+ {0x3245103C, "Smart Array P410i", &SA5_access, 384}, -+ {0x3247103C, "Smart Array P411", &SA5_access, 384}, -+ {0x3249103C, "Smart Array P812", &SA5_access, 384}, - {0xFFFF103C, "Unknown Smart Array", &SA5_access, 120}, - }; - -diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig -index d307bf2..2d854bb 100644 ---- a/drivers/char/Kconfig -+++ b/drivers/char/Kconfig -@@ -749,7 +749,7 @@ config NVRAM - if RTC_LIB=n - - config RTC -- tristate "Enhanced Real Time Clock Support" -+ tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)" - depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \ - && !ARM && !SUPERH && !S390 && !AVR32 - ---help--- -@@ -1036,9 +1036,9 @@ config HPET - non-periodic and/or periodic. - - config HPET_RTC_IRQ -- bool "HPET Control RTC IRQ" if !HPET_EMULATE_RTC -- default n -- depends on HPET -+ bool -+ default HPET_EMULATE_RTC -+ depends on RTC && HPET - help - If you say Y here, you will disable RTC_IRQ in drivers/char/rtc.c. It - is assumed the platform called hpet_alloc with the RTC IRQ values for -diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c -index 55c97f6..07b4d8f 100644 ---- a/drivers/char/agp/ati-agp.c -+++ b/drivers/char/agp/ati-agp.c -@@ -458,6 +458,10 @@ static struct agp_device_ids ati_agp_device_ids[] __devinitdata = - .chipset_name = "IGP9100/M", - }, - { -+ .device_id = PCI_DEVICE_ID_ATI_RS350_133, -+ .chipset_name = "IGP9000/M", -+ }, -+ { - .device_id = PCI_DEVICE_ID_ATI_RS350_200, - .chipset_name = "IGP9100/M", - }, -diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c -index 2398e86..a00869c 100644 ---- a/drivers/char/generic_nvram.c -+++ b/drivers/char/generic_nvram.c -@@ -133,7 +133,7 @@ static struct miscdevice nvram_dev = { - - int __init nvram_init(void) - { -- printk(KERN_INFO "Macintosh non-volatile memory driver v%s\n", -+ printk(KERN_INFO "Generic non-volatile memory driver v%s\n", - NVRAM_VERSION); - return misc_register(&nvram_dev); - } -diff --git a/drivers/char/hw_random/intel-rng.c b/drivers/char/hw_random/intel-rng.c -index 5cc651e..27fdc08 100644 ---- a/drivers/char/hw_random/intel-rng.c -+++ b/drivers/char/hw_random/intel-rng.c -@@ -273,7 +273,7 @@ static int __init intel_rng_hw_init(void *_intel_rng_hw) - if (mfc != INTEL_FWH_MANUFACTURER_CODE || - (dvc != INTEL_FWH_DEVICE_CODE_8M && - dvc != INTEL_FWH_DEVICE_CODE_4M)) { -- printk(KERN_ERR PFX "FWH not detected\n"); -+ printk(KERN_NOTICE PFX "FWH not detected\n"); - return -ENODEV; - } - -diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c -index 7f7e798..d9a0a53 100644 ---- a/drivers/char/keyboard.c -+++ b/drivers/char/keyboard.c -@@ -677,12 +677,7 @@ static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag) - - static void k_self(struct vc_data *vc, unsigned char value, char up_flag) - { -- unsigned int uni; -- if (kbd->kbdmode == VC_UNICODE) -- uni = value; -- else -- uni = conv_8bit_to_uni(value); -- k_unicode(vc, uni, up_flag); -+ k_unicode(vc, conv_8bit_to_uni(value), up_flag); - } - - static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag) -diff --git a/drivers/isdn/sc/ioctl.c b/drivers/isdn/sc/ioctl.c -index 7817d22..1081091 100644 ---- a/drivers/isdn/sc/ioctl.c -+++ b/drivers/isdn/sc/ioctl.c -@@ -226,6 +226,7 @@ int sc_ioctl(int card, scs_ioctl *data) - */ - if (copy_from_user(spid, data->dataptr, SCIOC_SPIDSIZE)) { - kfree(rcvmsg); -+ kfree(spid); - return -EFAULT; - } - -diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c -index be624a0..c303e7f 100644 ---- a/drivers/mmc/host/wbsd.c -+++ b/drivers/mmc/host/wbsd.c -@@ -1457,17 +1457,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq) - int ret; - - /* -- * Allocate interrupt. -- */ -- -- ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); -- if (ret) -- return ret; -- -- host->irq = irq; -- -- /* -- * Set up tasklets. -+ * Set up tasklets. Must be done before requesting interrupt. - */ - tasklet_init(&host->card_tasklet, wbsd_tasklet_card, - (unsigned long)host); -@@ -1480,6 +1470,15 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq) - tasklet_init(&host->finish_tasklet, wbsd_tasklet_finish, - (unsigned long)host); - -+ /* -+ * Allocate interrupt. -+ */ -+ ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); -+ if (ret) -+ return ret; -+ -+ host->irq = irq; -+ - return 0; - } - -diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig -index 60f8afc..4949dc4 100644 ---- a/drivers/rtc/Kconfig -+++ b/drivers/rtc/Kconfig -@@ -256,6 +256,17 @@ config RTC_DRV_S35390A - This driver can also be built as a module. If so the module - will be called rtc-s35390a. - -+config RTC_DRV_FM3130 -+ tristate "Ramtron FM3130" -+ help -+ If you say Y here you will get support for the -+ Ramtron FM3130 RTC chips. -+ Ramtron FM3130 is a chip with two separate devices inside, -+ RTC clock and FRAM. This driver provides only RTC functionality. -+ -+ This driver can also be built as a module. If so the module -+ will be called rtc-fm3130. -+ - endif # I2C - - comment "SPI RTC drivers" -diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile -index ebe871c..b6e14d5 100644 ---- a/drivers/rtc/Makefile -+++ b/drivers/rtc/Makefile -@@ -31,6 +31,7 @@ obj-$(CONFIG_RTC_DRV_DS1553) += rtc-ds1553.o - obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o - obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds1742.o - obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o -+obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o - obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o - obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o - obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o -@@ -41,6 +42,7 @@ obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o - obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o - obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o - obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o -+obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o - obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o - obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o - obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o -@@ -54,4 +56,3 @@ obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o - obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o - obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o - obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o --obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o -diff --git a/drivers/rtc/rtc-at32ap700x.c b/drivers/rtc/rtc-at32ap700x.c -index 42244f1..2ef8cdf 100644 ---- a/drivers/rtc/rtc-at32ap700x.c -+++ b/drivers/rtc/rtc-at32ap700x.c -@@ -94,8 +94,11 @@ static int at32_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) - { - struct rtc_at32ap700x *rtc = dev_get_drvdata(dev); - -+ spin_lock_irq(&rtc->lock); - rtc_time_to_tm(rtc->alarm_time, &alrm->time); -- alrm->pending = rtc_readl(rtc, IMR) & RTC_BIT(IMR_TOPI) ? 1 : 0; -+ alrm->enabled = rtc_readl(rtc, IMR) & RTC_BIT(IMR_TOPI) ? 1 : 0; -+ alrm->pending = rtc_readl(rtc, ISR) & RTC_BIT(ISR_TOPI) ? 1 : 0; -+ spin_unlock_irq(&rtc->lock); - - return 0; - } -@@ -119,7 +122,7 @@ static int at32_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) - spin_lock_irq(&rtc->lock); - rtc->alarm_time = alarm_unix_time; - rtc_writel(rtc, TOP, rtc->alarm_time); -- if (alrm->pending) -+ if (alrm->enabled) - rtc_writel(rtc, CTRL, rtc_readl(rtc, CTRL) - | RTC_BIT(CTRL_TOPEN)); - else -diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c -index d060a06..d7bb9ba 100644 ---- a/drivers/rtc/rtc-cmos.c -+++ b/drivers/rtc/rtc-cmos.c -@@ -905,19 +905,7 @@ static struct pnp_driver cmos_pnp_driver = { - .resume = cmos_pnp_resume, - }; - --static int __init cmos_init(void) --{ -- return pnp_register_driver(&cmos_pnp_driver); --} --module_init(cmos_init); -- --static void __exit cmos_exit(void) --{ -- pnp_unregister_driver(&cmos_pnp_driver); --} --module_exit(cmos_exit); -- --#else /* no PNP */ -+#endif /* CONFIG_PNP */ - - /*----------------------------------------------------------------*/ - -@@ -958,20 +946,33 @@ static struct platform_driver cmos_platform_driver = { - - static int __init cmos_init(void) - { -+#ifdef CONFIG_PNP -+ if (pnp_platform_devices) -+ return pnp_register_driver(&cmos_pnp_driver); -+ else -+ return platform_driver_probe(&cmos_platform_driver, -+ cmos_platform_probe); -+#else - return platform_driver_probe(&cmos_platform_driver, - cmos_platform_probe); -+#endif /* CONFIG_PNP */ - } - module_init(cmos_init); - - static void __exit cmos_exit(void) - { -+#ifdef CONFIG_PNP -+ if (pnp_platform_devices) -+ pnp_unregister_driver(&cmos_pnp_driver); -+ else -+ platform_driver_unregister(&cmos_platform_driver); -+#else - platform_driver_unregister(&cmos_platform_driver); -+#endif /* CONFIG_PNP */ - } - module_exit(cmos_exit); - - --#endif /* !PNP */ -- - MODULE_AUTHOR("David Brownell"); - MODULE_DESCRIPTION("Driver for PC-style 'CMOS' RTCs"); - MODULE_LICENSE("GPL"); -diff --git a/drivers/rtc/rtc-fm3130.c b/drivers/rtc/rtc-fm3130.c -new file mode 100644 -index 0000000..11644c8 ---- /dev/null -+++ b/drivers/rtc/rtc-fm3130.c -@@ -0,0 +1,501 @@ -+/* -+ * rtc-fm3130.c - RTC driver for Ramtron FM3130 I2C chip. -+ * -+ * Copyright (C) 2008 Sergey Lapin -+ * Based on ds1307 driver by James Chapman and David Brownell -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#define FM3130_RTC_CONTROL (0x0) -+#define FM3130_CAL_CONTROL (0x1) -+#define FM3130_RTC_SECONDS (0x2) -+#define FM3130_RTC_MINUTES (0x3) -+#define FM3130_RTC_HOURS (0x4) -+#define FM3130_RTC_DAY (0x5) -+#define FM3130_RTC_DATE (0x6) -+#define FM3130_RTC_MONTHS (0x7) -+#define FM3130_RTC_YEARS (0x8) -+ -+#define FM3130_ALARM_SECONDS (0x9) -+#define FM3130_ALARM_MINUTES (0xa) -+#define FM3130_ALARM_HOURS (0xb) -+#define FM3130_ALARM_DATE (0xc) -+#define FM3130_ALARM_MONTHS (0xd) -+#define FM3130_ALARM_WP_CONTROL (0xe) -+ -+#define FM3130_CAL_CONTROL_BIT_nOSCEN (1 << 7) /* Osciallator enabled */ -+#define FM3130_RTC_CONTROL_BIT_LB (1 << 7) /* Low battery */ -+#define FM3130_RTC_CONTROL_BIT_AF (1 << 6) /* Alarm flag */ -+#define FM3130_RTC_CONTROL_BIT_CF (1 << 5) /* Century overflow */ -+#define FM3130_RTC_CONTROL_BIT_POR (1 << 4) /* Power on reset */ -+#define FM3130_RTC_CONTROL_BIT_AEN (1 << 3) /* Alarm enable */ -+#define FM3130_RTC_CONTROL_BIT_CAL (1 << 2) /* Calibration mode */ -+#define FM3130_RTC_CONTROL_BIT_WRITE (1 << 1) /* W=1 -> write mode W=0 normal */ -+#define FM3130_RTC_CONTROL_BIT_READ (1 << 0) /* R=1 -> read mode R=0 normal */ -+ -+#define FM3130_CLOCK_REGS 7 -+#define FM3130_ALARM_REGS 5 -+ -+struct fm3130 { -+ u8 reg_addr_time; -+ u8 reg_addr_alarm; -+ u8 regs[15]; -+ struct i2c_msg msg[4]; -+ struct i2c_client *client; -+ struct rtc_device *rtc; -+ int data_valid; -+ int alarm; -+}; -+static const struct i2c_device_id fm3130_id[] = { -+ { "fm3130-rtc", 0 }, -+ { } -+}; -+MODULE_DEVICE_TABLE(i2c, fm3130_id); -+ -+#define FM3130_MODE_NORMAL 0 -+#define FM3130_MODE_WRITE 1 -+#define FM3130_MODE_READ 2 -+ -+static void fm3130_rtc_mode(struct device *dev, int mode) -+{ -+ struct fm3130 *fm3130 = dev_get_drvdata(dev); -+ -+ fm3130->regs[FM3130_RTC_CONTROL] = -+ i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL); -+ switch (mode) { -+ case FM3130_MODE_NORMAL: -+ fm3130->regs[FM3130_RTC_CONTROL] &= -+ ~(FM3130_RTC_CONTROL_BIT_WRITE | -+ FM3130_RTC_CONTROL_BIT_READ); -+ break; -+ case FM3130_MODE_WRITE: -+ fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_WRITE; -+ break; -+ case FM3130_MODE_READ: -+ fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_READ; -+ break; -+ default: -+ dev_dbg(dev, "invalid mode %d\n", mode); -+ break; -+ } -+ /* Checking for alarm */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) { -+ fm3130->alarm = 1; -+ fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF; -+ } -+ i2c_smbus_write_byte_data(fm3130->client, -+ FM3130_RTC_CONTROL, fm3130->regs[FM3130_RTC_CONTROL]); -+} -+ -+static int fm3130_get_time(struct device *dev, struct rtc_time *t) -+{ -+ struct fm3130 *fm3130 = dev_get_drvdata(dev); -+ int tmp; -+ -+ if (!fm3130->data_valid) { -+ /* We have invalid data in RTC, probably due -+ to battery faults or other problems. Return EIO -+ for now, it will allow us to set data later insted -+ of error during probing which disables device */ -+ return -EIO; -+ } -+ fm3130_rtc_mode(dev, FM3130_MODE_READ); -+ -+ /* read the RTC date and time registers all at once */ -+ tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent), -+ fm3130->msg, 2); -+ if (tmp != 2) { -+ dev_err(dev, "%s error %d\n", "read", tmp); -+ return -EIO; -+ } -+ -+ fm3130_rtc_mode(dev, FM3130_MODE_NORMAL); -+ -+ dev_dbg(dev, "%s: %02x %02x %02x %02x %02x %02x %02x %02x" -+ "%02x %02x %02x %02x %02x %02x %02x\n", -+ "read", -+ fm3130->regs[0], fm3130->regs[1], -+ fm3130->regs[2], fm3130->regs[3], -+ fm3130->regs[4], fm3130->regs[5], -+ fm3130->regs[6], fm3130->regs[7], -+ fm3130->regs[8], fm3130->regs[9], -+ fm3130->regs[0xa], fm3130->regs[0xb], -+ fm3130->regs[0xc], fm3130->regs[0xd], -+ fm3130->regs[0xe]); -+ -+ t->tm_sec = BCD2BIN(fm3130->regs[FM3130_RTC_SECONDS] & 0x7f); -+ t->tm_min = BCD2BIN(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f); -+ tmp = fm3130->regs[FM3130_RTC_HOURS] & 0x3f; -+ t->tm_hour = BCD2BIN(tmp); -+ t->tm_wday = BCD2BIN(fm3130->regs[FM3130_RTC_DAY] & 0x07) - 1; -+ t->tm_mday = BCD2BIN(fm3130->regs[FM3130_RTC_DATE] & 0x3f); -+ tmp = fm3130->regs[FM3130_RTC_MONTHS] & 0x1f; -+ t->tm_mon = BCD2BIN(tmp) - 1; -+ -+ /* assume 20YY not 19YY, and ignore CF bit */ -+ t->tm_year = BCD2BIN(fm3130->regs[FM3130_RTC_YEARS]) + 100; -+ -+ dev_dbg(dev, "%s secs=%d, mins=%d, " -+ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", -+ "read", t->tm_sec, t->tm_min, -+ t->tm_hour, t->tm_mday, -+ t->tm_mon, t->tm_year, t->tm_wday); -+ -+ /* initial clock setting can be undefined */ -+ return rtc_valid_tm(t); -+} -+ -+ -+static int fm3130_set_time(struct device *dev, struct rtc_time *t) -+{ -+ struct fm3130 *fm3130 = dev_get_drvdata(dev); -+ int tmp, i; -+ u8 *buf = fm3130->regs; -+ -+ dev_dbg(dev, "%s secs=%d, mins=%d, " -+ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", -+ "write", t->tm_sec, t->tm_min, -+ t->tm_hour, t->tm_mday, -+ t->tm_mon, t->tm_year, t->tm_wday); -+ -+ /* first register addr */ -+ buf[FM3130_RTC_SECONDS] = BIN2BCD(t->tm_sec); -+ buf[FM3130_RTC_MINUTES] = BIN2BCD(t->tm_min); -+ buf[FM3130_RTC_HOURS] = BIN2BCD(t->tm_hour); -+ buf[FM3130_RTC_DAY] = BIN2BCD(t->tm_wday + 1); -+ buf[FM3130_RTC_DATE] = BIN2BCD(t->tm_mday); -+ buf[FM3130_RTC_MONTHS] = BIN2BCD(t->tm_mon + 1); -+ -+ /* assume 20YY not 19YY */ -+ tmp = t->tm_year - 100; -+ buf[FM3130_RTC_YEARS] = BIN2BCD(tmp); -+ -+ dev_dbg(dev, "%s: %02x %02x %02x %02x %02x %02x %02x" -+ "%02x %02x %02x %02x %02x %02x %02x %02x\n", -+ "write", buf[0], buf[1], buf[2], buf[3], -+ buf[4], buf[5], buf[6], buf[7], -+ buf[8], buf[9], buf[0xa], buf[0xb], -+ buf[0xc], buf[0xd], buf[0xe]); -+ -+ fm3130_rtc_mode(dev, FM3130_MODE_WRITE); -+ -+ /* Writing time registers, we don't support multibyte transfers */ -+ for (i = 0; i < FM3130_CLOCK_REGS; i++) { -+ i2c_smbus_write_byte_data(fm3130->client, -+ FM3130_RTC_SECONDS + i, -+ fm3130->regs[FM3130_RTC_SECONDS + i]); -+ } -+ -+ fm3130_rtc_mode(dev, FM3130_MODE_NORMAL); -+ -+ /* We assume here that data are valid once written */ -+ if (!fm3130->data_valid) -+ fm3130->data_valid = 1; -+ return 0; -+} -+ -+static int fm3130_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) -+{ -+ struct fm3130 *fm3130 = dev_get_drvdata(dev); -+ int tmp; -+ struct rtc_time *tm = &alrm->time; -+ /* read the RTC alarm registers all at once */ -+ tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent), -+ &fm3130->msg[2], 2); -+ if (tmp != 2) { -+ dev_err(dev, "%s error %d\n", "read", tmp); -+ return -EIO; -+ } -+ dev_dbg(dev, "alarm read %02x %02x %02x %02x %02x\n", -+ fm3130->regs[FM3130_ALARM_SECONDS], -+ fm3130->regs[FM3130_ALARM_MINUTES], -+ fm3130->regs[FM3130_ALARM_HOURS], -+ fm3130->regs[FM3130_ALARM_DATE], -+ fm3130->regs[FM3130_ALARM_MONTHS]); -+ -+ -+ tm->tm_sec = BCD2BIN(fm3130->regs[FM3130_ALARM_SECONDS] & 0x7F); -+ tm->tm_min = BCD2BIN(fm3130->regs[FM3130_ALARM_MINUTES] & 0x7F); -+ tm->tm_hour = BCD2BIN(fm3130->regs[FM3130_ALARM_HOURS] & 0x3F); -+ tm->tm_mday = BCD2BIN(fm3130->regs[FM3130_ALARM_DATE] & 0x3F); -+ tm->tm_mon = BCD2BIN(fm3130->regs[FM3130_ALARM_MONTHS] & 0x1F); -+ if (tm->tm_mon > 0) -+ tm->tm_mon -= 1; /* RTC is 1-12, tm_mon is 0-11 */ -+ dev_dbg(dev, "%s secs=%d, mins=%d, " -+ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", -+ "read alarm", tm->tm_sec, tm->tm_min, -+ tm->tm_hour, tm->tm_mday, -+ tm->tm_mon, tm->tm_year, tm->tm_wday); -+ -+ return 0; -+} -+ -+static int fm3130_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) -+{ -+ struct fm3130 *fm3130 = dev_get_drvdata(dev); -+ struct rtc_time *tm = &alrm->time; -+ int i; -+ -+ dev_dbg(dev, "%s secs=%d, mins=%d, " -+ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", -+ "write alarm", tm->tm_sec, tm->tm_min, -+ tm->tm_hour, tm->tm_mday, -+ tm->tm_mon, tm->tm_year, tm->tm_wday); -+ -+ if (tm->tm_sec != -1) -+ fm3130->regs[FM3130_ALARM_SECONDS] = -+ BIN2BCD(tm->tm_sec) | 0x80; -+ -+ if (tm->tm_min != -1) -+ fm3130->regs[FM3130_ALARM_MINUTES] = -+ BIN2BCD(tm->tm_min) | 0x80; -+ -+ if (tm->tm_hour != -1) -+ fm3130->regs[FM3130_ALARM_HOURS] = -+ BIN2BCD(tm->tm_hour) | 0x80; -+ -+ if (tm->tm_mday != -1) -+ fm3130->regs[FM3130_ALARM_DATE] = -+ BIN2BCD(tm->tm_mday) | 0x80; -+ -+ if (tm->tm_mon != -1) -+ fm3130->regs[FM3130_ALARM_MONTHS] = -+ BIN2BCD(tm->tm_mon + 1) | 0x80; -+ -+ dev_dbg(dev, "alarm write %02x %02x %02x %02x %02x\n", -+ fm3130->regs[FM3130_ALARM_SECONDS], -+ fm3130->regs[FM3130_ALARM_MINUTES], -+ fm3130->regs[FM3130_ALARM_HOURS], -+ fm3130->regs[FM3130_ALARM_DATE], -+ fm3130->regs[FM3130_ALARM_MONTHS]); -+ /* Writing time registers, we don't support multibyte transfers */ -+ for (i = 0; i < FM3130_ALARM_REGS; i++) { -+ i2c_smbus_write_byte_data(fm3130->client, -+ FM3130_ALARM_SECONDS + i, -+ fm3130->regs[FM3130_ALARM_SECONDS + i]); -+ } -+ fm3130->regs[FM3130_RTC_CONTROL] = -+ i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL); -+ /* Checking for alarm */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) { -+ fm3130->alarm = 1; -+ fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF; -+ } -+ if (alrm->enabled) { -+ i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL, -+ (fm3130->regs[FM3130_RTC_CONTROL] & -+ ~(FM3130_RTC_CONTROL_BIT_CAL)) | -+ FM3130_RTC_CONTROL_BIT_AEN); -+ } else { -+ i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL, -+ fm3130->regs[FM3130_RTC_CONTROL] & -+ ~(FM3130_RTC_CONTROL_BIT_AEN)); -+ } -+ return 0; -+} -+ -+static const struct rtc_class_ops fm3130_rtc_ops = { -+ .read_time = fm3130_get_time, -+ .set_time = fm3130_set_time, -+ .read_alarm = fm3130_read_alarm, -+ .set_alarm = fm3130_set_alarm, -+}; -+ -+static struct i2c_driver fm3130_driver; -+ -+static int __devinit fm3130_probe(struct i2c_client *client, -+ const struct i2c_device_id *id) -+{ -+ struct fm3130 *fm3130; -+ int err = -ENODEV; -+ int tmp; -+ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); -+ -+ if (!i2c_check_functionality(adapter, -+ I2C_FUNC_I2C | I2C_FUNC_SMBUS_WRITE_BYTE_DATA)) -+ return -EIO; -+ -+ fm3130 = kzalloc(sizeof(struct fm3130), GFP_KERNEL); -+ -+ if (!fm3130) -+ return -ENOMEM; -+ -+ fm3130->client = client; -+ i2c_set_clientdata(client, fm3130); -+ fm3130->reg_addr_time = FM3130_RTC_SECONDS; -+ fm3130->reg_addr_alarm = FM3130_ALARM_SECONDS; -+ -+ /* Messages to read time */ -+ fm3130->msg[0].addr = client->addr; -+ fm3130->msg[0].flags = 0; -+ fm3130->msg[0].len = 1; -+ fm3130->msg[0].buf = &fm3130->reg_addr_time; -+ -+ fm3130->msg[1].addr = client->addr; -+ fm3130->msg[1].flags = I2C_M_RD; -+ fm3130->msg[1].len = FM3130_CLOCK_REGS; -+ fm3130->msg[1].buf = &fm3130->regs[FM3130_RTC_SECONDS]; -+ -+ /* Messages to read alarm */ -+ fm3130->msg[2].addr = client->addr; -+ fm3130->msg[2].flags = 0; -+ fm3130->msg[2].len = 1; -+ fm3130->msg[2].buf = &fm3130->reg_addr_alarm; -+ -+ fm3130->msg[3].addr = client->addr; -+ fm3130->msg[3].flags = I2C_M_RD; -+ fm3130->msg[3].len = FM3130_ALARM_REGS; -+ fm3130->msg[3].buf = &fm3130->regs[FM3130_ALARM_SECONDS]; -+ -+ fm3130->data_valid = 0; -+ -+ tmp = i2c_transfer(adapter, fm3130->msg, 4); -+ if (tmp != 4) { -+ pr_debug("read error %d\n", tmp); -+ err = -EIO; -+ goto exit_free; -+ } -+ -+ fm3130->regs[FM3130_RTC_CONTROL] = -+ i2c_smbus_read_byte_data(client, FM3130_RTC_CONTROL); -+ fm3130->regs[FM3130_CAL_CONTROL] = -+ i2c_smbus_read_byte_data(client, FM3130_CAL_CONTROL); -+ -+ /* Checking for alarm */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) { -+ fm3130->alarm = 1; -+ fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF; -+ } -+ -+ /* Disabling calibration mode */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_CAL) -+ i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, -+ fm3130->regs[FM3130_RTC_CONTROL] & -+ ~(FM3130_RTC_CONTROL_BIT_CAL)); -+ dev_warn(&client->dev, "Disabling calibration mode!\n"); -+ -+ /* Disabling read and write modes */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_WRITE || -+ fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_READ) -+ i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, -+ fm3130->regs[FM3130_RTC_CONTROL] & -+ ~(FM3130_RTC_CONTROL_BIT_READ | -+ FM3130_RTC_CONTROL_BIT_WRITE)); -+ dev_warn(&client->dev, "Disabling READ or WRITE mode!\n"); -+ -+ /* oscillator off? turn it on, so clock can tick. */ -+ if (fm3130->regs[FM3130_CAL_CONTROL] & FM3130_CAL_CONTROL_BIT_nOSCEN) -+ i2c_smbus_write_byte_data(client, FM3130_CAL_CONTROL, -+ fm3130->regs[FM3130_CAL_CONTROL] & -+ ~(FM3130_CAL_CONTROL_BIT_nOSCEN)); -+ -+ /* oscillator fault? clear flag, and warn */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_LB) -+ dev_warn(&client->dev, "Low battery!\n"); -+ -+ /* oscillator fault? clear flag, and warn */ -+ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_POR) { -+ i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, -+ fm3130->regs[FM3130_RTC_CONTROL] & -+ ~FM3130_RTC_CONTROL_BIT_POR); -+ dev_warn(&client->dev, "SET TIME!\n"); -+ } -+ /* ACS is controlled by alarm */ -+ i2c_smbus_write_byte_data(client, FM3130_ALARM_WP_CONTROL, 0x80); -+ -+ /* TODO */ -+ /* TODO need to sanity check alarm */ -+ tmp = fm3130->regs[FM3130_RTC_SECONDS]; -+ tmp = BCD2BIN(tmp & 0x7f); -+ if (tmp > 60) -+ goto exit_bad; -+ tmp = BCD2BIN(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f); -+ if (tmp > 60) -+ goto exit_bad; -+ -+ tmp = BCD2BIN(fm3130->regs[FM3130_RTC_DATE] & 0x3f); -+ if (tmp == 0 || tmp > 31) -+ goto exit_bad; -+ -+ tmp = BCD2BIN(fm3130->regs[FM3130_RTC_MONTHS] & 0x1f); -+ if (tmp == 0 || tmp > 12) -+ goto exit_bad; -+ -+ tmp = fm3130->regs[FM3130_RTC_HOURS]; -+ -+ fm3130->data_valid = 1; -+ -+exit_bad: -+ if (!fm3130->data_valid) -+ dev_dbg(&client->dev, -+ "%s: %02x %02x %02x %02x %02x %02x %02x %02x" -+ "%02x %02x %02x %02x %02x %02x %02x\n", -+ "bogus registers", -+ fm3130->regs[0], fm3130->regs[1], -+ fm3130->regs[2], fm3130->regs[3], -+ fm3130->regs[4], fm3130->regs[5], -+ fm3130->regs[6], fm3130->regs[7], -+ fm3130->regs[8], fm3130->regs[9], -+ fm3130->regs[0xa], fm3130->regs[0xb], -+ fm3130->regs[0xc], fm3130->regs[0xd], -+ fm3130->regs[0xe]); -+ -+ /* We won't bail out here because we just got invalid data. -+ Time setting from u-boot doesn't work anyway */ -+ fm3130->rtc = rtc_device_register(client->name, &client->dev, -+ &fm3130_rtc_ops, THIS_MODULE); -+ if (IS_ERR(fm3130->rtc)) { -+ err = PTR_ERR(fm3130->rtc); -+ dev_err(&client->dev, -+ "unable to register the class device\n"); -+ goto exit_free; -+ } -+ return 0; -+exit_free: -+ kfree(fm3130); -+ return err; -+} -+ -+static int __devexit fm3130_remove(struct i2c_client *client) -+{ -+ struct fm3130 *fm3130 = i2c_get_clientdata(client); -+ -+ rtc_device_unregister(fm3130->rtc); -+ kfree(fm3130); -+ return 0; -+} -+ -+static struct i2c_driver fm3130_driver = { -+ .driver = { -+ .name = "rtc-fm3130", -+ .owner = THIS_MODULE, -+ }, -+ .probe = fm3130_probe, -+ .remove = __devexit_p(fm3130_remove), -+ .id_table = fm3130_id, -+}; -+ -+static int __init fm3130_init(void) -+{ -+ return i2c_add_driver(&fm3130_driver); -+} -+module_init(fm3130_init); -+ -+static void __exit fm3130_exit(void) -+{ -+ i2c_del_driver(&fm3130_driver); -+} -+module_exit(fm3130_exit); -+ -+MODULE_DESCRIPTION("RTC driver for FM3130"); -+MODULE_AUTHOR("Sergey Lapin "); -+MODULE_LICENSE("GPL"); -+ -diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c -index 35ac9d9..c14b243 100644 ---- a/drivers/video/cirrusfb.c -+++ b/drivers/video/cirrusfb.c -@@ -2432,9 +2432,9 @@ static int cirrusfb_pci_register(struct pci_dev *pdev, - info->screen_size = board_size; - cinfo->unmap = cirrusfb_pci_unmap; - -- printk(KERN_INFO " RAM (%lu kB) at 0xx%lx, ", -- info->screen_size >> 10, board_addr); -- printk(KERN_INFO "Cirrus Logic chipset on PCI bus\n"); -+ printk(KERN_INFO "RAM (%lu kB) at 0x%lx, Cirrus " -+ "Logic chipset on PCI bus\n", -+ info->screen_size >> 10, board_addr); - pci_set_drvdata(pdev, info); - - ret = cirrusfb_register(info); -diff --git a/drivers/video/hgafb.c b/drivers/video/hgafb.c -index fb9e672..c18880d 100644 ---- a/drivers/video/hgafb.c -+++ b/drivers/video/hgafb.c -@@ -279,7 +279,7 @@ static void hga_blank(int blank_mode) - - static int __init hga_card_detect(void) - { -- int count=0; -+ int count = 0; - void __iomem *p, *q; - unsigned short p_save, q_save; - -@@ -303,20 +303,18 @@ static int __init hga_card_detect(void) - writew(0x55aa, p); if (readw(p) == 0x55aa) count++; - writew(p_save, p); - -- if (count != 2) { -- return 0; -- } -+ if (count != 2) -+ goto error; - - /* Ok, there is definitely a card registering at the correct - * memory location, so now we do an I/O port test. - */ - -- if (!test_hga_b(0x66, 0x0f)) { /* cursor low register */ -- return 0; -- } -- if (!test_hga_b(0x99, 0x0f)) { /* cursor low register */ -- return 0; -- } -+ if (!test_hga_b(0x66, 0x0f)) /* cursor low register */ -+ goto error; -+ -+ if (!test_hga_b(0x99, 0x0f)) /* cursor low register */ -+ goto error; - - /* See if the card is a Hercules, by checking whether the vsync - * bit of the status register is changing. This test lasts for -@@ -331,7 +329,7 @@ static int __init hga_card_detect(void) - } - - if (p_save == q_save) -- return 0; -+ goto error; - - switch (inb_p(HGA_STATUS_PORT) & 0x70) { - case 0x10: -@@ -348,6 +346,12 @@ static int __init hga_card_detect(void) - break; - } - return 1; -+error: -+ if (release_io_ports) -+ release_region(0x3b0, 12); -+ if (release_io_port) -+ release_region(0x3bf, 1); -+ return 0; - } - - /** -diff --git a/fs/fat/file.c b/fs/fat/file.c -index 27cc116..771326b 100644 ---- a/fs/fat/file.c -+++ b/fs/fat/file.c -@@ -257,26 +257,34 @@ int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) - } - EXPORT_SYMBOL_GPL(fat_getattr); - --static int fat_check_mode(const struct msdos_sb_info *sbi, struct inode *inode, -- mode_t mode) -+static int fat_sanitize_mode(const struct msdos_sb_info *sbi, -+ struct inode *inode, umode_t *mode_ptr) - { -- mode_t mask, req = mode & ~S_IFMT; -+ mode_t mask, perm; - -- if (S_ISREG(mode)) -+ /* -+ * Note, the basic check is already done by a caller of -+ * (attr->ia_mode & ~MSDOS_VALID_MODE) -+ */ -+ -+ if (S_ISREG(inode->i_mode)) - mask = sbi->options.fs_fmask; - else - mask = sbi->options.fs_dmask; - -+ perm = *mode_ptr & ~(S_IFMT | mask); -+ - /* - * Of the r and x bits, all (subject to umask) must be present. Of the - * w bits, either all (subject to umask) or none must be present. - */ -- req &= ~mask; -- if ((req & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO))) -+ if ((perm & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO))) - return -EPERM; -- if ((req & S_IWUGO) && ((req & S_IWUGO) != (S_IWUGO & ~mask))) -+ if ((perm & S_IWUGO) && ((perm & S_IWUGO) != (S_IWUGO & ~mask))) - return -EPERM; - -+ *mode_ptr &= S_IFMT | perm; -+ - return 0; - } - -@@ -299,7 +307,7 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) - { - struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); - struct inode *inode = dentry->d_inode; -- int mask, error = 0; -+ int error = 0; - unsigned int ia_valid; - - lock_kernel(); -@@ -332,12 +340,13 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) - error = 0; - goto out; - } -+ - if (((attr->ia_valid & ATTR_UID) && - (attr->ia_uid != sbi->options.fs_uid)) || - ((attr->ia_valid & ATTR_GID) && - (attr->ia_gid != sbi->options.fs_gid)) || - ((attr->ia_valid & ATTR_MODE) && -- fat_check_mode(sbi, inode, attr->ia_mode) < 0)) -+ (attr->ia_mode & ~MSDOS_VALID_MODE))) - error = -EPERM; - - if (error) { -@@ -346,15 +355,16 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) - goto out; - } - -- error = inode_setattr(inode, attr); -- if (error) -- goto out; -+ /* -+ * We don't return -EPERM here. Yes, strange, but this is too -+ * old behavior. -+ */ -+ if (attr->ia_valid & ATTR_MODE) { -+ if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0) -+ attr->ia_valid &= ~ATTR_MODE; -+ } - -- if (S_ISDIR(inode->i_mode)) -- mask = sbi->options.fs_dmask; -- else -- mask = sbi->options.fs_fmask; -- inode->i_mode &= S_IFMT | (S_IRWXUGO & ~mask); -+ error = inode_setattr(inode, attr); - out: - unlock_kernel(); - return error; -diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c -index 1740362..ab8ccc9 100644 ---- a/fs/proc/task_mmu.c -+++ b/fs/proc/task_mmu.c -@@ -315,9 +315,9 @@ struct mem_size_stats { - }; - - static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, -- void *private) -+ struct mm_walk *walk) - { -- struct mem_size_stats *mss = private; -+ struct mem_size_stats *mss = walk->private; - struct vm_area_struct *vma = mss->vma; - pte_t *pte, ptent; - spinlock_t *ptl; -@@ -365,19 +365,21 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, - return 0; - } - --static struct mm_walk smaps_walk = { .pmd_entry = smaps_pte_range }; -- - static int show_smap(struct seq_file *m, void *v) - { - struct vm_area_struct *vma = v; - struct mem_size_stats mss; - int ret; -+ struct mm_walk smaps_walk = { -+ .pmd_entry = smaps_pte_range, -+ .mm = vma->vm_mm, -+ .private = &mss, -+ }; - - memset(&mss, 0, sizeof mss); - mss.vma = vma; - if (vma->vm_mm && !is_vm_hugetlb_page(vma)) -- walk_page_range(vma->vm_mm, vma->vm_start, vma->vm_end, -- &smaps_walk, &mss); -+ walk_page_range(vma->vm_start, vma->vm_end, &smaps_walk); - - ret = show_map(m, v); - if (ret) -@@ -426,9 +428,9 @@ const struct file_operations proc_smaps_operations = { - }; - - static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, -- unsigned long end, void *private) -+ unsigned long end, struct mm_walk *walk) - { -- struct vm_area_struct *vma = private; -+ struct vm_area_struct *vma = walk->private; - pte_t *pte, ptent; - spinlock_t *ptl; - struct page *page; -@@ -452,8 +454,6 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, - return 0; - } - --static struct mm_walk clear_refs_walk = { .pmd_entry = clear_refs_pte_range }; -- - static ssize_t clear_refs_write(struct file *file, const char __user *buf, - size_t count, loff_t *ppos) - { -@@ -476,11 +476,17 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, - return -ESRCH; - mm = get_task_mm(task); - if (mm) { -+ static struct mm_walk clear_refs_walk; -+ memset(&clear_refs_walk, 0, sizeof(clear_refs_walk)); -+ clear_refs_walk.pmd_entry = clear_refs_pte_range; -+ clear_refs_walk.mm = mm; - down_read(&mm->mmap_sem); -- for (vma = mm->mmap; vma; vma = vma->vm_next) -+ for (vma = mm->mmap; vma; vma = vma->vm_next) { -+ clear_refs_walk.private = vma; - if (!is_vm_hugetlb_page(vma)) -- walk_page_range(mm, vma->vm_start, vma->vm_end, -- &clear_refs_walk, vma); -+ walk_page_range(vma->vm_start, vma->vm_end, -+ &clear_refs_walk); -+ } - flush_tlb_mm(mm); - up_read(&mm->mmap_sem); - mmput(mm); -@@ -528,9 +534,9 @@ static int add_to_pagemap(unsigned long addr, u64 pfn, - } - - static int pagemap_pte_hole(unsigned long start, unsigned long end, -- void *private) -+ struct mm_walk *walk) - { -- struct pagemapread *pm = private; -+ struct pagemapread *pm = walk->private; - unsigned long addr; - int err = 0; - for (addr = start; addr < end; addr += PAGE_SIZE) { -@@ -547,24 +553,45 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte) - return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); - } - -+static unsigned long pte_to_pagemap_entry(pte_t pte) -+{ -+ unsigned long pme = 0; -+ if (is_swap_pte(pte)) -+ pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte)) -+ | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; -+ else if (pte_present(pte)) -+ pme = PM_PFRAME(pte_pfn(pte)) -+ | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT; -+ return pme; -+} -+ - static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, -- void *private) -+ struct mm_walk *walk) - { -- struct pagemapread *pm = private; -+ struct vm_area_struct *vma; -+ struct pagemapread *pm = walk->private; - pte_t *pte; - int err = 0; - -+ /* find the first VMA at or above 'addr' */ -+ vma = find_vma(walk->mm, addr); - for (; addr != end; addr += PAGE_SIZE) { - u64 pfn = PM_NOT_PRESENT; -- pte = pte_offset_map(pmd, addr); -- if (is_swap_pte(*pte)) -- pfn = PM_PFRAME(swap_pte_to_pagemap_entry(*pte)) -- | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; -- else if (pte_present(*pte)) -- pfn = PM_PFRAME(pte_pfn(*pte)) -- | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT; -- /* unmap so we're not in atomic when we copy to userspace */ -- pte_unmap(pte); -+ -+ /* check to see if we've left 'vma' behind -+ * and need a new, higher one */ -+ if (vma && (addr >= vma->vm_end)) -+ vma = find_vma(walk->mm, addr); -+ -+ /* check that 'vma' actually covers this address, -+ * and that it isn't a huge page vma */ -+ if (vma && (vma->vm_start <= addr) && -+ !is_vm_hugetlb_page(vma)) { -+ pte = pte_offset_map(pmd, addr); -+ pfn = pte_to_pagemap_entry(*pte); -+ /* unmap before userspace copy */ -+ pte_unmap(pte); -+ } - err = add_to_pagemap(addr, pfn, pm); - if (err) - return err; -@@ -675,8 +702,8 @@ static ssize_t pagemap_read(struct file *file, char __user *buf, - * user buffer is tracked in "pm", and the walk - * will stop when we hit the end of the buffer. - */ -- ret = walk_page_range(mm, start_vaddr, end_vaddr, -- &pagemap_walk, &pm); -+ ret = walk_page_range(start_vaddr, end_vaddr, -+ &pagemap_walk); - if (ret == PM_END_OF_BUFFER) - ret = 0; - /* don't need mmap_sem for these, but this looks cleaner */ -diff --git a/include/asm-m68k/bitops.h b/include/asm-m68k/bitops.h -index 83d1f28..3e81064 100644 ---- a/include/asm-m68k/bitops.h -+++ b/include/asm-m68k/bitops.h -@@ -410,8 +410,49 @@ static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size, - res = ext2_find_first_zero_bit (p, size - 32 * (p - addr)); - return (p - addr) * 32 + res; - } --#define ext2_find_next_bit(addr, size, off) \ -- generic_find_next_le_bit((unsigned long *)(addr), (size), (off)) -+ -+static inline int ext2_find_first_bit(const void *vaddr, unsigned size) -+{ -+ const unsigned long *p = vaddr, *addr = vaddr; -+ int res; -+ -+ if (!size) -+ return 0; -+ -+ size = (size >> 5) + ((size & 31) > 0); -+ while (*p++ == 0UL) { -+ if (--size == 0) -+ return (p - addr) << 5; -+ } -+ -+ --p; -+ for (res = 0; res < 32; res++) -+ if (ext2_test_bit(res, p)) -+ break; -+ return (p - addr) * 32 + res; -+} -+ -+static inline int ext2_find_next_bit(const void *vaddr, unsigned size, -+ unsigned offset) -+{ -+ const unsigned long *addr = vaddr; -+ const unsigned long *p = addr + (offset >> 5); -+ int bit = offset & 31UL, res; -+ -+ if (offset >= size) -+ return size; -+ -+ if (bit) { -+ /* Look for one in first longword */ -+ for (res = bit; res < 32; res++) -+ if (ext2_test_bit(res, p)) -+ return (p - addr) * 32 + res; -+ p++; -+ } -+ /* No set bit yet, search remaining full bytes for a set bit */ -+ res = ext2_find_first_bit(p, size - 32 * (p - addr)); -+ return (p - addr) * 32 + res; -+} - - #endif /* __KERNEL__ */ - -diff --git a/include/linux/mm.h b/include/linux/mm.h -index c31a9cd..586a943 100644 ---- a/include/linux/mm.h -+++ b/include/linux/mm.h -@@ -760,16 +760,17 @@ unsigned long unmap_vmas(struct mmu_gather **tlb, - * (see walk_page_range for more details) - */ - struct mm_walk { -- int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, void *); -- int (*pud_entry)(pud_t *, unsigned long, unsigned long, void *); -- int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, void *); -- int (*pte_entry)(pte_t *, unsigned long, unsigned long, void *); -- int (*pte_hole)(unsigned long, unsigned long, void *); -+ int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); -+ int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); -+ int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); -+ int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); -+ int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *); -+ struct mm_struct *mm; -+ void *private; - }; - --int walk_page_range(const struct mm_struct *, unsigned long addr, -- unsigned long end, const struct mm_walk *walk, -- void *private); -+int walk_page_range(unsigned long addr, unsigned long end, -+ struct mm_walk *walk); - void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, - unsigned long end, unsigned long floor, unsigned long ceiling); - void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, -diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h -index 9b940e6..eafc9d6 100644 ---- a/include/linux/pci_ids.h -+++ b/include/linux/pci_ids.h -@@ -716,6 +716,7 @@ - #define PCI_DEVICE_ID_HP_CISSA 0x3220 - #define PCI_DEVICE_ID_HP_CISSC 0x3230 - #define PCI_DEVICE_ID_HP_CISSD 0x3238 -+#define PCI_DEVICE_ID_HP_CISSE 0x323a - #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 - - #define PCI_VENDOR_ID_PCTECH 0x1042 -diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h -index 9883bc9..fff1d27 100644 ---- a/include/linux/proc_fs.h -+++ b/include/linux/proc_fs.h -@@ -9,6 +9,8 @@ - - struct net; - struct completion; -+struct mm_struct; -+ - /* - * The proc filesystem constants/structures - */ -@@ -101,8 +103,6 @@ extern spinlock_t proc_subdir_lock; - extern void proc_root_init(void); - extern void proc_misc_init(void); - --struct mm_struct; -- - void proc_flush_task(struct task_struct *task); - struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *); - int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); -diff --git a/ipc/shm.c b/ipc/shm.c -index d05f6b5..790240c 100644 ---- a/ipc/shm.c -+++ b/ipc/shm.c -@@ -1058,16 +1058,16 @@ asmlinkage long sys_shmdt(char __user *shmaddr) - static int sysvipc_shm_proc_show(struct seq_file *s, void *it) - { - struct shmid_kernel *shp = it; -- char *format; - --#define SMALL_STRING "%10d %10d %4o %10u %5u %5u %5d %5u %5u %5u %5u %10lu %10lu %10lu\n" --#define BIG_STRING "%10d %10d %4o %21u %5u %5u %5d %5u %5u %5u %5u %10lu %10lu %10lu\n" -+#if BITS_PER_LONG <= 32 -+#define SIZE_SPEC "%10lu" -+#else -+#define SIZE_SPEC "%21lu" -+#endif - -- if (sizeof(size_t) <= sizeof(int)) -- format = SMALL_STRING; -- else -- format = BIG_STRING; -- return seq_printf(s, format, -+ return seq_printf(s, -+ "%10d %10d %4o " SIZE_SPEC " %5u %5u " -+ "%5lu %5u %5u %5u %5u %10lu %10lu %10lu\n", - shp->shm_perm.key, - shp->shm_perm.id, - shp->shm_perm.mode, -diff --git a/kernel/kprobes.c b/kernel/kprobes.c -index 1e0250c..d4998f8 100644 ---- a/kernel/kprobes.c -+++ b/kernel/kprobes.c -@@ -699,8 +699,9 @@ static int __register_kprobes(struct kprobe **kps, int num, - return -EINVAL; - for (i = 0; i < num; i++) { - ret = __register_kprobe(kps[i], called_from); -- if (ret < 0 && i > 0) { -- unregister_kprobes(kps, i); -+ if (ret < 0) { -+ if (i > 0) -+ unregister_kprobes(kps, i); - break; - } - } -@@ -776,8 +777,9 @@ static int __register_jprobes(struct jprobe **jps, int num, - jp->kp.break_handler = longjmp_break_handler; - ret = __register_kprobe(&jp->kp, called_from); - } -- if (ret < 0 && i > 0) { -- unregister_jprobes(jps, i); -+ if (ret < 0) { -+ if (i > 0) -+ unregister_jprobes(jps, i); - break; - } - } -@@ -920,8 +922,9 @@ static int __register_kretprobes(struct kretprobe **rps, int num, - return -EINVAL; - for (i = 0; i < num; i++) { - ret = __register_kretprobe(rps[i], called_from); -- if (ret < 0 && i > 0) { -- unregister_kretprobes(rps, i); -+ if (ret < 0) { -+ if (i > 0) -+ unregister_kretprobes(rps, i); - break; - } - } -diff --git a/lib/radix-tree.c b/lib/radix-tree.c -index bd52171..169a2f8 100644 ---- a/lib/radix-tree.c -+++ b/lib/radix-tree.c -@@ -88,6 +88,57 @@ static inline gfp_t root_gfp_mask(struct radix_tree_root *root) - return root->gfp_mask & __GFP_BITS_MASK; - } - -+static inline void tag_set(struct radix_tree_node *node, unsigned int tag, -+ int offset) -+{ -+ __set_bit(offset, node->tags[tag]); -+} -+ -+static inline void tag_clear(struct radix_tree_node *node, unsigned int tag, -+ int offset) -+{ -+ __clear_bit(offset, node->tags[tag]); -+} -+ -+static inline int tag_get(struct radix_tree_node *node, unsigned int tag, -+ int offset) -+{ -+ return test_bit(offset, node->tags[tag]); -+} -+ -+static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag) -+{ -+ root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT)); -+} -+ -+static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag) -+{ -+ root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT)); -+} -+ -+static inline void root_tag_clear_all(struct radix_tree_root *root) -+{ -+ root->gfp_mask &= __GFP_BITS_MASK; -+} -+ -+static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag) -+{ -+ return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT)); -+} -+ -+/* -+ * Returns 1 if any slot in the node has this tag set. -+ * Otherwise returns 0. -+ */ -+static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag) -+{ -+ int idx; -+ for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) { -+ if (node->tags[tag][idx]) -+ return 1; -+ } -+ return 0; -+} - /* - * This assumes that the caller has performed appropriate preallocation, and - * that the caller has pinned this thread of control to the current CPU. -@@ -124,6 +175,17 @@ static void radix_tree_node_rcu_free(struct rcu_head *head) - { - struct radix_tree_node *node = - container_of(head, struct radix_tree_node, rcu_head); -+ -+ /* -+ * must only free zeroed nodes into the slab. radix_tree_shrink -+ * can leave us with a non-NULL entry in the first slot, so clear -+ * that here to make sure. -+ */ -+ tag_clear(node, 0, 0); -+ tag_clear(node, 1, 0); -+ node->slots[0] = NULL; -+ node->count = 0; -+ - kmem_cache_free(radix_tree_node_cachep, node); - } - -@@ -165,59 +227,6 @@ out: - } - EXPORT_SYMBOL(radix_tree_preload); - --static inline void tag_set(struct radix_tree_node *node, unsigned int tag, -- int offset) --{ -- __set_bit(offset, node->tags[tag]); --} -- --static inline void tag_clear(struct radix_tree_node *node, unsigned int tag, -- int offset) --{ -- __clear_bit(offset, node->tags[tag]); --} -- --static inline int tag_get(struct radix_tree_node *node, unsigned int tag, -- int offset) --{ -- return test_bit(offset, node->tags[tag]); --} -- --static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag) --{ -- root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT)); --} -- -- --static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag) --{ -- root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT)); --} -- --static inline void root_tag_clear_all(struct radix_tree_root *root) --{ -- root->gfp_mask &= __GFP_BITS_MASK; --} -- --static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag) --{ -- return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT)); --} -- --/* -- * Returns 1 if any slot in the node has this tag set. -- * Otherwise returns 0. -- */ --static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag) --{ -- int idx; -- for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) { -- if (node->tags[tag][idx]) -- return 1; -- } -- return 0; --} -- - /* - * Return the maximum key which can be store into a - * radix tree with height HEIGHT. -@@ -930,11 +939,6 @@ static inline void radix_tree_shrink(struct radix_tree_root *root) - newptr = radix_tree_ptr_to_indirect(newptr); - root->rnode = newptr; - root->height--; -- /* must only free zeroed nodes into the slab */ -- tag_clear(to_free, 0, 0); -- tag_clear(to_free, 1, 0); -- to_free->slots[0] = NULL; -- to_free->count = 0; - radix_tree_node_free(to_free); - } - } -diff --git a/mm/pagewalk.c b/mm/pagewalk.c -index 0afd238..d5878be 100644 ---- a/mm/pagewalk.c -+++ b/mm/pagewalk.c -@@ -3,14 +3,14 @@ - #include - - static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, -- const struct mm_walk *walk, void *private) -+ struct mm_walk *walk) - { - pte_t *pte; - int err = 0; - - pte = pte_offset_map(pmd, addr); - for (;;) { -- err = walk->pte_entry(pte, addr, addr + PAGE_SIZE, private); -+ err = walk->pte_entry(pte, addr, addr + PAGE_SIZE, walk); - if (err) - break; - addr += PAGE_SIZE; -@@ -24,7 +24,7 @@ static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, - } - - static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, -- const struct mm_walk *walk, void *private) -+ struct mm_walk *walk) - { - pmd_t *pmd; - unsigned long next; -@@ -35,15 +35,15 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, - next = pmd_addr_end(addr, end); - if (pmd_none_or_clear_bad(pmd)) { - if (walk->pte_hole) -- err = walk->pte_hole(addr, next, private); -+ err = walk->pte_hole(addr, next, walk); - if (err) - break; - continue; - } - if (walk->pmd_entry) -- err = walk->pmd_entry(pmd, addr, next, private); -+ err = walk->pmd_entry(pmd, addr, next, walk); - if (!err && walk->pte_entry) -- err = walk_pte_range(pmd, addr, next, walk, private); -+ err = walk_pte_range(pmd, addr, next, walk); - if (err) - break; - } while (pmd++, addr = next, addr != end); -@@ -52,7 +52,7 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, - } - - static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, -- const struct mm_walk *walk, void *private) -+ struct mm_walk *walk) - { - pud_t *pud; - unsigned long next; -@@ -63,15 +63,15 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, - next = pud_addr_end(addr, end); - if (pud_none_or_clear_bad(pud)) { - if (walk->pte_hole) -- err = walk->pte_hole(addr, next, private); -+ err = walk->pte_hole(addr, next, walk); - if (err) - break; - continue; - } - if (walk->pud_entry) -- err = walk->pud_entry(pud, addr, next, private); -+ err = walk->pud_entry(pud, addr, next, walk); - if (!err && (walk->pmd_entry || walk->pte_entry)) -- err = walk_pmd_range(pud, addr, next, walk, private); -+ err = walk_pmd_range(pud, addr, next, walk); - if (err) - break; - } while (pud++, addr = next, addr != end); -@@ -85,15 +85,15 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, - * @addr: starting address - * @end: ending address - * @walk: set of callbacks to invoke for each level of the tree -- * @private: private data passed to the callback function - * - * Recursively walk the page table for the memory area in a VMA, - * calling supplied callbacks. Callbacks are called in-order (first - * PGD, first PUD, first PMD, first PTE, second PTE... second PMD, - * etc.). If lower-level callbacks are omitted, walking depth is reduced. - * -- * Each callback receives an entry pointer, the start and end of the -- * associated range, and a caller-supplied private data pointer. -+ * Each callback receives an entry pointer and the start and end of the -+ * associated range, and a copy of the original mm_walk for access to -+ * the ->private or ->mm fields. - * - * No locks are taken, but the bottom level iterator will map PTE - * directories from highmem if necessary. -@@ -101,9 +101,8 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, - * If any callback returns a non-zero value, the walk is aborted and - * the return value is propagated back to the caller. Otherwise 0 is returned. - */ --int walk_page_range(const struct mm_struct *mm, -- unsigned long addr, unsigned long end, -- const struct mm_walk *walk, void *private) -+int walk_page_range(unsigned long addr, unsigned long end, -+ struct mm_walk *walk) - { - pgd_t *pgd; - unsigned long next; -@@ -112,21 +111,24 @@ int walk_page_range(const struct mm_struct *mm, - if (addr >= end) - return err; - -- pgd = pgd_offset(mm, addr); -+ if (!walk->mm) -+ return -EINVAL; -+ -+ pgd = pgd_offset(walk->mm, addr); - do { - next = pgd_addr_end(addr, end); - if (pgd_none_or_clear_bad(pgd)) { - if (walk->pte_hole) -- err = walk->pte_hole(addr, next, private); -+ err = walk->pte_hole(addr, next, walk); - if (err) - break; - continue; - } - if (walk->pgd_entry) -- err = walk->pgd_entry(pgd, addr, next, private); -+ err = walk->pgd_entry(pgd, addr, next, walk); - if (!err && - (walk->pud_entry || walk->pmd_entry || walk->pte_entry)) -- err = walk_pud_range(pgd, addr, next, walk, private); -+ err = walk_pud_range(pgd, addr, next, walk); - if (err) - break; - } while (pgd++, addr = next, addr != end); -diff --git a/mm/vmscan.c b/mm/vmscan.c -index 9a29901..967d30c 100644 ---- a/mm/vmscan.c -+++ b/mm/vmscan.c -@@ -1307,7 +1307,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, - struct scan_control *sc) - { - int priority; -- int ret = 0; -+ unsigned long ret = 0; - unsigned long total_scanned = 0; - unsigned long nr_reclaimed = 0; - struct reclaim_state *reclaim_state = current->reclaim_state; -diff --git a/security/dummy.c b/security/dummy.c -index f50c6c3..b891688 100644 ---- a/security/dummy.c -+++ b/security/dummy.c -@@ -27,6 +27,8 @@ - #include - #include - #include -+#include -+#include - - static int dummy_ptrace (struct task_struct *parent, struct task_struct *child) - { -@@ -607,7 +609,27 @@ static int dummy_task_kill (struct task_struct *p, struct siginfo *info, - static int dummy_task_prctl (int option, unsigned long arg2, unsigned long arg3, - unsigned long arg4, unsigned long arg5, long *rc_p) - { -- return 0; -+ switch (option) { -+ case PR_CAPBSET_READ: -+ *rc_p = (cap_valid(arg2) ? 1 : -EINVAL); -+ break; -+ case PR_GET_KEEPCAPS: -+ *rc_p = issecure(SECURE_KEEP_CAPS); -+ break; -+ case PR_SET_KEEPCAPS: -+ if (arg2 > 1) -+ *rc_p = -EINVAL; -+ else if (arg2) -+ current->securebits |= issecure_mask(SECURE_KEEP_CAPS); -+ else -+ current->securebits &= -+ ~issecure_mask(SECURE_KEEP_CAPS); -+ break; -+ default: -+ return 0; -+ } -+ -+ return 1; - } - - static void dummy_task_reparent_to_init (struct task_struct *p) diff --git a/debian/patches/bugfix/all/patch-2.6.26-rc6-git6 b/debian/patches/bugfix/all/patch-2.6.26-rc6-git6 new file mode 100644 index 000000000..0847beafc --- /dev/null +++ b/debian/patches/bugfix/all/patch-2.6.26-rc6-git6 @@ -0,0 +1,31126 @@ +diff --git a/.gitignore b/.gitignore +index d24ad50..9bb1cb6 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -26,6 +26,7 @@ tags + TAGS + vmlinux* + !vmlinux.lds.S ++!vmlinux.lds.h + System.map + Module.markers + Module.symvers +diff --git a/Documentation/cciss.txt b/Documentation/cciss.txt +index e65736c..63e59b8 100644 +--- a/Documentation/cciss.txt ++++ b/Documentation/cciss.txt +@@ -21,6 +21,11 @@ This driver is known to work with the following cards: + * SA E200 + * SA E200i + * SA E500 ++ * SA P212 ++ * SA P410 ++ * SA P410i ++ * SA P411 ++ * SA P812 + + Detecting drive failures: + ------------------------- +diff --git a/Documentation/filesystems/sysfs-pci.txt b/Documentation/filesystems/sysfs-pci.txt +index 5daa2aa..68ef488 100644 +--- a/Documentation/filesystems/sysfs-pci.txt ++++ b/Documentation/filesystems/sysfs-pci.txt +@@ -36,6 +36,7 @@ files, each with their own function. + local_cpus nearby CPU mask (cpumask, ro) + resource PCI resource host addresses (ascii, ro) + resource0..N PCI resource N, if present (binary, mmap) ++ resource0_wc..N_wc PCI WC map resource N, if prefetchable (binary, mmap) + rom PCI ROM resource, if present (binary, ro) + subsystem_device PCI subsystem device (ascii, ro) + subsystem_vendor PCI subsystem vendor (ascii, ro) +diff --git a/MAINTAINERS b/MAINTAINERS +index 9d43042..cd587ee 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -274,7 +274,7 @@ S: Maintained + + AD1889 ALSA SOUND DRIVER + P: Kyle McMartin +-M: kyle@parisc-linux.org ++M: kyle@mcmartin.ca + P: Thibaut Varene + M: T-Bone@parisc-linux.org + W: http://wiki.parisc-linux.org/AD1889 +@@ -995,8 +995,8 @@ L: netdev@vger.kernel.org + S: Supported + + BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER +-P: Eliezer Tamir +-M: eliezert@broadcom.com ++P: Eilon Greenstein ++M: eilong@broadcom.com + L: netdev@vger.kernel.org + S: Supported + +@@ -1202,6 +1202,7 @@ M: pj@sgi.com + M: menage@google.com + L: linux-kernel@vger.kernel.org + W: http://www.bullopensource.org/cpuset/ ++W: http://oss.sgi.com/projects/cpusets/ + S: Supported + + CRAMFS FILESYSTEM +@@ -1827,7 +1828,7 @@ S: Maintained + + HARMONY SOUND DRIVER + P: Kyle McMartin +-M: kyle@parisc-linux.org ++M: kyle@mcmartin.ca + L: linux-parisc@vger.kernel.org + S: Maintained + +@@ -3120,7 +3121,7 @@ S: Maintained + + PARISC ARCHITECTURE + P: Kyle McMartin +-M: kyle@parisc-linux.org ++M: kyle@mcmartin.ca + P: Matthew Wilcox + M: matthew@wil.cx + P: Grant Grundler +@@ -3329,9 +3330,11 @@ L: video4linux-list@redhat.com + W: http://www.isely.net/pvrusb2/ + S: Maintained + +-PXA2xx SUPPORT +-P: Nicolas Pitre +-M: nico@cam.org ++PXA2xx/PXA3xx SUPPORT ++P: Eric Miao ++M: eric.miao@marvell.com ++P: Russell King ++M: linux@arm.linux.org.uk + L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) + S: Maintained + +@@ -4023,7 +4026,7 @@ TULIP NETWORK DRIVERS + P: Grant Grundler + M: grundler@parisc-linux.org + P: Kyle McMartin +-M: kyle@parisc-linux.org ++M: kyle@mcmartin.ca + L: netdev@vger.kernel.org + S: Maintained + +diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c +index 00af7f2..0bb3198 100644 +--- a/arch/arm/mach-pxa/ssp.c ++++ b/arch/arm/mach-pxa/ssp.c +@@ -330,7 +330,7 @@ struct ssp_device *ssp_request(int port, const char *label) + + mutex_unlock(&ssp_lock); + +- if (ssp->port_id != port) ++ if (&ssp->node == &ssp_list) + return NULL; + + return ssp; +diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile +index 88f1a55..e67ee3f 100644 +--- a/arch/ia64/Makefile ++++ b/arch/ia64/Makefile +@@ -57,6 +57,7 @@ core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/ + core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/ + core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/ + core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/ ++core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/ + core-$(CONFIG_KVM) += arch/ia64/kvm/ + + drivers-$(CONFIG_PCI) += arch/ia64/pci/ +diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c +index 71d0513..7714a97 100644 +--- a/arch/ia64/kernel/perfmon.c ++++ b/arch/ia64/kernel/perfmon.c +@@ -1864,11 +1864,6 @@ pfm_flush(struct file *filp, fl_owner_t id) + * invoked after, it will find an empty queue and no + * signal will be sent. In both case, we are safe + */ +- if (filp->f_flags & FASYNC) { +- DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue)); +- pfm_do_fasync (-1, filp, ctx, 0); +- } +- + PROTECT_CTX(ctx, flags); + + state = ctx->ctx_state; +@@ -1999,6 +1994,11 @@ pfm_close(struct inode *inode, struct file *filp) + return -EBADF; + } + ++ if (filp->f_flags & FASYNC) { ++ DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue)); ++ pfm_do_fasync(-1, filp, ctx, 0); ++ } ++ + PROTECT_CTX(ctx, flags); + + state = ctx->ctx_state; +diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c +index 7e02597..0464173 100644 +--- a/arch/ia64/kernel/sal.c ++++ b/arch/ia64/kernel/sal.c +@@ -252,11 +252,10 @@ check_sal_cache_flush (void) + local_irq_save(flags); + + /* +- * Schedule a timer interrupt, wait until it's reported, and see if +- * SAL_CACHE_FLUSH drops it. ++ * Send ourselves a timer interrupt, wait until it's reported, and see ++ * if SAL_CACHE_FLUSH drops it. + */ +- ia64_set_itv(IA64_TIMER_VECTOR); +- ia64_set_itm(ia64_get_itc() + 1000); ++ platform_send_ipi(cpu, IA64_TIMER_VECTOR, IA64_IPI_DM_INT, 0); + + while (!ia64_get_irr(IA64_TIMER_VECTOR)) + cpu_relax(); +diff --git a/arch/ia64/uv/kernel/setup.c b/arch/ia64/uv/kernel/setup.c +index 9aa7432..cf5f28a 100644 +--- a/arch/ia64/uv/kernel/setup.c ++++ b/arch/ia64/uv/kernel/setup.c +@@ -17,6 +17,9 @@ + DEFINE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); + EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info); + ++#ifdef CONFIG_IA64_SGI_UV ++int sn_prom_type; ++#endif + + struct redir_addr { + unsigned long redirect; +@@ -64,6 +67,15 @@ void __init uv_setup(char **cmdline_p) + m_n_config.s.m_skt = 37; + m_n_config.s.n_skt = 0; + mmr_base = 0; ++#if 0 ++ /* Need BIOS calls - TDB */ ++ if (!ia64_sn_is_fake_prom()) ++ sn_prom_type = 1; ++ else ++#endif ++ sn_prom_type = 2; ++ printk(KERN_INFO "Running on medusa with %s PROM\n", ++ (sn_prom_type == 1) ? "real" : "fake"); + } else { + get_lowmem_redirect(&lowmem_redir_base, &lowmem_redir_size); + node_id.v = uv_read_local_mmr(UVH_NODE_ID); +diff --git a/arch/m68knommu/platform/coldfire/timers.c b/arch/m68knommu/platform/coldfire/timers.c +index ba5a9f3..454f254 100644 +--- a/arch/m68knommu/platform/coldfire/timers.c ++++ b/arch/m68knommu/platform/coldfire/timers.c +@@ -111,7 +111,13 @@ void hw_timer_init(void) + + __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); + mcftmr_cycles_per_jiffy = FREQ / HZ; +- __raw_writetrr(mcftmr_cycles_per_jiffy, TA(MCFTIMER_TRR)); ++ /* ++ * The coldfire timer runs from 0 to TRR included, then 0 ++ * again and so on. It counts thus actually TRR + 1 steps ++ * for 1 tick, not TRR. So if you want n cycles, ++ * initialize TRR with n - 1. ++ */ ++ __raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR)); + __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | + MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); + +diff --git a/arch/mips/Makefile b/arch/mips/Makefile +index 69648d0..ad36c94 100644 +--- a/arch/mips/Makefile ++++ b/arch/mips/Makefile +@@ -538,19 +538,19 @@ cflags-$(CONFIG_SIBYTE_BCM1x80) += -Iinclude/asm-mips/mach-sibyte \ + # Sibyte SWARM board + # Sibyte BCM91x80 (BigSur) board + # +-libs-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 +-libs-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 +-libs-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 +-libs-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 +-libs-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 +-libs-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 +-libs-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/ ++core-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/ + load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000 + + # +@@ -565,7 +565,11 @@ load-$(CONFIG_BCM47XX) := 0xffffffff80001000 + # + core-$(CONFIG_SNI_RM) += arch/mips/sni/ + cflags-$(CONFIG_SNI_RM) += -Iinclude/asm-mips/mach-rm ++ifdef CONFIG_CPU_LITTLE_ENDIAN + load-$(CONFIG_SNI_RM) += 0xffffffff80600000 ++else ++load-$(CONFIG_SNI_RM) += 0xffffffff80030000 ++endif + all-$(CONFIG_SNI_RM) := vmlinux.ecoff + + # +diff --git a/arch/mips/au1000/common/platform.c b/arch/mips/au1000/common/platform.c +index 8cae775..74d6d4a 100644 +--- a/arch/mips/au1000/common/platform.c ++++ b/arch/mips/au1000/common/platform.c +@@ -165,12 +165,12 @@ static struct resource au1xxx_usb_gdt_resources[] = { + static struct resource au1xxx_mmc_resources[] = { + [0] = { + .start = SD0_PHYS_ADDR, +- .end = SD0_PHYS_ADDR + 0x40, ++ .end = SD0_PHYS_ADDR + 0x7ffff, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = SD1_PHYS_ADDR, +- .end = SD1_PHYS_ADDR + 0x40, ++ .end = SD1_PHYS_ADDR + 0x7ffff, + .flags = IORESOURCE_MEM, + }, + [2] = { +diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig +index 117470b..4b87998 100644 +--- a/arch/mips/configs/sb1250-swarm_defconfig ++++ b/arch/mips/configs/sb1250-swarm_defconfig +@@ -1,67 +1,58 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.20 +-# Tue Feb 20 21:47:40 2007 ++# Linux kernel version: 2.6.25 ++# Sat May 3 00:38:11 2008 + # + CONFIG_MIPS=y + + # + # Machine selection + # +-CONFIG_ZONE_DMA=y +-# CONFIG_MIPS_MTX1 is not set +-# CONFIG_MIPS_BOSPORUS is not set +-# CONFIG_MIPS_PB1000 is not set +-# CONFIG_MIPS_PB1100 is not set +-# CONFIG_MIPS_PB1500 is not set +-# CONFIG_MIPS_PB1550 is not set +-# CONFIG_MIPS_PB1200 is not set +-# CONFIG_MIPS_DB1000 is not set +-# CONFIG_MIPS_DB1100 is not set +-# CONFIG_MIPS_DB1500 is not set +-# CONFIG_MIPS_DB1550 is not set +-# CONFIG_MIPS_DB1200 is not set +-# CONFIG_MIPS_MIRAGE is not set ++# CONFIG_MACH_ALCHEMY is not set + # CONFIG_BASLER_EXCITE is not set ++# CONFIG_BCM47XX is not set + # CONFIG_MIPS_COBALT is not set + # CONFIG_MACH_DECSTATION is not set + # CONFIG_MACH_JAZZ is not set ++# CONFIG_LASAT is not set ++# CONFIG_LEMOTE_FULONG is not set + # CONFIG_MIPS_ATLAS is not set + # CONFIG_MIPS_MALTA is not set + # CONFIG_MIPS_SEAD is not set +-# CONFIG_WR_PPMC is not set + # CONFIG_MIPS_SIM is not set +-# CONFIG_MOMENCO_JAGUAR_ATX is not set +-# CONFIG_MIPS_XXS1500 is not set ++# CONFIG_MARKEINS is not set ++# CONFIG_MACH_VR41XX is not set + # CONFIG_PNX8550_JBS is not set + # CONFIG_PNX8550_STB810 is not set +-# CONFIG_MACH_VR41XX is not set ++# CONFIG_PMC_MSP is not set + # CONFIG_PMC_YOSEMITE is not set +-# CONFIG_MARKEINS is not set + # CONFIG_SGI_IP22 is not set + # CONFIG_SGI_IP27 is not set ++# CONFIG_SGI_IP28 is not set + # CONFIG_SGI_IP32 is not set +-# CONFIG_SIBYTE_BIGSUR is not set +-CONFIG_SIBYTE_SWARM=y +-# CONFIG_SIBYTE_SENTOSA is not set +-# CONFIG_SIBYTE_RHONE is not set +-# CONFIG_SIBYTE_CARMEL is not set +-# CONFIG_SIBYTE_LITTLESUR is not set + # CONFIG_SIBYTE_CRHINE is not set ++# CONFIG_SIBYTE_CARMEL is not set + # CONFIG_SIBYTE_CRHONE is not set ++# CONFIG_SIBYTE_RHONE is not set ++CONFIG_SIBYTE_SWARM=y ++# CONFIG_SIBYTE_LITTLESUR is not set ++# CONFIG_SIBYTE_SENTOSA is not set ++# CONFIG_SIBYTE_BIGSUR is not set + # CONFIG_SNI_RM is not set + # CONFIG_TOSHIBA_JMR3927 is not set + # CONFIG_TOSHIBA_RBTX4927 is not set + # CONFIG_TOSHIBA_RBTX4938 is not set ++# CONFIG_WR_PPMC is not set + CONFIG_SIBYTE_SB1250=y + CONFIG_SIBYTE_SB1xxx_SOC=y +-CONFIG_CPU_SB1_PASS_1=y ++# CONFIG_CPU_SB1_PASS_1 is not set + # CONFIG_CPU_SB1_PASS_2_1250 is not set +-# CONFIG_CPU_SB1_PASS_2_2 is not set ++CONFIG_CPU_SB1_PASS_2_2=y + # CONFIG_CPU_SB1_PASS_4 is not set + # CONFIG_CPU_SB1_PASS_2_112x is not set + # CONFIG_CPU_SB1_PASS_3 is not set + CONFIG_SIBYTE_HAS_LDT=y ++CONFIG_SIBYTE_ENABLE_LDT_IF_PCI=y + # CONFIG_SIMULATION is not set + # CONFIG_SB1_CEX_ALWAYS_FATAL is not set + # CONFIG_SB1_CERR_STALL is not set +@@ -69,20 +60,32 @@ CONFIG_SIBYTE_CFE=y + # CONFIG_SIBYTE_CFE_CONSOLE is not set + # CONFIG_SIBYTE_BUS_WATCHER is not set + # CONFIG_SIBYTE_TBPROF is not set ++CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y + CONFIG_RWSEM_GENERIC_SPINLOCK=y + # CONFIG_ARCH_HAS_ILOG2_U32 is not set + # CONFIG_ARCH_HAS_ILOG2_U64 is not set ++CONFIG_ARCH_SUPPORTS_OPROFILE=y + CONFIG_GENERIC_FIND_NEXT_BIT=y + CONFIG_GENERIC_HWEIGHT=y + CONFIG_GENERIC_CALIBRATE_DELAY=y ++CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_TIME=y ++CONFIG_GENERIC_CMOS_UPDATE=y + CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y + # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set ++CONFIG_CEVT_SB1250=y ++CONFIG_CSRC_SB1250=y ++CONFIG_CFE=y + CONFIG_DMA_COHERENT=y ++CONFIG_EARLY_PRINTK=y ++CONFIG_SYS_HAS_EARLY_PRINTK=y ++# CONFIG_HOTPLUG_CPU is not set ++# CONFIG_NO_IOPORT is not set + CONFIG_CPU_BIG_ENDIAN=y + # CONFIG_CPU_LITTLE_ENDIAN is not set + CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y + CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y ++CONFIG_IRQ_CPU=y + CONFIG_SWAP_IO_SPACE=y + CONFIG_BOOT_ELF32=y + CONFIG_MIPS_L1_CACHE_SHIFT=5 +@@ -90,6 +93,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 + # + # CPU selection + # ++# CONFIG_CPU_LOONGSON2 is not set + # CONFIG_CPU_MIPS32_R1 is not set + # CONFIG_CPU_MIPS32_R2 is not set + # CONFIG_CPU_MIPS64_R1 is not set +@@ -130,8 +134,7 @@ CONFIG_CPU_HAS_PREFETCH=y + CONFIG_MIPS_MT_DISABLED=y + # CONFIG_MIPS_MT_SMP is not set + # CONFIG_MIPS_MT_SMTC is not set +-# CONFIG_MIPS_VPE_LOADER is not set +-CONFIG_SB1_PASS_1_WORKAROUNDS=y ++CONFIG_SB1_PASS_2_WORKAROUNDS=y + CONFIG_CPU_HAS_LLSC=y + CONFIG_CPU_HAS_SYNC=y + CONFIG_GENERIC_HARDIRQS=y +@@ -140,6 +143,7 @@ CONFIG_IRQ_PER_CPU=y + CONFIG_CPU_SUPPORTS_HIGHMEM=y + CONFIG_SYS_SUPPORTS_HIGHMEM=y + CONFIG_ARCH_FLATMEM_ENABLE=y ++CONFIG_ARCH_POPULATES_NODE_MAP=y + CONFIG_SELECT_MEMORY_MODEL=y + CONFIG_FLATMEM_MANUAL=y + # CONFIG_DISCONTIGMEM_MANUAL is not set +@@ -147,13 +151,19 @@ CONFIG_FLATMEM_MANUAL=y + CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set ++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set + CONFIG_SPLIT_PTLOCK_CPUS=4 + CONFIG_RESOURCES_64BIT=y +-CONFIG_ZONE_DMA_FLAG=1 ++CONFIG_ZONE_DMA_FLAG=0 ++CONFIG_VIRT_TO_BUS=y + CONFIG_SMP=y + CONFIG_SYS_SUPPORTS_SMP=y + CONFIG_NR_CPUS_DEFAULT_2=y + CONFIG_NR_CPUS=2 ++CONFIG_TICK_ONESHOT=y ++# CONFIG_NO_HZ is not set ++CONFIG_HIGH_RES_TIMERS=y ++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + # CONFIG_HZ_48 is not set + # CONFIG_HZ_100 is not set + # CONFIG_HZ_128 is not set +@@ -166,38 +176,49 @@ CONFIG_HZ=1000 + CONFIG_PREEMPT_NONE=y + # CONFIG_PREEMPT_VOLUNTARY is not set + # CONFIG_PREEMPT is not set +-CONFIG_PREEMPT_BKL=y + # CONFIG_KEXEC is not set ++CONFIG_SECCOMP=y + CONFIG_LOCKDEP_SUPPORT=y + CONFIG_STACKTRACE_SUPPORT=y + CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + + # +-# Code maturity level options ++# General setup + # + CONFIG_EXPERIMENTAL=y + CONFIG_LOCK_KERNEL=y + CONFIG_INIT_ENV_ARG_LIMIT=32 +- +-# +-# General setup +-# + CONFIG_LOCALVERSION="" + CONFIG_LOCALVERSION_AUTO=y + CONFIG_SWAP=y + CONFIG_SYSVIPC=y +-# CONFIG_IPC_NS is not set + CONFIG_SYSVIPC_SYSCTL=y + # CONFIG_POSIX_MQUEUE is not set + # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_TASKSTATS is not set +-# CONFIG_UTS_NS is not set + # CONFIG_AUDIT is not set + # CONFIG_IKCONFIG is not set ++CONFIG_LOG_BUF_SHIFT=15 + CONFIG_CGROUPS=y ++# CONFIG_CGROUP_DEBUG is not set ++# CONFIG_CGROUP_NS is not set + CONFIG_CPUSETS=y +-CONFIG_SYSFS_DEPRECATED=y ++CONFIG_GROUP_SCHED=y ++CONFIG_FAIR_GROUP_SCHED=y ++# CONFIG_RT_GROUP_SCHED is not set ++CONFIG_USER_SCHED=y ++# CONFIG_CGROUP_SCHED is not set ++CONFIG_CGROUP_CPUACCT=y ++# CONFIG_RESOURCE_COUNTERS is not set ++# CONFIG_SYSFS_DEPRECATED_V2 is not set ++# CONFIG_PROC_PID_CPUSET is not set + CONFIG_RELAY=y ++CONFIG_NAMESPACES=y ++# CONFIG_UTS_NS is not set ++# CONFIG_IPC_NS is not set ++# CONFIG_USER_NS is not set ++# CONFIG_PID_NS is not set ++CONFIG_BLK_DEV_INITRD=y + CONFIG_INITRAMFS_SOURCE="" + # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set + CONFIG_SYSCTL=y +@@ -209,20 +230,29 @@ CONFIG_HOTPLUG=y + CONFIG_PRINTK=y + CONFIG_BUG=y + CONFIG_ELF_CORE=y ++# CONFIG_COMPAT_BRK is not set + CONFIG_BASE_FULL=y + CONFIG_FUTEX=y ++CONFIG_ANON_INODES=y + CONFIG_EPOLL=y ++CONFIG_SIGNALFD=y ++CONFIG_TIMERFD=y ++CONFIG_EVENTFD=y + CONFIG_SHMEM=y +-CONFIG_SLAB=y + CONFIG_VM_EVENT_COUNTERS=y ++CONFIG_SLAB=y ++# CONFIG_SLUB is not set ++# CONFIG_SLOB is not set ++# CONFIG_PROFILING is not set ++# CONFIG_MARKERS is not set ++CONFIG_HAVE_OPROFILE=y ++# CONFIG_HAVE_KPROBES is not set ++# CONFIG_HAVE_KRETPROBES is not set ++CONFIG_PROC_PAGE_MONITOR=y ++CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 +-# CONFIG_SLOB is not set +- +-# +-# Loadable module support +-# + CONFIG_MODULES=y + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set +@@ -230,12 +260,10 @@ CONFIG_MODVERSIONS=y + CONFIG_MODULE_SRCVERSION_ALL=y + CONFIG_KMOD=y + CONFIG_STOP_MACHINE=y +- +-# +-# Block layer +-# + CONFIG_BLOCK=y + # CONFIG_BLK_DEV_IO_TRACE is not set ++CONFIG_BLK_DEV_BSG=y ++CONFIG_BLOCK_COMPAT=y + + # + # IO Schedulers +@@ -249,22 +277,19 @@ CONFIG_DEFAULT_AS=y + # CONFIG_DEFAULT_CFQ is not set + # CONFIG_DEFAULT_NOOP is not set + CONFIG_DEFAULT_IOSCHED="anticipatory" ++CONFIG_CLASSIC_RCU=y + + # + # Bus options (PCI, PCMCIA, EISA, ISA, TC) + # + CONFIG_HW_HAS_PCI=y + CONFIG_PCI=y ++CONFIG_PCI_DOMAINS=y ++# CONFIG_ARCH_SUPPORTS_MSI is not set ++# CONFIG_PCI_LEGACY is not set + CONFIG_MMU=y +- +-# +-# PCCARD (PCMCIA/CardBus) support +-# ++CONFIG_ZONE_DMA32=y + # CONFIG_PCCARD is not set +- +-# +-# PCI Hotplug Support +-# + # CONFIG_HOTPLUG_PCI is not set + + # +@@ -272,7 +297,6 @@ CONFIG_MMU=y + # + CONFIG_BINFMT_ELF=y + # CONFIG_BINFMT_MISC is not set +-# CONFIG_BUILD_ELF64 is not set + CONFIG_MIPS32_COMPAT=y + CONFIG_COMPAT=y + CONFIG_SYSVIPC_COMPAT=y +@@ -286,7 +310,6 @@ CONFIG_BINFMT_ELF32=y + CONFIG_PM=y + # CONFIG_PM_LEGACY is not set + # CONFIG_PM_DEBUG is not set +-# CONFIG_PM_SYSFS_DEPRECATED is not set + + # + # Networking +@@ -296,7 +319,6 @@ CONFIG_NET=y + # + # Networking options + # +-# CONFIG_NETDEBUG is not set + CONFIG_PACKET=y + CONFIG_PACKET_MMAP=y + CONFIG_UNIX=y +@@ -304,6 +326,7 @@ CONFIG_XFRM=y + CONFIG_XFRM_USER=m + # CONFIG_XFRM_SUB_POLICY is not set + CONFIG_XFRM_MIGRATE=y ++# CONFIG_XFRM_STATISTICS is not set + CONFIG_NET_KEY=y + CONFIG_NET_KEY_MIGRATE=y + CONFIG_INET=y +@@ -326,6 +349,7 @@ CONFIG_IP_PNP_BOOTP=y + CONFIG_INET_XFRM_MODE_TRANSPORT=m + CONFIG_INET_XFRM_MODE_TUNNEL=m + CONFIG_INET_XFRM_MODE_BEET=m ++CONFIG_INET_LRO=m + CONFIG_INET_DIAG=y + CONFIG_INET_TCP_DIAG=y + # CONFIG_TCP_CONG_ADVANCED is not set +@@ -333,24 +357,15 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + CONFIG_TCP_MD5SIG=y + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + CONFIG_NETWORK_SECMARK=y + # CONFIG_NETFILTER is not set +- +-# +-# DCCP Configuration (EXPERIMENTAL) +-# + # CONFIG_IP_DCCP is not set +- +-# +-# SCTP Configuration (EXPERIMENTAL) +-# +-# CONFIG_IP_SCTP is not set +- +-# +-# TIPC Configuration (EXPERIMENTAL) +-# ++CONFIG_IP_SCTP=m ++# CONFIG_SCTP_DBG_MSG is not set ++# CONFIG_SCTP_DBG_OBJCNT is not set ++# CONFIG_SCTP_HMAC_NONE is not set ++# CONFIG_SCTP_HMAC_SHA1 is not set ++CONFIG_SCTP_HMAC_MD5=y + # CONFIG_TIPC is not set + # CONFIG_ATM is not set + # CONFIG_BRIDGE is not set +@@ -363,26 +378,52 @@ CONFIG_NETWORK_SECMARK=y + # CONFIG_LAPB is not set + # CONFIG_ECONET is not set + # CONFIG_WAN_ROUTER is not set +- +-# +-# QoS and/or fair queueing +-# + # CONFIG_NET_SCHED is not set ++CONFIG_NET_SCH_FIFO=y + + # + # Network testing + # + # CONFIG_NET_PKTGEN is not set + # CONFIG_HAMRADIO is not set ++# CONFIG_CAN is not set + # CONFIG_IRDA is not set + # CONFIG_BT is not set ++# CONFIG_AF_RXRPC is not set ++ ++# ++# Wireless ++# ++CONFIG_CFG80211=m ++CONFIG_NL80211=y ++CONFIG_WIRELESS_EXT=y ++CONFIG_MAC80211=m ++ ++# ++# Rate control algorithm selection ++# ++CONFIG_MAC80211_RC_DEFAULT_PID=y ++# CONFIG_MAC80211_RC_DEFAULT_NONE is not set ++ ++# ++# Selecting 'y' for an algorithm will ++# ++ ++# ++# build the algorithm into mac80211. ++# ++CONFIG_MAC80211_RC_DEFAULT="pid" ++CONFIG_MAC80211_RC_PID=y ++# CONFIG_MAC80211_MESH is not set ++# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set ++# CONFIG_MAC80211_DEBUG is not set + CONFIG_IEEE80211=m + # CONFIG_IEEE80211_DEBUG is not set + CONFIG_IEEE80211_CRYPT_WEP=m + CONFIG_IEEE80211_CRYPT_CCMP=m +-CONFIG_IEEE80211_SOFTMAC=m +-# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +-CONFIG_WIRELESS_EXT=y ++CONFIG_IEEE80211_CRYPT_TKIP=m ++CONFIG_RFKILL=m ++# CONFIG_NET_9P is not set + + # + # Device Drivers +@@ -391,34 +432,15 @@ CONFIG_WIRELESS_EXT=y + # + # Generic Driver Options + # ++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" + CONFIG_STANDALONE=y + CONFIG_PREVENT_FIRMWARE_BUILD=y + CONFIG_FW_LOADER=m + # CONFIG_SYS_HYPERVISOR is not set +- +-# +-# Connector - unified userspace <-> kernelspace linker +-# + CONFIG_CONNECTOR=m +- +-# +-# Memory Technology Devices (MTD) +-# + # CONFIG_MTD is not set +- +-# +-# Parallel port support +-# + # CONFIG_PARPORT is not set +- +-# +-# Plug and Play support +-# +-# CONFIG_PNPACPI is not set +- +-# +-# Block devices +-# ++CONFIG_BLK_DEV=y + # CONFIG_BLK_CPQ_DA is not set + # CONFIG_BLK_CPQ_CISS_DA is not set + # CONFIG_BLK_DEV_DAC960 is not set +@@ -427,49 +449,77 @@ CONFIG_CONNECTOR=m + # CONFIG_BLK_DEV_LOOP is not set + # CONFIG_BLK_DEV_NBD is not set + # CONFIG_BLK_DEV_SX8 is not set ++# CONFIG_BLK_DEV_UB is not set + CONFIG_BLK_DEV_RAM=y + CONFIG_BLK_DEV_RAM_COUNT=16 + CONFIG_BLK_DEV_RAM_SIZE=9220 +-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +-CONFIG_BLK_DEV_INITRD=y ++# CONFIG_BLK_DEV_XIP is not set + CONFIG_CDROM_PKTCDVD=m + CONFIG_CDROM_PKTCDVD_BUFFERS=8 + # CONFIG_CDROM_PKTCDVD_WCACHE is not set + CONFIG_ATA_OVER_ETH=m +- +-# +-# Misc devices +-# ++CONFIG_MISC_DEVICES=y ++# CONFIG_PHANTOM is not set ++# CONFIG_EEPROM_93CX6 is not set + CONFIG_SGI_IOC4=m + # CONFIG_TIFM_CORE is not set +- +-# +-# ATA/ATAPI/MFM/RLL support +-# ++# CONFIG_ENCLOSURE_SERVICES is not set ++CONFIG_HAVE_IDE=y + CONFIG_IDE=y + CONFIG_IDE_MAX_HWIFS=4 + CONFIG_BLK_DEV_IDE=y + + # +-# Please see Documentation/ide.txt for help/info on IDE drives ++# Please see Documentation/ide/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 ++CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y + CONFIG_BLK_DEV_IDETAPE=y + CONFIG_BLK_DEV_IDEFLOPPY=y + # CONFIG_IDE_TASK_IOCTL is not set ++CONFIG_IDE_PROC_FS=y + + # + # IDE chipset support/bugfixes + # +-CONFIG_IDE_GENERIC=y +-# CONFIG_BLK_DEV_IDEPCI is not set ++# CONFIG_IDE_GENERIC is not set ++# CONFIG_BLK_DEV_PLATFORM is not set ++ ++# ++# PCI IDE chipsets support ++# ++# CONFIG_BLK_DEV_GENERIC is not set ++# CONFIG_BLK_DEV_OPTI621 is not set ++# CONFIG_BLK_DEV_AEC62XX is not set ++# CONFIG_BLK_DEV_ALI15X3 is not set ++# CONFIG_BLK_DEV_AMD74XX is not set ++# CONFIG_BLK_DEV_CMD64X is not set ++# CONFIG_BLK_DEV_TRIFLEX is not set ++# CONFIG_BLK_DEV_CY82C693 is not set ++# CONFIG_BLK_DEV_CS5520 is not set ++# CONFIG_BLK_DEV_CS5530 is not set ++# CONFIG_BLK_DEV_HPT34X is not set ++# CONFIG_BLK_DEV_HPT366 is not set ++# CONFIG_BLK_DEV_JMICRON is not set ++# CONFIG_BLK_DEV_SC1200 is not set ++# CONFIG_BLK_DEV_PIIX is not set ++# CONFIG_BLK_DEV_IT8213 is not set ++# CONFIG_BLK_DEV_IT821X is not set ++# CONFIG_BLK_DEV_NS87415 is not set ++# CONFIG_BLK_DEV_PDC202XX_OLD is not set ++# CONFIG_BLK_DEV_PDC202XX_NEW is not set ++# CONFIG_BLK_DEV_SVWKS is not set ++# CONFIG_BLK_DEV_SIIMAGE is not set ++# CONFIG_BLK_DEV_SLC90E66 is not set ++# CONFIG_BLK_DEV_TRM290 is not set ++# CONFIG_BLK_DEV_VIA82CXXX is not set ++# CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDE_SWARM=y +-# CONFIG_IDE_ARM is not set + # CONFIG_BLK_DEV_IDEDMA is not set +-# CONFIG_IDEDMA_AUTO is not set ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -477,89 +527,68 @@ CONFIG_BLK_DEV_IDE_SWARM=y + # + CONFIG_RAID_ATTRS=m + # CONFIG_SCSI is not set ++# CONFIG_SCSI_DMA is not set + # CONFIG_SCSI_NETLINK is not set +- +-# +-# Serial ATA (prod) and Parallel ATA (experimental) drivers +-# + # CONFIG_ATA is not set +- +-# +-# Multi-device support (RAID and LVM) +-# + # CONFIG_MD is not set +- +-# +-# Fusion MPT device support +-# + # CONFIG_FUSION is not set + + # + # IEEE 1394 (FireWire) support + # ++# CONFIG_FIREWIRE is not set + # CONFIG_IEEE1394 is not set +- +-# +-# I2O device support +-# + # CONFIG_I2O is not set +- +-# +-# Network device support +-# + CONFIG_NETDEVICES=y ++CONFIG_NETDEVICES_MULTIQUEUE=y + # CONFIG_DUMMY is not set + # CONFIG_BONDING is not set ++CONFIG_MACVLAN=m + # CONFIG_EQUALIZER is not set + # CONFIG_TUN is not set +- +-# +-# ARCnet devices +-# ++# CONFIG_VETH is not set + # CONFIG_ARCNET is not set +- +-# +-# PHY device support +-# +-CONFIG_PHYLIB=m ++CONFIG_PHYLIB=y + + # + # MII PHY device drivers + # +-CONFIG_MARVELL_PHY=m +-CONFIG_DAVICOM_PHY=m +-CONFIG_QSEMI_PHY=m +-CONFIG_LXT_PHY=m +-CONFIG_CICADA_PHY=m +-CONFIG_VITESSE_PHY=m +-CONFIG_SMSC_PHY=m +-# CONFIG_BROADCOM_PHY is not set ++# CONFIG_MARVELL_PHY is not set ++# CONFIG_DAVICOM_PHY is not set ++# CONFIG_QSEMI_PHY is not set ++# CONFIG_LXT_PHY is not set ++# CONFIG_CICADA_PHY is not set ++# CONFIG_VITESSE_PHY is not set ++# CONFIG_SMSC_PHY is not set ++CONFIG_BROADCOM_PHY=y ++# CONFIG_ICPLUS_PHY is not set ++# CONFIG_REALTEK_PHY is not set + # CONFIG_FIXED_PHY is not set +- +-# +-# Ethernet (10 or 100Mbit) +-# ++# CONFIG_MDIO_BITBANG is not set + CONFIG_NET_ETHERNET=y + CONFIG_MII=y ++# CONFIG_AX88796 is not set + # CONFIG_HAPPYMEAL is not set + # CONFIG_SUNGEM is not set + # CONFIG_CASSINI is not set + # CONFIG_NET_VENDOR_3COM is not set + # CONFIG_DM9000 is not set +- +-# +-# Tulip family network device support +-# + # CONFIG_NET_TULIP is not set + # CONFIG_HP100 is not set ++# CONFIG_IBM_NEW_EMAC_ZMII is not set ++# CONFIG_IBM_NEW_EMAC_RGMII is not set ++# CONFIG_IBM_NEW_EMAC_TAH is not set ++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set + # CONFIG_NET_PCI is not set +- +-# +-# Ethernet (1000 Mbit) +-# ++# CONFIG_B44 is not set ++CONFIG_NETDEV_1000=y + # CONFIG_ACENIC is not set + # CONFIG_DL2K is not set + # CONFIG_E1000 is not set ++# CONFIG_E1000E is not set ++# CONFIG_E1000E_ENABLED is not set ++# CONFIG_IP1000 is not set ++# CONFIG_IGB is not set + # CONFIG_NS83820 is not set + # CONFIG_HAMACHI is not set + # CONFIG_YELLOWFIN is not set +@@ -568,53 +597,70 @@ CONFIG_SB1250_MAC=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set ++# CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +-CONFIG_QLA3XXX=m ++# CONFIG_QLA3XXX is not set + # CONFIG_ATL1 is not set +- +-# +-# Ethernet (10000 Mbit) +-# ++CONFIG_NETDEV_10000=y + # CONFIG_CHELSIO_T1 is not set +-CONFIG_CHELSIO_T3=m ++# CONFIG_CHELSIO_T3 is not set ++# CONFIG_IXGBE is not set + # CONFIG_IXGB is not set + # CONFIG_S2IO is not set + # CONFIG_MYRI10GE is not set +-CONFIG_NETXEN_NIC=m +- +-# +-# Token Ring devices +-# ++# CONFIG_NETXEN_NIC is not set ++# CONFIG_NIU is not set ++# CONFIG_MLX4_CORE is not set ++# CONFIG_TEHUTI is not set ++# CONFIG_BNX2X is not set + # CONFIG_TR is not set + + # +-# Wireless LAN (non-hamradio) +-# +-# CONFIG_NET_RADIO is not set +- +-# +-# Wan interfaces +-# ++# Wireless LAN ++# ++# CONFIG_WLAN_PRE80211 is not set ++CONFIG_WLAN_80211=y ++# CONFIG_IPW2100 is not set ++# CONFIG_IPW2200 is not set ++# CONFIG_LIBERTAS is not set ++# CONFIG_HERMES is not set ++# CONFIG_ATMEL is not set ++# CONFIG_PRISM54 is not set ++# CONFIG_USB_ZD1201 is not set ++# CONFIG_USB_NET_RNDIS_WLAN is not set ++# CONFIG_RTL8180 is not set ++# CONFIG_RTL8187 is not set ++# CONFIG_ADM8211 is not set ++# CONFIG_P54_COMMON is not set ++# CONFIG_ATH5K is not set ++# CONFIG_IWLCORE is not set ++# CONFIG_IWLWIFI_LEDS is not set ++# CONFIG_IWL4965 is not set ++# CONFIG_IWL3945 is not set ++# CONFIG_HOSTAP is not set ++# CONFIG_B43 is not set ++# CONFIG_B43LEGACY is not set ++# CONFIG_ZD1211RW is not set ++# CONFIG_RT2X00 is not set ++ ++# ++# USB Network Adapters ++# ++# CONFIG_USB_CATC is not set ++# CONFIG_USB_KAWETH is not set ++# CONFIG_USB_PEGASUS is not set ++# CONFIG_USB_RTL8150 is not set ++# CONFIG_USB_USBNET 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 + # CONFIG_NETPOLL is not set + # CONFIG_NET_POLL_CONTROLLER is not set +- +-# +-# ISDN subsystem +-# + # CONFIG_ISDN is not set +- +-# +-# Telephony Support +-# + # CONFIG_PHONE is not set + + # +@@ -637,24 +683,8 @@ CONFIG_SERIO_RAW=m + # Character devices + # + # CONFIG_VT is not set +-CONFIG_SERIAL_NONSTANDARD=y +-# CONFIG_COMPUTONE is not set +-# CONFIG_ROCKETPORT is not set +-# CONFIG_CYCLADES is not set +-# CONFIG_DIGIEPCA is not set +-# CONFIG_MOXA_INTELLIO is not set +-# CONFIG_MOXA_SMARTIO is not set +-CONFIG_MOXA_SMARTIO_NEW=m +-# CONFIG_ISI is not set +-# CONFIG_SYNCLINKMP is not set +-# CONFIG_SYNCLINK_GT is not set +-# CONFIG_N_HDLC is not set +-# CONFIG_SPECIALIX is not set +-# CONFIG_SX is not set +-# CONFIG_RIO is not set +-# CONFIG_STALDRV is not set +-CONFIG_SERIAL_SB1250_DUART=y +-CONFIG_SERIAL_SB1250_DUART_CONSOLE=y ++# CONFIG_SERIAL_NONSTANDARD is not set ++# CONFIG_NOZOMI is not set + + # + # Serial drivers +@@ -664,37 +694,22 @@ CONFIG_SERIAL_SB1250_DUART_CONSOLE=y + # + # Non-8250 serial port support + # ++CONFIG_SERIAL_SB1250_DUART=y ++CONFIG_SERIAL_SB1250_DUART_CONSOLE=y ++CONFIG_SERIAL_CORE=y ++CONFIG_SERIAL_CORE_CONSOLE=y + # CONFIG_SERIAL_JSM is not set + CONFIG_UNIX98_PTYS=y + CONFIG_LEGACY_PTYS=y + CONFIG_LEGACY_PTY_COUNT=256 +- +-# +-# IPMI +-# + # CONFIG_IPMI_HANDLER is not set +- +-# +-# Watchdog Cards +-# +-# CONFIG_WATCHDOG is not set + # CONFIG_HW_RANDOM 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 +-# CONFIG_DRM is not set + # CONFIG_RAW_DRIVER is not set +- +-# +-# TPM devices +-# + # CONFIG_TCG_TPM is not set +- +-# +-# I2C support +-# ++CONFIG_DEVPORT=y + # CONFIG_I2C is not set + + # +@@ -702,109 +717,139 @@ CONFIG_LEGACY_PTY_COUNT=256 + # + # CONFIG_SPI is not set + # CONFIG_SPI_MASTER is not set ++# CONFIG_W1 is not set ++# CONFIG_POWER_SUPPLY is not set ++# CONFIG_HWMON is not set ++# CONFIG_THERMAL is not set ++# CONFIG_WATCHDOG is not set + + # +-# Dallas's 1-wire bus ++# Sonics Silicon Backplane + # +-# CONFIG_W1 is not set ++CONFIG_SSB_POSSIBLE=y ++# CONFIG_SSB is not set + + # +-# Hardware Monitoring support ++# Multifunction device drivers + # +-# CONFIG_HWMON is not set +-# CONFIG_HWMON_VID is not set ++# CONFIG_MFD_SM501 is not set + + # + # Multimedia devices + # + # CONFIG_VIDEO_DEV is not set +- +-# +-# Digital Video Broadcasting Devices +-# +-# CONFIG_DVB is not set ++# CONFIG_DVB_CORE is not set ++# CONFIG_DAB is not set + + # + # Graphics support + # +-# CONFIG_FIRMWARE_EDID is not set ++# CONFIG_DRM is not set ++# CONFIG_VGASTATE is not set ++# CONFIG_VIDEO_OUTPUT_CONTROL is not set + # CONFIG_FB is not set + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set + + # +-# Sound ++# Display device support + # +-# CONFIG_SOUND is not set ++# CONFIG_DISPLAY_SUPPORT is not set + + # +-# USB support ++# Sound + # ++# CONFIG_SOUND is not set ++CONFIG_USB_SUPPORT=y + CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y +-# CONFIG_USB is not set +- +-# +-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +-# ++CONFIG_USB=y ++# CONFIG_USB_DEBUG is not set ++# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + + # +-# USB Gadget Support ++# Miscellaneous USB options + # +-# CONFIG_USB_GADGET is not set ++CONFIG_USB_DEVICEFS=y ++CONFIG_USB_DEVICE_CLASS=y ++# CONFIG_USB_DYNAMIC_MINORS is not set ++# CONFIG_USB_SUSPEND is not set ++# CONFIG_USB_PERSIST is not set ++# CONFIG_USB_OTG is not set + + # +-# MMC/SD Card support ++# USB Host Controller Drivers + # +-# CONFIG_MMC is not set ++# CONFIG_USB_EHCI_HCD is not set ++# CONFIG_USB_ISP116X_HCD is not set ++CONFIG_USB_OHCI_HCD=y ++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set ++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set ++CONFIG_USB_OHCI_LITTLE_ENDIAN=y ++# CONFIG_USB_UHCI_HCD is not set ++# CONFIG_USB_SL811_HCD is not set ++# CONFIG_USB_R8A66597_HCD is not set + + # +-# LED devices ++# USB Device Class drivers + # +-# CONFIG_NEW_LEDS is not set ++# CONFIG_USB_ACM is not set ++# CONFIG_USB_PRINTER is not set + + # +-# LED drivers ++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' + # + + # +-# LED Triggers ++# may also be needed; see USB_STORAGE Help for more information + # ++# CONFIG_USB_LIBUSUAL is not set + + # +-# InfiniBand support ++# USB Imaging devices + # +-# CONFIG_INFINIBAND is not set ++# CONFIG_USB_MDC800 is not set ++CONFIG_USB_MON=y + + # +-# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) ++# USB port drivers + # ++# CONFIG_USB_SERIAL is not set + + # +-# Real Time Clock ++# USB Miscellaneous drivers + # ++# CONFIG_USB_EMI62 is not set ++# CONFIG_USB_EMI26 is not set ++# CONFIG_USB_ADUTUX is not set ++# CONFIG_USB_AUERSWALD is not set ++# CONFIG_USB_RIO500 is not set ++# CONFIG_USB_LEGOTOWER is not set ++# CONFIG_USB_LCD is not set ++# CONFIG_USB_BERRY_CHARGE is not set ++# CONFIG_USB_LED is not set ++# CONFIG_USB_CYPRESS_CY7C63 is not set ++# CONFIG_USB_CYTHERM is not set ++# CONFIG_USB_PHIDGET is not set ++# CONFIG_USB_IDMOUSE is not set ++# CONFIG_USB_FTDI_ELAN is not set ++# CONFIG_USB_APPLEDISPLAY is not set ++# CONFIG_USB_LD is not set ++# CONFIG_USB_TRANCEVIBRATOR is not set ++# CONFIG_USB_IOWARRIOR is not set ++# CONFIG_USB_TEST is not set ++# CONFIG_USB_GADGET is not set ++# CONFIG_MMC is not set ++# CONFIG_MEMSTICK is not set ++# CONFIG_NEW_LEDS is not set ++# CONFIG_INFINIBAND is not set ++CONFIG_RTC_LIB=y + # CONFIG_RTC_CLASS is not set + + # +-# DMA Engine support +-# +-# CONFIG_DMA_ENGINE is not set +- +-# +-# DMA Clients +-# +- +-# +-# DMA Devices +-# +- +-# +-# Auxiliary Display support +-# +- +-# +-# Virtualization ++# Userspace I/O + # ++# CONFIG_UIO is not set + + # + # File systems +@@ -823,15 +868,14 @@ CONFIG_FS_POSIX_ACL=y + # CONFIG_XFS_FS is not set + # CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set +-# CONFIG_MINIX_FS is not set +-# CONFIG_ROMFS_FS is not set ++CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y + CONFIG_INOTIFY_USER=y + # CONFIG_QUOTA is not set +-CONFIG_DNOTIFY=y + # CONFIG_AUTOFS_FS is not set + # CONFIG_AUTOFS4_FS is not set + CONFIG_FUSE_FS=m ++CONFIG_GENERIC_ACL=y + + # + # CD-ROM/DVD Filesystems +@@ -853,9 +897,9 @@ CONFIG_PROC_FS=y + CONFIG_PROC_KCORE=y + CONFIG_PROC_SYSCTL=y + CONFIG_SYSFS=y +-# CONFIG_TMPFS is not set ++CONFIG_TMPFS=y ++CONFIG_TMPFS_POSIX_ACL=y + # CONFIG_HUGETLB_PAGE is not set +-CONFIG_RAMFS=y + CONFIG_CONFIGFS_FS=m + + # +@@ -871,14 +915,13 @@ CONFIG_CONFIGFS_FS=m + # CONFIG_EFS_FS is not set + # CONFIG_CRAMFS is not set + # CONFIG_VXFS_FS is not set ++# CONFIG_MINIX_FS is not set + # CONFIG_HPFS_FS is not set + # CONFIG_QNX4FS_FS is not set ++# CONFIG_ROMFS_FS is not set + # CONFIG_SYSV_FS is not set + # CONFIG_UFS_FS is not set +- +-# +-# Network File Systems +-# ++CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set +@@ -890,6 +933,7 @@ CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y + CONFIG_NFS_COMMON=y + CONFIG_SUNRPC=y ++# CONFIG_SUNRPC_BIND34 is not set + # CONFIG_RPCSEC_GSS_KRB5 is not set + # CONFIG_RPCSEC_GSS_SPKM3 is not set + # CONFIG_SMB_FS is not set +@@ -897,45 +941,29 @@ CONFIG_SUNRPC=y + # CONFIG_NCP_FS is not set + # CONFIG_CODA_FS is not set + # CONFIG_AFS_FS is not set +-# CONFIG_9P_FS is not set + + # + # Partition Types + # + # CONFIG_PARTITION_ADVANCED is not set + CONFIG_MSDOS_PARTITION=y +- +-# +-# Native Language Support +-# + # CONFIG_NLS is not set +- +-# +-# Distributed Lock Manager +-# + CONFIG_DLM=m +-CONFIG_DLM_TCP=y +-# CONFIG_DLM_SCTP is not set + # CONFIG_DLM_DEBUG is not set + + # +-# Profiling support +-# +-# CONFIG_PROFILING is not set +- +-# + # Kernel hacking + # + CONFIG_TRACE_IRQFLAGS_SUPPORT=y + # CONFIG_PRINTK_TIME is not set ++CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set + # CONFIG_HEADERS_CHECK is not set + # CONFIG_DEBUG_KERNEL is not set +-CONFIG_LOG_BUF_SHIFT=15 +-CONFIG_CROSSCOMPILE=y ++# CONFIG_SAMPLES is not set + CONFIG_CMDLINE="" + CONFIG_SYS_SUPPORTS_KGDB=y + # CONFIG_SB1XXX_CORELIS is not set +@@ -946,13 +974,12 @@ CONFIG_SYS_SUPPORTS_KGDB=y + CONFIG_KEYS=y + CONFIG_KEYS_DEBUG_PROC_KEYS=y + # CONFIG_SECURITY is not set +- +-# +-# Cryptographic options +-# ++# CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y + CONFIG_CRYPTO_ALGAPI=y ++CONFIG_CRYPTO_AEAD=m + CONFIG_CRYPTO_BLKCIPHER=m ++CONFIG_CRYPTO_SEQIV=m + CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_MANAGER=y + CONFIG_CRYPTO_HMAC=y +@@ -970,6 +997,11 @@ CONFIG_CRYPTO_ECB=m + CONFIG_CRYPTO_CBC=m + CONFIG_CRYPTO_PCBC=m + CONFIG_CRYPTO_LRW=m ++CONFIG_CRYPTO_XTS=m ++CONFIG_CRYPTO_CTR=m ++CONFIG_CRYPTO_GCM=m ++CONFIG_CRYPTO_CCM=m ++CONFIG_CRYPTO_CRYPTD=m + CONFIG_CRYPTO_DES=m + CONFIG_CRYPTO_FCRYPT=m + CONFIG_CRYPTO_BLOWFISH=m +@@ -983,15 +1015,16 @@ CONFIG_CRYPTO_TEA=m + CONFIG_CRYPTO_ARC4=m + CONFIG_CRYPTO_KHAZAD=m + CONFIG_CRYPTO_ANUBIS=m ++CONFIG_CRYPTO_SEED=m ++CONFIG_CRYPTO_SALSA20=m + CONFIG_CRYPTO_DEFLATE=m + CONFIG_CRYPTO_MICHAEL_MIC=m + CONFIG_CRYPTO_CRC32C=m + CONFIG_CRYPTO_CAMELLIA=m + # CONFIG_CRYPTO_TEST is not set +- +-# +-# Hardware crypto devices +-# ++CONFIG_CRYPTO_AUTHENC=m ++CONFIG_CRYPTO_LZO=m ++# CONFIG_CRYPTO_HW is not set + + # + # Library routines +@@ -999,10 +1032,15 @@ CONFIG_CRYPTO_CAMELLIA=m + CONFIG_BITREVERSE=y + # CONFIG_CRC_CCITT is not set + CONFIG_CRC16=m ++# CONFIG_CRC_ITU_T is not set + CONFIG_CRC32=y ++# CONFIG_CRC7 is not set + CONFIG_LIBCRC32C=m + CONFIG_ZLIB_INFLATE=m + CONFIG_ZLIB_DEFLATE=m ++CONFIG_LZO_COMPRESS=m ++CONFIG_LZO_DECOMPRESS=m + CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y ++CONFIG_HAS_DMA=y +diff --git a/arch/mips/configs/tb0219_defconfig b/arch/mips/configs/tb0219_defconfig +index af82e1a..8dd3ae3 100644 +--- a/arch/mips/configs/tb0219_defconfig ++++ b/arch/mips/configs/tb0219_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.23-rc2 +-# Wed Aug 8 16:11:47 2007 ++# Linux kernel version: 2.6.26-rc1 ++# Mon May 12 11:54:51 2008 + # + CONFIG_MIPS=y + +@@ -10,9 +10,11 @@ CONFIG_MIPS=y + # + # CONFIG_MACH_ALCHEMY is not set + # CONFIG_BASLER_EXCITE is not set ++# CONFIG_BCM47XX is not set + # CONFIG_MIPS_COBALT is not set + # CONFIG_MACH_DECSTATION is not set + # CONFIG_MACH_JAZZ is not set ++# CONFIG_LASAT is not set + # CONFIG_LEMOTE_FULONG is not set + # CONFIG_MIPS_ATLAS is not set + # CONFIG_MIPS_MALTA is not set +@@ -26,6 +28,7 @@ CONFIG_MACH_VR41XX=y + # CONFIG_PMC_YOSEMITE is not set + # CONFIG_SGI_IP22 is not set + # CONFIG_SGI_IP27 is not set ++# CONFIG_SGI_IP28 is not set + # CONFIG_SGI_IP32 is not set + # CONFIG_SIBYTE_CRHINE is not set + # CONFIG_SIBYTE_CARMEL is not set +@@ -53,12 +56,17 @@ CONFIG_PCI_VR41XX=y + CONFIG_RWSEM_GENERIC_SPINLOCK=y + # CONFIG_ARCH_HAS_ILOG2_U32 is not set + # CONFIG_ARCH_HAS_ILOG2_U64 is not set ++CONFIG_ARCH_SUPPORTS_OPROFILE=y + CONFIG_GENERIC_FIND_NEXT_BIT=y + CONFIG_GENERIC_HWEIGHT=y + CONFIG_GENERIC_CALIBRATE_DELAY=y ++CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_TIME=y ++CONFIG_GENERIC_CMOS_UPDATE=y + CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y + CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y ++CONFIG_CEVT_R4K=y ++CONFIG_CSRC_R4K=y + CONFIG_DMA_NONCOHERENT=y + CONFIG_DMA_NEED_PCI_MAP_STATE=y + # CONFIG_HOTPLUG_CPU is not set +@@ -113,6 +121,7 @@ CONFIG_CPU_HAS_SYNC=y + CONFIG_GENERIC_HARDIRQS=y + CONFIG_GENERIC_IRQ_PROBE=y + CONFIG_ARCH_FLATMEM_ENABLE=y ++CONFIG_ARCH_POPULATES_NODE_MAP=y + CONFIG_SELECT_MEMORY_MODEL=y + CONFIG_FLATMEM_MANUAL=y + # CONFIG_DISCONTIGMEM_MANUAL is not set +@@ -120,10 +129,16 @@ CONFIG_FLATMEM_MANUAL=y + CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set ++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=0 + CONFIG_VIRT_TO_BUS=y ++# CONFIG_TICK_ONESHOT is not set ++# CONFIG_NO_HZ is not set ++# CONFIG_HIGH_RES_TIMERS is not set ++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + # CONFIG_HZ_48 is not set + # CONFIG_HZ_100 is not set + # CONFIG_HZ_128 is not set +@@ -156,23 +171,29 @@ CONFIG_SYSVIPC_SYSCTL=y + # CONFIG_POSIX_MQUEUE is not set + # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_TASKSTATS is not set +-# CONFIG_USER_NS is not set + # CONFIG_AUDIT is not set + # CONFIG_IKCONFIG is not set + CONFIG_LOG_BUF_SHIFT=14 ++# CONFIG_CGROUPS is not set ++# CONFIG_GROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y ++CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set ++# CONFIG_NAMESPACES is not set + # CONFIG_BLK_DEV_INITRD is not set + # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y + CONFIG_BUG=y + CONFIG_ELF_CORE=y ++# CONFIG_PCSPKR_PLATFORM is not set ++CONFIG_COMPAT_BRK=y + CONFIG_BASE_FULL=y + CONFIG_FUTEX=y + CONFIG_ANON_INODES=y +@@ -185,10 +206,19 @@ CONFIG_VM_EVENT_COUNTERS=y + CONFIG_SLAB=y + # CONFIG_SLUB is not set + # CONFIG_SLOB is not set ++# CONFIG_PROFILING is not set ++# CONFIG_MARKERS is not set ++CONFIG_HAVE_OPROFILE=y ++# CONFIG_HAVE_KPROBES is not set ++# CONFIG_HAVE_KRETPROBES is not set ++# CONFIG_HAVE_DMA_ATTRS is not set ++CONFIG_PROC_PAGE_MONITOR=y ++CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -212,18 +242,17 @@ CONFIG_DEFAULT_AS=y + # CONFIG_DEFAULT_CFQ is not set + # CONFIG_DEFAULT_NOOP is not set + CONFIG_DEFAULT_IOSCHED="anticipatory" ++CONFIG_CLASSIC_RCU=y + + # + # Bus options (PCI, PCMCIA, EISA, ISA, TC) + # + CONFIG_HW_HAS_PCI=y + CONFIG_PCI=y ++CONFIG_PCI_DOMAINS=y + # CONFIG_ARCH_SUPPORTS_MSI is not set ++CONFIG_PCI_LEGACY=y + CONFIG_MMU=y +- +-# +-# PCCARD (PCMCIA/CardBus) support +-# + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set + +@@ -237,6 +266,7 @@ CONFIG_TRAD_SIGNALS=y + # + # Power management options + # ++CONFIG_ARCH_SUSPEND_POSSIBLE=y + # CONFIG_PM is not set + + # +@@ -278,6 +308,7 @@ CONFIG_INET_TUNNEL=m + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set + # CONFIG_INET_XFRM_MODE_TUNNEL is not set + # CONFIG_INET_XFRM_MODE_BEET is not set ++# CONFIG_INET_LRO is not set + CONFIG_INET_DIAG=y + CONFIG_INET_TCP_DIAG=y + # CONFIG_TCP_CONG_ADVANCED is not set +@@ -285,15 +316,10 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + CONFIG_NETWORK_SECMARK=y + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set + # CONFIG_IP_SCTP is not set +-# CONFIG_SCTP_HMAC_NONE is not set +-# CONFIG_SCTP_HMAC_SHA1 is not set +-# CONFIG_SCTP_HMAC_MD5 is not set + # CONFIG_TIPC is not set + # CONFIG_ATM is not set + # CONFIG_BRIDGE is not set +@@ -306,10 +332,6 @@ CONFIG_NETWORK_SECMARK=y + # CONFIG_LAPB is not set + # CONFIG_ECONET is not set + # CONFIG_WAN_ROUTER is not set +- +-# +-# QoS and/or fair queueing +-# + # CONFIG_NET_SCHED is not set + + # +@@ -317,6 +339,7 @@ CONFIG_NETWORK_SECMARK=y + # + # CONFIG_NET_PKTGEN is not set + # CONFIG_HAMRADIO is not set ++# CONFIG_CAN is not set + # CONFIG_IRDA is not set + # CONFIG_BT is not set + # CONFIG_AF_RXRPC is not set +@@ -339,6 +362,7 @@ CONFIG_FIB_RULES=y + # + # Generic Driver Options + # ++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" + CONFIG_STANDALONE=y + CONFIG_PREVENT_FIRMWARE_BUILD=y + CONFIG_FW_LOADER=m +@@ -360,10 +384,11 @@ CONFIG_BLK_DEV_NBD=m + CONFIG_BLK_DEV_RAM=y + CONFIG_BLK_DEV_RAM_COUNT=16 + CONFIG_BLK_DEV_RAM_SIZE=4096 +-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 ++CONFIG_BLK_DEV_XIP=y + # CONFIG_CDROM_PKTCDVD is not set + # CONFIG_ATA_OVER_ETH is not set + # CONFIG_MISC_DEVICES is not set ++CONFIG_HAVE_IDE=y + # CONFIG_IDE is not set + + # +@@ -375,10 +400,6 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 + # CONFIG_SCSI_NETLINK is not set + # CONFIG_ATA is not set + # CONFIG_MD is not set +- +-# +-# Fusion MPT device support +-# + # CONFIG_FUSION is not set + + # +@@ -394,6 +415,7 @@ CONFIG_NETDEVICES=y + # CONFIG_MACVLAN is not set + # CONFIG_EQUALIZER is not set + # CONFIG_TUN is not set ++# CONFIG_VETH is not set + # CONFIG_ARCNET is not set + CONFIG_PHYLIB=m + +@@ -409,7 +431,8 @@ CONFIG_VITESSE_PHY=m + CONFIG_SMSC_PHY=m + # CONFIG_BROADCOM_PHY is not set + # CONFIG_ICPLUS_PHY is not set +-# CONFIG_FIXED_PHY is not set ++# CONFIG_REALTEK_PHY is not set ++# CONFIG_MDIO_BITBANG is not set + CONFIG_NET_ETHERNET=y + CONFIG_MII=y + # CONFIG_AX88796 is not set +@@ -420,6 +443,10 @@ CONFIG_MII=y + # CONFIG_DM9000 is not set + # CONFIG_NET_TULIP is not set + # CONFIG_HP100 is not set ++# CONFIG_IBM_NEW_EMAC_ZMII is not set ++# CONFIG_IBM_NEW_EMAC_RGMII is not set ++# CONFIG_IBM_NEW_EMAC_TAH is not set ++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set + CONFIG_NET_PCI=y + # CONFIG_PCNET32 is not set + # CONFIG_AMD8111_ETH is not set +@@ -427,7 +454,6 @@ CONFIG_NET_PCI=y + # CONFIG_B44 is not set + # CONFIG_FORCEDETH is not set + # CONFIG_TC35815 is not set +-# CONFIG_DGRS is not set + # CONFIG_EEPRO100 is not set + # CONFIG_E100 is not set + # CONFIG_FEALNX is not set +@@ -439,6 +465,7 @@ CONFIG_8139TOO_PIO=y + # CONFIG_8139TOO_TUNE_TWISTER is not set + # CONFIG_8139TOO_8129 is not set + # CONFIG_8139_OLD_RX_RESET is not set ++# CONFIG_R6040 is not set + # CONFIG_SIS900 is not set + # CONFIG_EPIC100 is not set + # CONFIG_SUNDANCE is not set +@@ -451,6 +478,10 @@ CONFIG_NETDEV_1000=y + # CONFIG_ACENIC is not set + # CONFIG_DL2K is not set + # CONFIG_E1000 is not set ++# CONFIG_E1000E is not set ++# CONFIG_E1000E_ENABLED is not set ++# CONFIG_IP1000 is not set ++# CONFIG_IGB is not set + # CONFIG_NS83820 is not set + # CONFIG_HAMACHI is not set + # CONFIG_YELLOWFIN is not set +@@ -472,6 +503,7 @@ CONFIG_VIA_VELOCITY=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -480,14 +512,12 @@ CONFIG_VIA_VELOCITY=y + # CONFIG_USB_KAWETH is not set + # CONFIG_USB_PEGASUS is not set + # CONFIG_USB_RTL8150 is not set +-# CONFIG_USB_USBNET_MII is not set + # CONFIG_USB_USBNET 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 + # CONFIG_NETPOLL is not set + # CONFIG_NET_POLL_CONTROLLER is not set +@@ -506,7 +536,6 @@ CONFIG_INPUT=y + # + # CONFIG_INPUT_MOUSEDEV is not set + # CONFIG_INPUT_JOYDEV is not set +-# CONFIG_INPUT_TSDEV is not set + # CONFIG_INPUT_EVDEV is not set + # CONFIG_INPUT_EVBUG is not set + +@@ -533,7 +562,9 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + CONFIG_VT_HW_CONSOLE_BINDING=y ++# CONFIG_DEVKMEM is not set + # CONFIG_SERIAL_NONSTANDARD is not set ++# CONFIG_NOZOMI is not set + + # + # Serial drivers +@@ -552,52 +583,62 @@ CONFIG_UNIX98_PTYS=y + CONFIG_LEGACY_PTYS=y + CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set +-# CONFIG_WATCHDOG is not set + # CONFIG_HW_RANDOM is not set +-# CONFIG_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + CONFIG_GPIO_TB0219=y +-# CONFIG_DRM is not set + CONFIG_GPIO_VR41XX=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set ++# CONFIG_THERMAL is not set ++# CONFIG_WATCHDOG is not set ++ ++# ++# Sonics Silicon Backplane ++# ++CONFIG_SSB_POSSIBLE=y ++# CONFIG_SSB is not set + + # + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++ ++# ++# Multimedia drivers ++# + # CONFIG_DAB is not set + + # + # Graphics support + # ++# CONFIG_DRM is not set ++# CONFIG_VGASTATE is not set ++# CONFIG_VIDEO_OUTPUT_CONTROL is not set ++# CONFIG_FB is not set + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set + + # + # Display device support + # + # CONFIG_DISPLAY_SUPPORT is not set +-# CONFIG_VGASTATE is not set +-# CONFIG_VIDEO_OUTPUT_CONTROL is not set +-# CONFIG_FB is not set + + # + # Console display driver support +@@ -616,6 +657,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + CONFIG_USB=m + # CONFIG_USB_DEBUG is not set ++# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + + # + # Miscellaneous USB options +@@ -624,15 +666,18 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=m +-# CONFIG_USB_EHCI_SPLIT_ISO is not set + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=m + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set + # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +@@ -665,10 +710,6 @@ CONFIG_USB_MON=y + # + # USB port drivers + # +- +-# +-# USB Serial Converter support +-# + # CONFIG_USB_SERIAL is not set + + # +@@ -694,17 +735,11 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set +- +-# +-# USB DSL modem support +-# +- +-# +-# USB Gadget Support +-# + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set ++# CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + CONFIG_RTC_LIB=y + CONFIG_RTC_CLASS=y +@@ -729,9 +764,10 @@ CONFIG_RTC_INTF_DEV=y + # Platform RTC drivers + # + # CONFIG_RTC_DRV_CMOS is not set ++# CONFIG_RTC_DRV_DS1511 is not set + # CONFIG_RTC_DRV_DS1553 is not set +-# CONFIG_RTC_DRV_STK17TA8 is not set + # CONFIG_RTC_DRV_DS1742 is not set ++# CONFIG_RTC_DRV_STK17TA8 is not set + # CONFIG_RTC_DRV_M48T86 is not set + # CONFIG_RTC_DRV_M48T59 is not set + # CONFIG_RTC_DRV_V3020 is not set +@@ -740,23 +776,6 @@ CONFIG_RTC_INTF_DEV=y + # on-CPU RTC drivers + # + CONFIG_RTC_DRV_VR41XX=y +- +-# +-# DMA Engine support +-# +-# CONFIG_DMA_ENGINE is not set +- +-# +-# DMA Clients +-# +- +-# +-# DMA Devices +-# +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -771,20 +790,16 @@ CONFIG_EXT3_FS_XATTR=y + # CONFIG_EXT3_FS_SECURITY is not set + # CONFIG_EXT4DEV_FS is not set + CONFIG_JBD=y +-# CONFIG_JBD_DEBUG is not set + CONFIG_FS_MBCACHE=y + # CONFIG_REISERFS_FS is not set + # CONFIG_JFS_FS is not set + CONFIG_FS_POSIX_ACL=y + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set +-# CONFIG_MINIX_FS is not set +-CONFIG_ROMFS_FS=m ++CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y + CONFIG_INOTIFY_USER=y + # CONFIG_QUOTA is not set +-CONFIG_DNOTIFY=y + # CONFIG_AUTOFS_FS is not set + CONFIG_AUTOFS4_FS=y + # CONFIG_FUSE_FS is not set +@@ -813,7 +828,6 @@ CONFIG_SYSFS=y + CONFIG_TMPFS=y + CONFIG_TMPFS_POSIX_ACL=y + # CONFIG_HUGETLB_PAGE is not set +-CONFIG_RAMFS=y + # CONFIG_CONFIGFS_FS is not set + + # +@@ -828,24 +842,21 @@ CONFIG_RAMFS=y + # CONFIG_EFS_FS is not set + CONFIG_CRAMFS=m + # CONFIG_VXFS_FS is not set ++# CONFIG_MINIX_FS is not set + # CONFIG_HPFS_FS is not set + # CONFIG_QNX4FS_FS is not set ++CONFIG_ROMFS_FS=m + # CONFIG_SYSV_FS is not set + # CONFIG_UFS_FS is not set +- +-# +-# Network File Systems +-# ++CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=y + CONFIG_NFSD_V3=y + # CONFIG_NFSD_V3_ACL is not set + # CONFIG_NFSD_V4 is not set +-CONFIG_NFSD_TCP=y + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -866,47 +877,38 @@ CONFIG_SUNRPC=y + # + # CONFIG_PARTITION_ADVANCED is not set + CONFIG_MSDOS_PARTITION=y +- +-# +-# Native Language Support +-# + # CONFIG_NLS is not set +- +-# +-# Distributed Lock Manager +-# + # CONFIG_DLM is not set + + # +-# Profiling support +-# +-# CONFIG_PROFILING is not set +- +-# + # Kernel hacking + # + CONFIG_TRACE_IRQFLAGS_SUPPORT=y + # CONFIG_PRINTK_TIME is not set ++CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set + # CONFIG_HEADERS_CHECK is not set + # CONFIG_DEBUG_KERNEL is not set +-CONFIG_CROSSCOMPILE=y +-CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" ++# CONFIG_SAMPLES is not set ++CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" + + # + # Security options + # + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set ++# CONFIG_SECURITY_FILE_CAPABILITIES is not set + # CONFIG_CRYPTO is not set + + # + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=y + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig +index a95385b..2ba240e 100644 +--- a/arch/mips/configs/tb0226_defconfig ++++ b/arch/mips/configs/tb0226_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.23-rc2 +-# Thu Aug 9 11:16:55 2007 ++# Linux kernel version: 2.6.26-rc1 ++# Mon May 12 11:53:54 2008 + # + CONFIG_MIPS=y + +@@ -10,9 +10,11 @@ CONFIG_MIPS=y + # + # CONFIG_MACH_ALCHEMY is not set + # CONFIG_BASLER_EXCITE is not set ++# CONFIG_BCM47XX is not set + # CONFIG_MIPS_COBALT is not set + # CONFIG_MACH_DECSTATION is not set + # CONFIG_MACH_JAZZ is not set ++# CONFIG_LASAT is not set + # CONFIG_LEMOTE_FULONG is not set + # CONFIG_MIPS_ATLAS is not set + # CONFIG_MIPS_MALTA is not set +@@ -26,6 +28,7 @@ CONFIG_MACH_VR41XX=y + # CONFIG_PMC_YOSEMITE is not set + # CONFIG_SGI_IP22 is not set + # CONFIG_SGI_IP27 is not set ++# CONFIG_SGI_IP28 is not set + # CONFIG_SGI_IP32 is not set + # CONFIG_SIBYTE_CRHINE is not set + # CONFIG_SIBYTE_CARMEL is not set +@@ -53,12 +56,17 @@ CONFIG_PCI_VR41XX=y + CONFIG_RWSEM_GENERIC_SPINLOCK=y + # CONFIG_ARCH_HAS_ILOG2_U32 is not set + # CONFIG_ARCH_HAS_ILOG2_U64 is not set ++CONFIG_ARCH_SUPPORTS_OPROFILE=y + CONFIG_GENERIC_FIND_NEXT_BIT=y + CONFIG_GENERIC_HWEIGHT=y + CONFIG_GENERIC_CALIBRATE_DELAY=y ++CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_TIME=y ++CONFIG_GENERIC_CMOS_UPDATE=y + CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y + CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y ++CONFIG_CEVT_R4K=y ++CONFIG_CSRC_R4K=y + CONFIG_DMA_NONCOHERENT=y + CONFIG_DMA_NEED_PCI_MAP_STATE=y + # CONFIG_HOTPLUG_CPU is not set +@@ -113,6 +121,7 @@ CONFIG_CPU_HAS_SYNC=y + CONFIG_GENERIC_HARDIRQS=y + CONFIG_GENERIC_IRQ_PROBE=y + CONFIG_ARCH_FLATMEM_ENABLE=y ++CONFIG_ARCH_POPULATES_NODE_MAP=y + CONFIG_SELECT_MEMORY_MODEL=y + CONFIG_FLATMEM_MANUAL=y + # CONFIG_DISCONTIGMEM_MANUAL is not set +@@ -120,10 +129,16 @@ CONFIG_FLATMEM_MANUAL=y + CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set ++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=0 + CONFIG_VIRT_TO_BUS=y ++# CONFIG_TICK_ONESHOT is not set ++# CONFIG_NO_HZ is not set ++# CONFIG_HIGH_RES_TIMERS is not set ++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + # CONFIG_HZ_48 is not set + # CONFIG_HZ_100 is not set + # CONFIG_HZ_128 is not set +@@ -156,23 +171,29 @@ CONFIG_SYSVIPC_SYSCTL=y + # CONFIG_POSIX_MQUEUE is not set + # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_TASKSTATS is not set +-# CONFIG_USER_NS is not set + # CONFIG_AUDIT is not set + # CONFIG_IKCONFIG is not set + CONFIG_LOG_BUF_SHIFT=14 ++# CONFIG_CGROUPS is not set ++# CONFIG_GROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y ++CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set ++# CONFIG_NAMESPACES is not set + # CONFIG_BLK_DEV_INITRD is not set + # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y + CONFIG_BUG=y + CONFIG_ELF_CORE=y ++# CONFIG_PCSPKR_PLATFORM is not set ++CONFIG_COMPAT_BRK=y + CONFIG_BASE_FULL=y + CONFIG_FUTEX=y + CONFIG_ANON_INODES=y +@@ -185,10 +206,19 @@ CONFIG_VM_EVENT_COUNTERS=y + CONFIG_SLAB=y + # CONFIG_SLUB is not set + # CONFIG_SLOB is not set ++# CONFIG_PROFILING is not set ++# CONFIG_MARKERS is not set ++CONFIG_HAVE_OPROFILE=y ++# CONFIG_HAVE_KPROBES is not set ++# CONFIG_HAVE_KRETPROBES is not set ++# CONFIG_HAVE_DMA_ATTRS is not set ++CONFIG_PROC_PAGE_MONITOR=y ++CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -212,18 +242,17 @@ CONFIG_DEFAULT_AS=y + # CONFIG_DEFAULT_CFQ is not set + # CONFIG_DEFAULT_NOOP is not set + CONFIG_DEFAULT_IOSCHED="anticipatory" ++CONFIG_CLASSIC_RCU=y + + # + # Bus options (PCI, PCMCIA, EISA, ISA, TC) + # + CONFIG_HW_HAS_PCI=y + CONFIG_PCI=y ++CONFIG_PCI_DOMAINS=y + # CONFIG_ARCH_SUPPORTS_MSI is not set ++CONFIG_PCI_LEGACY=y + CONFIG_MMU=y +- +-# +-# PCCARD (PCMCIA/CardBus) support +-# + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set + +@@ -237,6 +266,7 @@ CONFIG_TRAD_SIGNALS=y + # + # Power management options + # ++CONFIG_ARCH_SUSPEND_POSSIBLE=y + # CONFIG_PM is not set + + # +@@ -277,6 +307,7 @@ CONFIG_SYN_COOKIES=y + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set + # CONFIG_INET_XFRM_MODE_TUNNEL is not set + # CONFIG_INET_XFRM_MODE_BEET is not set ++# CONFIG_INET_LRO is not set + CONFIG_INET_DIAG=y + CONFIG_INET_TCP_DIAG=y + # CONFIG_TCP_CONG_ADVANCED is not set +@@ -284,15 +315,10 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + CONFIG_NETWORK_SECMARK=y + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set + # CONFIG_IP_SCTP is not set +-# CONFIG_SCTP_HMAC_NONE is not set +-# CONFIG_SCTP_HMAC_SHA1 is not set +-# CONFIG_SCTP_HMAC_MD5 is not set + # CONFIG_TIPC is not set + # CONFIG_ATM is not set + # CONFIG_BRIDGE is not set +@@ -305,10 +331,6 @@ CONFIG_NETWORK_SECMARK=y + # CONFIG_LAPB is not set + # CONFIG_ECONET is not set + # CONFIG_WAN_ROUTER is not set +- +-# +-# QoS and/or fair queueing +-# + # CONFIG_NET_SCHED is not set + + # +@@ -316,6 +338,7 @@ CONFIG_NETWORK_SECMARK=y + # + # CONFIG_NET_PKTGEN is not set + # CONFIG_HAMRADIO is not set ++# CONFIG_CAN is not set + # CONFIG_IRDA is not set + # CONFIG_BT is not set + # CONFIG_AF_RXRPC is not set +@@ -338,6 +361,7 @@ CONFIG_FIB_RULES=y + # + # Generic Driver Options + # ++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" + CONFIG_STANDALONE=y + CONFIG_PREVENT_FIRMWARE_BUILD=y + CONFIG_FW_LOADER=y +@@ -359,10 +383,11 @@ CONFIG_BLK_DEV_NBD=m + CONFIG_BLK_DEV_RAM=y + CONFIG_BLK_DEV_RAM_COUNT=16 + CONFIG_BLK_DEV_RAM_SIZE=4096 +-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 ++CONFIG_BLK_DEV_XIP=y + # CONFIG_CDROM_PKTCDVD is not set + # CONFIG_ATA_OVER_ETH is not set + # CONFIG_MISC_DEVICES is not set ++CONFIG_HAVE_IDE=y + # CONFIG_IDE is not set + + # +@@ -402,18 +427,13 @@ CONFIG_SCSI_WAIT_SCAN=m + # CONFIG_SCSI_ISCSI_ATTRS is not set + CONFIG_SCSI_SAS_ATTRS=m + CONFIG_SCSI_SAS_LIBSAS=m ++CONFIG_SCSI_SAS_HOST_SMP=y + # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set ++# CONFIG_SCSI_SRP_ATTRS is not set + # CONFIG_SCSI_LOWLEVEL is not set + # CONFIG_ATA is not set + # CONFIG_MD is not set +- +-# +-# Fusion MPT device support +-# + # CONFIG_FUSION is not set +-# CONFIG_FUSION_SPI is not set +-# CONFIG_FUSION_FC is not set +-# CONFIG_FUSION_SAS is not set + + # + # IEEE 1394 (FireWire) support +@@ -428,6 +448,7 @@ CONFIG_NETDEVICES=y + # CONFIG_MACVLAN is not set + # CONFIG_EQUALIZER is not set + # CONFIG_TUN is not set ++# CONFIG_VETH is not set + # CONFIG_ARCNET is not set + # CONFIG_PHYLIB is not set + CONFIG_NET_ETHERNET=y +@@ -440,6 +461,10 @@ CONFIG_MII=y + # CONFIG_DM9000 is not set + # CONFIG_NET_TULIP is not set + # CONFIG_HP100 is not set ++# CONFIG_IBM_NEW_EMAC_ZMII is not set ++# CONFIG_IBM_NEW_EMAC_RGMII is not set ++# CONFIG_IBM_NEW_EMAC_TAH is not set ++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set + CONFIG_NET_PCI=y + # CONFIG_PCNET32 is not set + # CONFIG_AMD8111_ETH is not set +@@ -447,7 +472,6 @@ CONFIG_NET_PCI=y + # CONFIG_B44 is not set + # CONFIG_FORCEDETH is not set + # CONFIG_TC35815 is not set +-# CONFIG_DGRS is not set + # CONFIG_EEPRO100 is not set + CONFIG_E100=y + # CONFIG_FEALNX is not set +@@ -455,6 +479,7 @@ CONFIG_E100=y + # CONFIG_NE2K_PCI is not set + # CONFIG_8139CP is not set + # CONFIG_8139TOO is not set ++# CONFIG_R6040 is not set + # CONFIG_SIS900 is not set + # CONFIG_EPIC100 is not set + # CONFIG_SUNDANCE is not set +@@ -470,6 +495,7 @@ CONFIG_E100=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -478,7 +504,6 @@ CONFIG_USB_CATC=m + CONFIG_USB_KAWETH=m + CONFIG_USB_PEGASUS=m + CONFIG_USB_RTL8150=m +-# CONFIG_USB_USBNET_MII is not set + # CONFIG_USB_USBNET is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set +@@ -486,7 +511,6 @@ CONFIG_USB_RTL8150=m + # CONFIG_PPP is not set + # CONFIG_SLIP is not set + # CONFIG_NET_FC is not set +-# CONFIG_SHAPER is not set + # CONFIG_NETCONSOLE is not set + # CONFIG_NETPOLL is not set + # CONFIG_NET_POLL_CONTROLLER is not set +@@ -505,7 +529,6 @@ CONFIG_INPUT=y + # + # CONFIG_INPUT_MOUSEDEV is not set + # CONFIG_INPUT_JOYDEV is not set +-# CONFIG_INPUT_TSDEV is not set + # CONFIG_INPUT_EVDEV is not set + # CONFIG_INPUT_EVBUG is not set + +@@ -532,7 +555,9 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + CONFIG_VT_HW_CONSOLE_BINDING=y ++# CONFIG_DEVKMEM is not set + # CONFIG_SERIAL_NONSTANDARD is not set ++# CONFIG_NOZOMI is not set + + # + # Serial drivers +@@ -551,52 +576,62 @@ CONFIG_UNIX98_PTYS=y + CONFIG_LEGACY_PTYS=y + CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set +-# CONFIG_WATCHDOG is not set + # CONFIG_HW_RANDOM is not set +-# CONFIG_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_GPIO_TB0219 is not set +-# CONFIG_DRM is not set + CONFIG_GPIO_VR41XX=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set ++# CONFIG_THERMAL is not set ++# CONFIG_WATCHDOG is not set ++ ++# ++# Sonics Silicon Backplane ++# ++CONFIG_SSB_POSSIBLE=y ++# CONFIG_SSB is not set + + # + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++ ++# ++# Multimedia drivers ++# + # CONFIG_DAB is not set + + # + # Graphics support + # ++# CONFIG_DRM is not set ++# CONFIG_VGASTATE is not set ++# CONFIG_VIDEO_OUTPUT_CONTROL is not set ++# CONFIG_FB is not set + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set + + # + # Display device support + # + # CONFIG_DISPLAY_SUPPORT is not set +-# CONFIG_VGASTATE is not set +-# CONFIG_VIDEO_OUTPUT_CONTROL is not set +-# CONFIG_FB is not set + + # + # Console display driver support +@@ -615,6 +650,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + CONFIG_USB=y + # CONFIG_USB_DEBUG is not set ++# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + + # + # Miscellaneous USB options +@@ -623,15 +659,18 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y +-# CONFIG_USB_EHCI_SPLIT_ISO is not set + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set + # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +@@ -657,13 +696,16 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_DEBUG is not set + # CONFIG_USB_STORAGE_DATAFAB is not set + # CONFIG_USB_STORAGE_FREECOM is not set ++# CONFIG_USB_STORAGE_ISD200 is not set + # CONFIG_USB_STORAGE_DPCM is not set + # CONFIG_USB_STORAGE_USBAT is not set + # CONFIG_USB_STORAGE_SDDR09 is not set + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -676,10 +718,6 @@ CONFIG_USB_STORAGE=y + # + # USB port drivers + # +- +-# +-# USB Serial Converter support +-# + # CONFIG_USB_SERIAL is not set + + # +@@ -705,17 +743,11 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set +- +-# +-# USB DSL modem support +-# +- +-# +-# USB Gadget Support +-# + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set ++# CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + CONFIG_RTC_LIB=y + CONFIG_RTC_CLASS=y +@@ -740,9 +772,10 @@ CONFIG_RTC_INTF_DEV=y + # Platform RTC drivers + # + # CONFIG_RTC_DRV_CMOS is not set ++# CONFIG_RTC_DRV_DS1511 is not set + # CONFIG_RTC_DRV_DS1553 is not set +-# CONFIG_RTC_DRV_STK17TA8 is not set + # CONFIG_RTC_DRV_DS1742 is not set ++# CONFIG_RTC_DRV_STK17TA8 is not set + # CONFIG_RTC_DRV_M48T86 is not set + # CONFIG_RTC_DRV_M48T59 is not set + # CONFIG_RTC_DRV_V3020 is not set +@@ -751,23 +784,6 @@ CONFIG_RTC_INTF_DEV=y + # on-CPU RTC drivers + # + CONFIG_RTC_DRV_VR41XX=y +- +-# +-# DMA Engine support +-# +-# CONFIG_DMA_ENGINE is not set +- +-# +-# DMA Clients +-# +- +-# +-# DMA Devices +-# +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -782,14 +798,11 @@ CONFIG_EXT2_FS=y + # CONFIG_JFS_FS is not set + CONFIG_FS_POSIX_ACL=y + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set +-# CONFIG_MINIX_FS is not set +-CONFIG_ROMFS_FS=m ++CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y + CONFIG_INOTIFY_USER=y + # CONFIG_QUOTA is not set +-CONFIG_DNOTIFY=y + # CONFIG_AUTOFS_FS is not set + CONFIG_AUTOFS4_FS=y + # CONFIG_FUSE_FS is not set +@@ -818,7 +831,6 @@ CONFIG_SYSFS=y + CONFIG_TMPFS=y + CONFIG_TMPFS_POSIX_ACL=y + # CONFIG_HUGETLB_PAGE is not set +-CONFIG_RAMFS=y + # CONFIG_CONFIGFS_FS is not set + + # +@@ -833,24 +845,21 @@ CONFIG_RAMFS=y + # CONFIG_EFS_FS is not set + CONFIG_CRAMFS=m + # CONFIG_VXFS_FS is not set ++# CONFIG_MINIX_FS is not set + # CONFIG_HPFS_FS is not set + # CONFIG_QNX4FS_FS is not set ++CONFIG_ROMFS_FS=m + # CONFIG_SYSV_FS is not set + # CONFIG_UFS_FS is not set +- +-# +-# Network File Systems +-# ++CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=m + CONFIG_NFSD_V3=y + # CONFIG_NFSD_V3_ACL is not set + # CONFIG_NFSD_V4 is not set +-# CONFIG_NFSD_TCP is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -871,47 +880,38 @@ CONFIG_SUNRPC=y + # + # CONFIG_PARTITION_ADVANCED is not set + CONFIG_MSDOS_PARTITION=y +- +-# +-# Native Language Support +-# + # CONFIG_NLS is not set +- +-# +-# Distributed Lock Manager +-# + # CONFIG_DLM is not set + + # +-# Profiling support +-# +-# CONFIG_PROFILING is not set +- +-# + # Kernel hacking + # + CONFIG_TRACE_IRQFLAGS_SUPPORT=y + # CONFIG_PRINTK_TIME is not set ++CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set + # CONFIG_HEADERS_CHECK is not set + # CONFIG_DEBUG_KERNEL is not set +-CONFIG_CROSSCOMPILE=y +-CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" ++# CONFIG_SAMPLES is not set ++CONFIG_CMDLINE="cca=3 mem=32M console=ttyVR0,115200" + + # + # Security options + # + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set ++# CONFIG_SECURITY_FILE_CAPABILITIES is not set + # CONFIG_CRYPTO is not set + + # + # Library routines + # + CONFIG_BITREVERSE=m ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig +index 40d4a40..a5d0f3c 100644 +--- a/arch/mips/configs/tb0287_defconfig ++++ b/arch/mips/configs/tb0287_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.23-rc2 +-# Thu Aug 9 14:03:54 2007 ++# Linux kernel version: 2.6.26-rc1 ++# Mon May 12 11:55:55 2008 + # + CONFIG_MIPS=y + +@@ -10,9 +10,11 @@ CONFIG_MIPS=y + # + # CONFIG_MACH_ALCHEMY is not set + # CONFIG_BASLER_EXCITE is not set ++# CONFIG_BCM47XX is not set + # CONFIG_MIPS_COBALT is not set + # CONFIG_MACH_DECSTATION is not set + # CONFIG_MACH_JAZZ is not set ++# CONFIG_LASAT is not set + # CONFIG_LEMOTE_FULONG is not set + # CONFIG_MIPS_ATLAS is not set + # CONFIG_MIPS_MALTA is not set +@@ -26,6 +28,7 @@ CONFIG_MACH_VR41XX=y + # CONFIG_PMC_YOSEMITE is not set + # CONFIG_SGI_IP22 is not set + # CONFIG_SGI_IP27 is not set ++# CONFIG_SGI_IP28 is not set + # CONFIG_SGI_IP32 is not set + # CONFIG_SIBYTE_CRHINE is not set + # CONFIG_SIBYTE_CARMEL is not set +@@ -53,12 +56,17 @@ CONFIG_PCI_VR41XX=y + CONFIG_RWSEM_GENERIC_SPINLOCK=y + # CONFIG_ARCH_HAS_ILOG2_U32 is not set + # CONFIG_ARCH_HAS_ILOG2_U64 is not set ++CONFIG_ARCH_SUPPORTS_OPROFILE=y + CONFIG_GENERIC_FIND_NEXT_BIT=y + CONFIG_GENERIC_HWEIGHT=y + CONFIG_GENERIC_CALIBRATE_DELAY=y ++CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_TIME=y ++CONFIG_GENERIC_CMOS_UPDATE=y + CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y + CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y ++CONFIG_CEVT_R4K=y ++CONFIG_CSRC_R4K=y + CONFIG_DMA_NONCOHERENT=y + CONFIG_DMA_NEED_PCI_MAP_STATE=y + # CONFIG_HOTPLUG_CPU is not set +@@ -113,6 +121,7 @@ CONFIG_CPU_HAS_SYNC=y + CONFIG_GENERIC_HARDIRQS=y + CONFIG_GENERIC_IRQ_PROBE=y + CONFIG_ARCH_FLATMEM_ENABLE=y ++CONFIG_ARCH_POPULATES_NODE_MAP=y + CONFIG_SELECT_MEMORY_MODEL=y + CONFIG_FLATMEM_MANUAL=y + # CONFIG_DISCONTIGMEM_MANUAL is not set +@@ -120,10 +129,16 @@ CONFIG_FLATMEM_MANUAL=y + CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set ++# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=0 + CONFIG_VIRT_TO_BUS=y ++# CONFIG_TICK_ONESHOT is not set ++# CONFIG_NO_HZ is not set ++# CONFIG_HIGH_RES_TIMERS is not set ++CONFIG_GENERIC_CLOCKEVENTS_BUILD=y + # CONFIG_HZ_48 is not set + # CONFIG_HZ_100 is not set + # CONFIG_HZ_128 is not set +@@ -156,12 +171,15 @@ CONFIG_SYSVIPC_SYSCTL=y + # CONFIG_POSIX_MQUEUE is not set + # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_TASKSTATS is not set +-# CONFIG_USER_NS is not set + # CONFIG_AUDIT is not set + # CONFIG_IKCONFIG is not set + CONFIG_LOG_BUF_SHIFT=14 ++# CONFIG_CGROUPS is not set ++# CONFIG_GROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y ++CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set ++# CONFIG_NAMESPACES is not set + # CONFIG_BLK_DEV_INITRD is not set + # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set + CONFIG_SYSCTL=y +@@ -173,6 +191,8 @@ CONFIG_HOTPLUG=y + CONFIG_PRINTK=y + CONFIG_BUG=y + CONFIG_ELF_CORE=y ++# CONFIG_PCSPKR_PLATFORM is not set ++CONFIG_COMPAT_BRK=y + CONFIG_BASE_FULL=y + CONFIG_FUTEX=y + CONFIG_ANON_INODES=y +@@ -185,10 +205,19 @@ CONFIG_VM_EVENT_COUNTERS=y + CONFIG_SLAB=y + # CONFIG_SLUB is not set + # CONFIG_SLOB is not set ++# CONFIG_PROFILING is not set ++# CONFIG_MARKERS is not set ++CONFIG_HAVE_OPROFILE=y ++# CONFIG_HAVE_KPROBES is not set ++# CONFIG_HAVE_KRETPROBES is not set ++# CONFIG_HAVE_DMA_ATTRS is not set ++CONFIG_PROC_PAGE_MONITOR=y ++CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -212,18 +241,17 @@ CONFIG_DEFAULT_AS=y + # CONFIG_DEFAULT_CFQ is not set + # CONFIG_DEFAULT_NOOP is not set + CONFIG_DEFAULT_IOSCHED="anticipatory" ++CONFIG_CLASSIC_RCU=y + + # + # Bus options (PCI, PCMCIA, EISA, ISA, TC) + # + CONFIG_HW_HAS_PCI=y + CONFIG_PCI=y ++CONFIG_PCI_DOMAINS=y + # CONFIG_ARCH_SUPPORTS_MSI is not set ++CONFIG_PCI_LEGACY=y + CONFIG_MMU=y +- +-# +-# PCCARD (PCMCIA/CardBus) support +-# + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set + +@@ -237,6 +265,7 @@ CONFIG_TRAD_SIGNALS=y + # + # Power management options + # ++CONFIG_ARCH_SUSPEND_POSSIBLE=y + # CONFIG_PM is not set + + # +@@ -278,6 +307,7 @@ CONFIG_INET_TUNNEL=m + # CONFIG_INET_XFRM_MODE_TRANSPORT is not set + # CONFIG_INET_XFRM_MODE_TUNNEL is not set + # CONFIG_INET_XFRM_MODE_BEET is not set ++# CONFIG_INET_LRO is not set + CONFIG_INET_DIAG=y + CONFIG_INET_TCP_DIAG=y + CONFIG_TCP_CONG_ADVANCED=y +@@ -302,8 +332,6 @@ CONFIG_DEFAULT_BIC=y + CONFIG_DEFAULT_TCP_CONG="bic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + CONFIG_NETWORK_SECMARK=y + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -320,10 +348,6 @@ CONFIG_NETWORK_SECMARK=y + # CONFIG_LAPB is not set + # CONFIG_ECONET is not set + # CONFIG_WAN_ROUTER is not set +- +-# +-# QoS and/or fair queueing +-# + # CONFIG_NET_SCHED is not set + + # +@@ -331,6 +355,7 @@ CONFIG_NETWORK_SECMARK=y + # + # CONFIG_NET_PKTGEN is not set + # CONFIG_HAMRADIO is not set ++# CONFIG_CAN is not set + # CONFIG_IRDA is not set + # CONFIG_BT is not set + # CONFIG_AF_RXRPC is not set +@@ -353,6 +378,7 @@ CONFIG_FIB_RULES=y + # + # Generic Driver Options + # ++CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" + CONFIG_STANDALONE=y + CONFIG_PREVENT_FIRMWARE_BUILD=y + CONFIG_FW_LOADER=m +@@ -374,10 +400,11 @@ CONFIG_BLK_DEV_NBD=m + CONFIG_BLK_DEV_RAM=y + CONFIG_BLK_DEV_RAM_COUNT=16 + CONFIG_BLK_DEV_RAM_SIZE=4096 +-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 ++CONFIG_BLK_DEV_XIP=y + # CONFIG_CDROM_PKTCDVD is not set + # CONFIG_ATA_OVER_ETH is not set + # CONFIG_MISC_DEVICES is not set ++CONFIG_HAVE_IDE=y + # CONFIG_IDE is not set + + # +@@ -416,10 +443,14 @@ CONFIG_SCSI_WAIT_SCAN=m + # CONFIG_SCSI_FC_ATTRS is not set + # CONFIG_SCSI_ISCSI_ATTRS is not set + # CONFIG_SCSI_SAS_LIBSAS is not set ++# CONFIG_SCSI_SRP_ATTRS is not set + # CONFIG_SCSI_LOWLEVEL is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set ++# CONFIG_SATA_SIL24 is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -429,7 +460,6 @@ CONFIG_ATA=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set +@@ -458,7 +488,9 @@ CONFIG_ATA=y + # CONFIG_PATA_MPIIX is not set + # CONFIG_PATA_OLDPIIX is not set + # CONFIG_PATA_NETCELL is not set ++# CONFIG_PATA_NINJA32 is not set + # CONFIG_PATA_NS87410 is not set ++# CONFIG_PATA_NS87415 is not set + # CONFIG_PATA_OPTI is not set + # CONFIG_PATA_OPTIDMA is not set + # CONFIG_PATA_PDC_OLD is not set +@@ -472,15 +504,9 @@ CONFIG_PATA_SIL680=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set +- +-# +-# Fusion MPT device support +-# + # CONFIG_FUSION is not set +-# CONFIG_FUSION_SPI is not set +-# CONFIG_FUSION_FC is not set +-# CONFIG_FUSION_SAS is not set + + # + # IEEE 1394 (FireWire) support +@@ -520,6 +546,7 @@ CONFIG_NETDEVICES=y + # CONFIG_MACVLAN is not set + # CONFIG_EQUALIZER is not set + # CONFIG_TUN is not set ++# CONFIG_VETH is not set + # CONFIG_ARCNET is not set + # CONFIG_PHYLIB is not set + CONFIG_NET_ETHERNET=y +@@ -532,6 +559,10 @@ CONFIG_MII=y + # CONFIG_DM9000 is not set + # CONFIG_NET_TULIP is not set + # CONFIG_HP100 is not set ++# CONFIG_IBM_NEW_EMAC_ZMII is not set ++# CONFIG_IBM_NEW_EMAC_RGMII is not set ++# CONFIG_IBM_NEW_EMAC_TAH is not set ++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set + CONFIG_NET_PCI=y + # CONFIG_PCNET32 is not set + # CONFIG_AMD8111_ETH is not set +@@ -539,7 +570,6 @@ CONFIG_NET_PCI=y + # CONFIG_B44 is not set + # CONFIG_FORCEDETH is not set + # CONFIG_TC35815 is not set +-# CONFIG_DGRS is not set + # CONFIG_EEPRO100 is not set + # CONFIG_E100 is not set + # CONFIG_FEALNX is not set +@@ -551,6 +581,7 @@ CONFIG_8139TOO_PIO=y + # CONFIG_8139TOO_TUNE_TWISTER is not set + # CONFIG_8139TOO_8129 is not set + # CONFIG_8139_OLD_RX_RESET is not set ++# CONFIG_R6040 is not set + # CONFIG_SIS900 is not set + # CONFIG_EPIC100 is not set + # CONFIG_SUNDANCE is not set +@@ -563,6 +594,10 @@ CONFIG_NETDEV_1000=y + # CONFIG_ACENIC is not set + # CONFIG_DL2K is not set + # CONFIG_E1000 is not set ++# CONFIG_E1000E is not set ++# CONFIG_E1000E_ENABLED is not set ++# CONFIG_IP1000 is not set ++# CONFIG_IGB is not set + # CONFIG_NS83820 is not set + # CONFIG_HAMACHI is not set + # CONFIG_YELLOWFIN is not set +@@ -584,6 +619,7 @@ CONFIG_VIA_VELOCITY=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -592,7 +628,6 @@ CONFIG_VIA_VELOCITY=y + # CONFIG_USB_KAWETH is not set + # CONFIG_USB_PEGASUS is not set + # CONFIG_USB_RTL8150 is not set +-# CONFIG_USB_USBNET_MII is not set + # CONFIG_USB_USBNET is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set +@@ -600,7 +635,6 @@ CONFIG_VIA_VELOCITY=y + # CONFIG_PPP is not set + # CONFIG_SLIP is not set + # CONFIG_NET_FC is not set +-# CONFIG_SHAPER is not set + # CONFIG_NETCONSOLE is not set + # CONFIG_NETPOLL is not set + # CONFIG_NET_POLL_CONTROLLER is not set +@@ -622,7 +656,6 @@ 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 + +@@ -649,7 +682,9 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + CONFIG_VT_HW_CONSOLE_BINDING=y ++# CONFIG_DEVKMEM is not set + # CONFIG_SERIAL_NONSTANDARD is not set ++# CONFIG_NOZOMI is not set + + # + # Serial drivers +@@ -668,49 +703,53 @@ CONFIG_UNIX98_PTYS=y + CONFIG_LEGACY_PTYS=y + CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set +-# CONFIG_WATCHDOG is not set + # CONFIG_HW_RANDOM is not set +-# CONFIG_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_GPIO_TB0219 is not set +-# CONFIG_DRM is not set + CONFIG_GPIO_VR41XX=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set ++# CONFIG_THERMAL is not set ++# CONFIG_WATCHDOG is not set ++ ++# ++# Sonics Silicon Backplane ++# ++CONFIG_SSB_POSSIBLE=y ++# CONFIG_SSB is not set + + # + # Multifunction device drivers + # + CONFIG_MFD_SM501=y ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set +-# CONFIG_DAB is not set + + # +-# Graphics support ++# Multimedia drivers + # +-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set ++# CONFIG_DAB is not set + + # +-# Display device support ++# Graphics support + # +-# CONFIG_DISPLAY_SUPPORT is not set ++# CONFIG_DRM is not set + # CONFIG_VGASTATE is not set + CONFIG_VIDEO_OUTPUT_CONTROL=m + CONFIG_FB=y +@@ -719,9 +758,11 @@ CONFIG_FB=y + CONFIG_FB_CFB_FILLRECT=y + CONFIG_FB_CFB_COPYAREA=y + CONFIG_FB_CFB_IMAGEBLIT=y ++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set + # CONFIG_FB_SYS_FILLRECT is not set + # CONFIG_FB_SYS_COPYAREA is not set + # CONFIG_FB_SYS_IMAGEBLIT is not set ++# CONFIG_FB_FOREIGN_ENDIAN is not set + # CONFIG_FB_SYS_FOPS is not set + CONFIG_FB_DEFERRED_IO=y + # CONFIG_FB_SVGALIB is not set +@@ -757,7 +798,14 @@ CONFIG_FB_DEFERRED_IO=y + # CONFIG_FB_ARK is not set + # CONFIG_FB_PM3 is not set + CONFIG_FB_SM501=y ++# CONFIG_FB_COBALT is not set + # CONFIG_FB_VIRTUAL is not set ++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set ++ ++# ++# Display device support ++# ++# CONFIG_DISPLAY_SUPPORT is not set + + # + # Console display driver support +@@ -787,6 +835,7 @@ CONFIG_FONT_8x16=y + CONFIG_HID_SUPPORT=y + CONFIG_HID=y + # CONFIG_HID_DEBUG is not set ++# CONFIG_HIDRAW is not set + + # + # USB Input Devices +@@ -807,6 +856,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + CONFIG_USB=m + # CONFIG_USB_DEBUG is not set ++# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + + # + # Miscellaneous USB options +@@ -815,15 +865,18 @@ CONFIG_USB=m + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=m +-# CONFIG_USB_EHCI_SPLIT_ISO is not set + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=m + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set + # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +@@ -849,13 +902,16 @@ CONFIG_USB_STORAGE=m + # CONFIG_USB_STORAGE_DEBUG is not set + # CONFIG_USB_STORAGE_DATAFAB is not set + # CONFIG_USB_STORAGE_FREECOM is not set ++# CONFIG_USB_STORAGE_ISD200 is not set + # CONFIG_USB_STORAGE_DPCM is not set + # CONFIG_USB_STORAGE_USBAT is not set + # CONFIG_USB_STORAGE_SDDR09 is not set + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -868,10 +924,6 @@ CONFIG_USB_MON=y + # + # USB port drivers + # +- +-# +-# USB Serial Converter support +-# + # CONFIG_USB_SERIAL is not set + + # +@@ -896,36 +948,14 @@ CONFIG_USB_MON=y + # CONFIG_USB_LD is not set + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set +- +-# +-# USB DSL modem support +-# +- +-# +-# USB Gadget Support +-# + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set ++# CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set ++CONFIG_RTC_LIB=y + # CONFIG_RTC_CLASS is not set +- +-# +-# DMA Engine support +-# +-# CONFIG_DMA_ENGINE is not set +- +-# +-# DMA Clients +-# +- +-# +-# DMA Devices +-# +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -940,25 +970,21 @@ CONFIG_EXT3_FS_XATTR=y + # CONFIG_EXT3_FS_SECURITY is not set + # CONFIG_EXT4DEV_FS is not set + CONFIG_JBD=y +-# CONFIG_JBD_DEBUG is not set + CONFIG_FS_MBCACHE=y + # CONFIG_REISERFS_FS is not set + # CONFIG_JFS_FS is not set + CONFIG_FS_POSIX_ACL=y + CONFIG_XFS_FS=y + CONFIG_XFS_QUOTA=y +-# CONFIG_XFS_SECURITY is not set + CONFIG_XFS_POSIX_ACL=y + # CONFIG_XFS_RT is not set +-# CONFIG_GFS2_FS is not set ++# CONFIG_XFS_DEBUG is not set + # CONFIG_OCFS2_FS is not set +-# CONFIG_MINIX_FS is not set +-CONFIG_ROMFS_FS=m ++CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y + CONFIG_INOTIFY_USER=y + # CONFIG_QUOTA is not set + CONFIG_QUOTACTL=y +-CONFIG_DNOTIFY=y + # CONFIG_AUTOFS_FS is not set + CONFIG_AUTOFS4_FS=y + # CONFIG_FUSE_FS is not set +@@ -987,7 +1013,6 @@ CONFIG_SYSFS=y + CONFIG_TMPFS=y + CONFIG_TMPFS_POSIX_ACL=y + # CONFIG_HUGETLB_PAGE is not set +-CONFIG_RAMFS=y + # CONFIG_CONFIGFS_FS is not set + + # +@@ -1002,24 +1027,21 @@ CONFIG_RAMFS=y + # CONFIG_EFS_FS is not set + CONFIG_CRAMFS=m + # CONFIG_VXFS_FS is not set ++# CONFIG_MINIX_FS is not set + # CONFIG_HPFS_FS is not set + # CONFIG_QNX4FS_FS is not set ++CONFIG_ROMFS_FS=m + # CONFIG_SYSV_FS is not set + # CONFIG_UFS_FS is not set +- +-# +-# Network File Systems +-# ++CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=m + CONFIG_NFSD_V3=y + # CONFIG_NFSD_V3_ACL is not set + # CONFIG_NFSD_V4 is not set +-CONFIG_NFSD_TCP=y + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1040,47 +1062,38 @@ CONFIG_SUNRPC=y + # + # CONFIG_PARTITION_ADVANCED is not set + CONFIG_MSDOS_PARTITION=y +- +-# +-# Native Language Support +-# + # CONFIG_NLS is not set +- +-# +-# Distributed Lock Manager +-# + # CONFIG_DLM is not set + + # +-# Profiling support +-# +-# CONFIG_PROFILING is not set +- +-# + # Kernel hacking + # + CONFIG_TRACE_IRQFLAGS_SUPPORT=y + # CONFIG_PRINTK_TIME is not set ++CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set + # CONFIG_HEADERS_CHECK is not set + # CONFIG_DEBUG_KERNEL is not set +-CONFIG_CROSSCOMPILE=y +-CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" ++# CONFIG_SAMPLES is not set ++CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" + + # + # Security options + # + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set ++# CONFIG_SECURITY_FILE_CAPABILITIES is not set + # CONFIG_CRYPTO is not set + + # + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=y + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +diff --git a/arch/mips/fw/arc/identify.c b/arch/mips/fw/arc/identify.c +index 28dfd2e..2306698 100644 +--- a/arch/mips/fw/arc/identify.c ++++ b/arch/mips/fw/arc/identify.c +@@ -67,6 +67,11 @@ static struct smatch mach_table[] = { + .liname = "SNI RM200_PCI", + .type = MACH_SNI_RM200_PCI, + .flags = PROM_FLAG_DONT_FREE_TEMP, ++ }, { ++ .arcname = "RM200PCI-R5K", ++ .liname = "SNI RM200_PCI-R5K", ++ .type = MACH_SNI_RM200_PCI, ++ .flags = PROM_FLAG_DONT_FREE_TEMP, + } + }; + +diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c +index 63370cd..cdf87a9 100644 +--- a/arch/mips/kernel/smp.c ++++ b/arch/mips/kernel/smp.c +@@ -216,6 +216,7 @@ int smp_call_function(void (*func) (void *info), void *info, int retry, + { + return smp_call_function_mask(cpu_online_map, func, info, retry, wait); + } ++EXPORT_SYMBOL(smp_call_function); + + void smp_call_function_interrupt(void) + { +@@ -271,6 +272,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, + put_cpu(); + return 0; + } ++EXPORT_SYMBOL(smp_call_function_single); + + static void stop_this_cpu(void *dummy) + { +diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c +index cfeab66..a56c150 100644 +--- a/arch/mips/lasat/interrupt.c ++++ b/arch/mips/lasat/interrupt.c +@@ -34,11 +34,13 @@ static volatile int lasat_int_mask_shift; + + void disable_lasat_irq(unsigned int irq_nr) + { ++ irq_nr -= LASAT_IRQ_BASE; + *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift; + } + + void enable_lasat_irq(unsigned int irq_nr) + { ++ irq_nr -= LASAT_IRQ_BASE; + *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift; + } + +diff --git a/arch/mips/lasat/lasat_board.c b/arch/mips/lasat/lasat_board.c +index ec2f658..31e328b 100644 +--- a/arch/mips/lasat/lasat_board.c ++++ b/arch/mips/lasat/lasat_board.c +@@ -23,18 +23,19 @@ + #include + #include + #include ++#include + #include + #include + #include "at93c.h" + /* New model description table */ + #include "lasat_models.h" + ++static DEFINE_MUTEX(lasat_eeprom_mutex); ++ + #define EEPROM_CRC(data, len) (~crc32(~0, data, len)) + + struct lasat_info lasat_board_info; + +-void update_bcastaddr(void); +- + int EEPROMRead(unsigned int pos, unsigned char *data, int len) + { + int i; +@@ -258,10 +259,6 @@ int lasat_init_board_info(void) + sprintf(lasat_board_info.li_typestr, "%d", 10 * c); + } + +-#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL) +- update_bcastaddr(); +-#endif +- + return 0; + } + +@@ -269,6 +266,8 @@ void lasat_write_eeprom_info(void) + { + unsigned long crc; + ++ mutex_lock(&lasat_eeprom_mutex); ++ + /* Generate the CRC */ + crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info), + sizeof(struct lasat_eeprom_struct) - 4); +@@ -277,4 +276,6 @@ void lasat_write_eeprom_info(void) + /* Write the EEPROM info */ + EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info, + sizeof(struct lasat_eeprom_struct)); ++ ++ mutex_unlock(&lasat_eeprom_mutex); + } +diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c +index 389336c..866881e 100644 +--- a/arch/mips/lasat/sysctl.c ++++ b/arch/mips/lasat/sysctl.c +@@ -29,15 +29,13 @@ + #include + #include + #include +-#include + #include + + #include + +-#include "sysctl.h" ++#ifdef CONFIG_DS1603 + #include "ds1603.h" +- +-static DEFINE_MUTEX(lasat_info_mutex); ++#endif + + /* Strategy function to write EEPROM after changing string entry */ + int sysctl_lasatstring(ctl_table *table, int *name, int nlen, +@@ -46,18 +44,15 @@ int sysctl_lasatstring(ctl_table *table, int *name, int nlen, + { + int r; + +- mutex_lock(&lasat_info_mutex); + r = sysctl_string(table, name, + nlen, oldval, oldlenp, newval, newlen); +- if (r < 0) { +- mutex_unlock(&lasat_info_mutex); ++ if (r < 0) + return r; +- } ++ + if (newval && newlen) + lasat_write_eeprom_info(); +- mutex_unlock(&lasat_info_mutex); + +- return 1; ++ return 0; + } + + +@@ -67,14 +62,11 @@ int proc_dolasatstring(ctl_table *table, int write, struct file *filp, + { + int r; + +- mutex_lock(&lasat_info_mutex); + r = proc_dostring(table, write, filp, buffer, lenp, ppos); +- if ((!write) || r) { +- mutex_unlock(&lasat_info_mutex); ++ if ((!write) || r) + return r; +- } ++ + lasat_write_eeprom_info(); +- mutex_unlock(&lasat_info_mutex); + + return 0; + } +@@ -85,28 +77,24 @@ int proc_dolasatint(ctl_table *table, int write, struct file *filp, + { + int r; + +- mutex_lock(&lasat_info_mutex); + r = proc_dointvec(table, write, filp, buffer, lenp, ppos); +- if ((!write) || r) { +- mutex_unlock(&lasat_info_mutex); ++ if ((!write) || r) + return r; +- } ++ + lasat_write_eeprom_info(); +- mutex_unlock(&lasat_info_mutex); + + return 0; + } + ++#ifdef CONFIG_DS1603 + static int rtctmp; + +-#ifdef CONFIG_DS1603 + /* proc function to read/write RealTime Clock */ + int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *ppos) + { + int r; + +- mutex_lock(&lasat_info_mutex); + if (!write) { + rtctmp = read_persistent_clock(); + /* check for time < 0 and set to 0 */ +@@ -114,12 +102,11 @@ int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, + rtctmp = 0; + } + r = proc_dointvec(table, write, filp, buffer, lenp, ppos); +- if ((!write) || r) { +- mutex_unlock(&lasat_info_mutex); ++ if (r) + return r; +- } +- rtc_mips_set_mmss(rtctmp); +- mutex_unlock(&lasat_info_mutex); ++ ++ if (write) ++ rtc_mips_set_mmss(rtctmp); + + return 0; + } +@@ -132,17 +119,14 @@ int sysctl_lasat_intvec(ctl_table *table, int *name, int nlen, + { + int r; + +- mutex_lock(&lasat_info_mutex); + r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); +- if (r < 0) { +- mutex_unlock(&lasat_info_mutex); ++ if (r < 0) + return r; +- } ++ + if (newval && newlen) + lasat_write_eeprom_info(); +- mutex_unlock(&lasat_info_mutex); + +- return 1; ++ return 0; + } + + #ifdef CONFIG_DS1603 +@@ -153,50 +137,27 @@ int sysctl_lasat_rtc(ctl_table *table, int *name, int nlen, + { + int r; + +- mutex_lock(&lasat_info_mutex); + rtctmp = read_persistent_clock(); + if (rtctmp < 0) + rtctmp = 0; + r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); +- if (r < 0) { +- mutex_unlock(&lasat_info_mutex); ++ if (r < 0) + return r; +- } + if (newval && newlen) + rtc_mips_set_mmss(rtctmp); +- mutex_unlock(&lasat_info_mutex); + +- return 1; ++ return r; + } + #endif + + #ifdef CONFIG_INET +-static char lasat_bcastaddr[16]; +- +-void update_bcastaddr(void) +-{ +- unsigned int ip; +- +- ip = (lasat_board_info.li_eeprom_info.ipaddr & +- lasat_board_info.li_eeprom_info.netmask) | +- ~lasat_board_info.li_eeprom_info.netmask; +- +- sprintf(lasat_bcastaddr, "%d.%d.%d.%d", +- (ip) & 0xff, +- (ip >> 8) & 0xff, +- (ip >> 16) & 0xff, +- (ip >> 24) & 0xff); +-} +- +-static char proc_lasat_ipbuf[32]; +- +-/* Parsing of IP address */ + int proc_lasat_ip(ctl_table *table, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *ppos) + { + unsigned int ip; + char *p, c; + int len; ++ char ipbuf[32]; + + if (!table->data || !table->maxlen || !*lenp || + (*ppos && !write)) { +@@ -204,117 +165,88 @@ int proc_lasat_ip(ctl_table *table, int write, struct file *filp, + return 0; + } + +- mutex_lock(&lasat_info_mutex); + if (write) { + len = 0; + p = buffer; + while (len < *lenp) { +- if (get_user(c, p++)) { +- mutex_unlock(&lasat_info_mutex); ++ if (get_user(c, p++)) + return -EFAULT; +- } + if (c == 0 || c == '\n') + break; + len++; + } +- if (len >= sizeof(proc_lasat_ipbuf)-1) +- len = sizeof(proc_lasat_ipbuf) - 1; +- if (copy_from_user(proc_lasat_ipbuf, buffer, len)) { +- mutex_unlock(&lasat_info_mutex); ++ if (len >= sizeof(ipbuf)-1) ++ len = sizeof(ipbuf) - 1; ++ if (copy_from_user(ipbuf, buffer, len)) + return -EFAULT; +- } +- proc_lasat_ipbuf[len] = 0; ++ ipbuf[len] = 0; + *ppos += *lenp; + /* Now see if we can convert it to a valid IP */ +- ip = in_aton(proc_lasat_ipbuf); ++ ip = in_aton(ipbuf); + *(unsigned int *)(table->data) = ip; + lasat_write_eeprom_info(); + } else { + ip = *(unsigned int *)(table->data); +- sprintf(proc_lasat_ipbuf, "%d.%d.%d.%d", ++ sprintf(ipbuf, "%d.%d.%d.%d", + (ip) & 0xff, + (ip >> 8) & 0xff, + (ip >> 16) & 0xff, + (ip >> 24) & 0xff); +- len = strlen(proc_lasat_ipbuf); ++ len = strlen(ipbuf); + if (len > *lenp) + len = *lenp; + if (len) +- if (copy_to_user(buffer, proc_lasat_ipbuf, len)) { +- mutex_unlock(&lasat_info_mutex); ++ if (copy_to_user(buffer, ipbuf, len)) + return -EFAULT; +- } + if (len < *lenp) { +- if (put_user('\n', ((char *) buffer) + len)) { +- mutex_unlock(&lasat_info_mutex); ++ if (put_user('\n', ((char *) buffer) + len)) + return -EFAULT; +- } + len++; + } + *lenp = len; + *ppos += len; + } +- update_bcastaddr(); +- mutex_unlock(&lasat_info_mutex); + + return 0; + } +-#endif /* defined(CONFIG_INET) */ ++#endif + +-static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen, ++static int sysctl_lasat_prid(ctl_table *table, int *name, int nlen, + void *oldval, size_t *oldlenp, + void *newval, size_t newlen) + { + int r; + +- mutex_lock(&lasat_info_mutex); + r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); +- if (r < 0) { +- mutex_unlock(&lasat_info_mutex); ++ if (r < 0) + return r; +- } +- + if (newval && newlen) { +- if (name && *name == LASAT_PRID) +- lasat_board_info.li_eeprom_info.prid = *(int *)newval; +- ++ lasat_board_info.li_eeprom_info.prid = *(int *)newval; + lasat_write_eeprom_info(); + lasat_init_board_info(); + } +- mutex_unlock(&lasat_info_mutex); +- + return 0; + } + +-int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp, ++int proc_lasat_prid(ctl_table *table, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *ppos) + { + int r; + +- mutex_lock(&lasat_info_mutex); + r = proc_dointvec(table, write, filp, buffer, lenp, ppos); +- if ((!write) || r) { +- mutex_unlock(&lasat_info_mutex); ++ if (r < 0) + return r; ++ if (write) { ++ lasat_board_info.li_eeprom_info.prid = ++ lasat_board_info.li_prid; ++ lasat_write_eeprom_info(); ++ lasat_init_board_info(); + } +- if (filp && filp->f_path.dentry) { +- if (!strcmp(filp->f_path.dentry->d_name.name, "prid")) +- lasat_board_info.li_eeprom_info.prid = +- lasat_board_info.li_prid; +- if (!strcmp(filp->f_path.dentry->d_name.name, "debugaccess")) +- lasat_board_info.li_eeprom_info.debugaccess = +- lasat_board_info.li_debugaccess; +- } +- lasat_write_eeprom_info(); +- mutex_unlock(&lasat_info_mutex); +- + return 0; + } + + extern int lasat_boot_to_service; + +-#ifdef CONFIG_SYSCTL +- + static ctl_table lasat_table[] = { + { + .ctl_name = CTL_UNNUMBERED, +@@ -349,8 +281,8 @@ static ctl_table lasat_table[] = { + .data = &lasat_board_info.li_prid, + .maxlen = sizeof(int), + .mode = 0644, +- .proc_handler = &proc_lasat_eeprom_value, +- .strategy = &sysctl_lasat_eeprom_value ++ .proc_handler = &proc_lasat_prid, ++ .strategy = &sysctl_lasat_prid + }, + #ifdef CONFIG_INET + { +@@ -363,7 +295,7 @@ static ctl_table lasat_table[] = { + .strategy = &sysctl_lasat_intvec + }, + { +- .ctl_name = LASAT_NETMASK, ++ .ctl_name = CTL_UNNUMBERED, + .procname = "netmask", + .data = &lasat_board_info.li_eeprom_info.netmask, + .maxlen = sizeof(int), +@@ -371,15 +303,6 @@ static ctl_table lasat_table[] = { + .proc_handler = &proc_lasat_ip, + .strategy = &sysctl_lasat_intvec + }, +- { +- .ctl_name = CTL_UNNUMBERED, +- .procname = "bcastaddr", +- .data = &lasat_bcastaddr, +- .maxlen = sizeof(lasat_bcastaddr), +- .mode = 0600, +- .proc_handler = &proc_dostring, +- .strategy = &sysctl_string +- }, + #endif + { + .ctl_name = CTL_UNNUMBERED, +@@ -417,7 +340,7 @@ static ctl_table lasat_table[] = { + .data = &lasat_board_info.li_namestr, + .maxlen = sizeof(lasat_board_info.li_namestr), + .mode = 0444, +- .proc_handler = &proc_dostring, ++ .proc_handler = &proc_dostring, + .strategy = &sysctl_string + }, + { +@@ -448,9 +371,12 @@ static int __init lasat_register_sysctl(void) + + lasat_table_header = + register_sysctl_table(lasat_root_table); ++ if (!lasat_table_header) { ++ printk(KERN_ERR "Unable to register LASAT sysctl\n"); ++ return -ENOMEM; ++ } + + return 0; + } + + __initcall(lasat_register_sysctl); +-#endif /* CONFIG_SYSCTL */ +diff --git a/arch/mips/lasat/sysctl.h b/arch/mips/lasat/sysctl.h +deleted file mode 100644 +index 341b979..0000000 +--- a/arch/mips/lasat/sysctl.h ++++ /dev/null +@@ -1,24 +0,0 @@ +-/* +- * LASAT sysctl values +- */ +- +-#ifndef _LASAT_SYSCTL_H +-#define _LASAT_SYSCTL_H +- +-/* /proc/sys/lasat */ +-enum { +- LASAT_CPU_HZ = 1, +- LASAT_BUS_HZ, +- LASAT_MODEL, +- LASAT_PRID, +- LASAT_IPADDR, +- LASAT_NETMASK, +- LASAT_BCAST, +- LASAT_PASSWORD, +- LASAT_SBOOT, +- LASAT_RTC, +- LASAT_NAMESTR, +- LASAT_TYPESTR, +-}; +- +-#endif /* _LASAT_SYSCTL_H */ +diff --git a/arch/mips/mips-boards/generic/amon.c b/arch/mips/mips-boards/generic/amon.c +index b7633fd..96236bf 100644 +--- a/arch/mips/mips-boards/generic/amon.c ++++ b/arch/mips/mips-boards/generic/amon.c +@@ -28,7 +28,7 @@ + + int amon_cpu_avail(int cpu) + { +- struct cpulaunch *launch = (struct cpulaunch *)KSEG0ADDR(CPULAUNCH); ++ struct cpulaunch *launch = (struct cpulaunch *)CKSEG0ADDR(CPULAUNCH); + + if (cpu < 0 || cpu >= NCPULAUNCH) { + pr_debug("avail: cpu%d is out of range\n", cpu); +@@ -53,7 +53,7 @@ void amon_cpu_start(int cpu, + unsigned long gp, unsigned long a0) + { + volatile struct cpulaunch *launch = +- (struct cpulaunch *)KSEG0ADDR(CPULAUNCH); ++ (struct cpulaunch *)CKSEG0ADDR(CPULAUNCH); + + if (!amon_cpu_avail(cpu)) + return; +diff --git a/arch/mips/mips-boards/malta/Makefile b/arch/mips/mips-boards/malta/Makefile +index 8dc6e2a..db4ad65 100644 +--- a/arch/mips/mips-boards/malta/Makefile ++++ b/arch/mips/mips-boards/malta/Makefile +@@ -19,9 +19,8 @@ + # under Linux. + # + +-obj-y := malta_int.o malta_platform.o malta_setup.o ++obj-y := malta_int.o malta_mtd.o malta_platform.o malta_setup.o + +-obj-$(CONFIG_MTD) += malta_mtd.o + # FIXME FIXME FIXME + obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o + +diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c +index 643c8bc..2709675 100644 +--- a/arch/mips/mm/c-r4k.c ++++ b/arch/mips/mm/c-r4k.c +@@ -446,6 +446,7 @@ static inline void local_r4k_flush_cache_page(void *args) + struct page *page = pfn_to_page(fcp_args->pfn); + int exec = vma->vm_flags & VM_EXEC; + struct mm_struct *mm = vma->vm_mm; ++ int map_coherent = 0; + pgd_t *pgdp; + pud_t *pudp; + pmd_t *pmdp; +@@ -479,7 +480,9 @@ static inline void local_r4k_flush_cache_page(void *args) + * Use kmap_coherent or kmap_atomic to do flushes for + * another ASID than the current one. + */ +- if (cpu_has_dc_aliases) ++ map_coherent = (cpu_has_dc_aliases && ++ page_mapped(page) && !Page_dcache_dirty(page)); ++ if (map_coherent) + vaddr = kmap_coherent(page, addr); + else + vaddr = kmap_atomic(page, KM_USER0); +@@ -502,7 +505,7 @@ static inline void local_r4k_flush_cache_page(void *args) + } + + if (vaddr) { +- if (cpu_has_dc_aliases) ++ if (map_coherent) + kunmap_coherent(); + else + kunmap_atomic(vaddr, KM_USER0); +@@ -1226,6 +1229,28 @@ void au1x00_fixup_config_od(void) + } + } + ++/* CP0 hazard avoidance. */ ++#define NXP_BARRIER() \ ++ __asm__ __volatile__( \ ++ ".set noreorder\n\t" \ ++ "nop; nop; nop; nop; nop; nop;\n\t" \ ++ ".set reorder\n\t") ++ ++static void nxp_pr4450_fixup_config(void) ++{ ++ unsigned long config0; ++ ++ config0 = read_c0_config(); ++ ++ /* clear all three cache coherency fields */ ++ config0 &= ~(0x7 | (7 << 25) | (7 << 28)); ++ config0 |= (((_page_cachable_default >> _CACHE_SHIFT) << 0) | ++ ((_page_cachable_default >> _CACHE_SHIFT) << 25) | ++ ((_page_cachable_default >> _CACHE_SHIFT) << 28)); ++ write_c0_config(config0); ++ NXP_BARRIER(); ++} ++ + static int __cpuinitdata cca = -1; + + static int __init cca_setup(char *str) +@@ -1271,6 +1296,10 @@ static void __cpuinit coherency_setup(void) + case CPU_AU1500: /* rev. AB */ + au1x00_fixup_config_od(); + break; ++ ++ case PRID_IMP_PR4450: ++ nxp_pr4450_fixup_config(); ++ break; + } + } + +diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c +index ecd562d..137c14b 100644 +--- a/arch/mips/mm/init.c ++++ b/arch/mips/mm/init.c +@@ -71,6 +71,7 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); + * don't have to care about aliases on other CPUs. + */ + unsigned long empty_zero_page, zero_page_mask; ++EXPORT_SYMBOL_GPL(empty_zero_page); + + /* + * Not static inline because used by IP27 special magic initialization code +diff --git a/arch/mips/mm/page.c b/arch/mips/mm/page.c +index cab81f4..1edf0cb 100644 +--- a/arch/mips/mm/page.c ++++ b/arch/mips/mm/page.c +@@ -460,7 +460,7 @@ void __cpuinit build_copy_page(void) + build_copy_load_pref(&buf, -off); + off -= cache_line_size; + } +- off = cache_line_size ? min(8, pref_bias_copy_load / cache_line_size) * ++ off = cache_line_size ? min(8, pref_bias_copy_store / cache_line_size) * + cache_line_size : 0; + while (off) { + build_copy_store_pref(&buf, -off); +diff --git a/arch/mips/nxp/pnx8550/jbs/board_setup.c b/arch/mips/nxp/pnx8550/jbs/board_setup.c +index f92826e..57dd903 100644 +--- a/arch/mips/nxp/pnx8550/jbs/board_setup.c ++++ b/arch/mips/nxp/pnx8550/jbs/board_setup.c +@@ -47,16 +47,7 @@ + + void __init board_setup(void) + { +- unsigned long config0, configpr; +- +- config0 = read_c0_config(); +- +- /* clear all three cache coherency fields */ +- config0 &= ~(0x7 | (7<<25) | (7<<28)); +- config0 |= (CONF_CM_DEFAULT | (CONF_CM_DEFAULT<<25) | +- (CONF_CM_DEFAULT<<28)); +- write_c0_config(config0); +- BARRIER; ++ unsigned long configpr; + + configpr = read_c0_config7(); + configpr |= (1<<19); /* enable tlb */ +diff --git a/arch/mips/nxp/pnx8550/stb810/board_setup.c b/arch/mips/nxp/pnx8550/stb810/board_setup.c +index 1282c27..af2a55e 100644 +--- a/arch/mips/nxp/pnx8550/stb810/board_setup.c ++++ b/arch/mips/nxp/pnx8550/stb810/board_setup.c +@@ -33,15 +33,7 @@ + + void __init board_setup(void) + { +- unsigned long config0, configpr; +- +- config0 = read_c0_config(); +- +- /* clear all three cache coherency fields */ +- config0 &= ~(0x7 | (7<<25) | (7<<28)); +- config0 |= (CONF_CM_DEFAULT | (CONF_CM_DEFAULT<<25) | +- (CONF_CM_DEFAULT<<28)); +- write_c0_config(config0); ++ unsigned long configpr; + + configpr = read_c0_config7(); + configpr |= (1<<19); /* enable tlb */ +diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c +index 42e4d2c..2a09ad9 100644 +--- a/arch/mips/pci/pci-sb1250.c ++++ b/arch/mips/pci/pci-sb1250.c +@@ -207,6 +207,7 @@ struct pci_controller sb1250_controller = { + + static int __init sb1250_pcibios_init(void) + { ++ void __iomem *io_map_base; + uint32_t cmdreg; + uint64_t reg; + extern int pci_probe_only; +@@ -253,12 +254,13 @@ static int __init sb1250_pcibios_init(void) + * works correctly with most of Linux's drivers. + * XXX ehs: Should this happen in PCI Device mode? + */ +- +- set_io_port_base((unsigned long) +- ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536)); + isa_slot_offset = (unsigned long) + ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024 * 1024); + ++ io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024); ++ sb1250_controller.io_map_base = io_map_base; ++ set_io_port_base((unsigned long)io_map_base); ++ + #ifdef CONFIG_SIBYTE_HAS_LDT + /* + * Also check the LDT bridge's enable, just in case we didn't +diff --git a/arch/mips/pci/pci-vr41xx.c b/arch/mips/pci/pci-vr41xx.c +index 33c4f68..d1e049b 100644 +--- a/arch/mips/pci/pci-vr41xx.c ++++ b/arch/mips/pci/pci-vr41xx.c +@@ -3,7 +3,7 @@ + * + * Copyright (C) 2001-2003 MontaVista Software Inc. + * Author: Yoichi Yuasa +- * Copyright (C) 2004-2005 Yoichi Yuasa ++ * Copyright (C) 2004-2008 Yoichi Yuasa + * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org) + * + * This program is free software; you can redistribute it and/or modify +@@ -300,6 +300,18 @@ static int __init vr41xx_pciu_init(void) + ioport_resource.end = IO_PORT_RESOURCE_END; + } + ++ if (setup->master_io) { ++ void __iomem *io_map_base; ++ struct resource *res = vr41xx_pci_controller.io_resource; ++ master = setup->master_io; ++ io_map_base = ioremap(master->bus_base_address, ++ res->end - res->start + 1); ++ if (!io_map_base) ++ return -EBUSY; ++ ++ vr41xx_pci_controller.io_map_base = (unsigned long)io_map_base; ++ } ++ + register_pci_controller(&vr41xx_pci_controller); + + return 0; +diff --git a/arch/mips/sibyte/swarm/Makefile b/arch/mips/sibyte/swarm/Makefile +index 2d62603..1775755 100644 +--- a/arch/mips/sibyte/swarm/Makefile ++++ b/arch/mips/sibyte/swarm/Makefile +@@ -1,3 +1,3 @@ +-lib-y = setup.o rtc_xicor1241.o rtc_m41t81.o ++obj-y := setup.o rtc_xicor1241.o rtc_m41t81.o + +-lib-$(CONFIG_KGDB) += dbg_io.o ++obj-$(CONFIG_KGDB) += dbg_io.o +diff --git a/arch/mn10300/kernel/process.c b/arch/mn10300/kernel/process.c +index 3b0d579..9c623c8 100644 +--- a/arch/mn10300/kernel/process.c ++++ b/arch/mn10300/kernel/process.c +@@ -20,7 +20,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c +index 6b7ce26..017121c 100644 +--- a/arch/mn10300/kernel/setup.c ++++ b/arch/mn10300/kernel/setup.c +@@ -17,7 +17,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/arch/parisc/hpux/gate.S b/arch/parisc/hpux/gate.S +index f0b18ce..38a1c1b 100644 +--- a/arch/parisc/hpux/gate.S ++++ b/arch/parisc/hpux/gate.S +@@ -13,10 +13,9 @@ + #include + #include + #include +-#include + + .level LEVEL +- __HEAD ++ .text + + .import hpux_call_table + .import hpux_syscall_exit,code +diff --git a/arch/parisc/hpux/wrappers.S b/arch/parisc/hpux/wrappers.S +index ccd3a50..58c53c8 100644 +--- a/arch/parisc/hpux/wrappers.S ++++ b/arch/parisc/hpux/wrappers.S +@@ -28,10 +28,9 @@ + #include + #include + #include +-#include + + .level LEVEL +- __HEAD ++ .text + + /* These should probably go in a header file somewhere. + * They are duplicated in kernel/wrappers.S +diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S +index 5d08374..d1fa4ed 100644 +--- a/arch/parisc/kernel/entry.S ++++ b/arch/parisc/kernel/entry.S +@@ -38,7 +38,6 @@ + #include + + #include +-#include + + #ifdef CONFIG_64BIT + .level 2.0w +@@ -622,7 +621,7 @@ + * the static part of the kernel address space. + */ + +- __HEAD ++ .text + + .align PAGE_SIZE + +diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S +index 5680a2c..a84e31e 100644 +--- a/arch/parisc/kernel/head.S ++++ b/arch/parisc/kernel/head.S +@@ -33,6 +33,7 @@ ENTRY(boot_args) + END(boot_args) + + __HEAD ++ + .align 4 + .import init_thread_union,data + .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ +diff --git a/arch/parisc/kernel/hpmc.S b/arch/parisc/kernel/hpmc.S +index 068322e..2cbf13b 100644 +--- a/arch/parisc/kernel/hpmc.S ++++ b/arch/parisc/kernel/hpmc.S +@@ -47,7 +47,6 @@ + #include + + #include +-#include + + /* + * stack for os_hpmc, the HPMC handler. +@@ -77,7 +76,7 @@ ENTRY(hpmc_pim_data) + .block HPMC_PIM_DATA_SIZE + END(hpmc_pim_data) + +- __HEAD ++ .text + + .import intr_save, code + ENTRY(os_hpmc) +diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S +index e3246a5..09b77b2 100644 +--- a/arch/parisc/kernel/pacache.S ++++ b/arch/parisc/kernel/pacache.S +@@ -37,9 +37,8 @@ + #include + #include + #include +-#include + +- __HEAD ++ .text + .align 128 + + ENTRY(flush_tlb_all_local) +diff --git a/arch/parisc/kernel/parisc_ksyms.c b/arch/parisc/kernel/parisc_ksyms.c +index 5b7fc4a..0eecfbb 100644 +--- a/arch/parisc/kernel/parisc_ksyms.c ++++ b/arch/parisc/kernel/parisc_ksyms.c +@@ -152,3 +152,6 @@ EXPORT_SYMBOL($$dyncall); + EXPORT_SYMBOL(node_data); + EXPORT_SYMBOL(pfnnid_map); + #endif ++ ++/* from pacache.S -- needed for copy_page */ ++EXPORT_SYMBOL(copy_user_page_asm); +diff --git a/arch/parisc/kernel/perf_asm.S b/arch/parisc/kernel/perf_asm.S +index d411dfb..fa6ea99 100644 +--- a/arch/parisc/kernel/perf_asm.S ++++ b/arch/parisc/kernel/perf_asm.S +@@ -43,7 +43,7 @@ + ; The coprocessor only needs to be enabled when + ; starting/stopping the coprocessor with the pmenb/pmdis. + ; +- __HEAD ++ .text + + ENTRY(perf_intrigue_enable_perf_counters) + .proc +diff --git a/arch/parisc/kernel/real2.S b/arch/parisc/kernel/real2.S +index 47fbdae..7a92695 100644 +--- a/arch/parisc/kernel/real2.S ++++ b/arch/parisc/kernel/real2.S +@@ -12,7 +12,6 @@ + #include + + #include +-#include + + .section .bss + .export real_stack +@@ -40,7 +39,7 @@ save_cr_end: + /************************ 32-bit real-mode calls ***********************/ + /* This can be called in both narrow and wide kernels */ + +- __HEAD ++ .text + + /* unsigned long real32_call_asm(unsigned int *sp, + * unsigned int *arg0p, +@@ -114,7 +113,7 @@ ENDPROC(real32_call_asm) + # define PUSH_CR(r, where) mfctl r, %r1 ! STREG,ma %r1, REG_SZ(where) + # define POP_CR(r, where) LDREG,mb -REG_SZ(where), %r1 ! mtctl %r1, r + +- __HEAD ++ .text + save_control_regs: + load32 PA(save_cr_space), %r28 + PUSH_CR(%cr24, %r28) +@@ -146,7 +145,7 @@ restore_control_regs: + /* rfi_virt2real() and rfi_real2virt() could perhaps be adapted for + * more general-purpose use by the several places which need RFIs + */ +- __HEAD ++ .text + .align 128 + rfi_virt2real: + /* switch to real mode... */ +@@ -181,7 +180,7 @@ rfi_v2r_1: + bv 0(%r2) + nop + +- __HEAD ++ .text + .align 128 + rfi_real2virt: + rsm PSW_SM_I,%r0 +@@ -219,7 +218,7 @@ rfi_r2v_1: + + /************************ 64-bit real-mode calls ***********************/ + /* This is only usable in wide kernels right now and will probably stay so */ +- __HEAD ++ .text + /* unsigned long real64_call_asm(unsigned long *sp, + * unsigned long *arg0p, + * unsigned long fn) +@@ -277,7 +276,7 @@ ENDPROC(real64_call_asm) + + #endif + +- __HEAD ++ .text + /* http://lists.parisc-linux.org/hypermail/parisc-linux/10916.html + ** GCC 3.3 and later has a new function in libgcc.a for + ** comparing function pointers. +diff --git a/arch/parisc/kernel/signal32.c b/arch/parisc/kernel/signal32.c +index db94aff..fb59852 100644 +--- a/arch/parisc/kernel/signal32.c ++++ b/arch/parisc/kernel/signal32.c +@@ -289,7 +289,7 @@ setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __ + &sc->sc_iaoq[0], compat_reg); + + /* Store upper half */ +- compat_reg = (compat_uint_t)(regs->gr[32] >> 32); ++ compat_reg = (compat_uint_t)(regs->gr[31] >> 32); + err |= __put_user(compat_reg, &rf->rf_iaoq[0]); + DBG(2,"setup_sigcontext32: upper half iaoq[0] = %#x\n", compat_reg); + +@@ -299,7 +299,7 @@ setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __ + DBG(2,"setup_sigcontext32: sc->sc_iaoq[1] = %p <= %#x\n", + &sc->sc_iaoq[1], compat_reg); + /* Store upper half */ +- compat_reg = (compat_uint_t)((regs->gr[32]+4) >> 32); ++ compat_reg = (compat_uint_t)((regs->gr[31]+4) >> 32); + err |= __put_user(compat_reg, &rf->rf_iaoq[1]); + DBG(2,"setup_sigcontext32: upper half iaoq[1] = %#x\n", compat_reg); + +diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S +index ae509d8..69b6eeb 100644 +--- a/arch/parisc/kernel/syscall.S ++++ b/arch/parisc/kernel/syscall.S +@@ -17,7 +17,6 @@ + #include + + #include +-#include + + /* We fill the empty parts of the gateway page with + * something that will kill the kernel or a +@@ -27,7 +26,7 @@ + + .level LEVEL + +- __HEAD ++ .text + + .import syscall_exit,code + .import syscall_exit_rfi,code +@@ -637,7 +636,7 @@ END(sys_call_table64) + All light-weight-syscall atomic operations + will use this set of locks + */ +- .section .data, "aw" ++ .section .data + .align PAGE_SIZE + ENTRY(lws_lock_start) + /* lws locks */ +diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S +index 50b4a3a..2e516b8 100644 +--- a/arch/parisc/kernel/vmlinux.lds.S ++++ b/arch/parisc/kernel/vmlinux.lds.S +@@ -50,6 +50,7 @@ SECTIONS + + _text = .; /* Text and read-only data */ + .text ALIGN(16) : { ++ HEAD_TEXT + TEXT_TEXT + SCHED_TEXT + LOCK_TEXT +diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S +index 4821ad6..d172d42 100644 +--- a/arch/parisc/lib/fixup.S ++++ b/arch/parisc/lib/fixup.S +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + + #ifdef CONFIG_SMP + .macro get_fault_ip t1 t2 +@@ -56,7 +55,7 @@ + + .level LEVEL + +- __HEAD ++ .text + .section .fixup, "ax" + + /* get_user() fixups, store -EFAULT in r8, and 0 in r9 */ +diff --git a/arch/parisc/lib/lusercopy.S b/arch/parisc/lib/lusercopy.S +index b0d8853..1bd23cc 100644 +--- a/arch/parisc/lib/lusercopy.S ++++ b/arch/parisc/lib/lusercopy.S +@@ -33,12 +33,11 @@ + */ + + ++ .text ++ + #include + #include + #include +-#include +- +- __HEAD + + /* + * get_sr gets the appropriate space value into +diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c +index 78fe252..ce0da68 100644 +--- a/arch/parisc/mm/init.c ++++ b/arch/parisc/mm/init.c +@@ -547,6 +547,7 @@ void __init mem_init(void) + } + + unsigned long *empty_zero_page __read_mostly; ++EXPORT_SYMBOL(empty_zero_page); + + void show_mem(void) + { +diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile +index 9dcdc03..b7d4c4c 100644 +--- a/arch/powerpc/Makefile ++++ b/arch/powerpc/Makefile +@@ -96,6 +96,8 @@ endif + else + KBUILD_CFLAGS += $(call cc-option,-mtune=power4) + endif ++else ++LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o + endif + + ifeq ($(CONFIG_TUNE_CELL),y) +@@ -154,7 +156,7 @@ all: zImage + + CPPFLAGS_vmlinux.lds := -Upowerpc + +-BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% ++BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% + + PHONY += $(BOOT_TARGETS) + +diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile +index d53b84e..1cee2f9 100644 +--- a/arch/powerpc/boot/Makefile ++++ b/arch/powerpc/boot/Makefile +@@ -51,7 +51,7 @@ $(addprefix $(obj)/,$(zlib) gunzip_util.o main.o): \ + $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader)) + + src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c +-src-wlib := string.S crt0.S stdio.c main.c \ ++src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \ + $(addprefix libfdt/,$(src-libfdt)) libfdt-wrapper.c \ + ns16550.c serial.c simple_alloc.c div64.S util.S \ + gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ +diff --git a/arch/powerpc/boot/crtsavres.S b/arch/powerpc/boot/crtsavres.S +new file mode 100644 +index 0000000..f3d9b35 +--- /dev/null ++++ b/arch/powerpc/boot/crtsavres.S +@@ -0,0 +1,233 @@ ++/* ++ * Special support for eabi and SVR4 ++ * ++ * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc. ++ * Copyright 2008 Freescale Semiconductor, Inc. ++ * Written By Michael Meissner ++ * ++ * Based on gcc/config/rs6000/crtsavres.asm from gcc ++ * ++ * This file 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, or (at your option) any ++ * later version. ++ * ++ * In addition to the permissions in the GNU General Public License, the ++ * Free Software Foundation gives you unlimited permission to link the ++ * compiled version of this file with other programs, and to distribute ++ * those programs without any restriction coming from the use of this ++ * file. (The General Public License restrictions do apply in other ++ * respects; for example, they cover modification of the file, and ++ * distribution when not linked into another program.) ++ * ++ * This file 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; see the file COPYING. If not, write to ++ * the Free Software Foundation, 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ * As a special exception, if you link this library with files ++ * compiled with GCC to produce an executable, this does not cause ++ * the resulting executable to be covered by the GNU General Public License. ++ * This exception does not however invalidate any other reasons why ++ * the executable file might be covered by the GNU General Public License. ++ */ ++ ++ .file "crtsavres.S" ++ .section ".text" ++ ++/* On PowerPC64 Linux, these functions are provided by the linker. */ ++#ifndef __powerpc64__ ++ ++#define _GLOBAL(name) \ ++ .type name,@function; \ ++ .globl name; \ ++name: ++ ++/* Routines for saving integer registers, called by the compiler. */ ++/* Called with r11 pointing to the stack header word of the caller of the */ ++/* function, just beyond the end of the integer save area. */ ++ ++_GLOBAL(_savegpr_14) ++_GLOBAL(_save32gpr_14) ++ stw 14,-72(11) /* save gp registers */ ++_GLOBAL(_savegpr_15) ++_GLOBAL(_save32gpr_15) ++ stw 15,-68(11) ++_GLOBAL(_savegpr_16) ++_GLOBAL(_save32gpr_16) ++ stw 16,-64(11) ++_GLOBAL(_savegpr_17) ++_GLOBAL(_save32gpr_17) ++ stw 17,-60(11) ++_GLOBAL(_savegpr_18) ++_GLOBAL(_save32gpr_18) ++ stw 18,-56(11) ++_GLOBAL(_savegpr_19) ++_GLOBAL(_save32gpr_19) ++ stw 19,-52(11) ++_GLOBAL(_savegpr_20) ++_GLOBAL(_save32gpr_20) ++ stw 20,-48(11) ++_GLOBAL(_savegpr_21) ++_GLOBAL(_save32gpr_21) ++ stw 21,-44(11) ++_GLOBAL(_savegpr_22) ++_GLOBAL(_save32gpr_22) ++ stw 22,-40(11) ++_GLOBAL(_savegpr_23) ++_GLOBAL(_save32gpr_23) ++ stw 23,-36(11) ++_GLOBAL(_savegpr_24) ++_GLOBAL(_save32gpr_24) ++ stw 24,-32(11) ++_GLOBAL(_savegpr_25) ++_GLOBAL(_save32gpr_25) ++ stw 25,-28(11) ++_GLOBAL(_savegpr_26) ++_GLOBAL(_save32gpr_26) ++ stw 26,-24(11) ++_GLOBAL(_savegpr_27) ++_GLOBAL(_save32gpr_27) ++ stw 27,-20(11) ++_GLOBAL(_savegpr_28) ++_GLOBAL(_save32gpr_28) ++ stw 28,-16(11) ++_GLOBAL(_savegpr_29) ++_GLOBAL(_save32gpr_29) ++ stw 29,-12(11) ++_GLOBAL(_savegpr_30) ++_GLOBAL(_save32gpr_30) ++ stw 30,-8(11) ++_GLOBAL(_savegpr_31) ++_GLOBAL(_save32gpr_31) ++ stw 31,-4(11) ++ blr ++ ++/* Routines for restoring integer registers, called by the compiler. */ ++/* Called with r11 pointing to the stack header word of the caller of the */ ++/* function, just beyond the end of the integer restore area. */ ++ ++_GLOBAL(_restgpr_14) ++_GLOBAL(_rest32gpr_14) ++ lwz 14,-72(11) /* restore gp registers */ ++_GLOBAL(_restgpr_15) ++_GLOBAL(_rest32gpr_15) ++ lwz 15,-68(11) ++_GLOBAL(_restgpr_16) ++_GLOBAL(_rest32gpr_16) ++ lwz 16,-64(11) ++_GLOBAL(_restgpr_17) ++_GLOBAL(_rest32gpr_17) ++ lwz 17,-60(11) ++_GLOBAL(_restgpr_18) ++_GLOBAL(_rest32gpr_18) ++ lwz 18,-56(11) ++_GLOBAL(_restgpr_19) ++_GLOBAL(_rest32gpr_19) ++ lwz 19,-52(11) ++_GLOBAL(_restgpr_20) ++_GLOBAL(_rest32gpr_20) ++ lwz 20,-48(11) ++_GLOBAL(_restgpr_21) ++_GLOBAL(_rest32gpr_21) ++ lwz 21,-44(11) ++_GLOBAL(_restgpr_22) ++_GLOBAL(_rest32gpr_22) ++ lwz 22,-40(11) ++_GLOBAL(_restgpr_23) ++_GLOBAL(_rest32gpr_23) ++ lwz 23,-36(11) ++_GLOBAL(_restgpr_24) ++_GLOBAL(_rest32gpr_24) ++ lwz 24,-32(11) ++_GLOBAL(_restgpr_25) ++_GLOBAL(_rest32gpr_25) ++ lwz 25,-28(11) ++_GLOBAL(_restgpr_26) ++_GLOBAL(_rest32gpr_26) ++ lwz 26,-24(11) ++_GLOBAL(_restgpr_27) ++_GLOBAL(_rest32gpr_27) ++ lwz 27,-20(11) ++_GLOBAL(_restgpr_28) ++_GLOBAL(_rest32gpr_28) ++ lwz 28,-16(11) ++_GLOBAL(_restgpr_29) ++_GLOBAL(_rest32gpr_29) ++ lwz 29,-12(11) ++_GLOBAL(_restgpr_30) ++_GLOBAL(_rest32gpr_30) ++ lwz 30,-8(11) ++_GLOBAL(_restgpr_31) ++_GLOBAL(_rest32gpr_31) ++ lwz 31,-4(11) ++ blr ++ ++/* Routines for restoring integer registers, called by the compiler. */ ++/* Called with r11 pointing to the stack header word of the caller of the */ ++/* function, just beyond the end of the integer restore area. */ ++ ++_GLOBAL(_restgpr_14_x) ++_GLOBAL(_rest32gpr_14_x) ++ lwz 14,-72(11) /* restore gp registers */ ++_GLOBAL(_restgpr_15_x) ++_GLOBAL(_rest32gpr_15_x) ++ lwz 15,-68(11) ++_GLOBAL(_restgpr_16_x) ++_GLOBAL(_rest32gpr_16_x) ++ lwz 16,-64(11) ++_GLOBAL(_restgpr_17_x) ++_GLOBAL(_rest32gpr_17_x) ++ lwz 17,-60(11) ++_GLOBAL(_restgpr_18_x) ++_GLOBAL(_rest32gpr_18_x) ++ lwz 18,-56(11) ++_GLOBAL(_restgpr_19_x) ++_GLOBAL(_rest32gpr_19_x) ++ lwz 19,-52(11) ++_GLOBAL(_restgpr_20_x) ++_GLOBAL(_rest32gpr_20_x) ++ lwz 20,-48(11) ++_GLOBAL(_restgpr_21_x) ++_GLOBAL(_rest32gpr_21_x) ++ lwz 21,-44(11) ++_GLOBAL(_restgpr_22_x) ++_GLOBAL(_rest32gpr_22_x) ++ lwz 22,-40(11) ++_GLOBAL(_restgpr_23_x) ++_GLOBAL(_rest32gpr_23_x) ++ lwz 23,-36(11) ++_GLOBAL(_restgpr_24_x) ++_GLOBAL(_rest32gpr_24_x) ++ lwz 24,-32(11) ++_GLOBAL(_restgpr_25_x) ++_GLOBAL(_rest32gpr_25_x) ++ lwz 25,-28(11) ++_GLOBAL(_restgpr_26_x) ++_GLOBAL(_rest32gpr_26_x) ++ lwz 26,-24(11) ++_GLOBAL(_restgpr_27_x) ++_GLOBAL(_rest32gpr_27_x) ++ lwz 27,-20(11) ++_GLOBAL(_restgpr_28_x) ++_GLOBAL(_rest32gpr_28_x) ++ lwz 28,-16(11) ++_GLOBAL(_restgpr_29_x) ++_GLOBAL(_rest32gpr_29_x) ++ lwz 29,-12(11) ++_GLOBAL(_restgpr_30_x) ++_GLOBAL(_rest32gpr_30_x) ++ lwz 30,-8(11) ++_GLOBAL(_restgpr_31_x) ++_GLOBAL(_rest32gpr_31_x) ++ lwz 0,4(11) ++ lwz 31,-4(11) ++ mtlr 0 ++ mr 1,11 ++ blr ++#endif +diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts +index 5bc09ad..f3083c7 100644 +--- a/arch/powerpc/boot/dts/mpc8377_rdb.dts ++++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts +@@ -164,12 +164,6 @@ + reg = <0x2>; + device_type = "ethernet-phy"; + }; +- phy3: ethernet-phy@3 { +- interrupt-parent = <&ipic>; +- interrupts = <18 0x8>; +- reg = <0x3>; +- device_type = "ethernet-phy"; +- }; + }; + + enet0: ethernet@24000 { +@@ -195,7 +189,7 @@ + interrupts = <35 0x8 36 0x8 37 0x8>; + phy-connection-type = "mii"; + interrupt-parent = <&ipic>; +- phy-handle = <&phy3>; ++ fixed-link = <1 1 1000 0 0>; + }; + + serial0: serial@4500 { +diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts +index 711f9a3..0e872a6 100644 +--- a/arch/powerpc/boot/dts/mpc8378_rdb.dts ++++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts +@@ -164,12 +164,6 @@ + reg = <0x2>; + device_type = "ethernet-phy"; + }; +- phy3: ethernet-phy@3 { +- interrupt-parent = <&ipic>; +- interrupts = <18 0x8>; +- reg = <0x3>; +- device_type = "ethernet-phy"; +- }; + }; + + enet0: ethernet@24000 { +@@ -195,7 +189,7 @@ + interrupts = <35 0x8 36 0x8 37 0x8>; + phy-connection-type = "mii"; + interrupt-parent = <&ipic>; +- phy-handle = <&phy3>; ++ fixed-link = <1 1 1000 0 0>; + }; + + serial0: serial@4500 { +diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts +index c11ceb7..1eb8def 100644 +--- a/arch/powerpc/boot/dts/mpc8379_rdb.dts ++++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts +@@ -164,12 +164,6 @@ + reg = <0x2>; + device_type = "ethernet-phy"; + }; +- phy3: ethernet-phy@3 { +- interrupt-parent = <&ipic>; +- interrupts = <18 0x8>; +- reg = <0x3>; +- device_type = "ethernet-phy"; +- }; + }; + + enet0: ethernet@24000 { +@@ -195,7 +189,7 @@ + interrupts = <35 0x8 36 0x8 37 0x8>; + phy-connection-type = "mii"; + interrupt-parent = <&ipic>; +- phy-handle = <&phy3>; ++ fixed-link = <1 1 1000 0 0>; + }; + + serial0: serial@4500 { +diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts +index fa298a8..4811b81 100644 +--- a/arch/powerpc/boot/dts/mpc8548cds.dts ++++ b/arch/powerpc/boot/dts/mpc8548cds.dts +@@ -409,7 +409,7 @@ + interrupts = <26 2>; + bus-range = <0 255>; + ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 +- 0x1000000 0x0 0x0 0xe3000000 0x0 0x8000000>; ++ 0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>; + clock-frequency = <33333333>; + #interrupt-cells = <1>; + #size-cells = <2>; +@@ -428,7 +428,7 @@ + + 0x1000000 0x0 0x0 + 0x1000000 0x0 0x0 +- 0x0 0x8000000>; ++ 0x0 0x100000>; + }; + }; + }; +diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +index 7d18440..5428f9f 100644 +--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig ++++ b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Fri Apr 11 11:10:09 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:21 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -196,7 +201,6 @@ CONFIG_PREEMPT_NONE=y + # CONFIG_PREEMPT is not set + CONFIG_BINFMT_ELF=y + # CONFIG_BINFMT_MISC is not set +-CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_IOMMU_HELPER is not set + CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + CONFIG_ARCH_HAS_WALK_MEMORY=y +@@ -211,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -239,6 +245,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -248,11 +255,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -300,8 +307,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -362,6 +367,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + CONFIG_MTD_OF_PARTS=y ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -445,6 +451,7 @@ CONFIG_MTD_NAND_FSL_ELBC=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -641,7 +648,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -661,6 +667,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -668,6 +675,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -724,6 +732,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -751,7 +760,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -762,13 +770,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -795,6 +796,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -804,17 +806,12 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + CONFIG_SPI=y + # CONFIG_SPI_DEBUG is not set + CONFIG_SPI_MASTER=y +@@ -919,12 +916,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -977,16 +984,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1004,6 +1015,7 @@ CONFIG_USB_UHCI_HCD=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1023,7 +1035,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1061,6 +1075,7 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + CONFIG_USB_GADGET=y + # CONFIG_USB_GADGET_DEBUG is not set + # CONFIG_USB_GADGET_DEBUG_FILES is not set +@@ -1072,6 +1087,7 @@ CONFIG_USB_GADGET_NET2280=y + CONFIG_USB_NET2280=y + # CONFIG_USB_GADGET_PXA2XX is not set + # CONFIG_USB_GADGET_M66592 is not set ++# CONFIG_USB_GADGET_PXA27X is not set + # CONFIG_USB_GADGET_GOKU is not set + # CONFIG_USB_GADGET_LH7A40X is not set + # CONFIG_USB_GADGET_OMAP is not set +@@ -1090,6 +1106,7 @@ CONFIG_USB_ETH_RNDIS=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1144,11 +1161,8 @@ CONFIG_RTC_DRV_DS1307=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1168,7 +1182,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1237,7 +1250,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1282,6 +1294,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1302,6 +1315,7 @@ CONFIG_HAVE_LMB=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1312,6 +1326,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1324,6 +1339,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1335,6 +1351,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1345,51 +1362,81 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +index 1f57456..9bc3a03 100644 +--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig ++++ b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:15 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:21 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -238,6 +245,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -247,11 +255,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -299,8 +307,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -361,6 +367,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -444,6 +451,7 @@ CONFIG_MTD_NAND_IDS=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -549,7 +557,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set ++# CONFIG_SATA_SIL24 is not set ++CONFIG_SATA_FSL=y ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -559,13 +571,11 @@ CONFIG_ATA=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-CONFIG_SATA_FSL=y + # CONFIG_PATA_ALI is not set + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -605,6 +615,7 @@ CONFIG_SATA_FSL=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + CONFIG_MD=y + CONFIG_BLK_DEV_MD=y + CONFIG_MD_LINEAR=y +@@ -698,7 +709,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -718,6 +728,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -725,6 +736,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -781,6 +793,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -808,7 +821,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -819,13 +831,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -852,6 +857,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -861,17 +867,12 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + CONFIG_SPI=y + # CONFIG_SPI_DEBUG is not set + CONFIG_SPI_MASTER=y +@@ -976,12 +977,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -1034,16 +1045,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1061,6 +1076,7 @@ CONFIG_USB_UHCI_HCD=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1080,7 +1096,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1118,6 +1136,7 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + CONFIG_USB_GADGET=y + # CONFIG_USB_GADGET_DEBUG is not set + # CONFIG_USB_GADGET_DEBUG_FILES is not set +@@ -1129,6 +1148,7 @@ CONFIG_USB_GADGET_NET2280=y + CONFIG_USB_NET2280=y + # CONFIG_USB_GADGET_PXA2XX is not set + # CONFIG_USB_GADGET_M66592 is not set ++# CONFIG_USB_GADGET_PXA27X is not set + # CONFIG_USB_GADGET_GOKU is not set + # CONFIG_USB_GADGET_LH7A40X is not set + # CONFIG_USB_GADGET_OMAP is not set +@@ -1147,6 +1167,7 @@ CONFIG_USB_ETH_RNDIS=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1201,11 +1222,8 @@ CONFIG_RTC_DRV_DS1307=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1225,7 +1243,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1294,7 +1311,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1339,6 +1355,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1351,6 +1368,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1358,6 +1376,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1368,6 +1387,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1380,6 +1400,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1391,6 +1412,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1401,51 +1423,81 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig +index 50cceda..1eca26f 100644 +--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig ++++ b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:36:51 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:22 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -212,11 +217,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -239,6 +246,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -248,11 +256,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -300,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -355,6 +361,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -522,7 +529,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -546,6 +552,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -553,6 +560,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -600,6 +608,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -628,7 +637,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -639,13 +647,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -671,6 +672,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -680,19 +682,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -775,12 +771,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -811,6 +817,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -819,6 +827,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -870,11 +879,8 @@ CONFIG_RTC_DRV_DS1374=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -894,7 +900,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -952,7 +957,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -995,6 +999,7 @@ CONFIG_UCC=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1005,6 +1010,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1012,6 +1018,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1021,6 +1028,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1030,52 +1038,82 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +index ac91302..de95d32 100644 +--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig ++++ b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:16 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:24 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -212,11 +217,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -239,6 +246,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -248,11 +256,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -300,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -355,6 +361,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -526,7 +533,6 @@ CONFIG_E1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -550,6 +556,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -557,6 +564,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -613,6 +621,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -653,13 +662,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -686,6 +688,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -695,17 +698,12 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + CONFIG_SPI=y + CONFIG_SPI_MASTER=y + +@@ -809,12 +807,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -867,16 +875,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_FSL is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -894,6 +906,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -913,7 +926,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -951,6 +966,7 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + CONFIG_MMC=y + # CONFIG_MMC_DEBUG is not set +@@ -962,6 +978,7 @@ CONFIG_MMC=y + CONFIG_MMC_BLOCK=y + CONFIG_MMC_BLOCK_BOUNCE=y + # CONFIG_SDIO_UART is not set ++# CONFIG_MMC_TEST is not set + + # + # MMC/SD Host Controller Drivers +@@ -972,14 +989,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y + CONFIG_MMC_SPI=y + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -999,7 +1013,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1060,7 +1073,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1147,6 +1159,7 @@ CONFIG_UCC=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + CONFIG_CRC_ITU_T=y +@@ -1157,6 +1170,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1164,6 +1178,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1173,6 +1188,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1182,52 +1198,82 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig +index e1de399..b47fc91 100644 +--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig ++++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:17 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:25 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -432,6 +438,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -541,7 +548,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set ++# CONFIG_SATA_SIL24 is not set ++# CONFIG_SATA_FSL is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -551,13 +562,11 @@ CONFIG_ATA=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + CONFIG_SATA_SIL=y +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + # CONFIG_PATA_ALI is not set + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -598,6 +607,7 @@ CONFIG_SATA_SIL=y + # CONFIG_PATA_WINBOND is not set + CONFIG_PATA_PLATFORM=y + CONFIG_PATA_OF_PLATFORM=y ++# CONFIG_PATA_SCH is not set + CONFIG_MD=y + CONFIG_BLK_DEV_MD=y + CONFIG_MD_LINEAR=y +@@ -659,7 +669,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -679,6 +688,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -686,6 +696,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -722,6 +733,7 @@ CONFIG_NETDEV_10000=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -749,7 +761,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -760,13 +771,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -793,6 +797,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -802,17 +807,12 @@ CONFIG_I2C_MPC=y + CONFIG_SENSORS_PCF8574=y + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + CONFIG_SPI=y + CONFIG_SPI_MASTER=y + +@@ -862,12 +862,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -905,16 +915,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + # CONFIG_USB_OHCI_HCD is not set + CONFIG_USB_UHCI_HCD=y + # CONFIG_USB_SL811_HCD is not set +@@ -925,6 +939,7 @@ CONFIG_USB_UHCI_HCD=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -945,6 +960,7 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -982,10 +998,12 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1040,11 +1058,8 @@ CONFIG_RTC_DRV_DS1307=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1064,7 +1079,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1126,7 +1140,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1210,6 +1223,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1220,6 +1234,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1227,6 +1242,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1236,6 +1252,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1245,51 +1262,81 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +index b4e39cf..fdac484 100644 +--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig ++++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:18 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:26 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -432,6 +438,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -587,7 +594,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -607,6 +613,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -614,6 +621,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -650,6 +658,7 @@ CONFIG_NETDEV_10000=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -677,7 +686,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -688,13 +696,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -721,6 +722,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -730,17 +732,12 @@ CONFIG_I2C_MPC=y + CONFIG_SENSORS_PCF8574=y + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + CONFIG_SPI=y + CONFIG_SPI_MASTER=y + +@@ -790,12 +787,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -833,16 +840,20 @@ CONFIG_USB=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + # CONFIG_USB_OHCI_HCD is not set + CONFIG_USB_UHCI_HCD=y + # CONFIG_USB_SL811_HCD is not set +@@ -853,6 +864,7 @@ CONFIG_USB_UHCI_HCD=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -873,6 +885,7 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -909,10 +922,12 @@ CONFIG_USB_MON=y + # CONFIG_USB_LD is not set + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -967,11 +982,8 @@ CONFIG_RTC_DRV_DS1307=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -991,7 +1003,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1053,7 +1064,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1137,6 +1147,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1147,6 +1158,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1154,6 +1166,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1163,6 +1176,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1172,51 +1186,81 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig +index b4e82c0..c82e96e 100644 +--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig ++++ b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:36:56 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:26 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -353,6 +359,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -471,7 +478,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -491,6 +497,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -498,6 +505,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -544,6 +552,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -571,7 +580,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -582,13 +590,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -614,6 +615,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -623,19 +625,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -718,12 +714,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -754,6 +760,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -762,6 +770,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -813,11 +822,8 @@ CONFIG_RTC_DRV_DS1374=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -837,7 +843,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -895,7 +900,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -936,6 +940,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -946,6 +951,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -953,6 +959,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -962,6 +969,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -971,51 +979,81 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig +index d50a96e..20fd9f5 100644 +--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig ++++ b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:36:57 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:27 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -110,12 +113,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -353,6 +359,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -520,7 +527,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -544,6 +550,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -551,6 +558,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -598,6 +606,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -626,7 +635,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -637,13 +645,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -669,6 +670,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -678,19 +680,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -773,12 +769,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -809,6 +815,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -817,6 +825,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -868,11 +877,8 @@ CONFIG_RTC_DRV_DS1374=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -892,7 +898,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -950,7 +955,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -993,6 +997,7 @@ CONFIG_UCC=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1003,6 +1008,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1010,6 +1016,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1019,6 +1026,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1028,52 +1036,82 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig +index f377cde..0f94d9f 100644 +--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig ++++ b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:23 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:28 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y +@@ -111,12 +114,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -211,11 +216,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -234,6 +241,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -243,11 +251,11 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -295,8 +303,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -350,6 +356,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -411,8 +418,10 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_DEBUG is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set +-# CONFIG_SATA_MV is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_FSL=y ++CONFIG_ATA_SFF=y ++# CONFIG_SATA_MV is not set + # CONFIG_PATA_PLATFORM is not set + # CONFIG_MD is not set + # CONFIG_MACINTOSH_DRIVERS is not set +@@ -459,6 +468,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -503,6 +513,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -537,13 +548,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + CONFIG_I2C_MPC=y +@@ -552,6 +556,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_SIMTEC is not set + # CONFIG_I2C_TAOS_EVM is not set + # CONFIG_I2C_STUB is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -561,19 +566,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -646,12 +645,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -680,6 +689,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + # CONFIG_USB_ARCH_HAS_OHCI is not set + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -688,13 +699,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -714,7 +722,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -772,7 +779,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -817,6 +823,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -827,6 +834,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -834,6 +842,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -841,6 +850,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_KERNEL is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -850,50 +860,80 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +index a633176..0d44855 100644 +--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig ++++ b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:24 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Tue Jun 10 09:17:12 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y +@@ -111,12 +114,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -211,11 +216,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -234,6 +241,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -243,11 +251,11 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -290,8 +298,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -345,6 +351,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -352,6 +359,7 @@ CONFIG_BLK_DEV=y + CONFIG_BLK_DEV_LOOP=y + # CONFIG_BLK_DEV_CRYPTOLOOP is not set + # CONFIG_BLK_DEV_NBD is not set ++# CONFIG_BLK_DEV_UB is not set + CONFIG_BLK_DEV_RAM=y + CONFIG_BLK_DEV_RAM_COUNT=16 + CONFIG_BLK_DEV_RAM_SIZE=32768 +@@ -406,8 +414,10 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_DEBUG is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set +-# CONFIG_SATA_MV is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_FSL=y ++CONFIG_ATA_SFF=y ++# CONFIG_SATA_MV is not set + # CONFIG_PATA_PLATFORM is not set + CONFIG_MD=y + CONFIG_BLK_DEV_MD=y +@@ -444,7 +454,7 @@ CONFIG_MARVELL_PHY=y + # CONFIG_BROADCOM_PHY is not set + # CONFIG_ICPLUS_PHY is not set + # CONFIG_REALTEK_PHY is not set +-# CONFIG_FIXED_PHY is not set ++CONFIG_FIXED_PHY=y + # CONFIG_MDIO_BITBANG is not set + CONFIG_NET_ETHERNET=y + CONFIG_MII=y +@@ -464,6 +474,16 @@ CONFIG_GFAR_NAPI=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set ++ ++# ++# USB Network Adapters ++# ++# CONFIG_USB_CATC is not set ++# CONFIG_USB_KAWETH is not set ++# CONFIG_USB_PEGASUS is not set ++# CONFIG_USB_RTL8150 is not set ++# CONFIG_USB_USBNET is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -508,6 +528,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -542,13 +563,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + CONFIG_I2C_MPC=y +@@ -557,6 +571,8 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_SIMTEC is not set + # CONFIG_I2C_TAOS_EVM is not set + # CONFIG_I2C_STUB is not set ++# CONFIG_I2C_TINY_USB is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -566,19 +582,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -642,6 +652,11 @@ CONFIG_WATCHDOG=y + CONFIG_83xx_WDT=y + + # ++# USB-based Watchdog Cards ++# ++# CONFIG_USBPCWATCHDOG is not set ++ ++# + # Sonics Silicon Backplane + # + CONFIG_SSB_POSSIBLE=y +@@ -651,13 +666,24 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y ++# CONFIG_USB_DABUSB is not set + + # + # Graphics support +@@ -680,6 +706,14 @@ CONFIG_HID_SUPPORT=y + CONFIG_HID=y + # CONFIG_HID_DEBUG is not set + # CONFIG_HIDRAW is not set ++ ++# ++# USB Input Devices ++# ++CONFIG_USB_HID=y ++# CONFIG_USB_HIDINPUT_POWERBOOK is not set ++# CONFIG_HID_FF is not set ++# CONFIG_USB_HIDDEV is not set + CONFIG_USB_SUPPORT=y + CONFIG_USB_ARCH_HAS_HCD=y + # CONFIG_USB_ARCH_HAS_OHCI is not set +@@ -695,33 +729,83 @@ CONFIG_USB=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + # CONFIG_USB_SL811_HCD is not set + # CONFIG_USB_R8A66597_HCD is not set + + # ++# USB Device Class drivers ++# ++# CONFIG_USB_ACM is not set ++# CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set ++ ++# + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' + # ++ ++# ++# may also be needed; see USB_STORAGE Help for more information ++# ++# CONFIG_USB_STORAGE is not set ++# CONFIG_USB_LIBUSUAL is not set ++ ++# ++# USB Imaging devices ++# ++# CONFIG_USB_MDC800 is not set ++# CONFIG_USB_MICROTEK is not set ++CONFIG_USB_MON=y ++ ++# ++# USB port drivers ++# ++# CONFIG_USB_SERIAL is not set ++ ++# ++# USB Miscellaneous drivers ++# ++# CONFIG_USB_EMI62 is not set ++# CONFIG_USB_EMI26 is not set ++# CONFIG_USB_ADUTUX is not set ++# CONFIG_USB_AUERSWALD is not set ++# CONFIG_USB_RIO500 is not set ++# CONFIG_USB_LEGOTOWER is not set ++# CONFIG_USB_LCD is not set ++# CONFIG_USB_BERRY_CHARGE is not set ++# CONFIG_USB_LED is not set ++# CONFIG_USB_CYPRESS_CY7C63 is not set ++# CONFIG_USB_CYTHERM is not set ++# CONFIG_USB_PHIDGET is not set ++# CONFIG_USB_IDMOUSE is not set ++# CONFIG_USB_FTDI_ELAN is not set ++# CONFIG_USB_APPLEDISPLAY is not set ++# CONFIG_USB_SISUSBVGA is not set ++# CONFIG_USB_LD is not set ++# CONFIG_USB_TRANCEVIBRATOR is not set ++# CONFIG_USB_IOWARRIOR is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -741,7 +825,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -799,7 +882,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -844,6 +926,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -854,6 +937,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -861,6 +945,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + # CONFIG_ENABLE_MUST_CHECK is not set ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -868,6 +953,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y + # CONFIG_DEBUG_KERNEL is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -881,50 +967,80 @@ CONFIG_ASYNC_CORE=y + CONFIG_ASYNC_MEMCPY=y + CONFIG_ASYNC_XOR=y + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig +index 1f15182..1752918 100644 +--- a/arch/powerpc/configs/83xx/sbc834x_defconfig ++++ b/arch/powerpc/configs/83xx/sbc834x_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:38 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:30 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -109,12 +112,14 @@ CONFIG_SLAB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -232,6 +239,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -241,11 +249,11 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -293,8 +301,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -348,6 +354,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -420,6 +427,7 @@ CONFIG_GIANFAR=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -464,6 +472,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -498,13 +507,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + CONFIG_I2C_MPC=y +@@ -513,6 +515,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_SIMTEC is not set + # CONFIG_I2C_TAOS_EVM is not set + # CONFIG_I2C_STUB is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -522,19 +525,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -607,12 +604,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + # CONFIG_DAB is not set + + # +@@ -640,13 +647,10 @@ CONFIG_HID=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -659,7 +663,6 @@ CONFIG_HID=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -717,7 +720,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -746,6 +748,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -756,6 +759,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -763,6 +767,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -770,6 +775,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_KERNEL is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -779,50 +785,80 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + # CONFIG_CRYPTO_HW is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig +index 2d0debc..b82bb04 100644 +--- a/arch/powerpc/configs/85xx/ksi8560_defconfig ++++ b/arch/powerpc/configs/85xx/ksi8560_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.24 +-# Mon Feb 11 16:25:19 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:30 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -68,23 +70,22 @@ CONFIG_SYSVIPC_SYSCTL=y + # CONFIG_POSIX_MQUEUE is not set + # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_TASKSTATS is not set +-# CONFIG_USER_NS is not set +-# CONFIG_PID_NS is not set + # CONFIG_AUDIT is not set + # CONFIG_IKCONFIG is not set + CONFIG_LOG_BUF_SHIFT=14 + # CONFIG_CGROUPS is not set +-CONFIG_FAIR_GROUP_SCHED=y +-CONFIG_FAIR_USER_SCHED=y +-# CONFIG_FAIR_CGROUP_SCHED is not set ++# CONFIG_GROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y ++CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set ++# CONFIG_NAMESPACES is not set + CONFIG_BLK_DEV_INITRD=y + CONFIG_INITRAMFS_SOURCE="" + # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -92,6 +93,7 @@ CONFIG_HOTPLUG=y + CONFIG_PRINTK=y + CONFIG_BUG=y + CONFIG_ELF_CORE=y ++CONFIG_COMPAT_BRK=y + CONFIG_BASE_FULL=y + CONFIG_FUTEX=y + CONFIG_ANON_INODES=y +@@ -109,6 +111,8 @@ CONFIG_SLUB=y + # CONFIG_MARKERS is not set + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y ++CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -134,7 +138,6 @@ CONFIG_DEFAULT_AS=y + # CONFIG_DEFAULT_NOOP is not set + CONFIG_DEFAULT_IOSCHED="anticipatory" + CONFIG_CLASSIC_RCU=y +-# CONFIG_PREEMPT_RCU is not set + + # + # Platform support +@@ -191,12 +194,13 @@ CONFIG_HZ=250 + CONFIG_PREEMPT_NONE=y + # CONFIG_PREEMPT_VOLUNTARY is not set + # CONFIG_PREEMPT is not set +-CONFIG_RCU_TRACE=y + CONFIG_BINFMT_ELF=y + CONFIG_BINFMT_MISC=y + CONFIG_MATH_EMULATION=y + # CONFIG_IOMMU_HELPER is not set + CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y ++CONFIG_ARCH_HAS_WALK_MEMORY=y ++CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y + CONFIG_ARCH_FLATMEM_ENABLE=y + CONFIG_ARCH_POPULATES_NODE_MAP=y + CONFIG_SELECT_MEMORY_MODEL=y +@@ -207,16 +211,17 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set + # CONFIG_SECCOMP is not set +-CONFIG_WANT_DEVICE_TREE=y + CONFIG_ISA_DMA_API=y + + # +@@ -229,6 +234,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -238,11 +244,12 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -290,8 +297,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -351,6 +356,8 @@ CONFIG_MTD_CONCAT=y + CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set ++# CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -430,17 +437,19 @@ CONFIG_BLK_DEV_LOOP=y + CONFIG_BLK_DEV_RAM=y + CONFIG_BLK_DEV_RAM_COUNT=16 + CONFIG_BLK_DEV_RAM_SIZE=32768 +-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 ++# CONFIG_BLK_DEV_XIP is not set + # CONFIG_CDROM_PKTCDVD is not set + # CONFIG_ATA_OVER_ETH is not set + CONFIG_MISC_DEVICES=y + # CONFIG_EEPROM_93CX6 is not set ++# CONFIG_ENCLOSURE_SERVICES is not set ++CONFIG_HAVE_IDE=y + CONFIG_IDE=y + CONFIG_IDE_MAX_HWIFS=4 + CONFIG_BLK_DEV_IDE=y + + # +-# Please see Documentation/ide.txt for help/info on IDE drives ++# Please see Documentation/ide/ide.txt for help/info on IDE drives + # + # CONFIG_BLK_DEV_IDE_SATA is not set + # CONFIG_BLK_DEV_IDEDISK is not set +@@ -457,7 +466,7 @@ CONFIG_IDE_PROC_FS=y + CONFIG_IDE_GENERIC=y + # CONFIG_BLK_DEV_PLATFORM is not set + # CONFIG_BLK_DEV_IDEDMA is not set +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -517,6 +526,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -561,6 +571,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -594,12 +605,7 @@ CONFIG_GEN_RTC=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -615,6 +621,7 @@ CONFIG_HWMON=y + # CONFIG_SENSORS_W83627HF is not set + # CONFIG_SENSORS_W83627EHF is not set + # CONFIG_HWMON_DEBUG_CHIP is not set ++# CONFIG_THERMAL is not set + # CONFIG_WATCHDOG is not set + + # +@@ -627,12 +634,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -660,19 +677,20 @@ CONFIG_USB_SUPPORT=y + # CONFIG_USB_ARCH_HAS_HCD is not set + # CONFIG_USB_ARCH_HAS_OHCI is not set + # CONFIG_USB_ARCH_HAS_EHCI is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' + # + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set ++# CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set +- +-# +-# Userspace I/O +-# ++# CONFIG_DMADEVICES is not set + # CONFIG_UIO is not set + + # +@@ -693,14 +711,11 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set +-# CONFIG_MINIX_FS is not set +-# CONFIG_ROMFS_FS is not set ++CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y + CONFIG_INOTIFY_USER=y + # CONFIG_QUOTA is not set +-CONFIG_DNOTIFY=y + # CONFIG_AUTOFS_FS is not set + # CONFIG_AUTOFS4_FS is not set + # CONFIG_FUSE_FS is not set +@@ -743,15 +758,16 @@ CONFIG_TMPFS=y + # CONFIG_JFFS2_FS is not set + # CONFIG_CRAMFS is not set + # CONFIG_VXFS_FS is not set ++# CONFIG_MINIX_FS is not set + # CONFIG_HPFS_FS is not set + # CONFIG_QNX4FS_FS is not set ++# CONFIG_ROMFS_FS is not set + # CONFIG_SYSV_FS is not set + # CONFIG_UFS_FS is not set + CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -790,6 +806,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -800,6 +817,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -807,6 +825,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + CONFIG_DEBUG_FS=y +@@ -817,7 +836,9 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set ++# CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set + # CONFIG_RT_MUTEX_TESTER is not set + # CONFIG_DEBUG_SPINLOCK is not set +@@ -829,9 +850,9 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set +-CONFIG_FORCED_INLINING=y + # CONFIG_BOOT_PRINTK_DELAY is not set + # CONFIG_BACKTRACE_SELF_TEST is not set + # CONFIG_FAULT_INJECTION is not set +@@ -841,6 +862,7 @@ CONFIG_FORCED_INLINING=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_VIRQ_DEBUG is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set +@@ -852,48 +874,78 @@ CONFIG_FORCED_INLINING=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig +index b998539..f33fd51 100644 +--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig ++++ b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:25 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:31 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -113,6 +116,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -153,6 +157,7 @@ CONFIG_MPC8540_ADS=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -208,11 +213,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -229,6 +236,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -238,11 +246,12 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -290,8 +299,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -419,6 +426,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -463,6 +471,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -494,12 +503,7 @@ CONFIG_GEN_RTC=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -528,12 +532,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -561,6 +575,8 @@ CONFIG_USB_SUPPORT=y + # CONFIG_USB_ARCH_HAS_HCD is not set + # CONFIG_USB_ARCH_HAS_OHCI is not set + # CONFIG_USB_ARCH_HAS_EHCI is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -569,13 +585,10 @@ CONFIG_USB_SUPPORT=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -595,7 +608,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -652,7 +664,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -691,6 +702,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -701,6 +713,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -708,6 +721,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -718,6 +732,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -730,6 +745,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -740,6 +756,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -750,47 +767,77 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig +index a9f113b..042a85e 100644 +--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig ++++ b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:03 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:32 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + CONFIG_KALLSYMS_EXTRA_PASS=y +@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -203,7 +208,6 @@ CONFIG_PREEMPT_NONE=y + # CONFIG_PREEMPT is not set + CONFIG_BINFMT_ELF=y + CONFIG_BINFMT_MISC=m +-CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_MATH_EMULATION=y + # CONFIG_IOMMU_HELPER is not set + CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +@@ -219,11 +223,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -248,6 +254,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -257,11 +264,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -332,8 +340,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -395,6 +405,7 @@ CONFIG_FW_LOADER=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -501,7 +512,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_AHCI=y ++# CONFIG_SATA_SIL24 is not set ++# CONFIG_SATA_FSL is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -511,13 +526,11 @@ CONFIG_SATA_AHCI=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + CONFIG_PATA_ALI=y + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -557,6 +570,7 @@ CONFIG_PATA_ALI=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -622,7 +636,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -642,6 +655,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -649,6 +663,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -713,6 +728,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -744,7 +760,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + CONFIG_NVRAM=y +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -755,13 +770,6 @@ CONFIG_I2C_BOARDINFO=y + # CONFIG_I2C_CHARDEV is not set + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -788,6 +796,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -797,19 +806,13 @@ CONFIG_SENSORS_EEPROM=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -826,13 +829,33 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + CONFIG_DVB_CORE=m +-# CONFIG_DVB_CORE_ATTACH is not set ++CONFIG_VIDEO_MEDIA=m ++ ++# ++# Multimedia drivers ++# ++# CONFIG_MEDIA_ATTACH is not set ++CONFIG_MEDIA_TUNER=m ++# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set ++CONFIG_MEDIA_TUNER_SIMPLE=m ++CONFIG_MEDIA_TUNER_TDA8290=m ++CONFIG_MEDIA_TUNER_TDA9887=m ++CONFIG_MEDIA_TUNER_TEA5761=m ++CONFIG_MEDIA_TUNER_TEA5767=m ++CONFIG_MEDIA_TUNER_MT20XX=m ++CONFIG_MEDIA_TUNER_XC2028=m ++CONFIG_MEDIA_TUNER_XC5000=m + CONFIG_DVB_CAPTURE_DRIVERS=y + + # +@@ -875,14 +898,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # + # DVB-S (satellite) frontends + # +-# CONFIG_DVB_STV0299 is not set + # CONFIG_DVB_CX24110 is not set + # CONFIG_DVB_CX24123 is not set +-# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_MT312 is not set +-# CONFIG_DVB_VES1X93 is not set + # CONFIG_DVB_S5H1420 is not set ++# CONFIG_DVB_STV0299 is not set ++# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_TDA10086 is not set ++# CONFIG_DVB_VES1X93 is not set ++# CONFIG_DVB_TUNER_ITD1000 is not set ++# CONFIG_DVB_TDA826X is not set ++# CONFIG_DVB_TUA6100 is not set + + # + # DVB-T (terrestrial) frontends +@@ -900,6 +926,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_DIB3000MC is not set + # CONFIG_DVB_DIB7000M is not set + # CONFIG_DVB_DIB7000P is not set ++# CONFIG_DVB_TDA10048 is not set + + # + # DVB-C (cable) frontends +@@ -918,27 +945,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_BCM3510 is not set + # CONFIG_DVB_LGDT330X is not set + # CONFIG_DVB_S5H1409 is not set ++# CONFIG_DVB_AU8522 is not set ++# CONFIG_DVB_S5H1411 is not set + + # +-# Tuners/PLL support ++# Digital terrestrial only tuners/PLL + # + # CONFIG_DVB_PLL is not set +-# CONFIG_DVB_TDA826X is not set +-# CONFIG_DVB_TDA827X is not set +-# CONFIG_DVB_TDA18271 is not set +-# CONFIG_DVB_TUNER_QT1010 is not set +-# CONFIG_DVB_TUNER_MT2060 is not set +-# CONFIG_DVB_TUNER_MT2266 is not set +-# CONFIG_DVB_TUNER_MT2131 is not set + # CONFIG_DVB_TUNER_DIB0070 is not set +-# CONFIG_DVB_TUNER_XC5000 is not set + + # +-# Miscellaneous devices ++# SEC control devices for DVB-S + # + # CONFIG_DVB_LNBP21 is not set ++# CONFIG_DVB_ISL6405 is not set + # CONFIG_DVB_ISL6421 is not set +-# CONFIG_DVB_TUA6100 is not set + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -1005,6 +1026,7 @@ CONFIG_SND_AC97_CODEC=y + # CONFIG_SND_AU8810 is not set + # CONFIG_SND_AU8820 is not set + # CONFIG_SND_AU8830 is not set ++# CONFIG_SND_AW2 is not set + # CONFIG_SND_AZT3328 is not set + # CONFIG_SND_BT87X is not set + # CONFIG_SND_CA0106 is not set +@@ -1079,11 +1101,11 @@ CONFIG_SND_INTEL8X0=y + # CONFIG_SND_SOC is not set + + # +-# SoC Audio support for SuperH ++# ALSA SoC audio for Freescale SOCs + # + + # +-# ALSA SoC audio for Freescale SOCs ++# SoC Audio for the Texas Instruments OMAP + # + + # +@@ -1118,16 +1140,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_FSL is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1145,6 +1171,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1164,7 +1191,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1202,10 +1231,12 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1257,23 +1288,19 @@ CONFIG_RTC_DRV_CMOS=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + CONFIG_DMADEVICES=y + + # + # DMA Devices + # + CONFIG_FSL_DMA=y +-# CONFIG_FSL_DMA_SELFTEST is not set + CONFIG_DMA_ENGINE=y + + # + # DMA Clients + # + # CONFIG_NET_DMA is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1293,7 +1320,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1363,10 +1389,9 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=y + # CONFIG_NFSD_V3 is not set +-CONFIG_NFSD_TCP=y ++# CONFIG_NFSD_V4 is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1450,9 +1475,10 @@ CONFIG_NLS_UTF8=m + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set +-# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + # CONFIG_CRC7 is not set + CONFIG_LIBCRC32C=m +@@ -1469,6 +1495,7 @@ CONFIG_HAVE_LMB=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1479,6 +1506,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1492,6 +1520,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1503,6 +1532,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1513,52 +1543,82 @@ CONFIG_DEBUG_INFO=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + CONFIG_CRYPTO_HMAC=y + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + CONFIG_CRYPTO_SHA1=m + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig +index 851ac91..e19592b 100644 +--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig ++++ b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:27 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:33 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -113,6 +116,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -153,6 +157,7 @@ CONFIG_MPC8560_ADS=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -238,6 +245,7 @@ CONFIG_PCI_LEGACY=y + CONFIG_PCI_DEBUG=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -247,11 +255,12 @@ CONFIG_PCI_DEBUG=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -299,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -462,7 +469,6 @@ CONFIG_E1000_NAPI=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -482,6 +488,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -489,6 +496,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -535,6 +543,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -572,12 +581,7 @@ CONFIG_GEN_RTC=y + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -610,12 +614,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -646,6 +660,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -654,14 +670,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -681,7 +694,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -738,7 +750,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -777,6 +788,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -787,6 +799,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -794,6 +807,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -804,6 +818,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -816,6 +831,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -827,6 +843,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -837,49 +854,79 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig +index 2b866b3..28004e9 100644 +--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig ++++ b/arch/powerpc/configs/85xx/mpc8568mds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:05 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:34 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -111,12 +114,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -156,6 +161,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + CONFIG_MPC85xx_MDS=y + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -212,11 +218,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -240,6 +248,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -249,11 +258,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -301,8 +311,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -358,6 +366,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -525,7 +534,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -546,6 +554,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -553,6 +562,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -600,6 +610,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -629,7 +640,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -640,13 +650,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -672,6 +675,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -681,19 +685,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -776,12 +774,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -812,6 +820,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -820,6 +830,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -871,11 +882,8 @@ CONFIG_RTC_DRV_DS1374=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -895,7 +903,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -953,7 +960,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -994,6 +1000,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1004,6 +1011,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1011,6 +1019,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1021,6 +1030,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1033,6 +1043,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1045,6 +1056,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_PAGEALLOC is not set + CONFIG_DEBUGGER=y + # CONFIG_XMON is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + CONFIG_PPC_EARLY_DEBUG=y + # CONFIG_PPC_EARLY_DEBUG_LPAR is not set +@@ -1066,52 +1078,82 @@ CONFIG_PPC_EARLY_DEBUG=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig +index 53aa6f3..03627cf 100644 +--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig ++++ b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:06 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:35 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + CONFIG_KALLSYMS_EXTRA_PASS=y +@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -162,6 +167,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + CONFIG_MPC85xx_DS=y ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -217,11 +223,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -246,6 +254,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -255,11 +264,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -330,8 +340,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -393,6 +405,7 @@ CONFIG_FW_LOADER=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -499,7 +512,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_AHCI=y ++# CONFIG_SATA_SIL24 is not set ++# CONFIG_SATA_FSL is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -509,13 +526,11 @@ CONFIG_SATA_AHCI=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + CONFIG_PATA_ALI=y + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -555,6 +570,7 @@ CONFIG_PATA_ALI=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -620,7 +636,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -640,6 +655,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -647,6 +663,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -711,6 +728,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -742,7 +760,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + CONFIG_NVRAM=y +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -753,13 +770,6 @@ CONFIG_I2C_BOARDINFO=y + # CONFIG_I2C_CHARDEV is not set + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -786,6 +796,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -795,19 +806,13 @@ CONFIG_SENSORS_EEPROM=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -824,13 +829,33 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + CONFIG_DVB_CORE=m +-# CONFIG_DVB_CORE_ATTACH is not set ++CONFIG_VIDEO_MEDIA=m ++ ++# ++# Multimedia drivers ++# ++# CONFIG_MEDIA_ATTACH is not set ++CONFIG_MEDIA_TUNER=m ++# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set ++CONFIG_MEDIA_TUNER_SIMPLE=m ++CONFIG_MEDIA_TUNER_TDA8290=m ++CONFIG_MEDIA_TUNER_TDA9887=m ++CONFIG_MEDIA_TUNER_TEA5761=m ++CONFIG_MEDIA_TUNER_TEA5767=m ++CONFIG_MEDIA_TUNER_MT20XX=m ++CONFIG_MEDIA_TUNER_XC2028=m ++CONFIG_MEDIA_TUNER_XC5000=m + CONFIG_DVB_CAPTURE_DRIVERS=y + + # +@@ -873,14 +898,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # + # DVB-S (satellite) frontends + # +-# CONFIG_DVB_STV0299 is not set + # CONFIG_DVB_CX24110 is not set + # CONFIG_DVB_CX24123 is not set +-# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_MT312 is not set +-# CONFIG_DVB_VES1X93 is not set + # CONFIG_DVB_S5H1420 is not set ++# CONFIG_DVB_STV0299 is not set ++# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_TDA10086 is not set ++# CONFIG_DVB_VES1X93 is not set ++# CONFIG_DVB_TUNER_ITD1000 is not set ++# CONFIG_DVB_TDA826X is not set ++# CONFIG_DVB_TUA6100 is not set + + # + # DVB-T (terrestrial) frontends +@@ -898,6 +926,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_DIB3000MC is not set + # CONFIG_DVB_DIB7000M is not set + # CONFIG_DVB_DIB7000P is not set ++# CONFIG_DVB_TDA10048 is not set + + # + # DVB-C (cable) frontends +@@ -916,27 +945,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_BCM3510 is not set + # CONFIG_DVB_LGDT330X is not set + # CONFIG_DVB_S5H1409 is not set ++# CONFIG_DVB_AU8522 is not set ++# CONFIG_DVB_S5H1411 is not set + + # +-# Tuners/PLL support ++# Digital terrestrial only tuners/PLL + # + # CONFIG_DVB_PLL is not set +-# CONFIG_DVB_TDA826X is not set +-# CONFIG_DVB_TDA827X is not set +-# CONFIG_DVB_TDA18271 is not set +-# CONFIG_DVB_TUNER_QT1010 is not set +-# CONFIG_DVB_TUNER_MT2060 is not set +-# CONFIG_DVB_TUNER_MT2266 is not set +-# CONFIG_DVB_TUNER_MT2131 is not set + # CONFIG_DVB_TUNER_DIB0070 is not set +-# CONFIG_DVB_TUNER_XC5000 is not set + + # +-# Miscellaneous devices ++# SEC control devices for DVB-S + # + # CONFIG_DVB_LNBP21 is not set ++# CONFIG_DVB_ISL6405 is not set + # CONFIG_DVB_ISL6421 is not set +-# CONFIG_DVB_TUA6100 is not set + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -1003,6 +1026,7 @@ CONFIG_SND_AC97_CODEC=y + # CONFIG_SND_AU8810 is not set + # CONFIG_SND_AU8820 is not set + # CONFIG_SND_AU8830 is not set ++# CONFIG_SND_AW2 is not set + # CONFIG_SND_AZT3328 is not set + # CONFIG_SND_BT87X is not set + # CONFIG_SND_CA0106 is not set +@@ -1077,11 +1101,11 @@ CONFIG_SND_INTEL8X0=y + # CONFIG_SND_SOC is not set + + # +-# SoC Audio support for SuperH ++# ALSA SoC audio for Freescale SOCs + # + + # +-# ALSA SoC audio for Freescale SOCs ++# SoC Audio for the Texas Instruments OMAP + # + + # +@@ -1116,16 +1140,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_FSL is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1143,6 +1171,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1162,7 +1191,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1200,10 +1231,12 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1255,11 +1288,8 @@ CONFIG_RTC_DRV_CMOS=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1279,7 +1309,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1349,10 +1378,9 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=y + # CONFIG_NFSD_V3 is not set +-CONFIG_NFSD_TCP=y ++# CONFIG_NFSD_V4 is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1436,9 +1464,10 @@ CONFIG_NLS_UTF8=m + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set +-# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + # CONFIG_CRC7 is not set + CONFIG_LIBCRC32C=m +@@ -1447,6 +1476,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1454,6 +1484,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1464,6 +1495,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1477,6 +1509,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1488,6 +1521,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1498,52 +1532,82 @@ CONFIG_DEBUG_INFO=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + CONFIG_CRYPTO_HMAC=y + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + CONFIG_CRYPTO_SHA1=m + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +index a469fe9..b09f003 100644 +--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig ++++ b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:30 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:36 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -113,6 +116,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -153,6 +157,7 @@ CONFIG_MPC85xx=y + CONFIG_MPC85xx_CDS=y + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -208,11 +213,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -236,6 +243,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -245,11 +253,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -297,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -437,7 +444,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y + CONFIG_BLK_DEV_VIA82CXXX=y + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -515,7 +522,6 @@ CONFIG_E1000_NAPI=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -535,6 +541,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -542,6 +549,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -588,6 +596,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -624,12 +633,7 @@ CONFIG_GEN_RTC=y + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -662,12 +666,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -698,6 +712,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -706,14 +722,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -733,7 +746,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -790,7 +802,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -829,6 +840,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -839,6 +851,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -846,6 +859,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -856,6 +870,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -868,6 +883,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -878,6 +894,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -888,48 +905,78 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig +index 67f6797..24f7f44 100644 +--- a/arch/powerpc/configs/85xx/sbc8548_defconfig ++++ b/arch/powerpc/configs/85xx/sbc8548_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:39 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:37 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y +@@ -111,6 +114,7 @@ CONFIG_SLAB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -206,11 +211,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -233,6 +240,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -242,11 +250,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -294,8 +303,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -449,7 +456,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -469,6 +475,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -476,6 +483,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -522,6 +530,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -558,12 +567,7 @@ CONFIG_GEN_RTC=y + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -596,12 +600,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -628,14 +642,11 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -648,7 +659,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -705,7 +715,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -732,6 +741,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -742,6 +752,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -749,6 +760,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -756,6 +768,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_KERNEL is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -765,48 +778,78 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig +index fef6055..655518d 100644 +--- a/arch/powerpc/configs/85xx/sbc8560_defconfig ++++ b/arch/powerpc/configs/85xx/sbc8560_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:39 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:38 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -112,6 +115,7 @@ CONFIG_SLAB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -152,6 +156,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -207,11 +212,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -228,6 +235,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -237,11 +245,12 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -289,8 +298,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -418,6 +425,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -462,6 +470,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -487,17 +496,11 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -526,12 +529,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -559,6 +572,8 @@ CONFIG_USB_SUPPORT=y + # CONFIG_USB_ARCH_HAS_HCD is not set + # CONFIG_USB_ARCH_HAS_OHCI is not set + # CONFIG_USB_ARCH_HAS_EHCI is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -567,6 +582,7 @@ CONFIG_USB_SUPPORT=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y + CONFIG_RTC_CLASS=y +@@ -602,11 +618,8 @@ CONFIG_RTC_DRV_M48T59=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -619,7 +632,6 @@ CONFIG_RTC_DRV_M48T59=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -676,7 +688,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -715,6 +726,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -725,6 +737,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -732,6 +745,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -742,6 +756,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_DEBUG_SLAB is not set + # CONFIG_DEBUG_RT_MUTEXES is not set + # CONFIG_RT_MUTEX_TESTER is not set +@@ -753,6 +768,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -763,6 +779,7 @@ CONFIG_DEBUG_MUTEXES=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + CONFIG_PPC_EARLY_DEBUG=y + # CONFIG_PPC_EARLY_DEBUG_LPAR is not set +@@ -784,47 +801,77 @@ CONFIG_PPC_EARLY_DEBUG=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig +index 1d303c4..7804ca1 100644 +--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig ++++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:42 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:38 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -114,12 +117,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + # CONFIG_MODULE_UNLOAD is not set + CONFIG_MODVERSIONS=y + # CONFIG_MODULE_SRCVERSION_ALL is not set +@@ -158,6 +163,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + CONFIG_STX_GP3=y + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -215,11 +221,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -243,6 +251,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -252,11 +261,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -304,8 +314,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IP_VS is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + CONFIG_NETFILTER=y + # CONFIG_NETFILTER_DEBUG is not set +@@ -418,6 +426,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=m + CONFIG_PARPORT=m + CONFIG_PARPORT_PC=m + # CONFIG_PARPORT_PC_FIFO is not set +@@ -505,7 +514,7 @@ CONFIG_IDE_GENERIC=y + # CONFIG_BLK_DEV_VIA82CXXX is not set + # CONFIG_BLK_DEV_TC86C001 is not set + # CONFIG_BLK_DEV_IDEDMA is not set +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -653,7 +662,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -673,6 +681,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -680,6 +689,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -753,6 +763,7 @@ CONFIG_SERIO_LIBPS2=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -796,13 +807,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=m + + # +-# I2C Algorithms +-# +-CONFIG_I2C_ALGOBIT=m +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -829,6 +833,7 @@ CONFIG_I2C_ALGOBIT=m + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -838,19 +843,13 @@ CONFIG_I2C_ALGOBIT=m + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -920,12 +919,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -973,6 +982,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -981,15 +992,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set + # CONFIG_AUXDISPLAY is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1009,7 +1017,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1073,7 +1080,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1141,9 +1147,10 @@ CONFIG_NLS_DEFAULT="iso8859-1" + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=y + # CONFIG_CRC16 is not set +-# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + # CONFIG_CRC7 is not set + # CONFIG_LIBCRC32C is not set +@@ -1152,6 +1159,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1159,6 +1167,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1169,6 +1178,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1182,6 +1192,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1194,6 +1205,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + CONFIG_BDI_SWITCH=y + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1204,50 +1216,80 @@ CONFIG_BDI_SWITCH=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig +index d39ee3b..e0b5559 100644 +--- a/arch/powerpc/configs/85xx/tqm8540_defconfig ++++ b/arch/powerpc/configs/85xx/tqm8540_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:43 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:39 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + # CONFIG_HOTPLUG is not set + CONFIG_PRINTK=y +@@ -111,6 +114,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + CONFIG_TQM8540=y + # CONFIG_TQM8541 is not set +@@ -171,7 +176,6 @@ CONFIG_MPIC=y + # CONFIG_GENERIC_IOMAP is not set + # CONFIG_CPU_FREQ is not set + # CONFIG_CPM2 is not set +-CONFIG_PPC_CPM_NEW_BINDING=y + # CONFIG_FSL_ULI1575 is not set + + # +@@ -208,11 +212,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -233,6 +239,7 @@ CONFIG_PCI_SYSCALL=y + CONFIG_ARCH_SUPPORTS_MSI=y + # CONFIG_PCI_MSI is not set + CONFIG_PCI_LEGACY=y ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -242,11 +249,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -294,8 +302,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -352,6 +358,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + CONFIG_MTD_CMDLINE_PARTS=y + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -423,6 +430,7 @@ CONFIG_MTD_CFI_UTIL=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -506,7 +514,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y + CONFIG_BLK_DEV_VIA82CXXX=y + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -600,7 +608,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -620,6 +627,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -627,6 +635,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -673,6 +682,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -713,13 +723,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -744,6 +747,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -753,19 +757,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -835,12 +833,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -871,6 +879,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -879,14 +889,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -906,7 +913,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -974,7 +980,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1013,6 +1018,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1025,6 +1031,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1032,6 +1039,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1041,6 +1049,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1050,48 +1059,78 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig +index cbf6ad2..6f9067b 100644 +--- a/arch/powerpc/configs/85xx/tqm8541_defconfig ++++ b/arch/powerpc/configs/85xx/tqm8541_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:44 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:40 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + # CONFIG_HOTPLUG is not set + CONFIG_PRINTK=y +@@ -111,6 +114,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + CONFIG_TQM8541=y +@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -234,6 +241,7 @@ CONFIG_PCI_SYSCALL=y + CONFIG_ARCH_SUPPORTS_MSI=y + # CONFIG_PCI_MSI is not set + CONFIG_PCI_LEGACY=y ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -243,11 +251,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -295,8 +304,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -353,6 +360,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + CONFIG_MTD_CMDLINE_PARTS=y + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -424,6 +432,7 @@ CONFIG_MTD_CFI_UTIL=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -507,7 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y + CONFIG_BLK_DEV_VIA82CXXX=y + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -602,7 +611,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -622,6 +630,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -629,6 +638,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -675,6 +685,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -723,13 +734,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -754,6 +758,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -763,19 +768,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -845,12 +844,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -881,6 +890,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -889,14 +900,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -916,7 +924,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -984,7 +991,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1023,6 +1029,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1035,6 +1042,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1042,6 +1050,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1052,6 +1061,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1061,49 +1071,79 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig +index bbff962..03120b5 100644 +--- a/arch/powerpc/configs/85xx/tqm8555_defconfig ++++ b/arch/powerpc/configs/85xx/tqm8555_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:44 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:41 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + # CONFIG_HOTPLUG is not set + CONFIG_PRINTK=y +@@ -111,6 +114,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -234,6 +241,7 @@ CONFIG_PCI_SYSCALL=y + CONFIG_ARCH_SUPPORTS_MSI=y + # CONFIG_PCI_MSI is not set + CONFIG_PCI_LEGACY=y ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -243,11 +251,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -295,8 +304,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -353,6 +360,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + CONFIG_MTD_CMDLINE_PARTS=y + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -424,6 +432,7 @@ CONFIG_MTD_CFI_UTIL=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -507,7 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y + CONFIG_BLK_DEV_VIA82CXXX=y + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -602,7 +611,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -622,6 +630,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -629,6 +638,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -675,6 +685,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -723,13 +734,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -754,6 +758,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -763,19 +768,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -845,12 +844,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -881,6 +890,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -889,14 +900,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -916,7 +924,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -984,7 +991,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1023,6 +1029,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1035,6 +1042,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1042,6 +1050,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1052,6 +1061,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1061,49 +1071,79 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig +index 63c5ec8..3113257 100644 +--- a/arch/powerpc/configs/85xx/tqm8560_defconfig ++++ b/arch/powerpc/configs/85xx/tqm8560_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:45 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:42 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + # CONFIG_HOTPLUG is not set + CONFIG_PRINTK=y +@@ -111,6 +114,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y + # CONFIG_MPC85xx_CDS is not set + # CONFIG_MPC85xx_MDS is not set + # CONFIG_MPC85xx_DS is not set ++# CONFIG_KSI8560 is not set + # CONFIG_STX_GP3 is not set + # CONFIG_TQM8540 is not set + # CONFIG_TQM8541 is not set +@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -234,6 +241,7 @@ CONFIG_PCI_SYSCALL=y + CONFIG_ARCH_SUPPORTS_MSI=y + # CONFIG_PCI_MSI is not set + CONFIG_PCI_LEGACY=y ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -243,11 +251,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -295,8 +304,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -353,6 +360,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + CONFIG_MTD_CMDLINE_PARTS=y + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -424,6 +432,7 @@ CONFIG_MTD_CFI_UTIL=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -507,7 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y + CONFIG_BLK_DEV_VIA82CXXX=y + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -602,7 +611,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -622,6 +630,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -629,6 +638,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -675,6 +685,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -723,13 +734,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -754,6 +758,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -763,19 +768,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -845,12 +844,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -881,6 +890,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -889,14 +900,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -916,7 +924,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -984,7 +991,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1023,6 +1029,7 @@ CONFIG_PARTITION_ADVANCED=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1035,6 +1042,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1042,6 +1050,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1052,6 +1061,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1061,49 +1071,79 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig +index a3cc94a..6740f2a 100644 +--- a/arch/powerpc/configs/adder875_defconfig ++++ b/arch/powerpc/configs/adder875_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc2 +-# Wed Feb 20 12:26:07 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:08 2008 + # + # CONFIG_PPC64 is not set + +@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -75,6 +77,7 @@ CONFIG_FAIR_GROUP_SCHED=y + CONFIG_USER_SCHED=y + # CONFIG_CGROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y ++CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set + # CONFIG_NAMESPACES is not set + # CONFIG_BLK_DEV_INITRD is not set +@@ -107,6 +110,8 @@ CONFIG_SLUB=y + # CONFIG_MARKERS is not set + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y ++CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + # CONFIG_TINY_SHMEM is not set +@@ -131,7 +136,6 @@ CONFIG_DEFAULT_DEADLINE=y + # CONFIG_DEFAULT_NOOP is not set + CONFIG_DEFAULT_IOSCHED="deadline" + CONFIG_CLASSIC_RCU=y +-# CONFIG_PREEMPT_RCU is not set + + # + # Platform support +@@ -194,7 +198,6 @@ CONFIG_HZ=1000 + CONFIG_PREEMPT_NONE=y + # CONFIG_PREEMPT_VOLUNTARY is not set + # CONFIG_PREEMPT is not set +-CONFIG_RCU_TRACE=y + CONFIG_BINFMT_ELF=y + # CONFIG_BINFMT_MISC is not set + # CONFIG_MATH_EMULATION is not set +@@ -213,11 +216,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -235,6 +240,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_QSPAN is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -244,13 +250,13 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0x80000000 + CONFIG_CONSISTENT_START=0xfd000000 + CONFIG_CONSISTENT_SIZE=0x00200000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -293,8 +299,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -482,6 +486,7 @@ CONFIG_FS_ENET_MDIO_FEC=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -548,6 +553,7 @@ CONFIG_SERIO_LIBPS2=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -580,12 +586,7 @@ CONFIG_GEN_RTC=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -602,12 +603,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -632,12 +643,10 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set +- +-# +-# Userspace I/O +-# ++# CONFIG_DMADEVICES is not set + # CONFIG_UIO is not set + + # +@@ -650,7 +659,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + # CONFIG_DNOTIFY is not set + # CONFIG_INOTIFY is not set +@@ -708,7 +716,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -751,6 +758,7 @@ CONFIG_MSDOS_PARTITION=y + # + # Library routines + # ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -761,6 +769,7 @@ CONFIG_ZLIB_INFLATE=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -768,6 +777,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + CONFIG_DEBUG_FS=y +@@ -778,6 +788,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_SPINLOCK is not set +@@ -788,6 +799,7 @@ CONFIG_SCHED_DEBUG=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -798,6 +810,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_VIRQ_DEBUG is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set +@@ -811,3 +824,4 @@ CONFIG_DEBUG_INFO=y + # CONFIG_CRYPTO is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig +index 2b1504e..ba2a463 100644 +--- a/arch/powerpc/configs/ep8248e_defconfig ++++ b/arch/powerpc/configs/ep8248e_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:09 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:09 2008 + # + # CONFIG_PPC64 is not set + +@@ -30,6 +30,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -70,18 +72,16 @@ CONFIG_IKCONFIG=y + CONFIG_IKCONFIG_PROC=y + CONFIG_LOG_BUF_SHIFT=14 + # CONFIG_CGROUPS is not set +-CONFIG_GROUP_SCHED=y +-CONFIG_FAIR_GROUP_SCHED=y +-CONFIG_USER_SCHED=y +-# CONFIG_CGROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y + CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set + # CONFIG_NAMESPACES is not set + # CONFIG_BLK_DEV_INITRD is not set ++CONFIG_CC_OPTIMIZE_FOR_SIZE=y + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -107,6 +107,7 @@ CONFIG_SLAB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -194,11 +195,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -215,6 +218,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -224,11 +228,11 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -283,6 +287,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y + CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + CONFIG_NETFILTER=y +@@ -498,6 +503,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -521,6 +527,7 @@ CONFIG_NETDEV_10000=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -552,12 +559,7 @@ CONFIG_HW_RANDOM=y + # CONFIG_R3964 is not set + # CONFIG_RAW_DRIVER is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -574,12 +576,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -603,12 +615,9 @@ CONFIG_DAB=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -675,7 +684,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -752,6 +760,7 @@ CONFIG_NLS_UTF8=y + # + # Library routines + # ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -763,6 +772,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -770,6 +780,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -780,6 +791,7 @@ CONFIG_DEBUG_KERNEL=y + # CONFIG_SCHED_DEBUG is not set + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_DEBUG_SLAB is not set + # CONFIG_DEBUG_RT_MUTEXES is not set + # CONFIG_RT_MUTEX_TESTER is not set +@@ -791,6 +803,7 @@ CONFIG_DEBUG_KERNEL=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -802,6 +815,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + CONFIG_BDI_SWITCH=y + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -811,45 +825,75 @@ CONFIG_BDI_SWITCH=y + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y +-# CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=y ++CONFIG_CRYPTO_PCBC=y ++ ++# ++# Hash modes ++# ++# CONFIG_CRYPTO_HMAC is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-CONFIG_CRYPTO_ECB=y +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=y +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set + # CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + # CONFIG_CRYPTO_HW is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig +index 125b476..ac72b48 100644 +--- a/arch/powerpc/configs/ep88xc_defconfig ++++ b/arch/powerpc/configs/ep88xc_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:10 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:09 2008 + # + # CONFIG_PPC64 is not set + +@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -108,6 +110,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + # CONFIG_TINY_SHMEM is not set +@@ -212,11 +215,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -234,6 +239,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_QSPAN is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -243,13 +249,13 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0x80000000 + CONFIG_CONSISTENT_START=0xfd000000 + CONFIG_CONSISTENT_SIZE=0x00200000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -292,8 +298,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -481,6 +485,7 @@ CONFIG_FS_ENET_MDIO_FEC=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -505,6 +510,7 @@ CONFIG_FS_ENET_MDIO_FEC=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -537,12 +543,7 @@ CONFIG_GEN_RTC=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -559,12 +560,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -588,13 +599,10 @@ CONFIG_DAB=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -607,7 +615,6 @@ CONFIG_DAB=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + # CONFIG_DNOTIFY is not set + # CONFIG_INOTIFY is not set +@@ -665,7 +672,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -708,6 +714,7 @@ CONFIG_MSDOS_PARTITION=y + # + # Library routines + # ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -718,6 +725,7 @@ CONFIG_ZLIB_INFLATE=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -725,6 +733,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -735,6 +744,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_SPINLOCK is not set +@@ -745,6 +755,7 @@ CONFIG_SCHED_DEBUG=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -755,6 +766,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -767,3 +779,4 @@ CONFIG_DEBUG_INFO=y + # CONFIG_CRYPTO is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig +index db34909..0ccc6e4 100644 +--- a/arch/powerpc/configs/g5_defconfig ++++ b/arch/powerpc/configs/g5_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.26-rc3 +-# Tue May 20 20:01:18 2008 ++# Linux kernel version: 2.6.26-rc6 ++# Mon Jun 16 21:08:31 2008 + # + CONFIG_PPC64=y + +@@ -597,7 +597,61 @@ CONFIG_ATA=y + CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set + # CONFIG_SATA_SIL24 is not set +-# CONFIG_ATA_SFF is not set ++CONFIG_ATA_SFF=y ++CONFIG_SATA_SVW=y ++# CONFIG_ATA_PIIX is not set ++# CONFIG_SATA_MV is not set ++# CONFIG_SATA_NV is not set ++# CONFIG_PDC_ADMA is not set ++# CONFIG_SATA_QSTOR is not set ++# CONFIG_SATA_PROMISE is not set ++# CONFIG_SATA_SX4 is not set ++# CONFIG_SATA_SIL is not set ++# CONFIG_SATA_SIS is not set ++# CONFIG_SATA_ULI is not set ++# CONFIG_SATA_VIA is not set ++# CONFIG_SATA_VITESSE is not set ++# CONFIG_SATA_INIC162X is not set ++# CONFIG_PATA_ALI is not set ++# CONFIG_PATA_AMD is not set ++# CONFIG_PATA_ARTOP is not set ++# CONFIG_PATA_ATIIXP is not set ++# CONFIG_PATA_CMD640_PCI is not set ++# CONFIG_PATA_CMD64X is not set ++# CONFIG_PATA_CS5520 is not set ++# CONFIG_PATA_CS5530 is not set ++# CONFIG_PATA_CYPRESS is not set ++# CONFIG_PATA_EFAR is not set ++# CONFIG_ATA_GENERIC is not set ++# CONFIG_PATA_HPT366 is not set ++# CONFIG_PATA_HPT37X is not set ++# CONFIG_PATA_HPT3X2N is not set ++# CONFIG_PATA_HPT3X3 is not set ++# CONFIG_PATA_IT821X is not set ++# CONFIG_PATA_IT8213 is not set ++# CONFIG_PATA_JMICRON is not set ++# CONFIG_PATA_TRIFLEX is not set ++# CONFIG_PATA_MARVELL is not set ++# CONFIG_PATA_MPIIX is not set ++# CONFIG_PATA_OLDPIIX is not set ++# CONFIG_PATA_NETCELL is not set ++# CONFIG_PATA_NINJA32 is not set ++# CONFIG_PATA_NS87410 is not set ++# CONFIG_PATA_NS87415 is not set ++# CONFIG_PATA_OPTI is not set ++# CONFIG_PATA_OPTIDMA is not set ++# CONFIG_PATA_PDC_OLD is not set ++# CONFIG_PATA_RADISYS is not set ++# CONFIG_PATA_RZ1000 is not set ++# CONFIG_PATA_SC1200 is not set ++# CONFIG_PATA_SERVERWORKS is not set ++# CONFIG_PATA_PDC2027X is not set ++# CONFIG_PATA_SIL680 is not set ++# CONFIG_PATA_SIS is not set ++# CONFIG_PATA_VIA is not set ++# CONFIG_PATA_WINBOND is not set ++# CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + CONFIG_MD=y + CONFIG_BLK_DEV_MD=y + CONFIG_MD_LINEAR=y +@@ -1230,6 +1284,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + CONFIG_USB_ACM=m + CONFIG_USB_PRINTER=y ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1345,6 +1400,7 @@ CONFIG_USB_APPLEDISPLAY=m + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set +diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig +index 22a943a..48434c2 100644 +--- a/arch/powerpc/configs/linkstation_defconfig ++++ b/arch/powerpc/configs/linkstation_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:10 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:10 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -91,6 +93,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + # CONFIG_EMBEDDED is not set + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -118,12 +121,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -223,11 +228,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -251,6 +258,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -260,11 +268,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -313,8 +321,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IP_VS is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + CONFIG_NETFILTER=y + # CONFIG_NETFILTER_DEBUG is not set +@@ -329,6 +335,7 @@ CONFIG_NF_CONNTRACK=m + # CONFIG_NF_CT_ACCT is not set + # CONFIG_NF_CONNTRACK_MARK is not set + # CONFIG_NF_CONNTRACK_EVENTS is not set ++# CONFIG_NF_CT_PROTO_DCCP is not set + CONFIG_NF_CT_PROTO_GRE=m + CONFIG_NF_CT_PROTO_SCTP=m + # CONFIG_NF_CT_PROTO_UDPLITE is not set +@@ -407,6 +414,7 @@ CONFIG_IP_NF_TARGET_REDIRECT=m + # CONFIG_IP_NF_TARGET_NETMAP is not set + # CONFIG_NF_NAT_SNMP_BASIC is not set + CONFIG_NF_NAT_PROTO_GRE=m ++CONFIG_NF_NAT_PROTO_SCTP=m + CONFIG_NF_NAT_FTP=m + CONFIG_NF_NAT_IRC=m + CONFIG_NF_NAT_TFTP=m +@@ -459,8 +467,6 @@ CONFIG_IEEE80211_DEBUG=y + CONFIG_IEEE80211_CRYPT_WEP=m + CONFIG_IEEE80211_CRYPT_CCMP=m + CONFIG_IEEE80211_CRYPT_TKIP=m +-CONFIG_IEEE80211_SOFTMAC=m +-CONFIG_IEEE80211_SOFTMAC_DEBUG=y + # CONFIG_RFKILL is not set + # CONFIG_NET_9P is not set + +@@ -486,6 +492,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -565,6 +572,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1 + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -670,7 +678,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set ++# CONFIG_SATA_SIL24 is not set ++# CONFIG_SATA_FSL is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -680,13 +692,11 @@ CONFIG_ATA=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + # CONFIG_PATA_ALI is not set + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -726,6 +736,7 @@ CONFIG_PATA_SIL680=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -785,7 +796,6 @@ CONFIG_R8169=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -805,6 +815,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -812,6 +823,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -886,6 +898,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -913,7 +926,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=y + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -924,13 +936,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -957,6 +962,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -966,19 +972,13 @@ CONFIG_SENSORS_EEPROM=m + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -1048,12 +1048,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + # CONFIG_DAB is not set + + # +@@ -1115,12 +1125,14 @@ CONFIG_USB_DEVICE_CLASS=y + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_FSL is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1138,6 +1150,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + CONFIG_USB_PRINTER=m ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1159,6 +1172,7 @@ CONFIG_USB_STORAGE=m + # CONFIG_USB_STORAGE_ALAUDA is not set + # CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1202,9 +1216,11 @@ CONFIG_USB_SERIAL_FTDI_SIO=y + # CONFIG_USB_SERIAL_MCT_U232 is not set + # CONFIG_USB_SERIAL_MOS7720 is not set + # CONFIG_USB_SERIAL_MOS7840 is not set ++# CONFIG_USB_SERIAL_MOTOROLA is not set + # CONFIG_USB_SERIAL_NAVMAN is not set + # CONFIG_USB_SERIAL_PL2303 is not set + # CONFIG_USB_SERIAL_OTI6858 is not set ++# CONFIG_USB_SERIAL_SPCP8X5 is not set + # CONFIG_USB_SERIAL_HP4X is not set + # CONFIG_USB_SERIAL_SAFE is not set + # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +@@ -1238,10 +1254,12 @@ CONFIG_USB_SERIAL_FTDI_SIO=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1293,11 +1311,8 @@ CONFIG_RTC_DRV_RS5C372=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1318,10 +1333,9 @@ CONFIG_FS_MBCACHE=y + CONFIG_FS_POSIX_ACL=y + CONFIG_XFS_FS=m + # CONFIG_XFS_QUOTA is not set +-# CONFIG_XFS_SECURITY is not set + # CONFIG_XFS_POSIX_ACL is not set + # CONFIG_XFS_RT is not set +-# CONFIG_GFS2_FS is not set ++# CONFIG_XFS_DEBUG is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1388,12 +1402,10 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + CONFIG_NFS_V3_ACL=y + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=m + CONFIG_NFSD_V3=y + # CONFIG_NFSD_V3_ACL is not set + # CONFIG_NFSD_V4 is not set +-CONFIG_NFSD_TCP=y + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1467,9 +1479,10 @@ CONFIG_NLS_UTF8=m + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=m + # CONFIG_CRC16 is not set +-# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + # CONFIG_CRC7 is not set + CONFIG_LIBCRC32C=m +@@ -1481,6 +1494,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1488,6 +1502,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1498,6 +1513,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1510,6 +1526,7 @@ CONFIG_SCHED_DEBUG=y + CONFIG_DEBUG_BUGVERBOSE=y + # CONFIG_DEBUG_INFO is not set + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1521,6 +1538,7 @@ CONFIG_DEBUG_BUGVERBOSE=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_BOOTX_TEXT is not set + # CONFIG_PPC_EARLY_DEBUG is not set +@@ -1532,52 +1550,82 @@ CONFIG_DEBUG_BUGVERBOSE=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++CONFIG_CRYPTO_CRC32C=m + CONFIG_CRYPTO_MD4=m + CONFIG_CRYPTO_MD5=y ++CONFIG_CRYPTO_MICHAEL_MIC=m + CONFIG_CRYPTO_SHA1=m + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-CONFIG_CRYPTO_BLOWFISH=m +-CONFIG_CRYPTO_TWOFISH=m +-CONFIG_CRYPTO_TWOFISH_COMMON=m +-CONFIG_CRYPTO_SERPENT=m ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + CONFIG_CRYPTO_AES=m ++# CONFIG_CRYPTO_ANUBIS is not set ++CONFIG_CRYPTO_ARC4=m ++CONFIG_CRYPTO_BLOWFISH=m ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-CONFIG_CRYPTO_ARC4=m ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++CONFIG_CRYPTO_SERPENT=m ++# CONFIG_CRYPTO_TEA is not set ++CONFIG_CRYPTO_TWOFISH=m ++CONFIG_CRYPTO_TWOFISH_COMMON=m ++ ++# ++# Compression ++# + CONFIG_CRYPTO_DEFLATE=m +-CONFIG_CRYPTO_MICHAEL_MIC=m +-CONFIG_CRYPTO_CRC32C=m +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig +index a3d52e3..066c583 100644 +--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig ++++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:11 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:11 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y +@@ -111,6 +114,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -209,11 +213,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -235,6 +241,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -244,11 +251,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -296,8 +303,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -454,7 +459,10 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set ++# CONFIG_SATA_SIL24 is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + CONFIG_SATA_MV=y +@@ -464,7 +472,6 @@ CONFIG_SATA_MV=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set +@@ -509,6 +516,7 @@ CONFIG_SATA_MV=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -596,7 +604,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -616,6 +623,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -623,6 +631,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -670,6 +679,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -705,12 +715,7 @@ CONFIG_GEN_RTC=y + # CONFIG_TCG_TPM is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -743,12 +748,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -779,6 +794,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -787,14 +804,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -814,7 +828,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -871,7 +884,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -914,6 +926,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -924,6 +937,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -931,6 +945,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -940,6 +955,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BOOTX_TEXT is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -950,48 +966,78 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig +index 0264c57..30d7834 100644 +--- a/arch/powerpc/configs/mpc8272_ads_defconfig ++++ b/arch/powerpc/configs/mpc8272_ads_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:13 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:12 2008 + # + # CONFIG_PPC64 is not set + +@@ -30,6 +30,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -70,18 +72,16 @@ CONFIG_IKCONFIG=y + CONFIG_IKCONFIG_PROC=y + CONFIG_LOG_BUF_SHIFT=14 + # CONFIG_CGROUPS is not set +-CONFIG_GROUP_SCHED=y +-# CONFIG_FAIR_GROUP_SCHED is not set +-CONFIG_USER_SCHED=y +-# CONFIG_CGROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y + CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set + # CONFIG_NAMESPACES is not set + # CONFIG_BLK_DEV_INITRD is not set ++CONFIG_CC_OPTIMIZE_FOR_SIZE=y + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -108,6 +108,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -196,11 +197,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -224,6 +227,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -233,11 +237,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -292,6 +296,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y + CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + CONFIG_NETFILTER=y +@@ -536,7 +541,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -554,6 +558,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -561,6 +566,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + CONFIG_PPP=y +@@ -634,6 +640,7 @@ CONFIG_SERIO_LIBPS2=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -668,12 +675,7 @@ CONFIG_HW_RANDOM=y + # CONFIG_RAW_DRIVER is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -690,12 +692,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -722,13 +734,10 @@ CONFIG_DAB=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -798,7 +807,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + CONFIG_NFS_V3_ACL=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -877,6 +885,7 @@ CONFIG_NLS_UTF8=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=y + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -889,6 +898,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -896,6 +906,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -906,6 +917,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -918,6 +930,7 @@ CONFIG_SCHED_DEBUG=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -929,6 +942,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + CONFIG_BDI_SWITCH=y + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -938,45 +952,75 @@ CONFIG_BDI_SWITCH=y + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y +-# CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=y ++CONFIG_CRYPTO_PCBC=y ++ ++# ++# Hash modes ++# ++# CONFIG_CRYPTO_HMAC is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-CONFIG_CRYPTO_ECB=y +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=y +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set + # CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + # CONFIG_CRYPTO_HW is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig +index 9e0dd82..4293c8b 100644 +--- a/arch/powerpc/configs/mpc83xx_defconfig ++++ b/arch/powerpc/configs/mpc83xx_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc9 +-# Tue Apr 15 18:07:36 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:14 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y +@@ -111,12 +114,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -201,7 +206,6 @@ CONFIG_PREEMPT_NONE=y + # CONFIG_PREEMPT is not set + CONFIG_BINFMT_ELF=y + # CONFIG_BINFMT_MISC is not set +-CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_MATH_EMULATION=y + # CONFIG_IOMMU_HELPER is not set + CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +@@ -217,11 +221,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -240,6 +246,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -249,11 +256,11 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -301,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -361,6 +366,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + CONFIG_MTD_OF_PARTS=y ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -439,6 +445,7 @@ CONFIG_MTD_NAND_FSL_ELBC=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -501,8 +508,10 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_DEBUG is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set +-# CONFIG_SATA_MV is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_FSL=y ++CONFIG_ATA_SFF=y ++# CONFIG_SATA_MV is not set + # CONFIG_PATA_PLATFORM is not set + # CONFIG_MD is not set + # CONFIG_MACINTOSH_DRIVERS is not set +@@ -554,6 +563,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -607,6 +617,7 @@ CONFIG_INPUT=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -642,13 +653,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + CONFIG_I2C_MPC=y +@@ -658,6 +662,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_TAOS_EVM is not set + # CONFIG_I2C_STUB is not set + # CONFIG_I2C_TINY_USB is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -667,19 +672,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -757,12 +756,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -810,16 +819,20 @@ CONFIG_USB=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + # CONFIG_USB_SL811_HCD is not set + # CONFIG_USB_R8A66597_HCD is not set + +@@ -828,6 +841,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -873,17 +887,15 @@ CONFIG_USB_MON=y + # CONFIG_USB_LD is not set + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -903,7 +915,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -962,7 +973,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1009,6 +1019,7 @@ CONFIG_UCC=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1027,6 +1038,7 @@ CONFIG_HAVE_LMB=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1034,6 +1046,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_DEBUG_KERNEL is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -1043,51 +1056,81 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig +index 2075722..3efab71 100644 +--- a/arch/powerpc/configs/mpc85xx_defconfig ++++ b/arch/powerpc/configs/mpc85xx_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:08 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 09:03:46 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + CONFIG_KALLSYMS_EXTRA_PASS=y +@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -162,6 +167,7 @@ CONFIG_MPC8560_ADS=y + CONFIG_MPC85xx_CDS=y + CONFIG_MPC85xx_MDS=y + CONFIG_MPC85xx_DS=y ++CONFIG_KSI8560=y + # CONFIG_STX_GP3 is not set + CONFIG_TQM8540=y + CONFIG_TQM8541=y +@@ -221,11 +227,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -250,6 +258,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -259,11 +268,12 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 ++CONFIG_PHYSICAL_ALIGN=0x10000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -334,8 +344,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -397,6 +409,7 @@ CONFIG_FW_LOADER=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -503,7 +516,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_AHCI=y ++# CONFIG_SATA_SIL24 is not set ++CONFIG_SATA_FSL=y ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -513,13 +530,11 @@ CONFIG_SATA_AHCI=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + CONFIG_PATA_ALI=y + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -559,6 +574,7 @@ CONFIG_PATA_ALI=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -625,7 +641,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -646,6 +661,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -653,6 +669,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -717,6 +734,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -750,7 +768,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + CONFIG_NVRAM=y +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -761,13 +778,6 @@ CONFIG_I2C_BOARDINFO=y + # CONFIG_I2C_CHARDEV is not set + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -794,6 +804,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -803,19 +814,13 @@ CONFIG_SENSORS_EEPROM=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -832,13 +837,33 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + CONFIG_DVB_CORE=m +-# CONFIG_DVB_CORE_ATTACH is not set ++CONFIG_VIDEO_MEDIA=m ++ ++# ++# Multimedia drivers ++# ++# CONFIG_MEDIA_ATTACH is not set ++CONFIG_MEDIA_TUNER=m ++# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set ++CONFIG_MEDIA_TUNER_SIMPLE=m ++CONFIG_MEDIA_TUNER_TDA8290=m ++CONFIG_MEDIA_TUNER_TDA9887=m ++CONFIG_MEDIA_TUNER_TEA5761=m ++CONFIG_MEDIA_TUNER_TEA5767=m ++CONFIG_MEDIA_TUNER_MT20XX=m ++CONFIG_MEDIA_TUNER_XC2028=m ++CONFIG_MEDIA_TUNER_XC5000=m + CONFIG_DVB_CAPTURE_DRIVERS=y + + # +@@ -881,14 +906,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # + # DVB-S (satellite) frontends + # +-# CONFIG_DVB_STV0299 is not set + # CONFIG_DVB_CX24110 is not set + # CONFIG_DVB_CX24123 is not set +-# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_MT312 is not set +-# CONFIG_DVB_VES1X93 is not set + # CONFIG_DVB_S5H1420 is not set ++# CONFIG_DVB_STV0299 is not set ++# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_TDA10086 is not set ++# CONFIG_DVB_VES1X93 is not set ++# CONFIG_DVB_TUNER_ITD1000 is not set ++# CONFIG_DVB_TDA826X is not set ++# CONFIG_DVB_TUA6100 is not set + + # + # DVB-T (terrestrial) frontends +@@ -906,6 +934,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_DIB3000MC is not set + # CONFIG_DVB_DIB7000M is not set + # CONFIG_DVB_DIB7000P is not set ++# CONFIG_DVB_TDA10048 is not set + + # + # DVB-C (cable) frontends +@@ -924,27 +953,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_BCM3510 is not set + # CONFIG_DVB_LGDT330X is not set + # CONFIG_DVB_S5H1409 is not set ++# CONFIG_DVB_AU8522 is not set ++# CONFIG_DVB_S5H1411 is not set + + # +-# Tuners/PLL support ++# Digital terrestrial only tuners/PLL + # + # CONFIG_DVB_PLL is not set +-# CONFIG_DVB_TDA826X is not set +-# CONFIG_DVB_TDA827X is not set +-# CONFIG_DVB_TDA18271 is not set +-# CONFIG_DVB_TUNER_QT1010 is not set +-# CONFIG_DVB_TUNER_MT2060 is not set +-# CONFIG_DVB_TUNER_MT2266 is not set +-# CONFIG_DVB_TUNER_MT2131 is not set + # CONFIG_DVB_TUNER_DIB0070 is not set +-# CONFIG_DVB_TUNER_XC5000 is not set + + # +-# Miscellaneous devices ++# SEC control devices for DVB-S + # + # CONFIG_DVB_LNBP21 is not set ++# CONFIG_DVB_ISL6405 is not set + # CONFIG_DVB_ISL6421 is not set +-# CONFIG_DVB_TUA6100 is not set + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -1011,6 +1034,7 @@ CONFIG_SND_AC97_CODEC=y + # CONFIG_SND_AU8810 is not set + # CONFIG_SND_AU8820 is not set + # CONFIG_SND_AU8830 is not set ++# CONFIG_SND_AW2 is not set + # CONFIG_SND_AZT3328 is not set + # CONFIG_SND_BT87X is not set + # CONFIG_SND_CA0106 is not set +@@ -1085,11 +1109,11 @@ CONFIG_SND_INTEL8X0=y + # CONFIG_SND_SOC is not set + + # +-# SoC Audio support for SuperH ++# ALSA SoC audio for Freescale SOCs + # + + # +-# ALSA SoC audio for Freescale SOCs ++# SoC Audio for the Texas Instruments OMAP + # + + # +@@ -1124,16 +1148,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y +-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set ++CONFIG_USB_EHCI_ROOT_HUB_TT=y + # CONFIG_USB_EHCI_TT_NEWSCHED is not set +-# CONFIG_USB_EHCI_FSL is not set ++CONFIG_USB_EHCI_FSL=y + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1151,6 +1179,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1170,7 +1199,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1208,12 +1239,21 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set +-# CONFIG_EDAC is not set ++CONFIG_EDAC=y ++ ++# ++# Reporting subsystems ++# ++# CONFIG_EDAC_DEBUG is not set ++CONFIG_EDAC_MM_EDAC=y ++CONFIG_EDAC_MPC85XX=y + CONFIG_RTC_LIB=y + CONFIG_RTC_CLASS=y + CONFIG_RTC_HCTOSYS=y +@@ -1263,11 +1303,19 @@ CONFIG_RTC_DRV_CMOS=y + # + # on-CPU RTC drivers + # +-# CONFIG_DMADEVICES is not set ++# CONFIG_RTC_DRV_PPC is not set ++CONFIG_DMADEVICES=y + + # +-# Userspace I/O ++# DMA Devices + # ++CONFIG_FSL_DMA=y ++CONFIG_DMA_ENGINE=y ++ ++# ++# DMA Clients ++# ++# CONFIG_NET_DMA is not set + # CONFIG_UIO is not set + + # +@@ -1287,7 +1335,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1357,10 +1404,9 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=y + # CONFIG_NFSD_V3 is not set +-CONFIG_NFSD_TCP=y ++# CONFIG_NFSD_V4 is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1444,9 +1490,10 @@ CONFIG_NLS_UTF8=m + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set +-# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + # CONFIG_CRC7 is not set + CONFIG_LIBCRC32C=m +@@ -1455,6 +1502,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1462,6 +1510,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1472,6 +1521,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1485,6 +1535,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1497,6 +1548,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1507,53 +1559,83 @@ CONFIG_DEBUG_INFO=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + CONFIG_CRYPTO_HMAC=y + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + CONFIG_CRYPTO_SHA1=m + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig +index 7e5b9ce..5612d40 100644 +--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig ++++ b/arch/powerpc/configs/mpc8610_hpcd_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:33 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:50:24 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -60,9 +62,10 @@ CONFIG_EXPERIMENTAL=y + CONFIG_BROKEN_ON_SMP=y + CONFIG_INIT_ENV_ARG_LIMIT=32 + CONFIG_LOCALVERSION="" +-# CONFIG_LOCALVERSION_AUTO is not set ++CONFIG_LOCALVERSION_AUTO=y + # CONFIG_SWAP is not set +-# CONFIG_SYSVIPC is not set ++CONFIG_SYSVIPC=y ++CONFIG_SYSVIPC_SYSCTL=y + # CONFIG_POSIX_MQUEUE is not set + # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_TASKSTATS is not set +@@ -86,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + CONFIG_KALLSYMS_EXTRA_PASS=y +@@ -110,14 +114,22 @@ CONFIG_SLUB=y + # CONFIG_PROFILING is not set + # CONFIG_MARKERS is not set + CONFIG_HAVE_OPROFILE=y ++# CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 +-# CONFIG_MODULES is not set ++CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set ++CONFIG_MODULE_UNLOAD=y ++# CONFIG_MODULE_FORCE_UNLOAD is not set ++# CONFIG_MODVERSIONS is not set ++# CONFIG_MODULE_SRCVERSION_ALL is not set ++CONFIG_KMOD=y + CONFIG_BLOCK=y + # CONFIG_LBD is not set + # CONFIG_BLK_DEV_IO_TRACE is not set +@@ -151,6 +163,7 @@ CONFIG_PPC_86xx=y + # CONFIG_PPC_CELL_NATIVE is not set + # CONFIG_PQ2ADS is not set + # CONFIG_MPC8641_HPCN is not set ++# CONFIG_SBC8641D is not set + CONFIG_MPC8610_HPCD=y + CONFIG_MPC8610=y + # CONFIG_IPIC is not set +@@ -199,11 +212,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=12 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -223,12 +238,14 @@ CONFIG_PCI_DOMAINS=y + CONFIG_PCI_SYSCALL=y + CONFIG_PCIEPORTBUS=y + CONFIG_PCIEAER=y ++# CONFIG_PCIEASPM is not set + CONFIG_ARCH_SUPPORTS_MSI=y + # CONFIG_PCI_MSI is not set + CONFIG_PCI_LEGACY=y + CONFIG_PCI_DEBUG=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -238,11 +255,11 @@ CONFIG_PCI_DEBUG=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -303,8 +320,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -446,6 +465,7 @@ CONFIG_MTD_NAND_FSL_ELBC=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -504,6 +524,7 @@ CONFIG_CHR_DEV_SG=y + # CONFIG_SCSI_CONSTANTS is not set + # CONFIG_SCSI_LOGGING is not set + # CONFIG_SCSI_SCAN_ASYNC is not set ++CONFIG_SCSI_WAIT_SCAN=m + + # + # SCSI Transports +@@ -553,7 +574,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_AHCI=y ++# CONFIG_SATA_SIL24 is not set ++# CONFIG_SATA_FSL is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -563,13 +588,11 @@ CONFIG_SATA_AHCI=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + CONFIG_PATA_ALI=y + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -609,6 +632,7 @@ CONFIG_PATA_ALI=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -628,25 +652,9 @@ CONFIG_DUMMY=y + # CONFIG_TUN is not set + # CONFIG_VETH is not set + # CONFIG_ARCNET is not set +-CONFIG_PHYLIB=y +- +-# +-# MII PHY device drivers +-# +-# CONFIG_MARVELL_PHY is not set +-# CONFIG_DAVICOM_PHY is not set +-# CONFIG_QSEMI_PHY is not set +-# CONFIG_LXT_PHY is not set +-# CONFIG_CICADA_PHY is not set +-# CONFIG_VITESSE_PHY is not set +-# CONFIG_SMSC_PHY is not set +-# CONFIG_BROADCOM_PHY is not set +-# CONFIG_ICPLUS_PHY is not set +-# CONFIG_REALTEK_PHY is not set +-# CONFIG_FIXED_PHY is not set +-# CONFIG_MDIO_BITBANG is not set ++# CONFIG_PHYLIB is not set + CONFIG_NET_ETHERNET=y +-CONFIG_MII=y ++# CONFIG_MII is not set + # CONFIG_HAPPYMEAL is not set + # CONFIG_SUNGEM is not set + # CONFIG_CASSINI is not set +@@ -663,64 +671,10 @@ CONFIG_ULI526X=y + # CONFIG_IBM_NEW_EMAC_RGMII is not set + # CONFIG_IBM_NEW_EMAC_TAH is not set + # CONFIG_IBM_NEW_EMAC_EMAC4 is not set +-CONFIG_NET_PCI=y +-# CONFIG_PCNET32 is not set +-# CONFIG_AMD8111_ETH is not set +-# CONFIG_ADAPTEC_STARFIRE is not set ++# CONFIG_NET_PCI is not set + # CONFIG_B44 is not set +-# CONFIG_FORCEDETH is not set +-# CONFIG_EEPRO100 is not set +-# CONFIG_E100 is not set +-# CONFIG_FEALNX is not set +-# CONFIG_NATSEMI is not set +-# CONFIG_NE2K_PCI is not set +-# CONFIG_8139CP is not set +-CONFIG_8139TOO=y +-CONFIG_8139TOO_PIO=y +-# CONFIG_8139TOO_TUNE_TWISTER is not set +-# CONFIG_8139TOO_8129 is not set +-# CONFIG_8139_OLD_RX_RESET is not set +-# CONFIG_R6040 is not set +-# CONFIG_SIS900 is not set +-# CONFIG_EPIC100 is not set +-# CONFIG_SUNDANCE is not set +-# CONFIG_TLAN is not set +-# CONFIG_VIA_RHINE is not set +-# CONFIG_SC92031 is not set +-CONFIG_NETDEV_1000=y +-# CONFIG_ACENIC is not set +-# CONFIG_DL2K is not set +-# CONFIG_E1000 is not set +-# CONFIG_E1000E is not set +-# CONFIG_E1000E_ENABLED is not set +-# CONFIG_IP1000 is not set +-# CONFIG_IGB is not set +-# CONFIG_NS83820 is not set +-# CONFIG_HAMACHI is not set +-# CONFIG_YELLOWFIN is not set +-# CONFIG_R8169 is not set +-# CONFIG_SIS190 is not set +-# CONFIG_SKGE is not set +-# CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set +-# CONFIG_VIA_VELOCITY is not set +-# CONFIG_TIGON3 is not set +-# CONFIG_BNX2 is not set +-# CONFIG_GIANFAR is not set +-# CONFIG_QLA3XXX is not set +-# CONFIG_ATL1 is not set +-CONFIG_NETDEV_10000=y +-# CONFIG_CHELSIO_T1 is not set +-# CONFIG_CHELSIO_T3 is not set +-# CONFIG_IXGBE is not set +-# CONFIG_IXGB is not set +-# CONFIG_S2IO is not set +-# CONFIG_MYRI10GE is not set +-# CONFIG_NETXEN_NIC is not set +-# CONFIG_NIU is not set +-# CONFIG_MLX4_CORE is not set +-# CONFIG_TEHUTI is not set +-# CONFIG_BNX2X is not set ++# CONFIG_NETDEV_1000 is not set ++# CONFIG_NETDEV_10000 is not set + # CONFIG_TR is not set + + # +@@ -728,6 +682,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + # CONFIG_HIPPI is not set +@@ -783,6 +738,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -824,13 +780,6 @@ CONFIG_I2C_BOARDINFO=y + # CONFIG_I2C_CHARDEV is not set + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -852,9 +801,11 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_SIS630 is not set + # CONFIG_I2C_SIS96X is not set + # CONFIG_I2C_TAOS_EVM is not set ++# CONFIG_I2C_STUB is not set + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -864,19 +815,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -893,12 +838,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -908,7 +863,56 @@ CONFIG_DAB=y + # CONFIG_DRM is not set + # CONFIG_VGASTATE is not set + CONFIG_VIDEO_OUTPUT_CONTROL=y +-# CONFIG_FB is not set ++CONFIG_FB=y ++# CONFIG_FIRMWARE_EDID is not set ++# CONFIG_FB_DDC is not set ++CONFIG_FB_CFB_FILLRECT=y ++CONFIG_FB_CFB_COPYAREA=y ++CONFIG_FB_CFB_IMAGEBLIT=y ++# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set ++# CONFIG_FB_SYS_FILLRECT is not set ++# CONFIG_FB_SYS_COPYAREA is not set ++# CONFIG_FB_SYS_IMAGEBLIT is not set ++# CONFIG_FB_FOREIGN_ENDIAN is not set ++# CONFIG_FB_SYS_FOPS is not set ++# CONFIG_FB_SVGALIB is not set ++# CONFIG_FB_MACMODES is not set ++# CONFIG_FB_BACKLIGHT is not set ++# CONFIG_FB_MODE_HELPERS is not set ++# CONFIG_FB_TILEBLITTING is not set ++ ++# ++# Frame buffer hardware drivers ++# ++# CONFIG_FB_CIRRUS is not set ++# CONFIG_FB_PM2 is not set ++# CONFIG_FB_CYBER2000 is not set ++# CONFIG_FB_OF is not set ++# CONFIG_FB_CT65550 is not set ++# CONFIG_FB_ASILIANT is not set ++# CONFIG_FB_IMSTT is not set ++# CONFIG_FB_VGA16 is not set ++# CONFIG_FB_S1D13XXX is not set ++# CONFIG_FB_NVIDIA is not set ++# CONFIG_FB_RIVA is not set ++# CONFIG_FB_MATROX is not set ++# CONFIG_FB_RADEON is not set ++# CONFIG_FB_ATY128 is not set ++# CONFIG_FB_ATY is not set ++# CONFIG_FB_S3 is not set ++# CONFIG_FB_SAVAGE is not set ++# CONFIG_FB_SIS is not set ++# CONFIG_FB_NEOMAGIC is not set ++# CONFIG_FB_KYRO is not set ++# CONFIG_FB_3DFX is not set ++# CONFIG_FB_VOODOO1 is not set ++# CONFIG_FB_VT8623 is not set ++# CONFIG_FB_TRIDENT is not set ++# CONFIG_FB_ARK is not set ++# CONFIG_FB_PM3 is not set ++CONFIG_FB_FSL_DIU=y ++# CONFIG_FB_IBM_GXT4500 is not set ++# CONFIG_FB_VIRTUAL is not set + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set + + # +@@ -922,6 +926,8 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y + CONFIG_VGA_CONSOLE=y + # CONFIG_VGACON_SOFT_SCROLLBACK is not set + CONFIG_DUMMY_CONSOLE=y ++# CONFIG_FRAMEBUFFER_CONSOLE is not set ++# CONFIG_LOGO is not set + + # + # Sound +@@ -938,7 +944,7 @@ CONFIG_SND_PCM=y + CONFIG_SND_OSSEMUL=y + CONFIG_SND_MIXER_OSS=y + CONFIG_SND_PCM_OSS=y +-# CONFIG_SND_PCM_OSS_PLUGINS is not set ++CONFIG_SND_PCM_OSS_PLUGINS=y + # CONFIG_SND_DYNAMIC_MINORS is not set + # CONFIG_SND_SUPPORT_OLD_API is not set + CONFIG_SND_VERBOSE_PROCFS=y +@@ -965,6 +971,7 @@ CONFIG_SND_VERBOSE_PROCFS=y + # CONFIG_SND_AU8810 is not set + # CONFIG_SND_AU8820 is not set + # CONFIG_SND_AU8830 is not set ++# CONFIG_SND_AW2 is not set + # CONFIG_SND_AZT3328 is not set + # CONFIG_SND_BT87X is not set + # CONFIG_SND_CA0106 is not set +@@ -1031,14 +1038,14 @@ CONFIG_SND_VERBOSE_PROCFS=y + CONFIG_SND_SOC=y + + # +-# SoC Audio support for SuperH +-# +- +-# + # ALSA SoC audio for Freescale SOCs + # + CONFIG_SND_SOC_MPC8610=y + CONFIG_SND_SOC_MPC8610_HPCD=y ++ ++# ++# SoC Audio for the Texas Instruments OMAP ++# + CONFIG_SND_SOC_CS4270=y + CONFIG_SND_SOC_CS4270_VD33_ERRATA=y + +@@ -1055,6 +1062,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1063,14 +1072,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1090,7 +1096,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + # CONFIG_DNOTIFY is not set + # CONFIG_INOTIFY is not set +@@ -1134,6 +1139,7 @@ CONFIG_TMPFS=y + # CONFIG_BEFS_FS is not set + # CONFIG_BFS_FS is not set + # CONFIG_EFS_FS is not set ++# CONFIG_JFFS2_FS is not set + # CONFIG_CRAMFS is not set + # CONFIG_VXFS_FS is not set + # CONFIG_MINIX_FS is not set +@@ -1147,10 +1153,9 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL 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=y ++# CONFIG_NFSD_V4 is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1234,6 +1239,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1244,6 +1250,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1251,6 +1258,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1261,6 +1269,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1274,9 +1283,11 @@ CONFIG_SCHED_DEBUG=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set ++# CONFIG_RCU_TORTURE_TEST is not set + # CONFIG_BACKTRACE_SELF_TEST is not set + # CONFIG_FAULT_INJECTION is not set + # CONFIG_SAMPLES is not set +@@ -1284,6 +1295,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1294,48 +1306,80 @@ CONFIG_DEBUG_INFO=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc8641_hpcn_defconfig b/arch/powerpc/configs/mpc8641_hpcn_defconfig +index d01dcdb..4a81715 100644 +--- a/arch/powerpc/configs/mpc8641_hpcn_defconfig ++++ b/arch/powerpc/configs/mpc8641_hpcn_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:11 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:15 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + CONFIG_KALLSYMS_EXTRA_PASS=y +@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + CONFIG_MODULE_FORCE_UNLOAD=y + CONFIG_MODVERSIONS=y +@@ -162,6 +167,7 @@ CONFIG_PPC_86xx=y + # CONFIG_PPC_CELL_NATIVE is not set + # CONFIG_PQ2ADS is not set + CONFIG_MPC8641_HPCN=y ++# CONFIG_SBC8641D is not set + # CONFIG_MPC8610_HPCD is not set + CONFIG_MPC8641=y + # CONFIG_IPIC is not set +@@ -211,11 +217,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -240,6 +248,8 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++CONFIG_HAS_RAPIDIO=y ++# CONFIG_RAPIDIO is not set + + # + # Advanced setup +@@ -249,11 +259,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -324,8 +334,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -387,6 +399,7 @@ CONFIG_FW_LOADER=y + # CONFIG_CONNECTOR is not set + # CONFIG_MTD is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -493,7 +506,11 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + CONFIG_SATA_AHCI=y ++# CONFIG_SATA_SIL24 is not set ++# CONFIG_SATA_FSL is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + # CONFIG_SATA_MV is not set +@@ -503,13 +520,11 @@ CONFIG_SATA_AHCI=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set + # CONFIG_SATA_VITESSE is not set + # CONFIG_SATA_INIC162X is not set +-# CONFIG_SATA_FSL is not set + CONFIG_PATA_ALI=y + # CONFIG_PATA_AMD is not set + # CONFIG_PATA_ARTOP is not set +@@ -549,6 +564,7 @@ CONFIG_PATA_ALI=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -614,7 +630,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -634,6 +649,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -641,6 +657,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -705,6 +722,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -736,7 +754,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + CONFIG_NVRAM=y +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -747,13 +764,6 @@ CONFIG_I2C_BOARDINFO=y + # CONFIG_I2C_CHARDEV is not set + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -780,6 +790,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -789,19 +800,13 @@ CONFIG_SENSORS_EEPROM=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -818,13 +823,33 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + CONFIG_DVB_CORE=m +-# CONFIG_DVB_CORE_ATTACH is not set ++CONFIG_VIDEO_MEDIA=m ++ ++# ++# Multimedia drivers ++# ++# CONFIG_MEDIA_ATTACH is not set ++CONFIG_MEDIA_TUNER=m ++# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set ++CONFIG_MEDIA_TUNER_SIMPLE=m ++CONFIG_MEDIA_TUNER_TDA8290=m ++CONFIG_MEDIA_TUNER_TDA9887=m ++CONFIG_MEDIA_TUNER_TEA5761=m ++CONFIG_MEDIA_TUNER_TEA5767=m ++CONFIG_MEDIA_TUNER_MT20XX=m ++CONFIG_MEDIA_TUNER_XC2028=m ++CONFIG_MEDIA_TUNER_XC5000=m + CONFIG_DVB_CAPTURE_DRIVERS=y + + # +@@ -867,14 +892,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # + # DVB-S (satellite) frontends + # +-# CONFIG_DVB_STV0299 is not set + # CONFIG_DVB_CX24110 is not set + # CONFIG_DVB_CX24123 is not set +-# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_MT312 is not set +-# CONFIG_DVB_VES1X93 is not set + # CONFIG_DVB_S5H1420 is not set ++# CONFIG_DVB_STV0299 is not set ++# CONFIG_DVB_TDA8083 is not set + # CONFIG_DVB_TDA10086 is not set ++# CONFIG_DVB_VES1X93 is not set ++# CONFIG_DVB_TUNER_ITD1000 is not set ++# CONFIG_DVB_TDA826X is not set ++# CONFIG_DVB_TUA6100 is not set + + # + # DVB-T (terrestrial) frontends +@@ -892,6 +920,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_DIB3000MC is not set + # CONFIG_DVB_DIB7000M is not set + # CONFIG_DVB_DIB7000P is not set ++# CONFIG_DVB_TDA10048 is not set + + # + # DVB-C (cable) frontends +@@ -910,27 +939,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y + # CONFIG_DVB_BCM3510 is not set + # CONFIG_DVB_LGDT330X is not set + # CONFIG_DVB_S5H1409 is not set ++# CONFIG_DVB_AU8522 is not set ++# CONFIG_DVB_S5H1411 is not set + + # +-# Tuners/PLL support ++# Digital terrestrial only tuners/PLL + # + # CONFIG_DVB_PLL is not set +-# CONFIG_DVB_TDA826X is not set +-# CONFIG_DVB_TDA827X is not set +-# CONFIG_DVB_TDA18271 is not set +-# CONFIG_DVB_TUNER_QT1010 is not set +-# CONFIG_DVB_TUNER_MT2060 is not set +-# CONFIG_DVB_TUNER_MT2266 is not set +-# CONFIG_DVB_TUNER_MT2131 is not set + # CONFIG_DVB_TUNER_DIB0070 is not set +-# CONFIG_DVB_TUNER_XC5000 is not set + + # +-# Miscellaneous devices ++# SEC control devices for DVB-S + # + # CONFIG_DVB_LNBP21 is not set ++# CONFIG_DVB_ISL6405 is not set + # CONFIG_DVB_ISL6421 is not set +-# CONFIG_DVB_TUA6100 is not set + CONFIG_DAB=y + # CONFIG_USB_DABUSB is not set + +@@ -997,6 +1020,7 @@ CONFIG_SND_AC97_CODEC=y + # CONFIG_SND_AU8810 is not set + # CONFIG_SND_AU8820 is not set + # CONFIG_SND_AU8830 is not set ++# CONFIG_SND_AW2 is not set + # CONFIG_SND_AZT3328 is not set + # CONFIG_SND_BT87X is not set + # CONFIG_SND_CA0106 is not set +@@ -1071,11 +1095,11 @@ CONFIG_SND_INTEL8X0=y + # CONFIG_SND_SOC is not set + + # +-# SoC Audio support for SuperH ++# ALSA SoC audio for Freescale SOCs + # + + # +-# ALSA SoC audio for Freescale SOCs ++# SoC Audio for the Texas Instruments OMAP + # + + # +@@ -1110,16 +1134,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_FSL is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + CONFIG_USB_OHCI_HCD_PPC_OF=y + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +@@ -1137,6 +1165,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1156,7 +1185,9 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_SDDR55 is not set + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set ++# CONFIG_USB_STORAGE_ONETOUCH is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -1194,10 +1225,12 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1249,11 +1282,8 @@ CONFIG_RTC_DRV_CMOS=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1273,7 +1303,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1343,10 +1372,9 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-# CONFIG_NFS_DIRECTIO is not set + CONFIG_NFSD=y + # CONFIG_NFSD_V3 is not set +-CONFIG_NFSD_TCP=y ++# CONFIG_NFSD_V4 is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y + CONFIG_LOCKD_V4=y +@@ -1430,9 +1458,10 @@ CONFIG_NLS_UTF8=m + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set +-# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC_ITU_T=m + CONFIG_CRC32=y + # CONFIG_CRC7 is not set + CONFIG_LIBCRC32C=m +@@ -1441,6 +1470,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1448,6 +1478,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1458,6 +1489,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1471,6 +1503,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1482,6 +1515,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1492,52 +1526,82 @@ CONFIG_DEBUG_INFO=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++# CONFIG_CRYPTO_TEST is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + CONFIG_CRYPTO_HMAC=y + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + CONFIG_CRYPTO_SHA1=m + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_TEST is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig +index 2d831db..46fffbc 100644 +--- a/arch/powerpc/configs/mpc866_ads_defconfig ++++ b/arch/powerpc/configs/mpc866_ads_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:35 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:16 2008 + # + # CONFIG_PPC64 is not set + +@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -106,6 +108,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -210,11 +213,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -231,6 +236,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_SYSCALL is not set + # CONFIG_PCI_QSPAN is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -240,13 +246,13 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0x80000000 + CONFIG_CONSISTENT_START=0xfd000000 + CONFIG_CONSISTENT_SIZE=0x00200000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -294,8 +300,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -419,6 +423,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -485,6 +490,7 @@ CONFIG_SERIO_LIBPS2=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -517,12 +523,7 @@ CONFIG_GEN_RTC=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -551,12 +552,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -584,6 +595,8 @@ CONFIG_USB_SUPPORT=y + # CONFIG_USB_ARCH_HAS_HCD is not set + # CONFIG_USB_ARCH_HAS_OHCI is not set + # CONFIG_USB_ARCH_HAS_EHCI is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -592,13 +605,10 @@ CONFIG_USB_SUPPORT=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -620,7 +630,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -678,7 +687,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -722,6 +730,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=y + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -733,6 +742,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -740,6 +750,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -748,6 +759,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_PPC_EARLY_DEBUG is not set + + # +@@ -757,48 +769,78 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig +index 82151b9..9df7897 100644 +--- a/arch/powerpc/configs/mpc885_ads_defconfig ++++ b/arch/powerpc/configs/mpc885_ads_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:35 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:17 2008 + # + # CONFIG_PPC64 is not set + +@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -108,6 +110,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + # CONFIG_TINY_SHMEM is not set +@@ -219,11 +222,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -241,6 +246,7 @@ CONFIG_FSL_SOC=y + # CONFIG_PCI_QSPAN is not set + # CONFIG_ARCH_SUPPORTS_MSI is not set + # CONFIG_PCCARD is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -250,13 +256,13 @@ CONFIG_FSL_SOC=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0x80000000 + CONFIG_CONSISTENT_START=0xfd000000 + CONFIG_CONSISTENT_SIZE=0x00200000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -299,8 +305,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -492,6 +496,7 @@ CONFIG_FS_ENET_MDIO_FEC=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_PPP is not set + # CONFIG_SLIP is not set +@@ -516,6 +521,7 @@ CONFIG_FS_ENET_MDIO_FEC=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -548,12 +554,7 @@ CONFIG_GEN_RTC=y + # CONFIG_RAW_DRIVER is not set + # CONFIG_TCG_TPM is not set + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -570,12 +571,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -599,13 +610,10 @@ CONFIG_DAB=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -618,7 +626,6 @@ CONFIG_DAB=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + # CONFIG_DNOTIFY is not set + # CONFIG_INOTIFY is not set +@@ -676,7 +683,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -719,6 +725,7 @@ CONFIG_MSDOS_PARTITION=y + # + # Library routines + # ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -729,6 +736,7 @@ CONFIG_ZLIB_INFLATE=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -736,6 +744,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -746,6 +755,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_SPINLOCK is not set +@@ -756,6 +766,7 @@ CONFIG_SCHED_DEBUG=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -766,6 +777,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_STACK_USAGE is not set + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -778,3 +790,4 @@ CONFIG_DEBUG_INFO=y + # CONFIG_CRYPTO is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig +index 40f84fa..ce250bc 100644 +--- a/arch/powerpc/configs/ppc64_defconfig ++++ b/arch/powerpc/configs/ppc64_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.26-rc3 +-# Tue May 20 20:03:02 2008 ++# Linux kernel version: 2.6.26-rc6 ++# Mon Jun 16 21:11:19 2008 + # + CONFIG_PPC64=y + +@@ -763,7 +763,63 @@ CONFIG_ATA_NONSTANDARD=y + CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set + CONFIG_SATA_SIL24=y +-# CONFIG_ATA_SFF is not set ++CONFIG_ATA_SFF=y ++CONFIG_SATA_SVW=y ++# CONFIG_ATA_PIIX is not set ++# CONFIG_SATA_MV is not set ++# CONFIG_SATA_NV is not set ++# CONFIG_PDC_ADMA is not set ++# CONFIG_SATA_QSTOR is not set ++# CONFIG_SATA_PROMISE is not set ++# CONFIG_SATA_SX4 is not set ++# CONFIG_SATA_SIL is not set ++# CONFIG_SATA_SIS is not set ++# CONFIG_SATA_ULI is not set ++# CONFIG_SATA_VIA is not set ++# CONFIG_SATA_VITESSE is not set ++# CONFIG_SATA_INIC162X is not set ++# CONFIG_PATA_ALI is not set ++# CONFIG_PATA_AMD is not set ++# CONFIG_PATA_ARTOP is not set ++# CONFIG_PATA_ATIIXP is not set ++# CONFIG_PATA_CMD640_PCI is not set ++# CONFIG_PATA_CMD64X is not set ++# CONFIG_PATA_CS5520 is not set ++# CONFIG_PATA_CS5530 is not set ++# CONFIG_PATA_CYPRESS is not set ++# CONFIG_PATA_EFAR is not set ++# CONFIG_ATA_GENERIC is not set ++# CONFIG_PATA_HPT366 is not set ++# CONFIG_PATA_HPT37X is not set ++# CONFIG_PATA_HPT3X2N is not set ++# CONFIG_PATA_HPT3X3 is not set ++# CONFIG_PATA_IT821X is not set ++# CONFIG_PATA_IT8213 is not set ++# CONFIG_PATA_JMICRON is not set ++# CONFIG_PATA_TRIFLEX is not set ++# CONFIG_PATA_MARVELL is not set ++# CONFIG_PATA_MPIIX is not set ++# CONFIG_PATA_OLDPIIX is not set ++# CONFIG_PATA_NETCELL is not set ++# CONFIG_PATA_NINJA32 is not set ++# CONFIG_PATA_NS87410 is not set ++# CONFIG_PATA_NS87415 is not set ++# CONFIG_PATA_OPTI is not set ++# CONFIG_PATA_OPTIDMA is not set ++# CONFIG_PATA_PCMCIA is not set ++# CONFIG_PATA_PDC_OLD is not set ++# CONFIG_PATA_RADISYS is not set ++# CONFIG_PATA_RZ1000 is not set ++# CONFIG_PATA_SC1200 is not set ++# CONFIG_PATA_SERVERWORKS is not set ++# CONFIG_PATA_PDC2027X is not set ++# CONFIG_PATA_SIL680 is not set ++# CONFIG_PATA_SIS is not set ++# CONFIG_PATA_VIA is not set ++# CONFIG_PATA_WINBOND is not set ++# CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCC is not set ++# CONFIG_PATA_SCH is not set + CONFIG_MD=y + CONFIG_BLK_DEV_MD=y + CONFIG_MD_LINEAR=y +@@ -1478,6 +1534,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1537,6 +1594,7 @@ CONFIG_USB_APPLEDISPLAY=m + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set +@@ -1597,6 +1655,7 @@ CONFIG_RTC_DRV_DS1307=y + # CONFIG_RTC_DRV_PCF8583 is not set + # CONFIG_RTC_DRV_M41T80 is not set + # CONFIG_RTC_DRV_S35390A is not set ++# CONFIG_RTC_DRV_FM3130 is not set + + # + # SPI RTC drivers +@@ -1617,6 +1676,7 @@ CONFIG_RTC_DRV_DS1307=y + # + # on-CPU RTC drivers + # ++CONFIG_RTC_DRV_PPC=y + # CONFIG_DMADEVICES is not set + # CONFIG_UIO is not set + +diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig +index 1383eb6..bc3bf62 100644 +--- a/arch/powerpc/configs/pq2fads_defconfig ++++ b/arch/powerpc/configs/pq2fads_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Mon Mar 24 08:48:36 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:18 2008 + # + # CONFIG_PPC64 is not set + +@@ -30,6 +30,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -70,19 +72,17 @@ CONFIG_IKCONFIG=y + CONFIG_IKCONFIG_PROC=y + CONFIG_LOG_BUF_SHIFT=14 + # CONFIG_CGROUPS is not set +-CONFIG_GROUP_SCHED=y +-# CONFIG_FAIR_GROUP_SCHED is not set +-CONFIG_USER_SCHED=y +-# CONFIG_CGROUP_SCHED is not set + CONFIG_SYSFS_DEPRECATED=y + CONFIG_SYSFS_DEPRECATED_V2=y + # CONFIG_RELAY is not set + # CONFIG_NAMESPACES is not set + CONFIG_BLK_DEV_INITRD=y + CONFIG_INITRAMFS_SOURCE="" ++CONFIG_CC_OPTIMIZE_FOR_SIZE=y + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + CONFIG_KALLSYMS_ALL=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -109,6 +109,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -196,11 +197,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -225,6 +228,7 @@ CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -234,11 +238,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00400000 + + # + # Networking +@@ -293,6 +297,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y + CONFIG_INET6_XFRM_MODE_TUNNEL=y + CONFIG_INET6_XFRM_MODE_BEET=y + CONFIG_IPV6_SIT=y ++CONFIG_IPV6_NDISC_NODETYPE=y + # CONFIG_IPV6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + CONFIG_NETFILTER=y +@@ -513,7 +518,7 @@ CONFIG_IDE_PROC_FS=y + # CONFIG_BLK_DEV_VIA82CXXX is not set + # CONFIG_BLK_DEV_TC86C001 is not set + # CONFIG_BLK_DEV_IDEDMA is not set +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -593,7 +598,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -611,6 +615,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -618,6 +623,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + # CONFIG_FDDI is not set + CONFIG_PPP=y +@@ -692,6 +698,7 @@ CONFIG_SERIO_LIBPS2=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + + # +@@ -726,12 +733,7 @@ CONFIG_HW_RANDOM=y + # CONFIG_RAW_DRIVER is not set + CONFIG_DEVPORT=y + # CONFIG_I2C is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -748,12 +750,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -781,11 +793,14 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' + # + CONFIG_USB_GADGET=y ++# CONFIG_USB_GADGET_DEBUG is not set + # CONFIG_USB_GADGET_DEBUG_FILES is not set + CONFIG_USB_GADGET_SELECTED=y + # CONFIG_USB_GADGET_AMD5536UDC is not set +@@ -795,6 +810,7 @@ CONFIG_USB_GADGET_SELECTED=y + # CONFIG_USB_GADGET_PXA2XX is not set + CONFIG_USB_GADGET_M66592=y + CONFIG_USB_M66592=y ++# CONFIG_USB_GADGET_PXA27X is not set + # CONFIG_USB_GADGET_GOKU is not set + # CONFIG_USB_GADGET_LH7A40X is not set + # CONFIG_USB_GADGET_OMAP is not set +@@ -804,6 +820,7 @@ CONFIG_USB_M66592=y + CONFIG_USB_GADGET_DUALSPEED=y + # CONFIG_USB_ZERO is not set + CONFIG_USB_ETH=y ++CONFIG_USB_ETH_RNDIS=y + # CONFIG_USB_GADGETFS is not set + # CONFIG_USB_FILE_STORAGE is not set + # CONFIG_USB_G_SERIAL is not set +@@ -812,13 +829,10 @@ CONFIG_USB_ETH=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -888,7 +902,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + CONFIG_NFS_V3_ACL=y +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -967,6 +980,7 @@ CONFIG_NLS_UTF8=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=y + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -979,6 +993,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -986,6 +1001,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -996,6 +1012,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + # CONFIG_SCHED_DEBUG is not set + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_SLUB_DEBUG_ON is not set + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_RT_MUTEXES is not set +@@ -1008,6 +1025,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_DEBUG_BUGVERBOSE=y + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1019,6 +1037,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_PAGEALLOC is not set + # CONFIG_DEBUGGER is not set + # CONFIG_KGDB_CONSOLE is not set ++# CONFIG_IRQSTACKS is not set + CONFIG_BDI_SWITCH=y + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1028,46 +1047,76 @@ CONFIG_BDI_SWITCH=y + # CONFIG_KEYS is not set + # CONFIG_SECURITY is not set + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_MANAGER=y +-# CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=y ++CONFIG_CRYPTO_PCBC=y ++ ++# ++# Hash modes ++# ++# CONFIG_CRYPTO_HMAC is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + CONFIG_CRYPTO_MD5=y ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-CONFIG_CRYPTO_ECB=y +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=y +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set + # CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set + CONFIG_PPC_LIB_RHEAP=y ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig +index f912168..c6b8357 100644 +--- a/arch/powerpc/configs/prpmc2800_defconfig ++++ b/arch/powerpc/configs/prpmc2800_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:15 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:18 2008 + # + # CONFIG_PPC64 is not set + +@@ -33,6 +33,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -92,6 +94,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + # CONFIG_EMBEDDED is not set + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_EXTRA_PASS is not set + CONFIG_HOTPLUG=y +@@ -117,6 +120,7 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y +@@ -215,11 +219,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -241,6 +247,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -250,13 +257,13 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 + CONFIG_CONSISTENT_START=0xff100000 + CONFIG_CONSISTENT_SIZE=0x00200000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -304,8 +311,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -364,6 +369,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -435,6 +441,7 @@ CONFIG_MTD_PHYSMAP_OF=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -519,7 +526,7 @@ CONFIG_BLK_DEV_PDC202XX_NEW=y + # CONFIG_BLK_DEV_VIA82CXXX is not set + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -598,7 +605,10 @@ CONFIG_SCSI_LOWLEVEL=y + # CONFIG_SCSI_SRP is not set + CONFIG_ATA=y + # CONFIG_ATA_NONSTANDARD is not set ++CONFIG_SATA_PMP=y + # CONFIG_SATA_AHCI is not set ++# CONFIG_SATA_SIL24 is not set ++CONFIG_ATA_SFF=y + # CONFIG_SATA_SVW is not set + # CONFIG_ATA_PIIX is not set + CONFIG_SATA_MV=y +@@ -608,7 +618,6 @@ CONFIG_SATA_MV=y + # CONFIG_SATA_PROMISE is not set + # CONFIG_SATA_SX4 is not set + # CONFIG_SATA_SIL is not set +-# CONFIG_SATA_SIL24 is not set + # CONFIG_SATA_SIS is not set + # CONFIG_SATA_ULI is not set + # CONFIG_SATA_VIA is not set +@@ -653,6 +662,7 @@ CONFIG_SATA_MV=y + # CONFIG_PATA_VIA is not set + # CONFIG_PATA_WINBOND is not set + # CONFIG_PATA_PLATFORM is not set ++# CONFIG_PATA_SCH is not set + # CONFIG_MD is not set + # CONFIG_FUSION is not set + +@@ -744,7 +754,6 @@ CONFIG_E1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -763,6 +772,7 @@ CONFIG_NETDEV_10000=y + # CONFIG_MLX4_CORE is not set + # CONFIG_TEHUTI is not set + # CONFIG_BNX2X is not set ++# CONFIG_SFC is not set + # CONFIG_TR is not set + + # +@@ -770,6 +780,7 @@ CONFIG_NETDEV_10000=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -832,6 +843,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -855,7 +867,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + # CONFIG_HW_RANDOM is not set + # CONFIG_NVRAM is not set +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -866,13 +877,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -898,6 +902,7 @@ CONFIG_I2C_CHARDEV=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + CONFIG_I2C_MV64XXX=y + + # +@@ -908,19 +913,13 @@ CONFIG_I2C_MV64XXX=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -990,12 +989,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + # CONFIG_DAB is not set + + # +@@ -1055,11 +1064,13 @@ CONFIG_USB_DEVICEFS=y + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + # CONFIG_USB_OHCI_HCD_PPC_OF is not set + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +@@ -1074,6 +1085,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1120,10 +1132,12 @@ CONFIG_USB_MON=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -1175,11 +1189,8 @@ CONFIG_RTC_DRV_MAX6900=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1199,7 +1210,6 @@ CONFIG_FS_MBCACHE=y + # CONFIG_JFS_FS is not set + # CONFIG_FS_POSIX_ACL is not set + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1257,7 +1267,6 @@ CONFIG_NETWORK_FILESYSTEMS=y + CONFIG_NFS_FS=y + # CONFIG_NFS_V3 is not set + # CONFIG_NFS_V4 is not set +-# CONFIG_NFS_DIRECTIO is not set + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1300,6 +1309,7 @@ CONFIG_MSDOS_PARTITION=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1310,6 +1320,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1317,6 +1328,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1326,6 +1338,7 @@ CONFIG_ENABLE_MUST_CHECK=y + # CONFIG_SLUB_STATS is not set + CONFIG_DEBUG_BUGVERBOSE=y + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BOOTX_TEXT is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1336,48 +1349,78 @@ CONFIG_DEBUG_BUGVERBOSE=y + # CONFIG_SECURITY is not set + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_CRYPTO=y +-# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Crypto core or helper ++# + # CONFIG_CRYPTO_MANAGER is not set ++# CONFIG_CRYPTO_GF128MUL is not set ++# CONFIG_CRYPTO_NULL is not set ++# CONFIG_CRYPTO_CRYPTD is not set ++# CONFIG_CRYPTO_AUTHENC is not set ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++# CONFIG_CRYPTO_CBC is not set ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++# CONFIG_CRYPTO_ECB is not set ++# CONFIG_CRYPTO_LRW is not set ++# CONFIG_CRYPTO_PCBC is not set ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + # CONFIG_CRYPTO_HMAC is not set + # CONFIG_CRYPTO_XCBC is not set +-# CONFIG_CRYPTO_NULL is not set ++ ++# ++# Digest ++# ++# CONFIG_CRYPTO_CRC32C is not set + # CONFIG_CRYPTO_MD4 is not set + # CONFIG_CRYPTO_MD5 is not set ++# CONFIG_CRYPTO_MICHAEL_MIC is not set + # CONFIG_CRYPTO_SHA1 is not set + # CONFIG_CRYPTO_SHA256 is not set + # CONFIG_CRYPTO_SHA512 is not set +-# CONFIG_CRYPTO_WP512 is not set + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-# CONFIG_CRYPTO_ECB is not set +-# CONFIG_CRYPTO_CBC is not set +-# CONFIG_CRYPTO_PCBC is not set +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-# CONFIG_CRYPTO_DES is not set +-# CONFIG_CRYPTO_FCRYPT is not set +-# CONFIG_CRYPTO_BLOWFISH is not set +-# CONFIG_CRYPTO_TWOFISH is not set +-# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_WP512 is not set ++ ++# ++# Ciphers ++# + # CONFIG_CRYPTO_AES is not set ++# CONFIG_CRYPTO_ANUBIS is not set ++# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_BLOWFISH is not set ++# CONFIG_CRYPTO_CAMELLIA is not set + # CONFIG_CRYPTO_CAST5 is not set + # CONFIG_CRYPTO_CAST6 is not set +-# CONFIG_CRYPTO_TEA is not set +-# CONFIG_CRYPTO_ARC4 is not set ++# CONFIG_CRYPTO_DES is not set ++# CONFIG_CRYPTO_FCRYPT is not set + # CONFIG_CRYPTO_KHAZAD is not set +-# CONFIG_CRYPTO_ANUBIS is not set +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++# CONFIG_CRYPTO_SERPENT is not set ++# CONFIG_CRYPTO_TEA is not set ++# CONFIG_CRYPTO_TWOFISH is not set ++ ++# ++# Compression ++# + # CONFIG_CRYPTO_DEFLATE is not set +-# CONFIG_CRYPTO_MICHAEL_MIC is not set +-# CONFIG_CRYPTO_CRC32C is not set +-# CONFIG_CRYPTO_CAMELLIA is not set +-# CONFIG_CRYPTO_AUTHENC is not set + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/sbc8641d_defconfig b/arch/powerpc/configs/sbc8641d_defconfig +index 3180125..8227510 100644 +--- a/arch/powerpc/configs/sbc8641d_defconfig ++++ b/arch/powerpc/configs/sbc8641d_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc6 +-# Thu Apr 10 18:03:25 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:19 2008 + # + # CONFIG_PPC64 is not set + +@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_GENERIC_LOCKBREAK=y + CONFIG_ARCH_HAS_ILOG2_U32=y +@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE="" + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + CONFIG_KALLSYMS=y + # CONFIG_KALLSYMS_ALL is not set + # CONFIG_KALLSYMS_EXTRA_PASS is not set +@@ -116,12 +119,14 @@ CONFIG_HAVE_OPROFILE=y + # CONFIG_KPROBES is not set + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -197,7 +202,6 @@ CONFIG_PREEMPT=y + # CONFIG_PREEMPT_RCU is not set + CONFIG_BINFMT_ELF=y + CONFIG_BINFMT_MISC=m +-CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_IOMMU_HELPER is not set + CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + CONFIG_ARCH_HAS_WALK_MEMORY=y +@@ -213,11 +217,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + # CONFIG_PROC_DEVICETREE is not set + # CONFIG_CMDLINE_BOOL is not set + # CONFIG_PM is not set +@@ -237,12 +243,14 @@ CONFIG_PCI_DOMAINS=y + CONFIG_PCI_SYSCALL=y + CONFIG_PCIEPORTBUS=y + CONFIG_PCIEAER=y ++# CONFIG_PCIEASPM is not set + CONFIG_ARCH_SUPPORTS_MSI=y + # CONFIG_PCI_MSI is not set + CONFIG_PCI_LEGACY=y + # CONFIG_PCI_DEBUG is not set + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -252,11 +260,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -328,8 +336,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m + CONFIG_INET6_XFRM_MODE_BEET=m + # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set + CONFIG_IPV6_SIT=m ++CONFIG_IPV6_NDISC_NODETYPE=y + CONFIG_IPV6_TUNNEL=m + # CONFIG_IPV6_MULTIPLE_TABLES is not set ++# CONFIG_IPV6_MROUTE is not set + # CONFIG_NETLABEL is not set + # CONFIG_NETWORK_SECMARK is not set + CONFIG_NETFILTER=y +@@ -534,6 +544,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -610,6 +621,7 @@ CONFIG_MTD_PHYSMAP_OF=y + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -727,7 +739,6 @@ CONFIG_NETDEV_1000=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -743,6 +754,7 @@ CONFIG_GIANFAR=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + # CONFIG_WAN is not set + CONFIG_ATM_DRIVERS=y + # CONFIG_ATM_DUMMY is not set +@@ -825,6 +837,7 @@ CONFIG_VT=y + CONFIG_VT_CONSOLE=y + CONFIG_HW_CONSOLE=y + # CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -863,13 +876,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -895,6 +901,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -904,19 +911,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + CONFIG_HWMON=y +@@ -998,12 +999,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + CONFIG_DAB=y + + # +@@ -1041,6 +1052,8 @@ CONFIG_USB_ARCH_HAS_HCD=y + CONFIG_USB_ARCH_HAS_OHCI=y + CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_USB is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -1049,14 +1062,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + # CONFIG_RTC_CLASS is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1084,8 +1094,8 @@ CONFIG_REISERFS_FS_POSIX_ACL=y + # CONFIG_JFS_FS is not set + CONFIG_FS_POSIX_ACL=y + # CONFIG_XFS_FS is not set +-# CONFIG_GFS2_FS is not set + CONFIG_OCFS2_FS=m ++CONFIG_OCFS2_FS_O2CB=m + CONFIG_OCFS2_DEBUG_MASKLOG=y + # CONFIG_OCFS2_DEBUG_FS is not set + CONFIG_DNOTIFY=y +@@ -1145,7 +1155,6 @@ CONFIG_NFS_FS=y + CONFIG_NFS_V3=y + # CONFIG_NFS_V3_ACL is not set + CONFIG_NFS_V4=y +-CONFIG_NFS_DIRECTIO=y + # CONFIG_NFSD is not set + CONFIG_ROOT_NFS=y + CONFIG_LOCKD=y +@@ -1221,6 +1230,7 @@ CONFIG_NLS_UTF8=m + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + CONFIG_CRC_CCITT=m + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1241,6 +1251,7 @@ CONFIG_HAVE_LMB=y + # CONFIG_PRINTK_TIME is not set + CONFIG_ENABLE_WARN_DEPRECATED=y + CONFIG_ENABLE_MUST_CHECK=y ++CONFIG_FRAME_WARN=1024 + CONFIG_MAGIC_SYSRQ=y + # CONFIG_UNUSED_SYMBOLS is not set + CONFIG_DEBUG_FS=y +@@ -1251,6 +1262,7 @@ CONFIG_DETECT_SOFTLOCKUP=y + CONFIG_SCHED_DEBUG=y + # CONFIG_SCHEDSTATS is not set + # CONFIG_TIMER_STATS is not set ++# CONFIG_DEBUG_OBJECTS is not set + # CONFIG_DEBUG_SLAB is not set + # CONFIG_DEBUG_RT_MUTEXES is not set + # CONFIG_RT_MUTEX_TESTER is not set +@@ -1262,6 +1274,7 @@ CONFIG_SCHED_DEBUG=y + # CONFIG_DEBUG_BUGVERBOSE is not set + CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_VM is not set ++# CONFIG_DEBUG_WRITECOUNT is not set + # CONFIG_DEBUG_LIST is not set + # CONFIG_DEBUG_SG is not set + # CONFIG_BOOT_PRINTK_DELAY is not set +@@ -1274,6 +1287,7 @@ CONFIG_DEBUG_INFO=y + # CONFIG_DEBUG_PAGEALLOC is not set + CONFIG_DEBUGGER=y + # CONFIG_XMON is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_VIRQ_DEBUG is not set + # CONFIG_BDI_SWITCH is not set + # CONFIG_PPC_EARLY_DEBUG is not set +@@ -1289,54 +1303,84 @@ CONFIG_SECURITY_CAPABILITIES=y + # CONFIG_SECURITY_FILE_CAPABILITIES is not set + CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 + CONFIG_CRYPTO=y ++ ++# ++# Crypto core or helper ++# + CONFIG_CRYPTO_ALGAPI=y + CONFIG_CRYPTO_AEAD=m + CONFIG_CRYPTO_BLKCIPHER=y +-# CONFIG_CRYPTO_SEQIV is not set + CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_MANAGER=y ++# CONFIG_CRYPTO_GF128MUL is not set ++CONFIG_CRYPTO_NULL=m ++# CONFIG_CRYPTO_CRYPTD is not set ++CONFIG_CRYPTO_AUTHENC=m ++CONFIG_CRYPTO_TEST=m ++ ++# ++# Authenticated Encryption with Associated Data ++# ++# CONFIG_CRYPTO_CCM is not set ++# CONFIG_CRYPTO_GCM is not set ++# CONFIG_CRYPTO_SEQIV is not set ++ ++# ++# Block modes ++# ++CONFIG_CRYPTO_CBC=y ++# CONFIG_CRYPTO_CTR is not set ++# CONFIG_CRYPTO_CTS is not set ++CONFIG_CRYPTO_ECB=m ++# CONFIG_CRYPTO_LRW is not set ++CONFIG_CRYPTO_PCBC=m ++# CONFIG_CRYPTO_XTS is not set ++ ++# ++# Hash modes ++# + CONFIG_CRYPTO_HMAC=y + # CONFIG_CRYPTO_XCBC is not set +-CONFIG_CRYPTO_NULL=m ++ ++# ++# Digest ++# ++CONFIG_CRYPTO_CRC32C=m + CONFIG_CRYPTO_MD4=m + CONFIG_CRYPTO_MD5=y ++CONFIG_CRYPTO_MICHAEL_MIC=m + CONFIG_CRYPTO_SHA1=m + CONFIG_CRYPTO_SHA256=m + CONFIG_CRYPTO_SHA512=m +-CONFIG_CRYPTO_WP512=m + # CONFIG_CRYPTO_TGR192 is not set +-# CONFIG_CRYPTO_GF128MUL is not set +-CONFIG_CRYPTO_ECB=m +-CONFIG_CRYPTO_CBC=y +-CONFIG_CRYPTO_PCBC=m +-# CONFIG_CRYPTO_LRW is not set +-# CONFIG_CRYPTO_XTS is not set +-# CONFIG_CRYPTO_CTR is not set +-# CONFIG_CRYPTO_GCM is not set +-# CONFIG_CRYPTO_CCM is not set +-# CONFIG_CRYPTO_CRYPTD is not set +-CONFIG_CRYPTO_DES=y +-# CONFIG_CRYPTO_FCRYPT is not set +-CONFIG_CRYPTO_BLOWFISH=m +-CONFIG_CRYPTO_TWOFISH=m +-CONFIG_CRYPTO_TWOFISH_COMMON=m +-CONFIG_CRYPTO_SERPENT=m ++CONFIG_CRYPTO_WP512=m ++ ++# ++# Ciphers ++# + CONFIG_CRYPTO_AES=m ++CONFIG_CRYPTO_ANUBIS=m ++CONFIG_CRYPTO_ARC4=m ++CONFIG_CRYPTO_BLOWFISH=m ++# CONFIG_CRYPTO_CAMELLIA is not set + CONFIG_CRYPTO_CAST5=m + CONFIG_CRYPTO_CAST6=m +-CONFIG_CRYPTO_TEA=m +-CONFIG_CRYPTO_ARC4=m ++CONFIG_CRYPTO_DES=y ++# CONFIG_CRYPTO_FCRYPT is not set + CONFIG_CRYPTO_KHAZAD=m +-CONFIG_CRYPTO_ANUBIS=m +-# CONFIG_CRYPTO_SEED is not set + # CONFIG_CRYPTO_SALSA20 is not set ++# CONFIG_CRYPTO_SEED is not set ++CONFIG_CRYPTO_SERPENT=m ++CONFIG_CRYPTO_TEA=m ++CONFIG_CRYPTO_TWOFISH=m ++CONFIG_CRYPTO_TWOFISH_COMMON=m ++ ++# ++# Compression ++# + CONFIG_CRYPTO_DEFLATE=m +-CONFIG_CRYPTO_MICHAEL_MIC=m +-CONFIG_CRYPTO_CRC32C=m +-# CONFIG_CRYPTO_CAMELLIA is not set +-CONFIG_CRYPTO_TEST=m +-CONFIG_CRYPTO_AUTHENC=m + # CONFIG_CRYPTO_LZO is not set + CONFIG_CRYPTO_HW=y + # CONFIG_CRYPTO_DEV_HIFN_795X is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig +index fdbfd39..88f6aa8 100644 +--- a/arch/powerpc/configs/storcenter_defconfig ++++ b/arch/powerpc/configs/storcenter_defconfig +@@ -1,7 +1,7 @@ + # + # Automatically generated make config: don't edit +-# Linux kernel version: 2.6.25-rc7 +-# Mon Mar 31 11:37:19 2008 ++# Linux kernel version: 2.6.26-rc5 ++# Mon Jun 9 08:52:20 2008 + # + # CONFIG_PPC64 is not set + +@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y + CONFIG_GENERIC_HARDIRQS=y + # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set + CONFIG_IRQ_PER_CPU=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y + CONFIG_RWSEM_XCHGADD_ALGORITHM=y + CONFIG_ARCH_HAS_ILOG2_U32=y + CONFIG_GENERIC_HWEIGHT=y +@@ -85,6 +87,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y + CONFIG_SYSCTL=y + CONFIG_EMBEDDED=y + CONFIG_SYSCTL_SYSCALL=y ++CONFIG_SYSCTL_SYSCALL_CHECK=y + # CONFIG_KALLSYMS is not set + CONFIG_HOTPLUG=y + CONFIG_PRINTK=y +@@ -109,12 +112,14 @@ CONFIG_SLUB=y + CONFIG_HAVE_OPROFILE=y + CONFIG_HAVE_KPROBES=y + CONFIG_HAVE_KRETPROBES=y ++# CONFIG_HAVE_DMA_ATTRS is not set + CONFIG_PROC_PAGE_MONITOR=y + CONFIG_SLABINFO=y + CONFIG_RT_MUTEXES=y + # CONFIG_TINY_SHMEM is not set + CONFIG_BASE_SMALL=0 + CONFIG_MODULES=y ++# CONFIG_MODULE_FORCE_LOAD is not set + CONFIG_MODULE_UNLOAD=y + # CONFIG_MODULE_FORCE_UNLOAD is not set + # CONFIG_MODVERSIONS is not set +@@ -214,11 +219,13 @@ CONFIG_FLATMEM=y + CONFIG_FLAT_NODE_MEM_MAP=y + # CONFIG_SPARSEMEM_STATIC is not set + # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y + CONFIG_SPLIT_PTLOCK_CPUS=4 + # CONFIG_RESOURCES_64BIT is not set + CONFIG_ZONE_DMA_FLAG=1 + CONFIG_BOUNCE=y + CONFIG_VIRT_TO_BUS=y ++CONFIG_FORCE_MAX_ZONEORDER=11 + CONFIG_PROC_DEVICETREE=y + CONFIG_CMDLINE_BOOL=y + CONFIG_CMDLINE="console=ttyS0,115200" +@@ -242,6 +249,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y + CONFIG_PCI_LEGACY=y + # CONFIG_PCCARD is not set + # CONFIG_HOTPLUG_PCI is not set ++# CONFIG_HAS_RAPIDIO is not set + + # + # Advanced setup +@@ -251,11 +259,11 @@ CONFIG_PCI_LEGACY=y + # + # Default settings for advanced configuration options are used + # +-CONFIG_HIGHMEM_START=0xfe000000 + CONFIG_LOWMEM_SIZE=0x30000000 ++CONFIG_PAGE_OFFSET=0xc0000000 + CONFIG_KERNEL_START=0xc0000000 ++CONFIG_PHYSICAL_START=0x00000000 + CONFIG_TASK_SIZE=0xc0000000 +-CONFIG_BOOT_LOAD=0x00800000 + + # + # Networking +@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y + CONFIG_DEFAULT_TCP_CONG="cubic" + # CONFIG_TCP_MD5SIG is not set + # CONFIG_IPV6 is not set +-# CONFIG_INET6_XFRM_TUNNEL is not set +-# CONFIG_INET6_TUNNEL is not set + # CONFIG_NETWORK_SECMARK is not set + # CONFIG_NETFILTER is not set + # CONFIG_IP_DCCP is not set +@@ -358,6 +364,7 @@ CONFIG_MTD_PARTITIONS=y + # CONFIG_MTD_REDBOOT_PARTS is not set + # CONFIG_MTD_CMDLINE_PARTS is not set + # CONFIG_MTD_OF_PARTS is not set ++# CONFIG_MTD_AR7_PARTS is not set + + # + # User Modules And Translation Layers +@@ -433,6 +440,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1 + # + # CONFIG_MTD_UBI is not set + CONFIG_OF_DEVICE=y ++CONFIG_OF_I2C=y + # CONFIG_PARPORT is not set + CONFIG_BLK_DEV=y + # CONFIG_BLK_DEV_FD is not set +@@ -513,7 +521,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y + CONFIG_BLK_DEV_VIA82CXXX=y + # CONFIG_BLK_DEV_TC86C001 is not set + CONFIG_BLK_DEV_IDEDMA=y +-CONFIG_IDE_ARCH_OBSOLETE_INIT=y ++# CONFIG_BLK_DEV_HD_ONLY is not set + # CONFIG_BLK_DEV_HD is not set + + # +@@ -638,7 +646,6 @@ CONFIG_R8169=y + # CONFIG_SIS190 is not set + # CONFIG_SKGE is not set + # CONFIG_SKY2 is not set +-# CONFIG_SK98LIN is not set + # CONFIG_VIA_VELOCITY is not set + # CONFIG_TIGON3 is not set + # CONFIG_BNX2 is not set +@@ -654,6 +661,7 @@ CONFIG_R8169=y + # + # CONFIG_WLAN_PRE80211 is not set + # CONFIG_WLAN_80211 is not set ++# CONFIG_IWLWIFI_LEDS is not set + + # + # USB Network Adapters +@@ -690,6 +698,7 @@ CONFIG_R8169=y + # Character devices + # + # CONFIG_VT is not set ++CONFIG_DEVKMEM=y + # CONFIG_SERIAL_NONSTANDARD is not set + # CONFIG_NOZOMI is not set + +@@ -717,7 +726,6 @@ CONFIG_LEGACY_PTY_COUNT=256 + # CONFIG_IPMI_HANDLER is not set + CONFIG_HW_RANDOM=m + CONFIG_NVRAM=y +-# CONFIG_GEN_RTC is not set + # CONFIG_R3964 is not set + # CONFIG_APPLICOM is not set + # CONFIG_RAW_DRIVER is not set +@@ -728,13 +736,6 @@ CONFIG_I2C_BOARDINFO=y + CONFIG_I2C_CHARDEV=y + + # +-# I2C Algorithms +-# +-# CONFIG_I2C_ALGOBIT is not set +-# CONFIG_I2C_ALGOPCF is not set +-# CONFIG_I2C_ALGOPCA is not set +- +-# + # I2C Hardware Bus support + # + # CONFIG_I2C_ALI1535 is not set +@@ -761,6 +762,7 @@ CONFIG_I2C_MPC=y + # CONFIG_I2C_VIA is not set + # CONFIG_I2C_VIAPRO is not set + # CONFIG_I2C_VOODOO3 is not set ++# CONFIG_I2C_PCA_PLATFORM is not set + + # + # Miscellaneous I2C Chip support +@@ -770,19 +772,13 @@ CONFIG_I2C_MPC=y + # CONFIG_SENSORS_PCF8574 is not set + # CONFIG_PCF8575 is not set + # CONFIG_SENSORS_PCF8591 is not set +-# CONFIG_TPS65010 is not set + # CONFIG_SENSORS_MAX6875 is not set + # CONFIG_SENSORS_TSL2550 is not set + # CONFIG_I2C_DEBUG_CORE is not set + # CONFIG_I2C_DEBUG_ALGO is not set + # CONFIG_I2C_DEBUG_BUS is not set + # CONFIG_I2C_DEBUG_CHIP is not set +- +-# +-# SPI support +-# + # CONFIG_SPI is not set +-# CONFIG_SPI_MASTER is not set + # CONFIG_W1 is not set + # CONFIG_POWER_SUPPLY is not set + # CONFIG_HWMON is not set +@@ -799,12 +795,22 @@ CONFIG_SSB_POSSIBLE=y + # Multifunction device drivers + # + # CONFIG_MFD_SM501 is not set ++# CONFIG_HTC_PASIC3 is not set + + # + # Multimedia devices + # ++ ++# ++# Multimedia core support ++# + # CONFIG_VIDEO_DEV is not set + # CONFIG_DVB_CORE is not set ++# CONFIG_VIDEO_MEDIA is not set ++ ++# ++# Multimedia drivers ++# + # CONFIG_DAB is not set + + # +@@ -841,16 +847,20 @@ CONFIG_USB_DEVICEFS=y + CONFIG_USB_DEVICE_CLASS=y + # CONFIG_USB_DYNAMIC_MINORS is not set + # CONFIG_USB_OTG is not set ++# CONFIG_USB_OTG_WHITELIST is not set ++# CONFIG_USB_OTG_BLACKLIST_HUB is not set + + # + # USB Host Controller Drivers + # ++# CONFIG_USB_C67X00_HCD is not set + CONFIG_USB_EHCI_HCD=y + # CONFIG_USB_EHCI_ROOT_HUB_TT is not set + # CONFIG_USB_EHCI_TT_NEWSCHED is not set + # CONFIG_USB_EHCI_FSL is not set + CONFIG_USB_EHCI_HCD_PPC_OF=y + # CONFIG_USB_ISP116X_HCD is not set ++# CONFIG_USB_ISP1760_HCD is not set + CONFIG_USB_OHCI_HCD=y + # CONFIG_USB_OHCI_HCD_PPC_OF is not set + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +@@ -865,6 +875,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y + # + # CONFIG_USB_ACM is not set + # CONFIG_USB_PRINTER is not set ++# CONFIG_USB_WDM is not set + + # + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +@@ -885,6 +896,7 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_STORAGE_JUMPSHOT is not set + # CONFIG_USB_STORAGE_ALAUDA is not set + # CONFIG_USB_STORAGE_KARMA is not set ++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set + # CONFIG_USB_LIBUSUAL is not set + + # +@@ -922,10 +934,12 @@ CONFIG_USB_STORAGE=y + # CONFIG_USB_TRANCEVIBRATOR is not set + # CONFIG_USB_IOWARRIOR is not set + # CONFIG_USB_TEST is not set ++# CONFIG_USB_ISIGHTFW is not set + # CONFIG_USB_GADGET is not set + # CONFIG_MMC is not set + # CONFIG_MEMSTICK is not set + # CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set + # CONFIG_INFINIBAND is not set + # CONFIG_EDAC is not set + CONFIG_RTC_LIB=y +@@ -977,11 +991,8 @@ CONFIG_RTC_DRV_DS1307=y + # + # on-CPU RTC drivers + # ++# CONFIG_RTC_DRV_PPC is not set + # CONFIG_DMADEVICES is not set +- +-# +-# Userspace I/O +-# + # CONFIG_UIO is not set + + # +@@ -1002,10 +1013,9 @@ CONFIG_FS_MBCACHE=y + # CONFIG_FS_POSIX_ACL is not set + CONFIG_XFS_FS=m + # CONFIG_XFS_QUOTA is not set +-# CONFIG_XFS_SECURITY is not set + # CONFIG_XFS_POSIX_ACL is not set + # CONFIG_XFS_RT is not set +-# CONFIG_GFS2_FS is not set ++# CONFIG_XFS_DEBUG is not set + # CONFIG_OCFS2_FS is not set + CONFIG_DNOTIFY=y + CONFIG_INOTIFY=y +@@ -1138,6 +1148,7 @@ CONFIG_NLS_UTF8=y + # Library routines + # + CONFIG_BITREVERSE=y ++# CONFIG_GENERIC_FIND_FIRST_BIT is not set + # CONFIG_CRC_CCITT is not set + # CONFIG_CRC16 is not set + # CONFIG_CRC_ITU_T is not set +@@ -1150,6 +1161,7 @@ CONFIG_PLIST=y + CONFIG_HAS_IOMEM=y + CONFIG_HAS_IOPORT=y + CONFIG_HAS_DMA=y ++CONFIG_HAVE_LMB=y + + # + # Kernel hacking +@@ -1157,6 +1169,7 @@ CONFIG_HAS_DMA=y + # CONFIG_PRINTK_TIME is not set + # CONFIG_ENABLE_WARN_DEPRECATED is not set + # CONFIG_ENABLE_MUST_CHECK is not set ++CONFIG_FRAME_WARN=1024 + # CONFIG_MAGIC_SYSRQ is not set + # CONFIG_UNUSED_SYMBOLS is not set + # CONFIG_DEBUG_FS is not set +@@ -1166,6 +1179,7 @@ CONFIG_HAS_DMA=y + # CONFIG_SLUB_STATS is not set + # CONFIG_DEBUG_BUGVERBOSE is not set + # CONFIG_SAMPLES is not set ++# CONFIG_IRQSTACKS is not set + # CONFIG_BOOTX_TEXT is not set + # CONFIG_PPC_EARLY_DEBUG is not set + +@@ -1181,3 +1195,4 @@ CONFIG_ASYNC_MEMCPY=y + CONFIG_ASYNC_XOR=y + # CONFIG_CRYPTO is not set + # CONFIG_PPC_CLOCK is not set ++# CONFIG_VIRTUALIZATION is not set +diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S +index c2b9dc4..22b5d2c 100644 +--- a/arch/powerpc/kernel/head_44x.S ++++ b/arch/powerpc/kernel/head_44x.S +@@ -368,7 +368,12 @@ interrupt_base: + + rlwimi r11,r13,0,26,31 /* Insert static perms */ + +- rlwinm r11,r11,0,20,15 /* Clear U0-U3 */ ++ /* ++ * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added ++ * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see ++ * include/asm-powerpc/pgtable-ppc32.h for details). ++ */ ++ rlwinm r11,r11,0,20,10 + + /* find the TLB index that caused the fault. It has to be here. */ + tlbsx r10, 0, r10 +diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c +index 2f73f70..bcc249d 100644 +--- a/arch/powerpc/kernel/irq.c ++++ b/arch/powerpc/kernel/irq.c +@@ -1073,7 +1073,7 @@ static const struct file_operations virq_debug_fops = { + static int __init irq_debugfs_init(void) + { + if (debugfs_create_file("virq_mapping", S_IRUGO, powerpc_debugfs_root, +- NULL, &virq_debug_fops)) ++ NULL, &virq_debug_fops) == NULL) + return -ENOMEM; + + return 0; +diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c +index cf6b5a7..d3ac631 100644 +--- a/arch/powerpc/kernel/ppc_ksyms.c ++++ b/arch/powerpc/kernel/ppc_ksyms.c +@@ -8,7 +8,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -160,7 +159,6 @@ EXPORT_SYMBOL(screen_info); + EXPORT_SYMBOL(timer_interrupt); + EXPORT_SYMBOL(irq_desc); + EXPORT_SYMBOL(tb_ticks_per_jiffy); +-EXPORT_SYMBOL(console_drivers); + EXPORT_SYMBOL(cacheable_memcpy); + #endif + +diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/kernel/prom_init_check.sh +index 31729a9..2c7e8e8 100644 +--- a/arch/powerpc/kernel/prom_init_check.sh ++++ b/arch/powerpc/kernel/prom_init_check.sh +@@ -48,6 +48,20 @@ do + fi + done + ++ # ignore register save/restore funcitons ++ if [ "${UNDEF:0:9}" = "_restgpr_" ]; then ++ OK=1 ++ fi ++ if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then ++ OK=1 ++ fi ++ if [ "${UNDEF:0:9}" = "_savegpr_" ]; then ++ OK=1 ++ fi ++ if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then ++ OK=1 ++ fi ++ + if [ $OK -eq 0 ]; then + ERROR=1 + echo "Error: External symbol '$UNDEF' referenced" \ +diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile +index c71d37d..e522b06 100644 +--- a/arch/powerpc/lib/Makefile ++++ b/arch/powerpc/lib/Makefile +@@ -9,7 +9,7 @@ endif + ifeq ($(CONFIG_PPC_MERGE),y) + obj-y := string.o alloc.o \ + checksum_$(CONFIG_WORD_SIZE).o +-obj-$(CONFIG_PPC32) += div64.o copy_32.o ++obj-$(CONFIG_PPC32) += div64.o copy_32.o crtsavres.o + obj-$(CONFIG_HAS_IOMEM) += devres.o + endif + +diff --git a/arch/powerpc/lib/crtsavres.S b/arch/powerpc/lib/crtsavres.S +new file mode 100644 +index 0000000..70a9cd8 +--- /dev/null ++++ b/arch/powerpc/lib/crtsavres.S +@@ -0,0 +1,229 @@ ++/* ++ * Special support for eabi and SVR4 ++ * ++ * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc. ++ * Copyright 2008 Freescale Semiconductor, Inc. ++ * Written By Michael Meissner ++ * ++ * Based on gcc/config/rs6000/crtsavres.asm from gcc ++ * ++ * This file 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, or (at your option) any ++ * later version. ++ * ++ * In addition to the permissions in the GNU General Public License, the ++ * Free Software Foundation gives you unlimited permission to link the ++ * compiled version of this file with other programs, and to distribute ++ * those programs without any restriction coming from the use of this ++ * file. (The General Public License restrictions do apply in other ++ * respects; for example, they cover modification of the file, and ++ * distribution when not linked into another program.) ++ * ++ * This file 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; see the file COPYING. If not, write to ++ * the Free Software Foundation, 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ * As a special exception, if you link this library with files ++ * compiled with GCC to produce an executable, this does not cause ++ * the resulting executable to be covered by the GNU General Public License. ++ * This exception does not however invalidate any other reasons why ++ * the executable file might be covered by the GNU General Public License. ++ */ ++ ++#include ++ ++ .file "crtsavres.S" ++ .section ".text" ++ ++#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE ++ ++/* Routines for saving integer registers, called by the compiler. */ ++/* Called with r11 pointing to the stack header word of the caller of the */ ++/* function, just beyond the end of the integer save area. */ ++ ++_GLOBAL(_savegpr_14) ++_GLOBAL(_save32gpr_14) ++ stw 14,-72(11) /* save gp registers */ ++_GLOBAL(_savegpr_15) ++_GLOBAL(_save32gpr_15) ++ stw 15,-68(11) ++_GLOBAL(_savegpr_16) ++_GLOBAL(_save32gpr_16) ++ stw 16,-64(11) ++_GLOBAL(_savegpr_17) ++_GLOBAL(_save32gpr_17) ++ stw 17,-60(11) ++_GLOBAL(_savegpr_18) ++_GLOBAL(_save32gpr_18) ++ stw 18,-56(11) ++_GLOBAL(_savegpr_19) ++_GLOBAL(_save32gpr_19) ++ stw 19,-52(11) ++_GLOBAL(_savegpr_20) ++_GLOBAL(_save32gpr_20) ++ stw 20,-48(11) ++_GLOBAL(_savegpr_21) ++_GLOBAL(_save32gpr_21) ++ stw 21,-44(11) ++_GLOBAL(_savegpr_22) ++_GLOBAL(_save32gpr_22) ++ stw 22,-40(11) ++_GLOBAL(_savegpr_23) ++_GLOBAL(_save32gpr_23) ++ stw 23,-36(11) ++_GLOBAL(_savegpr_24) ++_GLOBAL(_save32gpr_24) ++ stw 24,-32(11) ++_GLOBAL(_savegpr_25) ++_GLOBAL(_save32gpr_25) ++ stw 25,-28(11) ++_GLOBAL(_savegpr_26) ++_GLOBAL(_save32gpr_26) ++ stw 26,-24(11) ++_GLOBAL(_savegpr_27) ++_GLOBAL(_save32gpr_27) ++ stw 27,-20(11) ++_GLOBAL(_savegpr_28) ++_GLOBAL(_save32gpr_28) ++ stw 28,-16(11) ++_GLOBAL(_savegpr_29) ++_GLOBAL(_save32gpr_29) ++ stw 29,-12(11) ++_GLOBAL(_savegpr_30) ++_GLOBAL(_save32gpr_30) ++ stw 30,-8(11) ++_GLOBAL(_savegpr_31) ++_GLOBAL(_save32gpr_31) ++ stw 31,-4(11) ++ blr ++ ++/* Routines for restoring integer registers, called by the compiler. */ ++/* Called with r11 pointing to the stack header word of the caller of the */ ++/* function, just beyond the end of the integer restore area. */ ++ ++_GLOBAL(_restgpr_14) ++_GLOBAL(_rest32gpr_14) ++ lwz 14,-72(11) /* restore gp registers */ ++_GLOBAL(_restgpr_15) ++_GLOBAL(_rest32gpr_15) ++ lwz 15,-68(11) ++_GLOBAL(_restgpr_16) ++_GLOBAL(_rest32gpr_16) ++ lwz 16,-64(11) ++_GLOBAL(_restgpr_17) ++_GLOBAL(_rest32gpr_17) ++ lwz 17,-60(11) ++_GLOBAL(_restgpr_18) ++_GLOBAL(_rest32gpr_18) ++ lwz 18,-56(11) ++_GLOBAL(_restgpr_19) ++_GLOBAL(_rest32gpr_19) ++ lwz 19,-52(11) ++_GLOBAL(_restgpr_20) ++_GLOBAL(_rest32gpr_20) ++ lwz 20,-48(11) ++_GLOBAL(_restgpr_21) ++_GLOBAL(_rest32gpr_21) ++ lwz 21,-44(11) ++_GLOBAL(_restgpr_22) ++_GLOBAL(_rest32gpr_22) ++ lwz 22,-40(11) ++_GLOBAL(_restgpr_23) ++_GLOBAL(_rest32gpr_23) ++ lwz 23,-36(11) ++_GLOBAL(_restgpr_24) ++_GLOBAL(_rest32gpr_24) ++ lwz 24,-32(11) ++_GLOBAL(_restgpr_25) ++_GLOBAL(_rest32gpr_25) ++ lwz 25,-28(11) ++_GLOBAL(_restgpr_26) ++_GLOBAL(_rest32gpr_26) ++ lwz 26,-24(11) ++_GLOBAL(_restgpr_27) ++_GLOBAL(_rest32gpr_27) ++ lwz 27,-20(11) ++_GLOBAL(_restgpr_28) ++_GLOBAL(_rest32gpr_28) ++ lwz 28,-16(11) ++_GLOBAL(_restgpr_29) ++_GLOBAL(_rest32gpr_29) ++ lwz 29,-12(11) ++_GLOBAL(_restgpr_30) ++_GLOBAL(_rest32gpr_30) ++ lwz 30,-8(11) ++_GLOBAL(_restgpr_31) ++_GLOBAL(_rest32gpr_31) ++ lwz 31,-4(11) ++ blr ++ ++/* Routines for restoring integer registers, called by the compiler. */ ++/* Called with r11 pointing to the stack header word of the caller of the */ ++/* function, just beyond the end of the integer restore area. */ ++ ++_GLOBAL(_restgpr_14_x) ++_GLOBAL(_rest32gpr_14_x) ++ lwz 14,-72(11) /* restore gp registers */ ++_GLOBAL(_restgpr_15_x) ++_GLOBAL(_rest32gpr_15_x) ++ lwz 15,-68(11) ++_GLOBAL(_restgpr_16_x) ++_GLOBAL(_rest32gpr_16_x) ++ lwz 16,-64(11) ++_GLOBAL(_restgpr_17_x) ++_GLOBAL(_rest32gpr_17_x) ++ lwz 17,-60(11) ++_GLOBAL(_restgpr_18_x) ++_GLOBAL(_rest32gpr_18_x) ++ lwz 18,-56(11) ++_GLOBAL(_restgpr_19_x) ++_GLOBAL(_rest32gpr_19_x) ++ lwz 19,-52(11) ++_GLOBAL(_restgpr_20_x) ++_GLOBAL(_rest32gpr_20_x) ++ lwz 20,-48(11) ++_GLOBAL(_restgpr_21_x) ++_GLOBAL(_rest32gpr_21_x) ++ lwz 21,-44(11) ++_GLOBAL(_restgpr_22_x) ++_GLOBAL(_rest32gpr_22_x) ++ lwz 22,-40(11) ++_GLOBAL(_restgpr_23_x) ++_GLOBAL(_rest32gpr_23_x) ++ lwz 23,-36(11) ++_GLOBAL(_restgpr_24_x) ++_GLOBAL(_rest32gpr_24_x) ++ lwz 24,-32(11) ++_GLOBAL(_restgpr_25_x) ++_GLOBAL(_rest32gpr_25_x) ++ lwz 25,-28(11) ++_GLOBAL(_restgpr_26_x) ++_GLOBAL(_rest32gpr_26_x) ++ lwz 26,-24(11) ++_GLOBAL(_restgpr_27_x) ++_GLOBAL(_rest32gpr_27_x) ++ lwz 27,-20(11) ++_GLOBAL(_restgpr_28_x) ++_GLOBAL(_rest32gpr_28_x) ++ lwz 28,-16(11) ++_GLOBAL(_restgpr_29_x) ++_GLOBAL(_rest32gpr_29_x) ++ lwz 29,-12(11) ++_GLOBAL(_restgpr_30_x) ++_GLOBAL(_rest32gpr_30_x) ++ lwz 30,-8(11) ++_GLOBAL(_restgpr_31_x) ++_GLOBAL(_rest32gpr_31_x) ++ lwz 0,4(11) ++ lwz 31,-4(11) ++ mtlr 0 ++ mr 1,11 ++ blr ++#endif +diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S +index 21d2484..70f4c83 100644 +--- a/arch/powerpc/mm/hash_low_64.S ++++ b/arch/powerpc/mm/hash_low_64.S +@@ -568,6 +568,10 @@ htab_inval_old_hpte: + ld r7,STK_PARM(r9)(r1) /* ssize */ + ld r8,STK_PARM(r8)(r1) /* local */ + bl .flush_hash_page ++ /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */ ++ lis r0,_PAGE_HPTE_SUB@h ++ ori r0,r0,_PAGE_HPTE_SUB@l ++ andc r30,r30,r0 + b htab_insert_pte + + htab_bail_ok: +diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig +index 7ff29d5..ecbe580 100644 +--- a/arch/powerpc/platforms/85xx/Kconfig ++++ b/arch/powerpc/platforms/85xx/Kconfig +@@ -34,6 +34,7 @@ config MPC85xx_MDS + bool "Freescale MPC85xx MDS" + select DEFAULT_UIMAGE + select QUICC_ENGINE ++ select PHYLIB + help + This option enables support for the MPC85xx MDS board + +diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c +index 70c6601..78f905b 100644 +--- a/arch/powerpc/platforms/cell/spu_base.c ++++ b/arch/powerpc/platforms/cell/spu_base.c +@@ -219,15 +219,25 @@ static int __spu_trap_data_seg(struct spu *spu, unsigned long ea) + extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap); //XXX + static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) + { ++ int ret; ++ + pr_debug("%s, %lx, %lx\n", __func__, dsisr, ea); + +- /* Handle kernel space hash faults immediately. +- User hash faults need to be deferred to process context. */ +- if ((dsisr & MFC_DSISR_PTE_NOT_FOUND) +- && REGION_ID(ea) != USER_REGION_ID +- && hash_page(ea, _PAGE_PRESENT, 0x300) == 0) { +- spu_restart_dma(spu); +- return 0; ++ /* ++ * Handle kernel space hash faults immediately. User hash ++ * faults need to be deferred to process context. ++ */ ++ if ((dsisr & MFC_DSISR_PTE_NOT_FOUND) && ++ (REGION_ID(ea) != USER_REGION_ID)) { ++ ++ spin_unlock(&spu->register_lock); ++ ret = hash_page(ea, _PAGE_PRESENT, 0x300); ++ spin_lock(&spu->register_lock); ++ ++ if (!ret) { ++ spu_restart_dma(spu); ++ return 0; ++ } + } + + spu->class_1_dar = ea; +@@ -324,17 +334,13 @@ spu_irq_class_0(int irq, void *data) + stat = spu_int_stat_get(spu, 0) & mask; + + spu->class_0_pending |= stat; +- spu->class_0_dsisr = spu_mfc_dsisr_get(spu); + spu->class_0_dar = spu_mfc_dar_get(spu); +- spin_unlock(&spu->register_lock); +- + spu->stop_callback(spu, 0); +- + spu->class_0_pending = 0; +- spu->class_0_dsisr = 0; + spu->class_0_dar = 0; + + spu_int_stat_clear(spu, 0, stat); ++ spin_unlock(&spu->register_lock); + + return IRQ_HANDLED; + } +@@ -357,13 +363,12 @@ spu_irq_class_1(int irq, void *data) + spu_mfc_dsisr_set(spu, 0ul); + spu_int_stat_clear(spu, 1, stat); + +- if (stat & CLASS1_SEGMENT_FAULT_INTR) +- __spu_trap_data_seg(spu, dar); +- +- spin_unlock(&spu->register_lock); + pr_debug("%s: %lx %lx %lx %lx\n", __func__, mask, stat, + dar, dsisr); + ++ if (stat & CLASS1_SEGMENT_FAULT_INTR) ++ __spu_trap_data_seg(spu, dar); ++ + if (stat & CLASS1_STORAGE_FAULT_INTR) + __spu_trap_data_map(spu, dar, dsisr); + +@@ -376,6 +381,8 @@ spu_irq_class_1(int irq, void *data) + spu->class_1_dsisr = 0; + spu->class_1_dar = 0; + ++ spin_unlock(&spu->register_lock); ++ + return stat ? IRQ_HANDLED : IRQ_NONE; + } + +@@ -394,14 +401,12 @@ spu_irq_class_2(int irq, void *data) + mask = spu_int_mask_get(spu, 2); + /* ignore interrupts we're not waiting for */ + stat &= mask; +- + /* mailbox interrupts are level triggered. mask them now before + * acknowledging */ + if (stat & mailbox_intrs) + spu_int_mask_and(spu, 2, ~(stat & mailbox_intrs)); + /* acknowledge all interrupts before the callbacks */ + spu_int_stat_clear(spu, 2, stat); +- spin_unlock(&spu->register_lock); + + pr_debug("class 2 interrupt %d, %lx, %lx\n", irq, stat, mask); + +@@ -421,6 +426,9 @@ spu_irq_class_2(int irq, void *data) + spu->wbox_callback(spu); + + spu->stats.class2_intr++; ++ ++ spin_unlock(&spu->register_lock); ++ + return stat ? IRQ_HANDLED : IRQ_NONE; + } + +diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c +index b7493b8..f7edba6 100644 +--- a/arch/powerpc/platforms/cell/spufs/run.c ++++ b/arch/powerpc/platforms/cell/spufs/run.c +@@ -27,7 +27,6 @@ void spufs_stop_callback(struct spu *spu, int irq) + switch(irq) { + case 0 : + ctx->csa.class_0_pending = spu->class_0_pending; +- ctx->csa.class_0_dsisr = spu->class_0_dsisr; + ctx->csa.class_0_dar = spu->class_0_dar; + break; + case 1 : +@@ -51,18 +50,22 @@ int spu_stopped(struct spu_context *ctx, u32 *stat) + u64 dsisr; + u32 stopped; + +- *stat = ctx->ops->status_read(ctx); +- +- if (test_bit(SPU_SCHED_NOTIFY_ACTIVE, &ctx->sched_flags)) +- return 1; +- + stopped = SPU_STATUS_INVALID_INSTR | SPU_STATUS_SINGLE_STEP | + SPU_STATUS_STOPPED_BY_HALT | SPU_STATUS_STOPPED_BY_STOP; +- if (!(*stat & SPU_STATUS_RUNNING) && (*stat & stopped)) ++ ++top: ++ *stat = ctx->ops->status_read(ctx); ++ if (*stat & stopped) { ++ /* ++ * If the spu hasn't finished stopping, we need to ++ * re-read the register to get the stopped value. ++ */ ++ if (*stat & SPU_STATUS_RUNNING) ++ goto top; + return 1; ++ } + +- dsisr = ctx->csa.class_0_dsisr; +- if (dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED)) ++ if (test_bit(SPU_SCHED_NOTIFY_ACTIVE, &ctx->sched_flags)) + return 1; + + dsisr = ctx->csa.class_1_dsisr; +diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c +index 745dd51..e929e70 100644 +--- a/arch/powerpc/platforms/cell/spufs/sched.c ++++ b/arch/powerpc/platforms/cell/spufs/sched.c +@@ -230,19 +230,23 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx) + ctx->stats.slb_flt_base = spu->stats.slb_flt; + ctx->stats.class2_intr_base = spu->stats.class2_intr; + ++ spu_associate_mm(spu, ctx->owner); ++ ++ spin_lock_irq(&spu->register_lock); + spu->ctx = ctx; + spu->flags = 0; + ctx->spu = spu; + ctx->ops = &spu_hw_ops; + spu->pid = current->pid; + spu->tgid = current->tgid; +- spu_associate_mm(spu, ctx->owner); + spu->ibox_callback = spufs_ibox_callback; + spu->wbox_callback = spufs_wbox_callback; + spu->stop_callback = spufs_stop_callback; + spu->mfc_callback = spufs_mfc_callback; +- mb(); ++ spin_unlock_irq(&spu->register_lock); ++ + spu_unmap_mappings(ctx); ++ + spu_switch_log_notify(spu, ctx, SWITCH_LOG_START, 0); + spu_restore(&ctx->csa, spu); + spu->timestamp = jiffies; +@@ -403,6 +407,8 @@ static int has_affinity(struct spu_context *ctx) + */ + static void spu_unbind_context(struct spu *spu, struct spu_context *ctx) + { ++ u32 status; ++ + spu_context_trace(spu_unbind_context__enter, ctx, spu); + + spuctx_switch_state(ctx, SPU_UTIL_SYSTEM); +@@ -423,18 +429,22 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx) + spu_unmap_mappings(ctx); + spu_save(&ctx->csa, spu); + spu_switch_log_notify(spu, ctx, SWITCH_LOG_STOP, 0); ++ ++ spin_lock_irq(&spu->register_lock); + spu->timestamp = jiffies; + ctx->state = SPU_STATE_SAVED; + spu->ibox_callback = NULL; + spu->wbox_callback = NULL; + spu->stop_callback = NULL; + spu->mfc_callback = NULL; +- spu_associate_mm(spu, NULL); + spu->pid = 0; + spu->tgid = 0; + ctx->ops = &spu_backing_ops; + spu->flags = 0; + spu->ctx = NULL; ++ spin_unlock_irq(&spu->register_lock); ++ ++ spu_associate_mm(spu, NULL); + + ctx->stats.slb_flt += + (spu->stats.slb_flt - ctx->stats.slb_flt_base); +@@ -444,6 +454,9 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx) + /* This maps the underlying spu state to idle */ + spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); + ctx->spu = NULL; ++ ++ if (spu_stopped(ctx, &status)) ++ wake_up_all(&ctx->stop_wq); + } + + /** +diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c +index 68ea5ee..8c1ca47 100644 +--- a/arch/powerpc/platforms/pseries/eeh_driver.c ++++ b/arch/powerpc/platforms/pseries/eeh_driver.c +@@ -42,17 +42,20 @@ static inline const char * pcid_name (struct pci_dev *pdev) + } + + #ifdef DEBUG +-static void print_device_node_tree (struct pci_dn *pdn, int dent) ++static void print_device_node_tree(struct pci_dn *pdn, int dent) + { + int i; +- if (!pdn) return; +- for (i=0;inode->name, pdn->eeh_mode, pdn->eeh_config_addr, + pdn->eeh_pe_config_addr, pdn->node->full_name); + dent += 3; +- struct device_node *pc = pdn->node->child; ++ pc = pdn->node->child; + while (pc) { + print_device_node_tree(PCI_DN(pc), dent); + pc = pc->sibling; +diff --git a/arch/powerpc/platforms/pseries/nvram.c b/arch/powerpc/platforms/pseries/nvram.c +index f68903e..42f7e38 100644 +--- a/arch/powerpc/platforms/pseries/nvram.c ++++ b/arch/powerpc/platforms/pseries/nvram.c +@@ -131,8 +131,10 @@ int __init pSeries_nvram_init(void) + return -ENODEV; + + nbytes_p = of_get_property(nvram, "#bytes", &proplen); +- if (nbytes_p == NULL || proplen != sizeof(unsigned int)) ++ if (nbytes_p == NULL || proplen != sizeof(unsigned int)) { ++ of_node_put(nvram); + return -EIO; ++ } + + nvram_size = *nbytes_p; + +diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c +index 1702de9..bfcf70e 100644 +--- a/arch/powerpc/xmon/xmon.c ++++ b/arch/powerpc/xmon/xmon.c +@@ -2844,7 +2844,6 @@ static void dump_spu_fields(struct spu *spu) + DUMP_FIELD(spu, "0x%lx", flags); + DUMP_FIELD(spu, "%d", class_0_pending); + DUMP_FIELD(spu, "0x%lx", class_0_dar); +- DUMP_FIELD(spu, "0x%lx", class_0_dsisr); + DUMP_FIELD(spu, "0x%lx", class_1_dar); + DUMP_FIELD(spu, "0x%lx", class_1_dsisr); + DUMP_FIELD(spu, "0x%lx", irqs[0]); +diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c +index b4b36e0..183db26 100644 +--- a/arch/um/os-Linux/start_up.c ++++ b/arch/um/os-Linux/start_up.c +@@ -121,8 +121,10 @@ static int stop_ptraced_child(int pid, int exitcode, int mustexit) + { + int status, n, ret = 0; + +- if (ptrace(PTRACE_CONT, pid, 0, 0) < 0) +- fatal_perror("stop_ptraced_child : ptrace failed"); ++ if (ptrace(PTRACE_CONT, pid, 0, 0) < 0) { ++ perror("stop_ptraced_child : ptrace failed"); ++ return -1; ++ } + CATCH_EINTR(n = waitpid(pid, &status, 0)); + if (!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { + int exit_with = WEXITSTATUS(status); +@@ -212,7 +214,7 @@ static void __init check_sysemu(void) + if (n < 0) + fatal_perror("check_sysemu : wait failed"); + if (!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP)) +- fatal("check_sysemu : expected SIGTRAP, got status = %d", ++ fatal("check_sysemu : expected SIGTRAP, got status = %d\n", + status); + + if (ptrace(PTRACE_GETREGS, pid, 0, regs) < 0) +@@ -254,9 +256,11 @@ static void __init check_sysemu(void) + + if (WIFSTOPPED(status) && + (WSTOPSIG(status) == (SIGTRAP|0x80))) { +- if (!count) +- fatal("check_ptrace : SYSEMU_SINGLESTEP " +- "doesn't singlestep"); ++ if (!count) { ++ non_fatal("check_ptrace : SYSEMU_SINGLESTEP " ++ "doesn't singlestep"); ++ goto fail; ++ } + n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, + os_getpid()); + if (n < 0) +@@ -266,9 +270,12 @@ static void __init check_sysemu(void) + } + else if (WIFSTOPPED(status) && (WSTOPSIG(status) == SIGTRAP)) + count++; +- else +- fatal("check_ptrace : expected SIGTRAP or " +- "(SIGTRAP | 0x80), got status = %d", status); ++ else { ++ non_fatal("check_ptrace : expected SIGTRAP or " ++ "(SIGTRAP | 0x80), got status = %d\n", ++ status); ++ goto fail; ++ } + } + if (stop_ptraced_child(pid, 0, 0) < 0) + goto fail_stopped; +diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c +index b487cbe..229f7a5 100644 +--- a/arch/um/os-Linux/sys-i386/registers.c ++++ b/arch/um/os-Linux/sys-i386/registers.c +@@ -6,7 +6,7 @@ + + #include + #include +-#include ++#include + #include "kern_constants.h" + #include "longjmp.h" + #include "user.h" +@@ -76,7 +76,7 @@ int put_fp_registers(int pid, unsigned long *regs) + + void arch_init_registers(int pid) + { +- struct user_fxsr_struct fpx_regs; ++ struct user_fpxregs_struct fpx_regs; + int err; + + err = ptrace(PTRACE_GETFPXREGS, pid, 0, &fpx_regs); +diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c +index c5ef1af..dc00a13 100644 +--- a/arch/x86/kernel/pci-dma.c ++++ b/arch/x86/kernel/pci-dma.c +@@ -378,6 +378,7 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, + struct page *page; + unsigned long dma_mask = 0; + dma_addr_t bus; ++ int noretry = 0; + + /* ignore region specifiers */ + gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32); +@@ -397,20 +398,25 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, + if (dev->dma_mask == NULL) + return NULL; + +- /* Don't invoke OOM killer */ +- gfp |= __GFP_NORETRY; ++ /* Don't invoke OOM killer or retry in lower 16MB DMA zone */ ++ if (gfp & __GFP_DMA) ++ noretry = 1; + + #ifdef CONFIG_X86_64 + /* Why <=? Even when the mask is smaller than 4GB it is often + larger than 16MB and in this case we have a chance of + finding fitting memory in the next higher zone first. If + not retry with true GFP_DMA. -AK */ +- if (dma_mask <= DMA_32BIT_MASK && !(gfp & GFP_DMA)) ++ if (dma_mask <= DMA_32BIT_MASK && !(gfp & GFP_DMA)) { + gfp |= GFP_DMA32; ++ if (dma_mask < DMA_32BIT_MASK) ++ noretry = 1; ++ } + #endif + + again: +- page = dma_alloc_pages(dev, gfp, get_order(size)); ++ page = dma_alloc_pages(dev, ++ noretry ? gfp | __GFP_NORETRY : gfp, get_order(size)); + if (page == NULL) + return NULL; + +diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c +index 9615eee..05191bb 100644 +--- a/arch/x86/kernel/rtc.c ++++ b/arch/x86/kernel/rtc.c +@@ -4,6 +4,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -197,3 +199,35 @@ unsigned long long native_read_tsc(void) + } + EXPORT_SYMBOL(native_read_tsc); + ++ ++static struct resource rtc_resources[] = { ++ [0] = { ++ .start = RTC_PORT(0), ++ .end = RTC_PORT(1), ++ .flags = IORESOURCE_IO, ++ }, ++ [1] = { ++ .start = RTC_IRQ, ++ .end = RTC_IRQ, ++ .flags = IORESOURCE_IRQ, ++ } ++}; ++ ++static struct platform_device rtc_device = { ++ .name = "rtc_cmos", ++ .id = -1, ++ .resource = rtc_resources, ++ .num_resources = ARRAY_SIZE(rtc_resources), ++}; ++ ++static __init int add_rtc_cmos(void) ++{ ++#ifdef CONFIG_PNP ++ if (!pnp_platform_devices) ++ platform_device_register(&rtc_device); ++#else ++ platform_device_register(&rtc_device); ++#endif /* CONFIG_PNP */ ++ return 0; ++} ++device_initcall(add_rtc_cmos); +diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S +index 70bebd3..ee1c3f6 100644 +--- a/arch/x86/lib/copy_user_64.S ++++ b/arch/x86/lib/copy_user_64.S +@@ -217,19 +217,19 @@ ENTRY(copy_user_generic_unrolled) + /* table sorted by exception address */ + .section __ex_table,"a" + .align 8 +- .quad .Ls1,.Ls1e +- .quad .Ls2,.Ls2e +- .quad .Ls3,.Ls3e +- .quad .Ls4,.Ls4e +- .quad .Ld1,.Ls1e ++ .quad .Ls1,.Ls1e /* Ls1-Ls4 have copied zero bytes */ ++ .quad .Ls2,.Ls1e ++ .quad .Ls3,.Ls1e ++ .quad .Ls4,.Ls1e ++ .quad .Ld1,.Ls1e /* Ld1-Ld4 have copied 0-24 bytes */ + .quad .Ld2,.Ls2e + .quad .Ld3,.Ls3e + .quad .Ld4,.Ls4e +- .quad .Ls5,.Ls5e +- .quad .Ls6,.Ls6e +- .quad .Ls7,.Ls7e +- .quad .Ls8,.Ls8e +- .quad .Ld5,.Ls5e ++ .quad .Ls5,.Ls5e /* Ls5-Ls8 have copied 32 bytes */ ++ .quad .Ls6,.Ls5e ++ .quad .Ls7,.Ls5e ++ .quad .Ls8,.Ls5e ++ .quad .Ld5,.Ls5e /* Ld5-Ld8 have copied 32-56 bytes */ + .quad .Ld6,.Ls6e + .quad .Ld7,.Ls7e + .quad .Ld8,.Ls8e +@@ -244,11 +244,8 @@ ENTRY(copy_user_generic_unrolled) + .quad .Le5,.Le_zero + .previous + +- /* compute 64-offset for main loop. 8 bytes accuracy with error on the +- pessimistic side. this is gross. it would be better to fix the +- interface. */ + /* eax: zero, ebx: 64 */ +-.Ls1e: addl $8,%eax ++.Ls1e: addl $8,%eax /* eax is bytes left uncopied within the loop (Ls1e: 64 .. Ls8e: 8) */ + .Ls2e: addl $8,%eax + .Ls3e: addl $8,%eax + .Ls4e: addl $8,%eax +diff --git a/arch/x86/lib/copy_user_nocache_64.S b/arch/x86/lib/copy_user_nocache_64.S +index 5196762..9d3d1ab 100644 +--- a/arch/x86/lib/copy_user_nocache_64.S ++++ b/arch/x86/lib/copy_user_nocache_64.S +@@ -145,19 +145,19 @@ ENTRY(__copy_user_nocache) + /* table sorted by exception address */ + .section __ex_table,"a" + .align 8 +- .quad .Ls1,.Ls1e +- .quad .Ls2,.Ls2e +- .quad .Ls3,.Ls3e +- .quad .Ls4,.Ls4e +- .quad .Ld1,.Ls1e ++ .quad .Ls1,.Ls1e /* .Ls[1-4] - 0 bytes copied */ ++ .quad .Ls2,.Ls1e ++ .quad .Ls3,.Ls1e ++ .quad .Ls4,.Ls1e ++ .quad .Ld1,.Ls1e /* .Ld[1-4] - 0..24 bytes coped */ + .quad .Ld2,.Ls2e + .quad .Ld3,.Ls3e + .quad .Ld4,.Ls4e +- .quad .Ls5,.Ls5e +- .quad .Ls6,.Ls6e +- .quad .Ls7,.Ls7e +- .quad .Ls8,.Ls8e +- .quad .Ld5,.Ls5e ++ .quad .Ls5,.Ls5e /* .Ls[5-8] - 32 bytes copied */ ++ .quad .Ls6,.Ls5e ++ .quad .Ls7,.Ls5e ++ .quad .Ls8,.Ls5e ++ .quad .Ld5,.Ls5e /* .Ld[5-8] - 32..56 bytes copied */ + .quad .Ld6,.Ls6e + .quad .Ld7,.Ls7e + .quad .Ld8,.Ls8e +@@ -172,11 +172,8 @@ ENTRY(__copy_user_nocache) + .quad .Le5,.Le_zero + .previous + +- /* compute 64-offset for main loop. 8 bytes accuracy with error on the +- pessimistic side. this is gross. it would be better to fix the +- interface. */ + /* eax: zero, ebx: 64 */ +-.Ls1e: addl $8,%eax ++.Ls1e: addl $8,%eax /* eax: bytes left uncopied: Ls1e: 64 .. Ls8e: 8 */ + .Ls2e: addl $8,%eax + .Ls3e: addl $8,%eax + .Ls4e: addl $8,%eax +diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c +index 6e64aaf..940185e 100644 +--- a/arch/x86/pci/common.c ++++ b/arch/x86/pci/common.c +@@ -328,18 +328,18 @@ static struct dmi_system_id __devinitdata pciprobe_dmi_table[] = { + #endif + { + .callback = set_bf_sort, +- .ident = "HP ProLiant DL385 G2", ++ .ident = "HP ProLiant DL360", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HP"), +- DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL385 G2"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL360"), + }, + }, + { + .callback = set_bf_sort, +- .ident = "HP ProLiant DL585 G2", ++ .ident = "HP ProLiant DL380", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HP"), +- DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL380"), + }, + }, + {} +diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c +index 544b7d6..966ab40 100644 +--- a/drivers/ata/ahci.c ++++ b/drivers/ata/ahci.c +@@ -89,6 +89,7 @@ enum { + board_ahci_sb600 = 3, + board_ahci_mv = 4, + board_ahci_sb700 = 5, ++ board_ahci_mcp65 = 6, + + /* global controller registers */ + HOST_CAP = 0x00, /* host capabilities */ +@@ -190,6 +191,7 @@ enum { + AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */ + AHCI_HFLAG_NO_HOTPLUG = (1 << 7), /* ignore PxSERR.DIAG.N */ + AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */ ++ AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */ + + /* ap->flags bits */ + +@@ -253,6 +255,8 @@ static void ahci_pmp_attach(struct ata_port *ap); + static void ahci_pmp_detach(struct ata_port *ap); + static int ahci_softreset(struct ata_link *link, unsigned int *class, + unsigned long deadline); ++static int ahci_sb600_softreset(struct ata_link *link, unsigned int *class, ++ unsigned long deadline); + static int ahci_hardreset(struct ata_link *link, unsigned int *class, + unsigned long deadline); + static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class, +@@ -329,6 +333,12 @@ static struct ata_port_operations ahci_p5wdh_ops = { + .hardreset = ahci_p5wdh_hardreset, + }; + ++static struct ata_port_operations ahci_sb600_ops = { ++ .inherits = &ahci_ops, ++ .softreset = ahci_sb600_softreset, ++ .pmp_softreset = ahci_sb600_softreset, ++}; ++ + #define AHCI_HFLAGS(flags) .private_data = (void *)(flags) + + static const struct ata_port_info ahci_port_info[] = { +@@ -359,11 +369,11 @@ static const struct ata_port_info ahci_port_info[] = { + { + AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | + AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_MSI | +- AHCI_HFLAG_SECT255 | AHCI_HFLAG_NO_PMP), ++ AHCI_HFLAG_SECT255), + .flags = AHCI_FLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +- .port_ops = &ahci_ops, ++ .port_ops = &ahci_sb600_ops, + }, + /* board_ahci_mv */ + { +@@ -377,8 +387,15 @@ static const struct ata_port_info ahci_port_info[] = { + }, + /* board_ahci_sb700 */ + { +- AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | +- AHCI_HFLAG_NO_PMP), ++ AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL), ++ .flags = AHCI_FLAG_COMMON, ++ .pio_mask = 0x1f, /* pio0-4 */ ++ .udma_mask = ATA_UDMA6, ++ .port_ops = &ahci_sb600_ops, ++ }, ++ /* board_ahci_mcp65 */ ++ { ++ AHCI_HFLAGS (AHCI_HFLAG_YES_NCQ), + .flags = AHCI_FLAG_COMMON, + .pio_mask = 0x1f, /* pio0-4 */ + .udma_mask = ATA_UDMA6, +@@ -438,14 +455,14 @@ static const struct pci_device_id ahci_pci_tbl[] = { + { PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251 }, /* VIA VT8251 */ + + /* NVIDIA */ +- { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci }, /* MCP65 */ +- { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci_mcp65 }, /* MCP65 */ ++ { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci_mcp65 }, /* MCP65 */ + { PCI_VDEVICE(NVIDIA, 0x0550), board_ahci }, /* MCP67 */ + { PCI_VDEVICE(NVIDIA, 0x0551), board_ahci }, /* MCP67 */ + { PCI_VDEVICE(NVIDIA, 0x0552), board_ahci }, /* MCP67 */ +@@ -624,6 +641,12 @@ static void ahci_save_initial_config(struct pci_dev *pdev, + cap &= ~HOST_CAP_NCQ; + } + ++ if (!(cap & HOST_CAP_NCQ) && (hpriv->flags & AHCI_HFLAG_YES_NCQ)) { ++ dev_printk(KERN_INFO, &pdev->dev, ++ "controller can do NCQ, turning on CAP_NCQ\n"); ++ cap |= HOST_CAP_NCQ; ++ } ++ + if ((cap & HOST_CAP_PMP) && (hpriv->flags & AHCI_HFLAG_NO_PMP)) { + dev_printk(KERN_INFO, &pdev->dev, + "controller can't do PMP, turning off CAP_PMP\n"); +@@ -1262,19 +1285,11 @@ static int ahci_exec_polled_cmd(struct ata_port *ap, int pmp, + return 0; + } + +-static int ahci_check_ready(struct ata_link *link) +-{ +- void __iomem *port_mmio = ahci_port_base(link->ap); +- u8 status = readl(port_mmio + PORT_TFDATA) & 0xFF; +- +- return ata_check_ready(status); +-} +- +-static int ahci_softreset(struct ata_link *link, unsigned int *class, +- unsigned long deadline) ++static int ahci_do_softreset(struct ata_link *link, unsigned int *class, ++ int pmp, unsigned long deadline, ++ int (*check_ready)(struct ata_link *link)) + { + struct ata_port *ap = link->ap; +- int pmp = sata_srst_pmp(link); + const char *reason = NULL; + unsigned long now, msecs; + struct ata_taskfile tf; +@@ -1312,7 +1327,7 @@ static int ahci_softreset(struct ata_link *link, unsigned int *class, + ahci_exec_polled_cmd(ap, pmp, &tf, 0, 0, 0); + + /* wait for link to become ready */ +- rc = ata_wait_after_reset(link, deadline, ahci_check_ready); ++ rc = ata_wait_after_reset(link, deadline, check_ready); + /* link occupied, -ENODEV too is an error */ + if (rc) { + reason = "device not ready"; +@@ -1328,6 +1343,72 @@ static int ahci_softreset(struct ata_link *link, unsigned int *class, + return rc; + } + ++static int ahci_check_ready(struct ata_link *link) ++{ ++ void __iomem *port_mmio = ahci_port_base(link->ap); ++ u8 status = readl(port_mmio + PORT_TFDATA) & 0xFF; ++ ++ return ata_check_ready(status); ++} ++ ++static int ahci_softreset(struct ata_link *link, unsigned int *class, ++ unsigned long deadline) ++{ ++ int pmp = sata_srst_pmp(link); ++ ++ DPRINTK("ENTER\n"); ++ ++ return ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready); ++} ++ ++static int ahci_sb600_check_ready(struct ata_link *link) ++{ ++ void __iomem *port_mmio = ahci_port_base(link->ap); ++ u8 status = readl(port_mmio + PORT_TFDATA) & 0xFF; ++ u32 irq_status = readl(port_mmio + PORT_IRQ_STAT); ++ ++ /* ++ * There is no need to check TFDATA if BAD PMP is found due to HW bug, ++ * which can save timeout delay. ++ */ ++ if (irq_status & PORT_IRQ_BAD_PMP) ++ return -EIO; ++ ++ return ata_check_ready(status); ++} ++ ++static int ahci_sb600_softreset(struct ata_link *link, unsigned int *class, ++ unsigned long deadline) ++{ ++ struct ata_port *ap = link->ap; ++ void __iomem *port_mmio = ahci_port_base(ap); ++ int pmp = sata_srst_pmp(link); ++ int rc; ++ u32 irq_sts; ++ ++ DPRINTK("ENTER\n"); ++ ++ rc = ahci_do_softreset(link, class, pmp, deadline, ++ ahci_sb600_check_ready); ++ ++ /* ++ * Soft reset fails on some ATI chips with IPMS set when PMP ++ * is enabled but SATA HDD/ODD is connected to SATA port, ++ * do soft reset again to port 0. ++ */ ++ if (rc == -EIO) { ++ irq_sts = readl(port_mmio + PORT_IRQ_STAT); ++ if (irq_sts & PORT_IRQ_BAD_PMP) { ++ ata_link_printk(link, KERN_WARNING, ++ "failed due to HW bug, retry pmp=0\n"); ++ rc = ahci_do_softreset(link, class, 0, deadline, ++ ahci_check_ready); ++ } ++ } ++ ++ return rc; ++} ++ + static int ahci_hardreset(struct ata_link *link, unsigned int *class, + unsigned long deadline) + { +@@ -2118,7 +2199,8 @@ static void ahci_p5wdh_workaround(struct ata_host *host) + static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) + { + static int printed_version; +- struct ata_port_info pi = ahci_port_info[ent->driver_data]; ++ unsigned int board_id = ent->driver_data; ++ struct ata_port_info pi = ahci_port_info[board_id]; + const struct ata_port_info *ppi[] = { &pi, NULL }; + struct device *dev = &pdev->dev; + struct ahci_host_priv *hpriv; +@@ -2167,6 +2249,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) + return -ENOMEM; + hpriv->flags |= (unsigned long)pi.private_data; + ++ /* MCP65 revision A1 and A2 can't do MSI */ ++ if (board_id == board_ahci_mcp65 && ++ (pdev->revision == 0xa1 || pdev->revision == 0xa2)) ++ hpriv->flags |= AHCI_HFLAG_NO_MSI; ++ + if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev)) + pci_intx(pdev, 1); + +diff --git a/drivers/atm/he.c b/drivers/atm/he.c +index ffc4a5a..ea495b2 100644 +--- a/drivers/atm/he.c ++++ b/drivers/atm/he.c +@@ -1542,7 +1542,8 @@ he_start(struct atm_dev *dev) + /* initialize framer */ + + #ifdef CONFIG_ATM_HE_USE_SUNI +- suni_init(he_dev->atm_dev); ++ if (he_isMM(he_dev)) ++ suni_init(he_dev->atm_dev); + if (he_dev->atm_dev->phy && he_dev->atm_dev->phy->start) + he_dev->atm_dev->phy->start(he_dev->atm_dev); + #endif /* CONFIG_ATM_HE_USE_SUNI */ +@@ -1554,6 +1555,7 @@ he_start(struct atm_dev *dev) + val = he_phy_get(he_dev->atm_dev, SUNI_TPOP_APM); + val = (val & ~SUNI_TPOP_APM_S) | (SUNI_TPOP_S_SDH << SUNI_TPOP_APM_S_SHIFT); + he_phy_put(he_dev->atm_dev, val, SUNI_TPOP_APM); ++ he_phy_put(he_dev->atm_dev, SUNI_TACP_IUCHP_CLP, SUNI_TACP_IUCHP); + } + + /* 5.1.12 enable transmit and receive */ +@@ -2844,10 +2846,15 @@ he_ioctl(struct atm_dev *atm_dev, unsigned int cmd, void __user *arg) + if (copy_from_user(®, arg, + sizeof(struct he_ioctl_reg))) + return -EFAULT; +- ++ + spin_lock_irqsave(&he_dev->global_lock, flags); + switch (reg.type) { + case HE_REGTYPE_PCI: ++ if (reg.addr < 0 || reg.addr >= HE_REGMAP_SIZE) { ++ err = -EINVAL; ++ break; ++ } ++ + reg.val = he_readl(he_dev, reg.addr); + break; + case HE_REGTYPE_RCM: +diff --git a/drivers/atm/he.h b/drivers/atm/he.h +index fe6cd15..b87d6cc 100644 +--- a/drivers/atm/he.h ++++ b/drivers/atm/he.h +@@ -267,13 +267,7 @@ struct he_dev { + + char prod_id[30]; + char mac_addr[6]; +- int media; /* +- * 0x26 = HE155 MM +- * 0x27 = HE622 MM +- * 0x46 = HE155 SM +- * 0x47 = HE622 SM +- */ +- ++ int media; + + unsigned int vcibits, vpibits; + unsigned int cells_per_row; +@@ -392,6 +386,7 @@ struct he_vcc + #define HE_DEV(dev) ((struct he_dev *) (dev)->dev_data) + + #define he_is622(dev) ((dev)->media & 0x1) ++#define he_isMM(dev) ((dev)->media & 0x20) + + #define HE_REGMAP_SIZE 0x100000 + +@@ -876,8 +871,8 @@ struct he_vcc + #define M_SN 0x3a /* integer */ + #define MEDIA 0x3e /* integer */ + #define HE155MM 0x26 +-#define HE155SM 0x27 +-#define HE622MM 0x46 ++#define HE622MM 0x27 ++#define HE155SM 0x46 + #define HE622SM 0x47 + #define MAC_ADDR 0x42 /* char[] */ + +diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c +index 5c28ca7..139fce6 100644 +--- a/drivers/atm/iphase.c ++++ b/drivers/atm/iphase.c +@@ -2562,17 +2562,11 @@ static int __devinit ia_start(struct atm_dev *dev) + error = suni_init(dev); + if (error) + goto err_free_rx; +- /* +- * Enable interrupt on loss of signal +- * SUNI_RSOP_CIE - 0x10 +- * SUNI_RSOP_CIE_LOSE - 0x04 +- */ +- ia_phy_put(dev, ia_phy_get(dev, 0x10) | 0x04, 0x10); +-#ifndef MODULE +- error = dev->phy->start(dev); +- if (error) +- goto err_free_rx; +-#endif ++ if (dev->phy->start) { ++ error = dev->phy->start(dev); ++ if (error) ++ goto err_free_rx; ++ } + /* Get iadev->carrier_detect status */ + IaFrontEndIntr(iadev); + } +@@ -3198,6 +3192,8 @@ static int __devinit ia_init_one(struct pci_dev *pdev, + IF_INIT(printk("dev_id = 0x%x iadev->LineRate = %d \n", (u32)dev, + iadev->LineRate);) + ++ pci_set_drvdata(pdev, dev); ++ + ia_dev[iadev_count] = iadev; + _ia_dev[iadev_count] = dev; + iadev_count++; +@@ -3219,8 +3215,6 @@ static int __devinit ia_init_one(struct pci_dev *pdev, + iadev->next_board = ia_boards; + ia_boards = dev; + +- pci_set_drvdata(pdev, dev); +- + return 0; + + err_out_deregister_dev: +@@ -3238,9 +3232,14 @@ static void __devexit ia_remove_one(struct pci_dev *pdev) + struct atm_dev *dev = pci_get_drvdata(pdev); + IADEV *iadev = INPH_IA_DEV(dev); + +- ia_phy_put(dev, ia_phy_get(dev,0x10) & ~(0x4), 0x10); ++ /* Disable phy interrupts */ ++ ia_phy_put(dev, ia_phy_get(dev, SUNI_RSOP_CIE) & ~(SUNI_RSOP_CIE_LOSE), ++ SUNI_RSOP_CIE); + udelay(1); + ++ if (dev->phy && dev->phy->stop) ++ dev->phy->stop(dev); ++ + /* De-register device */ + free_irq(iadev->irq, dev); + iadev_count--; +diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c +index e336b05..5f1e1cc 100644 +--- a/drivers/block/cciss.c ++++ b/drivers/block/cciss.c +@@ -53,15 +53,16 @@ + #include + + #define CCISS_DRIVER_VERSION(maj,min,submin) ((maj<<16)|(min<<8)|(submin)) +-#define DRIVER_NAME "HP CISS Driver (v 3.6.14)" +-#define DRIVER_VERSION CCISS_DRIVER_VERSION(3,6,14) ++#define DRIVER_NAME "HP CISS Driver (v 3.6.20)" ++#define DRIVER_VERSION CCISS_DRIVER_VERSION(3, 6, 20) + + /* Embedded module documentation macros - see modules.h */ + MODULE_AUTHOR("Hewlett-Packard Company"); +-MODULE_DESCRIPTION("Driver for HP Controller SA5xxx SA6xxx version 3.6.14"); ++MODULE_DESCRIPTION("Driver for HP Smart Array Controllers"); + MODULE_SUPPORTED_DEVICE("HP SA5i SA5i+ SA532 SA5300 SA5312 SA641 SA642 SA6400" +- " SA6i P600 P800 P400 P400i E200 E200i E500"); +-MODULE_VERSION("3.6.14"); ++ " SA6i P600 P800 P400 P400i E200 E200i E500 P700m" ++ " Smart Array G2 Series SAS/SATA Controllers"); ++MODULE_VERSION("3.6.20"); + MODULE_LICENSE("GPL"); + + #include "cciss_cmd.h" +@@ -90,6 +91,11 @@ static const struct pci_device_id cciss_pci_device_id[] = { + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSD, 0x103C, 0x3215}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3237}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x323D}, ++ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3241}, ++ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3243}, ++ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245}, ++ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3247}, ++ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249}, + {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, + {0,} +@@ -123,6 +129,11 @@ static struct board_type products[] = { + {0x3215103C, "Smart Array E200i", &SA5_access, 120}, + {0x3237103C, "Smart Array E500", &SA5_access, 512}, + {0x323D103C, "Smart Array P700m", &SA5_access, 512}, ++ {0x3241103C, "Smart Array P212", &SA5_access, 384}, ++ {0x3243103C, "Smart Array P410", &SA5_access, 384}, ++ {0x3245103C, "Smart Array P410i", &SA5_access, 384}, ++ {0x3247103C, "Smart Array P411", &SA5_access, 384}, ++ {0x3249103C, "Smart Array P812", &SA5_access, 384}, + {0xFFFF103C, "Unknown Smart Array", &SA5_access, 120}, + }; + +diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig +index d307bf2..2d854bb 100644 +--- a/drivers/char/Kconfig ++++ b/drivers/char/Kconfig +@@ -749,7 +749,7 @@ config NVRAM + if RTC_LIB=n + + config RTC +- tristate "Enhanced Real Time Clock Support" ++ tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)" + depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \ + && !ARM && !SUPERH && !S390 && !AVR32 + ---help--- +@@ -1036,9 +1036,9 @@ config HPET + non-periodic and/or periodic. + + config HPET_RTC_IRQ +- bool "HPET Control RTC IRQ" if !HPET_EMULATE_RTC +- default n +- depends on HPET ++ bool ++ default HPET_EMULATE_RTC ++ depends on RTC && HPET + help + If you say Y here, you will disable RTC_IRQ in drivers/char/rtc.c. It + is assumed the platform called hpet_alloc with the RTC IRQ values for +diff --git a/drivers/char/agp/agp.h b/drivers/char/agp/agp.h +index 99e6a40..81e14be 100644 +--- a/drivers/char/agp/agp.h ++++ b/drivers/char/agp/agp.h +@@ -99,8 +99,8 @@ struct agp_bridge_driver { + const void *aperture_sizes; + int num_aperture_sizes; + enum aper_size_type size_type; +- int cant_use_aperture; +- int needs_scratch_page; ++ bool cant_use_aperture; ++ bool needs_scratch_page; + const struct gatt_mask *masks; + int (*fetch_size)(void); + int (*configure)(void); +@@ -278,7 +278,7 @@ void agp_generic_destroy_page(void *addr, int flags); + void agp_free_key(int key); + int agp_num_entries(void); + u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 mode, u32 command); +-void agp_device_command(u32 command, int agp_v3); ++void agp_device_command(u32 command, bool agp_v3); + int agp_3_5_enable(struct agp_bridge_data *bridge); + void global_cache_flush(void); + void get_agp_version(struct agp_bridge_data *bridge); +diff --git a/drivers/char/agp/alpha-agp.c b/drivers/char/agp/alpha-agp.c +index e77c178..5da89f6 100644 +--- a/drivers/char/agp/alpha-agp.c ++++ b/drivers/char/agp/alpha-agp.c +@@ -80,7 +80,7 @@ static void alpha_core_agp_enable(struct agp_bridge_data *bridge, u32 mode) + agp->mode.bits.enable = 1; + agp->ops->configure(agp); + +- agp_device_command(agp->mode.lw, 0); ++ agp_device_command(agp->mode.lw, false); + } + + static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start, +@@ -126,7 +126,7 @@ struct agp_bridge_driver alpha_core_agp_driver = { + .aperture_sizes = alpha_core_agp_sizes, + .num_aperture_sizes = 1, + .size_type = FIXED_APER_SIZE, +- .cant_use_aperture = 1, ++ .cant_use_aperture = true, + .masks = NULL, + + .fetch_size = alpha_core_agp_fetch_size, +diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c +index 96bdb92..39a0718 100644 +--- a/drivers/char/agp/amd-k7-agp.c ++++ b/drivers/char/agp/amd-k7-agp.c +@@ -314,9 +314,9 @@ static int amd_insert_memory(struct agp_memory *mem, off_t pg_start, int type) + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { +diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c +index d8200ac..13665db 100644 +--- a/drivers/char/agp/amd64-agp.c ++++ b/drivers/char/agp/amd64-agp.c +@@ -90,9 +90,9 @@ static int amd64_insert_memory(struct agp_memory *mem, off_t pg_start, int type) + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { +diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c +index 55c97f6..3a4566c 100644 +--- a/drivers/char/agp/ati-agp.c ++++ b/drivers/char/agp/ati-agp.c +@@ -287,10 +287,10 @@ static int ati_insert_memory(struct agp_memory * mem, + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + /*CACHE_FLUSH(); */ + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { +@@ -458,6 +458,10 @@ static struct agp_device_ids ati_agp_device_ids[] __devinitdata = + .chipset_name = "IGP9100/M", + }, + { ++ .device_id = PCI_DEVICE_ID_ATI_RS350_133, ++ .chipset_name = "IGP9000/M", ++ }, ++ { + .device_id = PCI_DEVICE_ID_ATI_RS350_200, + .chipset_name = "IGP9100/M", + }, +diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c +index b1bdd01..1ec8710 100644 +--- a/drivers/char/agp/backend.c ++++ b/drivers/char/agp/backend.c +@@ -188,10 +188,10 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) + + err_out: + if (bridge->driver->needs_scratch_page) { +- bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), +- AGP_PAGE_DESTROY_UNMAP); +- bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), +- AGP_PAGE_DESTROY_FREE); ++ void *va = gart_to_virt(bridge->scratch_page_real); ++ ++ bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP); ++ bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE); + } + if (got_gatt) + bridge->driver->free_gatt_table(bridge); +@@ -215,10 +215,10 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge) + + if (bridge->driver->agp_destroy_page && + bridge->driver->needs_scratch_page) { +- bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), +- AGP_PAGE_DESTROY_UNMAP); +- bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), +- AGP_PAGE_DESTROY_FREE); ++ void *va = gart_to_virt(bridge->scratch_page_real); ++ ++ bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP); ++ bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE); + } + } + +diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c +index 3927579..58c57cb 100644 +--- a/drivers/char/agp/compat_ioctl.c ++++ b/drivers/char/agp/compat_ioctl.c +@@ -214,7 +214,7 @@ long compat_agp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + ret_val = -EINVAL; + goto ioctl_out; + } +- if ((agp_fe.backend_acquired != TRUE) && ++ if ((agp_fe.backend_acquired != true) && + (cmd != AGPIOC_ACQUIRE32)) { + ret_val = -EBUSY; + goto ioctl_out; +diff --git a/drivers/char/agp/efficeon-agp.c b/drivers/char/agp/efficeon-agp.c +index cac0009..8ca6f26 100644 +--- a/drivers/char/agp/efficeon-agp.c ++++ b/drivers/char/agp/efficeon-agp.c +@@ -249,9 +249,9 @@ static int efficeon_insert_memory(struct agp_memory * mem, off_t pg_start, int t + if (type != 0 || mem->type != 0) + return -EINVAL; + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + last_page = NULL; +@@ -329,7 +329,7 @@ static const struct agp_bridge_driver efficeon_driver = { + .free_gatt_table = efficeon_free_gatt_table, + .insert_memory = efficeon_insert_memory, + .remove_memory = efficeon_remove_memory, +- .cant_use_aperture = 0, // 1 might be faster? ++ .cant_use_aperture = false, // true might be faster? + + // Generic + .alloc_by_type = agp_generic_alloc_by_type, +diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c +index 857b262..e6cb1ab 100644 +--- a/drivers/char/agp/frontend.c ++++ b/drivers/char/agp/frontend.c +@@ -395,7 +395,7 @@ static int agp_remove_controller(struct agp_controller *controller) + + if (agp_fe.current_controller == controller) { + agp_fe.current_controller = NULL; +- agp_fe.backend_acquired = FALSE; ++ agp_fe.backend_acquired = false; + agp_backend_release(agp_bridge); + } + kfree(controller); +@@ -443,7 +443,7 @@ static void agp_controller_release_current(struct agp_controller *controller, + } + + agp_fe.current_controller = NULL; +- agp_fe.used_by_controller = FALSE; ++ agp_fe.used_by_controller = false; + agp_backend_release(agp_bridge); + } + +@@ -573,7 +573,7 @@ static int agp_mmap(struct file *file, struct vm_area_struct *vma) + + mutex_lock(&(agp_fe.agp_mutex)); + +- if (agp_fe.backend_acquired != TRUE) ++ if (agp_fe.backend_acquired != true) + goto out_eperm; + + if (!(test_bit(AGP_FF_IS_VALID, &priv->access_flags))) +@@ -768,7 +768,7 @@ int agpioc_acquire_wrap(struct agp_file_private *priv) + + atomic_inc(&agp_bridge->agp_in_use); + +- agp_fe.backend_acquired = TRUE; ++ agp_fe.backend_acquired = true; + + controller = agp_find_controller_by_pid(priv->my_pid); + +@@ -778,7 +778,7 @@ int agpioc_acquire_wrap(struct agp_file_private *priv) + controller = agp_create_controller(priv->my_pid); + + if (controller == NULL) { +- agp_fe.backend_acquired = FALSE; ++ agp_fe.backend_acquired = false; + agp_backend_release(agp_bridge); + return -ENOMEM; + } +@@ -981,7 +981,7 @@ static long agp_ioctl(struct file *file, + ret_val = -EINVAL; + goto ioctl_out; + } +- if ((agp_fe.backend_acquired != TRUE) && ++ if ((agp_fe.backend_acquired != true) && + (cmd != AGPIOC_ACQUIRE)) { + ret_val = -EBUSY; + goto ioctl_out; +diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c +index 7fc0c99..564daaa 100644 +--- a/drivers/char/agp/generic.c ++++ b/drivers/char/agp/generic.c +@@ -96,13 +96,13 @@ EXPORT_SYMBOL(agp_flush_chipset); + void agp_alloc_page_array(size_t size, struct agp_memory *mem) + { + mem->memory = NULL; +- mem->vmalloc_flag = 0; ++ mem->vmalloc_flag = false; + + if (size <= 2*PAGE_SIZE) + mem->memory = kmalloc(size, GFP_KERNEL | __GFP_NORETRY); + if (mem->memory == NULL) { + mem->memory = vmalloc(size); +- mem->vmalloc_flag = 1; ++ mem->vmalloc_flag = true; + } + } + EXPORT_SYMBOL(agp_alloc_page_array); +@@ -188,7 +188,7 @@ void agp_free_memory(struct agp_memory *curr) + if (curr == NULL) + return; + +- if (curr->is_bound == TRUE) ++ if (curr->is_bound) + agp_unbind_memory(curr); + + if (curr->type >= AGP_USER_TYPES) { +@@ -202,10 +202,13 @@ void agp_free_memory(struct agp_memory *curr) + } + if (curr->page_count != 0) { + for (i = 0; i < curr->page_count; i++) { +- curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i]), AGP_PAGE_DESTROY_UNMAP); ++ curr->memory[i] = (unsigned long)gart_to_virt(curr->memory[i]); ++ curr->bridge->driver->agp_destroy_page((void *)curr->memory[i], ++ AGP_PAGE_DESTROY_UNMAP); + } + for (i = 0; i < curr->page_count; i++) { +- curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i]), AGP_PAGE_DESTROY_FREE); ++ curr->bridge->driver->agp_destroy_page((void *)curr->memory[i], ++ AGP_PAGE_DESTROY_FREE); + } + } + agp_free_key(curr->key); +@@ -411,20 +414,20 @@ int agp_bind_memory(struct agp_memory *curr, off_t pg_start) + if (curr == NULL) + return -EINVAL; + +- if (curr->is_bound == TRUE) { ++ if (curr->is_bound) { + printk(KERN_INFO PFX "memory %p is already bound!\n", curr); + return -EINVAL; + } +- if (curr->is_flushed == FALSE) { ++ if (!curr->is_flushed) { + curr->bridge->driver->cache_flush(); +- curr->is_flushed = TRUE; ++ curr->is_flushed = true; + } + ret_val = curr->bridge->driver->insert_memory(curr, pg_start, curr->type); + + if (ret_val != 0) + return ret_val; + +- curr->is_bound = TRUE; ++ curr->is_bound = true; + curr->pg_start = pg_start; + return 0; + } +@@ -446,7 +449,7 @@ int agp_unbind_memory(struct agp_memory *curr) + if (curr == NULL) + return -EINVAL; + +- if (curr->is_bound != TRUE) { ++ if (!curr->is_bound) { + printk(KERN_INFO PFX "memory %p was not bound!\n", curr); + return -EINVAL; + } +@@ -456,7 +459,7 @@ int agp_unbind_memory(struct agp_memory *curr) + if (ret_val != 0) + return ret_val; + +- curr->is_bound = FALSE; ++ curr->is_bound = false; + curr->pg_start = 0; + return 0; + } +@@ -754,7 +757,7 @@ u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 requested_mode + EXPORT_SYMBOL(agp_collect_device_status); + + +-void agp_device_command(u32 bridge_agpstat, int agp_v3) ++void agp_device_command(u32 bridge_agpstat, bool agp_v3) + { + struct pci_dev *device = NULL; + int mode; +@@ -818,7 +821,7 @@ void agp_generic_enable(struct agp_bridge_data *bridge, u32 requested_mode) + /* If we have 3.5, we can do the isoch stuff. */ + if (bridge->minor_version >= 5) + agp_3_5_enable(bridge); +- agp_device_command(bridge_agpstat, TRUE); ++ agp_device_command(bridge_agpstat, true); + return; + } else { + /* Disable calibration cycle in RX91<1> when not in AGP3.0 mode of operation.*/ +@@ -835,7 +838,7 @@ void agp_generic_enable(struct agp_bridge_data *bridge, u32 requested_mode) + } + + /* AGP v<3 */ +- agp_device_command(bridge_agpstat, FALSE); ++ agp_device_command(bridge_agpstat, false); + } + EXPORT_SYMBOL(agp_generic_enable); + +@@ -1083,9 +1086,9 @@ int agp_generic_insert_memory(struct agp_memory * mem, off_t pg_start, int type) + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + bridge->driver->cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { +diff --git a/drivers/char/agp/hp-agp.c b/drivers/char/agp/hp-agp.c +index cbb0444..80d7317 100644 +--- a/drivers/char/agp/hp-agp.c ++++ b/drivers/char/agp/hp-agp.c +@@ -353,9 +353,9 @@ hp_zx1_insert_memory (struct agp_memory *mem, off_t pg_start, int type) + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = io_pg_start; i < mem->page_count; i++) { +@@ -437,7 +437,7 @@ const struct agp_bridge_driver hp_zx1_driver = { + .agp_alloc_page = agp_generic_alloc_page, + .agp_destroy_page = agp_generic_destroy_page, + .agp_type_to_mask_type = agp_generic_type_to_mask_type, +- .cant_use_aperture = 1, ++ .cant_use_aperture = true, + }; + + static int __init +diff --git a/drivers/char/agp/i460-agp.c b/drivers/char/agp/i460-agp.c +index 76f581c..e587eeb 100644 +--- a/drivers/char/agp/i460-agp.c ++++ b/drivers/char/agp/i460-agp.c +@@ -580,7 +580,7 @@ const struct agp_bridge_driver intel_i460_driver = { + .alloc_by_type = agp_generic_alloc_by_type, + .free_by_type = agp_generic_free_by_type, + .agp_type_to_mask_type = agp_generic_type_to_mask_type, +- .cant_use_aperture = 1, ++ .cant_use_aperture = true, + }; + + static int __devinit agp_intel_i460_probe(struct pci_dev *pdev, +diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c +index eeea50a..1ae64bb 100644 +--- a/drivers/char/agp/intel-agp.c ++++ b/drivers/char/agp/intel-agp.c +@@ -34,6 +34,12 @@ + #define PCI_DEVICE_ID_INTEL_Q33_IG 0x29D2 + #define PCI_DEVICE_ID_INTEL_IGD_HB 0x2A40 + #define PCI_DEVICE_ID_INTEL_IGD_IG 0x2A42 ++#define PCI_DEVICE_ID_INTEL_IGD_E_HB 0x2E00 ++#define PCI_DEVICE_ID_INTEL_IGD_E_IG 0x2E02 ++#define PCI_DEVICE_ID_INTEL_Q45_HB 0x2E10 ++#define PCI_DEVICE_ID_INTEL_Q45_IG 0x2E12 ++#define PCI_DEVICE_ID_INTEL_G45_HB 0x2E20 ++#define PCI_DEVICE_ID_INTEL_G45_IG 0x2E22 + + /* cover 915 and 945 variants */ + #define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \ +@@ -55,6 +61,10 @@ + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \ + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q33_HB) + ++#define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_E_HB || \ ++ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \ ++ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB) ++ + extern int agp_memory_reserved; + + +@@ -80,8 +90,13 @@ extern int agp_memory_reserved; + #define I915_PTEADDR 0x1C + #define I915_GMCH_GMS_STOLEN_48M (0x6 << 4) + #define I915_GMCH_GMS_STOLEN_64M (0x7 << 4) +-#define G33_GMCH_GMS_STOLEN_128M (0x8 << 4) +-#define G33_GMCH_GMS_STOLEN_256M (0x9 << 4) ++#define G33_GMCH_GMS_STOLEN_128M (0x8 << 4) ++#define G33_GMCH_GMS_STOLEN_256M (0x9 << 4) ++#define INTEL_GMCH_GMS_STOLEN_96M (0xa << 4) ++#define INTEL_GMCH_GMS_STOLEN_160M (0xb << 4) ++#define INTEL_GMCH_GMS_STOLEN_224M (0xc << 4) ++#define INTEL_GMCH_GMS_STOLEN_352M (0xd << 4) ++ + #define I915_IFPADDR 0x60 + + /* Intel 965G registers */ +@@ -325,7 +340,7 @@ static int intel_i810_insert_entries(struct agp_memory *mem, off_t pg_start, + out: + ret = 0; + out_err: +- mem->is_flushed = 1; ++ mem->is_flushed = true; + return ret; + } + +@@ -418,9 +433,11 @@ static void intel_i810_free_by_type(struct agp_memory *curr) + if (curr->page_count == 4) + i8xx_destroy_pages(gart_to_virt(curr->memory[0])); + else { +- agp_bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[0]), ++ void *va = gart_to_virt(curr->memory[0]); ++ ++ agp_bridge->driver->agp_destroy_page(va, + AGP_PAGE_DESTROY_UNMAP); +- agp_bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[0]), ++ agp_bridge->driver->agp_destroy_page(va, + AGP_PAGE_DESTROY_FREE); + } + agp_free_page_array(curr); +@@ -504,6 +521,10 @@ static void intel_i830_init_gtt_entries(void) + size = 512; + } + size += 4; ++ } else if (IS_G4X) { ++ /* On 4 series hardware, GTT stolen is separate from graphics ++ * stolen, ignore it in stolen gtt entries counting */ ++ size = 0; + } else { + /* On previous hardware, the GTT size was just what was + * required to map the aperture. +@@ -552,30 +573,54 @@ static void intel_i830_init_gtt_entries(void) + break; + case I915_GMCH_GMS_STOLEN_48M: + /* Check it's really I915G */ +- if (IS_I915 || IS_I965 || IS_G33) ++ if (IS_I915 || IS_I965 || IS_G33 || IS_G4X) + gtt_entries = MB(48) - KB(size); + else + gtt_entries = 0; + break; + case I915_GMCH_GMS_STOLEN_64M: + /* Check it's really I915G */ +- if (IS_I915 || IS_I965 || IS_G33) ++ if (IS_I915 || IS_I965 || IS_G33 || IS_G4X) + gtt_entries = MB(64) - KB(size); + else + gtt_entries = 0; + break; + case G33_GMCH_GMS_STOLEN_128M: +- if (IS_G33) ++ if (IS_G33 || IS_I965 || IS_G4X) + gtt_entries = MB(128) - KB(size); + else + gtt_entries = 0; + break; + case G33_GMCH_GMS_STOLEN_256M: +- if (IS_G33) ++ if (IS_G33 || IS_I965 || IS_G4X) + gtt_entries = MB(256) - KB(size); + else + gtt_entries = 0; + break; ++ case INTEL_GMCH_GMS_STOLEN_96M: ++ if (IS_I965 || IS_G4X) ++ gtt_entries = MB(96) - KB(size); ++ else ++ gtt_entries = 0; ++ break; ++ case INTEL_GMCH_GMS_STOLEN_160M: ++ if (IS_I965 || IS_G4X) ++ gtt_entries = MB(160) - KB(size); ++ else ++ gtt_entries = 0; ++ break; ++ case INTEL_GMCH_GMS_STOLEN_224M: ++ if (IS_I965 || IS_G4X) ++ gtt_entries = MB(224) - KB(size); ++ else ++ gtt_entries = 0; ++ break; ++ case INTEL_GMCH_GMS_STOLEN_352M: ++ if (IS_I965 || IS_G4X) ++ gtt_entries = MB(352) - KB(size); ++ else ++ gtt_entries = 0; ++ break; + default: + gtt_entries = 0; + break; +@@ -793,7 +838,7 @@ static int intel_i830_insert_entries(struct agp_memory *mem, off_t pg_start, + out: + ret = 0; + out_err: +- mem->is_flushed = 1; ++ mem->is_flushed = true; + return ret; + } + +@@ -1020,7 +1065,7 @@ static int intel_i915_insert_entries(struct agp_memory *mem, off_t pg_start, + out: + ret = 0; + out_err: +- mem->is_flushed = 1; ++ mem->is_flushed = true; + return ret; + } + +@@ -1134,53 +1179,64 @@ static unsigned long intel_i965_mask_memory(struct agp_bridge_data *bridge, + return addr | bridge->driver->masks[type].mask; + } + ++static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size) ++{ ++ switch (agp_bridge->dev->device) { ++ case PCI_DEVICE_ID_INTEL_IGD_HB: ++ case PCI_DEVICE_ID_INTEL_IGD_E_HB: ++ case PCI_DEVICE_ID_INTEL_Q45_HB: ++ case PCI_DEVICE_ID_INTEL_G45_HB: ++ *gtt_offset = *gtt_size = MB(2); ++ break; ++ default: ++ *gtt_offset = *gtt_size = KB(512); ++ } ++} ++ + /* The intel i965 automatically initializes the agp aperture during POST. + * Use the memory already set aside for in the GTT. + */ + static int intel_i965_create_gatt_table(struct agp_bridge_data *bridge) + { +- int page_order; +- struct aper_size_info_fixed *size; +- int num_entries; +- u32 temp; +- int gtt_offset, gtt_size; ++ int page_order; ++ struct aper_size_info_fixed *size; ++ int num_entries; ++ u32 temp; ++ int gtt_offset, gtt_size; + +- size = agp_bridge->current_size; +- page_order = size->page_order; +- num_entries = size->num_entries; +- agp_bridge->gatt_table_real = NULL; ++ size = agp_bridge->current_size; ++ page_order = size->page_order; ++ num_entries = size->num_entries; ++ agp_bridge->gatt_table_real = NULL; + +- pci_read_config_dword(intel_private.pcidev, I915_MMADDR, &temp); ++ pci_read_config_dword(intel_private.pcidev, I915_MMADDR, &temp); + +- temp &= 0xfff00000; ++ temp &= 0xfff00000; + +- if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_HB) +- gtt_offset = gtt_size = MB(2); +- else +- gtt_offset = gtt_size = KB(512); ++ intel_i965_get_gtt_range(>t_offset, >t_size); + +- intel_private.gtt = ioremap((temp + gtt_offset) , gtt_size); ++ intel_private.gtt = ioremap((temp + gtt_offset) , gtt_size); + +- if (!intel_private.gtt) +- return -ENOMEM; ++ if (!intel_private.gtt) ++ return -ENOMEM; + +- intel_private.registers = ioremap(temp, 128 * 4096); +- if (!intel_private.registers) { ++ intel_private.registers = ioremap(temp, 128 * 4096); ++ if (!intel_private.registers) { + iounmap(intel_private.gtt); + return -ENOMEM; + } + +- temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; +- global_cache_flush(); /* FIXME: ? */ ++ temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; ++ global_cache_flush(); /* FIXME: ? */ + +- /* we have to call this as early as possible after the MMIO base address is known */ +- intel_i830_init_gtt_entries(); ++ /* we have to call this as early as possible after the MMIO base address is known */ ++ intel_i830_init_gtt_entries(); + +- agp_bridge->gatt_table = NULL; ++ agp_bridge->gatt_table = NULL; + +- agp_bridge->gatt_bus_addr = temp; ++ agp_bridge->gatt_bus_addr = temp; + +- return 0; ++ return 0; + } + + +@@ -1656,7 +1712,7 @@ static const struct agp_bridge_driver intel_810_driver = { + .aperture_sizes = intel_i810_sizes, + .size_type = FIXED_APER_SIZE, + .num_aperture_sizes = 2, +- .needs_scratch_page = TRUE, ++ .needs_scratch_page = true, + .configure = intel_i810_configure, + .fetch_size = intel_i810_fetch_size, + .cleanup = intel_i810_cleanup, +@@ -1697,7 +1753,7 @@ static const struct agp_bridge_driver intel_815_driver = { + .free_by_type = agp_generic_free_by_type, + .agp_alloc_page = agp_generic_alloc_page, + .agp_destroy_page = agp_generic_destroy_page, +- .agp_type_to_mask_type = agp_generic_type_to_mask_type, ++ .agp_type_to_mask_type = agp_generic_type_to_mask_type, + }; + + static const struct agp_bridge_driver intel_830_driver = { +@@ -1705,7 +1761,7 @@ static const struct agp_bridge_driver intel_830_driver = { + .aperture_sizes = intel_i830_sizes, + .size_type = FIXED_APER_SIZE, + .num_aperture_sizes = 4, +- .needs_scratch_page = TRUE, ++ .needs_scratch_page = true, + .configure = intel_i830_configure, + .fetch_size = intel_i830_fetch_size, + .cleanup = intel_i830_cleanup, +@@ -1876,7 +1932,7 @@ static const struct agp_bridge_driver intel_915_driver = { + .aperture_sizes = intel_i830_sizes, + .size_type = FIXED_APER_SIZE, + .num_aperture_sizes = 4, +- .needs_scratch_page = TRUE, ++ .needs_scratch_page = true, + .configure = intel_i915_configure, + .fetch_size = intel_i9xx_fetch_size, + .cleanup = intel_i915_cleanup, +@@ -1898,28 +1954,28 @@ static const struct agp_bridge_driver intel_915_driver = { + }; + + static const struct agp_bridge_driver intel_i965_driver = { +- .owner = THIS_MODULE, +- .aperture_sizes = intel_i830_sizes, +- .size_type = FIXED_APER_SIZE, +- .num_aperture_sizes = 4, +- .needs_scratch_page = TRUE, +- .configure = intel_i915_configure, +- .fetch_size = intel_i9xx_fetch_size, +- .cleanup = intel_i915_cleanup, +- .tlb_flush = intel_i810_tlbflush, +- .mask_memory = intel_i965_mask_memory, +- .masks = intel_i810_masks, +- .agp_enable = intel_i810_agp_enable, +- .cache_flush = global_cache_flush, +- .create_gatt_table = intel_i965_create_gatt_table, +- .free_gatt_table = intel_i830_free_gatt_table, +- .insert_memory = intel_i915_insert_entries, +- .remove_memory = intel_i915_remove_entries, +- .alloc_by_type = intel_i830_alloc_by_type, +- .free_by_type = intel_i810_free_by_type, +- .agp_alloc_page = agp_generic_alloc_page, +- .agp_destroy_page = agp_generic_destroy_page, +- .agp_type_to_mask_type = intel_i830_type_to_mask_type, ++ .owner = THIS_MODULE, ++ .aperture_sizes = intel_i830_sizes, ++ .size_type = FIXED_APER_SIZE, ++ .num_aperture_sizes = 4, ++ .needs_scratch_page = true, ++ .configure = intel_i915_configure, ++ .fetch_size = intel_i9xx_fetch_size, ++ .cleanup = intel_i915_cleanup, ++ .tlb_flush = intel_i810_tlbflush, ++ .mask_memory = intel_i965_mask_memory, ++ .masks = intel_i810_masks, ++ .agp_enable = intel_i810_agp_enable, ++ .cache_flush = global_cache_flush, ++ .create_gatt_table = intel_i965_create_gatt_table, ++ .free_gatt_table = intel_i830_free_gatt_table, ++ .insert_memory = intel_i915_insert_entries, ++ .remove_memory = intel_i915_remove_entries, ++ .alloc_by_type = intel_i830_alloc_by_type, ++ .free_by_type = intel_i810_free_by_type, ++ .agp_alloc_page = agp_generic_alloc_page, ++ .agp_destroy_page = agp_generic_destroy_page, ++ .agp_type_to_mask_type = intel_i830_type_to_mask_type, + .chipset_flush = intel_i915_chipset_flush, + }; + +@@ -1948,28 +2004,28 @@ static const struct agp_bridge_driver intel_7505_driver = { + }; + + static const struct agp_bridge_driver intel_g33_driver = { +- .owner = THIS_MODULE, +- .aperture_sizes = intel_i830_sizes, +- .size_type = FIXED_APER_SIZE, +- .num_aperture_sizes = 4, +- .needs_scratch_page = TRUE, +- .configure = intel_i915_configure, +- .fetch_size = intel_i9xx_fetch_size, +- .cleanup = intel_i915_cleanup, +- .tlb_flush = intel_i810_tlbflush, +- .mask_memory = intel_i965_mask_memory, +- .masks = intel_i810_masks, +- .agp_enable = intel_i810_agp_enable, +- .cache_flush = global_cache_flush, +- .create_gatt_table = intel_i915_create_gatt_table, +- .free_gatt_table = intel_i830_free_gatt_table, +- .insert_memory = intel_i915_insert_entries, +- .remove_memory = intel_i915_remove_entries, +- .alloc_by_type = intel_i830_alloc_by_type, +- .free_by_type = intel_i810_free_by_type, +- .agp_alloc_page = agp_generic_alloc_page, +- .agp_destroy_page = agp_generic_destroy_page, +- .agp_type_to_mask_type = intel_i830_type_to_mask_type, ++ .owner = THIS_MODULE, ++ .aperture_sizes = intel_i830_sizes, ++ .size_type = FIXED_APER_SIZE, ++ .num_aperture_sizes = 4, ++ .needs_scratch_page = true, ++ .configure = intel_i915_configure, ++ .fetch_size = intel_i9xx_fetch_size, ++ .cleanup = intel_i915_cleanup, ++ .tlb_flush = intel_i810_tlbflush, ++ .mask_memory = intel_i965_mask_memory, ++ .masks = intel_i810_masks, ++ .agp_enable = intel_i810_agp_enable, ++ .cache_flush = global_cache_flush, ++ .create_gatt_table = intel_i915_create_gatt_table, ++ .free_gatt_table = intel_i830_free_gatt_table, ++ .insert_memory = intel_i915_insert_entries, ++ .remove_memory = intel_i915_remove_entries, ++ .alloc_by_type = intel_i830_alloc_by_type, ++ .free_by_type = intel_i810_free_by_type, ++ .agp_alloc_page = agp_generic_alloc_page, ++ .agp_destroy_page = agp_generic_destroy_page, ++ .agp_type_to_mask_type = intel_i830_type_to_mask_type, + .chipset_flush = intel_i915_chipset_flush, + }; + +@@ -2063,6 +2119,12 @@ static const struct intel_driver_description { + NULL, &intel_g33_driver }, + { PCI_DEVICE_ID_INTEL_IGD_HB, PCI_DEVICE_ID_INTEL_IGD_IG, 0, + "Intel Integrated Graphics Device", NULL, &intel_i965_driver }, ++ { PCI_DEVICE_ID_INTEL_IGD_E_HB, PCI_DEVICE_ID_INTEL_IGD_E_IG, 0, ++ "Intel Integrated Graphics Device", NULL, &intel_i965_driver }, ++ { PCI_DEVICE_ID_INTEL_Q45_HB, PCI_DEVICE_ID_INTEL_Q45_IG, 0, ++ "Q45/Q43", NULL, &intel_i965_driver }, ++ { PCI_DEVICE_ID_INTEL_G45_HB, PCI_DEVICE_ID_INTEL_G45_IG, 0, ++ "G45/G43", NULL, &intel_i965_driver }, + { 0, 0, 0, NULL, NULL, NULL } + }; + +@@ -2254,6 +2316,9 @@ static struct pci_device_id agp_intel_pci_table[] = { + ID(PCI_DEVICE_ID_INTEL_Q35_HB), + ID(PCI_DEVICE_ID_INTEL_Q33_HB), + ID(PCI_DEVICE_ID_INTEL_IGD_HB), ++ ID(PCI_DEVICE_ID_INTEL_IGD_E_HB), ++ ID(PCI_DEVICE_ID_INTEL_Q45_HB), ++ ID(PCI_DEVICE_ID_INTEL_G45_HB), + { } + }; + +diff --git a/drivers/char/agp/nvidia-agp.c b/drivers/char/agp/nvidia-agp.c +index 225ed2a..eaceb61 100644 +--- a/drivers/char/agp/nvidia-agp.c ++++ b/drivers/char/agp/nvidia-agp.c +@@ -214,9 +214,9 @@ static int nvidia_insert_memory(struct agp_memory *mem, off_t pg_start, int type + return -EBUSY; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { + writel(agp_bridge->driver->mask_memory(agp_bridge, +diff --git a/drivers/char/agp/parisc-agp.c b/drivers/char/agp/parisc-agp.c +index 2939e35..8c42dcc 100644 +--- a/drivers/char/agp/parisc-agp.c ++++ b/drivers/char/agp/parisc-agp.c +@@ -141,9 +141,9 @@ parisc_agp_insert_memory(struct agp_memory *mem, off_t pg_start, int type) + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = io_pg_start; i < mem->page_count; i++) { +@@ -226,7 +226,7 @@ static const struct agp_bridge_driver parisc_agp_driver = { + .agp_alloc_page = agp_generic_alloc_page, + .agp_destroy_page = agp_generic_destroy_page, + .agp_type_to_mask_type = agp_generic_type_to_mask_type, +- .cant_use_aperture = 1, ++ .cant_use_aperture = true, + }; + + static int __init +diff --git a/drivers/char/agp/sgi-agp.c b/drivers/char/agp/sgi-agp.c +index 98cf8ab..b972d83 100644 +--- a/drivers/char/agp/sgi-agp.c ++++ b/drivers/char/agp/sgi-agp.c +@@ -182,9 +182,9 @@ static int sgi_tioca_insert_memory(struct agp_memory *mem, off_t pg_start, + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + bridge->driver->cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { +@@ -264,8 +264,8 @@ const struct agp_bridge_driver sgi_tioca_driver = { + .agp_alloc_page = sgi_tioca_alloc_page, + .agp_destroy_page = agp_generic_destroy_page, + .agp_type_to_mask_type = agp_generic_type_to_mask_type, +- .cant_use_aperture = 1, +- .needs_scratch_page = 0, ++ .cant_use_aperture = true, ++ .needs_scratch_page = false, + .num_aperture_sizes = 1, + }; + +diff --git a/drivers/char/agp/sworks-agp.c b/drivers/char/agp/sworks-agp.c +index e08934e..0e054c1 100644 +--- a/drivers/char/agp/sworks-agp.c ++++ b/drivers/char/agp/sworks-agp.c +@@ -339,9 +339,9 @@ static int serverworks_insert_memory(struct agp_memory *mem, + j++; + } + +- if (mem->is_flushed == FALSE) { ++ if (!mem->is_flushed) { + global_cache_flush(); +- mem->is_flushed = TRUE; ++ mem->is_flushed = true; + } + + for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { +@@ -412,7 +412,7 @@ static void serverworks_agp_enable(struct agp_bridge_data *bridge, u32 mode) + bridge->capndx + PCI_AGP_COMMAND, + command); + +- agp_device_command(command, 0); ++ agp_device_command(command, false); + } + + static const struct agp_bridge_driver sworks_driver = { +diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c +index 42c0a60..d2fa3cf 100644 +--- a/drivers/char/agp/uninorth-agp.c ++++ b/drivers/char/agp/uninorth-agp.c +@@ -281,10 +281,10 @@ static void uninorth_agp_enable(struct agp_bridge_data *bridge, u32 mode) + + if (uninorth_rev >= 0x30) { + /* This is an AGP V3 */ +- agp_device_command(command, (status & AGPSTAT_MODE_3_0)); ++ agp_device_command(command, (status & AGPSTAT_MODE_3_0) != 0); + } else { + /* AGP V2 */ +- agp_device_command(command, 0); ++ agp_device_command(command, false); + } + + uninorth_tlbflush(NULL); +@@ -511,7 +511,7 @@ const struct agp_bridge_driver uninorth_agp_driver = { + .agp_alloc_page = agp_generic_alloc_page, + .agp_destroy_page = agp_generic_destroy_page, + .agp_type_to_mask_type = agp_generic_type_to_mask_type, +- .cant_use_aperture = 1, ++ .cant_use_aperture = true, + }; + + const struct agp_bridge_driver u3_agp_driver = { +@@ -536,8 +536,8 @@ const struct agp_bridge_driver u3_agp_driver = { + .agp_alloc_page = agp_generic_alloc_page, + .agp_destroy_page = agp_generic_destroy_page, + .agp_type_to_mask_type = agp_generic_type_to_mask_type, +- .cant_use_aperture = 1, +- .needs_scratch_page = 1, ++ .cant_use_aperture = true, ++ .needs_scratch_page = true, + }; + + static struct agp_device_ids uninorth_agp_device_ids[] __devinitdata = { +diff --git a/drivers/char/agp/via-agp.c b/drivers/char/agp/via-agp.c +index 0ecc54d..7b36476 100644 +--- a/drivers/char/agp/via-agp.c ++++ b/drivers/char/agp/via-agp.c +@@ -389,11 +389,20 @@ static struct agp_device_ids via_agp_device_ids[] __devinitdata = + .device_id = PCI_DEVICE_ID_VIA_VT3324, + .chipset_name = "CX700", + }, +- /* VT3336 */ ++ /* VT3336 - this is a chipset for AMD Athlon/K8 CPU. Due to K8's unique ++ * architecture, the AGP resource and behavior are different from ++ * the traditional AGP which resides only in chipset. AGP is used ++ * by 3D driver which wasn't available for the VT3336 and VT3364 ++ * generation until now. Unfortunately, by testing, VT3364 works ++ * but VT3336 doesn't. - explaination from via, just leave this as ++ * as a placeholder to avoid future patches adding it back in. ++ */ ++#if 0 + { + .device_id = PCI_DEVICE_ID_VIA_VT3336, + .chipset_name = "VT3336", + }, ++#endif + /* P4M890 */ + { + .device_id = PCI_DEVICE_ID_VIA_P4M890, +@@ -546,8 +555,8 @@ static const struct pci_device_id agp_via_pci_table[] = { + ID(PCI_DEVICE_ID_VIA_3296_0), + ID(PCI_DEVICE_ID_VIA_P4M800CE), + ID(PCI_DEVICE_ID_VIA_VT3324), +- ID(PCI_DEVICE_ID_VIA_VT3336), + ID(PCI_DEVICE_ID_VIA_P4M890), ++ ID(PCI_DEVICE_ID_VIA_VT3364), + { } + }; + +diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c +index 2398e86..a00869c 100644 +--- a/drivers/char/generic_nvram.c ++++ b/drivers/char/generic_nvram.c +@@ -133,7 +133,7 @@ static struct miscdevice nvram_dev = { + + int __init nvram_init(void) + { +- printk(KERN_INFO "Macintosh non-volatile memory driver v%s\n", ++ printk(KERN_INFO "Generic non-volatile memory driver v%s\n", + NVRAM_VERSION); + return misc_register(&nvram_dev); + } +diff --git a/drivers/char/hw_random/intel-rng.c b/drivers/char/hw_random/intel-rng.c +index 5cc651e..27fdc08 100644 +--- a/drivers/char/hw_random/intel-rng.c ++++ b/drivers/char/hw_random/intel-rng.c +@@ -273,7 +273,7 @@ static int __init intel_rng_hw_init(void *_intel_rng_hw) + if (mfc != INTEL_FWH_MANUFACTURER_CODE || + (dvc != INTEL_FWH_DEVICE_CODE_8M && + dvc != INTEL_FWH_DEVICE_CODE_4M)) { +- printk(KERN_ERR PFX "FWH not detected\n"); ++ printk(KERN_NOTICE PFX "FWH not detected\n"); + return -ENODEV; + } + +diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c +index 7f7e798..d9a0a53 100644 +--- a/drivers/char/keyboard.c ++++ b/drivers/char/keyboard.c +@@ -677,12 +677,7 @@ static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag) + + static void k_self(struct vc_data *vc, unsigned char value, char up_flag) + { +- unsigned int uni; +- if (kbd->kbdmode == VC_UNICODE) +- uni = value; +- else +- uni = conv_8bit_to_uni(value); +- k_unicode(vc, uni, up_flag); ++ k_unicode(vc, conv_8bit_to_uni(value), up_flag); + } + + static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag) +diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c +index 9134488..2d92214 100644 +--- a/drivers/ide/ide-generic.c ++++ b/drivers/ide/ide-generic.c +@@ -22,6 +22,10 @@ + + #define DRV_NAME "ide_generic" + ++static int probe_mask = 0x03; ++module_param(probe_mask, int, 0); ++MODULE_PARM_DESC(probe_mask, "probe mask for legacy ISA IDE ports"); ++ + static ssize_t store_add(struct class *cls, const char *buf, size_t n) + { + ide_hwif_t *hwif; +@@ -89,6 +93,9 @@ static int __init ide_generic_init(void) + u8 idx[MAX_HWIFS]; + int i; + ++ printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" module " ++ "parameter for probing all legacy ISA IDE ports\n"); ++ + for (i = 0; i < MAX_HWIFS; i++) { + ide_hwif_t *hwif; + unsigned long io_addr = ide_default_io_base(i); +@@ -96,7 +103,7 @@ static int __init ide_generic_init(void) + + idx[i] = 0xff; + +- if (io_addr) { ++ if ((probe_mask & (1 << i)) && io_addr) { + if (!request_region(io_addr, 8, DRV_NAME)) { + printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX " + "not free.\n", +diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c +index aa2ea3d..f633b6b 100644 +--- a/drivers/ide/legacy/ide-cs.c ++++ b/drivers/ide/legacy/ide-cs.c +@@ -135,13 +135,17 @@ static void ide_detach(struct pcmcia_device *link) + { + ide_info_t *info = link->priv; + ide_hwif_t *hwif = info->hwif; ++ unsigned long data_addr, ctl_addr; + + DEBUG(0, "ide_detach(0x%p)\n", link); + ++ data_addr = hwif->io_ports.data_addr; ++ ctl_addr = hwif->io_ports.ctl_addr; ++ + ide_release(link); + +- release_region(hwif->io_ports.ctl_addr, 1); +- release_region(hwif->io_ports.data_addr, 8); ++ release_region(ctl_addr, 1); ++ release_region(data_addr, 8); + + kfree(info); + } /* ide_detach */ +@@ -194,6 +198,16 @@ static ide_hwif_t *idecs_register(unsigned long io, unsigned long ctl, + if (hwif->present) + return hwif; + ++ /* retry registration in case device is still spinning up */ ++ for (i = 0; i < 10; i++) { ++ msleep(100); ++ ide_port_scan(hwif); ++ if (hwif->present) ++ return hwif; ++ } ++ ++ return hwif; ++ + out_release: + release_region(ctl, 1); + release_region(io, 8); +@@ -222,7 +236,7 @@ static int ide_config(struct pcmcia_device *link) + cistpl_cftable_entry_t dflt; + } *stk = NULL; + cistpl_cftable_entry_t *cfg; +- int i, pass, last_ret = 0, last_fn = 0, is_kme = 0; ++ int pass, last_ret = 0, last_fn = 0, is_kme = 0; + unsigned long io_base, ctl_base; + ide_hwif_t *hwif; + +@@ -319,30 +333,15 @@ static int ide_config(struct pcmcia_device *link) + if (is_kme) + outb(0x81, ctl_base+1); + +- /* retry registration in case device is still spinning up */ +- for (i = 0; i < 10; i++) { +- hwif = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link); +- if (hwif) +- break; +- if (link->io.NumPorts1 == 0x20) { ++ hwif = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link); ++ if (hwif == NULL && link->io.NumPorts1 == 0x20) { + outb(0x02, ctl_base + 0x10); + hwif = idecs_register(io_base + 0x10, ctl_base + 0x10, + link->irq.AssignedIRQ, link); +- if (hwif) { +- io_base += 0x10; +- ctl_base += 0x10; +- break; +- } +- } +- msleep(100); + } + +- if (hwif == NULL) { +- printk(KERN_NOTICE "ide-cs: ide_register() at 0x%3lx & 0x%3lx" +- ", irq %u failed\n", io_base, ctl_base, +- link->irq.AssignedIRQ); ++ if (hwif == NULL) + goto failed; +- } + + info->ndev = 1; + sprintf(info->node.dev_name, "hd%c", 'a' + hwif->index * 2); +diff --git a/drivers/ide/pci/opti621.c b/drivers/ide/pci/opti621.c +index 6e99080..725c805 100644 +--- a/drivers/ide/pci/opti621.c ++++ b/drivers/ide/pci/opti621.c +@@ -81,8 +81,6 @@ + * 0.5 doesn't work. + */ + +-#define OPTI621_DEBUG /* define for debug messages */ +- + #include + #include + #include +@@ -92,28 +90,6 @@ + + #include + +-//#define OPTI621_MAX_PIO 3 +-/* In fact, I do not have any PIO 4 drive +- * (address: 25 ns, data: 70 ns, recovery: 35 ns), +- * but OPTi 82C621 is programmable and it can do (minimal values): +- * on 40MHz PCI bus (pulse 25 ns): +- * address: 25 ns, data: 25 ns, recovery: 50 ns; +- * on 20MHz PCI bus (pulse 50 ns): +- * address: 50 ns, data: 50 ns, recovery: 100 ns. +- */ +- +-/* #define READ_PREFETCH 0 */ +-/* Uncomment for disable read prefetch. +- * There is some readprefetch capatibility in hdparm, +- * but when I type hdparm -P 1 /dev/hda, I got errors +- * and till reset drive is inaccessible. +- * This (hw) read prefetch is safe on my drive. +- */ +- +-#ifndef READ_PREFETCH +-#define READ_PREFETCH 0x40 /* read prefetch is enabled */ +-#endif /* else read prefetch is disabled */ +- + #define READ_REG 0 /* index of Read cycle timing register */ + #define WRITE_REG 1 /* index of Write cycle timing register */ + #define CNTRL_REG 3 /* index of Control register */ +@@ -122,51 +98,8 @@ + + static int reg_base; + +-#define PIO_NOT_EXIST 254 +-#define PIO_DONT_KNOW 255 +- + static DEFINE_SPINLOCK(opti621_lock); + +-/* there are stored pio numbers from other calls of opti621_set_pio_mode */ +-static void compute_pios(ide_drive_t *drive, const u8 pio) +-/* Store values into drive->drive_data +- * second_contr - 0 for primary controller, 1 for secondary +- * slave_drive - 0 -> pio is for master, 1 -> pio is for slave +- * pio - PIO mode for selected drive (for other we don't know) +- */ +-{ +- int d; +- ide_hwif_t *hwif = HWIF(drive); +- +- drive->drive_data = pio; +- +- for (d = 0; d < 2; ++d) { +- drive = &hwif->drives[d]; +- if (drive->present) { +- if (drive->drive_data == PIO_DONT_KNOW) +- drive->drive_data = ide_get_best_pio_mode(drive, 255, 3); +-#ifdef OPTI621_DEBUG +- printk("%s: Selected PIO mode %d\n", +- drive->name, drive->drive_data); +-#endif +- } else { +- drive->drive_data = PIO_NOT_EXIST; +- } +- } +-} +- +-static int cmpt_clk(int time, int bus_speed) +-/* Returns (rounded up) time in clocks for time in ns, +- * with bus_speed in MHz. +- * Example: bus_speed = 40 MHz, time = 80 ns +- * 1000/40 = 25 ns (clk value), +- * 80/25 = 3.2, rounded up to 4 (I hope ;-)). +- * Use idebus=xx to select right frequency. +- */ +-{ +- return ((time*bus_speed+999)/1000); +-} +- + /* Write value to register reg, base of register + * is at reg_base (0x1f0 primary, 0x170 secondary, + * if not changed by PCI configuration). +@@ -199,83 +132,29 @@ static u8 read_reg(int reg) + return ret; + } + +-typedef struct pio_clocks_s { +- int address_time; /* Address setup (clocks) */ +- int data_time; /* Active/data pulse (clocks) */ +- int recovery_time; /* Recovery time (clocks) */ +-} pio_clocks_t; +- +-static void compute_clocks(int pio, pio_clocks_t *clks) +-{ +- if (pio != PIO_NOT_EXIST) { +- int adr_setup, data_pls; +- int bus_speed = ide_pci_clk ? ide_pci_clk : system_bus_clock(); +- +- adr_setup = ide_pio_timings[pio].setup_time; +- data_pls = ide_pio_timings[pio].active_time; +- clks->address_time = cmpt_clk(adr_setup, bus_speed); +- clks->data_time = cmpt_clk(data_pls, bus_speed); +- clks->recovery_time = cmpt_clk(ide_pio_timings[pio].cycle_time +- - adr_setup-data_pls, bus_speed); +- if (clks->address_time < 1) +- clks->address_time = 1; +- if (clks->address_time > 4) +- clks->address_time = 4; +- if (clks->data_time < 1) +- clks->data_time = 1; +- if (clks->data_time > 16) +- clks->data_time = 16; +- if (clks->recovery_time < 2) +- clks->recovery_time = 2; +- if (clks->recovery_time > 17) +- clks->recovery_time = 17; +- } else { +- clks->address_time = 1; +- clks->data_time = 1; +- clks->recovery_time = 2; +- /* minimal values */ +- } +-} +- + static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio) + { +- /* primary and secondary drives share some registers, +- * so we have to program both drives +- */ ++ ide_hwif_t *hwif = drive->hwif; ++ ide_drive_t *pair = ide_get_paired_drive(drive); + unsigned long flags; +- u8 pio1 = 0, pio2 = 0; +- pio_clocks_t first, second; +- int ax, drdy; +- u8 cycle1, cycle2, misc; +- ide_hwif_t *hwif = HWIF(drive); +- +- /* sets drive->drive_data for both drives */ +- compute_pios(drive, pio); +- pio1 = hwif->drives[0].drive_data; +- pio2 = hwif->drives[1].drive_data; +- +- compute_clocks(pio1, &first); +- compute_clocks(pio2, &second); +- +- /* ax = max(a1,a2) */ +- ax = (first.address_time < second.address_time) ? second.address_time : first.address_time; +- +- drdy = 2; /* DRDY is default 2 (by OPTi Databook) */ +- +- cycle1 = ((first.data_time-1)<<4) | (first.recovery_time-2); +- cycle2 = ((second.data_time-1)<<4) | (second.recovery_time-2); +- misc = READ_PREFETCH | ((ax-1)<<4) | ((drdy-2)<<1); +- +-#ifdef OPTI621_DEBUG +- printk("%s: master: address: %d, data: %d, " +- "recovery: %d, drdy: %d [clk]\n", +- hwif->name, ax, first.data_time, +- first.recovery_time, drdy); +- printk("%s: slave: address: %d, data: %d, " +- "recovery: %d, drdy: %d [clk]\n", +- hwif->name, ax, second.data_time, +- second.recovery_time, drdy); +-#endif ++ u8 tim, misc, addr_pio = pio, clk; ++ ++ /* DRDY is default 2 (by OPTi Databook) */ ++ static const u8 addr_timings[2][5] = { ++ { 0x20, 0x10, 0x00, 0x00, 0x00 }, /* 33 MHz */ ++ { 0x10, 0x10, 0x00, 0x00, 0x00 }, /* 25 MHz */ ++ }; ++ static const u8 data_rec_timings[2][5] = { ++ { 0x5b, 0x45, 0x32, 0x21, 0x20 }, /* 33 MHz */ ++ { 0x48, 0x34, 0x21, 0x10, 0x10 } /* 25 MHz */ ++ }; ++ ++ drive->drive_data = XFER_PIO_0 + pio; ++ ++ if (pair->present) { ++ if (pair->drive_data && pair->drive_data < drive->drive_data) ++ addr_pio = pair->drive_data - XFER_PIO_0; ++ } + + spin_lock_irqsave(&opti621_lock, flags); + +@@ -289,24 +168,21 @@ static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio) + (void)inb(reg_base + CNTRL_REG); + /* if reads 0xc0, no interface exist? */ + read_reg(CNTRL_REG); +- /* read version, probably 0 */ +- read_reg(STRAP_REG); + +- /* program primary drive */ +- /* select Index-0 for Register-A */ +- write_reg(0, MISC_REG); +- /* set read cycle timings */ +- write_reg(cycle1, READ_REG); +- /* set write cycle timings */ +- write_reg(cycle1, WRITE_REG); ++ /* check CLK speed */ ++ clk = read_reg(STRAP_REG) & 1; ++ ++ printk(KERN_INFO "%s: CLK = %d MHz\n", hwif->name, clk ? 25 : 33); + +- /* program secondary drive */ +- /* select Index-1 for Register-B */ +- write_reg(1, MISC_REG); ++ tim = data_rec_timings[clk][pio]; ++ misc = addr_timings[clk][addr_pio]; ++ ++ /* select Index-0/1 for Register-A/B */ ++ write_reg(drive->select.b.unit, MISC_REG); + /* set read cycle timings */ +- write_reg(cycle2, READ_REG); ++ write_reg(tim, READ_REG); + /* set write cycle timings */ +- write_reg(cycle2, WRITE_REG); ++ write_reg(tim, WRITE_REG); + + /* use Register-A for drive 0 */ + /* use Register-B for drive 1 */ +@@ -319,45 +195,26 @@ static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio) + spin_unlock_irqrestore(&opti621_lock, flags); + } + +-static void __devinit opti621_port_init_devs(ide_hwif_t *hwif) +-{ +- hwif->drives[0].drive_data = PIO_DONT_KNOW; +- hwif->drives[1].drive_data = PIO_DONT_KNOW; +-} +- + static const struct ide_port_ops opti621_port_ops = { +- .port_init_devs = opti621_port_init_devs, + .set_pio_mode = opti621_set_pio_mode, + }; + +-static const struct ide_port_info opti621_chipsets[] __devinitdata = { +- { /* 0 */ +- .name = "OPTI621", +- .enablebits = { {0x45, 0x80, 0x00}, {0x40, 0x08, 0x00} }, +- .port_ops = &opti621_port_ops, +- .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA, +- .pio_mask = ATA_PIO3, +- .swdma_mask = ATA_SWDMA2, +- .mwdma_mask = ATA_MWDMA2, +- }, { /* 1 */ +- .name = "OPTI621X", +- .enablebits = { {0x45, 0x80, 0x00}, {0x40, 0x08, 0x00} }, +- .port_ops = &opti621_port_ops, +- .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA, +- .pio_mask = ATA_PIO3, +- .swdma_mask = ATA_SWDMA2, +- .mwdma_mask = ATA_MWDMA2, +- } ++static const struct ide_port_info opti621_chipset __devinitdata = { ++ .name = "OPTI621/X", ++ .enablebits = { {0x45, 0x80, 0x00}, {0x40, 0x08, 0x00} }, ++ .port_ops = &opti621_port_ops, ++ .host_flags = IDE_HFLAG_NO_DMA, ++ .pio_mask = ATA_PIO4, + }; + + static int __devinit opti621_init_one(struct pci_dev *dev, const struct pci_device_id *id) + { +- return ide_setup_pci_device(dev, &opti621_chipsets[id->driver_data]); ++ return ide_setup_pci_device(dev, &opti621_chipset); + } + + static const struct pci_device_id opti621_pci_tbl[] = { + { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), 0 }, +- { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), 1 }, ++ { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), 0 }, + { 0, }, + }; + MODULE_DEVICE_TABLE(pci, opti621_pci_tbl); +diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c +index 48aa019..ba2d587 100644 +--- a/drivers/ide/ppc/pmac.c ++++ b/drivers/ide/ppc/pmac.c +@@ -59,7 +59,6 @@ typedef struct pmac_ide_hwif { + int irq; + int kind; + int aapl_bus_id; +- unsigned cable_80 : 1; + unsigned mediabay : 1; + unsigned broken_dma : 1; + unsigned broken_dma_warn : 1; +@@ -918,10 +917,40 @@ pmac_ide_do_resume(ide_hwif_t *hwif) + return 0; + } + ++static u8 pmac_ide_cable_detect(ide_hwif_t *hwif) ++{ ++ pmac_ide_hwif_t *pmif = (pmac_ide_hwif_t *)ide_get_hwifdata(hwif); ++ struct device_node *np = pmif->node; ++ const char *cable = of_get_property(np, "cable-type", NULL); ++ ++ /* Get cable type from device-tree. */ ++ if (cable && !strncmp(cable, "80-", 3)) ++ return ATA_CBL_PATA80; ++ ++ /* ++ * G5's seem to have incorrect cable type in device-tree. ++ * Let's assume they have a 80 conductor cable, this seem ++ * to be always the case unless the user mucked around. ++ */ ++ if (of_device_is_compatible(np, "K2-UATA") || ++ of_device_is_compatible(np, "shasta-ata")) ++ return ATA_CBL_PATA80; ++ ++ return ATA_CBL_PATA40; ++} ++ + static const struct ide_port_ops pmac_ide_ata6_port_ops = { + .set_pio_mode = pmac_ide_set_pio_mode, + .set_dma_mode = pmac_ide_set_dma_mode, + .selectproc = pmac_ide_kauai_selectproc, ++ .cable_detect = pmac_ide_cable_detect, ++}; ++ ++static const struct ide_port_ops pmac_ide_ata4_port_ops = { ++ .set_pio_mode = pmac_ide_set_pio_mode, ++ .set_dma_mode = pmac_ide_set_dma_mode, ++ .selectproc = pmac_ide_selectproc, ++ .cable_detect = pmac_ide_cable_detect, + }; + + static const struct ide_port_ops pmac_ide_port_ops = { +@@ -949,10 +978,7 @@ static const struct ide_port_info pmac_port_info = { + + /* + * Setup, register & probe an IDE channel driven by this driver, this is +- * called by one of the 2 probe functions (macio or PCI). Note that a channel +- * that ends up beeing free of any device is not kept around by this driver +- * (it is kept in 2.4). This introduce an interface numbering change on some +- * rare machines unfortunately, but it's better this way. ++ * called by one of the 2 probe functions (macio or PCI). + */ + static int __devinit + pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) +@@ -962,7 +988,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) + u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; + struct ide_port_info d = pmac_port_info; + +- pmif->cable_80 = 0; + pmif->broken_dma = pmif->broken_dma_warn = 0; + if (of_device_is_compatible(np, "shasta-ata")) { + pmif->kind = controller_sh_ata6; +@@ -979,6 +1004,7 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) + } else if (of_device_is_compatible(np, "keylargo-ata")) { + if (strcmp(np->name, "ata-4") == 0) { + pmif->kind = controller_kl_ata4; ++ d.port_ops = &pmac_ide_ata4_port_ops; + d.udma_mask = ATA_UDMA4; + } else + pmif->kind = controller_kl_ata3; +@@ -992,22 +1018,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) + bidp = of_get_property(np, "AAPL,bus-id", NULL); + pmif->aapl_bus_id = bidp ? *bidp : 0; + +- /* Get cable type from device-tree */ +- if (pmif->kind == controller_kl_ata4 || pmif->kind == controller_un_ata6 +- || pmif->kind == controller_k2_ata6 +- || pmif->kind == controller_sh_ata6) { +- const char* cable = of_get_property(np, "cable-type", NULL); +- if (cable && !strncmp(cable, "80-", 3)) +- pmif->cable_80 = 1; +- } +- /* G5's seem to have incorrect cable type in device-tree. Let's assume +- * they have a 80 conductor cable, this seem to be always the case unless +- * the user mucked around +- */ +- if (of_device_is_compatible(np, "K2-UATA") || +- of_device_is_compatible(np, "shasta-ata")) +- pmif->cable_80 = 1; +- + /* On Kauai-type controllers, we make sure the FCR is correct */ + if (pmif->kauai_fcr) + writel(KAUAI_FCR_UATA_MAGIC | +@@ -1053,7 +1063,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) + + hwif->hwif_data = pmif; + ide_init_port_hw(hwif, hw); +- hwif->cbl = pmif->cable_80 ? ATA_CBL_PATA80 : ATA_CBL_PATA40; + + printk(KERN_INFO "ide%d: Found Apple %s controller, bus ID %d%s, irq %d\n", + hwif->index, model_name[pmif->kind], pmif->aapl_bus_id, +@@ -1070,11 +1079,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) + } + } + +-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC +- if (pmif->cable_80 == 0) +- d.udma_mask &= ATA_UDMA2; +-#endif +- + idx[0] = hwif->index; + + ide_device_add(idx, &d); +diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c +index f806da1..caed42b 100644 +--- a/drivers/infiniband/core/uverbs_main.c ++++ b/drivers/infiniband/core/uverbs_main.c +@@ -423,7 +423,7 @@ static void ib_uverbs_async_handler(struct ib_uverbs_file *file, + unsigned long flags; + + spin_lock_irqsave(&file->async_file->lock, flags); +- if (!file->async_file->is_closed) { ++ if (file->async_file->is_closed) { + spin_unlock_irqrestore(&file->async_file->lock, flags); + return; + } +diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c +index 99b3c4a..d617da9 100644 +--- a/drivers/infiniband/hw/nes/nes_verbs.c ++++ b/drivers/infiniband/hw/nes/nes_verbs.c +@@ -2456,10 +2456,8 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, + if ((page_count!=0)&&(page_count<<12)-(region->offset&(4096-1))>=region->length) + goto enough_pages; + if ((page_count&0x01FF) == 0) { +- if (page_count>(1024*512)) { ++ if (page_count >= 1024 * 512) { + ib_umem_release(region); +- pci_free_consistent(nesdev->pcidev, 4096, vpbl.pbl_vbase, +- vpbl.pbl_pbase); + nes_free_resource(nesadapter, + nesadapter->allocated_mrs, stag_index); + kfree(nesmr); +diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig +index 3ad8bd9..432699d 100644 +--- a/drivers/input/misc/Kconfig ++++ b/drivers/input/misc/Kconfig +@@ -15,7 +15,6 @@ if INPUT_MISC + config INPUT_PCSPKR + tristate "PC Speaker support" + depends on PCSPKR_PLATFORM +- depends on SND_PCSP=n + help + Say Y here if you want the standard PC Speaker to be used for + bells and whistles. +diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c +index 8dd3942..ce6fdec 100644 +--- a/drivers/input/mouse/appletouch.c ++++ b/drivers/input/mouse/appletouch.c +@@ -589,6 +589,21 @@ static void atp_close(struct input_dev *input) + dev->open = 0; + } + ++static int atp_handle_geyser(struct atp *dev) ++{ ++ struct usb_device *udev = dev->udev; ++ ++ if (!atp_is_fountain(dev)) { ++ /* switch to raw sensor mode */ ++ if (atp_geyser_init(udev)) ++ return -EIO; ++ ++ printk(KERN_INFO "appletouch: Geyser mode initialized.\n"); ++ } ++ ++ return 0; ++} ++ + static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id) + { + struct atp *dev; +@@ -633,14 +648,6 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id + else + dev->datalen = 81; + +- if (!atp_is_fountain(dev)) { +- /* switch to raw sensor mode */ +- if (atp_geyser_init(udev)) +- goto err_free_devs; +- +- printk(KERN_INFO "appletouch: Geyser mode initialized.\n"); +- } +- + dev->urb = usb_alloc_urb(0, GFP_KERNEL); + if (!dev->urb) + goto err_free_devs; +@@ -654,6 +661,10 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id + usb_rcvintpipe(udev, int_in_endpointAddr), + dev->data, dev->datalen, atp_complete, dev, 1); + ++ error = atp_handle_geyser(dev); ++ if (error) ++ goto err_free_buffer; ++ + usb_make_path(udev, dev->phys, sizeof(dev->phys)); + strlcat(dev->phys, "/input0", sizeof(dev->phys)); + +@@ -744,6 +755,20 @@ static void atp_disconnect(struct usb_interface *iface) + printk(KERN_INFO "input: appletouch disconnected\n"); + } + ++static int atp_recover(struct atp *dev) ++{ ++ int error; ++ ++ error = atp_handle_geyser(dev); ++ if (error) ++ return error; ++ ++ if (dev->open && usb_submit_urb(dev->urb, GFP_ATOMIC)) ++ return -EIO; ++ ++ return 0; ++} ++ + static int atp_suspend(struct usb_interface *iface, pm_message_t message) + { + struct atp *dev = usb_get_intfdata(iface); +@@ -764,12 +789,20 @@ static int atp_resume(struct usb_interface *iface) + return 0; + } + ++static int atp_reset_resume(struct usb_interface *iface) ++{ ++ struct atp *dev = usb_get_intfdata(iface); ++ ++ return atp_recover(dev); ++} ++ + static struct usb_driver atp_driver = { + .name = "appletouch", + .probe = atp_probe, + .disconnect = atp_disconnect, + .suspend = atp_suspend, + .resume = atp_resume, ++ .reset_resume = atp_reset_resume, + .id_table = atp_table, + }; + +diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h +index 9aafa96..78eb784 100644 +--- a/drivers/input/serio/i8042-x86ia64io.h ++++ b/drivers/input/serio/i8042-x86ia64io.h +@@ -193,6 +193,13 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { + }, + }, + { ++ .ident = "Fujitsu-Siemens Amilo Pro 2030", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"), ++ }, ++ }, ++ { + /* + * No data is coming from the touchscreen unless KBC + * is in legacy mode. +diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c +index 592ff55..170f71e 100644 +--- a/drivers/input/serio/i8042.c ++++ b/drivers/input/serio/i8042.c +@@ -952,8 +952,12 @@ static int i8042_resume(struct platform_device *dev) + i8042_ctr |= I8042_CTR_AUXDIS | I8042_CTR_KBDDIS; + i8042_ctr &= ~(I8042_CTR_AUXINT | I8042_CTR_KBDINT); + if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) { +- printk(KERN_ERR "i8042: Can't write CTR to resume\n"); +- return -EIO; ++ printk(KERN_WARNING "i8042: Can't write CTR to resume, retrying...\n"); ++ msleep(50); ++ if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) { ++ printk(KERN_ERR "i8042: CTR write retry failed\n"); ++ return -EIO; ++ } + } + + +diff --git a/drivers/isdn/sc/ioctl.c b/drivers/isdn/sc/ioctl.c +index 7817d22..1081091 100644 +--- a/drivers/isdn/sc/ioctl.c ++++ b/drivers/isdn/sc/ioctl.c +@@ -226,6 +226,7 @@ int sc_ioctl(int card, scs_ioctl *data) + */ + if (copy_from_user(spid, data->dataptr, SCIOC_SPIDSIZE)) { + kfree(rcvmsg); ++ kfree(spid); + return -EFAULT; + } + +diff --git a/drivers/macintosh/mediabay.c b/drivers/macintosh/mediabay.c +index 82add26..818aba3 100644 +--- a/drivers/macintosh/mediabay.c ++++ b/drivers/macintosh/mediabay.c +@@ -84,7 +84,7 @@ struct media_bay_info { + int cd_irq; + int cd_retry; + #endif +-#if defined(CONFIG_BLK_DEV_IDE_PMAC) || defined(CONFIG_MAC_FLOPPY) ++#if defined(CONFIG_BLK_DEV_IDE_PMAC) + int cd_index; + #endif + }; +@@ -417,6 +417,7 @@ static void poll_media_bay(struct media_bay_info* bay) + } + } + ++#ifdef CONFIG_BLK_DEV_IDE_PMAC + int check_media_bay(struct device_node *which_bay, int what) + { + int i; +@@ -432,7 +433,6 @@ int check_media_bay(struct device_node *which_bay, int what) + } + EXPORT_SYMBOL(check_media_bay); + +-#ifdef CONFIG_BLK_DEV_IDE_PMAC + int check_media_bay_by_base(unsigned long base, int what) + { + int i; +@@ -556,7 +556,8 @@ static void media_bay_step(int i) + printk("mediabay %d, registering IDE...\n", i); + pmu_suspend(); + ide_port_scan(bay->cd_port); +- bay->cd_index = bay->cd_port->index; ++ if (bay->cd_port->present) ++ bay->cd_index = bay->cd_port->index; + pmu_resume(); + } + if (bay->cd_index == -1) { +diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c +index 77ad192..d86d57a 100644 +--- a/drivers/macintosh/smu.c ++++ b/drivers/macintosh/smu.c +@@ -483,12 +483,15 @@ int __init smu_init (void) + + if (smu_cmdbuf_abs == 0) { + printk(KERN_ERR "SMU: Command buffer not allocated !\n"); ++ of_node_put(np); + return -EINVAL; + } + + smu = alloc_bootmem(sizeof(struct smu_device)); +- if (smu == NULL) ++ if (smu == NULL) { ++ of_node_put(np); + return -ENOMEM; ++ } + memset(smu, 0, sizeof(*smu)); + + spin_lock_init(&smu->lock); +diff --git a/drivers/macintosh/therm_adt746x.c b/drivers/macintosh/therm_adt746x.c +index 54f4942..5366dc9 100644 +--- a/drivers/macintosh/therm_adt746x.c ++++ b/drivers/macintosh/therm_adt746x.c +@@ -562,18 +562,24 @@ thermostat_init(void) + therm_type = ADT7460; + else if (of_device_is_compatible(np, "adt7467")) + therm_type = ADT7467; +- else ++ else { ++ of_node_put(np); + return -ENODEV; ++ } + + prop = of_get_property(np, "hwsensor-params-version", NULL); + printk(KERN_INFO "adt746x: version %d (%ssupported)\n", *prop, + (*prop == 1)?"":"un"); +- if (*prop != 1) ++ if (*prop != 1) { ++ of_node_put(np); + return -ENODEV; ++ } + + prop = of_get_property(np, "reg", NULL); +- if (!prop) ++ if (!prop) { ++ of_node_put(np); + return -ENODEV; ++ } + + /* look for bus either by path or using "reg" */ + if (strstr(np->full_name, "/i2c-bus@") != NULL) { +@@ -610,6 +616,7 @@ thermostat_init(void) + + if (of_dev == NULL) { + printk(KERN_ERR "Can't register temperatures device !\n"); ++ of_node_put(np); + return -ENODEV; + } + +diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c +index be624a0..c303e7f 100644 +--- a/drivers/mmc/host/wbsd.c ++++ b/drivers/mmc/host/wbsd.c +@@ -1457,17 +1457,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq) + int ret; + + /* +- * Allocate interrupt. +- */ +- +- ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); +- if (ret) +- return ret; +- +- host->irq = irq; +- +- /* +- * Set up tasklets. ++ * Set up tasklets. Must be done before requesting interrupt. + */ + tasklet_init(&host->card_tasklet, wbsd_tasklet_card, + (unsigned long)host); +@@ -1480,6 +1470,15 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq) + tasklet_init(&host->finish_tasklet, wbsd_tasklet_finish, + (unsigned long)host); + ++ /* ++ * Allocate interrupt. ++ */ ++ ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); ++ if (ret) ++ return ret; ++ ++ host->irq = irq; ++ + return 0; + } + +diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c +index 99e0b4c..3c798ae 100644 +--- a/drivers/net/atlx/atl1.c ++++ b/drivers/net/atlx/atl1.c +@@ -471,7 +471,6 @@ static int atl1_get_permanent_address(struct atl1_hw *hw) + memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); + return 0; + } +- return 1; + } + + /* see if SPI FLAGS exist ? */ +diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c +index 4b46e68..367b6d4 100644 +--- a/drivers/net/bnx2.c ++++ b/drivers/net/bnx2.c +@@ -5724,14 +5724,12 @@ bnx2_reset_task(struct work_struct *work) + if (!netif_running(bp->dev)) + return; + +- bp->in_reset_task = 1; + bnx2_netif_stop(bp); + + bnx2_init_nic(bp); + + atomic_set(&bp->intr_sem, 1); + bnx2_netif_start(bp); +- bp->in_reset_task = 0; + } + + static void +@@ -5907,12 +5905,7 @@ bnx2_close(struct net_device *dev) + struct bnx2 *bp = netdev_priv(dev); + u32 reset_code; + +- /* Calling flush_scheduled_work() may deadlock because +- * linkwatch_event() may be on the workqueue and it will try to get +- * the rtnl_lock which we are holding. +- */ +- while (bp->in_reset_task) +- msleep(1); ++ cancel_work_sync(&bp->reset_task); + + bnx2_disable_int_sync(bp); + bnx2_napi_disable(bp); +diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h +index 1eaf5bb..2377cc1 100644 +--- a/drivers/net/bnx2.h ++++ b/drivers/net/bnx2.h +@@ -6656,7 +6656,6 @@ struct bnx2 { + int current_interval; + struct timer_list timer; + struct work_struct reset_task; +- int in_reset_task; + + /* Used to synchronize phy accesses. */ + spinlock_t phy_lock; +diff --git a/drivers/net/bnx2x.c b/drivers/net/bnx2x.c +index 7bdb5af..70cba64 100644 +--- a/drivers/net/bnx2x.c ++++ b/drivers/net/bnx2x.c +@@ -6,7 +6,8 @@ + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * +- * Written by: Eliezer Tamir ++ * Maintained by: Eilon Greenstein ++ * Written by: Eliezer Tamir + * Based on code from Michael Chan's bnx2 driver + * UDP CSUM errata workaround by Arik Gendelman + * Slowpath rework by Vladislav Zolotarov +@@ -74,7 +75,7 @@ static char version[] __devinitdata = + "Broadcom NetXtreme II 5771X 10Gigabit Ethernet Driver " + DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; + +-MODULE_AUTHOR("Eliezer Tamir "); ++MODULE_AUTHOR("Eliezer Tamir"); + MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710 Driver"); + MODULE_LICENSE("GPL"); + MODULE_VERSION(DRV_MODULE_VERSION); +diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h +index 4f0c0d3..8e68d06 100644 +--- a/drivers/net/bnx2x.h ++++ b/drivers/net/bnx2x.h +@@ -6,7 +6,8 @@ + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * +- * Written by: Eliezer Tamir ++ * Maintained by: Eilon Greenstein ++ * Written by: Eliezer Tamir + * Based on code from Michael Chan's bnx2 driver + */ + +diff --git a/drivers/net/bnx2x_init.h b/drivers/net/bnx2x_init.h +index dcaecc5..370686e 100644 +--- a/drivers/net/bnx2x_init.h ++++ b/drivers/net/bnx2x_init.h +@@ -6,7 +6,8 @@ + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * +- * Written by: Eliezer Tamir ++ * Maintained by: Eilon Greenstein ++ * Written by: Eliezer Tamir + */ + + #ifndef BNX2X_INIT_H +diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c +index faae01d..075fd54 100644 +--- a/drivers/net/ehea/ehea_main.c ++++ b/drivers/net/ehea/ehea_main.c +@@ -2605,7 +2605,8 @@ static int ehea_stop(struct net_device *dev) + if (netif_msg_ifdown(port)) + ehea_info("disabling port %s", dev->name); + +- flush_scheduled_work(); ++ cancel_work_sync(&port->reset_task); ++ + mutex_lock(&port->port_lock); + netif_stop_queue(dev); + port_napi_disable(port); +diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c +index 46a90e9..c05cb15 100644 +--- a/drivers/net/enc28j60.c ++++ b/drivers/net/enc28j60.c +@@ -400,26 +400,31 @@ enc28j60_packet_write(struct enc28j60_net *priv, int len, const u8 *data) + mutex_unlock(&priv->lock); + } + +-/* +- * Wait until the PHY operation is complete. +- */ +-static int wait_phy_ready(struct enc28j60_net *priv) ++static unsigned long msec20_to_jiffies; ++ ++static int poll_ready(struct enc28j60_net *priv, u8 reg, u8 mask, u8 val) + { +- unsigned long timeout = jiffies + 20 * HZ / 1000; +- int ret = 1; ++ unsigned long timeout = jiffies + msec20_to_jiffies; + + /* 20 msec timeout read */ +- while (nolock_regb_read(priv, MISTAT) & MISTAT_BUSY) { ++ while ((nolock_regb_read(priv, reg) & mask) != val) { + if (time_after(jiffies, timeout)) { + if (netif_msg_drv(priv)) +- printk(KERN_DEBUG DRV_NAME +- ": PHY ready timeout!\n"); +- ret = 0; +- break; ++ dev_dbg(&priv->spi->dev, ++ "reg %02x ready timeout!\n", reg); ++ return -ETIMEDOUT; + } + cpu_relax(); + } +- return ret; ++ return 0; ++} ++ ++/* ++ * Wait until the PHY operation is complete. ++ */ ++static int wait_phy_ready(struct enc28j60_net *priv) ++{ ++ return poll_ready(priv, MISTAT, MISTAT_BUSY, 0) ? 0 : 1; + } + + /* +@@ -594,6 +599,32 @@ static void nolock_txfifo_init(struct enc28j60_net *priv, u16 start, u16 end) + nolock_regw_write(priv, ETXNDL, end); + } + ++/* ++ * Low power mode shrinks power consumption about 100x, so we'd like ++ * the chip to be in that mode whenever it's inactive. (However, we ++ * can't stay in lowpower mode during suspend with WOL active.) ++ */ ++static void enc28j60_lowpower(struct enc28j60_net *priv, bool is_low) ++{ ++ if (netif_msg_drv(priv)) ++ dev_dbg(&priv->spi->dev, "%s power...\n", ++ is_low ? "low" : "high"); ++ ++ mutex_lock(&priv->lock); ++ if (is_low) { ++ nolock_reg_bfclr(priv, ECON1, ECON1_RXEN); ++ poll_ready(priv, ESTAT, ESTAT_RXBUSY, 0); ++ poll_ready(priv, ECON1, ECON1_TXRTS, 0); ++ /* ECON2_VRPS was set during initialization */ ++ nolock_reg_bfset(priv, ECON2, ECON2_PWRSV); ++ } else { ++ nolock_reg_bfclr(priv, ECON2, ECON2_PWRSV); ++ poll_ready(priv, ESTAT, ESTAT_CLKRDY, ESTAT_CLKRDY); ++ /* caller sets ECON1_RXEN */ ++ } ++ mutex_unlock(&priv->lock); ++} ++ + static int enc28j60_hw_init(struct enc28j60_net *priv) + { + u8 reg; +@@ -612,8 +643,8 @@ static int enc28j60_hw_init(struct enc28j60_net *priv) + priv->tx_retry_count = 0; + priv->max_pk_counter = 0; + priv->rxfilter = RXFILTER_NORMAL; +- /* enable address auto increment */ +- nolock_regb_write(priv, ECON2, ECON2_AUTOINC); ++ /* enable address auto increment and voltage regulator powersave */ ++ nolock_regb_write(priv, ECON2, ECON2_AUTOINC | ECON2_VRPS); + + nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT); + nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT); +@@ -690,7 +721,7 @@ static int enc28j60_hw_init(struct enc28j60_net *priv) + + static void enc28j60_hw_enable(struct enc28j60_net *priv) + { +- /* enable interrutps */ ++ /* enable interrupts */ + if (netif_msg_hw(priv)) + printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n", + __FUNCTION__); +@@ -726,15 +757,12 @@ enc28j60_setlink(struct net_device *ndev, u8 autoneg, u16 speed, u8 duplex) + int ret = 0; + + if (!priv->hw_enable) { +- if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) { ++ /* link is in low power mode now; duplex setting ++ * will take effect on next enc28j60_hw_init(). ++ */ ++ if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) + priv->full_duplex = (duplex == DUPLEX_FULL); +- if (!enc28j60_hw_init(priv)) { +- if (netif_msg_drv(priv)) +- dev_err(&ndev->dev, +- "hw_reset() failed\n"); +- ret = -EINVAL; +- } +- } else { ++ else { + if (netif_msg_link(priv)) + dev_warn(&ndev->dev, + "unsupported link setting\n"); +@@ -1307,7 +1335,8 @@ static int enc28j60_net_open(struct net_device *dev) + } + return -EADDRNOTAVAIL; + } +- /* Reset the hardware here */ ++ /* Reset the hardware here (and take it out of low power mode) */ ++ enc28j60_lowpower(priv, false); + enc28j60_hw_disable(priv); + if (!enc28j60_hw_init(priv)) { + if (netif_msg_ifup(priv)) +@@ -1337,6 +1366,7 @@ static int enc28j60_net_close(struct net_device *dev) + printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__); + + enc28j60_hw_disable(priv); ++ enc28j60_lowpower(priv, true); + netif_stop_queue(dev); + + return 0; +@@ -1537,6 +1567,8 @@ static int __devinit enc28j60_probe(struct spi_device *spi) + dev->watchdog_timeo = TX_TIMEOUT; + SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); + ++ enc28j60_lowpower(priv, true); ++ + ret = register_netdev(dev); + if (ret) { + if (netif_msg_probe(priv)) +@@ -1556,7 +1588,7 @@ error_alloc: + return ret; + } + +-static int enc28j60_remove(struct spi_device *spi) ++static int __devexit enc28j60_remove(struct spi_device *spi) + { + struct enc28j60_net *priv = dev_get_drvdata(&spi->dev); + +@@ -1573,15 +1605,16 @@ static int enc28j60_remove(struct spi_device *spi) + static struct spi_driver enc28j60_driver = { + .driver = { + .name = DRV_NAME, +- .bus = &spi_bus_type, + .owner = THIS_MODULE, +- }, ++ }, + .probe = enc28j60_probe, + .remove = __devexit_p(enc28j60_remove), + }; + + static int __init enc28j60_init(void) + { ++ msec20_to_jiffies = msecs_to_jiffies(20); ++ + return spi_register_driver(&enc28j60_driver); + } + +diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c +index 5f9c42e..329edd9 100644 +--- a/drivers/net/fec_mpc52xx.c ++++ b/drivers/net/fec_mpc52xx.c +@@ -78,7 +78,7 @@ module_param_array_named(mac, mpc52xx_fec_mac_addr, byte, NULL, 0); + MODULE_PARM_DESC(mac, "six hex digits, ie. 0x1,0x2,0xc0,0x01,0xba,0xbe"); + + #define MPC52xx_MESSAGES_DEFAULT ( NETIF_MSG_DRV | NETIF_MSG_PROBE | \ +- NETIF_MSG_LINK | NETIF_MSG_IFDOWN | NETIF_MSG_IFDOWN ) ++ NETIF_MSG_LINK | NETIF_MSG_IFDOWN | NETIF_MSG_IFUP) + static int debug = -1; /* the above default */ + module_param(debug, int, 0); + MODULE_PARM_DESC(debug, "debugging messages level"); +diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c +index dde9c7e..00bc7fb 100644 +--- a/drivers/net/hamradio/baycom_epp.c ++++ b/drivers/net/hamradio/baycom_epp.c +@@ -959,7 +959,7 @@ static int epp_close(struct net_device *dev) + unsigned char tmp[1]; + + bc->work_running = 0; +- flush_scheduled_work(); ++ cancel_delayed_work_sync(&bc->run_work); + bc->stat = EPP_DCDBIT; + tmp[0] = 0; + pp->ops->epp_write_addr(pp, tmp, 1, 0); +diff --git a/drivers/net/ibm_newemac/Kconfig b/drivers/net/ibm_newemac/Kconfig +index 0d3e738..70a3272 100644 +--- a/drivers/net/ibm_newemac/Kconfig ++++ b/drivers/net/ibm_newemac/Kconfig +@@ -1,6 +1,7 @@ + config IBM_NEW_EMAC + tristate "IBM EMAC Ethernet support" + depends on PPC_DCR && PPC_MERGE ++ select CRC32 + help + This driver supports the IBM EMAC family of Ethernet controllers + typically found on 4xx embedded PowerPC chips, but also on the +diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c +index 9b358f6..679a082 100644 +--- a/drivers/net/ipg.c ++++ b/drivers/net/ipg.c +@@ -577,12 +577,12 @@ static void ipg_nic_set_multicast_list(struct net_device *dev) + /* NIC to be configured in promiscuous mode. */ + receivemode = IPG_RM_RECEIVEALLFRAMES; + } else if ((dev->flags & IFF_ALLMULTI) || +- (dev->flags & IFF_MULTICAST & ++ ((dev->flags & IFF_MULTICAST) && + (dev->mc_count > IPG_MULTICAST_HASHTABLE_SIZE))) { + /* NIC to be configured to receive all multicast + * frames. */ + receivemode |= IPG_RM_RECEIVEMULTICAST; +- } else if (dev->flags & IFF_MULTICAST & (dev->mc_count > 0)) { ++ } else if ((dev->flags & IFF_MULTICAST) && (dev->mc_count > 0)) { + /* NIC to be configured to receive selected + * multicast addresses. */ + receivemode |= IPG_RM_RECEIVEMULTICASTHASH; +diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h +index 8cb29f5..da4c4fb 100644 +--- a/drivers/net/netxen/netxen_nic.h ++++ b/drivers/net/netxen/netxen_nic.h +@@ -776,7 +776,6 @@ struct netxen_hardware_context { + + u8 revision_id; + u16 board_type; +- u16 max_ports; + struct netxen_board_info boardcfg; + u32 xg_linkup; + u32 qg_linksup; +@@ -863,6 +862,7 @@ struct netxen_adapter { + unsigned char mac_addr[ETH_ALEN]; + int mtu; + int portnum; ++ u8 physical_port; + + struct work_struct watchdog_task; + struct timer_list watchdog_timer; +@@ -1034,7 +1034,6 @@ int netxen_rom_se(struct netxen_adapter *adapter, int addr); + + /* Functions from netxen_nic_isr.c */ + void netxen_initialize_adapter_sw(struct netxen_adapter *adapter); +-void netxen_initialize_adapter_hw(struct netxen_adapter *adapter); + void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr, + struct pci_dev **used_dev); + void netxen_initialize_adapter_ops(struct netxen_adapter *adapter); +@@ -1077,20 +1076,6 @@ static const struct netxen_brdinfo netxen_boards[] = { + + #define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards) + +-static inline void get_brd_port_by_type(u32 type, int *ports) +-{ +- int i, found = 0; +- for (i = 0; i < NUM_SUPPORTED_BOARDS; ++i) { +- if (netxen_boards[i].brdtype == type) { +- *ports = netxen_boards[i].ports; +- found = 1; +- break; +- } +- } +- if (!found) +- *ports = 0; +-} +- + static inline void get_brd_name_by_type(u32 type, char *name) + { + int i, found = 0; +@@ -1169,5 +1154,4 @@ extern int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, + + extern struct ethtool_ops netxen_nic_ethtool_ops; + +-extern int physical_port[]; /* physical port # from virtual port.*/ + #endif /* __NETXEN_NIC_H_ */ +diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c +index 6e98d83..723487b 100644 +--- a/drivers/net/netxen/netxen_nic_ethtool.c ++++ b/drivers/net/netxen/netxen_nic_ethtool.c +@@ -369,7 +369,7 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) + for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { + /* GB: port specific registers */ + if (mode == 0 && i >= 19) +- window = physical_port[adapter->portnum] * ++ window = adapter->physical_port * + NETXEN_NIC_PORT_WINDOW; + + NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode]. +@@ -527,7 +527,7 @@ netxen_nic_get_pauseparam(struct net_device *dev, + { + struct netxen_adapter *adapter = netdev_priv(dev); + __u32 val; +- int port = physical_port[adapter->portnum]; ++ int port = adapter->physical_port; + + if (adapter->ahw.board_type == NETXEN_NIC_GBE) { + if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) +@@ -573,7 +573,7 @@ netxen_nic_set_pauseparam(struct net_device *dev, + { + struct netxen_adapter *adapter = netdev_priv(dev); + __u32 val; +- int port = physical_port[adapter->portnum]; ++ int port = adapter->physical_port; + /* read mode */ + if (adapter->ahw.board_type == NETXEN_NIC_GBE) { + if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) +diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c +index af73564..c43d06b 100644 +--- a/drivers/net/netxen/netxen_nic_hw.c ++++ b/drivers/net/netxen/netxen_nic_hw.c +@@ -396,11 +396,8 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter) + } + adapter->intr_scheme = readl( + NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_FW)); +- printk(KERN_NOTICE "%s: FW capabilities:0x%x\n", netxen_nic_driver_name, +- adapter->intr_scheme); + adapter->msi_mode = readl( + NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_MSI_MODE_FW)); +- DPRINTK(INFO, "Receive Peg ready too. starting stuff\n"); + + addr = netxen_alloc(adapter->ahw.pdev, + sizeof(struct netxen_ring_ctx) + +@@ -408,8 +405,6 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter) + (dma_addr_t *) & adapter->ctx_desc_phys_addr, + &adapter->ctx_desc_pdev); + +- printk(KERN_INFO "ctx_desc_phys_addr: 0x%llx\n", +- (unsigned long long) adapter->ctx_desc_phys_addr); + if (addr == NULL) { + DPRINTK(ERR, "bad return from pci_alloc_consistent\n"); + err = -ENOMEM; +@@ -429,8 +424,6 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter) + adapter->max_tx_desc_count, + (dma_addr_t *) & hw->cmd_desc_phys_addr, + &adapter->ahw.cmd_desc_pdev); +- printk(KERN_INFO "cmd_desc_phys_addr: 0x%llx\n", +- (unsigned long long) hw->cmd_desc_phys_addr); + + if (addr == NULL) { + DPRINTK(ERR, "bad return from pci_alloc_consistent\n"); +@@ -1032,15 +1025,15 @@ int netxen_nic_get_board_info(struct netxen_adapter *adapter) + int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu) + { + netxen_nic_write_w0(adapter, +- NETXEN_NIU_GB_MAX_FRAME_SIZE( +- physical_port[adapter->portnum]), new_mtu); ++ NETXEN_NIU_GB_MAX_FRAME_SIZE(adapter->physical_port), ++ new_mtu); + return 0; + } + + int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu) + { + new_mtu += NETXEN_NIU_HDRSIZE + NETXEN_NIU_TLRSIZE; +- if (physical_port[adapter->portnum] == 0) ++ if (adapter->physical_port == 0) + netxen_nic_write_w0(adapter, NETXEN_NIU_XGE_MAX_FRAME_SIZE, + new_mtu); + else +@@ -1051,7 +1044,7 @@ int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu) + + void netxen_nic_init_niu_gb(struct netxen_adapter *adapter) + { +- netxen_niu_gbe_init_port(adapter, physical_port[adapter->portnum]); ++ netxen_niu_gbe_init_port(adapter, adapter->physical_port); + } + + void +@@ -1127,7 +1120,6 @@ void netxen_nic_set_link_parameters(struct netxen_adapter *adapter) + + void netxen_nic_flash_print(struct netxen_adapter *adapter) + { +- int valid = 1; + u32 fw_major = 0; + u32 fw_minor = 0; + u32 fw_build = 0; +@@ -1137,70 +1129,62 @@ void netxen_nic_flash_print(struct netxen_adapter *adapter) + __le32 *ptr32; + + struct netxen_board_info *board_info = &(adapter->ahw.boardcfg); +- if (board_info->magic != NETXEN_BDINFO_MAGIC) { +- printk +- ("NetXen Unknown board config, Read 0x%x expected as 0x%x\n", +- board_info->magic, NETXEN_BDINFO_MAGIC); +- valid = 0; +- } +- if (board_info->header_version != NETXEN_BDINFO_VERSION) { +- printk("NetXen Unknown board config version." +- " Read %x, expected %x\n", +- board_info->header_version, NETXEN_BDINFO_VERSION); +- valid = 0; +- } +- if (valid) { +- ptr32 = (u32 *)&serial_num; +- addr = NETXEN_USER_START + +- offsetof(struct netxen_new_user_info, serial_num); +- for (i = 0; i < 8; i++) { +- if (netxen_rom_fast_read(adapter, addr, ptr32) == -1) { +- printk("%s: ERROR reading %s board userarea.\n", +- netxen_nic_driver_name, +- netxen_nic_driver_name); +- return; +- } +- ptr32++; +- addr += sizeof(u32); ++ ++ adapter->driver_mismatch = 0; ++ ++ ptr32 = (u32 *)&serial_num; ++ addr = NETXEN_USER_START + ++ offsetof(struct netxen_new_user_info, serial_num); ++ for (i = 0; i < 8; i++) { ++ if (netxen_rom_fast_read(adapter, addr, ptr32) == -1) { ++ printk("%s: ERROR reading %s board userarea.\n", ++ netxen_nic_driver_name, ++ netxen_nic_driver_name); ++ adapter->driver_mismatch = 1; ++ return; + } ++ ptr32++; ++ addr += sizeof(u32); ++ } ++ ++ fw_major = readl(NETXEN_CRB_NORMALIZE(adapter, ++ NETXEN_FW_VERSION_MAJOR)); ++ fw_minor = readl(NETXEN_CRB_NORMALIZE(adapter, ++ NETXEN_FW_VERSION_MINOR)); ++ fw_build = ++ readl(NETXEN_CRB_NORMALIZE(adapter, NETXEN_FW_VERSION_SUB)); + ++ if (adapter->portnum == 0) { + get_brd_name_by_type(board_info->board_type, brd_name); + + printk("NetXen %s Board S/N %s Chip id 0x%x\n", +- brd_name, serial_num, board_info->chip_id); +- +- printk("NetXen %s Board #%d, Chip id 0x%x\n", +- board_info->board_type == 0x0b ? "XGB" : "GBE", +- board_info->board_num, board_info->chip_id); +- fw_major = readl(NETXEN_CRB_NORMALIZE(adapter, +- NETXEN_FW_VERSION_MAJOR)); +- fw_minor = readl(NETXEN_CRB_NORMALIZE(adapter, +- NETXEN_FW_VERSION_MINOR)); +- fw_build = +- readl(NETXEN_CRB_NORMALIZE(adapter, NETXEN_FW_VERSION_SUB)); +- +- printk("NetXen Firmware version %d.%d.%d\n", fw_major, fw_minor, +- fw_build); ++ brd_name, serial_num, board_info->chip_id); ++ printk("NetXen Firmware version %d.%d.%d\n", fw_major, ++ fw_minor, fw_build); + } ++ + if (fw_major != _NETXEN_NIC_LINUX_MAJOR) { +- printk(KERN_ERR "The mismatch in driver version and firmware " +- "version major number\n" +- "Driver version major number = %d \t" +- "Firmware version major number = %d \n", +- _NETXEN_NIC_LINUX_MAJOR, fw_major); + adapter->driver_mismatch = 1; + } + if (fw_minor != _NETXEN_NIC_LINUX_MINOR && + fw_minor != (_NETXEN_NIC_LINUX_MINOR + 1)) { +- printk(KERN_ERR "The mismatch in driver version and firmware " +- "version minor number\n" +- "Driver version minor number = %d \t" +- "Firmware version minor number = %d \n", +- _NETXEN_NIC_LINUX_MINOR, fw_minor); + adapter->driver_mismatch = 1; + } +- if (adapter->driver_mismatch) +- printk(KERN_INFO "Use the driver with version no %d.%d.xxx\n", +- fw_major, fw_minor); ++ if (adapter->driver_mismatch) { ++ printk(KERN_ERR "%s: driver and firmware version mismatch\n", ++ adapter->netdev->name); ++ return; ++ } ++ ++ switch (adapter->ahw.board_type) { ++ case NETXEN_NIC_GBE: ++ dev_info(&adapter->pdev->dev, "%s: GbE port initialized\n", ++ adapter->netdev->name); ++ break; ++ case NETXEN_NIC_XGBE: ++ dev_info(&adapter->pdev->dev, "%s: XGbE port initialized\n", ++ adapter->netdev->name); ++ break; ++ } + } + +diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c +index 45fa33e..70d1b22 100644 +--- a/drivers/net/netxen/netxen_nic_init.c ++++ b/drivers/net/netxen/netxen_nic_init.c +@@ -203,21 +203,6 @@ void netxen_initialize_adapter_sw(struct netxen_adapter *adapter) + } + } + +-void netxen_initialize_adapter_hw(struct netxen_adapter *adapter) +-{ +- int ports = 0; +- struct netxen_board_info *board_info = &(adapter->ahw.boardcfg); +- +- if (netxen_nic_get_board_info(adapter) != 0) +- printk("%s: Error getting board config info.\n", +- netxen_nic_driver_name); +- get_brd_port_by_type(board_info->board_type, &ports); +- if (ports == 0) +- printk(KERN_ERR "%s: Unknown board type\n", +- netxen_nic_driver_name); +- adapter->ahw.max_ports = ports; +-} +- + void netxen_initialize_adapter_ops(struct netxen_adapter *adapter) + { + switch (adapter->ahw.board_type) { +@@ -765,18 +750,13 @@ int netxen_flash_unlock(struct netxen_adapter *adapter) + + int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) + { +- int addr, val, status; ++ int addr, val; + int n, i; + int init_delay = 0; + struct crb_addr_pair *buf; + u32 off; + + /* resetall */ +- status = netxen_nic_get_board_info(adapter); +- if (status) +- printk("%s: netxen_pinit_from_rom: Error getting board info\n", +- netxen_nic_driver_name); +- + netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET, + NETXEN_ROMBUS_RESET); + +@@ -860,10 +840,10 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) + netxen_nic_pci_change_crbwindow(adapter, 1); + } + if (init_delay == 1) { +- msleep(2000); ++ msleep(1000); + init_delay = 0; + } +- msleep(20); ++ msleep(1); + } + kfree(buf); + +@@ -938,12 +918,28 @@ int netxen_initialize_adapter_offload(struct netxen_adapter *adapter) + + void netxen_free_adapter_offload(struct netxen_adapter *adapter) + { ++ int i; ++ + if (adapter->dummy_dma.addr) { +- pci_free_consistent(adapter->ahw.pdev, ++ i = 100; ++ do { ++ if (dma_watchdog_shutdown_request(adapter) == 1) ++ break; ++ msleep(50); ++ if (dma_watchdog_shutdown_poll_result(adapter) == 1) ++ break; ++ } while (--i); ++ ++ if (i) { ++ pci_free_consistent(adapter->ahw.pdev, + NETXEN_HOST_DUMMY_DMA_SIZE, + adapter->dummy_dma.addr, + adapter->dummy_dma.phys_addr); +- adapter->dummy_dma.addr = NULL; ++ adapter->dummy_dma.addr = NULL; ++ } else { ++ printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n", ++ adapter->netdev->name); ++ } + } + } + +diff --git a/drivers/net/netxen/netxen_nic_isr.c b/drivers/net/netxen/netxen_nic_isr.c +index f487615..96cec41 100644 +--- a/drivers/net/netxen/netxen_nic_isr.c ++++ b/drivers/net/netxen/netxen_nic_isr.c +@@ -145,7 +145,7 @@ static void netxen_nic_isr_other(struct netxen_adapter *adapter) + + /* verify the offset */ + val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE)); +- val = val >> physical_port[adapter->portnum]; ++ val = val >> adapter->physical_port; + if (val == adapter->ahw.qg_linksup) + return; + +@@ -199,7 +199,7 @@ void netxen_nic_xgbe_handle_phy_intr(struct netxen_adapter *adapter) + + /* WINDOW = 1 */ + val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE)); +- val >>= (physical_port[adapter->portnum] * 8); ++ val >>= (adapter->physical_port * 8); + val &= 0xff; + + if (adapter->ahw.xg_linkup == 1 && val != XG_LINK_UP) { +diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c +index 7144c25..6797ed0 100644 +--- a/drivers/net/netxen/netxen_nic_main.c ++++ b/drivers/net/netxen/netxen_nic_main.c +@@ -70,17 +70,15 @@ static void netxen_nic_poll_controller(struct net_device *netdev); + static irqreturn_t netxen_intr(int irq, void *data); + static irqreturn_t netxen_msi_intr(int irq, void *data); + +-int physical_port[] = {0, 1, 2, 3}; +- + /* PCI Device ID Table */ + static struct pci_device_id netxen_pci_tbl[] __devinitdata = { +- {PCI_DEVICE(0x4040, 0x0001)}, +- {PCI_DEVICE(0x4040, 0x0002)}, +- {PCI_DEVICE(0x4040, 0x0003)}, +- {PCI_DEVICE(0x4040, 0x0004)}, +- {PCI_DEVICE(0x4040, 0x0005)}, +- {PCI_DEVICE(0x4040, 0x0024)}, +- {PCI_DEVICE(0x4040, 0x0025)}, ++ {PCI_DEVICE(0x4040, 0x0001), PCI_DEVICE_CLASS(0x020000, ~0)}, ++ {PCI_DEVICE(0x4040, 0x0002), PCI_DEVICE_CLASS(0x020000, ~0)}, ++ {PCI_DEVICE(0x4040, 0x0003), PCI_DEVICE_CLASS(0x020000, ~0)}, ++ {PCI_DEVICE(0x4040, 0x0004), PCI_DEVICE_CLASS(0x020000, ~0)}, ++ {PCI_DEVICE(0x4040, 0x0005), PCI_DEVICE_CLASS(0x020000, ~0)}, ++ {PCI_DEVICE(0x4040, 0x0024), PCI_DEVICE_CLASS(0x020000, ~0)}, ++ {PCI_DEVICE(0x4040, 0x0025), PCI_DEVICE_CLASS(0x020000, ~0)}, + {0,} + }; + +@@ -288,10 +286,11 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + int pci_func_id = PCI_FUNC(pdev->devfn); + DECLARE_MAC_BUF(mac); + +- printk(KERN_INFO "%s \n", netxen_nic_driver_string); ++ if (pci_func_id == 0) ++ printk(KERN_INFO "%s \n", netxen_nic_driver_string); + + if (pdev->class != 0x020000) { +- printk(KERN_ERR"NetXen function %d, class %x will not " ++ printk(KERN_DEBUG "NetXen function %d, class %x will not " + "be enabled.\n",pci_func_id, pdev->class); + return -ENODEV; + } +@@ -450,8 +449,12 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + */ + adapter->curr_window = 255; + +- /* initialize the adapter */ +- netxen_initialize_adapter_hw(adapter); ++ if (netxen_nic_get_board_info(adapter) != 0) { ++ printk("%s: Error getting board config info.\n", ++ netxen_nic_driver_name); ++ err = -EIO; ++ goto err_out_iounmap; ++ } + + /* + * Adapter in our case is quad port so initialize it before +@@ -530,17 +533,15 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + netxen_initialize_adapter_sw(adapter); /* initialize the buffers in adapter */ + + /* Mezz cards have PCI function 0,2,3 enabled */ +- if ((adapter->ahw.boardcfg.board_type == NETXEN_BRDTYPE_P2_SB31_10G_IMEZ) +- && (pci_func_id >= 2)) ++ switch (adapter->ahw.boardcfg.board_type) { ++ case NETXEN_BRDTYPE_P2_SB31_10G_IMEZ: ++ case NETXEN_BRDTYPE_P2_SB31_10G_HMEZ: ++ if (pci_func_id >= 2) + adapter->portnum = pci_func_id - 2; +- +-#ifdef CONFIG_IA64 +- if(adapter->portnum == 0) { +- netxen_pinit_from_rom(adapter, 0); +- udelay(500); +- netxen_load_firmware(adapter); ++ break; ++ default: ++ break; + } +-#endif + + init_timer(&adapter->watchdog_timer); + adapter->ahw.xg_linkup = 0; +@@ -613,11 +614,18 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + err = -ENODEV; + goto err_out_free_dev; + } ++ } else { ++ writel(0, NETXEN_CRB_NORMALIZE(adapter, ++ CRB_CMDPEG_STATE)); ++ netxen_pinit_from_rom(adapter, 0); ++ msleep(1); ++ netxen_load_firmware(adapter); ++ netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); + } + + /* clear the register for future unloads/loads */ + writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc))); +- printk(KERN_INFO "State: 0x%0x\n", ++ dev_info(&pdev->dev, "cmdpeg state: 0x%0x\n", + readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE))); + + /* +@@ -639,9 +647,10 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + /* + * See if the firmware gave us a virtual-physical port mapping. + */ ++ adapter->physical_port = adapter->portnum; + i = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_V2P(adapter->portnum))); + if (i != 0x55555555) +- physical_port[adapter->portnum] = i; ++ adapter->physical_port = i; + + netif_carrier_off(netdev); + netif_stop_queue(netdev); +@@ -654,22 +663,9 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + goto err_out_free_dev; + } + ++ netxen_nic_flash_print(adapter); + pci_set_drvdata(pdev, adapter); + +- switch (adapter->ahw.board_type) { +- case NETXEN_NIC_GBE: +- printk(KERN_INFO "%s: QUAD GbE board initialized\n", +- netxen_nic_driver_name); +- break; +- +- case NETXEN_NIC_XGBE: +- printk(KERN_INFO "%s: XGbE board initialized\n", +- netxen_nic_driver_name); +- break; +- } +- +- adapter->driver_mismatch = 0; +- + return 0; + + err_out_free_dev: +@@ -760,55 +756,8 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev) + + vfree(adapter->cmd_buf_arr); + +- if (adapter->portnum == 0) { +- if (init_firmware_done) { +- i = 100; +- do { +- if (dma_watchdog_shutdown_request(adapter) == 1) +- break; +- msleep(100); +- if (dma_watchdog_shutdown_poll_result(adapter) == 1) +- break; +- } while (--i); +- +- if (i == 0) +- printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n", +- netdev->name); +- +- /* clear the register for future unloads/loads */ +- writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc))); +- printk(KERN_INFO "State: 0x%0x\n", +- readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE))); +- +- /* leave the hw in the same state as reboot */ +- writel(0, NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); +- netxen_pinit_from_rom(adapter, 0); +- msleep(1); +- netxen_load_firmware(adapter); +- netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); +- } +- +- /* clear the register for future unloads/loads */ +- writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc))); +- printk(KERN_INFO "State: 0x%0x\n", +- readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE))); +- +- i = 100; +- do { +- if (dma_watchdog_shutdown_request(adapter) == 1) +- break; +- msleep(100); +- if (dma_watchdog_shutdown_poll_result(adapter) == 1) +- break; +- } while (--i); +- +- if (i) { +- netxen_free_adapter_offload(adapter); +- } else { +- printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n", +- netdev->name); +- } +- } ++ if (adapter->portnum == 0) ++ netxen_free_adapter_offload(adapter); + + if (adapter->irq) + free_irq(adapter->irq, adapter); +@@ -840,13 +789,15 @@ static int netxen_nic_open(struct net_device *netdev) + irq_handler_t handler; + unsigned long flags = IRQF_SAMPLE_RANDOM; + ++ if (adapter->driver_mismatch) ++ return -EIO; ++ + if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) { + err = netxen_init_firmware(adapter); + if (err != 0) { + printk(KERN_ERR "Failed to init firmware\n"); + return -EIO; + } +- netxen_nic_flash_print(adapter); + + /* setup all the resources for the Phantom... */ + /* this include the descriptors for rcv, tx, and status */ +@@ -895,14 +846,12 @@ static int netxen_nic_open(struct net_device *netdev) + if (adapter->set_mtu) + adapter->set_mtu(adapter, netdev->mtu); + +- if (!adapter->driver_mismatch) +- mod_timer(&adapter->watchdog_timer, jiffies); ++ mod_timer(&adapter->watchdog_timer, jiffies); + + napi_enable(&adapter->napi); + netxen_nic_enable_int(adapter); + +- if (!adapter->driver_mismatch) +- netif_start_queue(netdev); ++ netif_start_queue(netdev); + + return 0; + } +diff --git a/drivers/net/netxen/netxen_nic_niu.c b/drivers/net/netxen/netxen_nic_niu.c +index 1c852a7..a3bc7cc 100644 +--- a/drivers/net/netxen/netxen_nic_niu.c ++++ b/drivers/net/netxen/netxen_nic_niu.c +@@ -94,7 +94,7 @@ int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long reg, + long timeout = 0; + long result = 0; + long restore = 0; +- long phy = physical_port[adapter->portnum]; ++ long phy = adapter->physical_port; + __u32 address; + __u32 command; + __u32 status; +@@ -190,7 +190,7 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, long reg, + long timeout = 0; + long result = 0; + long restore = 0; +- long phy = physical_port[adapter->portnum]; ++ long phy = adapter->physical_port; + __u32 address; + __u32 command; + __u32 status; +@@ -456,7 +456,7 @@ int netxen_niu_gbe_init_port(struct netxen_adapter *adapter, int port) + + int netxen_niu_xg_init_port(struct netxen_adapter *adapter, int port) + { +- u32 portnum = physical_port[adapter->portnum]; ++ u32 portnum = adapter->physical_port; + + netxen_crb_writelit_adapter(adapter, + NETXEN_NIU_XGE_CONFIG_1+(0x10000*portnum), 0x1447); +@@ -573,7 +573,7 @@ static int netxen_niu_macaddr_get(struct netxen_adapter *adapter, + { + u32 stationhigh; + u32 stationlow; +- int phy = physical_port[adapter->portnum]; ++ int phy = adapter->physical_port; + u8 val[8]; + + if (addr == NULL) +@@ -604,7 +604,7 @@ int netxen_niu_macaddr_set(struct netxen_adapter *adapter, + { + u8 temp[4]; + u32 val; +- int phy = physical_port[adapter->portnum]; ++ int phy = adapter->physical_port; + unsigned char mac_addr[6]; + int i; + DECLARE_MAC_BUF(mac); +@@ -724,7 +724,7 @@ int netxen_niu_enable_gbe_port(struct netxen_adapter *adapter, + int netxen_niu_disable_gbe_port(struct netxen_adapter *adapter) + { + __u32 mac_cfg0; +- u32 port = physical_port[adapter->portnum]; ++ u32 port = adapter->physical_port; + + if (port > NETXEN_NIU_MAX_GBE_PORTS) + return -EINVAL; +@@ -740,7 +740,7 @@ int netxen_niu_disable_gbe_port(struct netxen_adapter *adapter) + int netxen_niu_disable_xg_port(struct netxen_adapter *adapter) + { + __u32 mac_cfg; +- u32 port = physical_port[adapter->portnum]; ++ u32 port = adapter->physical_port; + + if (port > NETXEN_NIU_MAX_XG_PORTS) + return -EINVAL; +@@ -757,7 +757,7 @@ int netxen_niu_set_promiscuous_mode(struct netxen_adapter *adapter, + netxen_niu_prom_mode_t mode) + { + __u32 reg; +- u32 port = physical_port[adapter->portnum]; ++ u32 port = adapter->physical_port; + + if (port > NETXEN_NIU_MAX_GBE_PORTS) + return -EINVAL; +@@ -814,7 +814,7 @@ int netxen_niu_set_promiscuous_mode(struct netxen_adapter *adapter, + int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter, + netxen_ethernet_macaddr_t addr) + { +- int phy = physical_port[adapter->portnum]; ++ int phy = adapter->physical_port; + u8 temp[4]; + u32 val; + +@@ -867,7 +867,7 @@ int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter, + int netxen_niu_xg_macaddr_get(struct netxen_adapter *adapter, + netxen_ethernet_macaddr_t * addr) + { +- int phy = physical_port[adapter->portnum]; ++ int phy = adapter->physical_port; + u32 stationhigh; + u32 stationlow; + u8 val[8]; +@@ -896,7 +896,7 @@ int netxen_niu_xg_set_promiscuous_mode(struct netxen_adapter *adapter, + netxen_niu_prom_mode_t mode) + { + __u32 reg; +- u32 port = physical_port[adapter->portnum]; ++ u32 port = adapter->physical_port; + + if (port > NETXEN_NIU_MAX_XG_PORTS) + return -EINVAL; +diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c +index 169edc1..858b191 100644 +--- a/drivers/net/r6040.c ++++ b/drivers/net/r6040.c +@@ -733,7 +733,7 @@ static void r6040_timer(unsigned long data) + } + + /* Timer active again */ +- mod_timer(&lp->timer, jiffies + round_jiffies(HZ)); ++ mod_timer(&lp->timer, round_jiffies(jiffies + HZ)); + } + + /* Read/set MAC address routines */ +diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c +index 62436b3..c8a5ef2 100644 +--- a/drivers/net/sky2.c ++++ b/drivers/net/sky2.c +@@ -118,6 +118,7 @@ static const struct pci_device_id sky2_id_table[] = { + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, /* 88E8038 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, /* 88E8039 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4354) }, /* 88E8040 */ ++ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4355) }, /* 88E8040T */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4356) }, /* 88EC033 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4357) }, /* 88E8042 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x435A) }, /* 88E8048 */ +diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c +index 4e28002..e2ee91a 100644 +--- a/drivers/net/smc911x.c ++++ b/drivers/net/smc911x.c +@@ -136,7 +136,6 @@ struct smc911x_local { + + /* work queue */ + struct work_struct phy_configure; +- int work_pending; + + int tx_throttle; + spinlock_t lock; +@@ -960,11 +959,11 @@ static void smc911x_phy_configure(struct work_struct *work) + * We should not be called if phy_type is zero. + */ + if (lp->phy_type == 0) +- goto smc911x_phy_configure_exit_nolock; ++ return; + + if (smc911x_phy_reset(dev, phyaddr)) { + printk("%s: PHY reset timed out\n", dev->name); +- goto smc911x_phy_configure_exit_nolock; ++ return; + } + spin_lock_irqsave(&lp->lock, flags); + +@@ -1033,8 +1032,6 @@ static void smc911x_phy_configure(struct work_struct *work) + + smc911x_phy_configure_exit: + spin_unlock_irqrestore(&lp->lock, flags); +-smc911x_phy_configure_exit_nolock: +- lp->work_pending = 0; + } + + /* +@@ -1356,11 +1353,8 @@ static void smc911x_timeout(struct net_device *dev) + * smc911x_phy_configure() calls msleep() which calls schedule_timeout() + * which calls schedule(). Hence we use a work queue. + */ +- if (lp->phy_type != 0) { +- if (schedule_work(&lp->phy_configure)) { +- lp->work_pending = 1; +- } +- } ++ if (lp->phy_type != 0) ++ schedule_work(&lp->phy_configure); + + /* We can accept TX packets again */ + dev->trans_start = jiffies; +@@ -1531,16 +1525,8 @@ static int smc911x_close(struct net_device *dev) + if (lp->phy_type != 0) { + /* We need to ensure that no calls to + * smc911x_phy_configure are pending. +- +- * flush_scheduled_work() cannot be called because we +- * are running with the netlink semaphore held (from +- * devinet_ioctl()) and the pending work queue +- * contains linkwatch_event() (scheduled by +- * netif_carrier_off() above). linkwatch_event() also +- * wants the netlink semaphore. + */ +- while (lp->work_pending) +- schedule(); ++ cancel_work_sync(&lp->phy_configure); + smc911x_phy_powerdown(dev, lp->mii.phy_id); + } + +diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c +index a188e33..f2051b2 100644 +--- a/drivers/net/smc91x.c ++++ b/drivers/net/smc91x.c +@@ -1016,15 +1016,8 @@ static void smc_phy_powerdown(struct net_device *dev) + + /* We need to ensure that no calls to smc_phy_configure are + pending. +- +- flush_scheduled_work() cannot be called because we are +- running with the netlink semaphore held (from +- devinet_ioctl()) and the pending work queue contains +- linkwatch_event() (scheduled by netif_carrier_off() +- above). linkwatch_event() also wants the netlink semaphore. + */ +- while(lp->work_pending) +- yield(); ++ cancel_work_sync(&lp->phy_configure); + + bmcr = smc_phy_read(dev, phy, MII_BMCR); + smc_phy_write(dev, phy, MII_BMCR, bmcr | BMCR_PDOWN); +@@ -1161,7 +1154,6 @@ static void smc_phy_configure(struct work_struct *work) + smc_phy_configure_exit: + SMC_SELECT_BANK(lp, 2); + spin_unlock_irq(&lp->lock); +- lp->work_pending = 0; + } + + /* +@@ -1389,11 +1381,8 @@ static void smc_timeout(struct net_device *dev) + * smc_phy_configure() calls msleep() which calls schedule_timeout() + * which calls schedule(). Hence we use a work queue. + */ +- if (lp->phy_type != 0) { +- if (schedule_work(&lp->phy_configure)) { +- lp->work_pending = 1; +- } +- } ++ if (lp->phy_type != 0) ++ schedule_work(&lp->phy_configure); + + /* We can accept TX packets again */ + dev->trans_start = jiffies; +diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c +index 55670b5..af8d2c4 100644 +--- a/drivers/net/tulip/tulip_core.c ++++ b/drivers/net/tulip/tulip_core.c +@@ -731,7 +731,7 @@ static void tulip_down (struct net_device *dev) + void __iomem *ioaddr = tp->base_addr; + unsigned long flags; + +- flush_scheduled_work(); ++ cancel_work_sync(&tp->media_work); + + #ifdef CONFIG_TULIP_NAPI + napi_disable(&tp->napi); +diff --git a/drivers/net/tun.c b/drivers/net/tun.c +index 0ce07a3..7ab94c8 100644 +--- a/drivers/net/tun.c ++++ b/drivers/net/tun.c +@@ -313,6 +313,21 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv, + + switch (tun->flags & TUN_TYPE_MASK) { + case TUN_TUN_DEV: ++ if (tun->flags & TUN_NO_PI) { ++ switch (skb->data[0] & 0xf0) { ++ case 0x40: ++ pi.proto = htons(ETH_P_IP); ++ break; ++ case 0x60: ++ pi.proto = htons(ETH_P_IPV6); ++ break; ++ default: ++ tun->dev->stats.rx_dropped++; ++ kfree_skb(skb); ++ return -EINVAL; ++ } ++ } ++ + skb_reset_mac_header(skb); + skb->protocol = pi.proto; + skb->dev = tun->dev; +diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c +index 0dcfc03..7c66b05 100644 +--- a/drivers/net/usb/kaweth.c ++++ b/drivers/net/usb/kaweth.c +@@ -706,7 +706,7 @@ static void kaweth_kill_urbs(struct kaweth_device *kaweth) + usb_kill_urb(kaweth->rx_urb); + usb_kill_urb(kaweth->tx_urb); + +- flush_scheduled_work(); ++ cancel_delayed_work_sync(&kaweth->lowmem_work); + + /* a scheduled work may have resubmitted, + we hit them again */ +diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h +index dfa4bdd..d3db298 100644 +--- a/drivers/net/wireless/b43/b43.h ++++ b/drivers/net/wireless/b43/b43.h +@@ -630,7 +630,6 @@ struct b43_pio { + + /* Context information for a noise calculation (Link Quality). */ + struct b43_noise_calculation { +- u8 channel_at_start; + bool calculation_running; + u8 nr_samples; + s8 samples[8][4]; +diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c +index 6dcbb3c..e23f2f1 100644 +--- a/drivers/net/wireless/b43/dma.c ++++ b/drivers/net/wireless/b43/dma.c +@@ -795,24 +795,49 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev, + { + struct b43_dmaring *ring; + int err; +- int nr_slots; + dma_addr_t dma_test; + + ring = kzalloc(sizeof(*ring), GFP_KERNEL); + if (!ring) + goto out; +- ring->type = type; + +- nr_slots = B43_RXRING_SLOTS; ++ ring->nr_slots = B43_RXRING_SLOTS; + if (for_tx) +- nr_slots = B43_TXRING_SLOTS; ++ ring->nr_slots = B43_TXRING_SLOTS; + +- ring->meta = kcalloc(nr_slots, sizeof(struct b43_dmadesc_meta), ++ ring->meta = kcalloc(ring->nr_slots, sizeof(struct b43_dmadesc_meta), + GFP_KERNEL); + if (!ring->meta) + goto err_kfree_ring; ++ ++ ring->type = type; ++ ring->dev = dev; ++ ring->mmio_base = b43_dmacontroller_base(type, controller_index); ++ ring->index = controller_index; ++ if (type == B43_DMA_64BIT) ++ ring->ops = &dma64_ops; ++ else ++ ring->ops = &dma32_ops; + if (for_tx) { +- ring->txhdr_cache = kcalloc(nr_slots, ++ ring->tx = 1; ++ ring->current_slot = -1; ++ } else { ++ if (ring->index == 0) { ++ ring->rx_buffersize = B43_DMA0_RX_BUFFERSIZE; ++ ring->frameoffset = B43_DMA0_RX_FRAMEOFFSET; ++ } else if (ring->index == 3) { ++ ring->rx_buffersize = B43_DMA3_RX_BUFFERSIZE; ++ ring->frameoffset = B43_DMA3_RX_FRAMEOFFSET; ++ } else ++ B43_WARN_ON(1); ++ } ++ spin_lock_init(&ring->lock); ++#ifdef CONFIG_B43_DEBUG ++ ring->last_injected_overflow = jiffies; ++#endif ++ ++ if (for_tx) { ++ ring->txhdr_cache = kcalloc(ring->nr_slots, + b43_txhdr_size(dev), + GFP_KERNEL); + if (!ring->txhdr_cache) +@@ -828,7 +853,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev, + b43_txhdr_size(dev), 1)) { + /* ugh realloc */ + kfree(ring->txhdr_cache); +- ring->txhdr_cache = kcalloc(nr_slots, ++ ring->txhdr_cache = kcalloc(ring->nr_slots, + b43_txhdr_size(dev), + GFP_KERNEL | GFP_DMA); + if (!ring->txhdr_cache) +@@ -853,32 +878,6 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev, + DMA_TO_DEVICE); + } + +- ring->dev = dev; +- ring->nr_slots = nr_slots; +- ring->mmio_base = b43_dmacontroller_base(type, controller_index); +- ring->index = controller_index; +- if (type == B43_DMA_64BIT) +- ring->ops = &dma64_ops; +- else +- ring->ops = &dma32_ops; +- if (for_tx) { +- ring->tx = 1; +- ring->current_slot = -1; +- } else { +- if (ring->index == 0) { +- ring->rx_buffersize = B43_DMA0_RX_BUFFERSIZE; +- ring->frameoffset = B43_DMA0_RX_FRAMEOFFSET; +- } else if (ring->index == 3) { +- ring->rx_buffersize = B43_DMA3_RX_BUFFERSIZE; +- ring->frameoffset = B43_DMA3_RX_FRAMEOFFSET; +- } else +- B43_WARN_ON(1); +- } +- spin_lock_init(&ring->lock); +-#ifdef CONFIG_B43_DEBUG +- ring->last_injected_overflow = jiffies; +-#endif +- + err = alloc_ringmemory(ring); + if (err) + goto err_kfree_txhdr_cache; +diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c +index 6c3d9ea..fa4b0d8 100644 +--- a/drivers/net/wireless/b43/main.c ++++ b/drivers/net/wireless/b43/main.c +@@ -1145,7 +1145,6 @@ static void b43_generate_noise_sample(struct b43_wldev *dev) + b43_jssi_write(dev, 0x7F7F7F7F); + b43_write32(dev, B43_MMIO_MACCMD, + b43_read32(dev, B43_MMIO_MACCMD) | B43_MACCMD_BGNOISE); +- B43_WARN_ON(dev->noisecalc.channel_at_start != dev->phy.channel); + } + + static void b43_calculate_link_quality(struct b43_wldev *dev) +@@ -1154,7 +1153,6 @@ static void b43_calculate_link_quality(struct b43_wldev *dev) + + if (dev->noisecalc.calculation_running) + return; +- dev->noisecalc.channel_at_start = dev->phy.channel; + dev->noisecalc.calculation_running = 1; + dev->noisecalc.nr_samples = 0; + +@@ -1171,9 +1169,16 @@ static void handle_irq_noise(struct b43_wldev *dev) + + /* Bottom half of Link Quality calculation. */ + ++ /* Possible race condition: It might be possible that the user ++ * changed to a different channel in the meantime since we ++ * started the calculation. We ignore that fact, since it's ++ * not really that much of a problem. The background noise is ++ * an estimation only anyway. Slightly wrong results will get damped ++ * by the averaging of the 8 sample rounds. Additionally the ++ * value is shortlived. So it will be replaced by the next noise ++ * calculation round soon. */ ++ + B43_WARN_ON(!dev->noisecalc.calculation_running); +- if (dev->noisecalc.channel_at_start != phy->channel) +- goto drop_calculation; + *((__le32 *)noise) = cpu_to_le32(b43_jssi_read(dev)); + if (noise[0] == 0x7F || noise[1] == 0x7F || + noise[2] == 0x7F || noise[3] == 0x7F) +@@ -1214,11 +1219,10 @@ static void handle_irq_noise(struct b43_wldev *dev) + average -= 48; + + dev->stats.link_noise = average; +- drop_calculation: + dev->noisecalc.calculation_running = 0; + return; + } +- generate_new: ++generate_new: + b43_generate_noise_sample(dev); + } + +diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c +index 20d387f..f7aec93 100644 +--- a/drivers/net/wireless/hostap/hostap_main.c ++++ b/drivers/net/wireless/hostap/hostap_main.c +@@ -682,7 +682,13 @@ static int prism2_close(struct net_device *dev) + netif_device_detach(dev); + } + +- flush_scheduled_work(); ++ cancel_work_sync(&local->reset_queue); ++ cancel_work_sync(&local->set_multicast_list_queue); ++ cancel_work_sync(&local->set_tim_queue); ++#ifndef PRISM2_NO_STATION_MODES ++ cancel_work_sync(&local->info_queue); ++#endif ++ cancel_work_sync(&local->comms_qual_update); + + module_put(local->hw_module); + +diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig +index ab1029e..2d61187 100644 +--- a/drivers/net/wireless/rt2x00/Kconfig ++++ b/drivers/net/wireless/rt2x00/Kconfig +@@ -32,12 +32,13 @@ config RT2X00_LIB_FIRMWARE + config RT2X00_LIB_RFKILL + boolean + depends on RT2X00_LIB ++ depends on INPUT + select RFKILL + select INPUT_POLLDEV + + config RT2X00_LIB_LEDS + boolean +- depends on RT2X00_LIB ++ depends on RT2X00_LIB && NEW_LEDS + + config RT2400PCI + tristate "Ralink rt2400 pci/pcmcia support" +@@ -51,7 +52,7 @@ config RT2400PCI + + config RT2400PCI_RFKILL + bool "RT2400 rfkill support" +- depends on RT2400PCI ++ depends on RT2400PCI && INPUT + select RT2X00_LIB_RFKILL + ---help--- + This adds support for integrated rt2400 devices that feature a +@@ -60,7 +61,7 @@ config RT2400PCI_RFKILL + + config RT2400PCI_LEDS + bool "RT2400 leds support" +- depends on RT2400PCI ++ depends on RT2400PCI && NEW_LEDS + select LEDS_CLASS + select RT2X00_LIB_LEDS + ---help--- +@@ -78,7 +79,7 @@ config RT2500PCI + + config RT2500PCI_RFKILL + bool "RT2500 rfkill support" +- depends on RT2500PCI ++ depends on RT2500PCI && INPUT + select RT2X00_LIB_RFKILL + ---help--- + This adds support for integrated rt2500 devices that feature a +@@ -87,7 +88,7 @@ config RT2500PCI_RFKILL + + config RT2500PCI_LEDS + bool "RT2500 leds support" +- depends on RT2500PCI ++ depends on RT2500PCI && NEW_LEDS + select LEDS_CLASS + select RT2X00_LIB_LEDS + ---help--- +@@ -107,7 +108,7 @@ config RT61PCI + + config RT61PCI_RFKILL + bool "RT61 rfkill support" +- depends on RT61PCI ++ depends on RT61PCI && INPUT + select RT2X00_LIB_RFKILL + ---help--- + This adds support for integrated rt61 devices that feature a +@@ -116,7 +117,7 @@ config RT61PCI_RFKILL + + config RT61PCI_LEDS + bool "RT61 leds support" +- depends on RT61PCI ++ depends on RT61PCI && NEW_LEDS + select LEDS_CLASS + select RT2X00_LIB_LEDS + ---help--- +@@ -133,7 +134,7 @@ config RT2500USB + + config RT2500USB_LEDS + bool "RT2500 leds support" +- depends on RT2500USB ++ depends on RT2500USB && NEW_LEDS + select LEDS_CLASS + select RT2X00_LIB_LEDS + ---help--- +@@ -152,7 +153,7 @@ config RT73USB + + config RT73USB_LEDS + bool "RT73 leds support" +- depends on RT73USB ++ depends on RT73USB && NEW_LEDS + select LEDS_CLASS + select RT2X00_LIB_LEDS + ---help--- +diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c +index 971af25..60893de 100644 +--- a/drivers/net/wireless/rt2x00/rt2x00pci.c ++++ b/drivers/net/wireless/rt2x00/rt2x00pci.c +@@ -412,8 +412,7 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) + if (pci_set_mwi(pci_dev)) + ERROR_PROBE("MWI not available.\n"); + +- if (pci_set_dma_mask(pci_dev, DMA_64BIT_MASK) && +- pci_set_dma_mask(pci_dev, DMA_32BIT_MASK)) { ++ if (pci_set_dma_mask(pci_dev, DMA_32BIT_MASK)) { + ERROR_PROBE("PCI DMA not supported.\n"); + retval = -EIO; + goto exit_disable_device; +diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c +index 5a33167..e5ceae8 100644 +--- a/drivers/net/wireless/rt2x00/rt2x00usb.c ++++ b/drivers/net/wireless/rt2x00/rt2x00usb.c +@@ -362,6 +362,12 @@ void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev) + } + } + ++ /* ++ * Kill guardian urb (if required by driver). ++ */ ++ if (!test_bit(DRIVER_REQUIRE_BEACON_GUARD, &rt2x00dev->flags)) ++ return; ++ + for (i = 0; i < rt2x00dev->bcn->limit; i++) { + priv_bcn = rt2x00dev->bcn->entries[i].priv_data; + usb_kill_urb(priv_bcn->urb); +diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c +index da19a3a..fff8386 100644 +--- a/drivers/net/wireless/rt2x00/rt73usb.c ++++ b/drivers/net/wireless/rt2x00/rt73usb.c +@@ -2131,6 +2131,7 @@ static struct usb_device_id rt73usb_device_table[] = { + /* D-Link */ + { USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) }, + { USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) }, ++ { USB_DEVICE(0x07d1, 0x3c06), USB_DEVICE_DATA(&rt73usb_ops) }, + { USB_DEVICE(0x07d1, 0x3c07), USB_DEVICE_DATA(&rt73usb_ops) }, + /* Gemtek */ + { USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) }, +diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c +index 72cf61e..e1637bd 100644 +--- a/drivers/pci/pci-driver.c ++++ b/drivers/pci/pci-driver.c +@@ -181,7 +181,7 @@ static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev, + any need to change it. */ + struct mempolicy *oldpol; + cpumask_t oldmask = current->cpus_allowed; +- int node = pcibus_to_node(dev->bus); ++ int node = dev_to_node(&dev->dev); + + if (node >= 0) { + node_to_cpumask_ptr(nodecpumask, node); +diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c +index 271d41c..6f3c744 100644 +--- a/drivers/pci/pci-sysfs.c ++++ b/drivers/pci/pci-sysfs.c +@@ -489,13 +489,13 @@ pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr, + * @kobj: kobject for mapping + * @attr: struct bin_attribute for the file being mapped + * @vma: struct vm_area_struct passed into the mmap ++ * @write_combine: 1 for write_combine mapping + * + * Use the regular PCI mapping routines to map a PCI resource into userspace. +- * FIXME: write combining? maybe automatic for prefetchable regions? + */ + static int + pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, +- struct vm_area_struct *vma) ++ struct vm_area_struct *vma, int write_combine) + { + struct pci_dev *pdev = to_pci_dev(container_of(kobj, + struct device, kobj)); +@@ -518,7 +518,21 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, + vma->vm_pgoff += start >> PAGE_SHIFT; + mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io; + +- return pci_mmap_page_range(pdev, vma, mmap_type, 0); ++ return pci_mmap_page_range(pdev, vma, mmap_type, write_combine); ++} ++ ++static int ++pci_mmap_resource_uc(struct kobject *kobj, struct bin_attribute *attr, ++ struct vm_area_struct *vma) ++{ ++ return pci_mmap_resource(kobj, attr, vma, 0); ++} ++ ++static int ++pci_mmap_resource_wc(struct kobject *kobj, struct bin_attribute *attr, ++ struct vm_area_struct *vma) ++{ ++ return pci_mmap_resource(kobj, attr, vma, 1); + } + + /** +@@ -541,9 +555,46 @@ pci_remove_resource_files(struct pci_dev *pdev) + sysfs_remove_bin_file(&pdev->dev.kobj, res_attr); + kfree(res_attr); + } ++ ++ res_attr = pdev->res_attr_wc[i]; ++ if (res_attr) { ++ sysfs_remove_bin_file(&pdev->dev.kobj, res_attr); ++ kfree(res_attr); ++ } + } + } + ++static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine) ++{ ++ /* allocate attribute structure, piggyback attribute name */ ++ int name_len = write_combine ? 13 : 10; ++ struct bin_attribute *res_attr; ++ int retval; ++ ++ res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC); ++ if (res_attr) { ++ char *res_attr_name = (char *)(res_attr + 1); ++ ++ if (write_combine) { ++ pdev->res_attr_wc[num] = res_attr; ++ sprintf(res_attr_name, "resource%d_wc", num); ++ res_attr->mmap = pci_mmap_resource_wc; ++ } else { ++ pdev->res_attr[num] = res_attr; ++ sprintf(res_attr_name, "resource%d", num); ++ res_attr->mmap = pci_mmap_resource_uc; ++ } ++ res_attr->attr.name = res_attr_name; ++ res_attr->attr.mode = S_IRUSR | S_IWUSR; ++ res_attr->size = pci_resource_len(pdev, num); ++ res_attr->private = &pdev->resource[num]; ++ retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr); ++ } else ++ retval = -ENOMEM; ++ ++ return retval; ++} ++ + /** + * pci_create_resource_files - create resource files in sysfs for @dev + * @dev: dev in question +@@ -557,31 +608,19 @@ static int pci_create_resource_files(struct pci_dev *pdev) + + /* Expose the PCI resources from this device as files */ + for (i = 0; i < PCI_ROM_RESOURCE; i++) { +- struct bin_attribute *res_attr; + + /* skip empty resources */ + if (!pci_resource_len(pdev, i)) + continue; + +- /* allocate attribute structure, piggyback attribute name */ +- res_attr = kzalloc(sizeof(*res_attr) + 10, GFP_ATOMIC); +- if (res_attr) { +- char *res_attr_name = (char *)(res_attr + 1); +- +- pdev->res_attr[i] = res_attr; +- sprintf(res_attr_name, "resource%d", i); +- res_attr->attr.name = res_attr_name; +- res_attr->attr.mode = S_IRUSR | S_IWUSR; +- res_attr->size = pci_resource_len(pdev, i); +- res_attr->mmap = pci_mmap_resource; +- res_attr->private = &pdev->resource[i]; +- retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr); +- if (retval) { +- pci_remove_resource_files(pdev); +- return retval; +- } +- } else { +- return -ENOMEM; ++ retval = pci_create_attr(pdev, i, 0); ++ /* for prefetchable resources, create a WC mappable file */ ++ if (!retval && pdev->resource[i].flags & IORESOURCE_PREFETCH) ++ retval = pci_create_attr(pdev, i, 1); ++ ++ if (retval) { ++ pci_remove_resource_files(pdev); ++ return retval; + } + } + return 0; +diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig +index 60f8afc..4949dc4 100644 +--- a/drivers/rtc/Kconfig ++++ b/drivers/rtc/Kconfig +@@ -256,6 +256,17 @@ config RTC_DRV_S35390A + This driver can also be built as a module. If so the module + will be called rtc-s35390a. + ++config RTC_DRV_FM3130 ++ tristate "Ramtron FM3130" ++ help ++ If you say Y here you will get support for the ++ Ramtron FM3130 RTC chips. ++ Ramtron FM3130 is a chip with two separate devices inside, ++ RTC clock and FRAM. This driver provides only RTC functionality. ++ ++ This driver can also be built as a module. If so the module ++ will be called rtc-fm3130. ++ + endif # I2C + + comment "SPI RTC drivers" +diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile +index ebe871c..b6e14d5 100644 +--- a/drivers/rtc/Makefile ++++ b/drivers/rtc/Makefile +@@ -31,6 +31,7 @@ obj-$(CONFIG_RTC_DRV_DS1553) += rtc-ds1553.o + obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o + obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds1742.o + obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o ++obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o + obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o + obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o + obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o +@@ -41,6 +42,7 @@ obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o + obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o + obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o + obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o ++obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o + obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o + obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o + obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o +@@ -54,4 +56,3 @@ obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o + obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o + obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o + obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o +-obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o +diff --git a/drivers/rtc/rtc-at32ap700x.c b/drivers/rtc/rtc-at32ap700x.c +index 42244f1..2ef8cdf 100644 +--- a/drivers/rtc/rtc-at32ap700x.c ++++ b/drivers/rtc/rtc-at32ap700x.c +@@ -94,8 +94,11 @@ static int at32_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm) + { + struct rtc_at32ap700x *rtc = dev_get_drvdata(dev); + ++ spin_lock_irq(&rtc->lock); + rtc_time_to_tm(rtc->alarm_time, &alrm->time); +- alrm->pending = rtc_readl(rtc, IMR) & RTC_BIT(IMR_TOPI) ? 1 : 0; ++ alrm->enabled = rtc_readl(rtc, IMR) & RTC_BIT(IMR_TOPI) ? 1 : 0; ++ alrm->pending = rtc_readl(rtc, ISR) & RTC_BIT(ISR_TOPI) ? 1 : 0; ++ spin_unlock_irq(&rtc->lock); + + return 0; + } +@@ -119,7 +122,7 @@ static int at32_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm) + spin_lock_irq(&rtc->lock); + rtc->alarm_time = alarm_unix_time; + rtc_writel(rtc, TOP, rtc->alarm_time); +- if (alrm->pending) ++ if (alrm->enabled) + rtc_writel(rtc, CTRL, rtc_readl(rtc, CTRL) + | RTC_BIT(CTRL_TOPEN)); + else +diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c +index d060a06..d7bb9ba 100644 +--- a/drivers/rtc/rtc-cmos.c ++++ b/drivers/rtc/rtc-cmos.c +@@ -905,19 +905,7 @@ static struct pnp_driver cmos_pnp_driver = { + .resume = cmos_pnp_resume, + }; + +-static int __init cmos_init(void) +-{ +- return pnp_register_driver(&cmos_pnp_driver); +-} +-module_init(cmos_init); +- +-static void __exit cmos_exit(void) +-{ +- pnp_unregister_driver(&cmos_pnp_driver); +-} +-module_exit(cmos_exit); +- +-#else /* no PNP */ ++#endif /* CONFIG_PNP */ + + /*----------------------------------------------------------------*/ + +@@ -958,20 +946,33 @@ static struct platform_driver cmos_platform_driver = { + + static int __init cmos_init(void) + { ++#ifdef CONFIG_PNP ++ if (pnp_platform_devices) ++ return pnp_register_driver(&cmos_pnp_driver); ++ else ++ return platform_driver_probe(&cmos_platform_driver, ++ cmos_platform_probe); ++#else + return platform_driver_probe(&cmos_platform_driver, + cmos_platform_probe); ++#endif /* CONFIG_PNP */ + } + module_init(cmos_init); + + static void __exit cmos_exit(void) + { ++#ifdef CONFIG_PNP ++ if (pnp_platform_devices) ++ pnp_unregister_driver(&cmos_pnp_driver); ++ else ++ platform_driver_unregister(&cmos_platform_driver); ++#else + platform_driver_unregister(&cmos_platform_driver); ++#endif /* CONFIG_PNP */ + } + module_exit(cmos_exit); + + +-#endif /* !PNP */ +- + MODULE_AUTHOR("David Brownell"); + MODULE_DESCRIPTION("Driver for PC-style 'CMOS' RTCs"); + MODULE_LICENSE("GPL"); +diff --git a/drivers/rtc/rtc-fm3130.c b/drivers/rtc/rtc-fm3130.c +new file mode 100644 +index 0000000..11644c8 +--- /dev/null ++++ b/drivers/rtc/rtc-fm3130.c +@@ -0,0 +1,501 @@ ++/* ++ * rtc-fm3130.c - RTC driver for Ramtron FM3130 I2C chip. ++ * ++ * Copyright (C) 2008 Sergey Lapin ++ * Based on ds1307 driver by James Chapman and David Brownell ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#define FM3130_RTC_CONTROL (0x0) ++#define FM3130_CAL_CONTROL (0x1) ++#define FM3130_RTC_SECONDS (0x2) ++#define FM3130_RTC_MINUTES (0x3) ++#define FM3130_RTC_HOURS (0x4) ++#define FM3130_RTC_DAY (0x5) ++#define FM3130_RTC_DATE (0x6) ++#define FM3130_RTC_MONTHS (0x7) ++#define FM3130_RTC_YEARS (0x8) ++ ++#define FM3130_ALARM_SECONDS (0x9) ++#define FM3130_ALARM_MINUTES (0xa) ++#define FM3130_ALARM_HOURS (0xb) ++#define FM3130_ALARM_DATE (0xc) ++#define FM3130_ALARM_MONTHS (0xd) ++#define FM3130_ALARM_WP_CONTROL (0xe) ++ ++#define FM3130_CAL_CONTROL_BIT_nOSCEN (1 << 7) /* Osciallator enabled */ ++#define FM3130_RTC_CONTROL_BIT_LB (1 << 7) /* Low battery */ ++#define FM3130_RTC_CONTROL_BIT_AF (1 << 6) /* Alarm flag */ ++#define FM3130_RTC_CONTROL_BIT_CF (1 << 5) /* Century overflow */ ++#define FM3130_RTC_CONTROL_BIT_POR (1 << 4) /* Power on reset */ ++#define FM3130_RTC_CONTROL_BIT_AEN (1 << 3) /* Alarm enable */ ++#define FM3130_RTC_CONTROL_BIT_CAL (1 << 2) /* Calibration mode */ ++#define FM3130_RTC_CONTROL_BIT_WRITE (1 << 1) /* W=1 -> write mode W=0 normal */ ++#define FM3130_RTC_CONTROL_BIT_READ (1 << 0) /* R=1 -> read mode R=0 normal */ ++ ++#define FM3130_CLOCK_REGS 7 ++#define FM3130_ALARM_REGS 5 ++ ++struct fm3130 { ++ u8 reg_addr_time; ++ u8 reg_addr_alarm; ++ u8 regs[15]; ++ struct i2c_msg msg[4]; ++ struct i2c_client *client; ++ struct rtc_device *rtc; ++ int data_valid; ++ int alarm; ++}; ++static const struct i2c_device_id fm3130_id[] = { ++ { "fm3130-rtc", 0 }, ++ { } ++}; ++MODULE_DEVICE_TABLE(i2c, fm3130_id); ++ ++#define FM3130_MODE_NORMAL 0 ++#define FM3130_MODE_WRITE 1 ++#define FM3130_MODE_READ 2 ++ ++static void fm3130_rtc_mode(struct device *dev, int mode) ++{ ++ struct fm3130 *fm3130 = dev_get_drvdata(dev); ++ ++ fm3130->regs[FM3130_RTC_CONTROL] = ++ i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL); ++ switch (mode) { ++ case FM3130_MODE_NORMAL: ++ fm3130->regs[FM3130_RTC_CONTROL] &= ++ ~(FM3130_RTC_CONTROL_BIT_WRITE | ++ FM3130_RTC_CONTROL_BIT_READ); ++ break; ++ case FM3130_MODE_WRITE: ++ fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_WRITE; ++ break; ++ case FM3130_MODE_READ: ++ fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_READ; ++ break; ++ default: ++ dev_dbg(dev, "invalid mode %d\n", mode); ++ break; ++ } ++ /* Checking for alarm */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) { ++ fm3130->alarm = 1; ++ fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF; ++ } ++ i2c_smbus_write_byte_data(fm3130->client, ++ FM3130_RTC_CONTROL, fm3130->regs[FM3130_RTC_CONTROL]); ++} ++ ++static int fm3130_get_time(struct device *dev, struct rtc_time *t) ++{ ++ struct fm3130 *fm3130 = dev_get_drvdata(dev); ++ int tmp; ++ ++ if (!fm3130->data_valid) { ++ /* We have invalid data in RTC, probably due ++ to battery faults or other problems. Return EIO ++ for now, it will allow us to set data later insted ++ of error during probing which disables device */ ++ return -EIO; ++ } ++ fm3130_rtc_mode(dev, FM3130_MODE_READ); ++ ++ /* read the RTC date and time registers all at once */ ++ tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent), ++ fm3130->msg, 2); ++ if (tmp != 2) { ++ dev_err(dev, "%s error %d\n", "read", tmp); ++ return -EIO; ++ } ++ ++ fm3130_rtc_mode(dev, FM3130_MODE_NORMAL); ++ ++ dev_dbg(dev, "%s: %02x %02x %02x %02x %02x %02x %02x %02x" ++ "%02x %02x %02x %02x %02x %02x %02x\n", ++ "read", ++ fm3130->regs[0], fm3130->regs[1], ++ fm3130->regs[2], fm3130->regs[3], ++ fm3130->regs[4], fm3130->regs[5], ++ fm3130->regs[6], fm3130->regs[7], ++ fm3130->regs[8], fm3130->regs[9], ++ fm3130->regs[0xa], fm3130->regs[0xb], ++ fm3130->regs[0xc], fm3130->regs[0xd], ++ fm3130->regs[0xe]); ++ ++ t->tm_sec = BCD2BIN(fm3130->regs[FM3130_RTC_SECONDS] & 0x7f); ++ t->tm_min = BCD2BIN(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f); ++ tmp = fm3130->regs[FM3130_RTC_HOURS] & 0x3f; ++ t->tm_hour = BCD2BIN(tmp); ++ t->tm_wday = BCD2BIN(fm3130->regs[FM3130_RTC_DAY] & 0x07) - 1; ++ t->tm_mday = BCD2BIN(fm3130->regs[FM3130_RTC_DATE] & 0x3f); ++ tmp = fm3130->regs[FM3130_RTC_MONTHS] & 0x1f; ++ t->tm_mon = BCD2BIN(tmp) - 1; ++ ++ /* assume 20YY not 19YY, and ignore CF bit */ ++ t->tm_year = BCD2BIN(fm3130->regs[FM3130_RTC_YEARS]) + 100; ++ ++ dev_dbg(dev, "%s secs=%d, mins=%d, " ++ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", ++ "read", t->tm_sec, t->tm_min, ++ t->tm_hour, t->tm_mday, ++ t->tm_mon, t->tm_year, t->tm_wday); ++ ++ /* initial clock setting can be undefined */ ++ return rtc_valid_tm(t); ++} ++ ++ ++static int fm3130_set_time(struct device *dev, struct rtc_time *t) ++{ ++ struct fm3130 *fm3130 = dev_get_drvdata(dev); ++ int tmp, i; ++ u8 *buf = fm3130->regs; ++ ++ dev_dbg(dev, "%s secs=%d, mins=%d, " ++ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", ++ "write", t->tm_sec, t->tm_min, ++ t->tm_hour, t->tm_mday, ++ t->tm_mon, t->tm_year, t->tm_wday); ++ ++ /* first register addr */ ++ buf[FM3130_RTC_SECONDS] = BIN2BCD(t->tm_sec); ++ buf[FM3130_RTC_MINUTES] = BIN2BCD(t->tm_min); ++ buf[FM3130_RTC_HOURS] = BIN2BCD(t->tm_hour); ++ buf[FM3130_RTC_DAY] = BIN2BCD(t->tm_wday + 1); ++ buf[FM3130_RTC_DATE] = BIN2BCD(t->tm_mday); ++ buf[FM3130_RTC_MONTHS] = BIN2BCD(t->tm_mon + 1); ++ ++ /* assume 20YY not 19YY */ ++ tmp = t->tm_year - 100; ++ buf[FM3130_RTC_YEARS] = BIN2BCD(tmp); ++ ++ dev_dbg(dev, "%s: %02x %02x %02x %02x %02x %02x %02x" ++ "%02x %02x %02x %02x %02x %02x %02x %02x\n", ++ "write", buf[0], buf[1], buf[2], buf[3], ++ buf[4], buf[5], buf[6], buf[7], ++ buf[8], buf[9], buf[0xa], buf[0xb], ++ buf[0xc], buf[0xd], buf[0xe]); ++ ++ fm3130_rtc_mode(dev, FM3130_MODE_WRITE); ++ ++ /* Writing time registers, we don't support multibyte transfers */ ++ for (i = 0; i < FM3130_CLOCK_REGS; i++) { ++ i2c_smbus_write_byte_data(fm3130->client, ++ FM3130_RTC_SECONDS + i, ++ fm3130->regs[FM3130_RTC_SECONDS + i]); ++ } ++ ++ fm3130_rtc_mode(dev, FM3130_MODE_NORMAL); ++ ++ /* We assume here that data are valid once written */ ++ if (!fm3130->data_valid) ++ fm3130->data_valid = 1; ++ return 0; ++} ++ ++static int fm3130_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) ++{ ++ struct fm3130 *fm3130 = dev_get_drvdata(dev); ++ int tmp; ++ struct rtc_time *tm = &alrm->time; ++ /* read the RTC alarm registers all at once */ ++ tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent), ++ &fm3130->msg[2], 2); ++ if (tmp != 2) { ++ dev_err(dev, "%s error %d\n", "read", tmp); ++ return -EIO; ++ } ++ dev_dbg(dev, "alarm read %02x %02x %02x %02x %02x\n", ++ fm3130->regs[FM3130_ALARM_SECONDS], ++ fm3130->regs[FM3130_ALARM_MINUTES], ++ fm3130->regs[FM3130_ALARM_HOURS], ++ fm3130->regs[FM3130_ALARM_DATE], ++ fm3130->regs[FM3130_ALARM_MONTHS]); ++ ++ ++ tm->tm_sec = BCD2BIN(fm3130->regs[FM3130_ALARM_SECONDS] & 0x7F); ++ tm->tm_min = BCD2BIN(fm3130->regs[FM3130_ALARM_MINUTES] & 0x7F); ++ tm->tm_hour = BCD2BIN(fm3130->regs[FM3130_ALARM_HOURS] & 0x3F); ++ tm->tm_mday = BCD2BIN(fm3130->regs[FM3130_ALARM_DATE] & 0x3F); ++ tm->tm_mon = BCD2BIN(fm3130->regs[FM3130_ALARM_MONTHS] & 0x1F); ++ if (tm->tm_mon > 0) ++ tm->tm_mon -= 1; /* RTC is 1-12, tm_mon is 0-11 */ ++ dev_dbg(dev, "%s secs=%d, mins=%d, " ++ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", ++ "read alarm", tm->tm_sec, tm->tm_min, ++ tm->tm_hour, tm->tm_mday, ++ tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ return 0; ++} ++ ++static int fm3130_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) ++{ ++ struct fm3130 *fm3130 = dev_get_drvdata(dev); ++ struct rtc_time *tm = &alrm->time; ++ int i; ++ ++ dev_dbg(dev, "%s secs=%d, mins=%d, " ++ "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", ++ "write alarm", tm->tm_sec, tm->tm_min, ++ tm->tm_hour, tm->tm_mday, ++ tm->tm_mon, tm->tm_year, tm->tm_wday); ++ ++ if (tm->tm_sec != -1) ++ fm3130->regs[FM3130_ALARM_SECONDS] = ++ BIN2BCD(tm->tm_sec) | 0x80; ++ ++ if (tm->tm_min != -1) ++ fm3130->regs[FM3130_ALARM_MINUTES] = ++ BIN2BCD(tm->tm_min) | 0x80; ++ ++ if (tm->tm_hour != -1) ++ fm3130->regs[FM3130_ALARM_HOURS] = ++ BIN2BCD(tm->tm_hour) | 0x80; ++ ++ if (tm->tm_mday != -1) ++ fm3130->regs[FM3130_ALARM_DATE] = ++ BIN2BCD(tm->tm_mday) | 0x80; ++ ++ if (tm->tm_mon != -1) ++ fm3130->regs[FM3130_ALARM_MONTHS] = ++ BIN2BCD(tm->tm_mon + 1) | 0x80; ++ ++ dev_dbg(dev, "alarm write %02x %02x %02x %02x %02x\n", ++ fm3130->regs[FM3130_ALARM_SECONDS], ++ fm3130->regs[FM3130_ALARM_MINUTES], ++ fm3130->regs[FM3130_ALARM_HOURS], ++ fm3130->regs[FM3130_ALARM_DATE], ++ fm3130->regs[FM3130_ALARM_MONTHS]); ++ /* Writing time registers, we don't support multibyte transfers */ ++ for (i = 0; i < FM3130_ALARM_REGS; i++) { ++ i2c_smbus_write_byte_data(fm3130->client, ++ FM3130_ALARM_SECONDS + i, ++ fm3130->regs[FM3130_ALARM_SECONDS + i]); ++ } ++ fm3130->regs[FM3130_RTC_CONTROL] = ++ i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL); ++ /* Checking for alarm */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) { ++ fm3130->alarm = 1; ++ fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF; ++ } ++ if (alrm->enabled) { ++ i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL, ++ (fm3130->regs[FM3130_RTC_CONTROL] & ++ ~(FM3130_RTC_CONTROL_BIT_CAL)) | ++ FM3130_RTC_CONTROL_BIT_AEN); ++ } else { ++ i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL, ++ fm3130->regs[FM3130_RTC_CONTROL] & ++ ~(FM3130_RTC_CONTROL_BIT_AEN)); ++ } ++ return 0; ++} ++ ++static const struct rtc_class_ops fm3130_rtc_ops = { ++ .read_time = fm3130_get_time, ++ .set_time = fm3130_set_time, ++ .read_alarm = fm3130_read_alarm, ++ .set_alarm = fm3130_set_alarm, ++}; ++ ++static struct i2c_driver fm3130_driver; ++ ++static int __devinit fm3130_probe(struct i2c_client *client, ++ const struct i2c_device_id *id) ++{ ++ struct fm3130 *fm3130; ++ int err = -ENODEV; ++ int tmp; ++ struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); ++ ++ if (!i2c_check_functionality(adapter, ++ I2C_FUNC_I2C | I2C_FUNC_SMBUS_WRITE_BYTE_DATA)) ++ return -EIO; ++ ++ fm3130 = kzalloc(sizeof(struct fm3130), GFP_KERNEL); ++ ++ if (!fm3130) ++ return -ENOMEM; ++ ++ fm3130->client = client; ++ i2c_set_clientdata(client, fm3130); ++ fm3130->reg_addr_time = FM3130_RTC_SECONDS; ++ fm3130->reg_addr_alarm = FM3130_ALARM_SECONDS; ++ ++ /* Messages to read time */ ++ fm3130->msg[0].addr = client->addr; ++ fm3130->msg[0].flags = 0; ++ fm3130->msg[0].len = 1; ++ fm3130->msg[0].buf = &fm3130->reg_addr_time; ++ ++ fm3130->msg[1].addr = client->addr; ++ fm3130->msg[1].flags = I2C_M_RD; ++ fm3130->msg[1].len = FM3130_CLOCK_REGS; ++ fm3130->msg[1].buf = &fm3130->regs[FM3130_RTC_SECONDS]; ++ ++ /* Messages to read alarm */ ++ fm3130->msg[2].addr = client->addr; ++ fm3130->msg[2].flags = 0; ++ fm3130->msg[2].len = 1; ++ fm3130->msg[2].buf = &fm3130->reg_addr_alarm; ++ ++ fm3130->msg[3].addr = client->addr; ++ fm3130->msg[3].flags = I2C_M_RD; ++ fm3130->msg[3].len = FM3130_ALARM_REGS; ++ fm3130->msg[3].buf = &fm3130->regs[FM3130_ALARM_SECONDS]; ++ ++ fm3130->data_valid = 0; ++ ++ tmp = i2c_transfer(adapter, fm3130->msg, 4); ++ if (tmp != 4) { ++ pr_debug("read error %d\n", tmp); ++ err = -EIO; ++ goto exit_free; ++ } ++ ++ fm3130->regs[FM3130_RTC_CONTROL] = ++ i2c_smbus_read_byte_data(client, FM3130_RTC_CONTROL); ++ fm3130->regs[FM3130_CAL_CONTROL] = ++ i2c_smbus_read_byte_data(client, FM3130_CAL_CONTROL); ++ ++ /* Checking for alarm */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) { ++ fm3130->alarm = 1; ++ fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF; ++ } ++ ++ /* Disabling calibration mode */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_CAL) ++ i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, ++ fm3130->regs[FM3130_RTC_CONTROL] & ++ ~(FM3130_RTC_CONTROL_BIT_CAL)); ++ dev_warn(&client->dev, "Disabling calibration mode!\n"); ++ ++ /* Disabling read and write modes */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_WRITE || ++ fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_READ) ++ i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, ++ fm3130->regs[FM3130_RTC_CONTROL] & ++ ~(FM3130_RTC_CONTROL_BIT_READ | ++ FM3130_RTC_CONTROL_BIT_WRITE)); ++ dev_warn(&client->dev, "Disabling READ or WRITE mode!\n"); ++ ++ /* oscillator off? turn it on, so clock can tick. */ ++ if (fm3130->regs[FM3130_CAL_CONTROL] & FM3130_CAL_CONTROL_BIT_nOSCEN) ++ i2c_smbus_write_byte_data(client, FM3130_CAL_CONTROL, ++ fm3130->regs[FM3130_CAL_CONTROL] & ++ ~(FM3130_CAL_CONTROL_BIT_nOSCEN)); ++ ++ /* oscillator fault? clear flag, and warn */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_LB) ++ dev_warn(&client->dev, "Low battery!\n"); ++ ++ /* oscillator fault? clear flag, and warn */ ++ if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_POR) { ++ i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, ++ fm3130->regs[FM3130_RTC_CONTROL] & ++ ~FM3130_RTC_CONTROL_BIT_POR); ++ dev_warn(&client->dev, "SET TIME!\n"); ++ } ++ /* ACS is controlled by alarm */ ++ i2c_smbus_write_byte_data(client, FM3130_ALARM_WP_CONTROL, 0x80); ++ ++ /* TODO */ ++ /* TODO need to sanity check alarm */ ++ tmp = fm3130->regs[FM3130_RTC_SECONDS]; ++ tmp = BCD2BIN(tmp & 0x7f); ++ if (tmp > 60) ++ goto exit_bad; ++ tmp = BCD2BIN(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f); ++ if (tmp > 60) ++ goto exit_bad; ++ ++ tmp = BCD2BIN(fm3130->regs[FM3130_RTC_DATE] & 0x3f); ++ if (tmp == 0 || tmp > 31) ++ goto exit_bad; ++ ++ tmp = BCD2BIN(fm3130->regs[FM3130_RTC_MONTHS] & 0x1f); ++ if (tmp == 0 || tmp > 12) ++ goto exit_bad; ++ ++ tmp = fm3130->regs[FM3130_RTC_HOURS]; ++ ++ fm3130->data_valid = 1; ++ ++exit_bad: ++ if (!fm3130->data_valid) ++ dev_dbg(&client->dev, ++ "%s: %02x %02x %02x %02x %02x %02x %02x %02x" ++ "%02x %02x %02x %02x %02x %02x %02x\n", ++ "bogus registers", ++ fm3130->regs[0], fm3130->regs[1], ++ fm3130->regs[2], fm3130->regs[3], ++ fm3130->regs[4], fm3130->regs[5], ++ fm3130->regs[6], fm3130->regs[7], ++ fm3130->regs[8], fm3130->regs[9], ++ fm3130->regs[0xa], fm3130->regs[0xb], ++ fm3130->regs[0xc], fm3130->regs[0xd], ++ fm3130->regs[0xe]); ++ ++ /* We won't bail out here because we just got invalid data. ++ Time setting from u-boot doesn't work anyway */ ++ fm3130->rtc = rtc_device_register(client->name, &client->dev, ++ &fm3130_rtc_ops, THIS_MODULE); ++ if (IS_ERR(fm3130->rtc)) { ++ err = PTR_ERR(fm3130->rtc); ++ dev_err(&client->dev, ++ "unable to register the class device\n"); ++ goto exit_free; ++ } ++ return 0; ++exit_free: ++ kfree(fm3130); ++ return err; ++} ++ ++static int __devexit fm3130_remove(struct i2c_client *client) ++{ ++ struct fm3130 *fm3130 = i2c_get_clientdata(client); ++ ++ rtc_device_unregister(fm3130->rtc); ++ kfree(fm3130); ++ return 0; ++} ++ ++static struct i2c_driver fm3130_driver = { ++ .driver = { ++ .name = "rtc-fm3130", ++ .owner = THIS_MODULE, ++ }, ++ .probe = fm3130_probe, ++ .remove = __devexit_p(fm3130_remove), ++ .id_table = fm3130_id, ++}; ++ ++static int __init fm3130_init(void) ++{ ++ return i2c_add_driver(&fm3130_driver); ++} ++module_init(fm3130_init); ++ ++static void __exit fm3130_exit(void) ++{ ++ i2c_del_driver(&fm3130_driver); ++} ++module_exit(fm3130_exit); ++ ++MODULE_DESCRIPTION("RTC driver for FM3130"); ++MODULE_AUTHOR("Sergey Lapin "); ++MODULE_LICENSE("GPL"); ++ +diff --git a/drivers/scsi/dpt/dptsig.h b/drivers/scsi/dpt/dptsig.h +index 72c8992..a6644b3 100644 +--- a/drivers/scsi/dpt/dptsig.h ++++ b/drivers/scsi/dpt/dptsig.h +@@ -85,7 +85,7 @@ typedef unsigned int sigINT; + /* ------------------------------------------------------------------ */ + /* What type of processor the file is meant to run on. */ + /* This will let us know whether to read sigWORDs as high/low or low/high. */ +-#define PROC_INTEL 0x00 /* Intel 80x86 */ ++#define PROC_INTEL 0x00 /* Intel 80x86/ia64 */ + #define PROC_MOTOROLA 0x01 /* Motorola 68K */ + #define PROC_MIPS4000 0x02 /* MIPS RISC 4000 */ + #define PROC_ALPHA 0x03 /* DEC Alpha */ +@@ -104,6 +104,7 @@ typedef unsigned int sigINT; + #define PROC_486 0x08 /* Intel 80486 */ + #define PROC_PENTIUM 0x10 /* Intel 586 aka P5 aka Pentium */ + #define PROC_SEXIUM 0x20 /* Intel 686 aka P6 aka Pentium Pro or MMX */ ++#define PROC_IA64 0x40 /* Intel IA64 processor */ + + /* PROC_i960: */ + #define PROC_960RX 0x01 /* Intel 80960RC/RD */ +diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c +index 3690360..c6457bf 100644 +--- a/drivers/scsi/hosts.c ++++ b/drivers/scsi/hosts.c +@@ -456,6 +456,10 @@ static int __scsi_host_match(struct device *dev, void *data) + * + * Return value: + * A pointer to located Scsi_Host or NULL. ++ * ++ * The caller must do a scsi_host_put() to drop the reference ++ * that scsi_host_get() took. The put_device() below dropped ++ * the reference from class_find_device(). + **/ + struct Scsi_Host *scsi_host_lookup(unsigned short hostnum) + { +@@ -463,9 +467,10 @@ struct Scsi_Host *scsi_host_lookup(unsigned short hostnum) + struct Scsi_Host *shost = ERR_PTR(-ENXIO); + + cdev = class_find_device(&shost_class, &hostnum, __scsi_host_match); +- if (cdev) ++ if (cdev) { + shost = scsi_host_get(class_to_shost(cdev)); +- ++ put_device(cdev); ++ } + return shost; + } + EXPORT_SYMBOL(scsi_host_lookup); +diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c +index 7ee86d4..c82df8b 100644 +--- a/drivers/scsi/sr.c ++++ b/drivers/scsi/sr.c +@@ -178,6 +178,9 @@ int sr_test_unit_ready(struct scsi_device *sdev, struct scsi_sense_hdr *sshdr) + the_result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, + 0, sshdr, SR_TIMEOUT, + retries--); ++ if (scsi_sense_valid(sshdr) && ++ sshdr->sense_key == UNIT_ATTENTION) ++ sdev->changed = 1; + + } while (retries > 0 && + (!scsi_status_is_good(the_result) || +diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c +index 7cf8851..d184f2a 100644 +--- a/drivers/ssb/main.c ++++ b/drivers/ssb/main.c +@@ -1168,15 +1168,21 @@ EXPORT_SYMBOL(ssb_dma_translation); + int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask) + { + struct device *dma_dev = ssb_dev->dma_dev; ++ int err = 0; + + #ifdef CONFIG_SSB_PCIHOST +- if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI) +- return dma_set_mask(dma_dev, mask); ++ if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI) { ++ err = pci_set_dma_mask(ssb_dev->bus->host_pci, mask); ++ if (err) ++ return err; ++ err = pci_set_consistent_dma_mask(ssb_dev->bus->host_pci, mask); ++ return err; ++ } + #endif + dma_dev->coherent_dma_mask = mask; + dma_dev->dma_mask = &dma_dev->coherent_dma_mask; + +- return 0; ++ return err; + } + EXPORT_SYMBOL(ssb_dma_set_mask); + +diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c +index 3da1ab4..c070b34 100644 +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -47,6 +47,9 @@ static const struct usb_device_id usb_quirk_list[] = { + /* Edirol SD-20 */ + { USB_DEVICE(0x0582, 0x0027), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* appletouch */ ++ { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* Avision AV600U */ + { USB_DEVICE(0x0638, 0x0a13), .driver_info = + USB_QUIRK_STRING_FETCH_255 }, +diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c +index 35ac9d9..c14b243 100644 +--- a/drivers/video/cirrusfb.c ++++ b/drivers/video/cirrusfb.c +@@ -2432,9 +2432,9 @@ static int cirrusfb_pci_register(struct pci_dev *pdev, + info->screen_size = board_size; + cinfo->unmap = cirrusfb_pci_unmap; + +- printk(KERN_INFO " RAM (%lu kB) at 0xx%lx, ", +- info->screen_size >> 10, board_addr); +- printk(KERN_INFO "Cirrus Logic chipset on PCI bus\n"); ++ printk(KERN_INFO "RAM (%lu kB) at 0x%lx, Cirrus " ++ "Logic chipset on PCI bus\n", ++ info->screen_size >> 10, board_addr); + pci_set_drvdata(pdev, info); + + ret = cirrusfb_register(info); +diff --git a/drivers/video/hgafb.c b/drivers/video/hgafb.c +index fb9e672..c18880d 100644 +--- a/drivers/video/hgafb.c ++++ b/drivers/video/hgafb.c +@@ -279,7 +279,7 @@ static void hga_blank(int blank_mode) + + static int __init hga_card_detect(void) + { +- int count=0; ++ int count = 0; + void __iomem *p, *q; + unsigned short p_save, q_save; + +@@ -303,20 +303,18 @@ static int __init hga_card_detect(void) + writew(0x55aa, p); if (readw(p) == 0x55aa) count++; + writew(p_save, p); + +- if (count != 2) { +- return 0; +- } ++ if (count != 2) ++ goto error; + + /* Ok, there is definitely a card registering at the correct + * memory location, so now we do an I/O port test. + */ + +- if (!test_hga_b(0x66, 0x0f)) { /* cursor low register */ +- return 0; +- } +- if (!test_hga_b(0x99, 0x0f)) { /* cursor low register */ +- return 0; +- } ++ if (!test_hga_b(0x66, 0x0f)) /* cursor low register */ ++ goto error; ++ ++ if (!test_hga_b(0x99, 0x0f)) /* cursor low register */ ++ goto error; + + /* See if the card is a Hercules, by checking whether the vsync + * bit of the status register is changing. This test lasts for +@@ -331,7 +329,7 @@ static int __init hga_card_detect(void) + } + + if (p_save == q_save) +- return 0; ++ goto error; + + switch (inb_p(HGA_STATUS_PORT) & 0x70) { + case 0x10: +@@ -348,6 +346,12 @@ static int __init hga_card_detect(void) + break; + } + return 1; ++error: ++ if (release_io_ports) ++ release_region(0x3b0, 12); ++ if (release_io_port) ++ release_region(0x3bf, 1); ++ return 0; + } + + /** +diff --git a/drivers/video/leo.c b/drivers/video/leo.c +index 8bc46e9..13fea61 100644 +--- a/drivers/video/leo.c ++++ b/drivers/video/leo.c +@@ -17,8 +17,8 @@ + #include + #include + #include ++#include + +-#include + #include + + #include "sbuslib.h" +@@ -33,7 +33,6 @@ static int leo_blank(int, struct fb_info *); + + static int leo_mmap(struct fb_info *, struct vm_area_struct *); + static int leo_ioctl(struct fb_info *, unsigned int, unsigned long); +-static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *); + + /* + * Frame buffer operations +@@ -43,7 +42,6 @@ static struct fb_ops leo_ops = { + .owner = THIS_MODULE, + .fb_setcolreg = leo_setcolreg, + .fb_blank = leo_blank, +- .fb_pan_display = leo_pan_display, + .fb_fillrect = cfb_fillrect, + .fb_copyarea = cfb_copyarea, + .fb_imageblit = cfb_imageblit, +@@ -78,7 +76,7 @@ static struct fb_ops leo_ops = { + #define LEO_CUR_TYPE_CMAP 0x00000050 + + struct leo_cursor { +- u8 xxx0[16]; ++ u8 xxx0[16]; + u32 cur_type; + u32 cur_misc; + u32 cur_cursxy; +@@ -105,7 +103,7 @@ struct leo_lx_krn { + + struct leo_lc_ss0_krn { + u32 misc; +- u8 xxx0[0x800-4]; ++ u8 xxx0[0x800-4]; + u32 rev; + }; + +@@ -116,7 +114,7 @@ struct leo_lc_ss0_usr { + u32 fontt; + u32 extent; + u32 src; +- u32 dst; ++ u32 dst; + u32 copy; + u32 fill; + }; +@@ -129,8 +127,8 @@ struct leo_lc_ss1_usr { + u8 unknown; + }; + +-struct leo_ld { +- u8 xxx0[0xe00]; ++struct leo_ld_ss0 { ++ u8 xxx0[0xe00]; + u32 csr; + u32 wid; + u32 wmask; +@@ -144,13 +142,13 @@ struct leo_ld { + u32 src; /* Copy/Scroll (SS0 only) */ + u32 dst; /* Copy/Scroll/Fill (SS0 only) */ + u32 extent; /* Copy/Scroll/Fill size (SS0 only) */ +- u32 xxx1[3]; ++ u32 xxx1[3]; + u32 setsem; /* SS1 only */ + u32 clrsem; /* SS1 only */ + u32 clrpick; /* SS1 only */ + u32 clrdat; /* SS1 only */ + u32 alpha; /* SS1 only */ +- u8 xxx2[0x2c]; ++ u8 xxx2[0x2c]; + u32 winbg; + u32 planemask; + u32 rop; +@@ -199,11 +197,12 @@ struct leo_par { + static void leo_wait(struct leo_lx_krn __iomem *lx_krn) + { + int i; +- ++ + for (i = 0; +- (sbus_readl(&lx_krn->krn_csr) & LEO_KRN_CSR_PROGRESS) && i < 300000; ++ (sbus_readl(&lx_krn->krn_csr) & LEO_KRN_CSR_PROGRESS) && ++ i < 300000; + i++) +- udelay (1); /* Busy wait at most 0.3 sec */ ++ udelay(1); /* Busy wait at most 0.3 sec */ + return; + } + +@@ -221,7 +220,7 @@ static int leo_setcolreg(unsigned regno, + unsigned transp, struct fb_info *info) + { + struct leo_par *par = (struct leo_par *) info->par; +- struct leo_lx_krn __iomem *lx_krn = par->lx_krn; ++ struct leo_lx_krn __iomem *lx_krn = par->lx_krn; + unsigned long flags; + u32 val; + int i; +@@ -408,7 +407,7 @@ static void leo_wid_put(struct fb_info *info, struct fb_wid_list *wl) + leo_wait(lx_krn); + + for (i = 0, wi = wl->wl_list; i < wl->wl_count; i++, wi++) { +- switch(wi->wi_type) { ++ switch (wi->wi_type) { + case FB_WID_DBL_8: + j = (wi->wi_index & 0xf) + 0x40; + break; +@@ -453,13 +452,12 @@ static void leo_init_wids(struct fb_info *info) + wi.wi_index = 1; + wi.wi_values [0] = 0x30; + leo_wid_put(info, &wl); +- + } + + static void leo_switch_from_graph(struct fb_info *info) + { + struct leo_par *par = (struct leo_par *) info->par; +- struct leo_ld __iomem *ss = (struct leo_ld __iomem *) par->ld_ss0; ++ struct leo_ld_ss0 __iomem *ss = par->ld_ss0; + unsigned long flags; + u32 val; + +@@ -485,19 +483,13 @@ static void leo_switch_from_graph(struct fb_info *info) + val = sbus_readl(&par->lc_ss0_usr->csr); + } while (val & 0x20000000); + +- spin_unlock_irqrestore(&par->lock, flags); +-} +- +-static int leo_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) +-{ +- /* We just use this to catch switches out of +- * graphics mode. +- */ +- leo_switch_from_graph(info); ++ /* setup screen buffer for cfb_* functions */ ++ sbus_writel(1, &ss->wid); ++ sbus_writel(0x00ffffff, &ss->planemask); ++ sbus_writel(0x310b90, &ss->rop); ++ sbus_writel(0, &par->lc_ss0_usr->addrspace); + +- if (var->xoffset || var->yoffset || var->vmode) +- return -EINVAL; +- return 0; ++ spin_unlock_irqrestore(&par->lock, flags); + } + + static void leo_init_hw(struct fb_info *info) +@@ -542,7 +534,8 @@ static void leo_unmap_regs(struct of_device *op, struct fb_info *info, + of_iounmap(&op->resource[0], info->screen_base, 0x800000); + } + +-static int __devinit leo_probe(struct of_device *op, const struct of_device_id *match) ++static int __devinit leo_probe(struct of_device *op, ++ const struct of_device_id *match) + { + struct device_node *dp = op->node; + struct fb_info *info; +@@ -594,8 +587,9 @@ static int __devinit leo_probe(struct of_device *op, const struct of_device_id * + !info->screen_base) + goto out_unmap_regs; + +- info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; ++ info->flags = FBINFO_DEFAULT; + info->fbops = &leo_ops; ++ info->pseudo_palette = par->clut_data; + + leo_init_wids(info); + leo_init_hw(info); +@@ -649,7 +643,7 @@ static int __devexit leo_remove(struct of_device *op) + + static struct of_device_id leo_match[] = { + { +- .name = "leo", ++ .name = "SUNW,leo", + }, + {}, + }; +diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c +index 274bc93..7dcda18 100644 +--- a/drivers/video/pxafb.c ++++ b/drivers/video/pxafb.c +@@ -573,8 +573,8 @@ static int setup_frame_dma(struct pxafb_info *fbi, int dma, int pal, + dma_desc->fdadr = fbi->dma_buff_phys + dma_desc_off; + fbi->fdadr[dma] = fbi->dma_buff_phys + dma_desc_off; + } else { +- pal_desc = &fbi->dma_buff->pal_desc[dma]; +- pal_desc_off = offsetof(struct pxafb_dma_buff, dma_desc[pal]); ++ pal_desc = &fbi->dma_buff->pal_desc[pal]; ++ pal_desc_off = offsetof(struct pxafb_dma_buff, pal_desc[pal]); + + pal_desc->fsadr = fbi->dma_buff_phys + pal * PALETTE_SIZE; + pal_desc->fidr = 0; +@@ -1276,6 +1276,8 @@ static int __init pxafb_map_video_memory(struct pxafb_info *fbi) + fbi->dma_buff_phys = fbi->map_dma; + fbi->palette_cpu = (u16 *) fbi->dma_buff->palette; + ++ pr_debug("pxafb: palette_mem_size = 0x%08lx\n", fbi->palette_size*sizeof(u16)); ++ + #ifdef CONFIG_FB_PXA_SMARTPANEL + fbi->smart_cmds = (uint16_t *) fbi->dma_buff->cmd_buff; + fbi->n_smart_cmds = 0; +diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c +index 0f3c2bb..7084e7e 100644 +--- a/drivers/virtio/virtio.c ++++ b/drivers/virtio/virtio.c +@@ -124,9 +124,9 @@ static int virtio_dev_probe(struct device *_d) + if (err) + add_status(dev, VIRTIO_CONFIG_S_FAILED); + else { +- add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK); + /* They should never have set feature bits beyond 32 */ + dev->config->set_features(dev, dev->features[0]); ++ add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK); + } + return err; + } +diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile +index 25b352b..8662a6b 100644 +--- a/drivers/watchdog/Makefile ++++ b/drivers/watchdog/Makefile +@@ -68,6 +68,7 @@ obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o + obj-$(CONFIG_I6300ESB_WDT) += i6300esb.o + obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o iTCO_vendor_support.o + obj-$(CONFIG_IT8712F_WDT) += it8712f_wdt.o ++CFLAGS_hpwdt.o += -O + obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o + obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o + obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o +diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c +index 6a63535..2686f3e 100644 +--- a/drivers/watchdog/hpwdt.c ++++ b/drivers/watchdog/hpwdt.c +@@ -145,8 +145,8 @@ MODULE_DEVICE_TABLE(pci, hpwdt_devices); + + #define HPWDT_ARCH 32 + +-static void asminline_call(struct cmn_registers *pi86Regs, +- unsigned long *pRomEntry) ++asmlinkage void asminline_call(struct cmn_registers *pi86Regs, ++ unsigned long *pRomEntry) + { + asm("pushl %ebp \n\t" + "movl %esp, %ebp \n\t" +@@ -333,8 +333,8 @@ static int __devinit detect_cru_service(void) + + #define HPWDT_ARCH 64 + +-static void asminline_call(struct cmn_registers *pi86Regs, +- unsigned long *pRomEntry) ++asmlinkage void asminline_call(struct cmn_registers *pi86Regs, ++ unsigned long *pRomEntry) + { + asm("pushq %rbp \n\t" + "movq %rsp, %rbp \n\t" +@@ -418,20 +418,23 @@ static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason, + static unsigned long rom_pl; + static int die_nmi_called; + +- if (ulReason == DIE_NMI || ulReason == DIE_NMI_IPI) { +- spin_lock_irqsave(&rom_lock, rom_pl); +- if (!die_nmi_called) +- asminline_call(&cmn_regs, cru_rom_addr); +- die_nmi_called = 1; +- spin_unlock_irqrestore(&rom_lock, rom_pl); +- if (cmn_regs.u1.ral != 0) { +- panic("An NMI occurred, please see the Integrated " +- "Management Log for details.\n"); +- } ++ if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI) ++ return NOTIFY_OK; ++ ++ spin_lock_irqsave(&rom_lock, rom_pl); ++ if (!die_nmi_called) ++ asminline_call(&cmn_regs, cru_rom_addr); ++ die_nmi_called = 1; ++ spin_unlock_irqrestore(&rom_lock, rom_pl); ++ if (cmn_regs.u1.ral == 0) { ++ printk(KERN_WARNING "hpwdt: An NMI occurred, " ++ "but unable to determine source.\n"); ++ } else { ++ panic("An NMI occurred, please see the Integrated " ++ "Management Log for details.\n"); + } + +- die_nmi_called = 0; +- return NOTIFY_DONE; ++ return NOTIFY_STOP; + } + + /* +diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c +index 0fa95b1..d48ff5f 100644 +--- a/fs/binfmt_elf.c ++++ b/fs/binfmt_elf.c +@@ -16,7 +16,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -548,7 +547,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) + struct { + struct elfhdr elf_ex; + struct elfhdr interp_elf_ex; +- struct exec interp_ex; + } *loc; + + loc = kmalloc(sizeof(*loc), GFP_KERNEL); +@@ -680,7 +678,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) + } + + /* Get the exec headers */ +- loc->interp_ex = *((struct exec *)bprm->buf); + loc->interp_elf_ex = *((struct elfhdr *)bprm->buf); + break; + } +diff --git a/fs/exec.c b/fs/exec.c +index 9448f1b..da94a6f 100644 +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -26,7 +26,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -61,6 +60,11 @@ + #include + #endif + ++#ifdef __alpha__ ++/* for /sbin/loader handling in search_binary_handler() */ ++#include ++#endif ++ + int core_uses_pid; + char core_pattern[CORENAME_MAX_SIZE] = "core"; + int suid_dumpable = 0; +@@ -1155,7 +1159,7 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) + { + int try,retval; + struct linux_binfmt *fmt; +-#if defined(__alpha__) && defined(CONFIG_ARCH_SUPPORTS_AOUT) ++#ifdef __alpha__ + /* handle /sbin/loader.. */ + { + struct exec * eh = (struct exec *) bprm->buf; +diff --git a/fs/fat/file.c b/fs/fat/file.c +index 27cc116..771326b 100644 +--- a/fs/fat/file.c ++++ b/fs/fat/file.c +@@ -257,26 +257,34 @@ int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) + } + EXPORT_SYMBOL_GPL(fat_getattr); + +-static int fat_check_mode(const struct msdos_sb_info *sbi, struct inode *inode, +- mode_t mode) ++static int fat_sanitize_mode(const struct msdos_sb_info *sbi, ++ struct inode *inode, umode_t *mode_ptr) + { +- mode_t mask, req = mode & ~S_IFMT; ++ mode_t mask, perm; + +- if (S_ISREG(mode)) ++ /* ++ * Note, the basic check is already done by a caller of ++ * (attr->ia_mode & ~MSDOS_VALID_MODE) ++ */ ++ ++ if (S_ISREG(inode->i_mode)) + mask = sbi->options.fs_fmask; + else + mask = sbi->options.fs_dmask; + ++ perm = *mode_ptr & ~(S_IFMT | mask); ++ + /* + * Of the r and x bits, all (subject to umask) must be present. Of the + * w bits, either all (subject to umask) or none must be present. + */ +- req &= ~mask; +- if ((req & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO))) ++ if ((perm & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO))) + return -EPERM; +- if ((req & S_IWUGO) && ((req & S_IWUGO) != (S_IWUGO & ~mask))) ++ if ((perm & S_IWUGO) && ((perm & S_IWUGO) != (S_IWUGO & ~mask))) + return -EPERM; + ++ *mode_ptr &= S_IFMT | perm; ++ + return 0; + } + +@@ -299,7 +307,7 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) + { + struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); + struct inode *inode = dentry->d_inode; +- int mask, error = 0; ++ int error = 0; + unsigned int ia_valid; + + lock_kernel(); +@@ -332,12 +340,13 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) + error = 0; + goto out; + } ++ + if (((attr->ia_valid & ATTR_UID) && + (attr->ia_uid != sbi->options.fs_uid)) || + ((attr->ia_valid & ATTR_GID) && + (attr->ia_gid != sbi->options.fs_gid)) || + ((attr->ia_valid & ATTR_MODE) && +- fat_check_mode(sbi, inode, attr->ia_mode) < 0)) ++ (attr->ia_mode & ~MSDOS_VALID_MODE))) + error = -EPERM; + + if (error) { +@@ -346,15 +355,16 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr) + goto out; + } + +- error = inode_setattr(inode, attr); +- if (error) +- goto out; ++ /* ++ * We don't return -EPERM here. Yes, strange, but this is too ++ * old behavior. ++ */ ++ if (attr->ia_valid & ATTR_MODE) { ++ if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0) ++ attr->ia_valid &= ~ATTR_MODE; ++ } + +- if (S_ISDIR(inode->i_mode)) +- mask = sbi->options.fs_dmask; +- else +- mask = sbi->options.fs_fmask; +- inode->i_mode &= S_IFMT | (S_IRWXUGO & ~mask); ++ error = inode_setattr(inode, attr); + out: + unlock_kernel(); + return error; +diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c +index 43e9951..3141690 100644 +--- a/fs/fuse/inode.c ++++ b/fs/fuse/inode.c +@@ -591,7 +591,7 @@ static void process_init_reply(struct fuse_conn *fc, struct fuse_req *req) + fc->bdi.ra_pages = min(fc->bdi.ra_pages, ra_pages); + fc->minor = arg->minor; + fc->max_write = arg->minor < 5 ? 4096 : arg->max_write; +- fc->max_write = min_t(unsigned, 4096, fc->max_write); ++ fc->max_write = max_t(unsigned, 4096, fc->max_write); + fc->conn_init = 1; + } + fuse_put_request(fc, req); +@@ -667,7 +667,7 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) + fc->flags = d.flags; + fc->user_id = d.user_id; + fc->group_id = d.group_id; +- fc->max_read = min_t(unsigned, 4096, d.max_read); ++ fc->max_read = max_t(unsigned, 4096, d.max_read); + + /* Used by get_root_inode() */ + sb->s_fs_info = fc; +diff --git a/fs/ocfs2/cluster/nodemanager.c b/fs/ocfs2/cluster/nodemanager.c +index cf9401e..cfdb08b 100644 +--- a/fs/ocfs2/cluster/nodemanager.c ++++ b/fs/ocfs2/cluster/nodemanager.c +@@ -21,7 +21,6 @@ + + #include + #include +-#include + #include + + #include "tcp.h" +@@ -36,65 +35,6 @@ + * cluster references throughout where nodes are looked up */ + struct o2nm_cluster *o2nm_single_cluster = NULL; + +-#define OCFS2_MAX_HB_CTL_PATH 256 +-static char ocfs2_hb_ctl_path[OCFS2_MAX_HB_CTL_PATH] = "/sbin/ocfs2_hb_ctl"; +- +-static ctl_table ocfs2_nm_table[] = { +- { +- .ctl_name = 1, +- .procname = "hb_ctl_path", +- .data = ocfs2_hb_ctl_path, +- .maxlen = OCFS2_MAX_HB_CTL_PATH, +- .mode = 0644, +- .proc_handler = &proc_dostring, +- .strategy = &sysctl_string, +- }, +- { .ctl_name = 0 } +-}; +- +-static ctl_table ocfs2_mod_table[] = { +- { +- .ctl_name = FS_OCFS2_NM, +- .procname = "nm", +- .data = NULL, +- .maxlen = 0, +- .mode = 0555, +- .child = ocfs2_nm_table +- }, +- { .ctl_name = 0} +-}; +- +-static ctl_table ocfs2_kern_table[] = { +- { +- .ctl_name = FS_OCFS2, +- .procname = "ocfs2", +- .data = NULL, +- .maxlen = 0, +- .mode = 0555, +- .child = ocfs2_mod_table +- }, +- { .ctl_name = 0} +-}; +- +-static ctl_table ocfs2_root_table[] = { +- { +- .ctl_name = CTL_FS, +- .procname = "fs", +- .data = NULL, +- .maxlen = 0, +- .mode = 0555, +- .child = ocfs2_kern_table +- }, +- { .ctl_name = 0 } +-}; +- +-static struct ctl_table_header *ocfs2_table_header = NULL; +- +-const char *o2nm_get_hb_ctl_path(void) +-{ +- return ocfs2_hb_ctl_path; +-} +-EXPORT_SYMBOL_GPL(o2nm_get_hb_ctl_path); + + struct o2nm_node *o2nm_get_node_by_num(u8 node_num) + { +@@ -941,9 +881,6 @@ void o2nm_undepend_this_node(void) + + static void __exit exit_o2nm(void) + { +- if (ocfs2_table_header) +- unregister_sysctl_table(ocfs2_table_header); +- + /* XXX sync with hb callbacks and shut down hb? */ + o2net_unregister_hb_callbacks(); + configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); +@@ -964,16 +901,9 @@ static int __init init_o2nm(void) + if (ret) + goto out; + +- ocfs2_table_header = register_sysctl_table(ocfs2_root_table); +- if (!ocfs2_table_header) { +- printk(KERN_ERR "nodemanager: unable to register sysctl\n"); +- ret = -ENOMEM; /* or something. */ +- goto out_o2net; +- } +- + ret = o2net_register_hb_callbacks(); + if (ret) +- goto out_sysctl; ++ goto out_o2net; + + config_group_init(&o2nm_cluster_group.cs_subsys.su_group); + mutex_init(&o2nm_cluster_group.cs_subsys.su_mutex); +@@ -990,8 +920,6 @@ static int __init init_o2nm(void) + configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); + out_callbacks: + o2net_unregister_hb_callbacks(); +-out_sysctl: +- unregister_sysctl_table(ocfs2_table_header); + out_o2net: + o2net_exit(); + out: +diff --git a/fs/ocfs2/cluster/nodemanager.h b/fs/ocfs2/cluster/nodemanager.h +index 7c86036..c992ea0 100644 +--- a/fs/ocfs2/cluster/nodemanager.h ++++ b/fs/ocfs2/cluster/nodemanager.h +@@ -33,10 +33,6 @@ + #include + #include + +-#define FS_OCFS2_NM 1 +- +-const char *o2nm_get_hb_ctl_path(void); +- + struct o2nm_node { + spinlock_t nd_lock; + struct config_item nd_item; +diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c +index bbd1667..fcd120f 100644 +--- a/fs/ocfs2/stack_o2cb.c ++++ b/fs/ocfs2/stack_o2cb.c +@@ -317,8 +317,7 @@ out: + return rc; + } + +-static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn, +- int hangup_pending) ++static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn) + { + struct dlm_ctxt *dlm = conn->cc_lockspace; + struct o2dlm_private *priv = conn->cc_private; +@@ -333,43 +332,6 @@ static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn, + return 0; + } + +-static void o2hb_stop(const char *group) +-{ +- int ret; +- char *argv[5], *envp[3]; +- +- argv[0] = (char *)o2nm_get_hb_ctl_path(); +- argv[1] = "-K"; +- argv[2] = "-u"; +- argv[3] = (char *)group; +- argv[4] = NULL; +- +- mlog(0, "Run: %s %s %s %s\n", argv[0], argv[1], argv[2], argv[3]); +- +- /* minimal command environment taken from cpu_run_sbin_hotplug */ +- envp[0] = "HOME=/"; +- envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin"; +- envp[2] = NULL; +- +- ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); +- if (ret < 0) +- mlog_errno(ret); +-} +- +-/* +- * Hangup is a hack for tools compatibility. Older ocfs2-tools software +- * expects the filesystem to call "ocfs2_hb_ctl" during unmount. This +- * happens regardless of whether the DLM got started, so we can't do it +- * in ocfs2_cluster_disconnect(). We bring the o2hb_stop() function into +- * the glue and provide a "hangup" API for super.c to call. +- * +- * Other stacks will eventually provide a NULL ->hangup() pointer. +- */ +-static void o2cb_cluster_hangup(const char *group, int grouplen) +-{ +- o2hb_stop(group); +-} +- + static int o2cb_cluster_this_node(unsigned int *node) + { + int node_num; +@@ -388,7 +350,6 @@ static int o2cb_cluster_this_node(unsigned int *node) + static struct ocfs2_stack_operations o2cb_stack_ops = { + .connect = o2cb_cluster_connect, + .disconnect = o2cb_cluster_disconnect, +- .hangup = o2cb_cluster_hangup, + .this_node = o2cb_cluster_this_node, + .dlm_lock = o2cb_dlm_lock, + .dlm_unlock = o2cb_dlm_unlock, +diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c +index 6b97d11..c021280 100644 +--- a/fs/ocfs2/stack_user.c ++++ b/fs/ocfs2/stack_user.c +@@ -816,8 +816,7 @@ out: + return rc; + } + +-static int user_cluster_disconnect(struct ocfs2_cluster_connection *conn, +- int hangup_pending) ++static int user_cluster_disconnect(struct ocfs2_cluster_connection *conn) + { + dlm_release_lockspace(conn->cc_lockspace, 2); + conn->cc_lockspace = NULL; +diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c +index 119f60c..10e149a 100644 +--- a/fs/ocfs2/stackglue.c ++++ b/fs/ocfs2/stackglue.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "ocfs2_fs.h" + +@@ -33,11 +34,13 @@ + + #define OCFS2_STACK_PLUGIN_O2CB "o2cb" + #define OCFS2_STACK_PLUGIN_USER "user" ++#define OCFS2_MAX_HB_CTL_PATH 256 + + static struct ocfs2_locking_protocol *lproto; + static DEFINE_SPINLOCK(ocfs2_stack_lock); + static LIST_HEAD(ocfs2_stack_list); + static char cluster_stack_name[OCFS2_STACK_LABEL_LEN + 1]; ++static char ocfs2_hb_ctl_path[OCFS2_MAX_HB_CTL_PATH] = "/sbin/ocfs2_hb_ctl"; + + /* + * The stack currently in use. If not null, active_stack->sp_count > 0, +@@ -349,7 +352,7 @@ int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn, + + BUG_ON(conn == NULL); + +- ret = active_stack->sp_ops->disconnect(conn, hangup_pending); ++ ret = active_stack->sp_ops->disconnect(conn); + + /* XXX Should we free it anyway? */ + if (!ret) { +@@ -362,13 +365,48 @@ int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn, + } + EXPORT_SYMBOL_GPL(ocfs2_cluster_disconnect); + ++/* ++ * Leave the group for this filesystem. This is executed by a userspace ++ * program (stored in ocfs2_hb_ctl_path). ++ */ ++static void ocfs2_leave_group(const char *group) ++{ ++ int ret; ++ char *argv[5], *envp[3]; ++ ++ argv[0] = ocfs2_hb_ctl_path; ++ argv[1] = "-K"; ++ argv[2] = "-u"; ++ argv[3] = (char *)group; ++ argv[4] = NULL; ++ ++ /* minimal command environment taken from cpu_run_sbin_hotplug */ ++ envp[0] = "HOME=/"; ++ envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin"; ++ envp[2] = NULL; ++ ++ ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC); ++ if (ret < 0) { ++ printk(KERN_ERR ++ "ocfs2: Error %d running user helper " ++ "\"%s %s %s %s\"\n", ++ ret, argv[0], argv[1], argv[2], argv[3]); ++ } ++} ++ ++/* ++ * Hangup is a required post-umount. ocfs2-tools software expects the ++ * filesystem to call "ocfs2_hb_ctl" during unmount. This happens ++ * regardless of whether the DLM got started, so we can't do it ++ * in ocfs2_cluster_disconnect(). The ocfs2_leave_group() function does ++ * the actual work. ++ */ + void ocfs2_cluster_hangup(const char *group, int grouplen) + { + BUG_ON(group == NULL); + BUG_ON(group[grouplen] != '\0'); + +- if (active_stack->sp_ops->hangup) +- active_stack->sp_ops->hangup(group, grouplen); ++ ocfs2_leave_group(group); + + /* cluster_disconnect() was called with hangup_pending==1 */ + ocfs2_stack_driver_put(); +@@ -548,10 +586,83 @@ error: + return ret; + } + ++/* ++ * Sysctl bits ++ * ++ * The sysctl lives at /proc/sys/fs/ocfs2/nm/hb_ctl_path. The 'nm' doesn't ++ * make as much sense in a multiple cluster stack world, but it's safer ++ * and easier to preserve the name. ++ */ ++ ++#define FS_OCFS2_NM 1 ++ ++static ctl_table ocfs2_nm_table[] = { ++ { ++ .ctl_name = 1, ++ .procname = "hb_ctl_path", ++ .data = ocfs2_hb_ctl_path, ++ .maxlen = OCFS2_MAX_HB_CTL_PATH, ++ .mode = 0644, ++ .proc_handler = &proc_dostring, ++ .strategy = &sysctl_string, ++ }, ++ { .ctl_name = 0 } ++}; ++ ++static ctl_table ocfs2_mod_table[] = { ++ { ++ .ctl_name = FS_OCFS2_NM, ++ .procname = "nm", ++ .data = NULL, ++ .maxlen = 0, ++ .mode = 0555, ++ .child = ocfs2_nm_table ++ }, ++ { .ctl_name = 0} ++}; ++ ++static ctl_table ocfs2_kern_table[] = { ++ { ++ .ctl_name = FS_OCFS2, ++ .procname = "ocfs2", ++ .data = NULL, ++ .maxlen = 0, ++ .mode = 0555, ++ .child = ocfs2_mod_table ++ }, ++ { .ctl_name = 0} ++}; ++ ++static ctl_table ocfs2_root_table[] = { ++ { ++ .ctl_name = CTL_FS, ++ .procname = "fs", ++ .data = NULL, ++ .maxlen = 0, ++ .mode = 0555, ++ .child = ocfs2_kern_table ++ }, ++ { .ctl_name = 0 } ++}; ++ ++static struct ctl_table_header *ocfs2_table_header = NULL; ++ ++ ++/* ++ * Initialization ++ */ ++ + static int __init ocfs2_stack_glue_init(void) + { + strcpy(cluster_stack_name, OCFS2_STACK_PLUGIN_O2CB); + ++ ocfs2_table_header = register_sysctl_table(ocfs2_root_table); ++ if (!ocfs2_table_header) { ++ printk(KERN_ERR ++ "ocfs2 stack glue: unable to register sysctl\n"); ++ return -ENOMEM; /* or something. */ ++ } ++ + return ocfs2_sysfs_init(); + } + +@@ -559,6 +670,8 @@ static void __exit ocfs2_stack_glue_exit(void) + { + lproto = NULL; + ocfs2_sysfs_exit(); ++ if (ocfs2_table_header) ++ unregister_sysctl_table(ocfs2_table_header); + } + + MODULE_AUTHOR("Oracle"); +diff --git a/fs/ocfs2/stackglue.h b/fs/ocfs2/stackglue.h +index 005e4f1..db56281 100644 +--- a/fs/ocfs2/stackglue.h ++++ b/fs/ocfs2/stackglue.h +@@ -134,22 +134,10 @@ struct ocfs2_stack_operations { + * be freed. Thus, a stack must not return from ->disconnect() + * until it will no longer reference the conn pointer. + * +- * If hangup_pending is zero, ocfs2_cluster_disconnect() will also +- * be dropping the reference on the module. ++ * Once this call returns, the stack glue will be dropping this ++ * connection's reference on the module. + */ +- int (*disconnect)(struct ocfs2_cluster_connection *conn, +- int hangup_pending); +- +- /* +- * ocfs2_cluster_hangup() exists for compatibility with older +- * ocfs2 tools. Only the classic stack really needs it. As such +- * ->hangup() is not required of all stacks. See the comment by +- * ocfs2_cluster_hangup() for more details. +- * +- * Note that ocfs2_cluster_hangup() can only be called if +- * hangup_pending was passed to ocfs2_cluster_disconnect(). +- */ +- void (*hangup)(const char *group, int grouplen); ++ int (*disconnect)(struct ocfs2_cluster_connection *conn); + + /* + * ->this_node() returns the cluster's unique identifier for the +@@ -258,4 +246,5 @@ void ocfs2_stack_glue_set_locking_protocol(struct ocfs2_locking_protocol *proto) + /* Used by stack plugins */ + int ocfs2_stack_glue_register(struct ocfs2_stack_plugin *plugin); + void ocfs2_stack_glue_unregister(struct ocfs2_stack_plugin *plugin); ++ + #endif /* STACKGLUE_H */ +diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c +index 1740362..ab8ccc9 100644 +--- a/fs/proc/task_mmu.c ++++ b/fs/proc/task_mmu.c +@@ -315,9 +315,9 @@ struct mem_size_stats { + }; + + static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, +- void *private) ++ struct mm_walk *walk) + { +- struct mem_size_stats *mss = private; ++ struct mem_size_stats *mss = walk->private; + struct vm_area_struct *vma = mss->vma; + pte_t *pte, ptent; + spinlock_t *ptl; +@@ -365,19 +365,21 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, + return 0; + } + +-static struct mm_walk smaps_walk = { .pmd_entry = smaps_pte_range }; +- + static int show_smap(struct seq_file *m, void *v) + { + struct vm_area_struct *vma = v; + struct mem_size_stats mss; + int ret; ++ struct mm_walk smaps_walk = { ++ .pmd_entry = smaps_pte_range, ++ .mm = vma->vm_mm, ++ .private = &mss, ++ }; + + memset(&mss, 0, sizeof mss); + mss.vma = vma; + if (vma->vm_mm && !is_vm_hugetlb_page(vma)) +- walk_page_range(vma->vm_mm, vma->vm_start, vma->vm_end, +- &smaps_walk, &mss); ++ walk_page_range(vma->vm_start, vma->vm_end, &smaps_walk); + + ret = show_map(m, v); + if (ret) +@@ -426,9 +428,9 @@ const struct file_operations proc_smaps_operations = { + }; + + static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, +- unsigned long end, void *private) ++ unsigned long end, struct mm_walk *walk) + { +- struct vm_area_struct *vma = private; ++ struct vm_area_struct *vma = walk->private; + pte_t *pte, ptent; + spinlock_t *ptl; + struct page *page; +@@ -452,8 +454,6 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, + return 0; + } + +-static struct mm_walk clear_refs_walk = { .pmd_entry = clear_refs_pte_range }; +- + static ssize_t clear_refs_write(struct file *file, const char __user *buf, + size_t count, loff_t *ppos) + { +@@ -476,11 +476,17 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, + return -ESRCH; + mm = get_task_mm(task); + if (mm) { ++ static struct mm_walk clear_refs_walk; ++ memset(&clear_refs_walk, 0, sizeof(clear_refs_walk)); ++ clear_refs_walk.pmd_entry = clear_refs_pte_range; ++ clear_refs_walk.mm = mm; + down_read(&mm->mmap_sem); +- for (vma = mm->mmap; vma; vma = vma->vm_next) ++ for (vma = mm->mmap; vma; vma = vma->vm_next) { ++ clear_refs_walk.private = vma; + if (!is_vm_hugetlb_page(vma)) +- walk_page_range(mm, vma->vm_start, vma->vm_end, +- &clear_refs_walk, vma); ++ walk_page_range(vma->vm_start, vma->vm_end, ++ &clear_refs_walk); ++ } + flush_tlb_mm(mm); + up_read(&mm->mmap_sem); + mmput(mm); +@@ -528,9 +534,9 @@ static int add_to_pagemap(unsigned long addr, u64 pfn, + } + + static int pagemap_pte_hole(unsigned long start, unsigned long end, +- void *private) ++ struct mm_walk *walk) + { +- struct pagemapread *pm = private; ++ struct pagemapread *pm = walk->private; + unsigned long addr; + int err = 0; + for (addr = start; addr < end; addr += PAGE_SIZE) { +@@ -547,24 +553,45 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte) + return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); + } + ++static unsigned long pte_to_pagemap_entry(pte_t pte) ++{ ++ unsigned long pme = 0; ++ if (is_swap_pte(pte)) ++ pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte)) ++ | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; ++ else if (pte_present(pte)) ++ pme = PM_PFRAME(pte_pfn(pte)) ++ | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT; ++ return pme; ++} ++ + static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, +- void *private) ++ struct mm_walk *walk) + { +- struct pagemapread *pm = private; ++ struct vm_area_struct *vma; ++ struct pagemapread *pm = walk->private; + pte_t *pte; + int err = 0; + ++ /* find the first VMA at or above 'addr' */ ++ vma = find_vma(walk->mm, addr); + for (; addr != end; addr += PAGE_SIZE) { + u64 pfn = PM_NOT_PRESENT; +- pte = pte_offset_map(pmd, addr); +- if (is_swap_pte(*pte)) +- pfn = PM_PFRAME(swap_pte_to_pagemap_entry(*pte)) +- | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; +- else if (pte_present(*pte)) +- pfn = PM_PFRAME(pte_pfn(*pte)) +- | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT; +- /* unmap so we're not in atomic when we copy to userspace */ +- pte_unmap(pte); ++ ++ /* check to see if we've left 'vma' behind ++ * and need a new, higher one */ ++ if (vma && (addr >= vma->vm_end)) ++ vma = find_vma(walk->mm, addr); ++ ++ /* check that 'vma' actually covers this address, ++ * and that it isn't a huge page vma */ ++ if (vma && (vma->vm_start <= addr) && ++ !is_vm_hugetlb_page(vma)) { ++ pte = pte_offset_map(pmd, addr); ++ pfn = pte_to_pagemap_entry(*pte); ++ /* unmap before userspace copy */ ++ pte_unmap(pte); ++ } + err = add_to_pagemap(addr, pfn, pm); + if (err) + return err; +@@ -675,8 +702,8 @@ static ssize_t pagemap_read(struct file *file, char __user *buf, + * user buffer is tracked in "pm", and the walk + * will stop when we hit the end of the buffer. + */ +- ret = walk_page_range(mm, start_vaddr, end_vaddr, +- &pagemap_walk, &pm); ++ ret = walk_page_range(start_vaddr, end_vaddr, ++ &pagemap_walk); + if (ret == PM_END_OF_BUFFER) + ret = 0; + /* don't need mmap_sem for these, but this looks cleaner */ +diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h +index 8fa9c2d..8ec865d 100644 +--- a/fs/udf/udfdecl.h ++++ b/fs/udf/udfdecl.h +@@ -16,7 +16,7 @@ + #define UDF_PREALLOCATE + #define UDF_DEFAULT_PREALLOC_BLOCKS 8 + +-#define UDFFS_DEBUG ++#undef UDFFS_DEBUG + + #ifdef UDFFS_DEBUG + #define udf_debug(f, a...) \ +diff --git a/include/asm-arm/arch-pxa/regs-lcd.h b/include/asm-arm/arch-pxa/regs-lcd.h +index f762493..3ba464c 100644 +--- a/include/asm-arm/arch-pxa/regs-lcd.h ++++ b/include/asm-arm/arch-pxa/regs-lcd.h +@@ -1,5 +1,8 @@ + #ifndef __ASM_ARCH_REGS_LCD_H + #define __ASM_ARCH_REGS_LCD_H ++ ++#include ++ + /* + * LCD Controller Registers and Bits Definitions + */ +@@ -69,7 +72,7 @@ + #define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */ + #define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */ + #define LCCR0_PDD_S 12 +-#define LCCR0_BM (1 << 20) /* Branch mask */ ++#define LCCR0_BM (1 << 20) /* Branch mask */ + #define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ + #define LCCR0_LCDT (1 << 22) /* LCD panel type */ + #define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ +diff --git a/include/asm-ia64/sn/simulator.h b/include/asm-ia64/sn/simulator.h +index c3fd3eb..c2611f6 100644 +--- a/include/asm-ia64/sn/simulator.h ++++ b/include/asm-ia64/sn/simulator.h +@@ -8,7 +8,7 @@ + #ifndef _ASM_IA64_SN_SIMULATOR_H + #define _ASM_IA64_SN_SIMULATOR_H + +- ++#if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_SGI_SN2) || defined(CONFIG_IA64_SGI_UV) + #define SNMAGIC 0xaeeeeeee8badbeefL + #define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;}) + +@@ -16,5 +16,10 @@ + #define IS_RUNNING_ON_SIMULATOR() (sn_prom_type) + #define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2) + extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */ ++#else ++#define IS_MEDUSA() 0 ++#define SIMULATOR_SLEEP() ++#define IS_RUNNING_ON_SIMULATOR() 0 ++#endif + + #endif /* _ASM_IA64_SN_SIMULATOR_H */ +diff --git a/include/asm-m68k/bitops.h b/include/asm-m68k/bitops.h +index 83d1f28..3e81064 100644 +--- a/include/asm-m68k/bitops.h ++++ b/include/asm-m68k/bitops.h +@@ -410,8 +410,49 @@ static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size, + res = ext2_find_first_zero_bit (p, size - 32 * (p - addr)); + return (p - addr) * 32 + res; + } +-#define ext2_find_next_bit(addr, size, off) \ +- generic_find_next_le_bit((unsigned long *)(addr), (size), (off)) ++ ++static inline int ext2_find_first_bit(const void *vaddr, unsigned size) ++{ ++ const unsigned long *p = vaddr, *addr = vaddr; ++ int res; ++ ++ if (!size) ++ return 0; ++ ++ size = (size >> 5) + ((size & 31) > 0); ++ while (*p++ == 0UL) { ++ if (--size == 0) ++ return (p - addr) << 5; ++ } ++ ++ --p; ++ for (res = 0; res < 32; res++) ++ if (ext2_test_bit(res, p)) ++ break; ++ return (p - addr) * 32 + res; ++} ++ ++static inline int ext2_find_next_bit(const void *vaddr, unsigned size, ++ unsigned offset) ++{ ++ const unsigned long *addr = vaddr; ++ const unsigned long *p = addr + (offset >> 5); ++ int bit = offset & 31UL, res; ++ ++ if (offset >= size) ++ return size; ++ ++ if (bit) { ++ /* Look for one in first longword */ ++ for (res = bit; res < 32; res++) ++ if (ext2_test_bit(res, p)) ++ return (p - addr) * 32 + res; ++ p++; ++ } ++ /* No set bit yet, search remaining full bytes for a set bit */ ++ res = ext2_find_first_bit(p, size - 32 * (p - addr)); ++ return (p - addr) * 32 + res; ++} + + #endif /* __KERNEL__ */ + +diff --git a/include/asm-mips/cpu-info.h b/include/asm-mips/cpu-info.h +index 0c5a358..2de73db 100644 +--- a/include/asm-mips/cpu-info.h ++++ b/include/asm-mips/cpu-info.h +@@ -56,7 +56,7 @@ struct cpuinfo_mips { + struct cache_desc tcache; /* Tertiary/split secondary cache */ + int srsets; /* Shadow register sets */ + int core; /* physical core number */ +-#if defined(CONFIG_MIPS_MT_SMTC) ++#if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC) + /* + * In the MIPS MT "SMTC" model, each TC is considered + * to be a "CPU" for the purposes of scheduling, but +@@ -64,7 +64,7 @@ struct cpuinfo_mips { + * to all TCs within the same VPE. + */ + int vpe_id; /* Virtual Processor number */ +-#endif /* CONFIG_MIPS_MT */ ++#endif + #ifdef CONFIG_MIPS_MT_SMTC + int tc_id; /* Thread Context number */ + #endif +diff --git a/include/asm-mips/gic.h b/include/asm-mips/gic.h +index 3a492f2..954807d 100644 +--- a/include/asm-mips/gic.h ++++ b/include/asm-mips/gic.h +@@ -24,8 +24,8 @@ + + #define MSK(n) ((1 << (n)) - 1) + #define REG32(addr) (*(volatile unsigned int *) (addr)) +-#define REG(base, offs) REG32((unsigned int)(base) + offs##_##OFS) +-#define REGP(base, phys) REG32((unsigned int)(base) + (phys)) ++#define REG(base, offs) REG32((unsigned long)(base) + offs##_##OFS) ++#define REGP(base, phys) REG32((unsigned long)(base) + (phys)) + + /* Accessors */ + #define GIC_REG(segment, offset) \ +diff --git a/include/asm-mips/lasat/serial.h b/include/asm-mips/lasat/serial.h +index bafe68b..1c37d70 100644 +--- a/include/asm-mips/lasat/serial.h ++++ b/include/asm-mips/lasat/serial.h +@@ -4,10 +4,10 @@ + #define LASAT_BASE_BAUD_100 (7372800 / 16) + #define LASAT_UART_REGS_BASE_100 0x1c8b0000 + #define LASAT_UART_REGS_SHIFT_100 2 +-#define LASATINT_UART_100 8 ++#define LASATINT_UART_100 16 + + /* * LASAT 200 boards serial configuration */ + #define LASAT_BASE_BAUD_200 (100000000 / 16 / 12) + #define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300) + #define LASAT_UART_REGS_SHIFT_200 3 +-#define LASATINT_UART_200 13 ++#define LASATINT_UART_200 21 +diff --git a/include/asm-mips/mach-au1x00/au1000.h b/include/asm-mips/mach-au1x00/au1000.h +index 1b5064d..0d302ba 100644 +--- a/include/asm-mips/mach-au1x00/au1000.h ++++ b/include/asm-mips/mach-au1x00/au1000.h +@@ -615,6 +615,7 @@ enum soc_au1500_ints { + AU1000_RTC_MATCH1_INT, + AU1000_RTC_MATCH2_INT, + AU1500_PCI_ERR_INT, ++ AU1500_RESERVED_INT, + AU1000_USB_DEV_REQ_INT, + AU1000_USB_DEV_SUS_INT, + AU1000_USB_HOST_INT, +diff --git a/include/asm-mips/pgtable-bits.h b/include/asm-mips/pgtable-bits.h +index 60e2f93..51b34a4 100644 +--- a/include/asm-mips/pgtable-bits.h ++++ b/include/asm-mips/pgtable-bits.h +@@ -134,6 +134,4 @@ + + #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK) + +-#define CONF_CM_DEFAULT (PAGE_CACHABLE_DEFAULT>>_CACHE_SHIFT) +- + #endif /* _ASM_PGTABLE_BITS_H */ +diff --git a/include/asm-parisc/checksum.h b/include/asm-parisc/checksum.h +index cc3ec1b..e9639cc 100644 +--- a/include/asm-parisc/checksum.h ++++ b/include/asm-parisc/checksum.h +@@ -65,7 +65,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) + "2:\n" + : "=r" (sum), "=r" (iph), "=r" (ihl) + : "1" (iph), "2" (ihl) +- : "r19", "r20", "r21" ); ++ : "r19", "r20", "r21", "memory"); + + return (__force __sum16)sum; + } +diff --git a/include/asm-powerpc/mediabay.h b/include/asm-powerpc/mediabay.h +index df111c3..b2efb33 100644 +--- a/include/asm-powerpc/mediabay.h ++++ b/include/asm-powerpc/mediabay.h +@@ -17,8 +17,6 @@ + #define MB_POWER 6 /* media bay contains a Power device (???) */ + #define MB_NO 7 /* media bay contains nothing */ + +-int check_media_bay(struct device_node *which_bay, int what); +- + /* Number of bays in the machine or 0 */ + extern int media_bay_count; + +@@ -29,6 +27,16 @@ int check_media_bay_by_base(unsigned long base, int what); + /* called by IDE PMAC host driver to register IDE controller for media bay */ + int media_bay_set_ide_infos(struct device_node *which_bay, unsigned long base, + int irq, ide_hwif_t *hwif); ++ ++int check_media_bay(struct device_node *which_bay, int what); ++ ++#else ++ ++static inline int check_media_bay(struct device_node *which_bay, int what) ++{ ++ return -ENODEV; ++} ++ + #endif + + #endif /* __KERNEL__ */ +diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h +index 6abead6..99348c1 100644 +--- a/include/asm-powerpc/spu.h ++++ b/include/asm-powerpc/spu.h +@@ -131,7 +131,6 @@ struct spu { + u64 flags; + u64 class_0_pending; + u64 class_0_dar; +- u64 class_0_dsisr; + u64 class_1_dar; + u64 class_1_dsisr; + size_t ls_size; +diff --git a/include/asm-powerpc/spu_csa.h b/include/asm-powerpc/spu_csa.h +index 129ec14..a40fd49 100644 +--- a/include/asm-powerpc/spu_csa.h ++++ b/include/asm-powerpc/spu_csa.h +@@ -254,7 +254,7 @@ struct spu_state { + u64 spu_chnldata_RW[32]; + u32 spu_mailbox_data[4]; + u32 pu_mailbox_data[1]; +- u64 class_0_dar, class_0_dsisr, class_0_pending; ++ u64 class_0_dar, class_0_pending; + u64 class_1_dar, class_1_dsisr; + unsigned long suspend_time; + spinlock_t register_lock; +diff --git a/include/asm-powerpc/system.h b/include/asm-powerpc/system.h +index 2b6559a..5235f87 100644 +--- a/include/asm-powerpc/system.h ++++ b/include/asm-powerpc/system.h +@@ -34,7 +34,7 @@ + * SMP since it is only used to order updates to system memory. + */ + #define mb() __asm__ __volatile__ ("sync" : : : "memory") +-#define rmb() __asm__ __volatile__ (__stringify(LWSYNC) : : : "memory") ++#define rmb() __asm__ __volatile__ ("sync" : : : "memory") + #define wmb() __asm__ __volatile__ ("sync" : : : "memory") + #define read_barrier_depends() do { } while(0) + +diff --git a/include/linux/Kbuild b/include/linux/Kbuild +index 93b9885..b6fbb25 100644 +--- a/include/linux/Kbuild ++++ b/include/linux/Kbuild +@@ -166,6 +166,9 @@ unifdef-y += acct.h + unifdef-y += adb.h + unifdef-y += adfs_fs.h + unifdef-y += agpgart.h ++ifeq ($(wildcard include/asm-$(SRCARCH)/a.out.h),include/asm-$(SRCARCH)/a.out.h) ++unifdef-y += a.out.h ++endif + unifdef-y += apm_bios.h + unifdef-y += atalk.h + unifdef-y += atmdev.h +diff --git a/include/linux/a.out.h b/include/linux/a.out.h +index 208f4e8..e86dfca 100644 +--- a/include/linux/a.out.h ++++ b/include/linux/a.out.h +@@ -1,8 +1,6 @@ + #ifndef __A_OUT_GNU_H__ + #define __A_OUT_GNU_H__ + +-#ifdef CONFIG_ARCH_SUPPORTS_AOUT +- + #define __GNU_EXEC_MACROS__ + + #ifndef __STRUCT_EXEC_OVERRIDE__ +@@ -277,10 +275,4 @@ struct relocation_info + #endif /* no N_RELOCATION_INFO_DECLARED. */ + + #endif /*__ASSEMBLY__ */ +-#else /* CONFIG_ARCH_SUPPORTS_AOUT */ +-#ifndef __ASSEMBLY__ +-struct exec { +-}; +-#endif +-#endif /* CONFIG_ARCH_SUPPORTS_AOUT */ + #endif /* __A_OUT_GNU_H__ */ +diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h +index 661d90d..972b12b 100644 +--- a/include/linux/agp_backend.h ++++ b/include/linux/agp_backend.h +@@ -30,14 +30,6 @@ + #ifndef _AGP_BACKEND_H + #define _AGP_BACKEND_H 1 + +-#ifndef TRUE +-#define TRUE 1 +-#endif +- +-#ifndef FALSE +-#define FALSE 0 +-#endif +- + enum chipset_type { + NOT_SUPPORTED, + SUPPORTED, +@@ -57,7 +49,7 @@ struct agp_kern_info { + size_t aper_size; + int max_memory; /* In pages */ + int current_memory; +- int cant_use_aperture; ++ bool cant_use_aperture; + unsigned long page_mask; + struct vm_operations_struct *vm_ops; + }; +@@ -83,9 +75,9 @@ struct agp_memory { + off_t pg_start; + u32 type; + u32 physical; +- u8 is_bound; +- u8 is_flushed; +- u8 vmalloc_flag; ++ bool is_bound; ++ bool is_flushed; ++ bool vmalloc_flag; + }; + + #define AGP_NORMAL_MEMORY 0 +diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h +index 62aef58..c8fdb6e 100644 +--- a/include/linux/agpgart.h ++++ b/include/linux/agpgart.h +@@ -206,8 +206,8 @@ struct agp_front_data { + struct agp_controller *current_controller; + struct agp_controller *controllers; + struct agp_file_private *file_priv_list; +- u8 used_by_controller; +- u8 backend_acquired; ++ bool used_by_controller; ++ bool backend_acquired; + }; + + #endif /* __KERNEL__ */ +diff --git a/include/linux/if_tunnel.h b/include/linux/if_tunnel.h +index f1fbe9c..d4efe40 100644 +--- a/include/linux/if_tunnel.h ++++ b/include/linux/if_tunnel.h +@@ -41,7 +41,7 @@ struct ip_tunnel_prl { + __u16 __reserved; + __u32 datalen; + __u32 __reserved2; +- void __user *data; ++ /* data follows */ + }; + + /* PRL flags */ +diff --git a/include/linux/mm.h b/include/linux/mm.h +index c31a9cd..586a943 100644 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h +@@ -760,16 +760,17 @@ unsigned long unmap_vmas(struct mmu_gather **tlb, + * (see walk_page_range for more details) + */ + struct mm_walk { +- int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, void *); +- int (*pud_entry)(pud_t *, unsigned long, unsigned long, void *); +- int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, void *); +- int (*pte_entry)(pte_t *, unsigned long, unsigned long, void *); +- int (*pte_hole)(unsigned long, unsigned long, void *); ++ int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); ++ int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); ++ int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); ++ int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); ++ int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *); ++ struct mm_struct *mm; ++ void *private; + }; + +-int walk_page_range(const struct mm_struct *, unsigned long addr, +- unsigned long end, const struct mm_walk *walk, +- void *private); ++int walk_page_range(unsigned long addr, unsigned long end, ++ struct mm_walk *walk); + void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, + unsigned long end, unsigned long floor, unsigned long ceiling); + void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, +diff --git a/include/linux/pci.h b/include/linux/pci.h +index 509159b..d18b1dd 100644 +--- a/include/linux/pci.h ++++ b/include/linux/pci.h +@@ -206,6 +206,7 @@ struct pci_dev { + struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ + int rom_attr_enabled; /* has display of the rom attribute been enabled? */ + struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ ++ struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; /* sysfs file for WC mapping of resources */ + #ifdef CONFIG_PCI_MSI + struct list_head msi_list; + #endif +diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h +index 9b940e6..eafc9d6 100644 +--- a/include/linux/pci_ids.h ++++ b/include/linux/pci_ids.h +@@ -716,6 +716,7 @@ + #define PCI_DEVICE_ID_HP_CISSA 0x3220 + #define PCI_DEVICE_ID_HP_CISSC 0x3230 + #define PCI_DEVICE_ID_HP_CISSD 0x3238 ++#define PCI_DEVICE_ID_HP_CISSE 0x323a + #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 + + #define PCI_VENDOR_ID_PCTECH 0x1042 +diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h +index 9883bc9..fff1d27 100644 +--- a/include/linux/proc_fs.h ++++ b/include/linux/proc_fs.h +@@ -9,6 +9,8 @@ + + struct net; + struct completion; ++struct mm_struct; ++ + /* + * The proc filesystem constants/structures + */ +@@ -101,8 +103,6 @@ extern spinlock_t proc_subdir_lock; + extern void proc_root_init(void); + extern void proc_misc_init(void); + +-struct mm_struct; +- + void proc_flush_task(struct task_struct *task); + struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *); + int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); +diff --git a/include/linux/tcp.h b/include/linux/tcp.h +index 18e62e3..b31b6b7 100644 +--- a/include/linux/tcp.h ++++ b/include/linux/tcp.h +@@ -239,11 +239,6 @@ static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req) + return (struct tcp_request_sock *)req; + } + +-struct tcp_deferred_accept_info { +- struct sock *listen_sk; +- struct request_sock *request; +-}; +- + struct tcp_sock { + /* inet_connection_sock has to be the first member of tcp_sock */ + struct inet_connection_sock inet_conn; +@@ -379,8 +374,6 @@ struct tcp_sock { + unsigned int keepalive_intvl; /* time interval between keep alive probes */ + int linger2; + +- struct tcp_deferred_accept_info defer_tcp_accept; +- + unsigned long last_synq_overflow; + + u32 tso_deferred; +diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h +index f736e84..f80c0ed 100644 +--- a/include/net/netfilter/nf_conntrack_extend.h ++++ b/include/net/netfilter/nf_conntrack_extend.h +@@ -15,6 +15,7 @@ enum nf_ct_ext_id + + /* Extensions: optional stuff which isn't permanently in struct. */ + struct nf_ct_ext { ++ struct rcu_head rcu; + u8 offset[NF_CT_EXT_NUM]; + u8 len; + char data[0]; +diff --git a/include/net/request_sock.h b/include/net/request_sock.h +index b220b5f..0c96e7b 100644 +--- a/include/net/request_sock.h ++++ b/include/net/request_sock.h +@@ -115,8 +115,8 @@ struct request_sock_queue { + struct request_sock *rskq_accept_head; + struct request_sock *rskq_accept_tail; + rwlock_t syn_wait_lock; +- u16 rskq_defer_accept; +- /* 2 bytes hole, try to pack */ ++ u8 rskq_defer_accept; ++ /* 3 bytes hole, try to pack */ + struct listen_sock *listen_opt; + }; + +diff --git a/include/net/tcp.h b/include/net/tcp.h +index d448310..cf54034 100644 +--- a/include/net/tcp.h ++++ b/include/net/tcp.h +@@ -139,7 +139,6 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo); + #define MAX_TCP_KEEPINTVL 32767 + #define MAX_TCP_KEEPCNT 127 + #define MAX_TCP_SYNCNT 127 +-#define MAX_TCP_ACCEPT_DEFERRED 65535 + + #define TCP_SYNQ_INTERVAL (HZ/5) /* Period of SYNACK timer */ + +diff --git a/ipc/shm.c b/ipc/shm.c +index d05f6b5..790240c 100644 +--- a/ipc/shm.c ++++ b/ipc/shm.c +@@ -1058,16 +1058,16 @@ asmlinkage long sys_shmdt(char __user *shmaddr) + static int sysvipc_shm_proc_show(struct seq_file *s, void *it) + { + struct shmid_kernel *shp = it; +- char *format; + +-#define SMALL_STRING "%10d %10d %4o %10u %5u %5u %5d %5u %5u %5u %5u %10lu %10lu %10lu\n" +-#define BIG_STRING "%10d %10d %4o %21u %5u %5u %5d %5u %5u %5u %5u %10lu %10lu %10lu\n" ++#if BITS_PER_LONG <= 32 ++#define SIZE_SPEC "%10lu" ++#else ++#define SIZE_SPEC "%21lu" ++#endif + +- if (sizeof(size_t) <= sizeof(int)) +- format = SMALL_STRING; +- else +- format = BIG_STRING; +- return seq_printf(s, format, ++ return seq_printf(s, ++ "%10d %10d %4o " SIZE_SPEC " %5u %5u " ++ "%5lu %5u %5u %5u %5u %10lu %10lu %10lu\n", + shp->shm_perm.key, + shp->shm_perm.id, + shp->shm_perm.mode, +diff --git a/kernel/kprobes.c b/kernel/kprobes.c +index 1e0250c..d4998f8 100644 +--- a/kernel/kprobes.c ++++ b/kernel/kprobes.c +@@ -699,8 +699,9 @@ static int __register_kprobes(struct kprobe **kps, int num, + return -EINVAL; + for (i = 0; i < num; i++) { + ret = __register_kprobe(kps[i], called_from); +- if (ret < 0 && i > 0) { +- unregister_kprobes(kps, i); ++ if (ret < 0) { ++ if (i > 0) ++ unregister_kprobes(kps, i); + break; + } + } +@@ -776,8 +777,9 @@ static int __register_jprobes(struct jprobe **jps, int num, + jp->kp.break_handler = longjmp_break_handler; + ret = __register_kprobe(&jp->kp, called_from); + } +- if (ret < 0 && i > 0) { +- unregister_jprobes(jps, i); ++ if (ret < 0) { ++ if (i > 0) ++ unregister_jprobes(jps, i); + break; + } + } +@@ -920,8 +922,9 @@ static int __register_kretprobes(struct kretprobe **rps, int num, + return -EINVAL; + for (i = 0; i < num; i++) { + ret = __register_kretprobe(rps[i], called_from); +- if (ret < 0 && i > 0) { +- unregister_kretprobes(rps, i); ++ if (ret < 0) { ++ if (i > 0) ++ unregister_kretprobes(rps, i); + break; + } + } +diff --git a/lib/radix-tree.c b/lib/radix-tree.c +index bd52171..169a2f8 100644 +--- a/lib/radix-tree.c ++++ b/lib/radix-tree.c +@@ -88,6 +88,57 @@ static inline gfp_t root_gfp_mask(struct radix_tree_root *root) + return root->gfp_mask & __GFP_BITS_MASK; + } + ++static inline void tag_set(struct radix_tree_node *node, unsigned int tag, ++ int offset) ++{ ++ __set_bit(offset, node->tags[tag]); ++} ++ ++static inline void tag_clear(struct radix_tree_node *node, unsigned int tag, ++ int offset) ++{ ++ __clear_bit(offset, node->tags[tag]); ++} ++ ++static inline int tag_get(struct radix_tree_node *node, unsigned int tag, ++ int offset) ++{ ++ return test_bit(offset, node->tags[tag]); ++} ++ ++static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag) ++{ ++ root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT)); ++} ++ ++static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag) ++{ ++ root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT)); ++} ++ ++static inline void root_tag_clear_all(struct radix_tree_root *root) ++{ ++ root->gfp_mask &= __GFP_BITS_MASK; ++} ++ ++static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag) ++{ ++ return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT)); ++} ++ ++/* ++ * Returns 1 if any slot in the node has this tag set. ++ * Otherwise returns 0. ++ */ ++static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag) ++{ ++ int idx; ++ for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) { ++ if (node->tags[tag][idx]) ++ return 1; ++ } ++ return 0; ++} + /* + * This assumes that the caller has performed appropriate preallocation, and + * that the caller has pinned this thread of control to the current CPU. +@@ -124,6 +175,17 @@ static void radix_tree_node_rcu_free(struct rcu_head *head) + { + struct radix_tree_node *node = + container_of(head, struct radix_tree_node, rcu_head); ++ ++ /* ++ * must only free zeroed nodes into the slab. radix_tree_shrink ++ * can leave us with a non-NULL entry in the first slot, so clear ++ * that here to make sure. ++ */ ++ tag_clear(node, 0, 0); ++ tag_clear(node, 1, 0); ++ node->slots[0] = NULL; ++ node->count = 0; ++ + kmem_cache_free(radix_tree_node_cachep, node); + } + +@@ -165,59 +227,6 @@ out: + } + EXPORT_SYMBOL(radix_tree_preload); + +-static inline void tag_set(struct radix_tree_node *node, unsigned int tag, +- int offset) +-{ +- __set_bit(offset, node->tags[tag]); +-} +- +-static inline void tag_clear(struct radix_tree_node *node, unsigned int tag, +- int offset) +-{ +- __clear_bit(offset, node->tags[tag]); +-} +- +-static inline int tag_get(struct radix_tree_node *node, unsigned int tag, +- int offset) +-{ +- return test_bit(offset, node->tags[tag]); +-} +- +-static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag) +-{ +- root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT)); +-} +- +- +-static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag) +-{ +- root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT)); +-} +- +-static inline void root_tag_clear_all(struct radix_tree_root *root) +-{ +- root->gfp_mask &= __GFP_BITS_MASK; +-} +- +-static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag) +-{ +- return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT)); +-} +- +-/* +- * Returns 1 if any slot in the node has this tag set. +- * Otherwise returns 0. +- */ +-static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag) +-{ +- int idx; +- for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) { +- if (node->tags[tag][idx]) +- return 1; +- } +- return 0; +-} +- + /* + * Return the maximum key which can be store into a + * radix tree with height HEIGHT. +@@ -930,11 +939,6 @@ static inline void radix_tree_shrink(struct radix_tree_root *root) + newptr = radix_tree_ptr_to_indirect(newptr); + root->rnode = newptr; + root->height--; +- /* must only free zeroed nodes into the slab */ +- tag_clear(to_free, 0, 0); +- tag_clear(to_free, 1, 0); +- to_free->slots[0] = NULL; +- to_free->count = 0; + radix_tree_node_free(to_free); + } + } +diff --git a/mm/pagewalk.c b/mm/pagewalk.c +index 0afd238..d5878be 100644 +--- a/mm/pagewalk.c ++++ b/mm/pagewalk.c +@@ -3,14 +3,14 @@ + #include + + static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, +- const struct mm_walk *walk, void *private) ++ struct mm_walk *walk) + { + pte_t *pte; + int err = 0; + + pte = pte_offset_map(pmd, addr); + for (;;) { +- err = walk->pte_entry(pte, addr, addr + PAGE_SIZE, private); ++ err = walk->pte_entry(pte, addr, addr + PAGE_SIZE, walk); + if (err) + break; + addr += PAGE_SIZE; +@@ -24,7 +24,7 @@ static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, + } + + static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, +- const struct mm_walk *walk, void *private) ++ struct mm_walk *walk) + { + pmd_t *pmd; + unsigned long next; +@@ -35,15 +35,15 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, + next = pmd_addr_end(addr, end); + if (pmd_none_or_clear_bad(pmd)) { + if (walk->pte_hole) +- err = walk->pte_hole(addr, next, private); ++ err = walk->pte_hole(addr, next, walk); + if (err) + break; + continue; + } + if (walk->pmd_entry) +- err = walk->pmd_entry(pmd, addr, next, private); ++ err = walk->pmd_entry(pmd, addr, next, walk); + if (!err && walk->pte_entry) +- err = walk_pte_range(pmd, addr, next, walk, private); ++ err = walk_pte_range(pmd, addr, next, walk); + if (err) + break; + } while (pmd++, addr = next, addr != end); +@@ -52,7 +52,7 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, + } + + static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, +- const struct mm_walk *walk, void *private) ++ struct mm_walk *walk) + { + pud_t *pud; + unsigned long next; +@@ -63,15 +63,15 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, + next = pud_addr_end(addr, end); + if (pud_none_or_clear_bad(pud)) { + if (walk->pte_hole) +- err = walk->pte_hole(addr, next, private); ++ err = walk->pte_hole(addr, next, walk); + if (err) + break; + continue; + } + if (walk->pud_entry) +- err = walk->pud_entry(pud, addr, next, private); ++ err = walk->pud_entry(pud, addr, next, walk); + if (!err && (walk->pmd_entry || walk->pte_entry)) +- err = walk_pmd_range(pud, addr, next, walk, private); ++ err = walk_pmd_range(pud, addr, next, walk); + if (err) + break; + } while (pud++, addr = next, addr != end); +@@ -85,15 +85,15 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, + * @addr: starting address + * @end: ending address + * @walk: set of callbacks to invoke for each level of the tree +- * @private: private data passed to the callback function + * + * Recursively walk the page table for the memory area in a VMA, + * calling supplied callbacks. Callbacks are called in-order (first + * PGD, first PUD, first PMD, first PTE, second PTE... second PMD, + * etc.). If lower-level callbacks are omitted, walking depth is reduced. + * +- * Each callback receives an entry pointer, the start and end of the +- * associated range, and a caller-supplied private data pointer. ++ * Each callback receives an entry pointer and the start and end of the ++ * associated range, and a copy of the original mm_walk for access to ++ * the ->private or ->mm fields. + * + * No locks are taken, but the bottom level iterator will map PTE + * directories from highmem if necessary. +@@ -101,9 +101,8 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, + * If any callback returns a non-zero value, the walk is aborted and + * the return value is propagated back to the caller. Otherwise 0 is returned. + */ +-int walk_page_range(const struct mm_struct *mm, +- unsigned long addr, unsigned long end, +- const struct mm_walk *walk, void *private) ++int walk_page_range(unsigned long addr, unsigned long end, ++ struct mm_walk *walk) + { + pgd_t *pgd; + unsigned long next; +@@ -112,21 +111,24 @@ int walk_page_range(const struct mm_struct *mm, + if (addr >= end) + return err; + +- pgd = pgd_offset(mm, addr); ++ if (!walk->mm) ++ return -EINVAL; ++ ++ pgd = pgd_offset(walk->mm, addr); + do { + next = pgd_addr_end(addr, end); + if (pgd_none_or_clear_bad(pgd)) { + if (walk->pte_hole) +- err = walk->pte_hole(addr, next, private); ++ err = walk->pte_hole(addr, next, walk); + if (err) + break; + continue; + } + if (walk->pgd_entry) +- err = walk->pgd_entry(pgd, addr, next, private); ++ err = walk->pgd_entry(pgd, addr, next, walk); + if (!err && + (walk->pud_entry || walk->pmd_entry || walk->pte_entry)) +- err = walk_pud_range(pgd, addr, next, walk, private); ++ err = walk_pud_range(pgd, addr, next, walk); + if (err) + break; + } while (pgd++, addr = next, addr != end); +diff --git a/mm/vmscan.c b/mm/vmscan.c +index 9a29901..967d30c 100644 +--- a/mm/vmscan.c ++++ b/mm/vmscan.c +@@ -1307,7 +1307,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, + struct scan_control *sc) + { + int priority; +- int ret = 0; ++ unsigned long ret = 0; + unsigned long total_scanned = 0; + unsigned long nr_reclaimed = 0; + struct reclaim_state *reclaim_state = current->reclaim_state; +diff --git a/net/atm/br2684.c b/net/atm/br2684.c +index 9d52ebf..05fafdc 100644 +--- a/net/atm/br2684.c ++++ b/net/atm/br2684.c +@@ -188,10 +188,13 @@ static int br2684_xmit_vcc(struct sk_buff *skb, struct br2684_dev *brdev, + return 0; + } + } +- } else { +- skb_push(skb, 2); +- if (brdev->payload == p_bridged) ++ } else { /* e_vc */ ++ if (brdev->payload == p_bridged) { ++ skb_push(skb, 2); + memset(skb->data, 0, 2); ++ } else { /* p_routed */ ++ skb_pull(skb, ETH_HLEN); ++ } + } + skb_debug(skb); + +@@ -377,11 +380,8 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb) + (skb->data + 6, ethertype_ipv4, + sizeof(ethertype_ipv4)) == 0) + skb->protocol = __constant_htons(ETH_P_IP); +- else { +- brdev->stats.rx_errors++; +- dev_kfree_skb(skb); +- return; +- } ++ else ++ goto error; + skb_pull(skb, sizeof(llc_oui_ipv4)); + skb_reset_network_header(skb); + skb->pkt_type = PACKET_HOST; +@@ -394,44 +394,56 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb) + (memcmp(skb->data, llc_oui_pid_pad, 7) == 0)) { + skb_pull(skb, sizeof(llc_oui_pid_pad)); + skb->protocol = eth_type_trans(skb, net_dev); +- } else { +- brdev->stats.rx_errors++; +- dev_kfree_skb(skb); +- return; +- } ++ } else ++ goto error; + +- } else { +- /* first 2 chars should be 0 */ +- if (*((u16 *) (skb->data)) != 0) { +- brdev->stats.rx_errors++; +- dev_kfree_skb(skb); +- return; ++ } else { /* e_vc */ ++ if (brdev->payload == p_routed) { ++ struct iphdr *iph; ++ ++ skb_reset_network_header(skb); ++ iph = ip_hdr(skb); ++ if (iph->version == 4) ++ skb->protocol = __constant_htons(ETH_P_IP); ++ else if (iph->version == 6) ++ skb->protocol = __constant_htons(ETH_P_IPV6); ++ else ++ goto error; ++ skb->pkt_type = PACKET_HOST; ++ } else { /* p_bridged */ ++ /* first 2 chars should be 0 */ ++ if (*((u16 *) (skb->data)) != 0) ++ goto error; ++ skb_pull(skb, BR2684_PAD_LEN); ++ skb->protocol = eth_type_trans(skb, net_dev); + } +- skb_pull(skb, BR2684_PAD_LEN + ETH_HLEN); /* pad, dstmac, srcmac, ethtype */ +- skb->protocol = eth_type_trans(skb, net_dev); + } + + #ifdef CONFIG_ATM_BR2684_IPFILTER +- if (unlikely(packet_fails_filter(skb->protocol, brvcc, skb))) { +- brdev->stats.rx_dropped++; +- dev_kfree_skb(skb); +- return; +- } ++ if (unlikely(packet_fails_filter(skb->protocol, brvcc, skb))) ++ goto dropped; + #endif /* CONFIG_ATM_BR2684_IPFILTER */ + skb->dev = net_dev; + ATM_SKB(skb)->vcc = atmvcc; /* needed ? */ + pr_debug("received packet's protocol: %x\n", ntohs(skb->protocol)); + skb_debug(skb); +- if (unlikely(!(net_dev->flags & IFF_UP))) { +- /* sigh, interface is down */ +- brdev->stats.rx_dropped++; +- dev_kfree_skb(skb); +- return; +- } ++ /* sigh, interface is down? */ ++ if (unlikely(!(net_dev->flags & IFF_UP))) ++ goto dropped; + brdev->stats.rx_packets++; + brdev->stats.rx_bytes += skb->len; + memset(ATM_SKB(skb), 0, sizeof(struct atm_skb_data)); + netif_rx(skb); ++ return; ++ ++dropped: ++ brdev->stats.rx_dropped++; ++ goto free_skb; ++error: ++ brdev->stats.rx_errors++; ++free_skb: ++ dev_kfree_skb(skb); ++ return; + } + + /* +@@ -518,9 +530,9 @@ static int br2684_regvcc(struct atm_vcc *atmvcc, void __user * arg) + struct sk_buff *next = skb->next; + + skb->next = skb->prev = NULL; ++ br2684_push(atmvcc, skb); + BRPRIV(skb->dev)->stats.rx_bytes -= skb->len; + BRPRIV(skb->dev)->stats.rx_packets--; +- br2684_push(atmvcc, skb); + + skb = next; + } +diff --git a/net/core/dev.c b/net/core/dev.c +index 5829630..68d8df0 100644 +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -119,6 +119,7 @@ + #include + #include + #include ++#include + + #include "net-sysfs.h" + +@@ -1362,6 +1363,29 @@ void netif_device_attach(struct net_device *dev) + } + EXPORT_SYMBOL(netif_device_attach); + ++static bool can_checksum_protocol(unsigned long features, __be16 protocol) ++{ ++ return ((features & NETIF_F_GEN_CSUM) || ++ ((features & NETIF_F_IP_CSUM) && ++ protocol == htons(ETH_P_IP)) || ++ ((features & NETIF_F_IPV6_CSUM) && ++ protocol == htons(ETH_P_IPV6))); ++} ++ ++static bool dev_can_checksum(struct net_device *dev, struct sk_buff *skb) ++{ ++ if (can_checksum_protocol(dev->features, skb->protocol)) ++ return true; ++ ++ if (skb->protocol == htons(ETH_P_8021Q)) { ++ struct vlan_ethhdr *veh = (struct vlan_ethhdr *)skb->data; ++ if (can_checksum_protocol(dev->features & dev->vlan_features, ++ veh->h_vlan_encapsulated_proto)) ++ return true; ++ } ++ ++ return false; ++} + + /* + * Invalidate hardware checksum when packet is to be mangled, and +@@ -1640,14 +1664,8 @@ int dev_queue_xmit(struct sk_buff *skb) + if (skb->ip_summed == CHECKSUM_PARTIAL) { + skb_set_transport_header(skb, skb->csum_start - + skb_headroom(skb)); +- +- if (!(dev->features & NETIF_F_GEN_CSUM) && +- !((dev->features & NETIF_F_IP_CSUM) && +- skb->protocol == htons(ETH_P_IP)) && +- !((dev->features & NETIF_F_IPV6_CSUM) && +- skb->protocol == htons(ETH_P_IPV6))) +- if (skb_checksum_help(skb)) +- goto out_kfree_skb; ++ if (!dev_can_checksum(dev, skb) && skb_checksum_help(skb)) ++ goto out_kfree_skb; + } + + gso: +diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c +index 6de4bd1..1e8be24 100644 +--- a/net/dccp/ackvec.c ++++ b/net/dccp/ackvec.c +@@ -290,12 +290,12 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk, + + while (1) { + const u8 len = dccp_ackvec_len(av, index); +- const u8 state = dccp_ackvec_state(av, index); ++ const u8 av_state = dccp_ackvec_state(av, index); + /* + * valid packets not yet in av_buf have a reserved + * entry, with a len equal to 0. + */ +- if (state == DCCP_ACKVEC_STATE_NOT_RECEIVED && ++ if (av_state == DCCP_ACKVEC_STATE_NOT_RECEIVED && + len == 0 && delta == 0) { /* Found our + reserved seat! */ + dccp_pr_debug("Found %llu reserved seat!\n", +@@ -325,31 +325,6 @@ out_duplicate: + return -EILSEQ; + } + +-#ifdef CONFIG_IP_DCCP_DEBUG +-void dccp_ackvector_print(const u64 ackno, const unsigned char *vector, int len) +-{ +- dccp_pr_debug_cat("ACK vector len=%d, ackno=%llu |", len, +- (unsigned long long)ackno); +- +- while (len--) { +- const u8 state = (*vector & DCCP_ACKVEC_STATE_MASK) >> 6; +- const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK; +- +- dccp_pr_debug_cat("%d,%d|", state, rl); +- ++vector; +- } +- +- dccp_pr_debug_cat("\n"); +-} +- +-void dccp_ackvec_print(const struct dccp_ackvec *av) +-{ +- dccp_ackvector_print(av->av_buf_ackno, +- av->av_buf + av->av_buf_head, +- av->av_vec_len); +-} +-#endif +- + static void dccp_ackvec_throw_record(struct dccp_ackvec *av, + struct dccp_ackvec_record *avr) + { +diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c +index f813077..a1929f3 100644 +--- a/net/dccp/ccids/ccid3.c ++++ b/net/dccp/ccids/ccid3.c +@@ -159,8 +159,8 @@ static void ccid3_hc_tx_update_x(struct sock *sk, ktime_t *stamp) + } else if (ktime_us_delta(now, hctx->ccid3hctx_t_ld) + - (s64)hctx->ccid3hctx_rtt >= 0) { + +- hctx->ccid3hctx_x = +- max(min(2 * hctx->ccid3hctx_x, min_rate), ++ hctx->ccid3hctx_x = min(2 * hctx->ccid3hctx_x, min_rate); ++ hctx->ccid3hctx_x = max(hctx->ccid3hctx_x, + scaled_div(((__u64)hctx->ccid3hctx_s) << 6, + hctx->ccid3hctx_rtt)); + hctx->ccid3hctx_t_ld = now; +@@ -329,8 +329,14 @@ static int ccid3_hc_tx_send_packet(struct sock *sk, struct sk_buff *skb) + hctx->ccid3hctx_x = rfc3390_initial_rate(sk); + hctx->ccid3hctx_t_ld = now; + } else { +- /* Sender does not have RTT sample: X_pps = 1 pkt/sec */ +- hctx->ccid3hctx_x = hctx->ccid3hctx_s; ++ /* ++ * Sender does not have RTT sample: ++ * - set fallback RTT (RFC 4340, 3.4) since a RTT value ++ * is needed in several parts (e.g. window counter); ++ * - set sending rate X_pps = 1pps as per RFC 3448, 4.2. ++ */ ++ hctx->ccid3hctx_rtt = DCCP_FALLBACK_RTT; ++ hctx->ccid3hctx_x = hctx->ccid3hctx_s; + hctx->ccid3hctx_x <<= 6; + } + ccid3_update_send_interval(hctx); +diff --git a/net/dccp/ccids/lib/tfrc.c b/net/dccp/ccids/lib/tfrc.c +index d1dfbb8..97ecec0 100644 +--- a/net/dccp/ccids/lib/tfrc.c ++++ b/net/dccp/ccids/lib/tfrc.c +@@ -14,14 +14,6 @@ module_param(tfrc_debug, bool, 0444); + MODULE_PARM_DESC(tfrc_debug, "Enable debug messages"); + #endif + +-extern int tfrc_tx_packet_history_init(void); +-extern void tfrc_tx_packet_history_exit(void); +-extern int tfrc_rx_packet_history_init(void); +-extern void tfrc_rx_packet_history_exit(void); +- +-extern int tfrc_li_init(void); +-extern void tfrc_li_exit(void); +- + static int __init tfrc_module_init(void) + { + int rc = tfrc_li_init(); +diff --git a/net/dccp/ccids/lib/tfrc.h b/net/dccp/ccids/lib/tfrc.h +index 1fb1187..ed98575 100644 +--- a/net/dccp/ccids/lib/tfrc.h ++++ b/net/dccp/ccids/lib/tfrc.h +@@ -15,7 +15,7 @@ + * (at your option) any later version. + */ + #include +-#include ++#include + #include "../../dccp.h" + /* internal includes that this module exports: */ + #include "loss_interval.h" +@@ -29,21 +29,19 @@ extern int tfrc_debug; + #endif + + /* integer-arithmetic divisions of type (a * 1000000)/b */ +-static inline u64 scaled_div(u64 a, u32 b) ++static inline u64 scaled_div(u64 a, u64 b) + { + BUG_ON(b==0); +- a *= 1000000; +- do_div(a, b); +- return a; ++ return div64_u64(a * 1000000, b); + } + +-static inline u32 scaled_div32(u64 a, u32 b) ++static inline u32 scaled_div32(u64 a, u64 b) + { + u64 result = scaled_div(a, b); + + if (result > UINT_MAX) { +- DCCP_CRIT("Overflow: a(%llu)/b(%u) > ~0U", +- (unsigned long long)a, b); ++ DCCP_CRIT("Overflow: %llu/%llu > UINT_MAX", ++ (unsigned long long)a, (unsigned long long)b); + return UINT_MAX; + } + return result; +@@ -58,7 +56,14 @@ static inline u32 tfrc_ewma(const u32 avg, const u32 newval, const u8 weight) + return avg ? (weight * avg + (10 - weight) * newval) / 10 : newval; + } + +-extern u32 tfrc_calc_x(u16 s, u32 R, u32 p); +-extern u32 tfrc_calc_x_reverse_lookup(u32 fvalue); ++extern u32 tfrc_calc_x(u16 s, u32 R, u32 p); ++extern u32 tfrc_calc_x_reverse_lookup(u32 fvalue); + ++extern int tfrc_tx_packet_history_init(void); ++extern void tfrc_tx_packet_history_exit(void); ++extern int tfrc_rx_packet_history_init(void); ++extern void tfrc_rx_packet_history_exit(void); ++ ++extern int tfrc_li_init(void); ++extern void tfrc_li_exit(void); + #endif /* _TFRC_H_ */ +diff --git a/net/dccp/ccids/lib/tfrc_equation.c b/net/dccp/ccids/lib/tfrc_equation.c +index e4e64b7..2f20a29 100644 +--- a/net/dccp/ccids/lib/tfrc_equation.c ++++ b/net/dccp/ccids/lib/tfrc_equation.c +@@ -661,7 +661,7 @@ u32 tfrc_calc_x(u16 s, u32 R, u32 p) + + EXPORT_SYMBOL_GPL(tfrc_calc_x); + +-/* ++/** + * tfrc_calc_x_reverse_lookup - try to find p given f(p) + * + * @fvalue: function value to match, scaled by 1000000 +@@ -676,11 +676,11 @@ u32 tfrc_calc_x_reverse_lookup(u32 fvalue) + + /* Error cases. */ + if (fvalue < tfrc_calc_x_lookup[0][1]) { +- DCCP_WARN("fvalue %d smaller than resolution\n", fvalue); +- return tfrc_calc_x_lookup[0][1]; ++ DCCP_WARN("fvalue %u smaller than resolution\n", fvalue); ++ return TFRC_SMALLEST_P; + } + if (fvalue > tfrc_calc_x_lookup[TFRC_CALC_X_ARRSIZE - 1][0]) { +- DCCP_WARN("fvalue %d exceeds bounds!\n", fvalue); ++ DCCP_WARN("fvalue %u exceeds bounds!\n", fvalue); + return 1000000; + } + +diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c +index 33ad483..66dca5b 100644 +--- a/net/dccp/minisocks.c ++++ b/net/dccp/minisocks.c +@@ -165,12 +165,12 @@ out_free: + /* See dccp_v4_conn_request */ + newdmsk->dccpms_sequence_window = req->rcv_wnd; + +- newdp->dccps_gar = newdp->dccps_isr = dreq->dreq_isr; +- dccp_update_gsr(newsk, dreq->dreq_isr); +- +- newdp->dccps_iss = dreq->dreq_iss; ++ newdp->dccps_gar = newdp->dccps_iss = dreq->dreq_iss; + dccp_update_gss(newsk, dreq->dreq_iss); + ++ newdp->dccps_isr = dreq->dreq_isr; ++ dccp_update_gsr(newsk, dreq->dreq_isr); ++ + /* + * SWL and AWL are initially adjusted so that they are not less than + * the initial Sequence Numbers received and sent, respectively: +diff --git a/net/dccp/options.c b/net/dccp/options.c +index d2a84a2..43bc24e 100644 +--- a/net/dccp/options.c ++++ b/net/dccp/options.c +@@ -107,9 +107,11 @@ int dccp_parse_options(struct sock *sk, struct dccp_request_sock *dreq, + * + * CCID-specific options are ignored during connection setup, as + * negotiation may still be in progress (see RFC 4340, 10.3). ++ * The same applies to Ack Vectors, as these depend on the CCID. + * + */ +- if (dreq != NULL && opt >= 128) ++ if (dreq != NULL && (opt >= 128 || ++ opt == DCCPO_ACK_VECTOR_0 || opt == DCCPO_ACK_VECTOR_1)) + goto ignore_option; + + switch (opt) { +diff --git a/net/dccp/output.c b/net/dccp/output.c +index 1f8a9b6..fe20068 100644 +--- a/net/dccp/output.c ++++ b/net/dccp/output.c +@@ -508,6 +508,7 @@ void dccp_send_ack(struct sock *sk) + + EXPORT_SYMBOL_GPL(dccp_send_ack); + ++#if 0 + /* FIXME: Is this still necessary (11.3) - currently nowhere used by DCCP. */ + void dccp_send_delayed_ack(struct sock *sk) + { +@@ -538,6 +539,7 @@ void dccp_send_delayed_ack(struct sock *sk) + icsk->icsk_ack.timeout = timeout; + sk_reset_timer(sk, &icsk->icsk_delack_timer, timeout); + } ++#endif + + void dccp_send_sync(struct sock *sk, const u64 ackno, + const enum dccp_pkt_type pkt_type) +diff --git a/net/dccp/probe.c b/net/dccp/probe.c +index 0bcdc92..81368a7 100644 +--- a/net/dccp/probe.c ++++ b/net/dccp/probe.c +@@ -42,7 +42,7 @@ static int bufsize = 64 * 1024; + + static const char procname[] = "dccpprobe"; + +-struct { ++static struct { + struct kfifo *fifo; + spinlock_t lock; + wait_queue_head_t wait; +diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c +index 828ea21..ec83448 100644 +--- a/net/ipv4/inet_connection_sock.c ++++ b/net/ipv4/inet_connection_sock.c +@@ -419,7 +419,8 @@ void inet_csk_reqsk_queue_prune(struct sock *parent, + struct inet_connection_sock *icsk = inet_csk(parent); + struct request_sock_queue *queue = &icsk->icsk_accept_queue; + struct listen_sock *lopt = queue->listen_opt; +- int thresh = icsk->icsk_syn_retries ? : sysctl_tcp_synack_retries; ++ int max_retries = icsk->icsk_syn_retries ? : sysctl_tcp_synack_retries; ++ int thresh = max_retries; + unsigned long now = jiffies; + struct request_sock **reqp, *req; + int i, budget; +@@ -455,6 +456,9 @@ void inet_csk_reqsk_queue_prune(struct sock *parent, + } + } + ++ if (queue->rskq_defer_accept) ++ max_retries = queue->rskq_defer_accept; ++ + budget = 2 * (lopt->nr_table_entries / (timeout / interval)); + i = lopt->clock_hand; + +@@ -462,8 +466,9 @@ void inet_csk_reqsk_queue_prune(struct sock *parent, + reqp=&lopt->syn_table[i]; + while ((req = *reqp) != NULL) { + if (time_after_eq(now, req->expires)) { +- if (req->retrans < thresh && +- !req->rsk_ops->rtx_syn_ack(parent, req)) { ++ if ((req->retrans < thresh || ++ (inet_rsk(req)->acked && req->retrans < max_retries)) ++ && !req->rsk_ops->rtx_syn_ack(parent, req)) { + unsigned long timeo; + + if (req->retrans++ == 0) +diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c +index 0457859..d2a887f 100644 +--- a/net/ipv4/netfilter/nf_nat_core.c ++++ b/net/ipv4/netfilter/nf_nat_core.c +@@ -556,7 +556,6 @@ static void nf_nat_cleanup_conntrack(struct nf_conn *ct) + + spin_lock_bh(&nf_nat_lock); + hlist_del_rcu(&nat->bysource); +- nat->ct = NULL; + spin_unlock_bh(&nf_nat_lock); + } + +@@ -570,8 +569,8 @@ static void nf_nat_move_storage(void *new, void *old) + return; + + spin_lock_bh(&nf_nat_lock); +- hlist_replace_rcu(&old_nat->bysource, &new_nat->bysource); + new_nat->ct = ct; ++ hlist_replace_rcu(&old_nat->bysource, &new_nat->bysource); + spin_unlock_bh(&nf_nat_lock); + } + +diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c +index e7e091d..37a1ecd 100644 +--- a/net/ipv4/raw.c ++++ b/net/ipv4/raw.c +@@ -934,7 +934,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i) + srcp = inet->num; + + seq_printf(seq, "%4d: %08X:%04X %08X:%04X" +- " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d", ++ " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d\n", + i, src, srcp, dest, destp, sp->sk_state, + atomic_read(&sp->sk_wmem_alloc), + atomic_read(&sp->sk_rmem_alloc), +diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c +index ab66683..fc54a48 100644 +--- a/net/ipv4/tcp.c ++++ b/net/ipv4/tcp.c +@@ -2112,12 +2112,15 @@ static int do_tcp_setsockopt(struct sock *sk, int level, + break; + + case TCP_DEFER_ACCEPT: +- if (val < 0) { +- err = -EINVAL; +- } else { +- if (val > MAX_TCP_ACCEPT_DEFERRED) +- val = MAX_TCP_ACCEPT_DEFERRED; +- icsk->icsk_accept_queue.rskq_defer_accept = val; ++ icsk->icsk_accept_queue.rskq_defer_accept = 0; ++ if (val > 0) { ++ /* Translate value in seconds to number of ++ * retransmits */ ++ while (icsk->icsk_accept_queue.rskq_defer_accept < 32 && ++ val > ((TCP_TIMEOUT_INIT / HZ) << ++ icsk->icsk_accept_queue.rskq_defer_accept)) ++ icsk->icsk_accept_queue.rskq_defer_accept++; ++ icsk->icsk_accept_queue.rskq_defer_accept++; + } + break; + +@@ -2299,7 +2302,8 @@ static int do_tcp_getsockopt(struct sock *sk, int level, + val = (val ? : sysctl_tcp_fin_timeout) / HZ; + break; + case TCP_DEFER_ACCEPT: +- val = icsk->icsk_accept_queue.rskq_defer_accept; ++ val = !icsk->icsk_accept_queue.rskq_defer_accept ? 0 : ++ ((TCP_TIMEOUT_INIT / HZ) << (icsk->icsk_accept_queue.rskq_defer_accept - 1)); + break; + case TCP_WINDOW_CLAMP: + val = tp->window_clamp; +diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c +index eba873e..cad73b7 100644 +--- a/net/ipv4/tcp_input.c ++++ b/net/ipv4/tcp_input.c +@@ -4541,49 +4541,6 @@ static void tcp_urg(struct sock *sk, struct sk_buff *skb, struct tcphdr *th) + } + } + +-static int tcp_defer_accept_check(struct sock *sk) +-{ +- struct tcp_sock *tp = tcp_sk(sk); +- +- if (tp->defer_tcp_accept.request) { +- int queued_data = tp->rcv_nxt - tp->copied_seq; +- int hasfin = !skb_queue_empty(&sk->sk_receive_queue) ? +- tcp_hdr((struct sk_buff *) +- sk->sk_receive_queue.prev)->fin : 0; +- +- if (queued_data && hasfin) +- queued_data--; +- +- if (queued_data && +- tp->defer_tcp_accept.listen_sk->sk_state == TCP_LISTEN) { +- if (sock_flag(sk, SOCK_KEEPOPEN)) { +- inet_csk_reset_keepalive_timer(sk, +- keepalive_time_when(tp)); +- } else { +- inet_csk_delete_keepalive_timer(sk); +- } +- +- inet_csk_reqsk_queue_add( +- tp->defer_tcp_accept.listen_sk, +- tp->defer_tcp_accept.request, +- sk); +- +- tp->defer_tcp_accept.listen_sk->sk_data_ready( +- tp->defer_tcp_accept.listen_sk, 0); +- +- sock_put(tp->defer_tcp_accept.listen_sk); +- sock_put(sk); +- tp->defer_tcp_accept.listen_sk = NULL; +- tp->defer_tcp_accept.request = NULL; +- } else if (hasfin || +- tp->defer_tcp_accept.listen_sk->sk_state != TCP_LISTEN) { +- tcp_reset(sk); +- return -1; +- } +- } +- return 0; +-} +- + static int tcp_copy_to_iovec(struct sock *sk, struct sk_buff *skb, int hlen) + { + struct tcp_sock *tp = tcp_sk(sk); +@@ -4944,8 +4901,6 @@ step5: + + tcp_data_snd_check(sk); + tcp_ack_snd_check(sk); +- +- tcp_defer_accept_check(sk); + return 0; + + csum_error: +diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c +index 4f8485c..12695be 100644 +--- a/net/ipv4/tcp_ipv4.c ++++ b/net/ipv4/tcp_ipv4.c +@@ -85,10 +85,6 @@ + int sysctl_tcp_tw_reuse __read_mostly; + int sysctl_tcp_low_latency __read_mostly; + +-/* Check TCP sequence numbers in ICMP packets. */ +-#define ICMP_MIN_LENGTH 8 +- +-void tcp_v4_send_check(struct sock *sk, int len, struct sk_buff *skb); + + #ifdef CONFIG_TCP_MD5SIG + static struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk, +@@ -1918,14 +1914,6 @@ int tcp_v4_destroy_sock(struct sock *sk) + sk->sk_sndmsg_page = NULL; + } + +- if (tp->defer_tcp_accept.request) { +- reqsk_free(tp->defer_tcp_accept.request); +- sock_put(tp->defer_tcp_accept.listen_sk); +- sock_put(sk); +- tp->defer_tcp_accept.listen_sk = NULL; +- tp->defer_tcp_accept.request = NULL; +- } +- + atomic_dec(&tcp_sockets_allocated); + + return 0; +diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c +index 019c8c1..8245247 100644 +--- a/net/ipv4/tcp_minisocks.c ++++ b/net/ipv4/tcp_minisocks.c +@@ -571,8 +571,10 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb, + does sequence test, SYN is truncated, and thus we consider + it a bare ACK. + +- Both ends (listening sockets) accept the new incoming +- connection and try to talk to each other. 8-) ++ If icsk->icsk_accept_queue.rskq_defer_accept, we silently drop this ++ bare ACK. Otherwise, we create an established connection. Both ++ ends (listening sockets) accept the new incoming connection and try ++ to talk to each other. 8-) + + Note: This case is both harmless, and rare. Possibility is about the + same as us discovering intelligent life on another plant tomorrow. +@@ -640,6 +642,13 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb, + if (!(flg & TCP_FLAG_ACK)) + return NULL; + ++ /* If TCP_DEFER_ACCEPT is set, drop bare ACK. */ ++ if (inet_csk(sk)->icsk_accept_queue.rskq_defer_accept && ++ TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) { ++ inet_rsk(req)->acked = 1; ++ return NULL; ++ } ++ + /* OK, ACK is valid, create big socket and + * feed this segment to it. It will repeat all + * the tests. THIS SEGMENT MUST MOVE SOCKET TO +@@ -678,24 +687,7 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb, + inet_csk_reqsk_queue_unlink(sk, req, prev); + inet_csk_reqsk_queue_removed(sk, req); + +- if (inet_csk(sk)->icsk_accept_queue.rskq_defer_accept && +- TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) { +- +- /* the accept queue handling is done is est recv slow +- * path so lets make sure to start there +- */ +- tcp_sk(child)->pred_flags = 0; +- sock_hold(sk); +- sock_hold(child); +- tcp_sk(child)->defer_tcp_accept.listen_sk = sk; +- tcp_sk(child)->defer_tcp_accept.request = req; +- +- inet_csk_reset_keepalive_timer(child, +- inet_csk(sk)->icsk_accept_queue.rskq_defer_accept * HZ); +- } else { +- inet_csk_reqsk_queue_add(sk, req, child); +- } +- ++ inet_csk_reqsk_queue_add(sk, req, child); + return child; + + listen_overflow: +diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c +index 4de68cf..63ed9d6 100644 +--- a/net/ipv4/tcp_timer.c ++++ b/net/ipv4/tcp_timer.c +@@ -489,11 +489,6 @@ static void tcp_keepalive_timer (unsigned long data) + goto death; + } + +- if (tp->defer_tcp_accept.request && sk->sk_state == TCP_ESTABLISHED) { +- tcp_send_active_reset(sk, GFP_ATOMIC); +- goto death; +- } +- + if (!sock_flag(sk, SOCK_KEEPOPEN) || sk->sk_state == TCP_CLOSE) + goto out; + +diff --git a/net/ipv4/xfrm4_mode_tunnel.c b/net/ipv4/xfrm4_mode_tunnel.c +index 584e6d7..7135279 100644 +--- a/net/ipv4/xfrm4_mode_tunnel.c ++++ b/net/ipv4/xfrm4_mode_tunnel.c +@@ -52,7 +52,7 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb) + IP_ECN_clear(top_iph); + + top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ? +- 0 : XFRM_MODE_SKB_CB(skb)->frag_off; ++ 0 : (XFRM_MODE_SKB_CB(skb)->frag_off & htons(IP_DF)); + ip_select_ident(top_iph, dst->child, NULL); + + top_iph->ttl = dst_metric(dst->child, RTAX_HOPLIMIT); +diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c +index b9c2de8..0f0f94a 100644 +--- a/net/ipv6/datagram.c ++++ b/net/ipv6/datagram.c +@@ -705,6 +705,11 @@ int datagram_send_ctl(struct net *net, + } + + *hlimit = *(int *)CMSG_DATA(cmsg); ++ if (*hlimit < -1 || *hlimit > 0xff) { ++ err = -EINVAL; ++ goto exit_f; ++ } ++ + break; + + case IPV6_TCLASS: +diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c +index 26b83e5..c042ce1 100644 +--- a/net/ipv6/ipv6_sockglue.c ++++ b/net/ipv6/ipv6_sockglue.c +@@ -67,7 +67,7 @@ int ip6_ra_control(struct sock *sk, int sel, void (*destructor)(struct sock *)) + + /* RA packet may be delivered ONLY to IPPROTO_RAW socket */ + if (sk->sk_type != SOCK_RAW || inet_sk(sk)->num != IPPROTO_RAW) +- return -EINVAL; ++ return -ENOPROTOOPT; + + new_ra = (sel>=0) ? kmalloc(sizeof(*new_ra), GFP_KERNEL) : NULL; + +@@ -446,7 +446,7 @@ done: + + case IPV6_MULTICAST_HOPS: + if (sk->sk_type == SOCK_STREAM) +- goto e_inval; ++ break; + if (optlen < sizeof(int)) + goto e_inval; + if (val > 255 || val < -1) +@@ -458,13 +458,15 @@ done: + case IPV6_MULTICAST_LOOP: + if (optlen < sizeof(int)) + goto e_inval; ++ if (val != valbool) ++ goto e_inval; + np->mc_loop = valbool; + retv = 0; + break; + + case IPV6_MULTICAST_IF: + if (sk->sk_type == SOCK_STREAM) +- goto e_inval; ++ break; + if (optlen < sizeof(int)) + goto e_inval; + +@@ -860,7 +862,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname, + if (sk->sk_protocol != IPPROTO_UDP && + sk->sk_protocol != IPPROTO_UDPLITE && + sk->sk_protocol != IPPROTO_TCP) +- return -EINVAL; ++ return -ENOPROTOOPT; + if (sk->sk_state != TCP_ESTABLISHED) + return -ENOTCONN; + val = sk->sk_family; +@@ -874,6 +876,8 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname, + return -EINVAL; + if (copy_from_user(&gsf, optval, GROUP_FILTER_SIZE(0))) + return -EFAULT; ++ if (gsf.gf_group.ss_family != AF_INET6) ++ return -EADDRNOTAVAIL; + lock_sock(sk); + err = ip6_mc_msfget(sk, &gsf, + (struct group_filter __user *)optval, optlen); +diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c +index 8fee9a1..3aee123 100644 +--- a/net/ipv6/raw.c ++++ b/net/ipv6/raw.c +@@ -1169,7 +1169,8 @@ static int raw6_destroy(struct sock *sk) + lock_sock(sk); + ip6_flush_pending_frames(sk); + release_sock(sk); +- return 0; ++ ++ return inet6_destroy_sock(sk); + } + + static int rawv6_init_sk(struct sock *sk) +@@ -1200,7 +1201,6 @@ struct proto rawv6_prot = { + .disconnect = udp_disconnect, + .ioctl = rawv6_ioctl, + .init = rawv6_init_sk, +- .destroy = inet6_destroy_sock, + .setsockopt = rawv6_setsockopt, + .getsockopt = rawv6_getsockopt, + .sendmsg = rawv6_sendmsg, +diff --git a/net/ipv6/route.c b/net/ipv6/route.c +index 220cffe..d1f3e19 100644 +--- a/net/ipv6/route.c ++++ b/net/ipv6/route.c +@@ -2196,8 +2196,12 @@ static int rt6_fill_node(struct sk_buff *skb, struct rt6_info *rt, + + NLA_PUT_U32(skb, RTA_PRIORITY, rt->rt6i_metric); + +- expires = (rt->rt6i_flags & RTF_EXPIRES) ? +- rt->rt6i_expires - jiffies : 0; ++ if (!(rt->rt6i_flags & RTF_EXPIRES)) ++ expires = 0; ++ else if (rt->rt6i_expires - jiffies < INT_MAX) ++ expires = rt->rt6i_expires - jiffies; ++ else ++ expires = INT_MAX; + + if (rtnl_put_cacheinfo(skb, &rt->u.dst, 0, 0, 0, + expires, rt->u.dst.error) < 0) +diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c +index 3de6ffd..32e871a 100644 +--- a/net/ipv6/sit.c ++++ b/net/ipv6/sit.c +@@ -222,15 +222,18 @@ __ipip6_tunnel_locate_prl(struct ip_tunnel *t, __be32 addr) + + } + +-static int ipip6_tunnel_get_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a) ++static int ipip6_tunnel_get_prl(struct ip_tunnel *t, ++ struct ip_tunnel_prl __user *a) + { +- struct ip_tunnel_prl *kp; ++ struct ip_tunnel_prl kprl, *kp; + struct ip_tunnel_prl_entry *prl; + unsigned int cmax, c = 0, ca, len; + int ret = 0; + +- cmax = a->datalen / sizeof(*a); +- if (cmax > 1 && a->addr != htonl(INADDR_ANY)) ++ if (copy_from_user(&kprl, a, sizeof(kprl))) ++ return -EFAULT; ++ cmax = kprl.datalen / sizeof(kprl); ++ if (cmax > 1 && kprl.addr != htonl(INADDR_ANY)) + cmax = 1; + + /* For simple GET or for root users, +@@ -261,26 +264,25 @@ static int ipip6_tunnel_get_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a) + for (prl = t->prl; prl; prl = prl->next) { + if (c > cmax) + break; +- if (a->addr != htonl(INADDR_ANY) && prl->addr != a->addr) ++ if (kprl.addr != htonl(INADDR_ANY) && prl->addr != kprl.addr) + continue; + kp[c].addr = prl->addr; + kp[c].flags = prl->flags; + c++; +- if (a->addr != htonl(INADDR_ANY)) ++ if (kprl.addr != htonl(INADDR_ANY)) + break; + } + out: + read_unlock(&ipip6_lock); + + len = sizeof(*kp) * c; +- ret = len ? copy_to_user(a->data, kp, len) : 0; ++ ret = 0; ++ if ((len && copy_to_user(a + 1, kp, len)) || put_user(len, &a->datalen)) ++ ret = -EFAULT; + + kfree(kp); +- if (ret) +- return -EFAULT; + +- a->datalen = len; +- return 0; ++ return ret; + } + + static int +@@ -873,11 +875,20 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) + break; + + case SIOCGETPRL: ++ err = -EINVAL; ++ if (dev == sitn->fb_tunnel_dev) ++ goto done; ++ err = -ENOENT; ++ if (!(t = netdev_priv(dev))) ++ goto done; ++ err = ipip6_tunnel_get_prl(t, ifr->ifr_ifru.ifru_data); ++ break; ++ + case SIOCADDPRL: + case SIOCDELPRL: + case SIOCCHGPRL: + err = -EPERM; +- if (cmd != SIOCGETPRL && !capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN)) + goto done; + err = -EINVAL; + if (dev == sitn->fb_tunnel_dev) +@@ -890,12 +901,6 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) + goto done; + + switch (cmd) { +- case SIOCGETPRL: +- err = ipip6_tunnel_get_prl(t, &prl); +- if (!err && copy_to_user(ifr->ifr_ifru.ifru_data, +- &prl, sizeof(prl))) +- err = -EFAULT; +- break; + case SIOCDELPRL: + err = ipip6_tunnel_del_prl(t, &prl); + break; +@@ -904,8 +909,7 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd) + err = ipip6_tunnel_add_prl(t, &prl, cmd == SIOCCHGPRL); + break; + } +- if (cmd != SIOCGETPRL) +- netdev_state_change(dev); ++ netdev_state_change(dev); + break; + + default: +diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c +index 1d7dd54..28d8bd5 100644 +--- a/net/mac80211/tx.c ++++ b/net/mac80211/tx.c +@@ -1562,13 +1562,13 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb, + * be cloned. This could happen, e.g., with Linux bridge code passing + * us broadcast frames. */ + +- if (head_need > 0 || skb_header_cloned(skb)) { ++ if (head_need > 0 || skb_cloned(skb)) { + #if 0 + printk(KERN_DEBUG "%s: need to reallocate buffer for %d bytes " + "of headroom\n", dev->name, head_need); + #endif + +- if (skb_header_cloned(skb)) ++ if (skb_cloned(skb)) + I802_DEBUG_INC(local->tx_expand_skb_head_cloned); + else + I802_DEBUG_INC(local->tx_expand_skb_head); +diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c +index a8bb8e3..6106cb7 100644 +--- a/net/mac80211/wext.c ++++ b/net/mac80211/wext.c +@@ -496,7 +496,8 @@ static int ieee80211_ioctl_giwap(struct net_device *dev, + sdata = IEEE80211_DEV_TO_SUB_IF(dev); + if (sdata->vif.type == IEEE80211_IF_TYPE_STA || + sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { +- if (sdata->u.sta.state == IEEE80211_ASSOCIATED) { ++ if (sdata->u.sta.state == IEEE80211_ASSOCIATED || ++ sdata->u.sta.state == IEEE80211_IBSS_JOINED) { + ap_addr->sa_family = ARPHRD_ETHER; + memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN); + return 0; +diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c +index dc1598b..635b996 100644 +--- a/net/mac80211/wme.c ++++ b/net/mac80211/wme.c +@@ -673,7 +673,7 @@ int ieee80211_ht_agg_queue_add(struct ieee80211_local *local, + #ifdef CONFIG_MAC80211_HT_DEBUG + if (net_ratelimit()) + printk(KERN_DEBUG "allocated aggregation queue" +- " %d tid %d addr %s pool=0x%lX", ++ " %d tid %d addr %s pool=0x%lX\n", + i, tid, print_mac(mac, sta->addr), + q->qdisc_pool[0]); + #endif /* CONFIG_MAC80211_HT_DEBUG */ +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index c4b1799..662c1cc 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -196,8 +196,6 @@ destroy_conntrack(struct nf_conntrack *nfct) + if (l4proto && l4proto->destroy) + l4proto->destroy(ct); + +- nf_ct_ext_destroy(ct); +- + rcu_read_unlock(); + + spin_lock_bh(&nf_conntrack_lock); +@@ -520,6 +518,7 @@ static void nf_conntrack_free_rcu(struct rcu_head *head) + + void nf_conntrack_free(struct nf_conn *ct) + { ++ nf_ct_ext_destroy(ct); + call_rcu(&ct->rcu, nf_conntrack_free_rcu); + } + EXPORT_SYMBOL_GPL(nf_conntrack_free); +diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c +index bcc19fa..8a3f8b3 100644 +--- a/net/netfilter/nf_conntrack_extend.c ++++ b/net/netfilter/nf_conntrack_extend.c +@@ -59,12 +59,19 @@ nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp) + if (!*ext) + return NULL; + ++ INIT_RCU_HEAD(&(*ext)->rcu); + (*ext)->offset[id] = off; + (*ext)->len = len; + + return (void *)(*ext) + off; + } + ++static void __nf_ct_ext_free_rcu(struct rcu_head *head) ++{ ++ struct nf_ct_ext *ext = container_of(head, struct nf_ct_ext, rcu); ++ kfree(ext); ++} ++ + void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp) + { + struct nf_ct_ext *new; +@@ -106,7 +113,7 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp) + (void *)ct->ext + ct->ext->offset[i]); + rcu_read_unlock(); + } +- kfree(ct->ext); ++ call_rcu(&ct->ext->rcu, __nf_ct_ext_free_rcu); + ct->ext = new; + } + +diff --git a/net/netfilter/nf_conntrack_h323_main.c b/net/netfilter/nf_conntrack_h323_main.c +index 95da1a2..2f83c15 100644 +--- a/net/netfilter/nf_conntrack_h323_main.c ++++ b/net/netfilter/nf_conntrack_h323_main.c +@@ -619,6 +619,7 @@ static const struct nf_conntrack_expect_policy h245_exp_policy = { + static struct nf_conntrack_helper nf_conntrack_helper_h245 __read_mostly = { + .name = "H.245", + .me = THIS_MODULE, ++ .tuple.src.l3num = AF_UNSPEC, + .tuple.dst.protonum = IPPROTO_UDP, + .help = h245_help, + .expect_policy = &h245_exp_policy, +@@ -1765,6 +1766,7 @@ static void __exit nf_conntrack_h323_fini(void) + nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]); + nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]); + nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]); ++ nf_conntrack_helper_unregister(&nf_conntrack_helper_h245); + kfree(h323_buffer); + pr_debug("nf_ct_h323: fini\n"); + } +@@ -1777,28 +1779,34 @@ static int __init nf_conntrack_h323_init(void) + h323_buffer = kmalloc(65536, GFP_KERNEL); + if (!h323_buffer) + return -ENOMEM; +- ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[0]); ++ ret = nf_conntrack_helper_register(&nf_conntrack_helper_h245); + if (ret < 0) + goto err1; +- ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[1]); ++ ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[0]); + if (ret < 0) + goto err2; +- ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[0]); ++ ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[1]); + if (ret < 0) + goto err3; +- ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[1]); ++ ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[0]); + if (ret < 0) + goto err4; ++ ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[1]); ++ if (ret < 0) ++ goto err5; + pr_debug("nf_ct_h323: init success\n"); + return 0; + +-err4: ++err5: + nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]); +-err3: ++err4: + nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]); +-err2: ++err3: + nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]); ++err2: ++ nf_conntrack_helper_unregister(&nf_conntrack_helper_h245); + err1: ++ kfree(h323_buffer); + return ret; + } + +diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c +index bc11d70..9fda6ee 100644 +--- a/net/netfilter/nf_log.c ++++ b/net/netfilter/nf_log.c +@@ -92,10 +92,6 @@ void nf_log_packet(int pf, + vsnprintf(prefix, sizeof(prefix), fmt, args); + va_end(args); + logger->logfn(pf, hooknum, skb, in, out, loginfo, prefix); +- } else if (net_ratelimit()) { +- printk(KERN_WARNING "nf_log_packet: can\'t log since " +- "no backend logging module loaded in! Please either " +- "load one, or disable logging explicitly\n"); + } + rcu_read_unlock(); + } +diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c +index f5aa23c..3e1191c 100644 +--- a/net/netlink/genetlink.c ++++ b/net/netlink/genetlink.c +@@ -444,8 +444,11 @@ static int genl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) + if (ops->dumpit == NULL) + return -EOPNOTSUPP; + +- return netlink_dump_start(genl_sock, skb, nlh, +- ops->dumpit, ops->done); ++ genl_unlock(); ++ err = netlink_dump_start(genl_sock, skb, nlh, ++ ops->dumpit, ops->done); ++ genl_lock(); ++ return err; + } + + if (ops->doit == NULL) +@@ -603,9 +606,6 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb) + int chains_to_skip = cb->args[0]; + int fams_to_skip = cb->args[1]; + +- if (chains_to_skip != 0) +- genl_lock(); +- + for (i = 0; i < GENL_FAM_TAB_SIZE; i++) { + if (i < chains_to_skip) + continue; +@@ -623,9 +623,6 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb) + } + + errout: +- if (chains_to_skip != 0) +- genl_unlock(); +- + cb->args[0] = i; + cb->args[1] = n; + +@@ -770,7 +767,7 @@ static int __init genl_init(void) + + /* we'll bump the group number right afterwards */ + genl_sock = netlink_kernel_create(&init_net, NETLINK_GENERIC, 0, +- genl_rcv, NULL, THIS_MODULE); ++ genl_rcv, &genl_mutex, THIS_MODULE); + if (genl_sock == NULL) + panic("GENL: Cannot initialize generic netlink\n"); + +diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c +index 5bc1ed4..6807c97 100644 +--- a/net/sched/sch_htb.c ++++ b/net/sched/sch_htb.c +@@ -28,6 +28,7 @@ + * $Id: sch_htb.c,v 1.25 2003/12/07 11:08:25 devik Exp devik $ + */ + #include ++#include + #include + #include + #include +@@ -53,13 +54,17 @@ + */ + + #define HTB_HSIZE 16 /* classid hash size */ +-#define HTB_HYSTERESIS 1 /* whether to use mode hysteresis for speedup */ ++static int htb_hysteresis __read_mostly = 0; /* whether to use mode hysteresis for speedup */ + #define HTB_VER 0x30011 /* major must be matched with number suplied by TC as version */ + + #if HTB_VER >> 16 != TC_HTB_PROTOVER + #error "Mismatched sch_htb.c and pkt_sch.h" + #endif + ++/* Module parameter and sysfs export */ ++module_param (htb_hysteresis, int, 0640); ++MODULE_PARM_DESC(htb_hysteresis, "Hysteresis mode, less CPU load, less accurate"); ++ + /* used internaly to keep status of single class */ + enum htb_cmode { + HTB_CANT_SEND, /* class can't send and can't borrow */ +@@ -462,19 +467,21 @@ static void htb_deactivate_prios(struct htb_sched *q, struct htb_class *cl) + htb_remove_class_from_row(q, cl, mask); + } + +-#if HTB_HYSTERESIS + static inline long htb_lowater(const struct htb_class *cl) + { +- return cl->cmode != HTB_CANT_SEND ? -cl->cbuffer : 0; ++ if (htb_hysteresis) ++ return cl->cmode != HTB_CANT_SEND ? -cl->cbuffer : 0; ++ else ++ return 0; + } + static inline long htb_hiwater(const struct htb_class *cl) + { +- return cl->cmode == HTB_CAN_SEND ? -cl->buffer : 0; ++ if (htb_hysteresis) ++ return cl->cmode == HTB_CAN_SEND ? -cl->buffer : 0; ++ else ++ return 0; + } +-#else +-#define htb_lowater(cl) (0) +-#define htb_hiwater(cl) (0) +-#endif ++ + + /** + * htb_class_mode - computes and returns current class mode +diff --git a/net/sctp/associola.c b/net/sctp/associola.c +index 5326348..024c3eb 100644 +--- a/net/sctp/associola.c ++++ b/net/sctp/associola.c +@@ -474,6 +474,15 @@ static void sctp_association_destroy(struct sctp_association *asoc) + void sctp_assoc_set_primary(struct sctp_association *asoc, + struct sctp_transport *transport) + { ++ int changeover = 0; ++ ++ /* it's a changeover only if we already have a primary path ++ * that we are changing ++ */ ++ if (asoc->peer.primary_path != NULL && ++ asoc->peer.primary_path != transport) ++ changeover = 1 ; ++ + asoc->peer.primary_path = transport; + + /* Set a default msg_name for events. */ +@@ -499,12 +508,12 @@ void sctp_assoc_set_primary(struct sctp_association *asoc, + * double switch to the same destination address. + */ + if (transport->cacc.changeover_active) +- transport->cacc.cycling_changeover = 1; ++ transport->cacc.cycling_changeover = changeover; + + /* 2) The sender MUST set CHANGEOVER_ACTIVE to indicate that + * a changeover has occurred. + */ +- transport->cacc.changeover_active = 1; ++ transport->cacc.changeover_active = changeover; + + /* 3) The sender MUST store the next TSN to be sent in + * next_tsn_at_change. +diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c +index b435a19..9258dfe 100644 +--- a/net/sctp/protocol.c ++++ b/net/sctp/protocol.c +@@ -108,14 +108,23 @@ static __init int sctp_proc_init(void) + } + + if (sctp_snmp_proc_init()) +- goto out_nomem; ++ goto out_snmp_proc_init; + if (sctp_eps_proc_init()) +- goto out_nomem; ++ goto out_eps_proc_init; + if (sctp_assocs_proc_init()) +- goto out_nomem; ++ goto out_assocs_proc_init; + + return 0; + ++out_assocs_proc_init: ++ sctp_eps_proc_exit(); ++out_eps_proc_init: ++ sctp_snmp_proc_exit(); ++out_snmp_proc_init: ++ if (proc_net_sctp) { ++ proc_net_sctp = NULL; ++ remove_proc_entry("sctp", init_net.proc_net); ++ } + out_nomem: + return -ENOMEM; + } +diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c +index e18cd36..657835f 100644 +--- a/net/unix/af_unix.c ++++ b/net/unix/af_unix.c +@@ -169,6 +169,11 @@ static inline int unix_may_send(struct sock *sk, struct sock *osk) + return (unix_peer(osk) == NULL || unix_our_peer(sk, osk)); + } + ++static inline int unix_recvq_full(struct sock const *sk) ++{ ++ return skb_queue_len(&sk->sk_receive_queue) > sk->sk_max_ack_backlog; ++} ++ + static struct sock *unix_peer_get(struct sock *s) + { + struct sock *peer; +@@ -482,6 +487,8 @@ static int unix_socketpair(struct socket *, struct socket *); + static int unix_accept(struct socket *, struct socket *, int); + static int unix_getname(struct socket *, struct sockaddr *, int *, int); + static unsigned int unix_poll(struct file *, struct socket *, poll_table *); ++static unsigned int unix_datagram_poll(struct file *, struct socket *, ++ poll_table *); + static int unix_ioctl(struct socket *, unsigned int, unsigned long); + static int unix_shutdown(struct socket *, int); + static int unix_stream_sendmsg(struct kiocb *, struct socket *, +@@ -527,7 +534,7 @@ static const struct proto_ops unix_dgram_ops = { + .socketpair = unix_socketpair, + .accept = sock_no_accept, + .getname = unix_getname, +- .poll = datagram_poll, ++ .poll = unix_datagram_poll, + .ioctl = unix_ioctl, + .listen = sock_no_listen, + .shutdown = unix_shutdown, +@@ -548,7 +555,7 @@ static const struct proto_ops unix_seqpacket_ops = { + .socketpair = unix_socketpair, + .accept = unix_accept, + .getname = unix_getname, +- .poll = datagram_poll, ++ .poll = unix_datagram_poll, + .ioctl = unix_ioctl, + .listen = unix_listen, + .shutdown = unix_shutdown, +@@ -983,8 +990,7 @@ static long unix_wait_for_peer(struct sock *other, long timeo) + + sched = !sock_flag(other, SOCK_DEAD) && + !(other->sk_shutdown & RCV_SHUTDOWN) && +- (skb_queue_len(&other->sk_receive_queue) > +- other->sk_max_ack_backlog); ++ unix_recvq_full(other); + + unix_state_unlock(other); + +@@ -1058,8 +1064,7 @@ restart: + if (other->sk_state != TCP_LISTEN) + goto out_unlock; + +- if (skb_queue_len(&other->sk_receive_queue) > +- other->sk_max_ack_backlog) { ++ if (unix_recvq_full(other)) { + err = -EAGAIN; + if (!timeo) + goto out_unlock; +@@ -1428,9 +1433,7 @@ restart: + goto out_unlock; + } + +- if (unix_peer(other) != sk && +- (skb_queue_len(&other->sk_receive_queue) > +- other->sk_max_ack_backlog)) { ++ if (unix_peer(other) != sk && unix_recvq_full(other)) { + if (!timeo) { + err = -EAGAIN; + goto out_unlock; +@@ -1991,6 +1994,64 @@ static unsigned int unix_poll(struct file * file, struct socket *sock, poll_tabl + return mask; + } + ++static unsigned int unix_datagram_poll(struct file *file, struct socket *sock, ++ poll_table *wait) ++{ ++ struct sock *sk = sock->sk, *peer; ++ unsigned int mask; ++ ++ poll_wait(file, sk->sk_sleep, wait); ++ ++ peer = unix_peer_get(sk); ++ if (peer) { ++ if (peer != sk) { ++ /* ++ * Writability of a connected socket additionally ++ * depends on the state of the receive queue of the ++ * peer. ++ */ ++ poll_wait(file, &unix_sk(peer)->peer_wait, wait); ++ } else { ++ sock_put(peer); ++ peer = NULL; ++ } ++ } ++ ++ mask = 0; ++ ++ /* exceptional events? */ ++ if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) ++ mask |= POLLERR; ++ if (sk->sk_shutdown & RCV_SHUTDOWN) ++ mask |= POLLRDHUP; ++ if (sk->sk_shutdown == SHUTDOWN_MASK) ++ mask |= POLLHUP; ++ ++ /* readable? */ ++ if (!skb_queue_empty(&sk->sk_receive_queue) || ++ (sk->sk_shutdown & RCV_SHUTDOWN)) ++ mask |= POLLIN | POLLRDNORM; ++ ++ /* Connection-based need to check for termination and startup */ ++ if (sk->sk_type == SOCK_SEQPACKET) { ++ if (sk->sk_state == TCP_CLOSE) ++ mask |= POLLHUP; ++ /* connection hasn't started yet? */ ++ if (sk->sk_state == TCP_SYN_SENT) ++ return mask; ++ } ++ ++ /* writable? */ ++ if (unix_writable(sk) && !(peer && unix_recvq_full(peer))) ++ mask |= POLLOUT | POLLWRNORM | POLLWRBAND; ++ else ++ set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); ++ ++ if (peer) ++ sock_put(peer); ++ ++ return mask; ++} + + #ifdef CONFIG_PROC_FS + static struct sock *first_unix_socket(int *i) +diff --git a/security/dummy.c b/security/dummy.c +index f50c6c3..b891688 100644 +--- a/security/dummy.c ++++ b/security/dummy.c +@@ -27,6 +27,8 @@ + #include + #include + #include ++#include ++#include + + static int dummy_ptrace (struct task_struct *parent, struct task_struct *child) + { +@@ -607,7 +609,27 @@ static int dummy_task_kill (struct task_struct *p, struct siginfo *info, + static int dummy_task_prctl (int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5, long *rc_p) + { +- return 0; ++ switch (option) { ++ case PR_CAPBSET_READ: ++ *rc_p = (cap_valid(arg2) ? 1 : -EINVAL); ++ break; ++ case PR_GET_KEEPCAPS: ++ *rc_p = issecure(SECURE_KEEP_CAPS); ++ break; ++ case PR_SET_KEEPCAPS: ++ if (arg2 > 1) ++ *rc_p = -EINVAL; ++ else if (arg2) ++ current->securebits |= issecure_mask(SECURE_KEEP_CAPS); ++ else ++ current->securebits &= ++ ~issecure_mask(SECURE_KEEP_CAPS); ++ break; ++ default: ++ return 0; ++ } ++ ++ return 1; + } + + static void dummy_task_reparent_to_init (struct task_struct *p) +diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c +index cc0cdda..6facac5 100644 +--- a/sound/pci/oxygen/oxygen_mixer.c ++++ b/sound/pci/oxygen/oxygen_mixer.c +@@ -936,11 +936,13 @@ static int add_controls(struct oxygen *chip, + + for (i = 0; i < count; ++i) { + template = controls[i]; +- err = chip->model->control_filter(&template); +- if (err < 0) +- return err; +- if (err == 1) +- continue; ++ if (chip->model->control_filter) { ++ err = chip->model->control_filter(&template); ++ if (err < 0) ++ return err; ++ if (err == 1) ++ continue; ++ } + if (!strcmp(template.name, "Master Playback Volume") && + chip->model->dac_tlv) { + template.tlv.p = chip->model->dac_tlv; diff --git a/debian/patches/series/1~experimental.1 b/debian/patches/series/1~experimental.1 index f5aca3236..7062db8a5 100644 --- a/debian/patches/series/1~experimental.1 +++ b/debian/patches/series/1~experimental.1 @@ -1,4 +1,4 @@ -+ bugfix/all/patch-2.6.26-rc6-git1 ++ bugfix/all/patch-2.6.26-rc6-git6 + debian/version.patch + debian/kernelvariables.patch + debian/doc-build-parallel.patch