diff options
123 files changed, 603 insertions, 813 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index de77577840ab..b15f01e3a0dd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -4212,6 +4212,7 @@ OPEN FIRMWARE AND FLATTENED DEVICE TREE | |||
| 4212 | M: Grant Likely <grant.likely@secretlab.ca> | 4212 | M: Grant Likely <grant.likely@secretlab.ca> |
| 4213 | L: devicetree-discuss@lists.ozlabs.org | 4213 | L: devicetree-discuss@lists.ozlabs.org |
| 4214 | W: http://fdt.secretlab.ca | 4214 | W: http://fdt.secretlab.ca |
| 4215 | T: git git://git.secretlab.ca/git/linux-2.6.git | ||
| 4215 | S: Maintained | 4216 | S: Maintained |
| 4216 | F: drivers/of | 4217 | F: drivers/of |
| 4217 | F: include/linux/of*.h | 4218 | F: include/linux/of*.h |
| @@ -5384,6 +5385,7 @@ M: David Brownell <dbrownell@users.sourceforge.net> | |||
| 5384 | M: Grant Likely <grant.likely@secretlab.ca> | 5385 | M: Grant Likely <grant.likely@secretlab.ca> |
| 5385 | L: spi-devel-general@lists.sourceforge.net | 5386 | L: spi-devel-general@lists.sourceforge.net |
| 5386 | Q: http://patchwork.kernel.org/project/spi-devel-general/list/ | 5387 | Q: http://patchwork.kernel.org/project/spi-devel-general/list/ |
| 5388 | T: git git://git.secretlab.ca/git/linux-2.6.git | ||
| 5387 | S: Maintained | 5389 | S: Maintained |
| 5388 | F: Documentation/spi/ | 5390 | F: Documentation/spi/ |
| 5389 | F: drivers/spi/ | 5391 | F: drivers/spi/ |
| @@ -944,7 +944,7 @@ ifdef CONFIG_LOCALVERSION_AUTO | |||
| 944 | localver-extra = $(scm-identifier) | 944 | localver-extra = $(scm-identifier) |
| 945 | else | 945 | else |
| 946 | ifneq ($(scm-identifier),) | 946 | ifneq ($(scm-identifier),) |
| 947 | ifeq ($(LOCALVERSION),) | 947 | ifeq ("$(origin LOCALVERSION)", "undefined") |
| 948 | localver-extra = + | 948 | localver-extra = + |
| 949 | endif | 949 | endif |
| 950 | endif | 950 | endif |
diff --git a/arch/alpha/include/asm/bitops.h b/arch/alpha/include/asm/bitops.h index 1dce24bc455a..adfab8a21dfe 100644 --- a/arch/alpha/include/asm/bitops.h +++ b/arch/alpha/include/asm/bitops.h | |||
| @@ -410,7 +410,7 @@ static inline unsigned long __arch_hweight64(unsigned long w) | |||
| 410 | return __kernel_ctpop(w); | 410 | return __kernel_ctpop(w); |
| 411 | } | 411 | } |
| 412 | 412 | ||
| 413 | static inline unsigned int __arch_weight32(unsigned int w) | 413 | static inline unsigned int __arch_hweight32(unsigned int w) |
| 414 | { | 414 | { |
| 415 | return __arch_hweight64(w); | 415 | return __arch_hweight64(w); |
| 416 | } | 416 | } |
diff --git a/arch/alpha/kernel/Makefile b/arch/alpha/kernel/Makefile index 7739a62440a7..5a62fb46ef20 100644 --- a/arch/alpha/kernel/Makefile +++ b/arch/alpha/kernel/Makefile | |||
| @@ -35,7 +35,7 @@ endif | |||
| 35 | 35 | ||
| 36 | obj-y += irq_pyxis.o irq_i8259.o irq_srm.o | 36 | obj-y += irq_pyxis.o irq_i8259.o irq_srm.o |
| 37 | obj-y += err_ev6.o | 37 | obj-y += err_ev6.o |
| 38 | obj-y += es1888.o smc37c669.o smc37c93x.o ns87312.o gct.o | 38 | obj-y += es1888.o smc37c669.o smc37c93x.o pc873xx.o gct.o |
| 39 | obj-y += srmcons.o | 39 | obj-y += srmcons.o |
| 40 | 40 | ||
| 41 | else | 41 | else |
| @@ -63,11 +63,11 @@ obj-$(CONFIG_ALPHA_WILDFIRE) += core_wildfire.o | |||
| 63 | # Board support | 63 | # Board support |
| 64 | obj-$(CONFIG_ALPHA_ALCOR) += sys_alcor.o irq_i8259.o irq_srm.o | 64 | obj-$(CONFIG_ALPHA_ALCOR) += sys_alcor.o irq_i8259.o irq_srm.o |
| 65 | obj-$(CONFIG_ALPHA_CABRIOLET) += sys_cabriolet.o irq_i8259.o irq_srm.o \ | 65 | obj-$(CONFIG_ALPHA_CABRIOLET) += sys_cabriolet.o irq_i8259.o irq_srm.o \ |
| 66 | ns87312.o | 66 | pc873xx.o |
| 67 | obj-$(CONFIG_ALPHA_EB164) += sys_cabriolet.o irq_i8259.o irq_srm.o \ | 67 | obj-$(CONFIG_ALPHA_EB164) += sys_cabriolet.o irq_i8259.o irq_srm.o \ |
| 68 | ns87312.o | 68 | pc873xx.o |
| 69 | obj-$(CONFIG_ALPHA_EB66P) += sys_cabriolet.o irq_i8259.o irq_srm.o \ | 69 | obj-$(CONFIG_ALPHA_EB66P) += sys_cabriolet.o irq_i8259.o irq_srm.o \ |
| 70 | ns87312.o | 70 | pc873xx.o |
| 71 | obj-$(CONFIG_ALPHA_LX164) += sys_cabriolet.o irq_i8259.o irq_srm.o \ | 71 | obj-$(CONFIG_ALPHA_LX164) += sys_cabriolet.o irq_i8259.o irq_srm.o \ |
| 72 | smc37c93x.o | 72 | smc37c93x.o |
| 73 | obj-$(CONFIG_ALPHA_PC164) += sys_cabriolet.o irq_i8259.o irq_srm.o \ | 73 | obj-$(CONFIG_ALPHA_PC164) += sys_cabriolet.o irq_i8259.o irq_srm.o \ |
| @@ -90,14 +90,14 @@ obj-$(CONFIG_ALPHA_RUFFIAN) += sys_ruffian.o irq_pyxis.o irq_i8259.o | |||
| 90 | obj-$(CONFIG_ALPHA_RX164) += sys_rx164.o irq_i8259.o | 90 | obj-$(CONFIG_ALPHA_RX164) += sys_rx164.o irq_i8259.o |
| 91 | obj-$(CONFIG_ALPHA_SABLE) += sys_sable.o | 91 | obj-$(CONFIG_ALPHA_SABLE) += sys_sable.o |
| 92 | obj-$(CONFIG_ALPHA_LYNX) += sys_sable.o | 92 | obj-$(CONFIG_ALPHA_LYNX) += sys_sable.o |
| 93 | obj-$(CONFIG_ALPHA_BOOK1) += sys_sio.o irq_i8259.o irq_srm.o ns87312.o | 93 | obj-$(CONFIG_ALPHA_BOOK1) += sys_sio.o irq_i8259.o irq_srm.o pc873xx.o |
| 94 | obj-$(CONFIG_ALPHA_AVANTI) += sys_sio.o irq_i8259.o irq_srm.o ns87312.o | 94 | obj-$(CONFIG_ALPHA_AVANTI) += sys_sio.o irq_i8259.o irq_srm.o pc873xx.o |
| 95 | obj-$(CONFIG_ALPHA_NONAME) += sys_sio.o irq_i8259.o irq_srm.o ns87312.o | 95 | obj-$(CONFIG_ALPHA_NONAME) += sys_sio.o irq_i8259.o irq_srm.o pc873xx.o |
| 96 | obj-$(CONFIG_ALPHA_P2K) += sys_sio.o irq_i8259.o irq_srm.o ns87312.o | 96 | obj-$(CONFIG_ALPHA_P2K) += sys_sio.o irq_i8259.o irq_srm.o pc873xx.o |
| 97 | obj-$(CONFIG_ALPHA_XL) += sys_sio.o irq_i8259.o irq_srm.o ns87312.o | 97 | obj-$(CONFIG_ALPHA_XL) += sys_sio.o irq_i8259.o irq_srm.o pc873xx.o |
| 98 | obj-$(CONFIG_ALPHA_SX164) += sys_sx164.o irq_pyxis.o irq_i8259.o \ | 98 | obj-$(CONFIG_ALPHA_SX164) += sys_sx164.o irq_pyxis.o irq_i8259.o \ |
| 99 | irq_srm.o smc37c669.o | 99 | irq_srm.o smc37c669.o |
| 100 | obj-$(CONFIG_ALPHA_TAKARA) += sys_takara.o irq_i8259.o ns87312.o | 100 | obj-$(CONFIG_ALPHA_TAKARA) += sys_takara.o irq_i8259.o pc873xx.o |
| 101 | obj-$(CONFIG_ALPHA_WILDFIRE) += sys_wildfire.o irq_i8259.o | 101 | obj-$(CONFIG_ALPHA_WILDFIRE) += sys_wildfire.o irq_i8259.o |
| 102 | 102 | ||
| 103 | # Error support | 103 | # Error support |
diff --git a/arch/alpha/kernel/ns87312.c b/arch/alpha/kernel/ns87312.c deleted file mode 100644 index 342b56d24c20..000000000000 --- a/arch/alpha/kernel/ns87312.c +++ /dev/null | |||
| @@ -1,38 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * linux/arch/alpha/kernel/ns87312.c | ||
| 3 | */ | ||
| 4 | |||
| 5 | #include <linux/init.h> | ||
| 6 | #include <asm/io.h> | ||
| 7 | #include "proto.h" | ||
| 8 | |||
| 9 | |||
| 10 | /* | ||
| 11 | * The SRM console *disables* the IDE interface, this code ensures it's | ||
| 12 | * enabled. | ||
| 13 | * | ||
| 14 | * This code bangs on a control register of the 87312 Super I/O chip | ||
| 15 | * that implements parallel port/serial ports/IDE/FDI. Depending on | ||
| 16 | * the motherboard, the Super I/O chip can be configured through a | ||
| 17 | * pair of registers that are located either at I/O ports 0x26e/0x26f | ||
| 18 | * or 0x398/0x399. Unfortunately, autodetecting which base address is | ||
| 19 | * in use works only once (right after a reset). The Super I/O chip | ||
| 20 | * has the additional quirk that configuration register data must be | ||
| 21 | * written twice (I believe this is a safety feature to prevent | ||
| 22 | * accidental modification---fun, isn't it?). | ||
| 23 | */ | ||
| 24 | |||
| 25 | void __init | ||
| 26 | ns87312_enable_ide(long ide_base) | ||
| 27 | { | ||
| 28 | int data; | ||
| 29 | unsigned long flags; | ||
| 30 | |||
| 31 | local_irq_save(flags); | ||
| 32 | outb(0, ide_base); /* set the index register for reg #0 */ | ||
| 33 | data = inb(ide_base+1); /* read the current contents */ | ||
| 34 | outb(0, ide_base); /* set the index register for reg #0 */ | ||
| 35 | outb(data | 0x40, ide_base+1); /* turn on IDE */ | ||
| 36 | outb(data | 0x40, ide_base+1); /* turn on IDE, really! */ | ||
| 37 | local_irq_restore(flags); | ||
| 38 | } | ||
diff --git a/arch/alpha/kernel/pc873xx.c b/arch/alpha/kernel/pc873xx.c new file mode 100644 index 000000000000..27dcbff85613 --- /dev/null +++ b/arch/alpha/kernel/pc873xx.c | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | #include <linux/ioport.h> | ||
| 2 | #include <asm/io.h> | ||
| 3 | |||
| 4 | #include "pc873xx.h" | ||
| 5 | |||
| 6 | static unsigned pc873xx_probelist[] = {0x398, 0x26e, 0}; | ||
| 7 | |||
| 8 | static char *pc873xx_names[] = { | ||
| 9 | "PC87303", "PC87306", "PC87312", "PC87332", "PC87334" | ||
| 10 | }; | ||
| 11 | |||
| 12 | static unsigned int base, model; | ||
| 13 | |||
| 14 | |||
| 15 | unsigned int __init pc873xx_get_base() | ||
| 16 | { | ||
| 17 | return base; | ||
| 18 | } | ||
| 19 | |||
| 20 | char *__init pc873xx_get_model() | ||
| 21 | { | ||
| 22 | return pc873xx_names[model]; | ||
| 23 | } | ||
| 24 | |||
| 25 | static unsigned char __init pc873xx_read(unsigned int base, int reg) | ||
| 26 | { | ||
| 27 | outb(reg, base); | ||
| 28 | return inb(base + 1); | ||
| 29 | } | ||
| 30 | |||
| 31 | static void __init pc873xx_write(unsigned int base, int reg, unsigned char data) | ||
| 32 | { | ||
| 33 | unsigned long flags; | ||
| 34 | |||
| 35 | local_irq_save(flags); | ||
| 36 | outb(reg, base); | ||
| 37 | outb(data, base + 1); | ||
| 38 | outb(data, base + 1); /* Must be written twice */ | ||
| 39 | local_irq_restore(flags); | ||
| 40 | } | ||
| 41 | |||
| 42 | int __init pc873xx_probe(void) | ||
| 43 | { | ||
| 44 | int val, index = 0; | ||
| 45 | |||
| 46 | while ((base = pc873xx_probelist[index++])) { | ||
| 47 | |||
| 48 | if (request_region(base, 2, "Super IO PC873xx") == NULL) | ||
| 49 | continue; | ||
| 50 | |||
| 51 | val = pc873xx_read(base, REG_SID); | ||
| 52 | if ((val & 0xf0) == 0x10) { | ||
| 53 | model = PC87332; | ||
| 54 | break; | ||
| 55 | } else if ((val & 0xf8) == 0x70) { | ||
| 56 | model = PC87306; | ||
| 57 | break; | ||
| 58 | } else if ((val & 0xf8) == 0x50) { | ||
| 59 | model = PC87334; | ||
| 60 | break; | ||
| 61 | } else if ((val & 0xf8) == 0x40) { | ||
| 62 | model = PC87303; | ||
| 63 | break; | ||
| 64 | } | ||
| 65 | |||
| 66 | release_region(base, 2); | ||
| 67 | } | ||
| 68 | |||
| 69 | return (base == 0) ? -1 : 1; | ||
| 70 | } | ||
| 71 | |||
| 72 | void __init pc873xx_enable_epp19(void) | ||
| 73 | { | ||
| 74 | unsigned char data; | ||
| 75 | |||
| 76 | printk(KERN_INFO "PC873xx enabling EPP v1.9\n"); | ||
| 77 | data = pc873xx_read(base, REG_PCR); | ||
| 78 | pc873xx_write(base, REG_PCR, (data & 0xFC) | 0x02); | ||
| 79 | } | ||
| 80 | |||
| 81 | void __init pc873xx_enable_ide(void) | ||
| 82 | { | ||
| 83 | unsigned char data; | ||
| 84 | |||
| 85 | printk(KERN_INFO "PC873xx enabling IDE interrupt\n"); | ||
| 86 | data = pc873xx_read(base, REG_FER); | ||
| 87 | pc873xx_write(base, REG_FER, data | 0x40); | ||
| 88 | } | ||
diff --git a/arch/alpha/kernel/pc873xx.h b/arch/alpha/kernel/pc873xx.h new file mode 100644 index 000000000000..25e16956fe3e --- /dev/null +++ b/arch/alpha/kernel/pc873xx.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | |||
| 2 | #ifndef _PC873xx_H_ | ||
| 3 | #define _PC873xx_H_ | ||
| 4 | |||
| 5 | /* | ||
| 6 | * Control Register Values | ||
| 7 | */ | ||
| 8 | #define REG_FER 0x00 | ||
| 9 | #define REG_FAR 0x01 | ||
| 10 | #define REG_PTR 0x02 | ||
| 11 | #define REG_FCR 0x03 | ||
| 12 | #define REG_PCR 0x04 | ||
| 13 | #define REG_KRR 0x05 | ||
| 14 | #define REG_PMC 0x06 | ||
| 15 | #define REG_TUP 0x07 | ||
| 16 | #define REG_SID 0x08 | ||
| 17 | #define REG_ASC 0x09 | ||
| 18 | #define REG_IRC 0x0e | ||
| 19 | |||
| 20 | /* | ||
| 21 | * Model numbers | ||
| 22 | */ | ||
| 23 | #define PC87303 0 | ||
| 24 | #define PC87306 1 | ||
| 25 | #define PC87312 2 | ||
| 26 | #define PC87332 3 | ||
| 27 | #define PC87334 4 | ||
| 28 | |||
| 29 | int pc873xx_probe(void); | ||
| 30 | unsigned int pc873xx_get_base(void); | ||
| 31 | char *pc873xx_get_model(void); | ||
| 32 | void pc873xx_enable_epp19(void); | ||
| 33 | void pc873xx_enable_ide(void); | ||
| 34 | |||
| 35 | #endif | ||
diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c index a5fffc882c72..738fc824e2ea 100644 --- a/arch/alpha/kernel/pci-sysfs.c +++ b/arch/alpha/kernel/pci-sysfs.c | |||
| @@ -53,7 +53,6 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num, | |||
| 53 | 53 | ||
| 54 | /** | 54 | /** |
| 55 | * pci_mmap_resource - map a PCI resource into user memory space | 55 | * pci_mmap_resource - map a PCI resource into user memory space |
| 56 | * @filp: open sysfs file | ||
| 57 | * @kobj: kobject for mapping | 56 | * @kobj: kobject for mapping |
| 58 | * @attr: struct bin_attribute for the file being mapped | 57 | * @attr: struct bin_attribute for the file being mapped |
| 59 | * @vma: struct vm_area_struct passed into the mmap | 58 | * @vma: struct vm_area_struct passed into the mmap |
| @@ -61,7 +60,7 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num, | |||
| 61 | * | 60 | * |
| 62 | * Use the bus mapping routines to map a PCI resource into userspace. | 61 | * Use the bus mapping routines to map a PCI resource into userspace. |
| 63 | */ | 62 | */ |
| 64 | static int pci_mmap_resource(struct file *filp, struct kobject *kobj, | 63 | static int pci_mmap_resource(struct kobject *kobj, |
| 65 | struct bin_attribute *attr, | 64 | struct bin_attribute *attr, |
| 66 | struct vm_area_struct *vma, int sparse) | 65 | struct vm_area_struct *vma, int sparse) |
| 67 | { | 66 | { |
diff --git a/arch/alpha/kernel/sys_sio.c b/arch/alpha/kernel/sys_sio.c index d4327e461c22..85b4aea01ef8 100644 --- a/arch/alpha/kernel/sys_sio.c +++ b/arch/alpha/kernel/sys_sio.c | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #include "irq_impl.h" | 34 | #include "irq_impl.h" |
| 35 | #include "pci_impl.h" | 35 | #include "pci_impl.h" |
| 36 | #include "machvec_impl.h" | 36 | #include "machvec_impl.h" |
| 37 | #include "pc873xx.h" | ||
| 37 | 38 | ||
| 38 | #if defined(ALPHA_RESTORE_SRM_SETUP) | 39 | #if defined(ALPHA_RESTORE_SRM_SETUP) |
| 39 | /* Save LCA configuration data as the console had it set up. */ | 40 | /* Save LCA configuration data as the console had it set up. */ |
| @@ -208,7 +209,27 @@ noname_init_pci(void) | |||
| 208 | common_init_pci(); | 209 | common_init_pci(); |
| 209 | sio_pci_route(); | 210 | sio_pci_route(); |
| 210 | sio_fixup_irq_levels(sio_collect_irq_levels()); | 211 | sio_fixup_irq_levels(sio_collect_irq_levels()); |
| 211 | ns87312_enable_ide(0x26e); | 212 | |
| 213 | if (pc873xx_probe() == -1) { | ||
| 214 | printk(KERN_ERR "Probing for PC873xx Super IO chip failed.\n"); | ||
| 215 | } else { | ||
| 216 | printk(KERN_INFO "Found %s Super IO chip at 0x%x\n", | ||
| 217 | pc873xx_get_model(), pc873xx_get_base()); | ||
| 218 | |||
| 219 | /* Enabling things in the Super IO chip doesn't actually | ||
| 220 | * configure and enable things, the legacy drivers still | ||
| 221 | * need to do the actual configuration and enabling. | ||
| 222 | * This only unblocks them. | ||
| 223 | */ | ||
| 224 | |||
| 225 | #if !defined(CONFIG_ALPHA_AVANTI) | ||
| 226 | /* Don't bother on the Avanti family. | ||
| 227 | * None of them had on-board IDE. | ||
| 228 | */ | ||
| 229 | pc873xx_enable_ide(); | ||
| 230 | #endif | ||
| 231 | pc873xx_enable_epp19(); | ||
| 232 | } | ||
| 212 | } | 233 | } |
| 213 | 234 | ||
| 214 | static inline void __init | 235 | static inline void __init |
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug index 53696da4518f..2d38a50e66ba 100644 --- a/arch/powerpc/Kconfig.debug +++ b/arch/powerpc/Kconfig.debug | |||
| @@ -135,13 +135,6 @@ config DEBUGGER | |||
| 135 | depends on KGDB || XMON | 135 | depends on KGDB || XMON |
| 136 | default y | 136 | default y |
| 137 | 137 | ||
| 138 | config IRQSTACKS | ||
| 139 | bool "Use separate kernel stacks when processing interrupts" | ||
| 140 | help | ||
| 141 | If you say Y here the kernel will use separate kernel stacks | ||
| 142 | for handling hard and soft interrupts. This can help avoid | ||
| 143 | overflowing the process kernel stacks. | ||
| 144 | |||
| 145 | config VIRQ_DEBUG | 138 | config VIRQ_DEBUG |
| 146 | bool "Expose hardware/virtual IRQ mapping via debugfs" | 139 | bool "Expose hardware/virtual IRQ mapping via debugfs" |
| 147 | depends on DEBUG_FS | 140 | depends on DEBUG_FS |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index ad0df7d0a643..fae8192c8fcc 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
| @@ -141,7 +141,7 @@ $(patsubst %.S,%.o, $(filter %.S, $(src-boot))): %.o: %.S FORCE | |||
| 141 | $(obj)/wrapper.a: $(obj-wlib) FORCE | 141 | $(obj)/wrapper.a: $(obj-wlib) FORCE |
| 142 | $(call if_changed,bootar) | 142 | $(call if_changed,bootar) |
| 143 | 143 | ||
| 144 | hostprogs-y := addnote addRamDisk hack-coff mktree | 144 | hostprogs-y := addnote hack-coff mktree |
| 145 | 145 | ||
| 146 | targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a) | 146 | targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a) |
| 147 | extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \ | 147 | extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \ |
diff --git a/arch/powerpc/boot/addRamDisk.c b/arch/powerpc/boot/addRamDisk.c deleted file mode 100644 index 893f446cbd22..000000000000 --- a/arch/powerpc/boot/addRamDisk.c +++ /dev/null | |||
| @@ -1,311 +0,0 @@ | |||
| 1 | #include <stdio.h> | ||
| 2 | #include <stdlib.h> | ||
| 3 | #include <netinet/in.h> | ||
| 4 | #include <unistd.h> | ||
| 5 | #include <sys/types.h> | ||
| 6 | #include <sys/stat.h> | ||
| 7 | #include <string.h> | ||
| 8 | #include <elf.h> | ||
| 9 | |||
| 10 | #define ElfHeaderSize (64 * 1024) | ||
| 11 | #define ElfPages (ElfHeaderSize / 4096) | ||
| 12 | #define KERNELBASE (0xc000000000000000) | ||
| 13 | #define _ALIGN_UP(addr,size) (((addr)+((size)-1))&(~((size)-1))) | ||
| 14 | |||
| 15 | struct addr_range { | ||
| 16 | unsigned long long addr; | ||
| 17 | unsigned long memsize; | ||
| 18 | unsigned long offset; | ||
| 19 | }; | ||
| 20 | |||
| 21 | static int check_elf64(void *p, int size, struct addr_range *r) | ||
| 22 | { | ||
| 23 | Elf64_Ehdr *elf64 = p; | ||
| 24 | Elf64_Phdr *elf64ph; | ||
| 25 | |||
| 26 | if (elf64->e_ident[EI_MAG0] != ELFMAG0 || | ||
| 27 | elf64->e_ident[EI_MAG1] != ELFMAG1 || | ||
| 28 | elf64->e_ident[EI_MAG2] != ELFMAG2 || | ||
| 29 | elf64->e_ident[EI_MAG3] != ELFMAG3 || | ||
| 30 | elf64->e_ident[EI_CLASS] != ELFCLASS64 || | ||
| 31 | elf64->e_ident[EI_DATA] != ELFDATA2MSB || | ||
| 32 | elf64->e_type != ET_EXEC || elf64->e_machine != EM_PPC64) | ||
| 33 | return 0; | ||
| 34 | |||
| 35 | if ((elf64->e_phoff + sizeof(Elf64_Phdr)) > size) | ||
| 36 | return 0; | ||
| 37 | |||
| 38 | elf64ph = (Elf64_Phdr *) ((unsigned long)elf64 + | ||
| 39 | (unsigned long)elf64->e_phoff); | ||
| 40 | |||
| 41 | r->memsize = (unsigned long)elf64ph->p_memsz; | ||
| 42 | r->offset = (unsigned long)elf64ph->p_offset; | ||
| 43 | r->addr = (unsigned long long)elf64ph->p_vaddr; | ||
| 44 | |||
| 45 | #ifdef DEBUG | ||
| 46 | printf("PPC64 ELF file, ph:\n"); | ||
| 47 | printf("p_type 0x%08x\n", elf64ph->p_type); | ||
| 48 | printf("p_flags 0x%08x\n", elf64ph->p_flags); | ||
| 49 | printf("p_offset 0x%016llx\n", elf64ph->p_offset); | ||
| 50 | printf("p_vaddr 0x%016llx\n", elf64ph->p_vaddr); | ||
| 51 | printf("p_paddr 0x%016llx\n", elf64ph->p_paddr); | ||
| 52 | printf("p_filesz 0x%016llx\n", elf64ph->p_filesz); | ||
| 53 | printf("p_memsz 0x%016llx\n", elf64ph->p_memsz); | ||
| 54 | printf("p_align 0x%016llx\n", elf64ph->p_align); | ||
| 55 | printf("... skipping 0x%08lx bytes of ELF header\n", | ||
| 56 | (unsigned long)elf64ph->p_offset); | ||
| 57 | #endif | ||
| 58 | |||
| 59 | return 64; | ||
| 60 | } | ||
| 61 | static void get4k(FILE *file, char *buf ) | ||
| 62 | { | ||
| 63 | unsigned j; | ||
| 64 | unsigned num = fread(buf, 1, 4096, file); | ||
| 65 | for ( j=num; j<4096; ++j ) | ||
| 66 | buf[j] = 0; | ||
| 67 | } | ||
| 68 | |||
| 69 | static void put4k(FILE *file, char *buf ) | ||
| 70 | { | ||
| 71 | fwrite(buf, 1, 4096, file); | ||
| 72 | } | ||
| 73 | |||
| 74 | static void death(const char *msg, FILE *fdesc, const char *fname) | ||
| 75 | { | ||
| 76 | fprintf(stderr, msg); | ||
| 77 | fclose(fdesc); | ||
| 78 | unlink(fname); | ||
| 79 | exit(1); | ||
| 80 | } | ||
| 81 | |||
| 82 | int main(int argc, char **argv) | ||
| 83 | { | ||
| 84 | char inbuf[4096]; | ||
| 85 | struct addr_range vmlinux; | ||
| 86 | FILE *ramDisk; | ||
| 87 | FILE *inputVmlinux; | ||
| 88 | FILE *outputVmlinux; | ||
| 89 | |||
| 90 | char *rd_name, *lx_name, *out_name; | ||
| 91 | |||
| 92 | size_t i; | ||
| 93 | unsigned long ramFileLen; | ||
| 94 | unsigned long ramLen; | ||
| 95 | unsigned long roundR; | ||
| 96 | unsigned long offset_end; | ||
| 97 | |||
| 98 | unsigned long kernelLen; | ||
| 99 | unsigned long actualKernelLen; | ||
| 100 | unsigned long round; | ||
| 101 | unsigned long roundedKernelLen; | ||
| 102 | unsigned long ramStartOffs; | ||
| 103 | unsigned long ramPages; | ||
| 104 | unsigned long roundedKernelPages; | ||
| 105 | unsigned long hvReleaseData; | ||
| 106 | u_int32_t eyeCatcher = 0xc8a5d9c4; | ||
| 107 | unsigned long naca; | ||
| 108 | unsigned long xRamDisk; | ||
| 109 | unsigned long xRamDiskSize; | ||
| 110 | long padPages; | ||
| 111 | |||
| 112 | |||
| 113 | if (argc < 2) { | ||
| 114 | fprintf(stderr, "Name of RAM disk file missing.\n"); | ||
| 115 | exit(1); | ||
| 116 | } | ||
| 117 | rd_name = argv[1]; | ||
| 118 | |||
| 119 | if (argc < 3) { | ||
| 120 | fprintf(stderr, "Name of vmlinux file missing.\n"); | ||
| 121 | exit(1); | ||
| 122 | } | ||
| 123 | lx_name = argv[2]; | ||
| 124 | |||
| 125 | if (argc < 4) { | ||
| 126 | fprintf(stderr, "Name of vmlinux output file missing.\n"); | ||
| 127 | exit(1); | ||
| 128 | } | ||
| 129 | out_name = argv[3]; | ||
| 130 | |||
| 131 | |||
| 132 | ramDisk = fopen(rd_name, "r"); | ||
| 133 | if ( ! ramDisk ) { | ||
| 134 | fprintf(stderr, "RAM disk file \"%s\" failed to open.\n", rd_name); | ||
| 135 | exit(1); | ||
| 136 | } | ||
| 137 | |||
| 138 | inputVmlinux = fopen(lx_name, "r"); | ||
| 139 | if ( ! inputVmlinux ) { | ||
| 140 | fprintf(stderr, "vmlinux file \"%s\" failed to open.\n", lx_name); | ||
| 141 | exit(1); | ||
| 142 | } | ||
| 143 | |||
| 144 | outputVmlinux = fopen(out_name, "w+"); | ||
| 145 | if ( ! outputVmlinux ) { | ||
| 146 | fprintf(stderr, "output vmlinux file \"%s\" failed to open.\n", out_name); | ||
| 147 | exit(1); | ||
| 148 | } | ||
| 149 | |||
| 150 | i = fread(inbuf, 1, sizeof(inbuf), inputVmlinux); | ||
| 151 | if (i != sizeof(inbuf)) { | ||
| 152 | fprintf(stderr, "can not read vmlinux file %s: %u\n", lx_name, i); | ||
| 153 | exit(1); | ||
| 154 | } | ||
| 155 | |||
| 156 | i = check_elf64(inbuf, sizeof(inbuf), &vmlinux); | ||
| 157 | if (i == 0) { | ||
| 158 | fprintf(stderr, "You must have a linux kernel specified as argv[2]\n"); | ||
| 159 | exit(1); | ||
| 160 | } | ||
| 161 | |||
| 162 | /* Input Vmlinux file */ | ||
| 163 | fseek(inputVmlinux, 0, SEEK_END); | ||
| 164 | kernelLen = ftell(inputVmlinux); | ||
| 165 | fseek(inputVmlinux, 0, SEEK_SET); | ||
| 166 | printf("kernel file size = %lu\n", kernelLen); | ||
| 167 | |||
| 168 | actualKernelLen = kernelLen - ElfHeaderSize; | ||
| 169 | |||
| 170 | printf("actual kernel length (minus ELF header) = %lu\n", actualKernelLen); | ||
| 171 | |||
| 172 | round = actualKernelLen % 4096; | ||
| 173 | roundedKernelLen = actualKernelLen; | ||
| 174 | if ( round ) | ||
| 175 | roundedKernelLen += (4096 - round); | ||
| 176 | printf("Vmlinux length rounded up to a 4k multiple = %ld/0x%lx \n", roundedKernelLen, roundedKernelLen); | ||
| 177 | roundedKernelPages = roundedKernelLen / 4096; | ||
| 178 | printf("Vmlinux pages to copy = %ld/0x%lx \n", roundedKernelPages, roundedKernelPages); | ||
| 179 | |||
| 180 | offset_end = _ALIGN_UP(vmlinux.memsize, 4096); | ||
| 181 | /* calc how many pages we need to insert between the vmlinux and the start of the ram disk */ | ||
| 182 | padPages = offset_end/4096 - roundedKernelPages; | ||
| 183 | |||
| 184 | /* Check and see if the vmlinux is already larger than _end in System.map */ | ||
| 185 | if (padPages < 0) { | ||
| 186 | /* vmlinux is larger than _end - adjust the offset to the start of the embedded ram disk */ | ||
| 187 | offset_end = roundedKernelLen; | ||
| 188 | printf("vmlinux is larger than _end indicates it needs to be - offset_end = %lx \n", offset_end); | ||
| 189 | padPages = 0; | ||
| 190 | printf("will insert %lx pages between the vmlinux and the start of the ram disk \n", padPages); | ||
| 191 | } | ||
| 192 | else { | ||
| 193 | /* _end is larger than vmlinux - use the offset to _end that we calculated from the system map */ | ||
| 194 | printf("vmlinux is smaller than _end indicates is needed - offset_end = %lx \n", offset_end); | ||
| 195 | printf("will insert %lx pages between the vmlinux and the start of the ram disk \n", padPages); | ||
| 196 | } | ||
| 197 | |||
| 198 | |||
| 199 | |||
| 200 | /* Input Ram Disk file */ | ||
| 201 | // Set the offset that the ram disk will be started at. | ||
| 202 | ramStartOffs = offset_end; /* determined from the input vmlinux file and the system map */ | ||
| 203 | printf("Ram Disk will start at offset = 0x%lx \n", ramStartOffs); | ||
| 204 | |||
| 205 | fseek(ramDisk, 0, SEEK_END); | ||
| 206 | ramFileLen = ftell(ramDisk); | ||
| 207 | fseek(ramDisk, 0, SEEK_SET); | ||
| 208 | printf("%s file size = %ld/0x%lx \n", rd_name, ramFileLen, ramFileLen); | ||
| 209 | |||
| 210 | ramLen = ramFileLen; | ||
| 211 | |||
| 212 | roundR = 4096 - (ramLen % 4096); | ||
| 213 | if ( roundR ) { | ||
| 214 | printf("Rounding RAM disk file up to a multiple of 4096, adding %ld/0x%lx \n", roundR, roundR); | ||
| 215 | ramLen += roundR; | ||
| 216 | } | ||
| 217 | |||
| 218 | printf("Rounded RAM disk size is %ld/0x%lx \n", ramLen, ramLen); | ||
| 219 | ramPages = ramLen / 4096; | ||
| 220 | printf("RAM disk pages to copy = %ld/0x%lx\n", ramPages, ramPages); | ||
| 221 | |||
| 222 | |||
| 223 | |||
| 224 | // Copy 64K ELF header | ||
| 225 | for (i=0; i<(ElfPages); ++i) { | ||
| 226 | get4k( inputVmlinux, inbuf ); | ||
| 227 | put4k( outputVmlinux, inbuf ); | ||
| 228 | } | ||
| 229 | |||
| 230 | /* Copy the vmlinux (as full pages). */ | ||
| 231 | fseek(inputVmlinux, ElfHeaderSize, SEEK_SET); | ||
| 232 | for ( i=0; i<roundedKernelPages; ++i ) { | ||
| 233 | get4k( inputVmlinux, inbuf ); | ||
| 234 | put4k( outputVmlinux, inbuf ); | ||
| 235 | } | ||
| 236 | |||
| 237 | /* Insert pad pages (if appropriate) that are needed between */ | ||
| 238 | /* | the end of the vmlinux and the ram disk. */ | ||
| 239 | for (i=0; i<padPages; ++i) { | ||
| 240 | memset(inbuf, 0, 4096); | ||
| 241 | put4k(outputVmlinux, inbuf); | ||
| 242 | } | ||
| 243 | |||
| 244 | /* Copy the ram disk (as full pages). */ | ||
| 245 | for ( i=0; i<ramPages; ++i ) { | ||
| 246 | get4k( ramDisk, inbuf ); | ||
| 247 | put4k( outputVmlinux, inbuf ); | ||
| 248 | } | ||
| 249 | |||
| 250 | /* Close the input files */ | ||
| 251 | fclose(ramDisk); | ||
| 252 | fclose(inputVmlinux); | ||
| 253 | /* And flush the written output file */ | ||
| 254 | fflush(outputVmlinux); | ||
| 255 | |||
| 256 | |||
| 257 | |||
| 258 | /* Fixup the new vmlinux to contain the ram disk starting offset (xRamDisk) and the ram disk size (xRamDiskSize) */ | ||
| 259 | /* fseek to the hvReleaseData pointer */ | ||
| 260 | fseek(outputVmlinux, ElfHeaderSize + 0x24, SEEK_SET); | ||
| 261 | if (fread(&hvReleaseData, 4, 1, outputVmlinux) != 1) { | ||
| 262 | death("Could not read hvReleaseData pointer\n", outputVmlinux, out_name); | ||
| 263 | } | ||
| 264 | hvReleaseData = ntohl(hvReleaseData); /* Convert to native int */ | ||
| 265 | printf("hvReleaseData is at %08lx\n", hvReleaseData); | ||
| 266 | |||
| 267 | /* fseek to the hvReleaseData */ | ||
| 268 | fseek(outputVmlinux, ElfHeaderSize + hvReleaseData, SEEK_SET); | ||
| 269 | if (fread(inbuf, 0x40, 1, outputVmlinux) != 1) { | ||
| 270 | death("Could not read hvReleaseData\n", outputVmlinux, out_name); | ||
| 271 | } | ||
| 272 | /* Check hvReleaseData sanity */ | ||
| 273 | if (memcmp(inbuf, &eyeCatcher, 4) != 0) { | ||
| 274 | death("hvReleaseData is invalid\n", outputVmlinux, out_name); | ||
| 275 | } | ||
| 276 | /* Get the naca pointer */ | ||
| 277 | naca = ntohl(*((u_int32_t*) &inbuf[0x0C])) - KERNELBASE; | ||
| 278 | printf("Naca is at offset 0x%lx \n", naca); | ||
| 279 | |||
| 280 | /* fseek to the naca */ | ||
| 281 | fseek(outputVmlinux, ElfHeaderSize + naca, SEEK_SET); | ||
| 282 | if (fread(inbuf, 0x18, 1, outputVmlinux) != 1) { | ||
| 283 | death("Could not read naca\n", outputVmlinux, out_name); | ||
| 284 | } | ||
| 285 | xRamDisk = ntohl(*((u_int32_t *) &inbuf[0x0c])); | ||
| 286 | xRamDiskSize = ntohl(*((u_int32_t *) &inbuf[0x14])); | ||
| 287 | /* Make sure a RAM disk isn't already present */ | ||
| 288 | if ((xRamDisk != 0) || (xRamDiskSize != 0)) { | ||
| 289 | death("RAM disk is already attached to this kernel\n", outputVmlinux, out_name); | ||
| 290 | } | ||
| 291 | /* Fill in the values */ | ||
| 292 | *((u_int32_t *) &inbuf[0x0c]) = htonl(ramStartOffs); | ||
| 293 | *((u_int32_t *) &inbuf[0x14]) = htonl(ramPages); | ||
| 294 | |||
| 295 | /* Write out the new naca */ | ||
| 296 | fflush(outputVmlinux); | ||
| 297 | fseek(outputVmlinux, ElfHeaderSize + naca, SEEK_SET); | ||
| 298 | if (fwrite(inbuf, 0x18, 1, outputVmlinux) != 1) { | ||
| 299 | death("Could not write naca\n", outputVmlinux, out_name); | ||
| 300 | } | ||
| 301 | printf("Ram Disk of 0x%lx pages is attached to the kernel at offset 0x%08lx\n", | ||
| 302 | ramPages, ramStartOffs); | ||
| 303 | |||
| 304 | /* Done */ | ||
| 305 | fclose(outputVmlinux); | ||
| 306 | /* Set permission to executable */ | ||
| 307 | chmod(out_name, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); | ||
| 308 | |||
| 309 | return 0; | ||
| 310 | } | ||
| 311 | |||
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts index 82ff2b13bc37..179a1785d645 100644 --- a/arch/powerpc/boot/dts/lite5200.dts +++ b/arch/powerpc/boot/dts/lite5200.dts | |||
| @@ -134,12 +134,16 @@ | |||
| 134 | compatible = "fsl,mpc5200-gpio"; | 134 | compatible = "fsl,mpc5200-gpio"; |
| 135 | reg = <0xb00 0x40>; | 135 | reg = <0xb00 0x40>; |
| 136 | interrupts = <1 7 0>; | 136 | interrupts = <1 7 0>; |
| 137 | gpio-controller; | ||
| 138 | #gpio-cells = <2>; | ||
| 137 | }; | 139 | }; |
| 138 | 140 | ||
| 139 | gpio@c00 { | 141 | gpio@c00 { |
| 140 | compatible = "fsl,mpc5200-gpio-wkup"; | 142 | compatible = "fsl,mpc5200-gpio-wkup"; |
| 141 | reg = <0xc00 0x40>; | 143 | reg = <0xc00 0x40>; |
| 142 | interrupts = <1 8 0 0 3 0>; | 144 | interrupts = <1 8 0 0 3 0>; |
| 145 | gpio-controller; | ||
| 146 | #gpio-cells = <2>; | ||
| 143 | }; | 147 | }; |
| 144 | 148 | ||
| 145 | spi@f00 { | 149 | spi@f00 { |
| @@ -230,8 +234,8 @@ | |||
| 230 | reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts | 234 | reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts |
| 231 | interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. | 235 | interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. |
| 232 | 236 | ||
| 233 | phy0: ethernet-phy@1 { | 237 | phy0: ethernet-phy@0 { |
| 234 | reg = <1>; | 238 | reg = <0>; |
| 235 | }; | 239 | }; |
| 236 | }; | 240 | }; |
| 237 | 241 | ||
| @@ -255,7 +259,13 @@ | |||
| 255 | compatible = "fsl,mpc5200-i2c","fsl-i2c"; | 259 | compatible = "fsl,mpc5200-i2c","fsl-i2c"; |
| 256 | reg = <0x3d40 0x40>; | 260 | reg = <0x3d40 0x40>; |
| 257 | interrupts = <2 16 0>; | 261 | interrupts = <2 16 0>; |
| 262 | |||
| 263 | eeprom@50 { | ||
| 264 | compatible = "atmel,24c02"; | ||
| 265 | reg = <0x50>; | ||
| 266 | }; | ||
| 258 | }; | 267 | }; |
| 268 | |||
| 259 | sram@8000 { | 269 | sram@8000 { |
| 260 | compatible = "fsl,mpc5200-sram"; | 270 | compatible = "fsl,mpc5200-sram"; |
| 261 | reg = <0x8000 0x4000>; | 271 | reg = <0x8000 0x4000>; |
| @@ -281,4 +291,18 @@ | |||
| 281 | 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 | 291 | 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 |
| 282 | 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>; | 292 | 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>; |
| 283 | }; | 293 | }; |
| 294 | |||
| 295 | localbus { | ||
| 296 | compatible = "fsl,mpc5200-lpb","simple-bus"; | ||
| 297 | #address-cells = <2>; | ||
| 298 | #size-cells = <1>; | ||
| 299 | |||
| 300 | ranges = <0 0 0xff000000 0x01000000>; | ||
| 301 | |||
| 302 | flash@0,0 { | ||
| 303 | compatible = "amd,am29lv652d", "cfi-flash"; | ||
| 304 | reg = <0 0 0x01000000>; | ||
| 305 | bank-width = <1>; | ||
| 306 | }; | ||
| 307 | }; | ||
| 284 | }; | 308 | }; |
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index e45a63be3a86..59702ace900f 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts | |||
| @@ -259,6 +259,11 @@ | |||
| 259 | compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; | 259 | compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; |
| 260 | reg = <0x3d40 0x40>; | 260 | reg = <0x3d40 0x40>; |
| 261 | interrupts = <2 16 0>; | 261 | interrupts = <2 16 0>; |
| 262 | |||
| 263 | eeprom@50 { | ||
| 264 | compatible = "atmel,24c02"; | ||
| 265 | reg = <0x50>; | ||
| 266 | }; | ||
| 262 | }; | 267 | }; |
| 263 | 268 | ||
| 264 | sram@8000 { | 269 | sram@8000 { |
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig index 8e95f8d227b9..4aa17b676a3f 100644 --- a/arch/powerpc/configs/40x/acadia_defconfig +++ b/arch/powerpc/configs/40x/acadia_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_GROUP_SCHED=y | |||
| 98 | CONFIG_USER_SCHED=y | 98 | CONFIG_USER_SCHED=y |
| 99 | # CONFIG_CGROUP_SCHED is not set | 99 | # CONFIG_CGROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig index 918f23fd2b18..9a5f1ab777ed 100644 --- a/arch/powerpc/configs/40x/ep405_defconfig +++ b/arch/powerpc/configs/40x/ep405_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 98 | CONFIG_USER_SCHED=y | 98 | CONFIG_USER_SCHED=y |
| 99 | # CONFIG_CGROUP_SCHED is not set | 99 | # CONFIG_CGROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig index f87ef0382280..0b452135d1d4 100644 --- a/arch/powerpc/configs/40x/hcu4_defconfig +++ b/arch/powerpc/configs/40x/hcu4_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 98 | CONFIG_USER_SCHED=y | 98 | CONFIG_USER_SCHED=y |
| 99 | # CONFIG_CGROUP_SCHED is not set | 99 | # CONFIG_CGROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig index 19fbcb075376..4d2de0bed60e 100644 --- a/arch/powerpc/configs/40x/kilauea_defconfig +++ b/arch/powerpc/configs/40x/kilauea_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_GROUP_SCHED=y | |||
| 98 | CONFIG_USER_SCHED=y | 98 | CONFIG_USER_SCHED=y |
| 99 | # CONFIG_CGROUP_SCHED is not set | 99 | # CONFIG_CGROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig index eb41cd695979..a1f3f505e4a7 100644 --- a/arch/powerpc/configs/40x/makalu_defconfig +++ b/arch/powerpc/configs/40x/makalu_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_GROUP_SCHED=y | |||
| 98 | CONFIG_USER_SCHED=y | 98 | CONFIG_USER_SCHED=y |
| 99 | # CONFIG_CGROUP_SCHED is not set | 99 | # CONFIG_CGROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig index 416e79ac0711..c76313577140 100644 --- a/arch/powerpc/configs/40x/virtex_defconfig +++ b/arch/powerpc/configs/40x/virtex_defconfig | |||
| @@ -77,8 +77,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 77 | CONFIG_LOG_BUF_SHIFT=14 | 77 | CONFIG_LOG_BUF_SHIFT=14 |
| 78 | # CONFIG_GROUP_SCHED is not set | 78 | # CONFIG_GROUP_SCHED is not set |
| 79 | # CONFIG_CGROUPS is not set | 79 | # CONFIG_CGROUPS is not set |
| 80 | CONFIG_SYSFS_DEPRECATED=y | 80 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 81 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 82 | # CONFIG_RELAY is not set | 81 | # CONFIG_RELAY is not set |
| 83 | CONFIG_NAMESPACES=y | 82 | CONFIG_NAMESPACES=y |
| 84 | # CONFIG_UTS_NS is not set | 83 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig index bfff0eae39d2..6597b2f1d1a8 100644 --- a/arch/powerpc/configs/40x/walnut_defconfig +++ b/arch/powerpc/configs/40x/walnut_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 98 | CONFIG_USER_SCHED=y | 98 | CONFIG_USER_SCHED=y |
| 99 | # CONFIG_CGROUP_SCHED is not set | 99 | # CONFIG_CGROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig index 1f6d0490e28d..2d3dfb55fbed 100644 --- a/arch/powerpc/configs/44x/arches_defconfig +++ b/arch/powerpc/configs/44x/arches_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 98 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
| 99 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig index 788faac6c27a..51a00c46df19 100644 --- a/arch/powerpc/configs/44x/bamboo_defconfig +++ b/arch/powerpc/configs/44x/bamboo_defconfig | |||
| @@ -102,8 +102,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 102 | CONFIG_USER_SCHED=y | 102 | CONFIG_USER_SCHED=y |
| 103 | # CONFIG_CGROUP_SCHED is not set | 103 | # CONFIG_CGROUP_SCHED is not set |
| 104 | # CONFIG_CGROUPS is not set | 104 | # CONFIG_CGROUPS is not set |
| 105 | CONFIG_SYSFS_DEPRECATED=y | 105 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 106 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 107 | # CONFIG_RELAY is not set | 106 | # CONFIG_RELAY is not set |
| 108 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
| 109 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig index 4ef8bcab61f8..1028b1bfb602 100644 --- a/arch/powerpc/configs/44x/canyonlands_defconfig +++ b/arch/powerpc/configs/44x/canyonlands_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 98 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
| 99 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig index ca17b1496e32..69f5633cbd4f 100644 --- a/arch/powerpc/configs/44x/ebony_defconfig +++ b/arch/powerpc/configs/44x/ebony_defconfig | |||
| @@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 101 | CONFIG_USER_SCHED=y | 101 | CONFIG_USER_SCHED=y |
| 102 | # CONFIG_CGROUP_SCHED is not set | 102 | # CONFIG_CGROUP_SCHED is not set |
| 103 | # CONFIG_CGROUPS is not set | 103 | # CONFIG_CGROUPS is not set |
| 104 | CONFIG_SYSFS_DEPRECATED=y | 104 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 105 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 106 | # CONFIG_RELAY is not set | 105 | # CONFIG_RELAY is not set |
| 107 | # CONFIG_NAMESPACES is not set | 106 | # CONFIG_NAMESPACES is not set |
| 108 | CONFIG_BLK_DEV_INITRD=y | 107 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/eiger_defconfig b/arch/powerpc/configs/44x/eiger_defconfig index e3149bade0b2..dcd859c8b4a6 100644 --- a/arch/powerpc/configs/44x/eiger_defconfig +++ b/arch/powerpc/configs/44x/eiger_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 98 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
| 99 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig index af244e1d255e..a2c24d1e051e 100644 --- a/arch/powerpc/configs/44x/katmai_defconfig +++ b/arch/powerpc/configs/44x/katmai_defconfig | |||
| @@ -97,8 +97,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 97 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
| 98 | # CONFIG_GROUP_SCHED is not set | 98 | # CONFIG_GROUP_SCHED is not set |
| 99 | # CONFIG_CGROUPS is not set | 99 | # CONFIG_CGROUPS is not set |
| 100 | CONFIG_SYSFS_DEPRECATED=y | 100 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 101 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 102 | # CONFIG_RELAY is not set | 101 | # CONFIG_RELAY is not set |
| 103 | # CONFIG_NAMESPACES is not set | 102 | # CONFIG_NAMESPACES is not set |
| 104 | CONFIG_BLK_DEV_INITRD=y | 103 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/rainier_defconfig b/arch/powerpc/configs/44x/rainier_defconfig index 8fed3b26af2e..3bb55b57077e 100644 --- a/arch/powerpc/configs/44x/rainier_defconfig +++ b/arch/powerpc/configs/44x/rainier_defconfig | |||
| @@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 101 | CONFIG_USER_SCHED=y | 101 | CONFIG_USER_SCHED=y |
| 102 | # CONFIG_CGROUP_SCHED is not set | 102 | # CONFIG_CGROUP_SCHED is not set |
| 103 | # CONFIG_CGROUPS is not set | 103 | # CONFIG_CGROUPS is not set |
| 104 | CONFIG_SYSFS_DEPRECATED=y | 104 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 105 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 106 | # CONFIG_RELAY is not set | 105 | # CONFIG_RELAY is not set |
| 107 | # CONFIG_NAMESPACES is not set | 106 | # CONFIG_NAMESPACES is not set |
| 108 | CONFIG_BLK_DEV_INITRD=y | 107 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/redwood_defconfig b/arch/powerpc/configs/44x/redwood_defconfig index a67ec91a28c3..684f40dc8a41 100644 --- a/arch/powerpc/configs/44x/redwood_defconfig +++ b/arch/powerpc/configs/44x/redwood_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 98 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
| 99 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig index 886cb6aa6432..e202924e6173 100644 --- a/arch/powerpc/configs/44x/sam440ep_defconfig +++ b/arch/powerpc/configs/44x/sam440ep_defconfig | |||
| @@ -103,8 +103,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 103 | CONFIG_USER_SCHED=y | 103 | CONFIG_USER_SCHED=y |
| 104 | # CONFIG_CGROUP_SCHED is not set | 104 | # CONFIG_CGROUP_SCHED is not set |
| 105 | # CONFIG_CGROUPS is not set | 105 | # CONFIG_CGROUPS is not set |
| 106 | CONFIG_SYSFS_DEPRECATED=y | 106 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 107 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 108 | # CONFIG_RELAY is not set | 107 | # CONFIG_RELAY is not set |
| 109 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
| 110 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig index 1b2f41dbcafb..c348a4662a9e 100644 --- a/arch/powerpc/configs/44x/sequoia_defconfig +++ b/arch/powerpc/configs/44x/sequoia_defconfig | |||
| @@ -102,8 +102,7 @@ CONFIG_GROUP_SCHED=y | |||
| 102 | CONFIG_USER_SCHED=y | 102 | CONFIG_USER_SCHED=y |
| 103 | # CONFIG_CGROUP_SCHED is not set | 103 | # CONFIG_CGROUP_SCHED is not set |
| 104 | # CONFIG_CGROUPS is not set | 104 | # CONFIG_CGROUPS is not set |
| 105 | CONFIG_SYSFS_DEPRECATED=y | 105 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 106 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 107 | # CONFIG_RELAY is not set | 106 | # CONFIG_RELAY is not set |
| 108 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
| 109 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig index 12041d355b8c..f4cb7e84cb83 100644 --- a/arch/powerpc/configs/44x/taishan_defconfig +++ b/arch/powerpc/configs/44x/taishan_defconfig | |||
| @@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 101 | CONFIG_USER_SCHED=y | 101 | CONFIG_USER_SCHED=y |
| 102 | # CONFIG_CGROUP_SCHED is not set | 102 | # CONFIG_CGROUP_SCHED is not set |
| 103 | # CONFIG_CGROUPS is not set | 103 | # CONFIG_CGROUPS is not set |
| 104 | CONFIG_SYSFS_DEPRECATED=y | 104 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 105 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 106 | # CONFIG_RELAY is not set | 105 | # CONFIG_RELAY is not set |
| 107 | # CONFIG_NAMESPACES is not set | 106 | # CONFIG_NAMESPACES is not set |
| 108 | CONFIG_BLK_DEV_INITRD=y | 107 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig index 2518b8568c70..c7ead0ec00bc 100644 --- a/arch/powerpc/configs/44x/virtex5_defconfig +++ b/arch/powerpc/configs/44x/virtex5_defconfig | |||
| @@ -80,8 +80,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 80 | CONFIG_LOG_BUF_SHIFT=14 | 80 | CONFIG_LOG_BUF_SHIFT=14 |
| 81 | # CONFIG_GROUP_SCHED is not set | 81 | # CONFIG_GROUP_SCHED is not set |
| 82 | # CONFIG_CGROUPS is not set | 82 | # CONFIG_CGROUPS is not set |
| 83 | CONFIG_SYSFS_DEPRECATED=y | 83 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 84 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 85 | # CONFIG_RELAY is not set | 84 | # CONFIG_RELAY is not set |
| 86 | CONFIG_NAMESPACES=y | 85 | CONFIG_NAMESPACES=y |
| 87 | # CONFIG_UTS_NS is not set | 86 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig index 218d49b36a0c..7664c83c17c2 100644 --- a/arch/powerpc/configs/52xx/cm5200_defconfig +++ b/arch/powerpc/configs/52xx/cm5200_defconfig | |||
| @@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 95 | # CONFIG_IKCONFIG is not set | 95 | # CONFIG_IKCONFIG is not set |
| 96 | CONFIG_LOG_BUF_SHIFT=14 | 96 | CONFIG_LOG_BUF_SHIFT=14 |
| 97 | # CONFIG_CGROUPS is not set | 97 | # CONFIG_CGROUPS is not set |
| 98 | CONFIG_SYSFS_DEPRECATED=y | 98 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 99 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 100 | # CONFIG_RELAY is not set | 99 | # CONFIG_RELAY is not set |
| 101 | # CONFIG_NAMESPACES is not set | 100 | # CONFIG_NAMESPACES is not set |
| 102 | CONFIG_BLK_DEV_INITRD=y | 101 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig index 90492ff25232..eac7c17eef34 100644 --- a/arch/powerpc/configs/52xx/lite5200b_defconfig +++ b/arch/powerpc/configs/52xx/lite5200b_defconfig | |||
| @@ -96,8 +96,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 96 | # CONFIG_IKCONFIG is not set | 96 | # CONFIG_IKCONFIG is not set |
| 97 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
| 98 | # CONFIG_CGROUPS is not set | 98 | # CONFIG_CGROUPS is not set |
| 99 | CONFIG_SYSFS_DEPRECATED=y | 99 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 100 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 101 | # CONFIG_RELAY is not set | 100 | # CONFIG_RELAY is not set |
| 102 | # CONFIG_NAMESPACES is not set | 101 | # CONFIG_NAMESPACES is not set |
| 103 | CONFIG_BLK_DEV_INITRD=y | 102 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig index dffc8cac825f..27afb6ecdf61 100644 --- a/arch/powerpc/configs/52xx/motionpro_defconfig +++ b/arch/powerpc/configs/52xx/motionpro_defconfig | |||
| @@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 95 | # CONFIG_IKCONFIG is not set | 95 | # CONFIG_IKCONFIG is not set |
| 96 | CONFIG_LOG_BUF_SHIFT=14 | 96 | CONFIG_LOG_BUF_SHIFT=14 |
| 97 | # CONFIG_CGROUPS is not set | 97 | # CONFIG_CGROUPS is not set |
| 98 | CONFIG_SYSFS_DEPRECATED=y | 98 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 99 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 100 | # CONFIG_RELAY is not set | 99 | # CONFIG_RELAY is not set |
| 101 | # CONFIG_NAMESPACES is not set | 100 | # CONFIG_NAMESPACES is not set |
| 102 | CONFIG_BLK_DEV_INITRD=y | 101 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig index 3cb2a522046a..5fe39ddb4e14 100644 --- a/arch/powerpc/configs/52xx/pcm030_defconfig +++ b/arch/powerpc/configs/52xx/pcm030_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_IKCONFIG=y | |||
| 98 | CONFIG_IKCONFIG_PROC=y | 98 | CONFIG_IKCONFIG_PROC=y |
| 99 | CONFIG_LOG_BUF_SHIFT=14 | 99 | CONFIG_LOG_BUF_SHIFT=14 |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | # CONFIG_BLK_DEV_INITRD is not set | 104 | # CONFIG_BLK_DEV_INITRD is not set |
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig index 96181c62abfa..a108b84c0074 100644 --- a/arch/powerpc/configs/52xx/tqm5200_defconfig +++ b/arch/powerpc/configs/52xx/tqm5200_defconfig | |||
| @@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 95 | # CONFIG_IKCONFIG is not set | 95 | # CONFIG_IKCONFIG is not set |
| 96 | CONFIG_LOG_BUF_SHIFT=14 | 96 | CONFIG_LOG_BUF_SHIFT=14 |
| 97 | # CONFIG_CGROUPS is not set | 97 | # CONFIG_CGROUPS is not set |
| 98 | CONFIG_SYSFS_DEPRECATED=y | 98 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 99 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 100 | # CONFIG_RELAY is not set | 99 | # CONFIG_RELAY is not set |
| 101 | # CONFIG_NAMESPACES is not set | 100 | # CONFIG_NAMESPACES is not set |
| 102 | CONFIG_BLK_DEV_INITRD=y | 101 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig index 183c59c6d896..b728a7d64250 100644 --- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig +++ b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig | |||
| @@ -103,8 +103,7 @@ CONFIG_IKCONFIG=y | |||
| 103 | CONFIG_IKCONFIG_PROC=y | 103 | CONFIG_IKCONFIG_PROC=y |
| 104 | CONFIG_LOG_BUF_SHIFT=14 | 104 | CONFIG_LOG_BUF_SHIFT=14 |
| 105 | # CONFIG_CGROUPS is not set | 105 | # CONFIG_CGROUPS is not set |
| 106 | CONFIG_SYSFS_DEPRECATED=y | 106 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 107 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 108 | CONFIG_RELAY=y | 107 | CONFIG_RELAY=y |
| 109 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
| 110 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig index 1524d948a2ba..8e738de5f6a5 100644 --- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc310_defconfig | |||
| @@ -103,8 +103,7 @@ CONFIG_IKCONFIG=y | |||
| 103 | CONFIG_IKCONFIG_PROC=y | 103 | CONFIG_IKCONFIG_PROC=y |
| 104 | CONFIG_LOG_BUF_SHIFT=14 | 104 | CONFIG_LOG_BUF_SHIFT=14 |
| 105 | # CONFIG_CGROUPS is not set | 105 | # CONFIG_CGROUPS is not set |
| 106 | CONFIG_SYSFS_DEPRECATED=y | 106 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 107 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 108 | CONFIG_RELAY=y | 107 | CONFIG_RELAY=y |
| 109 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
| 110 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig index 767c204c0603..59bf9e27d7f2 100644 --- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig | |||
| @@ -103,8 +103,7 @@ CONFIG_IKCONFIG=y | |||
| 103 | CONFIG_IKCONFIG_PROC=y | 103 | CONFIG_IKCONFIG_PROC=y |
| 104 | CONFIG_LOG_BUF_SHIFT=14 | 104 | CONFIG_LOG_BUF_SHIFT=14 |
| 105 | # CONFIG_CGROUPS is not set | 105 | # CONFIG_CGROUPS is not set |
| 106 | CONFIG_SYSFS_DEPRECATED=y | 106 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 107 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 108 | CONFIG_RELAY=y | 107 | CONFIG_RELAY=y |
| 109 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
| 110 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig index 55b9e4e867ac..4e8b01e73245 100644 --- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig +++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_IKCONFIG=y | |||
| 98 | CONFIG_IKCONFIG_PROC=y | 98 | CONFIG_IKCONFIG_PROC=y |
| 99 | CONFIG_LOG_BUF_SHIFT=14 | 99 | CONFIG_LOG_BUF_SHIFT=14 |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
| 105 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig index 1be38eb05783..20fde6374aad 100644 --- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig +++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig | |||
| @@ -103,8 +103,7 @@ CONFIG_IKCONFIG=y | |||
| 103 | CONFIG_IKCONFIG_PROC=y | 103 | CONFIG_IKCONFIG_PROC=y |
| 104 | CONFIG_LOG_BUF_SHIFT=14 | 104 | CONFIG_LOG_BUF_SHIFT=14 |
| 105 | # CONFIG_CGROUPS is not set | 105 | # CONFIG_CGROUPS is not set |
| 106 | CONFIG_SYSFS_DEPRECATED=y | 106 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 107 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 108 | # CONFIG_RELAY is not set | 107 | # CONFIG_RELAY is not set |
| 109 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
| 110 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig index a63009457323..74f714d85936 100644 --- a/arch/powerpc/configs/86xx/sbc8641d_defconfig +++ b/arch/powerpc/configs/86xx/sbc8641d_defconfig | |||
| @@ -102,8 +102,7 @@ CONFIG_IKCONFIG=y | |||
| 102 | CONFIG_IKCONFIG_PROC=y | 102 | CONFIG_IKCONFIG_PROC=y |
| 103 | CONFIG_LOG_BUF_SHIFT=14 | 103 | CONFIG_LOG_BUF_SHIFT=14 |
| 104 | # CONFIG_CGROUPS is not set | 104 | # CONFIG_CGROUPS is not set |
| 105 | CONFIG_SYSFS_DEPRECATED=y | 105 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 106 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 107 | CONFIG_RELAY=y | 106 | CONFIG_RELAY=y |
| 108 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
| 109 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig index 9f89d5c9c0be..a670cee255b9 100644 --- a/arch/powerpc/configs/adder875_defconfig +++ b/arch/powerpc/configs/adder875_defconfig | |||
| @@ -92,8 +92,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 92 | # CONFIG_IKCONFIG is not set | 92 | # CONFIG_IKCONFIG is not set |
| 93 | CONFIG_LOG_BUF_SHIFT=14 | 93 | CONFIG_LOG_BUF_SHIFT=14 |
| 94 | # CONFIG_CGROUPS is not set | 94 | # CONFIG_CGROUPS is not set |
| 95 | CONFIG_SYSFS_DEPRECATED=y | 95 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 96 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 97 | # CONFIG_RELAY is not set | 96 | # CONFIG_RELAY is not set |
| 98 | # CONFIG_NAMESPACES is not set | 97 | # CONFIG_NAMESPACES is not set |
| 99 | # CONFIG_BLK_DEV_INITRD is not set | 98 | # CONFIG_BLK_DEV_INITRD is not set |
diff --git a/arch/powerpc/configs/amigaone_defconfig b/arch/powerpc/configs/amigaone_defconfig index b63cc38df6b1..851287e78fc3 100644 --- a/arch/powerpc/configs/amigaone_defconfig +++ b/arch/powerpc/configs/amigaone_defconfig | |||
| @@ -87,8 +87,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 87 | CONFIG_LOG_BUF_SHIFT=15 | 87 | CONFIG_LOG_BUF_SHIFT=15 |
| 88 | # CONFIG_GROUP_SCHED is not set | 88 | # CONFIG_GROUP_SCHED is not set |
| 89 | # CONFIG_CGROUPS is not set | 89 | # CONFIG_CGROUPS is not set |
| 90 | CONFIG_SYSFS_DEPRECATED=y | 90 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 91 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 92 | # CONFIG_RELAY is not set | 91 | # CONFIG_RELAY is not set |
| 93 | CONFIG_NAMESPACES=y | 92 | CONFIG_NAMESPACES=y |
| 94 | # CONFIG_UTS_NS is not set | 93 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig index 4ab6074db3cf..b429a655b541 100644 --- a/arch/powerpc/configs/c2k_defconfig +++ b/arch/powerpc/configs/c2k_defconfig | |||
| @@ -102,8 +102,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 102 | # CONFIG_IKCONFIG is not set | 102 | # CONFIG_IKCONFIG is not set |
| 103 | CONFIG_LOG_BUF_SHIFT=17 | 103 | CONFIG_LOG_BUF_SHIFT=17 |
| 104 | # CONFIG_CGROUPS is not set | 104 | # CONFIG_CGROUPS is not set |
| 105 | CONFIG_SYSFS_DEPRECATED=y | 105 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 106 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 107 | # CONFIG_RELAY is not set | 106 | # CONFIG_RELAY is not set |
| 108 | CONFIG_NAMESPACES=y | 107 | CONFIG_NAMESPACES=y |
| 109 | # CONFIG_UTS_NS is not set | 108 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index c6d2baa7aaeb..943371954317 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
| @@ -83,8 +83,7 @@ CONFIG_CPUSETS=y | |||
| 83 | # CONFIG_CGROUP_SCHED is not set | 83 | # CONFIG_CGROUP_SCHED is not set |
| 84 | # CONFIG_CGROUP_CPUACCT is not set | 84 | # CONFIG_CGROUP_CPUACCT is not set |
| 85 | # CONFIG_RESOURCE_COUNTERS is not set | 85 | # CONFIG_RESOURCE_COUNTERS is not set |
| 86 | CONFIG_SYSFS_DEPRECATED=y | 86 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 87 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 88 | CONFIG_PROC_PID_CPUSET=y | 87 | CONFIG_PROC_PID_CPUSET=y |
| 89 | # CONFIG_RELAY is not set | 88 | # CONFIG_RELAY is not set |
| 90 | CONFIG_NAMESPACES=y | 89 | CONFIG_NAMESPACES=y |
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig index d2123779512a..6be6c09eba6d 100644 --- a/arch/powerpc/configs/celleb_defconfig +++ b/arch/powerpc/configs/celleb_defconfig | |||
| @@ -78,8 +78,7 @@ CONFIG_LOG_BUF_SHIFT=15 | |||
| 78 | # CONFIG_GROUP_SCHED is not set | 78 | # CONFIG_GROUP_SCHED is not set |
| 79 | # CONFIG_USER_SCHED is not set | 79 | # CONFIG_USER_SCHED is not set |
| 80 | # CONFIG_CGROUP_SCHED is not set | 80 | # CONFIG_CGROUP_SCHED is not set |
| 81 | CONFIG_SYSFS_DEPRECATED=y | 81 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 82 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 83 | # CONFIG_RELAY is not set | 82 | # CONFIG_RELAY is not set |
| 84 | CONFIG_NAMESPACES=y | 83 | CONFIG_NAMESPACES=y |
| 85 | # CONFIG_UTS_NS is not set | 84 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig index 5094a65a4493..2fdab660fce3 100644 --- a/arch/powerpc/configs/chrp32_defconfig +++ b/arch/powerpc/configs/chrp32_defconfig | |||
| @@ -77,8 +77,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 77 | CONFIG_LOG_BUF_SHIFT=15 | 77 | CONFIG_LOG_BUF_SHIFT=15 |
| 78 | # CONFIG_CGROUPS is not set | 78 | # CONFIG_CGROUPS is not set |
| 79 | # CONFIG_GROUP_SCHED is not set | 79 | # CONFIG_GROUP_SCHED is not set |
| 80 | CONFIG_SYSFS_DEPRECATED=y | 80 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 81 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 82 | # CONFIG_RELAY is not set | 81 | # CONFIG_RELAY is not set |
| 83 | CONFIG_NAMESPACES=y | 82 | CONFIG_NAMESPACES=y |
| 84 | # CONFIG_UTS_NS is not set | 83 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig index 81e904e9f392..6b708395a7c6 100644 --- a/arch/powerpc/configs/ep8248e_defconfig +++ b/arch/powerpc/configs/ep8248e_defconfig | |||
| @@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y | |||
| 96 | CONFIG_IKCONFIG_PROC=y | 96 | CONFIG_IKCONFIG_PROC=y |
| 97 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
| 98 | # CONFIG_CGROUPS is not set | 98 | # CONFIG_CGROUPS is not set |
| 99 | CONFIG_SYSFS_DEPRECATED=y | 99 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 100 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 101 | # CONFIG_RELAY is not set | 100 | # CONFIG_RELAY is not set |
| 102 | # CONFIG_NAMESPACES is not set | 101 | # CONFIG_NAMESPACES is not set |
| 103 | # CONFIG_BLK_DEV_INITRD is not set | 102 | # CONFIG_BLK_DEV_INITRD is not set |
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig index c5af46ef5f40..1cee889dd9ec 100644 --- a/arch/powerpc/configs/ep88xc_defconfig +++ b/arch/powerpc/configs/ep88xc_defconfig | |||
| @@ -91,8 +91,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 91 | # CONFIG_IKCONFIG is not set | 91 | # CONFIG_IKCONFIG is not set |
| 92 | CONFIG_LOG_BUF_SHIFT=14 | 92 | CONFIG_LOG_BUF_SHIFT=14 |
| 93 | # CONFIG_CGROUPS is not set | 93 | # CONFIG_CGROUPS is not set |
| 94 | CONFIG_SYSFS_DEPRECATED=y | 94 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 95 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 96 | # CONFIG_RELAY is not set | 95 | # CONFIG_RELAY is not set |
| 97 | # CONFIG_NAMESPACES is not set | 96 | # CONFIG_NAMESPACES is not set |
| 98 | # CONFIG_BLK_DEV_INITRD is not set | 97 | # CONFIG_BLK_DEV_INITRD is not set |
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig index 826a65d3f002..57d3ffa3026a 100644 --- a/arch/powerpc/configs/g5_defconfig +++ b/arch/powerpc/configs/g5_defconfig | |||
| @@ -82,8 +82,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 82 | CONFIG_LOG_BUF_SHIFT=17 | 82 | CONFIG_LOG_BUF_SHIFT=17 |
| 83 | # CONFIG_CGROUPS is not set | 83 | # CONFIG_CGROUPS is not set |
| 84 | # CONFIG_GROUP_SCHED is not set | 84 | # CONFIG_GROUP_SCHED is not set |
| 85 | CONFIG_SYSFS_DEPRECATED=y | 85 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 86 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 87 | # CONFIG_RELAY is not set | 86 | # CONFIG_RELAY is not set |
| 88 | CONFIG_NAMESPACES=y | 87 | CONFIG_NAMESPACES=y |
| 89 | # CONFIG_UTS_NS is not set | 88 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/gamecube_defconfig b/arch/powerpc/configs/gamecube_defconfig index 942e1193e9e4..1c2dbf07ac35 100644 --- a/arch/powerpc/configs/gamecube_defconfig +++ b/arch/powerpc/configs/gamecube_defconfig | |||
| @@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 101 | CONFIG_USER_SCHED=y | 101 | CONFIG_USER_SCHED=y |
| 102 | # CONFIG_CGROUP_SCHED is not set | 102 | # CONFIG_CGROUP_SCHED is not set |
| 103 | # CONFIG_CGROUPS is not set | 103 | # CONFIG_CGROUPS is not set |
| 104 | CONFIG_SYSFS_DEPRECATED=y | 104 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 105 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 106 | # CONFIG_RELAY is not set | 105 | # CONFIG_RELAY is not set |
| 107 | # CONFIG_NAMESPACES is not set | 106 | # CONFIG_NAMESPACES is not set |
| 108 | CONFIG_BLK_DEV_INITRD=y | 107 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/holly_defconfig b/arch/powerpc/configs/holly_defconfig index a211a79959ca..a60d61bee48d 100644 --- a/arch/powerpc/configs/holly_defconfig +++ b/arch/powerpc/configs/holly_defconfig | |||
| @@ -73,7 +73,6 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
| 73 | CONFIG_LOG_BUF_SHIFT=14 | 73 | CONFIG_LOG_BUF_SHIFT=14 |
| 74 | # CONFIG_CGROUPS is not set | 74 | # CONFIG_CGROUPS is not set |
| 75 | # CONFIG_FAIR_GROUP_SCHED is not set | 75 | # CONFIG_FAIR_GROUP_SCHED is not set |
| 76 | CONFIG_SYSFS_DEPRECATED=y | ||
| 77 | # CONFIG_RELAY is not set | 76 | # CONFIG_RELAY is not set |
| 78 | CONFIG_BLK_DEV_INITRD=y | 77 | CONFIG_BLK_DEV_INITRD=y |
| 79 | CONFIG_INITRAMFS_SOURCE="" | 78 | CONFIG_INITRAMFS_SOURCE="" |
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig index 76982c51a4c7..151c8e14f3ab 100644 --- a/arch/powerpc/configs/iseries_defconfig +++ b/arch/powerpc/configs/iseries_defconfig | |||
| @@ -81,8 +81,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 81 | CONFIG_LOG_BUF_SHIFT=17 | 81 | CONFIG_LOG_BUF_SHIFT=17 |
| 82 | # CONFIG_CGROUPS is not set | 82 | # CONFIG_CGROUPS is not set |
| 83 | # CONFIG_GROUP_SCHED is not set | 83 | # CONFIG_GROUP_SCHED is not set |
| 84 | CONFIG_SYSFS_DEPRECATED=y | 84 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 85 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 86 | # CONFIG_RELAY is not set | 85 | # CONFIG_RELAY is not set |
| 87 | CONFIG_NAMESPACES=y | 86 | CONFIG_NAMESPACES=y |
| 88 | # CONFIG_UTS_NS is not set | 87 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig index 588a2add393f..8ecacf74d3e5 100644 --- a/arch/powerpc/configs/linkstation_defconfig +++ b/arch/powerpc/configs/linkstation_defconfig | |||
| @@ -97,8 +97,7 @@ CONFIG_IKCONFIG=y | |||
| 97 | CONFIG_IKCONFIG_PROC=y | 97 | CONFIG_IKCONFIG_PROC=y |
| 98 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
| 99 | # CONFIG_CGROUPS is not set | 99 | # CONFIG_CGROUPS is not set |
| 100 | CONFIG_SYSFS_DEPRECATED=y | 100 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 101 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 102 | # CONFIG_RELAY is not set | 101 | # CONFIG_RELAY is not set |
| 103 | CONFIG_NAMESPACES=y | 102 | CONFIG_NAMESPACES=y |
| 104 | # CONFIG_UTS_NS is not set | 103 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig index 8b244003b9e1..dc50eec58e78 100644 --- a/arch/powerpc/configs/maple_defconfig +++ b/arch/powerpc/configs/maple_defconfig | |||
| @@ -78,8 +78,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 78 | CONFIG_LOG_BUF_SHIFT=17 | 78 | CONFIG_LOG_BUF_SHIFT=17 |
| 79 | # CONFIG_CGROUPS is not set | 79 | # CONFIG_CGROUPS is not set |
| 80 | # CONFIG_GROUP_SCHED is not set | 80 | # CONFIG_GROUP_SCHED is not set |
| 81 | CONFIG_SYSFS_DEPRECATED=y | 81 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 82 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 83 | # CONFIG_RELAY is not set | 82 | # CONFIG_RELAY is not set |
| 84 | CONFIG_NAMESPACES=y | 83 | CONFIG_NAMESPACES=y |
| 85 | # CONFIG_UTS_NS is not set | 84 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig index 0cbd56fe2e1e..b36ebb7e843e 100644 --- a/arch/powerpc/configs/mgcoge_defconfig +++ b/arch/powerpc/configs/mgcoge_defconfig | |||
| @@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y | |||
| 96 | CONFIG_IKCONFIG_PROC=y | 96 | CONFIG_IKCONFIG_PROC=y |
| 97 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
| 98 | # CONFIG_CGROUPS is not set | 98 | # CONFIG_CGROUPS is not set |
| 99 | CONFIG_SYSFS_DEPRECATED=y | 99 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 100 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 101 | # CONFIG_RELAY is not set | 100 | # CONFIG_RELAY is not set |
| 102 | # CONFIG_NAMESPACES is not set | 101 | # CONFIG_NAMESPACES is not set |
| 103 | CONFIG_BLK_DEV_INITRD=y | 102 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig index c1be26151021..0dd5015ea81d 100644 --- a/arch/powerpc/configs/mgsuvd_defconfig +++ b/arch/powerpc/configs/mgsuvd_defconfig | |||
| @@ -90,8 +90,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 90 | # CONFIG_IKCONFIG is not set | 90 | # CONFIG_IKCONFIG is not set |
| 91 | CONFIG_LOG_BUF_SHIFT=17 | 91 | CONFIG_LOG_BUF_SHIFT=17 |
| 92 | # CONFIG_CGROUPS is not set | 92 | # CONFIG_CGROUPS is not set |
| 93 | CONFIG_SYSFS_DEPRECATED=y | 93 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 94 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 95 | # CONFIG_RELAY is not set | 94 | # CONFIG_RELAY is not set |
| 96 | # CONFIG_NAMESPACES is not set | 95 | # CONFIG_NAMESPACES is not set |
| 97 | CONFIG_BLK_DEV_INITRD=y | 96 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/mpc512x_defconfig b/arch/powerpc/configs/mpc512x_defconfig index a04727295d46..aa2654e6edeb 100644 --- a/arch/powerpc/configs/mpc512x_defconfig +++ b/arch/powerpc/configs/mpc512x_defconfig | |||
| @@ -97,8 +97,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 97 | CONFIG_LOG_BUF_SHIFT=16 | 97 | CONFIG_LOG_BUF_SHIFT=16 |
| 98 | # CONFIG_GROUP_SCHED is not set | 98 | # CONFIG_GROUP_SCHED is not set |
| 99 | # CONFIG_CGROUPS is not set | 99 | # CONFIG_CGROUPS is not set |
| 100 | CONFIG_SYSFS_DEPRECATED=y | 100 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 101 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 102 | # CONFIG_RELAY is not set | 101 | # CONFIG_RELAY is not set |
| 103 | CONFIG_NAMESPACES=y | 102 | CONFIG_NAMESPACES=y |
| 104 | # CONFIG_UTS_NS is not set | 103 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig index 7012ac0134f0..f875ec21c91c 100644 --- a/arch/powerpc/configs/mpc5200_defconfig +++ b/arch/powerpc/configs/mpc5200_defconfig | |||
| @@ -97,8 +97,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 97 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
| 98 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
| 99 | # CONFIG_CGROUPS is not set | 99 | # CONFIG_CGROUPS is not set |
| 100 | CONFIG_SYSFS_DEPRECATED=y | 100 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 101 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 102 | # CONFIG_RELAY is not set | 101 | # CONFIG_RELAY is not set |
| 103 | CONFIG_NAMESPACES=y | 102 | CONFIG_NAMESPACES=y |
| 104 | # CONFIG_UTS_NS is not set | 103 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig index 27c63ceeb45a..b1e88fe1d9fb 100644 --- a/arch/powerpc/configs/mpc7448_hpc2_defconfig +++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig | |||
| @@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 95 | # CONFIG_IKCONFIG is not set | 95 | # CONFIG_IKCONFIG is not set |
| 96 | CONFIG_LOG_BUF_SHIFT=14 | 96 | CONFIG_LOG_BUF_SHIFT=14 |
| 97 | # CONFIG_CGROUPS is not set | 97 | # CONFIG_CGROUPS is not set |
| 98 | CONFIG_SYSFS_DEPRECATED=y | 98 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 99 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 100 | # CONFIG_RELAY is not set | 99 | # CONFIG_RELAY is not set |
| 101 | # CONFIG_NAMESPACES is not set | 100 | # CONFIG_NAMESPACES is not set |
| 102 | CONFIG_BLK_DEV_INITRD=y | 101 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig index 20ba0cfff8ba..74a7216183e8 100644 --- a/arch/powerpc/configs/pasemi_defconfig +++ b/arch/powerpc/configs/pasemi_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=64 | |||
| 98 | CONFIG_LOG_BUF_SHIFT=17 | 98 | CONFIG_LOG_BUF_SHIFT=17 |
| 99 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | CONFIG_NAMESPACES=y | 103 | CONFIG_NAMESPACES=y |
| 105 | # CONFIG_UTS_NS is not set | 104 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig index ea8870a34482..753bb7912e28 100644 --- a/arch/powerpc/configs/pmac32_defconfig +++ b/arch/powerpc/configs/pmac32_defconfig | |||
| @@ -93,8 +93,7 @@ CONFIG_IKCONFIG_PROC=y | |||
| 93 | CONFIG_LOG_BUF_SHIFT=14 | 93 | CONFIG_LOG_BUF_SHIFT=14 |
| 94 | # CONFIG_GROUP_SCHED is not set | 94 | # CONFIG_GROUP_SCHED is not set |
| 95 | # CONFIG_CGROUPS is not set | 95 | # CONFIG_CGROUPS is not set |
| 96 | CONFIG_SYSFS_DEPRECATED=y | 96 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 97 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 98 | # CONFIG_RELAY is not set | 97 | # CONFIG_RELAY is not set |
| 99 | CONFIG_NAMESPACES=y | 98 | CONFIG_NAMESPACES=y |
| 100 | # CONFIG_UTS_NS is not set | 99 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig index 35b60683cde5..afb4d1bb2ba9 100644 --- a/arch/powerpc/configs/ppc40x_defconfig +++ b/arch/powerpc/configs/ppc40x_defconfig | |||
| @@ -99,8 +99,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 99 | CONFIG_USER_SCHED=y | 99 | CONFIG_USER_SCHED=y |
| 100 | # CONFIG_CGROUP_SCHED is not set | 100 | # CONFIG_CGROUP_SCHED is not set |
| 101 | # CONFIG_CGROUPS is not set | 101 | # CONFIG_CGROUPS is not set |
| 102 | CONFIG_SYSFS_DEPRECATED=y | 102 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 103 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 104 | # CONFIG_RELAY is not set | 103 | # CONFIG_RELAY is not set |
| 105 | # CONFIG_NAMESPACES is not set | 104 | # CONFIG_NAMESPACES is not set |
| 106 | CONFIG_BLK_DEV_INITRD=y | 105 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig index 46f5c47e9f85..bd3d23fb4dd3 100644 --- a/arch/powerpc/configs/ppc44x_defconfig +++ b/arch/powerpc/configs/ppc44x_defconfig | |||
| @@ -103,8 +103,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 103 | CONFIG_USER_SCHED=y | 103 | CONFIG_USER_SCHED=y |
| 104 | # CONFIG_CGROUP_SCHED is not set | 104 | # CONFIG_CGROUP_SCHED is not set |
| 105 | # CONFIG_CGROUPS is not set | 105 | # CONFIG_CGROUPS is not set |
| 106 | CONFIG_SYSFS_DEPRECATED=y | 106 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 107 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 108 | # CONFIG_RELAY is not set | 107 | # CONFIG_RELAY is not set |
| 109 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
| 110 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig index dad617e2a88c..369f4e02c5dd 100644 --- a/arch/powerpc/configs/ppc64_defconfig +++ b/arch/powerpc/configs/ppc64_defconfig | |||
| @@ -93,8 +93,7 @@ CONFIG_CPUSETS=y | |||
| 93 | # CONFIG_GROUP_SCHED is not set | 93 | # CONFIG_GROUP_SCHED is not set |
| 94 | # CONFIG_CGROUP_CPUACCT is not set | 94 | # CONFIG_CGROUP_CPUACCT is not set |
| 95 | # CONFIG_RESOURCE_COUNTERS is not set | 95 | # CONFIG_RESOURCE_COUNTERS is not set |
| 96 | CONFIG_SYSFS_DEPRECATED=y | 96 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 97 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 98 | CONFIG_PROC_PID_CPUSET=y | 97 | CONFIG_PROC_PID_CPUSET=y |
| 99 | CONFIG_RELAY=y | 98 | CONFIG_RELAY=y |
| 100 | CONFIG_NAMESPACES=y | 99 | CONFIG_NAMESPACES=y |
diff --git a/arch/powerpc/configs/ppc64e_defconfig b/arch/powerpc/configs/ppc64e_defconfig index 8195f1650cbf..403e82e2e83c 100644 --- a/arch/powerpc/configs/ppc64e_defconfig +++ b/arch/powerpc/configs/ppc64e_defconfig | |||
| @@ -107,8 +107,7 @@ CONFIG_CPUSETS=y | |||
| 107 | CONFIG_PROC_PID_CPUSET=y | 107 | CONFIG_PROC_PID_CPUSET=y |
| 108 | # CONFIG_CGROUP_CPUACCT is not set | 108 | # CONFIG_CGROUP_CPUACCT is not set |
| 109 | # CONFIG_RESOURCE_COUNTERS is not set | 109 | # CONFIG_RESOURCE_COUNTERS is not set |
| 110 | CONFIG_SYSFS_DEPRECATED=y | 110 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 111 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 112 | CONFIG_RELAY=y | 111 | CONFIG_RELAY=y |
| 113 | CONFIG_NAMESPACES=y | 112 | CONFIG_NAMESPACES=y |
| 114 | # CONFIG_UTS_NS is not set | 113 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig index 68c175ea427a..12c8ee8dd12b 100644 --- a/arch/powerpc/configs/pq2fads_defconfig +++ b/arch/powerpc/configs/pq2fads_defconfig | |||
| @@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y | |||
| 96 | CONFIG_IKCONFIG_PROC=y | 96 | CONFIG_IKCONFIG_PROC=y |
| 97 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
| 98 | # CONFIG_CGROUPS is not set | 98 | # CONFIG_CGROUPS is not set |
| 99 | CONFIG_SYSFS_DEPRECATED=y | 99 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 100 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 101 | # CONFIG_RELAY is not set | 100 | # CONFIG_RELAY is not set |
| 102 | # CONFIG_NAMESPACES is not set | 101 | # CONFIG_NAMESPACES is not set |
| 103 | CONFIG_BLK_DEV_INITRD=y | 102 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig index 93f4505b5ac2..a18f597c6e5f 100644 --- a/arch/powerpc/configs/prpmc2800_defconfig +++ b/arch/powerpc/configs/prpmc2800_defconfig | |||
| @@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 98 | # CONFIG_IKCONFIG is not set | 98 | # CONFIG_IKCONFIG is not set |
| 99 | CONFIG_LOG_BUF_SHIFT=14 | 99 | CONFIG_LOG_BUF_SHIFT=14 |
| 100 | # CONFIG_CGROUPS is not set | 100 | # CONFIG_CGROUPS is not set |
| 101 | CONFIG_SYSFS_DEPRECATED=y | 101 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 102 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 103 | # CONFIG_RELAY is not set | 102 | # CONFIG_RELAY is not set |
| 104 | CONFIG_NAMESPACES=y | 103 | CONFIG_NAMESPACES=y |
| 105 | # CONFIG_UTS_NS is not set | 104 | # CONFIG_UTS_NS is not set |
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig index 16a14589bd40..16ae717d1958 100644 --- a/arch/powerpc/configs/pseries_defconfig +++ b/arch/powerpc/configs/pseries_defconfig | |||
| @@ -92,8 +92,7 @@ CONFIG_CPUSETS=y | |||
| 92 | # CONFIG_GROUP_SCHED is not set | 92 | # CONFIG_GROUP_SCHED is not set |
| 93 | CONFIG_CGROUP_CPUACCT=y | 93 | CONFIG_CGROUP_CPUACCT=y |
| 94 | # CONFIG_RESOURCE_COUNTERS is not set | 94 | # CONFIG_RESOURCE_COUNTERS is not set |
| 95 | CONFIG_SYSFS_DEPRECATED=y | 95 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 96 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 97 | CONFIG_PROC_PID_CPUSET=y | 96 | CONFIG_PROC_PID_CPUSET=y |
| 98 | CONFIG_RELAY=y | 97 | CONFIG_RELAY=y |
| 99 | CONFIG_NAMESPACES=y | 98 | CONFIG_NAMESPACES=y |
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig index b1625801526e..01be0e207f40 100644 --- a/arch/powerpc/configs/storcenter_defconfig +++ b/arch/powerpc/configs/storcenter_defconfig | |||
| @@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32 | |||
| 95 | # CONFIG_IKCONFIG is not set | 95 | # CONFIG_IKCONFIG is not set |
| 96 | CONFIG_LOG_BUF_SHIFT=14 | 96 | CONFIG_LOG_BUF_SHIFT=14 |
| 97 | # CONFIG_CGROUPS is not set | 97 | # CONFIG_CGROUPS is not set |
| 98 | CONFIG_SYSFS_DEPRECATED=y | 98 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 99 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 100 | # CONFIG_RELAY is not set | 99 | # CONFIG_RELAY is not set |
| 101 | # CONFIG_NAMESPACES is not set | 100 | # CONFIG_NAMESPACES is not set |
| 102 | # CONFIG_BLK_DEV_INITRD is not set | 101 | # CONFIG_BLK_DEV_INITRD is not set |
diff --git a/arch/powerpc/configs/wii_defconfig b/arch/powerpc/configs/wii_defconfig index c386828c639a..ee054f8118be 100644 --- a/arch/powerpc/configs/wii_defconfig +++ b/arch/powerpc/configs/wii_defconfig | |||
| @@ -102,8 +102,7 @@ CONFIG_FAIR_GROUP_SCHED=y | |||
| 102 | CONFIG_USER_SCHED=y | 102 | CONFIG_USER_SCHED=y |
| 103 | # CONFIG_CGROUP_SCHED is not set | 103 | # CONFIG_CGROUP_SCHED is not set |
| 104 | # CONFIG_CGROUPS is not set | 104 | # CONFIG_CGROUPS is not set |
| 105 | CONFIG_SYSFS_DEPRECATED=y | 105 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
| 106 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 107 | CONFIG_RELAY=y | 106 | CONFIG_RELAY=y |
| 108 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
| 109 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h index e054baef1845..ecba37a91749 100644 --- a/arch/powerpc/include/asm/irq.h +++ b/arch/powerpc/include/asm/irq.h | |||
| @@ -358,7 +358,6 @@ extern void exc_lvl_ctx_init(void); | |||
| 358 | #define exc_lvl_ctx_init() | 358 | #define exc_lvl_ctx_init() |
| 359 | #endif | 359 | #endif |
| 360 | 360 | ||
| 361 | #ifdef CONFIG_IRQSTACKS | ||
| 362 | /* | 361 | /* |
| 363 | * Per-cpu stacks for handling hard and soft interrupts. | 362 | * Per-cpu stacks for handling hard and soft interrupts. |
| 364 | */ | 363 | */ |
| @@ -369,11 +368,6 @@ extern void irq_ctx_init(void); | |||
| 369 | extern void call_do_softirq(struct thread_info *tp); | 368 | extern void call_do_softirq(struct thread_info *tp); |
| 370 | extern int call_handle_irq(int irq, void *p1, | 369 | extern int call_handle_irq(int irq, void *p1, |
| 371 | struct thread_info *tp, void *func); | 370 | struct thread_info *tp, void *func); |
| 372 | #else | ||
| 373 | #define irq_ctx_init() | ||
| 374 | |||
| 375 | #endif /* CONFIG_IRQSTACKS */ | ||
| 376 | |||
| 377 | extern void do_IRQ(struct pt_regs *regs); | 371 | extern void do_IRQ(struct pt_regs *regs); |
| 378 | 372 | ||
| 379 | #endif /* _ASM_IRQ_H */ | 373 | #endif /* _ASM_IRQ_H */ |
diff --git a/arch/powerpc/include/asm/kdump.h b/arch/powerpc/include/asm/kdump.h index 5ebfe5d3c61f..6857af58b02e 100644 --- a/arch/powerpc/include/asm/kdump.h +++ b/arch/powerpc/include/asm/kdump.h | |||
| @@ -3,8 +3,17 @@ | |||
| 3 | 3 | ||
| 4 | #include <asm/page.h> | 4 | #include <asm/page.h> |
| 5 | 5 | ||
| 6 | /* Kdump kernel runs at 32 MB, change at your peril. */ | 6 | /* |
| 7 | * If CONFIG_RELOCATABLE is enabled we can place the kdump kernel anywhere. | ||
| 8 | * To keep enough space in the RMO for the first stage kernel on 64bit, we | ||
| 9 | * place it at 64MB. If CONFIG_RELOCATABLE is not enabled we must place | ||
| 10 | * the second stage at 32MB. | ||
| 11 | */ | ||
| 12 | #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_PPC64) | ||
| 13 | #define KDUMP_KERNELBASE 0x4000000 | ||
| 14 | #else | ||
| 7 | #define KDUMP_KERNELBASE 0x2000000 | 15 | #define KDUMP_KERNELBASE 0x2000000 |
| 16 | #endif | ||
| 8 | 17 | ||
| 9 | /* How many bytes to reserve at zero for kdump. The reserve limit should | 18 | /* How many bytes to reserve at zero for kdump. The reserve limit should |
| 10 | * be greater or equal to the trampoline's end address. | 19 | * be greater or equal to the trampoline's end address. |
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 30817d9b20cb..3333bbdd23ef 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
| @@ -317,7 +317,6 @@ void fixup_irqs(const struct cpumask *map) | |||
| 317 | } | 317 | } |
| 318 | #endif | 318 | #endif |
| 319 | 319 | ||
| 320 | #ifdef CONFIG_IRQSTACKS | ||
| 321 | static inline void handle_one_irq(unsigned int irq) | 320 | static inline void handle_one_irq(unsigned int irq) |
| 322 | { | 321 | { |
| 323 | struct thread_info *curtp, *irqtp; | 322 | struct thread_info *curtp, *irqtp; |
| @@ -358,12 +357,6 @@ static inline void handle_one_irq(unsigned int irq) | |||
| 358 | if (irqtp->flags) | 357 | if (irqtp->flags) |
| 359 | set_bits(irqtp->flags, &curtp->flags); | 358 | set_bits(irqtp->flags, &curtp->flags); |
| 360 | } | 359 | } |
| 361 | #else | ||
| 362 | static inline void handle_one_irq(unsigned int irq) | ||
| 363 | { | ||
| 364 | generic_handle_irq(irq); | ||
| 365 | } | ||
| 366 | #endif | ||
| 367 | 360 | ||
| 368 | static inline void check_stack_overflow(void) | 361 | static inline void check_stack_overflow(void) |
| 369 | { | 362 | { |
| @@ -455,7 +448,6 @@ void exc_lvl_ctx_init(void) | |||
| 455 | } | 448 | } |
| 456 | #endif | 449 | #endif |
| 457 | 450 | ||
| 458 | #ifdef CONFIG_IRQSTACKS | ||
| 459 | struct thread_info *softirq_ctx[NR_CPUS] __read_mostly; | 451 | struct thread_info *softirq_ctx[NR_CPUS] __read_mostly; |
| 460 | struct thread_info *hardirq_ctx[NR_CPUS] __read_mostly; | 452 | struct thread_info *hardirq_ctx[NR_CPUS] __read_mostly; |
| 461 | 453 | ||
| @@ -492,10 +484,6 @@ static inline void do_softirq_onstack(void) | |||
| 492 | irqtp->task = NULL; | 484 | irqtp->task = NULL; |
| 493 | } | 485 | } |
| 494 | 486 | ||
| 495 | #else | ||
| 496 | #define do_softirq_onstack() __do_softirq() | ||
| 497 | #endif /* CONFIG_IRQSTACKS */ | ||
| 498 | |||
| 499 | void do_softirq(void) | 487 | void do_softirq(void) |
| 500 | { | 488 | { |
| 501 | unsigned long flags; | 489 | unsigned long flags; |
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index 26f9900f773c..ed31a29c4ff7 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
| @@ -182,28 +182,12 @@ static void kexec_prepare_cpus_wait(int wait_state) | |||
| 182 | 182 | ||
| 183 | my_cpu = get_cpu(); | 183 | my_cpu = get_cpu(); |
| 184 | /* Make sure each CPU has atleast made it to the state we need */ | 184 | /* Make sure each CPU has atleast made it to the state we need */ |
| 185 | for (i=0; i < NR_CPUS; i++) { | 185 | for_each_online_cpu(i) { |
| 186 | if (i == my_cpu) | 186 | if (i == my_cpu) |
| 187 | continue; | 187 | continue; |
| 188 | 188 | ||
| 189 | while (paca[i].kexec_state < wait_state) { | 189 | while (paca[i].kexec_state < wait_state) { |
| 190 | barrier(); | 190 | barrier(); |
| 191 | if (!cpu_possible(i)) { | ||
| 192 | printk("kexec: cpu %d hw_cpu_id %d is not" | ||
| 193 | " possible, ignoring\n", | ||
| 194 | i, paca[i].hw_cpu_id); | ||
| 195 | break; | ||
| 196 | } | ||
| 197 | if (!cpu_online(i)) { | ||
| 198 | /* Fixme: this can be spinning in | ||
| 199 | * pSeries_secondary_wait with a paca | ||
| 200 | * waiting for it to go online. | ||
| 201 | */ | ||
| 202 | printk("kexec: cpu %d hw_cpu_id %d is not" | ||
| 203 | " online, ignoring\n", | ||
| 204 | i, paca[i].hw_cpu_id); | ||
| 205 | break; | ||
| 206 | } | ||
| 207 | if (i != notified) { | 191 | if (i != notified) { |
| 208 | printk( "kexec: waiting for cpu %d (physical" | 192 | printk( "kexec: waiting for cpu %d (physical" |
| 209 | " %d) to enter %i state\n", | 193 | " %d) to enter %i state\n", |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index dc66d52dcff5..6bbd7a604d24 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
| @@ -33,7 +33,6 @@ | |||
| 33 | 33 | ||
| 34 | .text | 34 | .text |
| 35 | 35 | ||
| 36 | #ifdef CONFIG_IRQSTACKS | ||
| 37 | _GLOBAL(call_do_softirq) | 36 | _GLOBAL(call_do_softirq) |
| 38 | mflr r0 | 37 | mflr r0 |
| 39 | stw r0,4(r1) | 38 | stw r0,4(r1) |
| @@ -56,7 +55,6 @@ _GLOBAL(call_handle_irq) | |||
| 56 | lwz r0,4(r1) | 55 | lwz r0,4(r1) |
| 57 | mtlr r0 | 56 | mtlr r0 |
| 58 | blr | 57 | blr |
| 59 | #endif /* CONFIG_IRQSTACKS */ | ||
| 60 | 58 | ||
| 61 | /* | 59 | /* |
| 62 | * This returns the high 64 bits of the product of two 64-bit numbers. | 60 | * This returns the high 64 bits of the product of two 64-bit numbers. |
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S index a2b18dffa03e..e5144906a56d 100644 --- a/arch/powerpc/kernel/misc_64.S +++ b/arch/powerpc/kernel/misc_64.S | |||
| @@ -28,7 +28,6 @@ | |||
| 28 | 28 | ||
| 29 | .text | 29 | .text |
| 30 | 30 | ||
| 31 | #ifdef CONFIG_IRQSTACKS | ||
| 32 | _GLOBAL(call_do_softirq) | 31 | _GLOBAL(call_do_softirq) |
| 33 | mflr r0 | 32 | mflr r0 |
| 34 | std r0,16(r1) | 33 | std r0,16(r1) |
| @@ -52,7 +51,6 @@ _GLOBAL(call_handle_irq) | |||
| 52 | ld r0,16(r1) | 51 | ld r0,16(r1) |
| 53 | mtlr r0 | 52 | mtlr r0 |
| 54 | blr | 53 | blr |
| 55 | #endif /* CONFIG_IRQSTACKS */ | ||
| 56 | 54 | ||
| 57 | .section ".toc","aw" | 55 | .section ".toc","aw" |
| 58 | PPC64_CACHES: | 56 | PPC64_CACHES: |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 9d255b4f0a0e..773424df828a 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
| @@ -1005,7 +1005,6 @@ out: | |||
| 1005 | return error; | 1005 | return error; |
| 1006 | } | 1006 | } |
| 1007 | 1007 | ||
| 1008 | #ifdef CONFIG_IRQSTACKS | ||
| 1009 | static inline int valid_irq_stack(unsigned long sp, struct task_struct *p, | 1008 | static inline int valid_irq_stack(unsigned long sp, struct task_struct *p, |
| 1010 | unsigned long nbytes) | 1009 | unsigned long nbytes) |
| 1011 | { | 1010 | { |
| @@ -1030,10 +1029,6 @@ static inline int valid_irq_stack(unsigned long sp, struct task_struct *p, | |||
| 1030 | return 0; | 1029 | return 0; |
| 1031 | } | 1030 | } |
| 1032 | 1031 | ||
| 1033 | #else | ||
| 1034 | #define valid_irq_stack(sp, p, nb) 0 | ||
| 1035 | #endif /* CONFIG_IRQSTACKS */ | ||
| 1036 | |||
| 1037 | int validate_sp(unsigned long sp, struct task_struct *p, | 1032 | int validate_sp(unsigned long sp, struct task_struct *p, |
| 1038 | unsigned long nbytes) | 1033 | unsigned long nbytes) |
| 1039 | { | 1034 | { |
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c index bfc2abafac44..67a84d8f118d 100644 --- a/arch/powerpc/kernel/rtas_flash.c +++ b/arch/powerpc/kernel/rtas_flash.c | |||
| @@ -94,12 +94,8 @@ struct flash_block_list { | |||
| 94 | struct flash_block_list *next; | 94 | struct flash_block_list *next; |
| 95 | struct flash_block blocks[FLASH_BLOCKS_PER_NODE]; | 95 | struct flash_block blocks[FLASH_BLOCKS_PER_NODE]; |
| 96 | }; | 96 | }; |
| 97 | struct flash_block_list_header { /* just the header of flash_block_list */ | ||
| 98 | unsigned long num_blocks; | ||
| 99 | struct flash_block_list *next; | ||
| 100 | }; | ||
| 101 | 97 | ||
| 102 | static struct flash_block_list_header rtas_firmware_flash_list = {0, NULL}; | 98 | static struct flash_block_list *rtas_firmware_flash_list; |
| 103 | 99 | ||
| 104 | /* Use slab cache to guarantee 4k alignment */ | 100 | /* Use slab cache to guarantee 4k alignment */ |
| 105 | static struct kmem_cache *flash_block_cache = NULL; | 101 | static struct kmem_cache *flash_block_cache = NULL; |
| @@ -108,13 +104,14 @@ static struct kmem_cache *flash_block_cache = NULL; | |||
| 108 | 104 | ||
| 109 | /* Local copy of the flash block list. | 105 | /* Local copy of the flash block list. |
| 110 | * We only allow one open of the flash proc file and create this | 106 | * We only allow one open of the flash proc file and create this |
| 111 | * list as we go. This list will be put in the | 107 | * list as we go. The rtas_firmware_flash_list varable will be |
| 112 | * rtas_firmware_flash_list var once it is fully read. | 108 | * set once the data is fully read. |
| 113 | * | 109 | * |
| 114 | * For convenience as we build the list we use virtual addrs, | 110 | * For convenience as we build the list we use virtual addrs, |
| 115 | * we do not fill in the version number, and the length field | 111 | * we do not fill in the version number, and the length field |
| 116 | * is treated as the number of entries currently in the block | 112 | * is treated as the number of entries currently in the block |
| 117 | * (i.e. not a byte count). This is all fixed on release. | 113 | * (i.e. not a byte count). This is all fixed when calling |
| 114 | * the flash routine. | ||
| 118 | */ | 115 | */ |
| 119 | 116 | ||
| 120 | /* Status int must be first member of struct */ | 117 | /* Status int must be first member of struct */ |
| @@ -201,16 +198,16 @@ static int rtas_flash_release(struct inode *inode, struct file *file) | |||
| 201 | if (uf->flist) { | 198 | if (uf->flist) { |
| 202 | /* File was opened in write mode for a new flash attempt */ | 199 | /* File was opened in write mode for a new flash attempt */ |
| 203 | /* Clear saved list */ | 200 | /* Clear saved list */ |
| 204 | if (rtas_firmware_flash_list.next) { | 201 | if (rtas_firmware_flash_list) { |
| 205 | free_flash_list(rtas_firmware_flash_list.next); | 202 | free_flash_list(rtas_firmware_flash_list); |
| 206 | rtas_firmware_flash_list.next = NULL; | 203 | rtas_firmware_flash_list = NULL; |
| 207 | } | 204 | } |
| 208 | 205 | ||
| 209 | if (uf->status != FLASH_AUTH) | 206 | if (uf->status != FLASH_AUTH) |
| 210 | uf->status = flash_list_valid(uf->flist); | 207 | uf->status = flash_list_valid(uf->flist); |
| 211 | 208 | ||
| 212 | if (uf->status == FLASH_IMG_READY) | 209 | if (uf->status == FLASH_IMG_READY) |
| 213 | rtas_firmware_flash_list.next = uf->flist; | 210 | rtas_firmware_flash_list = uf->flist; |
| 214 | else | 211 | else |
| 215 | free_flash_list(uf->flist); | 212 | free_flash_list(uf->flist); |
| 216 | 213 | ||
| @@ -593,7 +590,7 @@ static void rtas_flash_firmware(int reboot_type) | |||
| 593 | unsigned long rtas_block_list; | 590 | unsigned long rtas_block_list; |
| 594 | int i, status, update_token; | 591 | int i, status, update_token; |
| 595 | 592 | ||
| 596 | if (rtas_firmware_flash_list.next == NULL) | 593 | if (rtas_firmware_flash_list == NULL) |
| 597 | return; /* nothing to do */ | 594 | return; /* nothing to do */ |
| 598 | 595 | ||
| 599 | if (reboot_type != SYS_RESTART) { | 596 | if (reboot_type != SYS_RESTART) { |
| @@ -610,20 +607,25 @@ static void rtas_flash_firmware(int reboot_type) | |||
| 610 | return; | 607 | return; |
| 611 | } | 608 | } |
| 612 | 609 | ||
| 613 | /* NOTE: the "first" block list is a global var with no data | 610 | /* |
| 614 | * blocks in the kernel data segment. We do this because | 611 | * NOTE: the "first" block must be under 4GB, so we create |
| 615 | * we want to ensure this block_list addr is under 4GB. | 612 | * an entry with no data blocks in the reserved buffer in |
| 613 | * the kernel data segment. | ||
| 616 | */ | 614 | */ |
| 617 | rtas_firmware_flash_list.num_blocks = 0; | 615 | spin_lock(&rtas_data_buf_lock); |
| 618 | flist = (struct flash_block_list *)&rtas_firmware_flash_list; | 616 | flist = (struct flash_block_list *)&rtas_data_buf[0]; |
| 617 | flist->num_blocks = 0; | ||
| 618 | flist->next = rtas_firmware_flash_list; | ||
| 619 | rtas_block_list = virt_to_abs(flist); | 619 | rtas_block_list = virt_to_abs(flist); |
| 620 | if (rtas_block_list >= 4UL*1024*1024*1024) { | 620 | if (rtas_block_list >= 4UL*1024*1024*1024) { |
| 621 | printk(KERN_ALERT "FLASH: kernel bug...flash list header addr above 4GB\n"); | 621 | printk(KERN_ALERT "FLASH: kernel bug...flash list header addr above 4GB\n"); |
| 622 | spin_unlock(&rtas_data_buf_lock); | ||
| 622 | return; | 623 | return; |
| 623 | } | 624 | } |
| 624 | 625 | ||
| 625 | printk(KERN_ALERT "FLASH: preparing saved firmware image for flash\n"); | 626 | printk(KERN_ALERT "FLASH: preparing saved firmware image for flash\n"); |
| 626 | /* Update the block_list in place. */ | 627 | /* Update the block_list in place. */ |
| 628 | rtas_firmware_flash_list = NULL; /* too hard to backout on error */ | ||
| 627 | image_size = 0; | 629 | image_size = 0; |
| 628 | for (f = flist; f; f = next) { | 630 | for (f = flist; f; f = next) { |
| 629 | /* Translate data addrs to absolute */ | 631 | /* Translate data addrs to absolute */ |
| @@ -664,6 +666,7 @@ static void rtas_flash_firmware(int reboot_type) | |||
| 664 | printk(KERN_ALERT "FLASH: unknown flash return code %d\n", status); | 666 | printk(KERN_ALERT "FLASH: unknown flash return code %d\n", status); |
| 665 | break; | 667 | break; |
| 666 | } | 668 | } |
| 669 | spin_unlock(&rtas_data_buf_lock); | ||
| 667 | } | 670 | } |
| 668 | 671 | ||
| 669 | static void remove_flash_pde(struct proc_dir_entry *dp) | 672 | static void remove_flash_pde(struct proc_dir_entry *dp) |
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index 8f58986c2ad9..7d84b210f168 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c | |||
| @@ -241,7 +241,6 @@ int __init ppc_init(void) | |||
| 241 | 241 | ||
| 242 | arch_initcall(ppc_init); | 242 | arch_initcall(ppc_init); |
| 243 | 243 | ||
| 244 | #ifdef CONFIG_IRQSTACKS | ||
| 245 | static void __init irqstack_early_init(void) | 244 | static void __init irqstack_early_init(void) |
| 246 | { | 245 | { |
| 247 | unsigned int i; | 246 | unsigned int i; |
| @@ -255,9 +254,6 @@ static void __init irqstack_early_init(void) | |||
| 255 | __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); | 254 | __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); |
| 256 | } | 255 | } |
| 257 | } | 256 | } |
| 258 | #else | ||
| 259 | #define irqstack_early_init() | ||
| 260 | #endif | ||
| 261 | 257 | ||
| 262 | #if defined(CONFIG_BOOKE) || defined(CONFIG_40x) | 258 | #if defined(CONFIG_BOOKE) || defined(CONFIG_40x) |
| 263 | static void __init exc_lvl_early_init(void) | 259 | static void __init exc_lvl_early_init(void) |
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index f3fb5a79de52..643dcac40fcb 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
| @@ -432,7 +432,6 @@ static u64 slb0_limit(void) | |||
| 432 | return 1UL << SID_SHIFT; | 432 | return 1UL << SID_SHIFT; |
| 433 | } | 433 | } |
| 434 | 434 | ||
| 435 | #ifdef CONFIG_IRQSTACKS | ||
| 436 | static void __init irqstack_early_init(void) | 435 | static void __init irqstack_early_init(void) |
| 437 | { | 436 | { |
| 438 | u64 limit = slb0_limit(); | 437 | u64 limit = slb0_limit(); |
| @@ -451,9 +450,6 @@ static void __init irqstack_early_init(void) | |||
| 451 | THREAD_SIZE, limit)); | 450 | THREAD_SIZE, limit)); |
| 452 | } | 451 | } |
| 453 | } | 452 | } |
| 454 | #else | ||
| 455 | #define irqstack_early_init() | ||
| 456 | #endif | ||
| 457 | 453 | ||
| 458 | #ifdef CONFIG_PPC_BOOK3E | 454 | #ifdef CONFIG_PPC_BOOK3E |
| 459 | static void __init exc_lvl_early_init(void) | 455 | static void __init exc_lvl_early_init(void) |
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index 9fc02dc72ce9..34347b2e7e31 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
| @@ -115,11 +115,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) | |||
| 115 | { | 115 | { |
| 116 | struct page *ptepage; | 116 | struct page *ptepage; |
| 117 | 117 | ||
| 118 | #ifdef CONFIG_HIGHPTE | ||
| 119 | gfp_t flags = GFP_KERNEL | __GFP_HIGHMEM | __GFP_REPEAT | __GFP_ZERO; | ||
| 120 | #else | ||
| 121 | gfp_t flags = GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO; | 118 | gfp_t flags = GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO; |
| 122 | #endif | ||
| 123 | 119 | ||
| 124 | ptepage = alloc_pages(flags, 0); | 120 | ptepage = alloc_pages(flags, 0); |
| 125 | if (!ptepage) | 121 | if (!ptepage) |
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pm.c b/arch/powerpc/platforms/52xx/mpc52xx_pm.c index a55b0b6813ed..76722532bd95 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_pm.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_pm.c | |||
| @@ -64,10 +64,19 @@ int mpc52xx_pm_prepare(void) | |||
| 64 | { .type = "builtin", .compatible = "mpc5200", }, /* efika */ | 64 | { .type = "builtin", .compatible = "mpc5200", }, /* efika */ |
| 65 | {} | 65 | {} |
| 66 | }; | 66 | }; |
| 67 | struct resource res; | ||
| 67 | 68 | ||
| 68 | /* map the whole register space */ | 69 | /* map the whole register space */ |
| 69 | np = of_find_matching_node(NULL, immr_ids); | 70 | np = of_find_matching_node(NULL, immr_ids); |
| 70 | mbar = of_iomap(np, 0); | 71 | |
| 72 | if (of_address_to_resource(np, 0, &res)) { | ||
| 73 | pr_err("mpc52xx_pm_prepare(): could not get IMMR address\n"); | ||
| 74 | of_node_put(np); | ||
| 75 | return -ENOSYS; | ||
| 76 | } | ||
| 77 | |||
| 78 | mbar = ioremap(res.start, 0xc000); /* we should map whole region including SRAM */ | ||
| 79 | |||
| 71 | of_node_put(np); | 80 | of_node_put(np); |
| 72 | if (!mbar) { | 81 | if (!mbar) { |
| 73 | pr_err("mpc52xx_pm_prepare(): could not map registers\n"); | 82 | pr_err("mpc52xx_pm_prepare(): could not map registers\n"); |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 2102487612a4..20b73c025a45 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
| @@ -1666,7 +1666,7 @@ static int mpic_resume(struct sys_device *dev) | |||
| 1666 | mpic->save_data[i].dest); | 1666 | mpic->save_data[i].dest); |
| 1667 | 1667 | ||
| 1668 | #ifdef CONFIG_MPIC_U3_HT_IRQS | 1668 | #ifdef CONFIG_MPIC_U3_HT_IRQS |
| 1669 | { | 1669 | if (mpic->fixups) { |
| 1670 | struct mpic_irq_fixup *fixup = &mpic->fixups[i]; | 1670 | struct mpic_irq_fixup *fixup = &mpic->fixups[i]; |
| 1671 | 1671 | ||
| 1672 | if (fixup->base) { | 1672 | if (fixup->base) { |
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 7bca3c6a02fb..0d6fc71bedb1 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
| @@ -729,7 +729,7 @@ static int __init e820_mark_nvs_memory(void) | |||
| 729 | struct e820entry *ei = &e820.map[i]; | 729 | struct e820entry *ei = &e820.map[i]; |
| 730 | 730 | ||
| 731 | if (ei->type == E820_NVS) | 731 | if (ei->type == E820_NVS) |
| 732 | hibernate_nvs_register(ei->addr, ei->size); | 732 | suspend_nvs_register(ei->addr, ei->size); |
| 733 | } | 733 | } |
| 734 | 734 | ||
| 735 | return 0; | 735 | return 0; |
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c index d269a8f3329c..446aced33aff 100644 --- a/drivers/acpi/acpi_pad.c +++ b/drivers/acpi/acpi_pad.c | |||
| @@ -46,6 +46,8 @@ static unsigned long power_saving_mwait_eax; | |||
| 46 | 46 | ||
| 47 | static unsigned char tsc_detected_unstable; | 47 | static unsigned char tsc_detected_unstable; |
| 48 | static unsigned char tsc_marked_unstable; | 48 | static unsigned char tsc_marked_unstable; |
| 49 | static unsigned char lapic_detected_unstable; | ||
| 50 | static unsigned char lapic_marked_unstable; | ||
| 49 | 51 | ||
| 50 | static void power_saving_mwait_init(void) | 52 | static void power_saving_mwait_init(void) |
| 51 | { | 53 | { |
| @@ -75,9 +77,6 @@ static void power_saving_mwait_init(void) | |||
| 75 | power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) | | 77 | power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) | |
| 76 | (highest_subcstate - 1); | 78 | (highest_subcstate - 1); |
| 77 | 79 | ||
| 78 | for_each_online_cpu(i) | ||
| 79 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ON, &i); | ||
| 80 | |||
| 81 | #if defined(CONFIG_GENERIC_TIME) && defined(CONFIG_X86) | 80 | #if defined(CONFIG_GENERIC_TIME) && defined(CONFIG_X86) |
| 82 | switch (boot_cpu_data.x86_vendor) { | 81 | switch (boot_cpu_data.x86_vendor) { |
| 83 | case X86_VENDOR_AMD: | 82 | case X86_VENDOR_AMD: |
| @@ -86,13 +85,15 @@ static void power_saving_mwait_init(void) | |||
| 86 | * AMD Fam10h TSC will tick in all | 85 | * AMD Fam10h TSC will tick in all |
| 87 | * C/P/S0/S1 states when this bit is set. | 86 | * C/P/S0/S1 states when this bit is set. |
| 88 | */ | 87 | */ |
| 89 | if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC)) | 88 | if (!boot_cpu_has(X86_FEATURE_NONSTOP_TSC)) |
| 90 | return; | 89 | tsc_detected_unstable = 1; |
| 91 | 90 | if (!boot_cpu_has(X86_FEATURE_ARAT)) | |
| 92 | /*FALL THROUGH*/ | 91 | lapic_detected_unstable = 1; |
| 92 | break; | ||
| 93 | default: | 93 | default: |
| 94 | /* TSC could halt in idle */ | 94 | /* TSC & LAPIC could halt in idle */ |
| 95 | tsc_detected_unstable = 1; | 95 | tsc_detected_unstable = 1; |
| 96 | lapic_detected_unstable = 1; | ||
| 96 | } | 97 | } |
| 97 | #endif | 98 | #endif |
| 98 | } | 99 | } |
| @@ -180,10 +181,20 @@ static int power_saving_thread(void *data) | |||
| 180 | mark_tsc_unstable("TSC halts in idle"); | 181 | mark_tsc_unstable("TSC halts in idle"); |
| 181 | tsc_marked_unstable = 1; | 182 | tsc_marked_unstable = 1; |
| 182 | } | 183 | } |
| 184 | if (lapic_detected_unstable && !lapic_marked_unstable) { | ||
| 185 | int i; | ||
| 186 | /* LAPIC could halt in idle, so notify users */ | ||
| 187 | for_each_online_cpu(i) | ||
| 188 | clockevents_notify( | ||
| 189 | CLOCK_EVT_NOTIFY_BROADCAST_ON, | ||
| 190 | &i); | ||
| 191 | lapic_marked_unstable = 1; | ||
| 192 | } | ||
| 183 | local_irq_disable(); | 193 | local_irq_disable(); |
| 184 | cpu = smp_processor_id(); | 194 | cpu = smp_processor_id(); |
| 185 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, | 195 | if (lapic_marked_unstable) |
| 186 | &cpu); | 196 | clockevents_notify( |
| 197 | CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu); | ||
| 187 | stop_critical_timings(); | 198 | stop_critical_timings(); |
| 188 | 199 | ||
| 189 | __monitor((void *)¤t_thread_info()->flags, 0, 0); | 200 | __monitor((void *)¤t_thread_info()->flags, 0, 0); |
| @@ -192,8 +203,9 @@ static int power_saving_thread(void *data) | |||
| 192 | __mwait(power_saving_mwait_eax, 1); | 203 | __mwait(power_saving_mwait_eax, 1); |
| 193 | 204 | ||
| 194 | start_critical_timings(); | 205 | start_critical_timings(); |
| 195 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, | 206 | if (lapic_marked_unstable) |
| 196 | &cpu); | 207 | clockevents_notify( |
| 208 | CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu); | ||
| 197 | local_irq_enable(); | 209 | local_irq_enable(); |
| 198 | 210 | ||
| 199 | if (jiffies > expire_time) { | 211 | if (jiffies > expire_time) { |
diff --git a/drivers/acpi/acpica/acconfig.h b/drivers/acpi/acpica/acconfig.h index 33181ad350d5..b17d8de9f6ff 100644 --- a/drivers/acpi/acpica/acconfig.h +++ b/drivers/acpi/acpica/acconfig.h | |||
| @@ -119,6 +119,10 @@ | |||
| 119 | 119 | ||
| 120 | #define ACPI_MAX_LOOP_ITERATIONS 0xFFFF | 120 | #define ACPI_MAX_LOOP_ITERATIONS 0xFFFF |
| 121 | 121 | ||
| 122 | /* Maximum sleep allowed via Sleep() operator */ | ||
| 123 | |||
| 124 | #define ACPI_MAX_SLEEP 20000 /* Two seconds */ | ||
| 125 | |||
| 122 | /****************************************************************************** | 126 | /****************************************************************************** |
| 123 | * | 127 | * |
| 124 | * ACPI Specification constants (Do not change unless the specification changes) | 128 | * ACPI Specification constants (Do not change unless the specification changes) |
diff --git a/drivers/acpi/acpica/acevents.h b/drivers/acpi/acpica/acevents.h index 64d1e5c2d4ae..c3f43daa8be3 100644 --- a/drivers/acpi/acpica/acevents.h +++ b/drivers/acpi/acpica/acevents.h | |||
| @@ -80,10 +80,6 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info *gpe_xrupt_list); | |||
| 80 | acpi_status | 80 | acpi_status |
| 81 | acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info); | 81 | acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info); |
| 82 | 82 | ||
| 83 | acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info); | ||
| 84 | |||
| 85 | acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info); | ||
| 86 | |||
| 87 | struct acpi_gpe_event_info *acpi_ev_get_gpe_event_info(acpi_handle gpe_device, | 83 | struct acpi_gpe_event_info *acpi_ev_get_gpe_event_info(acpi_handle gpe_device, |
| 88 | u32 gpe_number); | 84 | u32 gpe_number); |
| 89 | 85 | ||
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index 9070f1fe8f17..899d68afc3c5 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h | |||
| @@ -125,6 +125,14 @@ u8 ACPI_INIT_GLOBAL(acpi_gbl_enable_aml_debug_object, FALSE); | |||
| 125 | */ | 125 | */ |
| 126 | u8 ACPI_INIT_GLOBAL(acpi_gbl_copy_dsdt_locally, FALSE); | 126 | u8 ACPI_INIT_GLOBAL(acpi_gbl_copy_dsdt_locally, FALSE); |
| 127 | 127 | ||
| 128 | /* | ||
| 129 | * Optionally truncate I/O addresses to 16 bits. Provides compatibility | ||
| 130 | * with other ACPI implementations. NOTE: During ACPICA initialization, | ||
| 131 | * this value is set to TRUE if any Windows OSI strings have been | ||
| 132 | * requested by the BIOS. | ||
| 133 | */ | ||
| 134 | u8 ACPI_INIT_GLOBAL(acpi_gbl_truncate_io_addresses, FALSE); | ||
| 135 | |||
| 128 | /* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */ | 136 | /* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */ |
| 129 | 137 | ||
| 130 | struct acpi_table_fadt acpi_gbl_FADT; | 138 | struct acpi_table_fadt acpi_gbl_FADT; |
diff --git a/drivers/acpi/acpica/achware.h b/drivers/acpi/acpica/achware.h index 5900f135dc6d..32391588e163 100644 --- a/drivers/acpi/acpica/achware.h +++ b/drivers/acpi/acpica/achware.h | |||
| @@ -90,7 +90,11 @@ acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width); | |||
| 90 | /* | 90 | /* |
| 91 | * hwgpe - GPE support | 91 | * hwgpe - GPE support |
| 92 | */ | 92 | */ |
| 93 | acpi_status acpi_hw_low_disable_gpe(struct acpi_gpe_event_info *gpe_event_info); | 93 | u32 acpi_hw_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info, |
| 94 | struct acpi_gpe_register_info *gpe_register_info); | ||
| 95 | |||
| 96 | acpi_status | ||
| 97 | acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u8 action); | ||
| 94 | 98 | ||
| 95 | acpi_status | 99 | acpi_status |
| 96 | acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info); | 100 | acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info); |
diff --git a/drivers/acpi/acpica/evgpe.c b/drivers/acpi/acpica/evgpe.c index a221ad404167..7c2c336006a1 100644 --- a/drivers/acpi/acpica/evgpe.c +++ b/drivers/acpi/acpica/evgpe.c | |||
| @@ -69,7 +69,7 @@ acpi_status | |||
| 69 | acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info) | 69 | acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info) |
| 70 | { | 70 | { |
| 71 | struct acpi_gpe_register_info *gpe_register_info; | 71 | struct acpi_gpe_register_info *gpe_register_info; |
| 72 | u8 register_bit; | 72 | u32 register_bit; |
| 73 | 73 | ||
| 74 | ACPI_FUNCTION_TRACE(ev_update_gpe_enable_masks); | 74 | ACPI_FUNCTION_TRACE(ev_update_gpe_enable_masks); |
| 75 | 75 | ||
| @@ -78,9 +78,8 @@ acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info) | |||
| 78 | return_ACPI_STATUS(AE_NOT_EXIST); | 78 | return_ACPI_STATUS(AE_NOT_EXIST); |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | register_bit = (u8) | 81 | register_bit = acpi_hw_gpe_register_bit(gpe_event_info, |
| 82 | (1 << | 82 | gpe_register_info); |
| 83 | (gpe_event_info->gpe_number - gpe_register_info->base_gpe_number)); | ||
| 84 | 83 | ||
| 85 | /* Clear the wake/run bits up front */ | 84 | /* Clear the wake/run bits up front */ |
| 86 | 85 | ||
| @@ -100,106 +99,6 @@ acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info) | |||
| 100 | return_ACPI_STATUS(AE_OK); | 99 | return_ACPI_STATUS(AE_OK); |
| 101 | } | 100 | } |
| 102 | 101 | ||
| 103 | /******************************************************************************* | ||
| 104 | * | ||
| 105 | * FUNCTION: acpi_ev_enable_gpe | ||
| 106 | * | ||
| 107 | * PARAMETERS: gpe_event_info - GPE to enable | ||
| 108 | * | ||
| 109 | * RETURN: Status | ||
| 110 | * | ||
| 111 | * DESCRIPTION: Hardware-enable a GPE. Always enables the GPE, regardless | ||
| 112 | * of type or number of references. | ||
| 113 | * | ||
| 114 | * Note: The GPE lock should be already acquired when this function is called. | ||
| 115 | * | ||
| 116 | ******************************************************************************/ | ||
| 117 | |||
| 118 | acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info) | ||
| 119 | { | ||
| 120 | acpi_status status; | ||
| 121 | |||
| 122 | |||
| 123 | ACPI_FUNCTION_TRACE(ev_enable_gpe); | ||
| 124 | |||
| 125 | |||
| 126 | /* | ||
| 127 | * We will only allow a GPE to be enabled if it has either an | ||
| 128 | * associated method (_Lxx/_Exx) or a handler. Otherwise, the | ||
| 129 | * GPE will be immediately disabled by acpi_ev_gpe_dispatch the | ||
| 130 | * first time it fires. | ||
| 131 | */ | ||
| 132 | if (!(gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)) { | ||
| 133 | return_ACPI_STATUS(AE_NO_HANDLER); | ||
| 134 | } | ||
| 135 | |||
| 136 | /* Ensure the HW enable masks are current */ | ||
| 137 | |||
| 138 | status = acpi_ev_update_gpe_enable_masks(gpe_event_info); | ||
| 139 | if (ACPI_FAILURE(status)) { | ||
| 140 | return_ACPI_STATUS(status); | ||
| 141 | } | ||
| 142 | |||
| 143 | /* Clear the GPE (of stale events) */ | ||
| 144 | |||
| 145 | status = acpi_hw_clear_gpe(gpe_event_info); | ||
| 146 | if (ACPI_FAILURE(status)) { | ||
| 147 | return_ACPI_STATUS(status); | ||
| 148 | } | ||
| 149 | |||
| 150 | /* Enable the requested GPE */ | ||
| 151 | |||
| 152 | status = acpi_hw_write_gpe_enable_reg(gpe_event_info); | ||
| 153 | return_ACPI_STATUS(status); | ||
| 154 | } | ||
| 155 | |||
| 156 | /******************************************************************************* | ||
| 157 | * | ||
| 158 | * FUNCTION: acpi_ev_disable_gpe | ||
| 159 | * | ||
| 160 | * PARAMETERS: gpe_event_info - GPE to disable | ||
| 161 | * | ||
| 162 | * RETURN: Status | ||
| 163 | * | ||
| 164 | * DESCRIPTION: Hardware-disable a GPE. Always disables the requested GPE, | ||
| 165 | * regardless of the type or number of references. | ||
| 166 | * | ||
| 167 | * Note: The GPE lock should be already acquired when this function is called. | ||
| 168 | * | ||
| 169 | ******************************************************************************/ | ||
| 170 | |||
| 171 | acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info) | ||
| 172 | { | ||
| 173 | acpi_status status; | ||
| 174 | |||
| 175 | ACPI_FUNCTION_TRACE(ev_disable_gpe); | ||
| 176 | |||
| 177 | |||
| 178 | /* | ||
| 179 | * Note: Always disable the GPE, even if we think that that it is already | ||
| 180 | * disabled. It is possible that the AML or some other code has enabled | ||
| 181 | * the GPE behind our back. | ||
| 182 | */ | ||
| 183 | |||
| 184 | /* Ensure the HW enable masks are current */ | ||
| 185 | |||
| 186 | status = acpi_ev_update_gpe_enable_masks(gpe_event_info); | ||
| 187 | if (ACPI_FAILURE(status)) { | ||
| 188 | return_ACPI_STATUS(status); | ||
| 189 | } | ||
| 190 | |||
| 191 | /* | ||
| 192 | * Always H/W disable this GPE, even if we don't know the GPE type. | ||
| 193 | * Simply clear the enable bit for this particular GPE, but do not | ||
| 194 | * write out the current GPE enable mask since this may inadvertently | ||
| 195 | * enable GPEs too early. An example is a rogue GPE that has arrived | ||
| 196 | * during ACPICA initialization - possibly because AML or other code | ||
| 197 | * has enabled the GPE. | ||
| 198 | */ | ||
| 199 | status = acpi_hw_low_disable_gpe(gpe_event_info); | ||
| 200 | return_ACPI_STATUS(status); | ||
| 201 | } | ||
| 202 | |||
| 203 | 102 | ||
| 204 | /******************************************************************************* | 103 | /******************************************************************************* |
| 205 | * | 104 | * |
| @@ -451,10 +350,6 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context) | |||
| 451 | return_VOID; | 350 | return_VOID; |
| 452 | } | 351 | } |
| 453 | 352 | ||
| 454 | /* Update the GPE register masks for return to enabled state */ | ||
| 455 | |||
| 456 | (void)acpi_ev_update_gpe_enable_masks(gpe_event_info); | ||
| 457 | |||
| 458 | /* | 353 | /* |
| 459 | * Take a snapshot of the GPE info for this level - we copy the info to | 354 | * Take a snapshot of the GPE info for this level - we copy the info to |
| 460 | * prevent a race condition with remove_handler/remove_block. | 355 | * prevent a race condition with remove_handler/remove_block. |
| @@ -607,7 +502,7 @@ acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number) | |||
| 607 | * Disable the GPE, so it doesn't keep firing before the method has a | 502 | * Disable the GPE, so it doesn't keep firing before the method has a |
| 608 | * chance to run (it runs asynchronously with interrupts enabled). | 503 | * chance to run (it runs asynchronously with interrupts enabled). |
| 609 | */ | 504 | */ |
| 610 | status = acpi_ev_disable_gpe(gpe_event_info); | 505 | status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_DISABLE); |
| 611 | if (ACPI_FAILURE(status)) { | 506 | if (ACPI_FAILURE(status)) { |
| 612 | ACPI_EXCEPTION((AE_INFO, status, | 507 | ACPI_EXCEPTION((AE_INFO, status, |
| 613 | "Unable to disable GPE[0x%2X]", | 508 | "Unable to disable GPE[0x%2X]", |
| @@ -644,7 +539,7 @@ acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number) | |||
| 644 | * Disable the GPE. The GPE will remain disabled a handler | 539 | * Disable the GPE. The GPE will remain disabled a handler |
| 645 | * is installed or ACPICA is restarted. | 540 | * is installed or ACPICA is restarted. |
| 646 | */ | 541 | */ |
| 647 | status = acpi_ev_disable_gpe(gpe_event_info); | 542 | status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_DISABLE); |
| 648 | if (ACPI_FAILURE(status)) { | 543 | if (ACPI_FAILURE(status)) { |
| 649 | ACPI_EXCEPTION((AE_INFO, status, | 544 | ACPI_EXCEPTION((AE_INFO, status, |
| 650 | "Unable to disable GPE[0x%2X]", | 545 | "Unable to disable GPE[0x%2X]", |
diff --git a/drivers/acpi/acpica/evgpeblk.c b/drivers/acpi/acpica/evgpeblk.c index 7c28f2d9fd35..341a38ce8aa6 100644 --- a/drivers/acpi/acpica/evgpeblk.c +++ b/drivers/acpi/acpica/evgpeblk.c | |||
| @@ -500,6 +500,19 @@ acpi_ev_initialize_gpe_block(struct acpi_namespace_node *gpe_device, | |||
| 500 | 500 | ||
| 501 | gpe_index = (i * ACPI_GPE_REGISTER_WIDTH) + j; | 501 | gpe_index = (i * ACPI_GPE_REGISTER_WIDTH) + j; |
| 502 | gpe_event_info = &gpe_block->event_info[gpe_index]; | 502 | gpe_event_info = &gpe_block->event_info[gpe_index]; |
| 503 | gpe_number = gpe_index + gpe_block->block_base_number; | ||
| 504 | |||
| 505 | /* | ||
| 506 | * If the GPE has already been enabled for runtime | ||
| 507 | * signaling, make sure it remains enabled, but do not | ||
| 508 | * increment its reference counter. | ||
| 509 | */ | ||
| 510 | if (gpe_event_info->runtime_count) { | ||
| 511 | acpi_set_gpe(gpe_device, gpe_number, | ||
| 512 | ACPI_GPE_ENABLE); | ||
| 513 | gpe_enabled_count++; | ||
| 514 | continue; | ||
| 515 | } | ||
| 503 | 516 | ||
| 504 | if (gpe_event_info->flags & ACPI_GPE_CAN_WAKE) { | 517 | if (gpe_event_info->flags & ACPI_GPE_CAN_WAKE) { |
| 505 | wake_gpe_count++; | 518 | wake_gpe_count++; |
| @@ -516,7 +529,6 @@ acpi_ev_initialize_gpe_block(struct acpi_namespace_node *gpe_device, | |||
| 516 | 529 | ||
| 517 | /* Enable this GPE */ | 530 | /* Enable this GPE */ |
| 518 | 531 | ||
| 519 | gpe_number = gpe_index + gpe_block->block_base_number; | ||
| 520 | status = acpi_enable_gpe(gpe_device, gpe_number, | 532 | status = acpi_enable_gpe(gpe_device, gpe_number, |
| 521 | ACPI_GPE_TYPE_RUNTIME); | 533 | ACPI_GPE_TYPE_RUNTIME); |
| 522 | if (ACPI_FAILURE(status)) { | 534 | if (ACPI_FAILURE(status)) { |
diff --git a/drivers/acpi/acpica/evxface.c b/drivers/acpi/acpica/evxface.c index cc825023012a..4a531cdf7942 100644 --- a/drivers/acpi/acpica/evxface.c +++ b/drivers/acpi/acpica/evxface.c | |||
| @@ -719,13 +719,6 @@ acpi_install_gpe_handler(acpi_handle gpe_device, | |||
| 719 | handler->context = context; | 719 | handler->context = context; |
| 720 | handler->method_node = gpe_event_info->dispatch.method_node; | 720 | handler->method_node = gpe_event_info->dispatch.method_node; |
| 721 | 721 | ||
| 722 | /* Disable the GPE before installing the handler */ | ||
| 723 | |||
| 724 | status = acpi_ev_disable_gpe(gpe_event_info); | ||
| 725 | if (ACPI_FAILURE (status)) { | ||
| 726 | goto unlock_and_exit; | ||
| 727 | } | ||
| 728 | |||
| 729 | /* Install the handler */ | 722 | /* Install the handler */ |
| 730 | 723 | ||
| 731 | flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock); | 724 | flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock); |
diff --git a/drivers/acpi/acpica/evxfevnt.c b/drivers/acpi/acpica/evxfevnt.c index d5a5efc043bf..d97b8dce1668 100644 --- a/drivers/acpi/acpica/evxfevnt.c +++ b/drivers/acpi/acpica/evxfevnt.c | |||
| @@ -210,6 +210,44 @@ ACPI_EXPORT_SYMBOL(acpi_enable_event) | |||
| 210 | 210 | ||
| 211 | /******************************************************************************* | 211 | /******************************************************************************* |
| 212 | * | 212 | * |
| 213 | * FUNCTION: acpi_clear_and_enable_gpe | ||
| 214 | * | ||
| 215 | * PARAMETERS: gpe_event_info - GPE to enable | ||
| 216 | * | ||
| 217 | * RETURN: Status | ||
| 218 | * | ||
| 219 | * DESCRIPTION: Clear the given GPE from stale events and enable it. | ||
| 220 | * | ||
| 221 | ******************************************************************************/ | ||
| 222 | static acpi_status | ||
| 223 | acpi_clear_and_enable_gpe(struct acpi_gpe_event_info *gpe_event_info) | ||
| 224 | { | ||
| 225 | acpi_status status; | ||
| 226 | |||
| 227 | /* | ||
| 228 | * We will only allow a GPE to be enabled if it has either an | ||
| 229 | * associated method (_Lxx/_Exx) or a handler. Otherwise, the | ||
| 230 | * GPE will be immediately disabled by acpi_ev_gpe_dispatch the | ||
| 231 | * first time it fires. | ||
| 232 | */ | ||
| 233 | if (!(gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)) { | ||
| 234 | return_ACPI_STATUS(AE_NO_HANDLER); | ||
| 235 | } | ||
| 236 | |||
| 237 | /* Clear the GPE (of stale events) */ | ||
| 238 | status = acpi_hw_clear_gpe(gpe_event_info); | ||
| 239 | if (ACPI_FAILURE(status)) { | ||
| 240 | return_ACPI_STATUS(status); | ||
| 241 | } | ||
| 242 | |||
| 243 | /* Enable the requested GPE */ | ||
| 244 | status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_ENABLE); | ||
| 245 | |||
| 246 | return_ACPI_STATUS(status); | ||
| 247 | } | ||
| 248 | |||
| 249 | /******************************************************************************* | ||
| 250 | * | ||
| 213 | * FUNCTION: acpi_set_gpe | 251 | * FUNCTION: acpi_set_gpe |
| 214 | * | 252 | * |
| 215 | * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1 | 253 | * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1 |
| @@ -249,11 +287,11 @@ acpi_status acpi_set_gpe(acpi_handle gpe_device, u32 gpe_number, u8 action) | |||
| 249 | 287 | ||
| 250 | switch (action) { | 288 | switch (action) { |
| 251 | case ACPI_GPE_ENABLE: | 289 | case ACPI_GPE_ENABLE: |
| 252 | status = acpi_ev_enable_gpe(gpe_event_info); | 290 | status = acpi_clear_and_enable_gpe(gpe_event_info); |
| 253 | break; | 291 | break; |
| 254 | 292 | ||
| 255 | case ACPI_GPE_DISABLE: | 293 | case ACPI_GPE_DISABLE: |
| 256 | status = acpi_ev_disable_gpe(gpe_event_info); | 294 | status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_DISABLE); |
| 257 | break; | 295 | break; |
| 258 | 296 | ||
| 259 | default: | 297 | default: |
| @@ -316,7 +354,11 @@ acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u8 gpe_type) | |||
| 316 | 354 | ||
| 317 | gpe_event_info->runtime_count++; | 355 | gpe_event_info->runtime_count++; |
| 318 | if (gpe_event_info->runtime_count == 1) { | 356 | if (gpe_event_info->runtime_count == 1) { |
| 319 | status = acpi_ev_enable_gpe(gpe_event_info); | 357 | status = acpi_ev_update_gpe_enable_masks(gpe_event_info); |
| 358 | if (ACPI_SUCCESS(status)) { | ||
| 359 | status = acpi_clear_and_enable_gpe(gpe_event_info); | ||
| 360 | } | ||
| 361 | |||
| 320 | if (ACPI_FAILURE(status)) { | 362 | if (ACPI_FAILURE(status)) { |
| 321 | gpe_event_info->runtime_count--; | 363 | gpe_event_info->runtime_count--; |
| 322 | goto unlock_and_exit; | 364 | goto unlock_and_exit; |
| @@ -343,7 +385,7 @@ acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u8 gpe_type) | |||
| 343 | */ | 385 | */ |
| 344 | gpe_event_info->wakeup_count++; | 386 | gpe_event_info->wakeup_count++; |
| 345 | if (gpe_event_info->wakeup_count == 1) { | 387 | if (gpe_event_info->wakeup_count == 1) { |
| 346 | (void)acpi_ev_update_gpe_enable_masks(gpe_event_info); | 388 | status = acpi_ev_update_gpe_enable_masks(gpe_event_info); |
| 347 | } | 389 | } |
| 348 | } | 390 | } |
| 349 | 391 | ||
| @@ -403,7 +445,12 @@ acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u8 gpe_type | |||
| 403 | 445 | ||
| 404 | gpe_event_info->runtime_count--; | 446 | gpe_event_info->runtime_count--; |
| 405 | if (!gpe_event_info->runtime_count) { | 447 | if (!gpe_event_info->runtime_count) { |
| 406 | status = acpi_ev_disable_gpe(gpe_event_info); | 448 | status = acpi_ev_update_gpe_enable_masks(gpe_event_info); |
| 449 | if (ACPI_SUCCESS(status)) { | ||
| 450 | status = acpi_hw_low_set_gpe(gpe_event_info, | ||
| 451 | ACPI_GPE_DISABLE); | ||
| 452 | } | ||
| 453 | |||
| 407 | if (ACPI_FAILURE(status)) { | 454 | if (ACPI_FAILURE(status)) { |
| 408 | gpe_event_info->runtime_count++; | 455 | gpe_event_info->runtime_count++; |
| 409 | goto unlock_and_exit; | 456 | goto unlock_and_exit; |
| @@ -424,7 +471,7 @@ acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u8 gpe_type | |||
| 424 | 471 | ||
| 425 | gpe_event_info->wakeup_count--; | 472 | gpe_event_info->wakeup_count--; |
| 426 | if (!gpe_event_info->wakeup_count) { | 473 | if (!gpe_event_info->wakeup_count) { |
| 427 | (void)acpi_ev_update_gpe_enable_masks(gpe_event_info); | 474 | status = acpi_ev_update_gpe_enable_masks(gpe_event_info); |
| 428 | } | 475 | } |
| 429 | } | 476 | } |
| 430 | 477 | ||
diff --git a/drivers/acpi/acpica/exsystem.c b/drivers/acpi/acpica/exsystem.c index 6d32e09327f1..675aaa91a770 100644 --- a/drivers/acpi/acpica/exsystem.c +++ b/drivers/acpi/acpica/exsystem.c | |||
| @@ -201,6 +201,14 @@ acpi_status acpi_ex_system_do_sleep(u64 how_long) | |||
| 201 | 201 | ||
| 202 | acpi_ex_relinquish_interpreter(); | 202 | acpi_ex_relinquish_interpreter(); |
| 203 | 203 | ||
| 204 | /* | ||
| 205 | * For compatibility with other ACPI implementations and to prevent | ||
| 206 | * accidental deep sleeps, limit the sleep time to something reasonable. | ||
| 207 | */ | ||
| 208 | if (how_long > ACPI_MAX_SLEEP) { | ||
| 209 | how_long = ACPI_MAX_SLEEP; | ||
| 210 | } | ||
| 211 | |||
| 204 | acpi_os_sleep(how_long); | 212 | acpi_os_sleep(how_long); |
| 205 | 213 | ||
| 206 | /* And now we must get the interpreter again */ | 214 | /* And now we must get the interpreter again */ |
diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c index bd72319a38f0..3450309c2786 100644 --- a/drivers/acpi/acpica/hwgpe.c +++ b/drivers/acpi/acpica/hwgpe.c | |||
| @@ -57,21 +57,47 @@ acpi_hw_enable_wakeup_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info, | |||
| 57 | 57 | ||
| 58 | /****************************************************************************** | 58 | /****************************************************************************** |
| 59 | * | 59 | * |
| 60 | * FUNCTION: acpi_hw_low_disable_gpe | 60 | * FUNCTION: acpi_hw_gpe_register_bit |
| 61 | * | ||
| 62 | * PARAMETERS: gpe_event_info - Info block for the GPE | ||
| 63 | * gpe_register_info - Info block for the GPE register | ||
| 64 | * | ||
| 65 | * RETURN: Status | ||
| 66 | * | ||
| 67 | * DESCRIPTION: Compute GPE enable mask with one bit corresponding to the given | ||
| 68 | * GPE set. | ||
| 69 | * | ||
| 70 | ******************************************************************************/ | ||
| 71 | |||
| 72 | u32 acpi_hw_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info, | ||
| 73 | struct acpi_gpe_register_info *gpe_register_info) | ||
| 74 | { | ||
| 75 | return (u32)1 << (gpe_event_info->gpe_number - | ||
| 76 | gpe_register_info->base_gpe_number); | ||
| 77 | } | ||
| 78 | |||
| 79 | /****************************************************************************** | ||
| 80 | * | ||
| 81 | * FUNCTION: acpi_hw_low_set_gpe | ||
| 61 | * | 82 | * |
| 62 | * PARAMETERS: gpe_event_info - Info block for the GPE to be disabled | 83 | * PARAMETERS: gpe_event_info - Info block for the GPE to be disabled |
| 84 | * action - Enable or disable | ||
| 63 | * | 85 | * |
| 64 | * RETURN: Status | 86 | * RETURN: Status |
| 65 | * | 87 | * |
| 66 | * DESCRIPTION: Disable a single GPE in the enable register. | 88 | * DESCRIPTION: Enable or disable a single GPE in its enable register. |
| 67 | * | 89 | * |
| 68 | ******************************************************************************/ | 90 | ******************************************************************************/ |
| 69 | 91 | ||
| 70 | acpi_status acpi_hw_low_disable_gpe(struct acpi_gpe_event_info *gpe_event_info) | 92 | acpi_status |
| 93 | acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u8 action) | ||
| 71 | { | 94 | { |
| 72 | struct acpi_gpe_register_info *gpe_register_info; | 95 | struct acpi_gpe_register_info *gpe_register_info; |
| 73 | acpi_status status; | 96 | acpi_status status; |
| 74 | u32 enable_mask; | 97 | u32 enable_mask; |
| 98 | u32 register_bit; | ||
| 99 | |||
| 100 | ACPI_FUNCTION_ENTRY(); | ||
| 75 | 101 | ||
| 76 | /* Get the info block for the entire GPE register */ | 102 | /* Get the info block for the entire GPE register */ |
| 77 | 103 | ||
| @@ -87,11 +113,27 @@ acpi_status acpi_hw_low_disable_gpe(struct acpi_gpe_event_info *gpe_event_info) | |||
| 87 | return (status); | 113 | return (status); |
| 88 | } | 114 | } |
| 89 | 115 | ||
| 90 | /* Clear just the bit that corresponds to this GPE */ | 116 | /* Set ot clear just the bit that corresponds to this GPE */ |
| 91 | 117 | ||
| 92 | ACPI_CLEAR_BIT(enable_mask, ((u32)1 << | 118 | register_bit = acpi_hw_gpe_register_bit(gpe_event_info, |
| 93 | (gpe_event_info->gpe_number - | 119 | gpe_register_info); |
| 94 | gpe_register_info->base_gpe_number))); | 120 | switch (action) { |
| 121 | case ACPI_GPE_COND_ENABLE: | ||
| 122 | if (!(register_bit & gpe_register_info->enable_for_run)) | ||
| 123 | return (AE_BAD_PARAMETER); | ||
| 124 | |||
| 125 | case ACPI_GPE_ENABLE: | ||
| 126 | ACPI_SET_BIT(enable_mask, register_bit); | ||
| 127 | break; | ||
| 128 | |||
| 129 | case ACPI_GPE_DISABLE: | ||
| 130 | ACPI_CLEAR_BIT(enable_mask, register_bit); | ||
| 131 | break; | ||
| 132 | |||
| 133 | default: | ||
| 134 | ACPI_ERROR((AE_INFO, "Invalid action\n")); | ||
| 135 | return (AE_BAD_PARAMETER); | ||
| 136 | } | ||
| 95 | 137 | ||
| 96 | /* Write the updated enable mask */ | 138 | /* Write the updated enable mask */ |
| 97 | 139 | ||
| @@ -116,23 +158,11 @@ acpi_status acpi_hw_low_disable_gpe(struct acpi_gpe_event_info *gpe_event_info) | |||
| 116 | acpi_status | 158 | acpi_status |
| 117 | acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info * gpe_event_info) | 159 | acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info * gpe_event_info) |
| 118 | { | 160 | { |
| 119 | struct acpi_gpe_register_info *gpe_register_info; | ||
| 120 | acpi_status status; | 161 | acpi_status status; |
| 121 | 162 | ||
| 122 | ACPI_FUNCTION_ENTRY(); | 163 | ACPI_FUNCTION_ENTRY(); |
| 123 | 164 | ||
| 124 | /* Get the info block for the entire GPE register */ | 165 | status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_COND_ENABLE); |
| 125 | |||
| 126 | gpe_register_info = gpe_event_info->register_info; | ||
| 127 | if (!gpe_register_info) { | ||
| 128 | return (AE_NOT_EXIST); | ||
| 129 | } | ||
| 130 | |||
| 131 | /* Write the entire GPE (runtime) enable register */ | ||
| 132 | |||
| 133 | status = acpi_hw_write(gpe_register_info->enable_for_run, | ||
| 134 | &gpe_register_info->enable_address); | ||
| 135 | |||
| 136 | return (status); | 166 | return (status); |
| 137 | } | 167 | } |
| 138 | 168 | ||
| @@ -150,21 +180,28 @@ acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info * gpe_event_info) | |||
| 150 | 180 | ||
| 151 | acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info * gpe_event_info) | 181 | acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info * gpe_event_info) |
| 152 | { | 182 | { |
| 183 | struct acpi_gpe_register_info *gpe_register_info; | ||
| 153 | acpi_status status; | 184 | acpi_status status; |
| 154 | u8 register_bit; | 185 | u32 register_bit; |
| 155 | 186 | ||
| 156 | ACPI_FUNCTION_ENTRY(); | 187 | ACPI_FUNCTION_ENTRY(); |
| 157 | 188 | ||
| 158 | register_bit = (u8)(1 << | 189 | /* Get the info block for the entire GPE register */ |
| 159 | (gpe_event_info->gpe_number - | 190 | |
| 160 | gpe_event_info->register_info->base_gpe_number)); | 191 | gpe_register_info = gpe_event_info->register_info; |
| 192 | if (!gpe_register_info) { | ||
| 193 | return (AE_NOT_EXIST); | ||
| 194 | } | ||
| 195 | |||
| 196 | register_bit = acpi_hw_gpe_register_bit(gpe_event_info, | ||
| 197 | gpe_register_info); | ||
| 161 | 198 | ||
| 162 | /* | 199 | /* |
| 163 | * Write a one to the appropriate bit in the status register to | 200 | * Write a one to the appropriate bit in the status register to |
| 164 | * clear this GPE. | 201 | * clear this GPE. |
| 165 | */ | 202 | */ |
| 166 | status = acpi_hw_write(register_bit, | 203 | status = acpi_hw_write(register_bit, |
| 167 | &gpe_event_info->register_info->status_address); | 204 | &gpe_register_info->status_address); |
| 168 | 205 | ||
| 169 | return (status); | 206 | return (status); |
| 170 | } | 207 | } |
| @@ -187,7 +224,7 @@ acpi_hw_get_gpe_status(struct acpi_gpe_event_info * gpe_event_info, | |||
| 187 | acpi_event_status * event_status) | 224 | acpi_event_status * event_status) |
| 188 | { | 225 | { |
| 189 | u32 in_byte; | 226 | u32 in_byte; |
| 190 | u8 register_bit; | 227 | u32 register_bit; |
| 191 | struct acpi_gpe_register_info *gpe_register_info; | 228 | struct acpi_gpe_register_info *gpe_register_info; |
| 192 | acpi_status status; | 229 | acpi_status status; |
| 193 | acpi_event_status local_event_status = 0; | 230 | acpi_event_status local_event_status = 0; |
| @@ -204,9 +241,8 @@ acpi_hw_get_gpe_status(struct acpi_gpe_event_info * gpe_event_info, | |||
| 204 | 241 | ||
| 205 | /* Get the register bitmask for this GPE */ | 242 | /* Get the register bitmask for this GPE */ |
| 206 | 243 | ||
| 207 | register_bit = (u8)(1 << | 244 | register_bit = acpi_hw_gpe_register_bit(gpe_event_info, |
| 208 | (gpe_event_info->gpe_number - | 245 | gpe_register_info); |
| 209 | gpe_event_info->register_info->base_gpe_number)); | ||
| 210 | 246 | ||
| 211 | /* GPE currently enabled? (enabled for runtime?) */ | 247 | /* GPE currently enabled? (enabled for runtime?) */ |
| 212 | 248 | ||
diff --git a/drivers/acpi/acpica/hwvalid.c b/drivers/acpi/acpica/hwvalid.c index c10d587c1641..e1d9c777b213 100644 --- a/drivers/acpi/acpica/hwvalid.c +++ b/drivers/acpi/acpica/hwvalid.c | |||
| @@ -222,6 +222,12 @@ acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width) | |||
| 222 | u32 one_byte; | 222 | u32 one_byte; |
| 223 | u32 i; | 223 | u32 i; |
| 224 | 224 | ||
| 225 | /* Truncate address to 16 bits if requested */ | ||
| 226 | |||
| 227 | if (acpi_gbl_truncate_io_addresses) { | ||
| 228 | address &= ACPI_UINT16_MAX; | ||
| 229 | } | ||
| 230 | |||
| 225 | /* Validate the entire request and perform the I/O */ | 231 | /* Validate the entire request and perform the I/O */ |
| 226 | 232 | ||
| 227 | status = acpi_hw_validate_io_request(address, width); | 233 | status = acpi_hw_validate_io_request(address, width); |
| @@ -279,6 +285,12 @@ acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width) | |||
| 279 | acpi_status status; | 285 | acpi_status status; |
| 280 | u32 i; | 286 | u32 i; |
| 281 | 287 | ||
| 288 | /* Truncate address to 16 bits if requested */ | ||
| 289 | |||
| 290 | if (acpi_gbl_truncate_io_addresses) { | ||
| 291 | address &= ACPI_UINT16_MAX; | ||
| 292 | } | ||
| 293 | |||
| 282 | /* Validate the entire request and perform the I/O */ | 294 | /* Validate the entire request and perform the I/O */ |
| 283 | 295 | ||
| 284 | status = acpi_hw_validate_io_request(address, width); | 296 | status = acpi_hw_validate_io_request(address, width); |
diff --git a/drivers/acpi/acpica/nsinit.c b/drivers/acpi/acpica/nsinit.c index 9bd6f050f299..4e5272c313e0 100644 --- a/drivers/acpi/acpica/nsinit.c +++ b/drivers/acpi/acpica/nsinit.c | |||
| @@ -193,6 +193,15 @@ acpi_status acpi_ns_initialize_devices(void) | |||
| 193 | acpi_ns_init_one_device, NULL, &info, | 193 | acpi_ns_init_one_device, NULL, &info, |
| 194 | NULL); | 194 | NULL); |
| 195 | 195 | ||
| 196 | /* | ||
| 197 | * Any _OSI requests should be completed by now. If the BIOS has | ||
| 198 | * requested any Windows OSI strings, we will always truncate | ||
| 199 | * I/O addresses to 16 bits -- for Windows compatibility. | ||
| 200 | */ | ||
| 201 | if (acpi_gbl_osi_data >= ACPI_OSI_WIN_2000) { | ||
| 202 | acpi_gbl_truncate_io_addresses = TRUE; | ||
| 203 | } | ||
| 204 | |||
| 196 | ACPI_FREE(info.evaluate_info); | 205 | ACPI_FREE(info.evaluate_info); |
| 197 | if (ACPI_FAILURE(status)) { | 206 | if (ACPI_FAILURE(status)) { |
| 198 | goto error_exit; | 207 | goto error_exit; |
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index 2815df66f6f7..01381be05e96 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c | |||
| @@ -218,6 +218,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
| 218 | }, | 218 | }, |
| 219 | }, | 219 | }, |
| 220 | { | 220 | { |
| 221 | .callback = dmi_disable_osi_vista, | ||
| 222 | .ident = "VGN-NS50B_L", | ||
| 223 | .matches = { | ||
| 224 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | ||
| 225 | DMI_MATCH(DMI_PRODUCT_NAME, "VGN-NS50B_L"), | ||
| 226 | }, | ||
| 227 | }, | ||
| 228 | { | ||
| 221 | .callback = dmi_disable_osi_win7, | 229 | .callback = dmi_disable_osi_win7, |
| 222 | .ident = "ASUS K50IJ", | 230 | .ident = "ASUS K50IJ", |
| 223 | .matches = { | 231 | .matches = { |
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index fd51c4ab4829..7d857dabdde4 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c | |||
| @@ -425,7 +425,7 @@ static int acpi_button_add(struct acpi_device *device) | |||
| 425 | /* Button's GPE is run-wake GPE */ | 425 | /* Button's GPE is run-wake GPE */ |
| 426 | acpi_enable_gpe(device->wakeup.gpe_device, | 426 | acpi_enable_gpe(device->wakeup.gpe_device, |
| 427 | device->wakeup.gpe_number, | 427 | device->wakeup.gpe_number, |
| 428 | ACPI_GPE_TYPE_WAKE_RUN); | 428 | ACPI_GPE_TYPE_RUNTIME); |
| 429 | device->wakeup.run_wake_count++; | 429 | device->wakeup.run_wake_count++; |
| 430 | device->wakeup.state.enabled = 1; | 430 | device->wakeup.state.enabled = 1; |
| 431 | } | 431 | } |
| @@ -449,7 +449,7 @@ static int acpi_button_remove(struct acpi_device *device, int type) | |||
| 449 | if (device->wakeup.flags.valid) { | 449 | if (device->wakeup.flags.valid) { |
| 450 | acpi_disable_gpe(device->wakeup.gpe_device, | 450 | acpi_disable_gpe(device->wakeup.gpe_device, |
| 451 | device->wakeup.gpe_number, | 451 | device->wakeup.gpe_number, |
| 452 | ACPI_GPE_TYPE_WAKE_RUN); | 452 | ACPI_GPE_TYPE_RUNTIME); |
| 453 | device->wakeup.run_wake_count--; | 453 | device->wakeup.run_wake_count--; |
| 454 | device->wakeup.state.enabled = 0; | 454 | device->wakeup.state.enabled = 0; |
| 455 | } | 455 | } |
diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c index acf2ab249842..8a3b840c0bb2 100644 --- a/drivers/acpi/fan.c +++ b/drivers/acpi/fan.c | |||
| @@ -347,7 +347,6 @@ static int __init acpi_fan_init(void) | |||
| 347 | { | 347 | { |
| 348 | int result = 0; | 348 | int result = 0; |
| 349 | 349 | ||
| 350 | |||
| 351 | #ifdef CONFIG_ACPI_PROCFS | 350 | #ifdef CONFIG_ACPI_PROCFS |
| 352 | acpi_fan_dir = proc_mkdir(ACPI_FAN_CLASS, acpi_root_dir); | 351 | acpi_fan_dir = proc_mkdir(ACPI_FAN_CLASS, acpi_root_dir); |
| 353 | if (!acpi_fan_dir) | 352 | if (!acpi_fan_dir) |
| @@ -356,7 +355,9 @@ static int __init acpi_fan_init(void) | |||
| 356 | 355 | ||
| 357 | result = acpi_bus_register_driver(&acpi_fan_driver); | 356 | result = acpi_bus_register_driver(&acpi_fan_driver); |
| 358 | if (result < 0) { | 357 | if (result < 0) { |
| 358 | #ifdef CONFIG_ACPI_PROCFS | ||
| 359 | remove_proc_entry(ACPI_FAN_CLASS, acpi_root_dir); | 359 | remove_proc_entry(ACPI_FAN_CLASS, acpi_root_dir); |
| 360 | #endif | ||
| 360 | return -ENODEV; | 361 | return -ENODEV; |
| 361 | } | 362 | } |
| 362 | 363 | ||
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c index b1034a9ada4e..38ea0cc6dc49 100644 --- a/drivers/acpi/processor_driver.c +++ b/drivers/acpi/processor_driver.c | |||
| @@ -581,6 +581,11 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device) | |||
| 581 | return 0; | 581 | return 0; |
| 582 | } | 582 | } |
| 583 | 583 | ||
| 584 | #ifdef CONFIG_SMP | ||
| 585 | if (pr->id >= setup_max_cpus && pr->id != 0) | ||
| 586 | return 0; | ||
| 587 | #endif | ||
| 588 | |||
| 584 | BUG_ON((pr->id >= nr_cpu_ids) || (pr->id < 0)); | 589 | BUG_ON((pr->id >= nr_cpu_ids) || (pr->id < 0)); |
| 585 | 590 | ||
| 586 | /* | 591 | /* |
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 3fb4bdea7e06..5b7c52e4a00f 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
| @@ -114,6 +114,8 @@ static int __acpi_pm_prepare(void) | |||
| 114 | { | 114 | { |
| 115 | int error = acpi_sleep_prepare(acpi_target_sleep_state); | 115 | int error = acpi_sleep_prepare(acpi_target_sleep_state); |
| 116 | 116 | ||
| 117 | suspend_nvs_save(); | ||
| 118 | |||
| 117 | if (error) | 119 | if (error) |
| 118 | acpi_target_sleep_state = ACPI_STATE_S0; | 120 | acpi_target_sleep_state = ACPI_STATE_S0; |
| 119 | return error; | 121 | return error; |
| @@ -143,6 +145,9 @@ static void acpi_pm_finish(void) | |||
| 143 | { | 145 | { |
| 144 | u32 acpi_state = acpi_target_sleep_state; | 146 | u32 acpi_state = acpi_target_sleep_state; |
| 145 | 147 | ||
| 148 | suspend_nvs_free(); | ||
| 149 | acpi_ec_unblock_transactions(); | ||
| 150 | |||
| 146 | if (acpi_state == ACPI_STATE_S0) | 151 | if (acpi_state == ACPI_STATE_S0) |
| 147 | return; | 152 | return; |
| 148 | 153 | ||
| @@ -192,6 +197,11 @@ static int acpi_suspend_begin(suspend_state_t pm_state) | |||
| 192 | u32 acpi_state = acpi_suspend_states[pm_state]; | 197 | u32 acpi_state = acpi_suspend_states[pm_state]; |
| 193 | int error = 0; | 198 | int error = 0; |
| 194 | 199 | ||
| 200 | error = suspend_nvs_alloc(); | ||
| 201 | |||
| 202 | if (error) | ||
| 203 | return error; | ||
| 204 | |||
| 195 | if (sleep_states[acpi_state]) { | 205 | if (sleep_states[acpi_state]) { |
| 196 | acpi_target_sleep_state = acpi_state; | 206 | acpi_target_sleep_state = acpi_state; |
| 197 | acpi_sleep_tts_switch(acpi_target_sleep_state); | 207 | acpi_sleep_tts_switch(acpi_target_sleep_state); |
| @@ -269,12 +279,13 @@ static int acpi_suspend_enter(suspend_state_t pm_state) | |||
| 269 | if (acpi_state == ACPI_STATE_S3) | 279 | if (acpi_state == ACPI_STATE_S3) |
| 270 | acpi_restore_state_mem(); | 280 | acpi_restore_state_mem(); |
| 271 | 281 | ||
| 282 | suspend_nvs_restore(); | ||
| 283 | |||
| 272 | return ACPI_SUCCESS(status) ? 0 : -EFAULT; | 284 | return ACPI_SUCCESS(status) ? 0 : -EFAULT; |
| 273 | } | 285 | } |
| 274 | 286 | ||
| 275 | static void acpi_suspend_finish(void) | 287 | static void acpi_suspend_finish(void) |
| 276 | { | 288 | { |
| 277 | acpi_ec_unblock_transactions(); | ||
| 278 | acpi_pm_finish(); | 289 | acpi_pm_finish(); |
| 279 | } | 290 | } |
| 280 | 291 | ||
| @@ -404,7 +415,7 @@ static int acpi_hibernation_begin(void) | |||
| 404 | { | 415 | { |
| 405 | int error; | 416 | int error; |
| 406 | 417 | ||
| 407 | error = s4_no_nvs ? 0 : hibernate_nvs_alloc(); | 418 | error = s4_no_nvs ? 0 : suspend_nvs_alloc(); |
| 408 | if (!error) { | 419 | if (!error) { |
| 409 | acpi_target_sleep_state = ACPI_STATE_S4; | 420 | acpi_target_sleep_state = ACPI_STATE_S4; |
| 410 | acpi_sleep_tts_switch(acpi_target_sleep_state); | 421 | acpi_sleep_tts_switch(acpi_target_sleep_state); |
| @@ -418,7 +429,7 @@ static int acpi_hibernation_pre_snapshot(void) | |||
| 418 | int error = acpi_pm_prepare(); | 429 | int error = acpi_pm_prepare(); |
| 419 | 430 | ||
| 420 | if (!error) | 431 | if (!error) |
| 421 | hibernate_nvs_save(); | 432 | suspend_nvs_save(); |
| 422 | 433 | ||
| 423 | return error; | 434 | return error; |
| 424 | } | 435 | } |
| @@ -441,13 +452,6 @@ static int acpi_hibernation_enter(void) | |||
| 441 | return ACPI_SUCCESS(status) ? 0 : -EFAULT; | 452 | return ACPI_SUCCESS(status) ? 0 : -EFAULT; |
| 442 | } | 453 | } |
| 443 | 454 | ||
| 444 | static void acpi_hibernation_finish(void) | ||
| 445 | { | ||
| 446 | hibernate_nvs_free(); | ||
| 447 | acpi_ec_unblock_transactions(); | ||
| 448 | acpi_pm_finish(); | ||
| 449 | } | ||
| 450 | |||
| 451 | static void acpi_hibernation_leave(void) | 455 | static void acpi_hibernation_leave(void) |
| 452 | { | 456 | { |
| 453 | /* | 457 | /* |
| @@ -464,7 +468,7 @@ static void acpi_hibernation_leave(void) | |||
| 464 | panic("ACPI S4 hardware signature mismatch"); | 468 | panic("ACPI S4 hardware signature mismatch"); |
| 465 | } | 469 | } |
| 466 | /* Restore the NVS memory area */ | 470 | /* Restore the NVS memory area */ |
| 467 | hibernate_nvs_restore(); | 471 | suspend_nvs_restore(); |
| 468 | /* Allow EC transactions to happen. */ | 472 | /* Allow EC transactions to happen. */ |
| 469 | acpi_ec_unblock_transactions_early(); | 473 | acpi_ec_unblock_transactions_early(); |
| 470 | } | 474 | } |
| @@ -479,7 +483,7 @@ static struct platform_hibernation_ops acpi_hibernation_ops = { | |||
| 479 | .begin = acpi_hibernation_begin, | 483 | .begin = acpi_hibernation_begin, |
| 480 | .end = acpi_pm_end, | 484 | .end = acpi_pm_end, |
| 481 | .pre_snapshot = acpi_hibernation_pre_snapshot, | 485 | .pre_snapshot = acpi_hibernation_pre_snapshot, |
| 482 | .finish = acpi_hibernation_finish, | 486 | .finish = acpi_pm_finish, |
| 483 | .prepare = acpi_pm_prepare, | 487 | .prepare = acpi_pm_prepare, |
| 484 | .enter = acpi_hibernation_enter, | 488 | .enter = acpi_hibernation_enter, |
| 485 | .leave = acpi_hibernation_leave, | 489 | .leave = acpi_hibernation_leave, |
| @@ -507,7 +511,7 @@ static int acpi_hibernation_begin_old(void) | |||
| 507 | 511 | ||
| 508 | if (!error) { | 512 | if (!error) { |
| 509 | if (!s4_no_nvs) | 513 | if (!s4_no_nvs) |
| 510 | error = hibernate_nvs_alloc(); | 514 | error = suspend_nvs_alloc(); |
| 511 | if (!error) | 515 | if (!error) |
| 512 | acpi_target_sleep_state = ACPI_STATE_S4; | 516 | acpi_target_sleep_state = ACPI_STATE_S4; |
| 513 | } | 517 | } |
| @@ -517,7 +521,7 @@ static int acpi_hibernation_begin_old(void) | |||
| 517 | static int acpi_hibernation_pre_snapshot_old(void) | 521 | static int acpi_hibernation_pre_snapshot_old(void) |
| 518 | { | 522 | { |
| 519 | acpi_pm_freeze(); | 523 | acpi_pm_freeze(); |
| 520 | hibernate_nvs_save(); | 524 | suspend_nvs_save(); |
| 521 | return 0; | 525 | return 0; |
| 522 | } | 526 | } |
| 523 | 527 | ||
| @@ -529,8 +533,8 @@ static struct platform_hibernation_ops acpi_hibernation_ops_old = { | |||
| 529 | .begin = acpi_hibernation_begin_old, | 533 | .begin = acpi_hibernation_begin_old, |
| 530 | .end = acpi_pm_end, | 534 | .end = acpi_pm_end, |
| 531 | .pre_snapshot = acpi_hibernation_pre_snapshot_old, | 535 | .pre_snapshot = acpi_hibernation_pre_snapshot_old, |
| 532 | .finish = acpi_hibernation_finish, | ||
| 533 | .prepare = acpi_pm_freeze, | 536 | .prepare = acpi_pm_freeze, |
| 537 | .finish = acpi_pm_finish, | ||
| 534 | .enter = acpi_hibernation_enter, | 538 | .enter = acpi_hibernation_enter, |
| 535 | .leave = acpi_hibernation_leave, | 539 | .leave = acpi_hibernation_leave, |
| 536 | .pre_restore = acpi_pm_freeze, | 540 | .pre_restore = acpi_pm_freeze, |
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c index c79e789ed03a..f8db50a0941c 100644 --- a/drivers/acpi/system.c +++ b/drivers/acpi/system.c | |||
| @@ -388,10 +388,12 @@ static ssize_t counter_set(struct kobject *kobj, | |||
| 388 | if (index < num_gpes) { | 388 | if (index < num_gpes) { |
| 389 | if (!strcmp(buf, "disable\n") && | 389 | if (!strcmp(buf, "disable\n") && |
| 390 | (status & ACPI_EVENT_FLAG_ENABLED)) | 390 | (status & ACPI_EVENT_FLAG_ENABLED)) |
| 391 | result = acpi_set_gpe(handle, index, ACPI_GPE_DISABLE); | 391 | result = acpi_disable_gpe(handle, index, |
| 392 | ACPI_GPE_TYPE_RUNTIME); | ||
| 392 | else if (!strcmp(buf, "enable\n") && | 393 | else if (!strcmp(buf, "enable\n") && |
| 393 | !(status & ACPI_EVENT_FLAG_ENABLED)) | 394 | !(status & ACPI_EVENT_FLAG_ENABLED)) |
| 394 | result = acpi_set_gpe(handle, index, ACPI_GPE_ENABLE); | 395 | result = acpi_enable_gpe(handle, index, |
| 396 | ACPI_GPE_TYPE_RUNTIME); | ||
| 395 | else if (!strcmp(buf, "clear\n") && | 397 | else if (!strcmp(buf, "clear\n") && |
| 396 | (status & ACPI_EVENT_FLAG_SET)) | 398 | (status & ACPI_EVENT_FLAG_SET)) |
| 397 | result = acpi_clear_gpe(handle, index); | 399 | result = acpi_clear_gpe(handle, index); |
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c index 4b9d339a6e28..388747a7ef4f 100644 --- a/drivers/acpi/wakeup.c +++ b/drivers/acpi/wakeup.c | |||
| @@ -64,16 +64,13 @@ void acpi_enable_wakeup_device(u8 sleep_state) | |||
| 64 | struct acpi_device *dev = | 64 | struct acpi_device *dev = |
| 65 | container_of(node, struct acpi_device, wakeup_list); | 65 | container_of(node, struct acpi_device, wakeup_list); |
| 66 | 66 | ||
| 67 | if (!dev->wakeup.flags.valid) | 67 | if (!dev->wakeup.flags.valid || !dev->wakeup.state.enabled |
| 68 | continue; | ||
| 69 | |||
| 70 | if ((!dev->wakeup.state.enabled && !dev->wakeup.prepare_count) | ||
| 71 | || sleep_state > (u32) dev->wakeup.sleep_state) | 68 | || sleep_state > (u32) dev->wakeup.sleep_state) |
| 72 | continue; | 69 | continue; |
| 73 | 70 | ||
| 74 | /* The wake-up power should have been enabled already. */ | 71 | /* The wake-up power should have been enabled already. */ |
| 75 | acpi_set_gpe(dev->wakeup.gpe_device, dev->wakeup.gpe_number, | 72 | acpi_enable_gpe(dev->wakeup.gpe_device, dev->wakeup.gpe_number, |
| 76 | ACPI_GPE_ENABLE); | 73 | ACPI_GPE_TYPE_WAKE); |
| 77 | } | 74 | } |
| 78 | } | 75 | } |
| 79 | 76 | ||
| @@ -96,6 +93,8 @@ void acpi_disable_wakeup_device(u8 sleep_state) | |||
| 96 | || (sleep_state > (u32) dev->wakeup.sleep_state)) | 93 | || (sleep_state > (u32) dev->wakeup.sleep_state)) |
| 97 | continue; | 94 | continue; |
| 98 | 95 | ||
| 96 | acpi_disable_gpe(dev->wakeup.gpe_device, dev->wakeup.gpe_number, | ||
| 97 | ACPI_GPE_TYPE_WAKE); | ||
| 99 | acpi_disable_wakeup_device_power(dev); | 98 | acpi_disable_wakeup_device_power(dev); |
| 100 | } | 99 | } |
| 101 | } | 100 | } |
| @@ -109,13 +108,8 @@ int __init acpi_wakeup_device_init(void) | |||
| 109 | struct acpi_device *dev = container_of(node, | 108 | struct acpi_device *dev = container_of(node, |
| 110 | struct acpi_device, | 109 | struct acpi_device, |
| 111 | wakeup_list); | 110 | wakeup_list); |
| 112 | /* In case user doesn't load button driver */ | 111 | if (dev->wakeup.flags.always_enabled) |
| 113 | if (!dev->wakeup.flags.always_enabled || | 112 | dev->wakeup.state.enabled = 1; |
| 114 | dev->wakeup.state.enabled) | ||
| 115 | continue; | ||
| 116 | acpi_enable_gpe(dev->wakeup.gpe_device, dev->wakeup.gpe_number, | ||
| 117 | ACPI_GPE_TYPE_WAKE); | ||
| 118 | dev->wakeup.state.enabled = 1; | ||
| 119 | } | 113 | } |
| 120 | mutex_unlock(&acpi_device_lock); | 114 | mutex_unlock(&acpi_device_lock); |
| 121 | return 0; | 115 | return 0; |
diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h index 8e00b4ddd083..792868d24f2a 100644 --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h | |||
| @@ -224,6 +224,7 @@ struct tpm_readpubek_params_out { | |||
| 224 | u8 algorithm[4]; | 224 | u8 algorithm[4]; |
| 225 | u8 encscheme[2]; | 225 | u8 encscheme[2]; |
| 226 | u8 sigscheme[2]; | 226 | u8 sigscheme[2]; |
| 227 | __be32 paramsize; | ||
| 227 | u8 parameters[12]; /*assuming RSA*/ | 228 | u8 parameters[12]; /*assuming RSA*/ |
| 228 | __be32 keysize; | 229 | __be32 keysize; |
| 229 | u8 modulus[256]; | 230 | u8 modulus[256]; |
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c index c0e70006374e..06b552fca63d 100644 --- a/drivers/net/tulip/de2104x.c +++ b/drivers/net/tulip/de2104x.c | |||
| @@ -367,8 +367,8 @@ static u16 t21041_csr14[] = { 0xFFFF, 0xF7FD, 0xF7FD, 0x6F3F, 0x6F3D, }; | |||
| 367 | static u16 t21041_csr15[] = { 0x0008, 0x0006, 0x000E, 0x0008, 0x0008, }; | 367 | static u16 t21041_csr15[] = { 0x0008, 0x0006, 0x000E, 0x0008, 0x0008, }; |
| 368 | 368 | ||
| 369 | 369 | ||
| 370 | #define dr32(reg) readl(de->regs + (reg)) | 370 | #define dr32(reg) ioread32(de->regs + (reg)) |
| 371 | #define dw32(reg,val) writel((val), de->regs + (reg)) | 371 | #define dw32(reg, val) iowrite32((val), de->regs + (reg)) |
| 372 | 372 | ||
| 373 | 373 | ||
| 374 | static void de_rx_err_acct (struct de_private *de, unsigned rx_tail, | 374 | static void de_rx_err_acct (struct de_private *de, unsigned rx_tail, |
| @@ -1706,6 +1706,7 @@ static void __devinit de21040_get_mac_address (struct de_private *de) | |||
| 1706 | int value, boguscnt = 100000; | 1706 | int value, boguscnt = 100000; |
| 1707 | do { | 1707 | do { |
| 1708 | value = dr32(ROMCmd); | 1708 | value = dr32(ROMCmd); |
| 1709 | rmb(); | ||
| 1709 | } while (value < 0 && --boguscnt > 0); | 1710 | } while (value < 0 && --boguscnt > 0); |
| 1710 | de->dev->dev_addr[i] = value; | 1711 | de->dev->dev_addr[i] = value; |
| 1711 | udelay(1); | 1712 | udelay(1); |
diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c index ce94801f48ca..d9396a4fc7ff 100644 --- a/fs/proc/proc_devtree.c +++ b/fs/proc/proc_devtree.c | |||
| @@ -209,6 +209,9 @@ void proc_device_tree_add_node(struct device_node *np, | |||
| 209 | for (pp = np->properties; pp != NULL; pp = pp->next) { | 209 | for (pp = np->properties; pp != NULL; pp = pp->next) { |
| 210 | p = pp->name; | 210 | p = pp->name; |
| 211 | 211 | ||
| 212 | if (strchr(p, '/')) | ||
| 213 | continue; | ||
| 214 | |||
| 212 | if (duplicate_name(de, p)) | 215 | if (duplicate_name(de, p)) |
| 213 | p = fixup_name(np, de, p); | 216 | p = fixup_name(np, de, p); |
| 214 | 217 | ||
diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h index 5958d7845bd5..17714beb868e 100644 --- a/include/acpi/acexcep.h +++ b/include/acpi/acexcep.h | |||
| @@ -212,7 +212,7 @@ char const *acpi_gbl_exception_names_env[] = { | |||
| 212 | "AE_NO_GLOBAL_LOCK", | 212 | "AE_NO_GLOBAL_LOCK", |
| 213 | "AE_ABORT_METHOD", | 213 | "AE_ABORT_METHOD", |
| 214 | "AE_SAME_HANDLER", | 214 | "AE_SAME_HANDLER", |
| 215 | "AE_WAKE_ONLY_GPE", | 215 | "AE_NO_HANDLER", |
| 216 | "AE_OWNER_ID_LIMIT" | 216 | "AE_OWNER_ID_LIMIT" |
| 217 | }; | 217 | }; |
| 218 | 218 | ||
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 0e4ab1fe5966..1371cc997393 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
| @@ -69,6 +69,7 @@ extern acpi_name acpi_gbl_trace_method_name; | |||
| 69 | extern u32 acpi_gbl_trace_flags; | 69 | extern u32 acpi_gbl_trace_flags; |
| 70 | extern u8 acpi_gbl_enable_aml_debug_object; | 70 | extern u8 acpi_gbl_enable_aml_debug_object; |
| 71 | extern u8 acpi_gbl_copy_dsdt_locally; | 71 | extern u8 acpi_gbl_copy_dsdt_locally; |
| 72 | extern u8 acpi_gbl_truncate_io_addresses; | ||
| 72 | 73 | ||
| 73 | extern u32 acpi_current_gpe_count; | 74 | extern u32 acpi_current_gpe_count; |
| 74 | extern struct acpi_table_fadt acpi_gbl_FADT; | 75 | extern struct acpi_table_fadt acpi_gbl_FADT; |
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index bade172cad47..d55f4a7b824d 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h | |||
| @@ -663,10 +663,11 @@ typedef u32 acpi_event_status; | |||
| 663 | #define ACPI_GPE_MAX 0xFF | 663 | #define ACPI_GPE_MAX 0xFF |
| 664 | #define ACPI_NUM_GPE 256 | 664 | #define ACPI_NUM_GPE 256 |
| 665 | 665 | ||
| 666 | /* Actions for acpi_set_gpe */ | 666 | /* Actions for acpi_set_gpe and acpi_hw_low_set_gpe */ |
| 667 | 667 | ||
| 668 | #define ACPI_GPE_ENABLE 0 | 668 | #define ACPI_GPE_ENABLE 0 |
| 669 | #define ACPI_GPE_DISABLE 1 | 669 | #define ACPI_GPE_DISABLE 1 |
| 670 | #define ACPI_GPE_COND_ENABLE 2 | ||
| 670 | 671 | ||
| 671 | /* gpe_types for acpi_enable_gpe and acpi_disable_gpe */ | 672 | /* gpe_types for acpi_enable_gpe and acpi_disable_gpe */ |
| 672 | 673 | ||
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 5e781d824e6d..bc7d6bb4cd8e 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -256,22 +256,22 @@ static inline int hibernate(void) { return -ENOSYS; } | |||
| 256 | static inline bool system_entering_hibernation(void) { return false; } | 256 | static inline bool system_entering_hibernation(void) { return false; } |
| 257 | #endif /* CONFIG_HIBERNATION */ | 257 | #endif /* CONFIG_HIBERNATION */ |
| 258 | 258 | ||
| 259 | #ifdef CONFIG_HIBERNATION_NVS | 259 | #ifdef CONFIG_SUSPEND_NVS |
| 260 | extern int hibernate_nvs_register(unsigned long start, unsigned long size); | 260 | extern int suspend_nvs_register(unsigned long start, unsigned long size); |
| 261 | extern int hibernate_nvs_alloc(void); | 261 | extern int suspend_nvs_alloc(void); |
| 262 | extern void hibernate_nvs_free(void); | 262 | extern void suspend_nvs_free(void); |
| 263 | extern void hibernate_nvs_save(void); | 263 | extern void suspend_nvs_save(void); |
| 264 | extern void hibernate_nvs_restore(void); | 264 | extern void suspend_nvs_restore(void); |
| 265 | #else /* CONFIG_HIBERNATION_NVS */ | 265 | #else /* CONFIG_SUSPEND_NVS */ |
| 266 | static inline int hibernate_nvs_register(unsigned long a, unsigned long b) | 266 | static inline int suspend_nvs_register(unsigned long a, unsigned long b) |
| 267 | { | 267 | { |
| 268 | return 0; | 268 | return 0; |
| 269 | } | 269 | } |
| 270 | static inline int hibernate_nvs_alloc(void) { return 0; } | 270 | static inline int suspend_nvs_alloc(void) { return 0; } |
| 271 | static inline void hibernate_nvs_free(void) {} | 271 | static inline void suspend_nvs_free(void) {} |
| 272 | static inline void hibernate_nvs_save(void) {} | 272 | static inline void suspend_nvs_save(void) {} |
| 273 | static inline void hibernate_nvs_restore(void) {} | 273 | static inline void suspend_nvs_restore(void) {} |
| 274 | #endif /* CONFIG_HIBERNATION_NVS */ | 274 | #endif /* CONFIG_SUSPEND_NVS */ |
| 275 | 275 | ||
| 276 | #ifdef CONFIG_PM_SLEEP | 276 | #ifdef CONFIG_PM_SLEEP |
| 277 | void save_processor_state(void); | 277 | void save_processor_state(void); |
diff --git a/init/main.c b/init/main.c index 3bdb152f412f..ac2e4a5f59ee 100644 --- a/init/main.c +++ b/init/main.c | |||
| @@ -125,7 +125,9 @@ static char *ramdisk_execute_command; | |||
| 125 | 125 | ||
| 126 | #ifdef CONFIG_SMP | 126 | #ifdef CONFIG_SMP |
| 127 | /* Setup configured maximum number of CPUs to activate */ | 127 | /* Setup configured maximum number of CPUs to activate */ |
| 128 | unsigned int __initdata setup_max_cpus = NR_CPUS; | 128 | unsigned int setup_max_cpus = NR_CPUS; |
| 129 | EXPORT_SYMBOL(setup_max_cpus); | ||
| 130 | |||
| 129 | 131 | ||
| 130 | /* | 132 | /* |
| 131 | * Setup routine for controlling SMP activation | 133 | * Setup routine for controlling SMP activation |
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig index 5c36ea9d55d2..ca6066a6952e 100644 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig | |||
| @@ -99,9 +99,13 @@ config PM_SLEEP_ADVANCED_DEBUG | |||
| 99 | depends on PM_ADVANCED_DEBUG | 99 | depends on PM_ADVANCED_DEBUG |
| 100 | default n | 100 | default n |
| 101 | 101 | ||
| 102 | config SUSPEND_NVS | ||
| 103 | bool | ||
| 104 | |||
| 102 | config SUSPEND | 105 | config SUSPEND |
| 103 | bool "Suspend to RAM and standby" | 106 | bool "Suspend to RAM and standby" |
| 104 | depends on PM && ARCH_SUSPEND_POSSIBLE | 107 | depends on PM && ARCH_SUSPEND_POSSIBLE |
| 108 | select SUSPEND_NVS if HAS_IOMEM | ||
| 105 | default y | 109 | default y |
| 106 | ---help--- | 110 | ---help--- |
| 107 | Allow the system to enter sleep states in which main memory is | 111 | Allow the system to enter sleep states in which main memory is |
| @@ -130,13 +134,10 @@ config SUSPEND_FREEZER | |||
| 130 | 134 | ||
| 131 | Turning OFF this setting is NOT recommended! If in doubt, say Y. | 135 | Turning OFF this setting is NOT recommended! If in doubt, say Y. |
| 132 | 136 | ||
| 133 | config HIBERNATION_NVS | ||
| 134 | bool | ||
| 135 | |||
| 136 | config HIBERNATION | 137 | config HIBERNATION |
| 137 | bool "Hibernation (aka 'suspend to disk')" | 138 | bool "Hibernation (aka 'suspend to disk')" |
| 138 | depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE | 139 | depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE |
| 139 | select HIBERNATION_NVS if HAS_IOMEM | 140 | select SUSPEND_NVS if HAS_IOMEM |
| 140 | ---help--- | 141 | ---help--- |
| 141 | Enable the suspend to disk (STD) functionality, which is usually | 142 | Enable the suspend to disk (STD) functionality, which is usually |
| 142 | called "hibernation" in user interfaces. STD checkpoints the | 143 | called "hibernation" in user interfaces. STD checkpoints the |
diff --git a/kernel/power/Makefile b/kernel/power/Makefile index 524e058dcf06..f9063c6b185d 100644 --- a/kernel/power/Makefile +++ b/kernel/power/Makefile | |||
| @@ -10,6 +10,6 @@ obj-$(CONFIG_SUSPEND) += suspend.o | |||
| 10 | obj-$(CONFIG_PM_TEST_SUSPEND) += suspend_test.o | 10 | obj-$(CONFIG_PM_TEST_SUSPEND) += suspend_test.o |
| 11 | obj-$(CONFIG_HIBERNATION) += hibernate.o snapshot.o swap.o user.o \ | 11 | obj-$(CONFIG_HIBERNATION) += hibernate.o snapshot.o swap.o user.o \ |
| 12 | block_io.o | 12 | block_io.o |
| 13 | obj-$(CONFIG_HIBERNATION_NVS) += hibernate_nvs.o | 13 | obj-$(CONFIG_SUSPEND_NVS) += nvs.o |
| 14 | 14 | ||
| 15 | obj-$(CONFIG_MAGIC_SYSRQ) += poweroff.o | 15 | obj-$(CONFIG_MAGIC_SYSRQ) += poweroff.o |
diff --git a/kernel/power/hibernate_nvs.c b/kernel/power/nvs.c index fdcad9ed5a7b..1836db60bbb6 100644 --- a/kernel/power/hibernate_nvs.c +++ b/kernel/power/nvs.c | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | /* | 16 | /* |
| 17 | * Platforms, like ACPI, may want us to save some memory used by them during | 17 | * Platforms, like ACPI, may want us to save some memory used by them during |
| 18 | * hibernation and to restore the contents of this memory during the subsequent | 18 | * suspend and to restore the contents of this memory during the subsequent |
| 19 | * resume. The code below implements a mechanism allowing us to do that. | 19 | * resume. The code below implements a mechanism allowing us to do that. |
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| @@ -30,7 +30,7 @@ struct nvs_page { | |||
| 30 | static LIST_HEAD(nvs_list); | 30 | static LIST_HEAD(nvs_list); |
| 31 | 31 | ||
| 32 | /** | 32 | /** |
| 33 | * hibernate_nvs_register - register platform NVS memory region to save | 33 | * suspend_nvs_register - register platform NVS memory region to save |
| 34 | * @start - physical address of the region | 34 | * @start - physical address of the region |
| 35 | * @size - size of the region | 35 | * @size - size of the region |
| 36 | * | 36 | * |
| @@ -38,7 +38,7 @@ static LIST_HEAD(nvs_list); | |||
| 38 | * things so that the data from page-aligned addresses in this region will | 38 | * things so that the data from page-aligned addresses in this region will |
| 39 | * be copied into separate RAM pages. | 39 | * be copied into separate RAM pages. |
| 40 | */ | 40 | */ |
| 41 | int hibernate_nvs_register(unsigned long start, unsigned long size) | 41 | int suspend_nvs_register(unsigned long start, unsigned long size) |
| 42 | { | 42 | { |
| 43 | struct nvs_page *entry, *next; | 43 | struct nvs_page *entry, *next; |
| 44 | 44 | ||
| @@ -68,9 +68,9 @@ int hibernate_nvs_register(unsigned long start, unsigned long size) | |||
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | /** | 70 | /** |
| 71 | * hibernate_nvs_free - free data pages allocated for saving NVS regions | 71 | * suspend_nvs_free - free data pages allocated for saving NVS regions |
| 72 | */ | 72 | */ |
| 73 | void hibernate_nvs_free(void) | 73 | void suspend_nvs_free(void) |
| 74 | { | 74 | { |
| 75 | struct nvs_page *entry; | 75 | struct nvs_page *entry; |
| 76 | 76 | ||
| @@ -86,16 +86,16 @@ void hibernate_nvs_free(void) | |||
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | /** | 88 | /** |
| 89 | * hibernate_nvs_alloc - allocate memory necessary for saving NVS regions | 89 | * suspend_nvs_alloc - allocate memory necessary for saving NVS regions |
| 90 | */ | 90 | */ |
| 91 | int hibernate_nvs_alloc(void) | 91 | int suspend_nvs_alloc(void) |
| 92 | { | 92 | { |
| 93 | struct nvs_page *entry; | 93 | struct nvs_page *entry; |
| 94 | 94 | ||
| 95 | list_for_each_entry(entry, &nvs_list, node) { | 95 | list_for_each_entry(entry, &nvs_list, node) { |
| 96 | entry->data = (void *)__get_free_page(GFP_KERNEL); | 96 | entry->data = (void *)__get_free_page(GFP_KERNEL); |
| 97 | if (!entry->data) { | 97 | if (!entry->data) { |
| 98 | hibernate_nvs_free(); | 98 | suspend_nvs_free(); |
| 99 | return -ENOMEM; | 99 | return -ENOMEM; |
| 100 | } | 100 | } |
| 101 | } | 101 | } |
| @@ -103,9 +103,9 @@ int hibernate_nvs_alloc(void) | |||
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | /** | 105 | /** |
| 106 | * hibernate_nvs_save - save NVS memory regions | 106 | * suspend_nvs_save - save NVS memory regions |
| 107 | */ | 107 | */ |
| 108 | void hibernate_nvs_save(void) | 108 | void suspend_nvs_save(void) |
| 109 | { | 109 | { |
| 110 | struct nvs_page *entry; | 110 | struct nvs_page *entry; |
| 111 | 111 | ||
| @@ -119,12 +119,12 @@ void hibernate_nvs_save(void) | |||
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | /** | 121 | /** |
| 122 | * hibernate_nvs_restore - restore NVS memory regions | 122 | * suspend_nvs_restore - restore NVS memory regions |
| 123 | * | 123 | * |
| 124 | * This function is going to be called with interrupts disabled, so it | 124 | * This function is going to be called with interrupts disabled, so it |
| 125 | * cannot iounmap the virtual addresses used to access the NVS region. | 125 | * cannot iounmap the virtual addresses used to access the NVS region. |
| 126 | */ | 126 | */ |
| 127 | void hibernate_nvs_restore(void) | 127 | void suspend_nvs_restore(void) |
| 128 | { | 128 | { |
| 129 | struct nvs_page *entry; | 129 | struct nvs_page *entry; |
| 130 | 130 | ||
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 56e7dbb8b996..f37cb7dd4402 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
| @@ -16,6 +16,12 @@ | |||
| 16 | #include <linux/cpu.h> | 16 | #include <linux/cpu.h> |
| 17 | #include <linux/syscalls.h> | 17 | #include <linux/syscalls.h> |
| 18 | #include <linux/gfp.h> | 18 | #include <linux/gfp.h> |
| 19 | #include <linux/io.h> | ||
| 20 | #include <linux/kernel.h> | ||
| 21 | #include <linux/list.h> | ||
| 22 | #include <linux/mm.h> | ||
| 23 | #include <linux/slab.h> | ||
| 24 | #include <linux/suspend.h> | ||
| 19 | 25 | ||
| 20 | #include "power.h" | 26 | #include "power.h" |
| 21 | 27 | ||
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 3318692e4e76..f8779006986d 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c | |||
| @@ -1342,7 +1342,7 @@ static unsigned int *reloc_location(struct elf_info *elf, | |||
| 1342 | int section = sechdr->sh_info; | 1342 | int section = sechdr->sh_info; |
| 1343 | 1343 | ||
| 1344 | return (void *)elf->hdr + sechdrs[section].sh_offset + | 1344 | return (void *)elf->hdr + sechdrs[section].sh_offset + |
| 1345 | (r->r_offset - sechdrs[section].sh_addr); | 1345 | r->r_offset - sechdrs[section].sh_addr; |
| 1346 | } | 1346 | } |
| 1347 | 1347 | ||
| 1348 | static int addend_386_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r) | 1348 | static int addend_386_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r) |
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c index 13074b454743..6261745e4459 100644 --- a/security/keys/keyctl.c +++ b/security/keys/keyctl.c | |||
| @@ -33,7 +33,7 @@ static int key_get_type_from_user(char *type, | |||
| 33 | ret = strncpy_from_user(type, _type, len); | 33 | ret = strncpy_from_user(type, _type, len); |
| 34 | 34 | ||
| 35 | if (ret < 0) | 35 | if (ret < 0) |
| 36 | return -EFAULT; | 36 | return ret; |
| 37 | 37 | ||
| 38 | if (ret == 0 || ret >= len) | 38 | if (ret == 0 || ret >= len) |
| 39 | return -EINVAL; | 39 | return -EINVAL; |
| @@ -1080,7 +1080,7 @@ set: | |||
| 1080 | return old_setting; | 1080 | return old_setting; |
| 1081 | error: | 1081 | error: |
| 1082 | abort_creds(new); | 1082 | abort_creds(new); |
| 1083 | return -EINVAL; | 1083 | return ret; |
| 1084 | 1084 | ||
| 1085 | } /* end keyctl_set_reqkey_keyring() */ | 1085 | } /* end keyctl_set_reqkey_keyring() */ |
| 1086 | 1086 | ||
diff --git a/sound/soc/fsl/mpc5200_dma.h b/sound/soc/fsl/mpc5200_dma.h index 22208b373fb9..e1ec6d91ea38 100644 --- a/sound/soc/fsl/mpc5200_dma.h +++ b/sound/soc/fsl/mpc5200_dma.h | |||
| @@ -73,7 +73,7 @@ struct psc_dma { | |||
| 73 | }; | 73 | }; |
| 74 | 74 | ||
| 75 | /* Utility for retrieving psc_dma_stream structure from a substream */ | 75 | /* Utility for retrieving psc_dma_stream structure from a substream */ |
| 76 | inline struct psc_dma_stream * | 76 | static inline struct psc_dma_stream * |
| 77 | to_psc_dma_stream(struct snd_pcm_substream *substream, struct psc_dma *psc_dma) | 77 | to_psc_dma_stream(struct snd_pcm_substream *substream, struct psc_dma *psc_dma) |
| 78 | { | 78 | { |
| 79 | if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) | 79 | if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) |
