From 58cf7e9719f60a7037b75d9af96b0a7fc9d31463 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 14 Nov 2011 11:18:59 +0100 Subject: [PATCH] --- yaml --- r: 275501 b: refs/heads/master c: 800252976be89611ef86d6d04442a821018ed949 h: refs/heads/master i: 275499: 480495e0768c04fe25e19205c2732026a5f3a41e v: v3 --- [refs] | 2 +- trunk/MAINTAINERS | 4 +- trunk/Makefile | 2 +- trunk/arch/blackfin/include/asm/bfin_serial.h | 2 - trunk/arch/blackfin/mach-bf518/boards/ezbrd.c | 14 +- .../blackfin/mach-bf518/boards/tcm-bf518.c | 14 +- .../blackfin/mach-bf527/boards/ad7160eval.c | 14 +- .../blackfin/mach-bf527/boards/cm_bf527.c | 16 +- trunk/arch/blackfin/mach-bf527/boards/ezbrd.c | 16 +- trunk/arch/blackfin/mach-bf527/boards/ezkit.c | 14 +- .../blackfin/mach-bf527/boards/tll6527m.c | 14 +- trunk/arch/blackfin/mach-bf533/boards/H8606.c | 7 +- .../blackfin/mach-bf533/boards/blackstamp.c | 7 +- .../blackfin/mach-bf533/boards/cm_bf533.c | 7 +- trunk/arch/blackfin/mach-bf533/boards/ezkit.c | 7 +- trunk/arch/blackfin/mach-bf533/boards/ip0x.c | 7 +- trunk/arch/blackfin/mach-bf533/boards/stamp.c | 7 +- .../blackfin/mach-bf537/boards/cm_bf537e.c | 16 +- .../blackfin/mach-bf537/boards/cm_bf537u.c | 16 +- .../arch/blackfin/mach-bf537/boards/dnp5370.c | 16 +- .../blackfin/mach-bf537/boards/minotaur.c | 14 +- .../arch/blackfin/mach-bf537/boards/pnav10.c | 15 +- trunk/arch/blackfin/mach-bf537/boards/stamp.c | 16 +- .../blackfin/mach-bf537/boards/tcm_bf537.c | 16 +- trunk/arch/blackfin/mach-bf538/boards/ezkit.c | 21 +-- .../blackfin/mach-bf548/boards/cm_bf548.c | 28 +--- trunk/arch/blackfin/mach-bf548/boards/ezkit.c | 28 +--- .../arch/blackfin/mach-bf561/boards/acvilon.c | 7 +- .../blackfin/mach-bf561/boards/cm_bf561.c | 7 +- trunk/arch/blackfin/mach-bf561/boards/ezkit.c | 7 +- trunk/arch/blackfin/mach-bf561/boards/tepla.c | 7 +- trunk/arch/mips/cavium-octeon/flash_setup.c | 9 +- trunk/arch/mips/cavium-octeon/smp.c | 5 +- trunk/arch/mips/emma/common/prom.c | 2 +- .../arch/mips/include/asm/mach-bcm47xx/gpio.h | 18 +-- trunk/arch/mips/include/asm/unistd.h | 18 +-- trunk/arch/mips/kernel/cevt-r4k.c | 38 ++--- .../mips/kernel/cpufreq/loongson2_clock.c | 1 - trunk/arch/mips/kernel/scall32-o32.S | 2 - trunk/arch/mips/kernel/scall64-64.S | 2 - trunk/arch/mips/kernel/scall64-n32.S | 2 - trunk/arch/mips/kernel/scall64-o32.S | 2 - trunk/arch/mips/kernel/traps.c | 3 +- trunk/arch/mips/lantiq/clk.c | 2 +- trunk/arch/mips/lantiq/devices.c | 2 +- trunk/arch/mips/lantiq/prom.c | 2 +- trunk/arch/mips/lantiq/setup.c | 2 +- trunk/arch/mips/lantiq/xway/clk-ase.c | 2 +- trunk/arch/mips/lantiq/xway/clk-xway.c | 2 +- trunk/arch/mips/lantiq/xway/devices.c | 2 +- trunk/arch/mips/lantiq/xway/dma.c | 1 - trunk/arch/mips/lantiq/xway/gpio.c | 2 +- trunk/arch/mips/lantiq/xway/gpio_ebu.c | 2 +- trunk/arch/mips/lantiq/xway/gpio_stp.c | 2 +- trunk/arch/mips/lantiq/xway/prom-ase.c | 2 +- trunk/arch/mips/lantiq/xway/prom-xway.c | 2 +- trunk/arch/mips/lantiq/xway/reset.c | 2 +- trunk/arch/mips/nxp/pnx8550/common/pci.c | 134 ++++++++++++++++ trunk/arch/mips/nxp/pnx8550/common/setup.c | 143 ++++++++++++++++++ trunk/arch/mips/pci/pci-alchemy.c | 1 - trunk/arch/mips/pci/pci-lantiq.c | 1 - trunk/arch/mips/pmc-sierra/yosemite/prom.c | 2 +- trunk/arch/powerpc/sysdev/fsl_rio.c | 2 +- trunk/arch/s390/include/asm/unistd.h | 4 +- trunk/arch/s390/kernel/compat_wrapper.S | 20 +++ trunk/arch/s390/kernel/syscalls.S | 2 + trunk/drivers/firmware/dmi_scan.c | 6 +- trunk/drivers/gpio/gpio-omap.c | 59 +++----- trunk/drivers/gpio/gpio-pca953x.c | 11 +- trunk/drivers/gpu/drm/drm_irq.c | 9 ++ .../drivers/gpu/drm/radeon/radeon_atombios.c | 32 ++-- trunk/drivers/gpu/vga/vgaarb.c | 44 +++--- trunk/drivers/iommu/omap-iommu-debug.c | 1 - trunk/drivers/iommu/omap-iovmm.c | 1 - trunk/drivers/leds/led-class.c | 5 +- trunk/drivers/misc/eeprom/Kconfig | 2 +- trunk/drivers/pinctrl/Kconfig | 22 ++- trunk/drivers/staging/octeon/ethernet-tx.c | 2 +- trunk/fs/hfs/trans.c | 2 - trunk/include/drm/drm_pciids.h | 2 - trunk/include/linux/pinctrl/pinctrl.h | 1 - trunk/mm/hugetlb.c | 2 - trunk/mm/oom_kill.c | 5 - trunk/security/keys/user_defined.c | 3 +- 84 files changed, 520 insertions(+), 495 deletions(-) create mode 100644 trunk/arch/mips/nxp/pnx8550/common/pci.c create mode 100644 trunk/arch/mips/nxp/pnx8550/common/setup.c diff --git a/[refs] b/[refs] index e33779a66a3b..96d0b02612f8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ff0ff78068dd8a962358dbbdafa9d6f24540d3e5 +refs/heads/master: 800252976be89611ef86d6d04442a821018ed949 diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 7f6bc290d455..071a99674347 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1930,7 +1930,6 @@ CONTROL GROUPS (CGROUPS) M: Paul Menage M: Li Zefan L: containers@lists.linux-foundation.org -L: cgroups@vger.kernel.org S: Maintained F: include/linux/cgroup* F: kernel/cgroup* @@ -4305,7 +4304,6 @@ MEMORY RESOURCE CONTROLLER M: Balbir Singh M: Daisuke Nishimura M: KAMEZAWA Hiroyuki -L: cgroups@vger.kernel.org L: linux-mm@kvack.org S: Maintained F: mm/memcontrol.c @@ -4339,7 +4337,7 @@ MIPS M: Ralf Baechle L: linux-mips@linux-mips.org W: http://www.linux-mips.org/ -T: git git://git.linux-mips.org/pub/scm/ralf/linux.git +T: git git://git.linux-mips.org/pub/scm/linux.git Q: http://patchwork.linux-mips.org/project/linux-mips/list/ S: Supported F: Documentation/mips/ diff --git a/trunk/Makefile b/trunk/Makefile index dab8610c4d6f..361e4f00e6b9 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 2 SUBLEVEL = 0 -EXTRAVERSION = -rc2 +EXTRAVERSION = -rc1 NAME = Saber-toothed Squirrel # *DOCUMENTATION* diff --git a/trunk/arch/blackfin/include/asm/bfin_serial.h b/trunk/arch/blackfin/include/asm/bfin_serial.h index ecacdf34768b..7fd0ec7b5b0f 100644 --- a/trunk/arch/blackfin/include/asm/bfin_serial.h +++ b/trunk/arch/blackfin/include/asm/bfin_serial.h @@ -32,8 +32,6 @@ struct work_struct; struct bfin_serial_port { struct uart_port port; unsigned int old_status; - int tx_irq; - int rx_irq; int status_irq; #ifndef BFIN_UART_BF54X_STYLE unsigned int lsr; diff --git a/trunk/arch/blackfin/mach-bf518/boards/ezbrd.c b/trunk/arch/blackfin/mach-bf518/boards/ezbrd.c index d1c0c0cff3ef..1082e49f7a9f 100644 --- a/trunk/arch/blackfin/mach-bf518/boards/ezbrd.c +++ b/trunk/arch/blackfin/mach-bf518/boards/ezbrd.c @@ -372,14 +372,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -420,14 +415,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf518/boards/tcm-bf518.c b/trunk/arch/blackfin/mach-bf518/boards/tcm-bf518.c index 5470bf89e52e..55c127908815 100644 --- a/trunk/arch/blackfin/mach-bf518/boards/tcm-bf518.c +++ b/trunk/arch/blackfin/mach-bf518/boards/tcm-bf518.c @@ -308,14 +308,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -356,14 +351,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf527/boards/ad7160eval.c b/trunk/arch/blackfin/mach-bf527/boards/ad7160eval.c index 5bc6938157ad..8d65d476f118 100644 --- a/trunk/arch/blackfin/mach-bf527/boards/ad7160eval.c +++ b/trunk/arch/blackfin/mach-bf527/boards/ad7160eval.c @@ -380,14 +380,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -428,14 +423,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf527/boards/cm_bf527.c b/trunk/arch/blackfin/mach-bf527/boards/cm_bf527.c index cd289698b4dd..6410fc1af8ed 100644 --- a/trunk/arch/blackfin/mach-bf527/boards/cm_bf527.c +++ b/trunk/arch/blackfin/mach-bf527/boards/cm_bf527.c @@ -8,7 +8,6 @@ */ #include -#include #include #include #include @@ -539,14 +538,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -587,14 +581,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -812,6 +801,7 @@ static struct platform_device bfin_sport1_uart_device = { #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #include #include +#include static struct gpio_keys_button bfin_gpio_keys_table[] = { {BTN_0, GPIO_PF14, 1, "gpio-keys: BTN0"}, diff --git a/trunk/arch/blackfin/mach-bf527/boards/ezbrd.c b/trunk/arch/blackfin/mach-bf527/boards/ezbrd.c index 9f792eafd1cc..64f7278aba53 100644 --- a/trunk/arch/blackfin/mach-bf527/boards/ezbrd.c +++ b/trunk/arch/blackfin/mach-bf527/boards/ezbrd.c @@ -7,7 +7,6 @@ */ #include -#include #include #include #include @@ -417,14 +416,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -465,14 +459,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -685,6 +674,7 @@ static struct platform_device bfin_sport1_uart_device = { #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #include #include +#include static struct gpio_keys_button bfin_gpio_keys_table[] = { {BTN_0, GPIO_PG0, 1, "gpio-keys: BTN0"}, diff --git a/trunk/arch/blackfin/mach-bf527/boards/ezkit.c b/trunk/arch/blackfin/mach-bf527/boards/ezkit.c index 3ecafff5d2ef..e4c6a122b66c 100644 --- a/trunk/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/trunk/arch/blackfin/mach-bf527/boards/ezkit.c @@ -710,14 +710,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -758,14 +753,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf527/boards/tll6527m.c b/trunk/arch/blackfin/mach-bf527/boards/tll6527m.c index 3a92c4318d2d..76dbc03a8d4d 100644 --- a/trunk/arch/blackfin/mach-bf527/boards/tll6527m.c +++ b/trunk/arch/blackfin/mach-bf527/boards/tll6527m.c @@ -495,14 +495,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -544,14 +539,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf533/boards/H8606.c b/trunk/arch/blackfin/mach-bf533/boards/H8606.c index 47cadd316e76..5da5787fc4ef 100644 --- a/trunk/arch/blackfin/mach-bf533/boards/H8606.c +++ b/trunk/arch/blackfin/mach-bf533/boards/H8606.c @@ -237,14 +237,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf533/boards/blackstamp.c b/trunk/arch/blackfin/mach-bf533/boards/blackstamp.c index 18817d57c7a1..b0ec825fb4ec 100644 --- a/trunk/arch/blackfin/mach-bf533/boards/blackstamp.c +++ b/trunk/arch/blackfin/mach-bf533/boards/blackstamp.c @@ -192,14 +192,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf533/boards/cm_bf533.c b/trunk/arch/blackfin/mach-bf533/boards/cm_bf533.c index 2c8f30ef6a7b..14f54a31e74c 100644 --- a/trunk/arch/blackfin/mach-bf533/boards/cm_bf533.c +++ b/trunk/arch/blackfin/mach-bf533/boards/cm_bf533.c @@ -220,14 +220,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf533/boards/ezkit.c b/trunk/arch/blackfin/mach-bf533/boards/ezkit.c index 144556e14499..ecd2801f050d 100644 --- a/trunk/arch/blackfin/mach-bf533/boards/ezkit.c +++ b/trunk/arch/blackfin/mach-bf533/boards/ezkit.c @@ -291,14 +291,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf533/boards/ip0x.c b/trunk/arch/blackfin/mach-bf533/boards/ip0x.c index b597d4e50d58..fbee77fa9211 100644 --- a/trunk/arch/blackfin/mach-bf533/boards/ip0x.c +++ b/trunk/arch/blackfin/mach-bf533/boards/ip0x.c @@ -150,14 +150,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf533/boards/stamp.c b/trunk/arch/blackfin/mach-bf533/boards/stamp.c index 2afd02e14bd1..964a8e5f79b4 100644 --- a/trunk/arch/blackfin/mach-bf533/boards/stamp.c +++ b/trunk/arch/blackfin/mach-bf533/boards/stamp.c @@ -297,14 +297,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf537/boards/cm_bf537e.c b/trunk/arch/blackfin/mach-bf537/boards/cm_bf537e.c index 604a430038e1..1471c51ea697 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/cm_bf537e.c +++ b/trunk/arch/blackfin/mach-bf537/boards/cm_bf537e.c @@ -8,7 +8,6 @@ */ #include -#include #include #include #include @@ -305,14 +304,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -371,14 +365,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -580,6 +569,7 @@ static struct platform_device bfin_sport1_uart_device = { #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) #include +#include static const unsigned short bfin_mac_peripherals[] = P_MII0; static struct bfin_phydev_platform_data bfin_phydev_data[] = { diff --git a/trunk/arch/blackfin/mach-bf537/boards/cm_bf537u.c b/trunk/arch/blackfin/mach-bf537/boards/cm_bf537u.c index d916b46a44fe..47cf37de33ba 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/cm_bf537u.c +++ b/trunk/arch/blackfin/mach-bf537/boards/cm_bf537u.c @@ -9,7 +9,6 @@ #include #include -#include #include #include #include @@ -306,14 +305,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -354,14 +348,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -545,6 +534,7 @@ static struct platform_device bfin_sport1_uart_device = { #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) #include +#include static const unsigned short bfin_mac_peripherals[] = P_MII0; static struct bfin_phydev_platform_data bfin_phydev_data[] = { diff --git a/trunk/arch/blackfin/mach-bf537/boards/dnp5370.c b/trunk/arch/blackfin/mach-bf537/boards/dnp5370.c index 5f307228be63..33e69e427e98 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/dnp5370.c +++ b/trunk/arch/blackfin/mach-bf537/boards/dnp5370.c @@ -12,7 +12,6 @@ */ #include -#include #include #include #include @@ -50,6 +49,7 @@ static struct platform_device rtc_device = { #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) #include +#include static const unsigned short bfin_mac_peripherals[] = P_RMII0; static struct bfin_phydev_platform_data bfin_phydev_data[] = { @@ -236,14 +236,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -285,14 +280,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf537/boards/minotaur.c b/trunk/arch/blackfin/mach-bf537/boards/minotaur.c index 3901dd093b90..c62f9dccd9f7 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/minotaur.c +++ b/trunk/arch/blackfin/mach-bf537/boards/minotaur.c @@ -239,14 +239,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -287,14 +282,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf537/boards/pnav10.c b/trunk/arch/blackfin/mach-bf537/boards/pnav10.c index aebd31c845f0..3099e91114fc 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/pnav10.c +++ b/trunk/arch/blackfin/mach-bf537/boards/pnav10.c @@ -8,7 +8,6 @@ #include #include -#include #include #include #include @@ -309,14 +308,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -357,14 +351,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf537/boards/stamp.c b/trunk/arch/blackfin/mach-bf537/boards/stamp.c index 7fbb0bbf8676..27f955db9976 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/stamp.c +++ b/trunk/arch/blackfin/mach-bf537/boards/stamp.c @@ -7,7 +7,6 @@ */ #include -#include #include #include #include @@ -1566,14 +1565,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -1626,14 +1620,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -2003,6 +1992,7 @@ static struct adp8870_backlight_platform_data adp8870_pdata = { #if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE) #include +#include static struct led_info adp8860_leds[] = { { .name = "adp8860-led7", diff --git a/trunk/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/trunk/arch/blackfin/mach-bf537/boards/tcm_bf537.c index 6917ce2fa55e..841803038d6f 100644 --- a/trunk/arch/blackfin/mach-bf537/boards/tcm_bf537.c +++ b/trunk/arch/blackfin/mach-bf537/boards/tcm_bf537.c @@ -9,7 +9,6 @@ #include #include -#include #include #include #include @@ -306,14 +305,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -354,14 +348,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -547,6 +536,7 @@ static struct platform_device bfin_sport1_uart_device = { #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) #include +#include static const unsigned short bfin_mac_peripherals[] = P_MII0; static struct bfin_phydev_platform_data bfin_phydev_data[] = { diff --git a/trunk/arch/blackfin/mach-bf538/boards/ezkit.c b/trunk/arch/blackfin/mach-bf538/boards/ezkit.c index 8356eb599f19..629f3c333415 100644 --- a/trunk/arch/blackfin/mach-bf538/boards/ezkit.c +++ b/trunk/arch/blackfin/mach-bf538/boards/ezkit.c @@ -48,14 +48,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -108,14 +103,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -156,14 +146,9 @@ static struct resource bfin_uart2_resources[] = { .end = UART2_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART2_TX, - .end = IRQ_UART2_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART2_RX, - .end = IRQ_UART2_RX, + .end = IRQ_UART2_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf548/boards/cm_bf548.c b/trunk/arch/blackfin/mach-bf548/boards/cm_bf548.c index 0350eacec21b..212b9e0a08c8 100644 --- a/trunk/arch/blackfin/mach-bf548/boards/cm_bf548.c +++ b/trunk/arch/blackfin/mach-bf548/boards/cm_bf548.c @@ -134,14 +134,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -182,14 +177,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -246,14 +236,9 @@ static struct resource bfin_uart2_resources[] = { .end = UART2_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART2_TX, - .end = IRQ_UART2_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART2_RX, - .end = IRQ_UART2_RX, + .end = IRQ_UART2_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -294,14 +279,9 @@ static struct resource bfin_uart3_resources[] = { .end = UART3_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART3_TX, - .end = IRQ_UART3_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART3_RX, - .end = IRQ_UART3_RX, + .end = IRQ_UART3_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf548/boards/ezkit.c b/trunk/arch/blackfin/mach-bf548/boards/ezkit.c index bb868ac0fe2d..cd9cbb68de69 100644 --- a/trunk/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/trunk/arch/blackfin/mach-bf548/boards/ezkit.c @@ -240,14 +240,9 @@ static struct resource bfin_uart0_resources[] = { .end = UART0_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART0_TX, - .end = IRQ_UART0_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART0_RX, - .end = IRQ_UART0_RX, + .end = IRQ_UART0_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -288,14 +283,9 @@ static struct resource bfin_uart1_resources[] = { .end = UART1_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART1_TX, - .end = IRQ_UART1_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART1_RX, - .end = IRQ_UART1_RX, + .end = IRQ_UART1_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -352,14 +342,9 @@ static struct resource bfin_uart2_resources[] = { .end = UART2_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART2_TX, - .end = IRQ_UART2_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART2_RX, - .end = IRQ_UART2_RX, + .end = IRQ_UART2_RX+1, .flags = IORESOURCE_IRQ, }, { @@ -400,14 +385,9 @@ static struct resource bfin_uart3_resources[] = { .end = UART3_RBR+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART3_TX, - .end = IRQ_UART3_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART3_RX, - .end = IRQ_UART3_RX, + .end = IRQ_UART3_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf561/boards/acvilon.c b/trunk/arch/blackfin/mach-bf561/boards/acvilon.c index b1b7339b6ba7..972e1347c6bc 100644 --- a/trunk/arch/blackfin/mach-bf561/boards/acvilon.c +++ b/trunk/arch/blackfin/mach-bf561/boards/acvilon.c @@ -202,14 +202,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL + 2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART_TX, - .end = IRQ_UART_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART_RX, - .end = IRQ_UART_RX, + .end = IRQ_UART_RX + 1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf561/boards/cm_bf561.c b/trunk/arch/blackfin/mach-bf561/boards/cm_bf561.c index c017cf07ed4e..c1b72f2d6354 100644 --- a/trunk/arch/blackfin/mach-bf561/boards/cm_bf561.c +++ b/trunk/arch/blackfin/mach-bf561/boards/cm_bf561.c @@ -276,14 +276,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART_TX, - .end = IRQ_UART_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART_RX, - .end = IRQ_UART_RX, + .end = IRQ_UART_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf561/boards/ezkit.c b/trunk/arch/blackfin/mach-bf561/boards/ezkit.c index 27f22ed381d9..9490dc800ca5 100644 --- a/trunk/arch/blackfin/mach-bf561/boards/ezkit.c +++ b/trunk/arch/blackfin/mach-bf561/boards/ezkit.c @@ -171,14 +171,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART_TX, - .end = IRQ_UART_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART_RX, - .end = IRQ_UART_RX, + .end = IRQ_UART_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/blackfin/mach-bf561/boards/tepla.c b/trunk/arch/blackfin/mach-bf561/boards/tepla.c index 1a57bc986aad..bb056e60f6ed 100644 --- a/trunk/arch/blackfin/mach-bf561/boards/tepla.c +++ b/trunk/arch/blackfin/mach-bf561/boards/tepla.c @@ -50,14 +50,9 @@ static struct resource bfin_uart0_resources[] = { .end = BFIN_UART_GCTL+2, .flags = IORESOURCE_MEM, }, - { - .start = IRQ_UART_TX, - .end = IRQ_UART_TX, - .flags = IORESOURCE_IRQ, - }, { .start = IRQ_UART_RX, - .end = IRQ_UART_RX, + .end = IRQ_UART_RX+1, .flags = IORESOURCE_IRQ, }, { diff --git a/trunk/arch/mips/cavium-octeon/flash_setup.c b/trunk/arch/mips/cavium-octeon/flash_setup.c index 0a430e06f5e5..975c20327bb1 100644 --- a/trunk/arch/mips/cavium-octeon/flash_setup.c +++ b/trunk/arch/mips/cavium-octeon/flash_setup.c @@ -17,6 +17,8 @@ static struct map_info flash_map; static struct mtd_info *mymtd; +static int nr_parts; +static struct mtd_partition *parts; static const char *part_probe_types[] = { "cmdlinepart", #ifdef CONFIG_MTD_REDBOOT_PARTS @@ -59,8 +61,11 @@ static int __init flash_init(void) mymtd = do_map_probe("cfi_probe", &flash_map); if (mymtd) { mymtd->owner = THIS_MODULE; - mtd_device_parse_register(mymtd, part_probe_types, - 0, NULL, 0); + + nr_parts = parse_mtd_partitions(mymtd, + part_probe_types, + &parts, 0); + mtd_device_register(mymtd, parts, nr_parts); } else { pr_err("Failed to register MTD device for flash\n"); } diff --git a/trunk/arch/mips/cavium-octeon/smp.c b/trunk/arch/mips/cavium-octeon/smp.c index efcfff4d4627..8b606423bbd7 100644 --- a/trunk/arch/mips/cavium-octeon/smp.c +++ b/trunk/arch/mips/cavium-octeon/smp.c @@ -207,9 +207,8 @@ void octeon_prepare_cpus(unsigned int max_cpus) * the other bits alone. */ cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffff); - if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, - IRQF_PERCPU | IRQF_NO_THREAD, "SMP-IPI", - mailbox_interrupt)) { + if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_DISABLED, + "SMP-IPI", mailbox_interrupt)) { panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); } } diff --git a/trunk/arch/mips/emma/common/prom.c b/trunk/arch/mips/emma/common/prom.c index cae42259d6da..708f08761406 100644 --- a/trunk/arch/mips/emma/common/prom.c +++ b/trunk/arch/mips/emma/common/prom.c @@ -50,7 +50,7 @@ void __init prom_init(void) /* arg[0] is "g", the rest is boot parameters */ for (i = 1; i < argc; i++) { - if (strlen(arcs_cmdline) + strlen(arg[i]) + 1 + if (strlen(arcs_cmdline) + strlen(arg[i] + 1) >= sizeof(arcs_cmdline)) break; strcat(arcs_cmdline, arg[i]); diff --git a/trunk/arch/mips/include/asm/mach-bcm47xx/gpio.h b/trunk/arch/mips/include/asm/mach-bcm47xx/gpio.h index 2ef17e8df403..76961cabeedf 100644 --- a/trunk/arch/mips/include/asm/mach-bcm47xx/gpio.h +++ b/trunk/arch/mips/include/asm/mach-bcm47xx/gpio.h @@ -36,8 +36,6 @@ static inline int gpio_get_value(unsigned gpio) return -EINVAL; } -#define gpio_get_value_cansleep gpio_get_value - static inline void gpio_set_value(unsigned gpio, int value) { switch (bcm47xx_bus_type) { @@ -56,19 +54,6 @@ static inline void gpio_set_value(unsigned gpio, int value) } } -#define gpio_set_value_cansleep gpio_set_value - -static inline int gpio_cansleep(unsigned gpio) -{ - return 0; -} - -static inline int gpio_is_valid(unsigned gpio) -{ - return gpio < (BCM47XX_EXTIF_GPIO_LINES + BCM47XX_CHIPCO_GPIO_LINES); -} - - static inline int gpio_direction_input(unsigned gpio) { switch (bcm47xx_bus_type) { @@ -152,4 +137,7 @@ static inline int gpio_polarity(unsigned gpio, int value) } +/* cansleep wrappers */ +#include + #endif /* __BCM47XX_GPIO_H */ diff --git a/trunk/arch/mips/include/asm/unistd.h b/trunk/arch/mips/include/asm/unistd.h index d8dad5340ea3..ecea7871dec2 100644 --- a/trunk/arch/mips/include/asm/unistd.h +++ b/trunk/arch/mips/include/asm/unistd.h @@ -365,18 +365,16 @@ #define __NR_syncfs (__NR_Linux + 342) #define __NR_sendmmsg (__NR_Linux + 343) #define __NR_setns (__NR_Linux + 344) -#define __NR_process_vm_readv (__NR_Linux + 345) -#define __NR_process_vm_writev (__NR_Linux + 346) /* * Offset of the last Linux o32 flavoured syscall */ -#define __NR_Linux_syscalls 346 +#define __NR_Linux_syscalls 344 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ #define __NR_O32_Linux 4000 -#define __NR_O32_Linux_syscalls 346 +#define __NR_O32_Linux_syscalls 344 #if _MIPS_SIM == _MIPS_SIM_ABI64 @@ -688,18 +686,16 @@ #define __NR_syncfs (__NR_Linux + 301) #define __NR_sendmmsg (__NR_Linux + 302) #define __NR_setns (__NR_Linux + 303) -#define __NR_process_vm_readv (__NR_Linux + 304) -#define __NR_process_vm_writev (__NR_Linux + 305) /* * Offset of the last Linux 64-bit flavoured syscall */ -#define __NR_Linux_syscalls 305 +#define __NR_Linux_syscalls 303 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ #define __NR_64_Linux 5000 -#define __NR_64_Linux_syscalls 305 +#define __NR_64_Linux_syscalls 303 #if _MIPS_SIM == _MIPS_SIM_NABI32 @@ -1016,18 +1012,16 @@ #define __NR_syncfs (__NR_Linux + 306) #define __NR_sendmmsg (__NR_Linux + 307) #define __NR_setns (__NR_Linux + 308) -#define __NR_process_vm_readv (__NR_Linux + 309) -#define __NR_process_vm_writev (__NR_Linux + 310) /* * Offset of the last N32 flavoured syscall */ -#define __NR_Linux_syscalls 310 +#define __NR_Linux_syscalls 308 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ #define __NR_N32_Linux 6000 -#define __NR_N32_Linux_syscalls 310 +#define __NR_N32_Linux_syscalls 308 #ifdef __KERNEL__ diff --git a/trunk/arch/mips/kernel/cevt-r4k.c b/trunk/arch/mips/kernel/cevt-r4k.c index e2d8e199be32..98c5a9737c14 100644 --- a/trunk/arch/mips/kernel/cevt-r4k.c +++ b/trunk/arch/mips/kernel/cevt-r4k.c @@ -103,10 +103,19 @@ static int c0_compare_int_pending(void) /* * Compare interrupt can be routed and latched outside the core, - * so wait up to worst case number of cycle counter ticks for timer interrupt - * changes to propagate to the cause register. + * so a single execution hazard barrier may not be enough to give + * it time to clear as seen in the Cause register. 4 time the + * pipeline depth seems reasonably conservative, and empirically + * works better in configurations with high CPU/bus clock ratios. */ -#define COMPARE_INT_SEEN_TICKS 50 + +#define compare_change_hazard() \ + do { \ + irq_disable_hazard(); \ + irq_disable_hazard(); \ + irq_disable_hazard(); \ + irq_disable_hazard(); \ + } while (0) int c0_compare_int_usable(void) { @@ -117,12 +126,8 @@ int c0_compare_int_usable(void) * IP7 already pending? Try to clear it by acking the timer. */ if (c0_compare_int_pending()) { - cnt = read_c0_count(); - write_c0_compare(cnt); - back_to_back_c0_hazard(); - while (read_c0_count() < (cnt + COMPARE_INT_SEEN_TICKS)) - if (!c0_compare_int_pending()) - break; + write_c0_compare(read_c0_count()); + compare_change_hazard(); if (c0_compare_int_pending()) return 0; } @@ -131,7 +136,7 @@ int c0_compare_int_usable(void) cnt = read_c0_count(); cnt += delta; write_c0_compare(cnt); - back_to_back_c0_hazard(); + compare_change_hazard(); if ((int)(read_c0_count() - cnt) < 0) break; /* increase delta if the timer was already expired */ @@ -140,17 +145,12 @@ int c0_compare_int_usable(void) while ((int)(read_c0_count() - cnt) <= 0) ; /* Wait for expiry */ - while (read_c0_count() < (cnt + COMPARE_INT_SEEN_TICKS)) - if (c0_compare_int_pending()) - break; + compare_change_hazard(); if (!c0_compare_int_pending()) return 0; - cnt = read_c0_count(); - write_c0_compare(cnt); - back_to_back_c0_hazard(); - while (read_c0_count() < (cnt + COMPARE_INT_SEEN_TICKS)) - if (!c0_compare_int_pending()) - break; + + write_c0_compare(read_c0_count()); + compare_change_hazard(); if (c0_compare_int_pending()) return 0; diff --git a/trunk/arch/mips/kernel/cpufreq/loongson2_clock.c b/trunk/arch/mips/kernel/cpufreq/loongson2_clock.c index 5426779d9fdb..cefc6e259baf 100644 --- a/trunk/arch/mips/kernel/cpufreq/loongson2_clock.c +++ b/trunk/arch/mips/kernel/cpufreq/loongson2_clock.c @@ -7,7 +7,6 @@ * for more details. */ -#include #include #include diff --git a/trunk/arch/mips/kernel/scall32-o32.S b/trunk/arch/mips/kernel/scall32-o32.S index a632bc144efa..47920657968d 100644 --- a/trunk/arch/mips/kernel/scall32-o32.S +++ b/trunk/arch/mips/kernel/scall32-o32.S @@ -591,8 +591,6 @@ einval: li v0, -ENOSYS sys sys_syncfs 1 sys sys_sendmmsg 4 sys sys_setns 2 - sys sys_process_vm_readv 6 /* 4345 */ - sys sys_process_vm_writev 6 .endm /* We pre-compute the number of _instruction_ bytes needed to diff --git a/trunk/arch/mips/kernel/scall64-64.S b/trunk/arch/mips/kernel/scall64-64.S index 3b5a5e9ae49c..fb7334bea731 100644 --- a/trunk/arch/mips/kernel/scall64-64.S +++ b/trunk/arch/mips/kernel/scall64-64.S @@ -430,6 +430,4 @@ sys_call_table: PTR sys_syncfs PTR sys_sendmmsg PTR sys_setns - PTR sys_process_vm_readv - PTR sys_process_vm_writev /* 5305 */ .size sys_call_table,.-sys_call_table diff --git a/trunk/arch/mips/kernel/scall64-n32.S b/trunk/arch/mips/kernel/scall64-n32.S index 6be6f7020923..6de1f598346e 100644 --- a/trunk/arch/mips/kernel/scall64-n32.S +++ b/trunk/arch/mips/kernel/scall64-n32.S @@ -430,6 +430,4 @@ EXPORT(sysn32_call_table) PTR sys_syncfs PTR compat_sys_sendmmsg PTR sys_setns - PTR compat_sys_process_vm_readv - PTR compat_sys_process_vm_writev /* 6310 */ .size sysn32_call_table,.-sysn32_call_table diff --git a/trunk/arch/mips/kernel/scall64-o32.S b/trunk/arch/mips/kernel/scall64-o32.S index 54228553691d..1d813169e453 100644 --- a/trunk/arch/mips/kernel/scall64-o32.S +++ b/trunk/arch/mips/kernel/scall64-o32.S @@ -548,6 +548,4 @@ sys_call_table: PTR sys_syncfs PTR compat_sys_sendmmsg PTR sys_setns - PTR compat_sys_process_vm_readv /* 4345 */ - PTR compat_sys_process_vm_writev .size sys_call_table,.-sys_call_table diff --git a/trunk/arch/mips/kernel/traps.c b/trunk/arch/mips/kernel/traps.c index 5c8a49d55054..261ccbc07740 100644 --- a/trunk/arch/mips/kernel/traps.c +++ b/trunk/arch/mips/kernel/traps.c @@ -1596,8 +1596,7 @@ void __cpuinit per_cpu_trap_init(void) } #endif /* CONFIG_MIPS_MT_SMTC */ - if (!cpu_data[cpu].asid_cache) - cpu_data[cpu].asid_cache = ASID_FIRST_VERSION; + cpu_data[cpu].asid_cache = ASID_FIRST_VERSION; atomic_inc(&init_mm.mm_count); current->active_mm = &init_mm; diff --git a/trunk/arch/mips/lantiq/clk.c b/trunk/arch/mips/lantiq/clk.c index 77ed70fc2fe5..7e9c0ffc11a5 100644 --- a/trunk/arch/mips/lantiq/clk.c +++ b/trunk/arch/mips/lantiq/clk.c @@ -7,7 +7,7 @@ * Copyright (C) 2010 John Crispin */ #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/devices.c b/trunk/arch/mips/lantiq/devices.c index de1cb2bcd79a..44a36771c819 100644 --- a/trunk/arch/mips/lantiq/devices.c +++ b/trunk/arch/mips/lantiq/devices.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/prom.c b/trunk/arch/mips/lantiq/prom.c index e34fcfd0d5ca..56ba007bf1e5 100644 --- a/trunk/arch/mips/lantiq/prom.c +++ b/trunk/arch/mips/lantiq/prom.c @@ -6,7 +6,7 @@ * Copyright (C) 2010 John Crispin */ -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/setup.c b/trunk/arch/mips/lantiq/setup.c index 1ff6c9d6cb93..9b8af77ed0f9 100644 --- a/trunk/arch/mips/lantiq/setup.c +++ b/trunk/arch/mips/lantiq/setup.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/clk-ase.c b/trunk/arch/mips/lantiq/xway/clk-ase.c index 652258309c9c..22d823acd536 100644 --- a/trunk/arch/mips/lantiq/xway/clk-ase.c +++ b/trunk/arch/mips/lantiq/xway/clk-ase.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include diff --git a/trunk/arch/mips/lantiq/xway/clk-xway.c b/trunk/arch/mips/lantiq/xway/clk-xway.c index 696b1a3e0642..ddd39593c581 100644 --- a/trunk/arch/mips/lantiq/xway/clk-xway.c +++ b/trunk/arch/mips/lantiq/xway/clk-xway.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include diff --git a/trunk/arch/mips/lantiq/xway/devices.c b/trunk/arch/mips/lantiq/xway/devices.c index d614aa7ff07f..d0e32ab2ea07 100644 --- a/trunk/arch/mips/lantiq/xway/devices.c +++ b/trunk/arch/mips/lantiq/xway/devices.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/dma.c b/trunk/arch/mips/lantiq/xway/dma.c index cbb6ae5747b9..4278a459d6c4 100644 --- a/trunk/arch/mips/lantiq/xway/dma.c +++ b/trunk/arch/mips/lantiq/xway/dma.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/mips/lantiq/xway/gpio.c b/trunk/arch/mips/lantiq/xway/gpio.c index d2fa98f3c78d..a321451a5455 100644 --- a/trunk/arch/mips/lantiq/xway/gpio.c +++ b/trunk/arch/mips/lantiq/xway/gpio.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/gpio_ebu.c b/trunk/arch/mips/lantiq/xway/gpio_ebu.c index b91c7f17f10f..a479355abdb9 100644 --- a/trunk/arch/mips/lantiq/xway/gpio_ebu.c +++ b/trunk/arch/mips/lantiq/xway/gpio_ebu.c @@ -7,7 +7,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/gpio_stp.c b/trunk/arch/mips/lantiq/xway/gpio_stp.c index ff9991cddeaa..67d59d690340 100644 --- a/trunk/arch/mips/lantiq/xway/gpio_stp.c +++ b/trunk/arch/mips/lantiq/xway/gpio_stp.c @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/prom-ase.c b/trunk/arch/mips/lantiq/xway/prom-ase.c index ae4959ae865c..abe49f4db57f 100644 --- a/trunk/arch/mips/lantiq/xway/prom-ase.c +++ b/trunk/arch/mips/lantiq/xway/prom-ase.c @@ -6,7 +6,7 @@ * Copyright (C) 2010 John Crispin */ -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/prom-xway.c b/trunk/arch/mips/lantiq/xway/prom-xway.c index 2228133ca356..1686692ac24d 100644 --- a/trunk/arch/mips/lantiq/xway/prom-xway.c +++ b/trunk/arch/mips/lantiq/xway/prom-xway.c @@ -6,7 +6,7 @@ * Copyright (C) 2010 John Crispin */ -#include +#include #include #include #include diff --git a/trunk/arch/mips/lantiq/xway/reset.c b/trunk/arch/mips/lantiq/xway/reset.c index 3d41f0bb5bf7..a1be36d0e490 100644 --- a/trunk/arch/mips/lantiq/xway/reset.c +++ b/trunk/arch/mips/lantiq/xway/reset.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include diff --git a/trunk/arch/mips/nxp/pnx8550/common/pci.c b/trunk/arch/mips/nxp/pnx8550/common/pci.c new file mode 100644 index 000000000000..98e86ddb86cc --- /dev/null +++ b/trunk/arch/mips/nxp/pnx8550/common/pci.c @@ -0,0 +1,134 @@ +/* + * + * BRIEF MODULE DESCRIPTION + * + * Author: source@mvista.com + * + * This program is free software; you can distribute it and/or modify it + * under the terms of the GNU General Public License (Version 2) as + * published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. + */ +#include +#include +#include +#include + +#include +#include +#include + +static struct resource pci_io_resource = { + .start = PNX8550_PCIIO + 0x1000, /* reserve regacy I/O space */ + .end = PNX8550_PCIIO + PNX8550_PCIIO_SIZE, + .name = "pci IO space", + .flags = IORESOURCE_IO +}; + +static struct resource pci_mem_resource = { + .start = PNX8550_PCIMEM, + .end = PNX8550_PCIMEM + PNX8550_PCIMEM_SIZE - 1, + .name = "pci memory space", + .flags = IORESOURCE_MEM +}; + +extern struct pci_ops pnx8550_pci_ops; + +static struct pci_controller pnx8550_controller = { + .pci_ops = &pnx8550_pci_ops, + .io_map_base = PNX8550_PORT_BASE, + .io_resource = &pci_io_resource, + .mem_resource = &pci_mem_resource, +}; + +/* Return the total size of DRAM-memory, (RANK0 + RANK1) */ +static inline unsigned long get_system_mem_size(void) +{ + /* Read IP2031_RANK0_ADDR_LO */ + unsigned long dram_r0_lo = inl(PCI_BASE | 0x65010); + /* Read IP2031_RANK1_ADDR_HI */ + unsigned long dram_r1_hi = inl(PCI_BASE | 0x65018); + + return dram_r1_hi - dram_r0_lo + 1; +} + +static int __init pnx8550_pci_setup(void) +{ + int pci_mem_code; + int mem_size = get_system_mem_size() >> 20; + + /* Clear the Global 2 Register, PCI Inta Output Enable Registers + Bit 1:Enable DAC Powerdown + -> 0:DACs are enabled and are working normally + 1:DACs are powerdown + Bit 0:Enable of PCI inta output + -> 0 = Disable PCI inta output + 1 = Enable PCI inta output + */ + PNX8550_GLB2_ENAB_INTA_O = 0; + + /* Calc the PCI mem size code */ + if (mem_size >= 128) + pci_mem_code = SIZE_128M; + else if (mem_size >= 64) + pci_mem_code = SIZE_64M; + else if (mem_size >= 32) + pci_mem_code = SIZE_32M; + else + pci_mem_code = SIZE_16M; + + /* Set PCI_XIO registers */ + outl(pci_mem_resource.start, PCI_BASE | PCI_BASE1_LO); + outl(pci_mem_resource.end + 1, PCI_BASE | PCI_BASE1_HI); + outl(pci_io_resource.start, PCI_BASE | PCI_BASE2_LO); + outl(pci_io_resource.end, PCI_BASE | PCI_BASE2_HI); + + /* Send memory transaction via PCI_BASE2 */ + outl(0x00000001, PCI_BASE | PCI_IO); + + /* Unlock the setup register */ + outl(0xca, PCI_BASE | PCI_UNLOCKREG); + + /* + * BAR0 of PNX8550 (pci base 10) must be zero in order for ide + * to work, and in order for bus_to_baddr to work without any + * hacks. + */ + outl(0x00000000, PCI_BASE | PCI_BASE10); + + /* + *These two bars are set by default or the boot code. + * However, it's safer to set them here so we're not boot + * code dependent. + */ + outl(0x1be00000, PCI_BASE | PCI_BASE14); /* PNX MMIO */ + outl(PNX8550_NAND_BASE_ADDR, PCI_BASE | PCI_BASE18); /* XIO */ + + outl(PCI_EN_TA | + PCI_EN_PCI2MMI | + PCI_EN_XIO | + PCI_SETUP_BASE18_SIZE(SIZE_32M) | + PCI_SETUP_BASE18_EN | + PCI_SETUP_BASE14_EN | + PCI_SETUP_BASE10_PREF | + PCI_SETUP_BASE10_SIZE(pci_mem_code) | + PCI_SETUP_CFGMANAGE_EN | + PCI_SETUP_PCIARB_EN, + PCI_BASE | + PCI_SETUP); /* PCI_SETUP */ + outl(0x00000000, PCI_BASE | PCI_CTRL); /* PCI_CONTROL */ + + register_pci_controller(&pnx8550_controller); + + return 0; +} + +arch_initcall(pnx8550_pci_setup); diff --git a/trunk/arch/mips/nxp/pnx8550/common/setup.c b/trunk/arch/mips/nxp/pnx8550/common/setup.c new file mode 100644 index 000000000000..71adac323323 --- /dev/null +++ b/trunk/arch/mips/nxp/pnx8550/common/setup.c @@ -0,0 +1,143 @@ +/* + * + * 2.6 port, Embedded Alley Solutions, Inc + * + * Based on Per Hallsmark, per.hallsmark@mvista.com + * + * This program is free software; you can distribute it and/or modify it + * under the terms of the GNU General Public License (Version 2) as + * published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +extern void __init board_setup(void); +extern void pnx8550_machine_restart(char *); +extern void pnx8550_machine_halt(void); +extern void pnx8550_machine_power_off(void); +extern struct resource ioport_resource; +extern struct resource iomem_resource; +extern char *prom_getcmdline(void); + +struct resource standard_io_resources[] = { + { + .start = 0x00, + .end = 0x1f, + .name = "dma1", + .flags = IORESOURCE_BUSY + }, { + .start = 0x40, + .end = 0x5f, + .name = "timer", + .flags = IORESOURCE_BUSY + }, { + .start = 0x80, + .end = 0x8f, + .name = "dma page reg", + .flags = IORESOURCE_BUSY + }, { + .start = 0xc0, + .end = 0xdf, + .name = "dma2", + .flags = IORESOURCE_BUSY + }, +}; + +#define STANDARD_IO_RESOURCES ARRAY_SIZE(standard_io_resources) + +extern struct resource pci_io_resource; +extern struct resource pci_mem_resource; + +/* Return the total size of DRAM-memory, (RANK0 + RANK1) */ +unsigned long get_system_mem_size(void) +{ + /* Read IP2031_RANK0_ADDR_LO */ + unsigned long dram_r0_lo = inl(PCI_BASE | 0x65010); + /* Read IP2031_RANK1_ADDR_HI */ + unsigned long dram_r1_hi = inl(PCI_BASE | 0x65018); + + return dram_r1_hi - dram_r0_lo + 1; +} + +int pnx8550_console_port = -1; + +void __init plat_mem_setup(void) +{ + int i; + char* argptr; + + board_setup(); /* board specific setup */ + + _machine_restart = pnx8550_machine_restart; + _machine_halt = pnx8550_machine_halt; + pm_power_off = pnx8550_machine_power_off; + + /* Clear the Global 2 Register, PCI Inta Output Enable Registers + Bit 1:Enable DAC Powerdown + -> 0:DACs are enabled and are working normally + 1:DACs are powerdown + Bit 0:Enable of PCI inta output + -> 0 = Disable PCI inta output + 1 = Enable PCI inta output + */ + PNX8550_GLB2_ENAB_INTA_O = 0; + + /* IO/MEM resources. */ + set_io_port_base(PNX8550_PORT_BASE); + ioport_resource.start = 0; + ioport_resource.end = ~0; + iomem_resource.start = 0; + iomem_resource.end = ~0; + + /* Request I/O space for devices on this board */ + for (i = 0; i < STANDARD_IO_RESOURCES; i++) + request_resource(&ioport_resource, standard_io_resources + i); + + /* Place the Mode Control bit for GPIO pin 16 in primary function */ + /* Pin 16 is used by UART1, UA1_TX */ + outl((PNX8550_GPIO_MODE_PRIMOP << PNX8550_GPIO_MC_16_BIT) | + (PNX8550_GPIO_MODE_PRIMOP << PNX8550_GPIO_MC_17_BIT), + PNX8550_GPIO_MC1); + + argptr = prom_getcmdline(); + if ((argptr = strstr(argptr, "console=ttyS")) != NULL) { + argptr += strlen("console=ttyS"); + pnx8550_console_port = *argptr == '0' ? 0 : 1; + + /* We must initialize the UART (console) before early printk */ + /* Set LCR to 8-bit and BAUD to 38400 (no 5) */ + ip3106_lcr(UART_BASE, pnx8550_console_port) = + PNX8XXX_UART_LCR_8BIT; + ip3106_baud(UART_BASE, pnx8550_console_port) = 5; + } +} diff --git a/trunk/arch/mips/pci/pci-alchemy.c b/trunk/arch/mips/pci/pci-alchemy.c index b5ce041cdafb..4ee57104e47b 100644 --- a/trunk/arch/mips/pci/pci-alchemy.c +++ b/trunk/arch/mips/pci/pci-alchemy.c @@ -7,7 +7,6 @@ * Support for all devices (greater than 16) added by David Gathright. */ -#include #include #include #include diff --git a/trunk/arch/mips/pci/pci-lantiq.c b/trunk/arch/mips/pci/pci-lantiq.c index be1e1afe12c3..8656388b34bd 100644 --- a/trunk/arch/mips/pci/pci-lantiq.c +++ b/trunk/arch/mips/pci/pci-lantiq.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/mips/pmc-sierra/yosemite/prom.c b/trunk/arch/mips/pmc-sierra/yosemite/prom.c index dcc926e06fce..cf4c868715ac 100644 --- a/trunk/arch/mips/pmc-sierra/yosemite/prom.c +++ b/trunk/arch/mips/pmc-sierra/yosemite/prom.c @@ -102,7 +102,7 @@ void __init prom_init(void) /* Get the boot parameters */ for (i = 1; i < argc; i++) { - if (strlen(arcs_cmdline) + strlen(arg[i]) + 1 >= + if (strlen(arcs_cmdline) + strlen(arg[i] + 1) >= sizeof(arcs_cmdline)) break; diff --git a/trunk/arch/powerpc/sysdev/fsl_rio.c b/trunk/arch/powerpc/sysdev/fsl_rio.c index 22ffccd8bef5..de170fd5ba4e 100644 --- a/trunk/arch/powerpc/sysdev/fsl_rio.c +++ b/trunk/arch/powerpc/sysdev/fsl_rio.c @@ -23,7 +23,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/s390/include/asm/unistd.h b/trunk/arch/s390/include/asm/unistd.h index 404bdb9671b4..58de4c91c333 100644 --- a/trunk/arch/s390/include/asm/unistd.h +++ b/trunk/arch/s390/include/asm/unistd.h @@ -277,7 +277,9 @@ #define __NR_clock_adjtime 337 #define __NR_syncfs 338 #define __NR_setns 339 -#define NR_syscalls 340 +#define __NR_process_vm_readv 340 +#define __NR_process_vm_writev 341 +#define NR_syscalls 342 /* * There are some system calls that are not present on 64 bit, some diff --git a/trunk/arch/s390/kernel/compat_wrapper.S b/trunk/arch/s390/kernel/compat_wrapper.S index 5006a1d9f5d0..18c51df9fe06 100644 --- a/trunk/arch/s390/kernel/compat_wrapper.S +++ b/trunk/arch/s390/kernel/compat_wrapper.S @@ -1627,3 +1627,23 @@ ENTRY(sys_setns_wrapper) lgfr %r2,%r2 # int lgfr %r3,%r3 # int jg sys_setns + +ENTRY(compat_sys_process_vm_readv_wrapper) + lgfr %r2,%r2 # compat_pid_t + llgtr %r3,%r3 # struct compat_iovec __user * + llgfr %r4,%r4 # unsigned long + llgtr %r5,%r5 # struct compat_iovec __user * + llgfr %r6,%r6 # unsigned long + llgf %r0,164(%r15) # unsigned long + stg %r0,160(%r15) + jg sys_process_vm_readv + +ENTRY(compat_sys_process_vm_writev_wrapper) + lgfr %r2,%r2 # compat_pid_t + llgtr %r3,%r3 # struct compat_iovec __user * + llgfr %r4,%r4 # unsigned long + llgtr %r5,%r5 # struct compat_iovec __user * + llgfr %r6,%r6 # unsigned long + llgf %r0,164(%r15) # unsigned long + stg %r0,160(%r15) + jg sys_process_vm_writev diff --git a/trunk/arch/s390/kernel/syscalls.S b/trunk/arch/s390/kernel/syscalls.S index 73eb08c874fb..bcab2f04ba58 100644 --- a/trunk/arch/s390/kernel/syscalls.S +++ b/trunk/arch/s390/kernel/syscalls.S @@ -348,3 +348,5 @@ SYSCALL(sys_open_by_handle_at,sys_open_by_handle_at,compat_sys_open_by_handle_at SYSCALL(sys_clock_adjtime,sys_clock_adjtime,compat_sys_clock_adjtime_wrapper) SYSCALL(sys_syncfs,sys_syncfs,sys_syncfs_wrapper) SYSCALL(sys_setns,sys_setns,sys_setns_wrapper) +SYSCALL(sys_process_vm_readv,sys_process_vm_readv,compat_sys_process_vm_readv_wrapper) /* 340 */ +SYSCALL(sys_process_vm_writev,sys_process_vm_writev,compat_sys_process_vm_writev_wrapper) diff --git a/trunk/drivers/firmware/dmi_scan.c b/trunk/drivers/firmware/dmi_scan.c index 153980be4ee6..bcb1126e3d00 100644 --- a/trunk/drivers/firmware/dmi_scan.c +++ b/trunk/drivers/firmware/dmi_scan.c @@ -585,12 +585,14 @@ int dmi_name_in_serial(const char *str) } /** - * dmi_name_in_vendors - Check if string is in the DMI system or board vendor name + * dmi_name_in_vendors - Check if string is anywhere in the DMI vendor information. * @str: Case sensitive Name */ int dmi_name_in_vendors(const char *str) { - static int fields[] = { DMI_SYS_VENDOR, DMI_BOARD_VENDOR, DMI_NONE }; + static int fields[] = { DMI_BIOS_VENDOR, DMI_BIOS_VERSION, DMI_SYS_VENDOR, + DMI_PRODUCT_NAME, DMI_PRODUCT_VERSION, DMI_BOARD_VENDOR, + DMI_BOARD_NAME, DMI_BOARD_VERSION, DMI_NONE }; int i; for (i = 0; fields[i] != DMI_NONE; i++) { int f = fields[i]; diff --git a/trunk/drivers/gpio/gpio-omap.c b/trunk/drivers/gpio/gpio-omap.c index 0b0562979171..0e49d87f6c60 100644 --- a/trunk/drivers/gpio/gpio-omap.c +++ b/trunk/drivers/gpio/gpio-omap.c @@ -148,17 +148,13 @@ static int _get_gpio_dataout(struct gpio_bank *bank, int gpio) return (__raw_readl(reg) & GPIO_BIT(bank, gpio)) != 0; } -static inline void _gpio_rmw(void __iomem *base, u32 reg, u32 mask, bool set) -{ - int l = __raw_readl(base + reg); - - if (set) - l |= mask; - else - l &= ~mask; - - __raw_writel(l, base + reg); -} +#define MOD_REG_BIT(reg, bit_mask, set) \ +do { \ + int l = __raw_readl(base + reg); \ + if (set) l |= bit_mask; \ + else l &= ~bit_mask; \ + __raw_writel(l, base + reg); \ +} while(0) /** * _set_gpio_debounce - low level gpio debounce time @@ -214,28 +210,28 @@ static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio, u32 gpio_bit = 1 << gpio; if (cpu_is_omap44xx()) { - _gpio_rmw(base, OMAP4_GPIO_LEVELDETECT0, gpio_bit, - trigger & IRQ_TYPE_LEVEL_LOW); - _gpio_rmw(base, OMAP4_GPIO_LEVELDETECT1, gpio_bit, - trigger & IRQ_TYPE_LEVEL_HIGH); - _gpio_rmw(base, OMAP4_GPIO_RISINGDETECT, gpio_bit, - trigger & IRQ_TYPE_EDGE_RISING); - _gpio_rmw(base, OMAP4_GPIO_FALLINGDETECT, gpio_bit, - trigger & IRQ_TYPE_EDGE_FALLING); + MOD_REG_BIT(OMAP4_GPIO_LEVELDETECT0, gpio_bit, + trigger & IRQ_TYPE_LEVEL_LOW); + MOD_REG_BIT(OMAP4_GPIO_LEVELDETECT1, gpio_bit, + trigger & IRQ_TYPE_LEVEL_HIGH); + MOD_REG_BIT(OMAP4_GPIO_RISINGDETECT, gpio_bit, + trigger & IRQ_TYPE_EDGE_RISING); + MOD_REG_BIT(OMAP4_GPIO_FALLINGDETECT, gpio_bit, + trigger & IRQ_TYPE_EDGE_FALLING); } else { - _gpio_rmw(base, OMAP24XX_GPIO_LEVELDETECT0, gpio_bit, - trigger & IRQ_TYPE_LEVEL_LOW); - _gpio_rmw(base, OMAP24XX_GPIO_LEVELDETECT1, gpio_bit, - trigger & IRQ_TYPE_LEVEL_HIGH); - _gpio_rmw(base, OMAP24XX_GPIO_RISINGDETECT, gpio_bit, - trigger & IRQ_TYPE_EDGE_RISING); - _gpio_rmw(base, OMAP24XX_GPIO_FALLINGDETECT, gpio_bit, - trigger & IRQ_TYPE_EDGE_FALLING); + MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT0, gpio_bit, + trigger & IRQ_TYPE_LEVEL_LOW); + MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT1, gpio_bit, + trigger & IRQ_TYPE_LEVEL_HIGH); + MOD_REG_BIT(OMAP24XX_GPIO_RISINGDETECT, gpio_bit, + trigger & IRQ_TYPE_EDGE_RISING); + MOD_REG_BIT(OMAP24XX_GPIO_FALLINGDETECT, gpio_bit, + trigger & IRQ_TYPE_EDGE_FALLING); } if (likely(!(bank->non_wakeup_gpios & gpio_bit))) { if (cpu_is_omap44xx()) { - _gpio_rmw(base, OMAP4_GPIO_IRQWAKEN0, gpio_bit, - trigger != 0); + MOD_REG_BIT(OMAP4_GPIO_IRQWAKEN0, gpio_bit, + trigger != 0); } else { /* * GPIO wakeup request can only be generated on edge @@ -1090,11 +1086,6 @@ omap_mpuio_alloc_gc(struct gpio_bank *bank, unsigned int irq_start, gc = irq_alloc_generic_chip("MPUIO", 1, irq_start, bank->base, handle_simple_irq); - if (!gc) { - dev_err(bank->dev, "Memory alloc failed for gc\n"); - return; - } - ct = gc->chip_types; /* NOTE: No ack required, reading IRQ status clears it. */ diff --git a/trunk/drivers/gpio/gpio-pca953x.c b/trunk/drivers/gpio/gpio-pca953x.c index 147df8ae79db..0550dcb85814 100644 --- a/trunk/drivers/gpio/gpio-pca953x.c +++ b/trunk/drivers/gpio/gpio-pca953x.c @@ -596,6 +596,9 @@ static int __devinit device_pca953x_init(struct pca953x_chip *chip, int invert) /* set platform specific polarity inversion */ ret = pca953x_write_reg(chip, PCA953X_INVERT, invert); + if (ret) + goto out; + return 0; out: return ret; } @@ -637,7 +640,7 @@ static int __devinit pca953x_probe(struct i2c_client *client, struct pca953x_platform_data *pdata; struct pca953x_chip *chip; int irq_base=0, invert=0; - int ret; + int ret = 0; chip = kzalloc(sizeof(struct pca953x_chip), GFP_KERNEL); if (chip == NULL) @@ -670,10 +673,10 @@ static int __devinit pca953x_probe(struct i2c_client *client, pca953x_setup_gpio(chip, id->driver_data & PCA_GPIO_MASK); if (chip->chip_type == PCA953X_TYPE) - ret = device_pca953x_init(chip, invert); + device_pca953x_init(chip, invert); + else if (chip->chip_type == PCA957X_TYPE) + device_pca957x_init(chip, invert); else - ret = device_pca957x_init(chip, invert); - if (ret) goto out_failed; ret = pca953x_irq_setup(chip, id, irq_base); diff --git a/trunk/drivers/gpu/drm/drm_irq.c b/trunk/drivers/gpu/drm/drm_irq.c index 44a5d0ad8b7c..68b756253f9f 100644 --- a/trunk/drivers/gpu/drm/drm_irq.c +++ b/trunk/drivers/gpu/drm/drm_irq.c @@ -110,7 +110,10 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc) /* Prevent vblank irq processing while disabling vblank irqs, * so no updates of timestamps or count can happen after we've * disabled. Needed to prevent races in case of delayed irq's. + * Disable preemption, so vblank_time_lock is held as short as + * possible, even under a kernel with PREEMPT_RT patches. */ + preempt_disable(); spin_lock_irqsave(&dev->vblank_time_lock, irqflags); dev->driver->disable_vblank(dev, crtc); @@ -161,6 +164,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc) clear_vblank_timestamps(dev, crtc); spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags); + preempt_enable(); } static void vblank_disable_fn(unsigned long arg) @@ -885,6 +889,10 @@ int drm_vblank_get(struct drm_device *dev, int crtc) spin_lock_irqsave(&dev->vbl_lock, irqflags); /* Going from 0->1 means we have to enable interrupts again */ if (atomic_add_return(1, &dev->vblank_refcount[crtc]) == 1) { + /* Disable preemption while holding vblank_time_lock. Do + * it explicitely to guard against PREEMPT_RT kernel. + */ + preempt_disable(); spin_lock_irqsave(&dev->vblank_time_lock, irqflags2); if (!dev->vblank_enabled[crtc]) { /* Enable vblank irqs under vblank_time_lock protection. @@ -904,6 +912,7 @@ int drm_vblank_get(struct drm_device *dev, int crtc) } } spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags2); + preempt_enable(); } else { if (!dev->vblank_enabled[crtc]) { atomic_dec(&dev->vblank_refcount[crtc]); diff --git a/trunk/drivers/gpu/drm/radeon/radeon_atombios.c b/trunk/drivers/gpu/drm/radeon/radeon_atombios.c index fecd705a1a5f..d2d179267af3 100644 --- a/trunk/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/trunk/drivers/gpu/drm/radeon/radeon_atombios.c @@ -85,18 +85,6 @@ static struct radeon_i2c_bus_rec radeon_lookup_i2c_gpio(struct radeon_device *rd for (i = 0; i < num_indices; i++) { gpio = &i2c_info->asGPIO_Info[i]; - /* r4xx mask is technically not used by the hw, so patch in the legacy mask bits */ - if ((rdev->family == CHIP_R420) || - (rdev->family == CHIP_R423) || - (rdev->family == CHIP_RV410)) { - if ((le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x0018) || - (le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x0019) || - (le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x001a)) { - gpio->ucClkMaskShift = 0x19; - gpio->ucDataMaskShift = 0x18; - } - } - /* some evergreen boards have bad data for this entry */ if (ASIC_IS_DCE4(rdev)) { if ((i == 7) && @@ -2008,14 +1996,14 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev) return state_index; /* last mode is usually default, array is low to high */ for (i = 0; i < num_modes; i++) { - rdev->pm.power_state[state_index].clock_info = - kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); - if (!rdev->pm.power_state[state_index].clock_info) - return state_index; - rdev->pm.power_state[state_index].num_clock_modes = 1; rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE; switch (frev) { case 1: + rdev->pm.power_state[state_index].clock_info = + kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); + if (!rdev->pm.power_state[state_index].clock_info) + return state_index; + rdev->pm.power_state[state_index].num_clock_modes = 1; rdev->pm.power_state[state_index].clock_info[0].mclk = le16_to_cpu(power_info->info.asPowerPlayInfo[i].usMemoryClock); rdev->pm.power_state[state_index].clock_info[0].sclk = @@ -2051,6 +2039,11 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev) state_index++; break; case 2: + rdev->pm.power_state[state_index].clock_info = + kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); + if (!rdev->pm.power_state[state_index].clock_info) + return state_index; + rdev->pm.power_state[state_index].num_clock_modes = 1; rdev->pm.power_state[state_index].clock_info[0].mclk = le32_to_cpu(power_info->info_2.asPowerPlayInfo[i].ulMemoryClock); rdev->pm.power_state[state_index].clock_info[0].sclk = @@ -2087,6 +2080,11 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev) state_index++; break; case 3: + rdev->pm.power_state[state_index].clock_info = + kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); + if (!rdev->pm.power_state[state_index].clock_info) + return state_index; + rdev->pm.power_state[state_index].num_clock_modes = 1; rdev->pm.power_state[state_index].clock_info[0].mclk = le32_to_cpu(power_info->info_3.asPowerPlayInfo[i].ulMemoryClock); rdev->pm.power_state[state_index].clock_info[0].sclk = diff --git a/trunk/drivers/gpu/vga/vgaarb.c b/trunk/drivers/gpu/vga/vgaarb.c index bdde899af72e..c72f1c0b5e63 100644 --- a/trunk/drivers/gpu/vga/vgaarb.c +++ b/trunk/drivers/gpu/vga/vgaarb.c @@ -465,29 +465,31 @@ static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) while (new_bus) { new_bridge = new_bus->self; - /* go through list of devices already registered */ - list_for_each_entry(same_bridge_vgadev, &vga_list, list) { - bus = same_bridge_vgadev->pdev->bus; - bridge = bus->self; - - /* see if the share a bridge with this device */ - if (new_bridge == bridge) { - /* if their direct parent bridge is the same - as any bridge of this device then it can't be used - for that device */ - same_bridge_vgadev->bridge_has_one_vga = false; - } - - /* now iterate the previous devices bridge hierarchy */ - /* if the new devices parent bridge is in the other devices - hierarchy then we can't use it to control this device */ - while (bus) { + if (new_bridge) { + /* go through list of devices already registered */ + list_for_each_entry(same_bridge_vgadev, &vga_list, list) { + bus = same_bridge_vgadev->pdev->bus; bridge = bus->self; - if (bridge) { - if (bridge == vgadev->pdev->bus->self) - vgadev->bridge_has_one_vga = false; + + /* see if the share a bridge with this device */ + if (new_bridge == bridge) { + /* if their direct parent bridge is the same + as any bridge of this device then it can't be used + for that device */ + same_bridge_vgadev->bridge_has_one_vga = false; + } + + /* now iterate the previous devices bridge hierarchy */ + /* if the new devices parent bridge is in the other devices + hierarchy then we can't use it to control this device */ + while (bus) { + bridge = bus->self; + if (bridge) { + if (bridge == vgadev->pdev->bus->self) + vgadev->bridge_has_one_vga = false; + } + bus = bus->parent; } - bus = bus->parent; } } new_bus = new_bus->parent; diff --git a/trunk/drivers/iommu/omap-iommu-debug.c b/trunk/drivers/iommu/omap-iommu-debug.c index 288da5c1499d..9c192e79f806 100644 --- a/trunk/drivers/iommu/omap-iommu-debug.c +++ b/trunk/drivers/iommu/omap-iommu-debug.c @@ -10,7 +10,6 @@ * published by the Free Software Foundation. */ -#include #include #include #include diff --git a/trunk/drivers/iommu/omap-iovmm.c b/trunk/drivers/iommu/omap-iovmm.c index 46be456fcc00..e8fdb8830f69 100644 --- a/trunk/drivers/iommu/omap-iovmm.c +++ b/trunk/drivers/iommu/omap-iovmm.c @@ -10,7 +10,6 @@ * published by the Free Software Foundation. */ -#include #include #include #include diff --git a/trunk/drivers/leds/led-class.c b/trunk/drivers/leds/led-class.c index 6d5628bb0601..661b692573e7 100644 --- a/trunk/drivers/leds/led-class.c +++ b/trunk/drivers/leds/led-class.c @@ -270,8 +270,11 @@ void led_blink_set(struct led_classdev *led_cdev, del_timer_sync(&led_cdev->blink_timer); if (led_cdev->blink_set && - !led_cdev->blink_set(led_cdev, delay_on, delay_off)) + !led_cdev->blink_set(led_cdev, delay_on, delay_off)) { + led_cdev->blink_delay_on = *delay_on; + led_cdev->blink_delay_off = *delay_off; return; + } /* blink with 1 Hz as default if nothing specified */ if (!*delay_on && !*delay_off) diff --git a/trunk/drivers/misc/eeprom/Kconfig b/trunk/drivers/misc/eeprom/Kconfig index 701edf658970..26cf12ca7f50 100644 --- a/trunk/drivers/misc/eeprom/Kconfig +++ b/trunk/drivers/misc/eeprom/Kconfig @@ -85,7 +85,7 @@ config EEPROM_93XX46 config EEPROM_DIGSY_MTC_CFG bool "DigsyMTC display configuration EEPROMs device" - depends on GPIO_MPC5200 && SPI_GPIO + depends on PPC_MPC5200_GPIO && GPIOLIB && SPI_GPIO help This option enables access to display configuration EEPROMs on digsy_mtc board. You have to additionally select Microwire diff --git a/trunk/drivers/pinctrl/Kconfig b/trunk/drivers/pinctrl/Kconfig index e17e2f8001d2..ef566443f945 100644 --- a/trunk/drivers/pinctrl/Kconfig +++ b/trunk/drivers/pinctrl/Kconfig @@ -2,17 +2,23 @@ # PINCTRL infrastructure and drivers # -config PINCTRL - bool +menuconfig PINCTRL + bool "PINCTRL Support" depends on EXPERIMENTAL + help + This enables the PINCTRL subsystem for controlling pins + on chip packages, for example multiplexing pins on primarily + PGA and BGA packages for systems on chip. -if PINCTRL + If unsure, say N. -menu "Pin controllers" - depends on PINCTRL +if PINCTRL config PINMUX bool "Support pinmux controllers" + help + Say Y here if you want the pincontrol subsystem to handle pin + multiplexing drivers. config DEBUG_PINCTRL bool "Debug PINCTRL calls" @@ -24,12 +30,14 @@ config PINMUX_SIRF bool "CSR SiRFprimaII pinmux driver" depends on ARCH_PRIMA2 select PINMUX + help + Say Y here to enable the SiRFprimaII pinmux driver config PINMUX_U300 bool "U300 pinmux driver" depends on ARCH_U300 select PINMUX - -endmenu + help + Say Y here to enable the U300 pinmux driver endif diff --git a/trunk/drivers/staging/octeon/ethernet-tx.c b/trunk/drivers/staging/octeon/ethernet-tx.c index 2542c3743904..b445cd63f901 100644 --- a/trunk/drivers/staging/octeon/ethernet-tx.c +++ b/trunk/drivers/staging/octeon/ethernet-tx.c @@ -275,7 +275,7 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) CVM_OCT_SKB_CB(skb)[0] = hw_buffer.u64; for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { struct skb_frag_struct *fs = skb_shinfo(skb)->frags + i; - hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)(page_address(fs->page.p) + fs->page_offset)); + hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)(page_address(fs->page) + fs->page_offset)); hw_buffer.s.size = fs->size; CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64; } diff --git a/trunk/fs/hfs/trans.c b/trunk/fs/hfs/trans.c index b1ce4c7ad3fb..e673a88b8ae7 100644 --- a/trunk/fs/hfs/trans.c +++ b/trunk/fs/hfs/trans.c @@ -40,8 +40,6 @@ int hfs_mac2asc(struct super_block *sb, char *out, const struct hfs_name *in) src = in->name; srclen = in->len; - if (srclen > HFS_NAMELEN) - srclen = HFS_NAMELEN; dst = out; dstlen = HFS_MAX_NAMELEN; if (nls_io) { diff --git a/trunk/include/drm/drm_pciids.h b/trunk/include/drm/drm_pciids.h index f81676f1b310..3d53efd25ab9 100644 --- a/trunk/include/drm/drm_pciids.h +++ b/trunk/include/drm/drm_pciids.h @@ -4,7 +4,6 @@ */ #define radeon_PCI_IDS \ {0x1002, 0x3150, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ - {0x1002, 0x3151, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x3152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x3154, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x3155, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ @@ -56,7 +55,6 @@ {0x1002, 0x4C64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ {0x1002, 0x4C66, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ {0x1002, 0x4C67, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ - {0x1002, 0x4C6E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \ {0x1002, 0x4E44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ {0x1002, 0x4E45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ {0x1002, 0x4E46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ diff --git a/trunk/include/linux/pinctrl/pinctrl.h b/trunk/include/linux/pinctrl/pinctrl.h index 04c011038f32..3605e947fa90 100644 --- a/trunk/include/linux/pinctrl/pinctrl.h +++ b/trunk/include/linux/pinctrl/pinctrl.h @@ -121,7 +121,6 @@ extern const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev); extern void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev); #else -struct pinctrl_dev; /* Sufficiently stupid default function when pinctrl is not in use */ static inline bool pin_is_valid(struct pinctrl_dev *pctldev, int pin) diff --git a/trunk/mm/hugetlb.c b/trunk/mm/hugetlb.c index bb28a5f9db8d..dae27ba3be2c 100644 --- a/trunk/mm/hugetlb.c +++ b/trunk/mm/hugetlb.c @@ -2422,8 +2422,6 @@ static int hugetlb_cow(struct mm_struct *mm, struct vm_area_struct *vma, * anon_vma prepared. */ if (unlikely(anon_vma_prepare(vma))) { - page_cache_release(new_page); - page_cache_release(old_page); /* Caller expects lock to be held */ spin_lock(&mm->page_table_lock); return VM_FAULT_OOM; diff --git a/trunk/mm/oom_kill.c b/trunk/mm/oom_kill.c index 76f2c5ae908e..471dedb463ab 100644 --- a/trunk/mm/oom_kill.c +++ b/trunk/mm/oom_kill.c @@ -185,11 +185,6 @@ unsigned int oom_badness(struct task_struct *p, struct mem_cgroup *mem, if (!p) return 0; - if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) { - task_unlock(p); - return 0; - } - /* * The memory controller may have a limit of 0 bytes, so avoid a divide * by zero, if necessary. diff --git a/trunk/security/keys/user_defined.c b/trunk/security/keys/user_defined.c index 69ff52c08e97..5b366d7af3c4 100644 --- a/trunk/security/keys/user_defined.c +++ b/trunk/security/keys/user_defined.c @@ -102,8 +102,7 @@ int user_update(struct key *key, const void *data, size_t datalen) key->expiry = 0; } - if (zap) - kfree_rcu(zap, rcu); + kfree_rcu(zap, rcu); error: return ret;