diff options
Diffstat (limited to 'arch')
56 files changed, 106 insertions, 192 deletions
diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h index ca88e54dec93..62b363584b2b 100644 --- a/arch/alpha/include/asm/atomic.h +++ b/arch/alpha/include/asm/atomic.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _ALPHA_ATOMIC_H | 1 | #ifndef _ALPHA_ATOMIC_H |
2 | #define _ALPHA_ATOMIC_H | 2 | #define _ALPHA_ATOMIC_H |
3 | 3 | ||
4 | #include <linux/types.h> | ||
4 | #include <asm/barrier.h> | 5 | #include <asm/barrier.h> |
5 | #include <asm/system.h> | 6 | #include <asm/system.h> |
6 | 7 | ||
@@ -13,14 +14,6 @@ | |||
13 | */ | 14 | */ |
14 | 15 | ||
15 | 16 | ||
16 | /* | ||
17 | * Counter is volatile to make sure gcc doesn't try to be clever | ||
18 | * and move things around on us. We need to use _exactly_ the address | ||
19 | * the user gave us, not some alias that contains the same information. | ||
20 | */ | ||
21 | typedef struct { volatile int counter; } atomic_t; | ||
22 | typedef struct { volatile long counter; } atomic64_t; | ||
23 | |||
24 | #define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) | 17 | #define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) |
25 | #define ATOMIC64_INIT(i) ( (atomic64_t) { (i) } ) | 18 | #define ATOMIC64_INIT(i) ( (atomic64_t) { (i) } ) |
26 | 19 | ||
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d6ebe39934b5..dbfdf87f993f 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1325,6 +1325,8 @@ source "drivers/regulator/Kconfig" | |||
1325 | 1325 | ||
1326 | source "drivers/uio/Kconfig" | 1326 | source "drivers/uio/Kconfig" |
1327 | 1327 | ||
1328 | source "drivers/staging/Kconfig" | ||
1329 | |||
1328 | endmenu | 1330 | endmenu |
1329 | 1331 | ||
1330 | source "fs/Kconfig" | 1332 | source "fs/Kconfig" |
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h index 325f881ccb50..ee99723b3a6c 100644 --- a/arch/arm/include/asm/atomic.h +++ b/arch/arm/include/asm/atomic.h | |||
@@ -12,10 +12,9 @@ | |||
12 | #define __ASM_ARM_ATOMIC_H | 12 | #define __ASM_ARM_ATOMIC_H |
13 | 13 | ||
14 | #include <linux/compiler.h> | 14 | #include <linux/compiler.h> |
15 | #include <linux/types.h> | ||
15 | #include <asm/system.h> | 16 | #include <asm/system.h> |
16 | 17 | ||
17 | typedef struct { volatile int counter; } atomic_t; | ||
18 | |||
19 | #define ATOMIC_INIT(i) { (i) } | 18 | #define ATOMIC_INIT(i) { (i) } |
20 | 19 | ||
21 | #ifdef __KERNEL__ | 20 | #ifdef __KERNEL__ |
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c index 60c079d85355..eed2f795e1b3 100644 --- a/arch/arm/kernel/ecard.c +++ b/arch/arm/kernel/ecard.c | |||
@@ -817,7 +817,7 @@ static struct expansion_card *__init ecard_alloc_card(int type, int slot) | |||
817 | ec->dma = NO_DMA; | 817 | ec->dma = NO_DMA; |
818 | ec->ops = &ecard_default_ops; | 818 | ec->ops = &ecard_default_ops; |
819 | 819 | ||
820 | snprintf(ec->dev.bus_id, sizeof(ec->dev.bus_id), "ecard%d", slot); | 820 | dev_set_name(&ec->dev, "ecard%d", slot); |
821 | ec->dev.parent = NULL; | 821 | ec->dev.parent = NULL; |
822 | ec->dev.bus = &ecard_bus_type; | 822 | ec->dev.bus = &ecard_bus_type; |
823 | ec->dev.dma_mask = &ec->dma_mask; | 823 | ec->dev.dma_mask = &ec->dma_mask; |
diff --git a/arch/arm/kernel/kprobes.c b/arch/arm/kernel/kprobes.c index 3f9abe0e9aff..f692efddd449 100644 --- a/arch/arm/kernel/kprobes.c +++ b/arch/arm/kernel/kprobes.c | |||
@@ -92,9 +92,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
92 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 92 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
93 | { | 93 | { |
94 | if (p->ainsn.insn) { | 94 | if (p->ainsn.insn) { |
95 | mutex_lock(&kprobe_mutex); | ||
96 | free_insn_slot(p->ainsn.insn, 0); | 95 | free_insn_slot(p->ainsn.insn, 0); |
97 | mutex_unlock(&kprobe_mutex); | ||
98 | p->ainsn.insn = NULL; | 96 | p->ainsn.insn = NULL; |
99 | } | 97 | } |
100 | } | 98 | } |
diff --git a/arch/arm/mach-aaec2000/core.c b/arch/arm/mach-aaec2000/core.c index 50e13965dfed..b5c5fc6ba3a9 100644 --- a/arch/arm/mach-aaec2000/core.c +++ b/arch/arm/mach-aaec2000/core.c | |||
@@ -212,7 +212,7 @@ static struct clcd_board clcd_plat_data = { | |||
212 | 212 | ||
213 | static struct amba_device clcd_device = { | 213 | static struct amba_device clcd_device = { |
214 | .dev = { | 214 | .dev = { |
215 | .bus_id = "mb:16", | 215 | .init_name = "mb:16", |
216 | .coherent_dma_mask = ~0, | 216 | .coherent_dma_mask = ~0, |
217 | .platform_data = &clcd_plat_data, | 217 | .platform_data = &clcd_plat_data, |
218 | }, | 218 | }, |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index 4781f323703b..6d9152de6074 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -409,7 +409,7 @@ static struct amba_pl010_data ep93xx_uart_data = { | |||
409 | 409 | ||
410 | static struct amba_device uart1_device = { | 410 | static struct amba_device uart1_device = { |
411 | .dev = { | 411 | .dev = { |
412 | .bus_id = "apb:uart1", | 412 | .init_name = "apb:uart1", |
413 | .platform_data = &ep93xx_uart_data, | 413 | .platform_data = &ep93xx_uart_data, |
414 | }, | 414 | }, |
415 | .res = { | 415 | .res = { |
@@ -423,7 +423,7 @@ static struct amba_device uart1_device = { | |||
423 | 423 | ||
424 | static struct amba_device uart2_device = { | 424 | static struct amba_device uart2_device = { |
425 | .dev = { | 425 | .dev = { |
426 | .bus_id = "apb:uart2", | 426 | .init_name = "apb:uart2", |
427 | .platform_data = &ep93xx_uart_data, | 427 | .platform_data = &ep93xx_uart_data, |
428 | }, | 428 | }, |
429 | .res = { | 429 | .res = { |
@@ -437,7 +437,7 @@ static struct amba_device uart2_device = { | |||
437 | 437 | ||
438 | static struct amba_device uart3_device = { | 438 | static struct amba_device uart3_device = { |
439 | .dev = { | 439 | .dev = { |
440 | .bus_id = "apb:uart3", | 440 | .init_name = "apb:uart3", |
441 | .platform_data = &ep93xx_uart_data, | 441 | .platform_data = &ep93xx_uart_data, |
442 | }, | 442 | }, |
443 | .res = { | 443 | .res = { |
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c index c89c949b4d45..6f8872913073 100644 --- a/arch/arm/mach-integrator/core.c +++ b/arch/arm/mach-integrator/core.c | |||
@@ -37,7 +37,7 @@ static struct amba_pl010_data integrator_uart_data; | |||
37 | 37 | ||
38 | static struct amba_device rtc_device = { | 38 | static struct amba_device rtc_device = { |
39 | .dev = { | 39 | .dev = { |
40 | .bus_id = "mb:15", | 40 | .init_name = "mb:15", |
41 | }, | 41 | }, |
42 | .res = { | 42 | .res = { |
43 | .start = INTEGRATOR_RTC_BASE, | 43 | .start = INTEGRATOR_RTC_BASE, |
@@ -50,7 +50,7 @@ static struct amba_device rtc_device = { | |||
50 | 50 | ||
51 | static struct amba_device uart0_device = { | 51 | static struct amba_device uart0_device = { |
52 | .dev = { | 52 | .dev = { |
53 | .bus_id = "mb:16", | 53 | .init_name = "mb:16", |
54 | .platform_data = &integrator_uart_data, | 54 | .platform_data = &integrator_uart_data, |
55 | }, | 55 | }, |
56 | .res = { | 56 | .res = { |
@@ -64,7 +64,7 @@ static struct amba_device uart0_device = { | |||
64 | 64 | ||
65 | static struct amba_device uart1_device = { | 65 | static struct amba_device uart1_device = { |
66 | .dev = { | 66 | .dev = { |
67 | .bus_id = "mb:17", | 67 | .init_name = "mb:17", |
68 | .platform_data = &integrator_uart_data, | 68 | .platform_data = &integrator_uart_data, |
69 | }, | 69 | }, |
70 | .res = { | 70 | .res = { |
@@ -78,7 +78,7 @@ static struct amba_device uart1_device = { | |||
78 | 78 | ||
79 | static struct amba_device kmi0_device = { | 79 | static struct amba_device kmi0_device = { |
80 | .dev = { | 80 | .dev = { |
81 | .bus_id = "mb:18", | 81 | .init_name = "mb:18", |
82 | }, | 82 | }, |
83 | .res = { | 83 | .res = { |
84 | .start = KMI0_BASE, | 84 | .start = KMI0_BASE, |
@@ -91,7 +91,7 @@ static struct amba_device kmi0_device = { | |||
91 | 91 | ||
92 | static struct amba_device kmi1_device = { | 92 | static struct amba_device kmi1_device = { |
93 | .dev = { | 93 | .dev = { |
94 | .bus_id = "mb:19", | 94 | .init_name = "mb:19", |
95 | }, | 95 | }, |
96 | .res = { | 96 | .res = { |
97 | .start = KMI1_BASE, | 97 | .start = KMI1_BASE, |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 427c2d8dc123..4ac04055c2ea 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -407,7 +407,7 @@ static struct mmc_platform_data mmc_data = { | |||
407 | 407 | ||
408 | static struct amba_device mmc_device = { | 408 | static struct amba_device mmc_device = { |
409 | .dev = { | 409 | .dev = { |
410 | .bus_id = "mb:1c", | 410 | .init_name = "mb:1c", |
411 | .platform_data = &mmc_data, | 411 | .platform_data = &mmc_data, |
412 | }, | 412 | }, |
413 | .res = { | 413 | .res = { |
@@ -421,7 +421,7 @@ static struct amba_device mmc_device = { | |||
421 | 421 | ||
422 | static struct amba_device aaci_device = { | 422 | static struct amba_device aaci_device = { |
423 | .dev = { | 423 | .dev = { |
424 | .bus_id = "mb:1d", | 424 | .init_name = "mb:1d", |
425 | }, | 425 | }, |
426 | .res = { | 426 | .res = { |
427 | .start = INTCP_PA_AACI_BASE, | 427 | .start = INTCP_PA_AACI_BASE, |
@@ -532,7 +532,7 @@ static struct clcd_board clcd_data = { | |||
532 | 532 | ||
533 | static struct amba_device clcd_device = { | 533 | static struct amba_device clcd_device = { |
534 | .dev = { | 534 | .dev = { |
535 | .bus_id = "mb:c0", | 535 | .init_name = "mb:c0", |
536 | .coherent_dma_mask = ~0, | 536 | .coherent_dma_mask = ~0, |
537 | .platform_data = &clcd_data, | 537 | .platform_data = &clcd_data, |
538 | }, | 538 | }, |
diff --git a/arch/arm/mach-lh7a40x/clcd.c b/arch/arm/mach-lh7a40x/clcd.c index a2a543258fc3..c472b9e8b37c 100644 --- a/arch/arm/mach-lh7a40x/clcd.c +++ b/arch/arm/mach-lh7a40x/clcd.c | |||
@@ -207,7 +207,7 @@ static struct clcd_board clcd_platform_data = { | |||
207 | static struct amba_device name##_device = { \ | 207 | static struct amba_device name##_device = { \ |
208 | .dev = { \ | 208 | .dev = { \ |
209 | .coherent_dma_mask = ~0, \ | 209 | .coherent_dma_mask = ~0, \ |
210 | .bus_id = busid, \ | 210 | .init_name = busid, \ |
211 | .platform_data = plat, \ | 211 | .platform_data = plat, \ |
212 | }, \ | 212 | }, \ |
213 | .res = { \ | 213 | .res = { \ |
diff --git a/arch/arm/mach-netx/fb.c b/arch/arm/mach-netx/fb.c index 8f1f992f002e..ea8fa8898fe8 100644 --- a/arch/arm/mach-netx/fb.c +++ b/arch/arm/mach-netx/fb.c | |||
@@ -91,7 +91,7 @@ void clk_put(struct clk *clk) | |||
91 | 91 | ||
92 | static struct amba_device fb_device = { | 92 | static struct amba_device fb_device = { |
93 | .dev = { | 93 | .dev = { |
94 | .bus_id = "fb", | 94 | .init_name = "fb", |
95 | .coherent_dma_mask = ~0, | 95 | .coherent_dma_mask = ~0, |
96 | }, | 96 | }, |
97 | .res = { | 97 | .res = { |
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 63be2abdc19c..44269b162d49 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h | |||
@@ -31,7 +31,7 @@ | |||
31 | static struct amba_device name##_device = { \ | 31 | static struct amba_device name##_device = { \ |
32 | .dev = { \ | 32 | .dev = { \ |
33 | .coherent_dma_mask = ~0, \ | 33 | .coherent_dma_mask = ~0, \ |
34 | .bus_id = busid, \ | 34 | .init_name = busid, \ |
35 | .platform_data = plat, \ | 35 | .platform_data = plat, \ |
36 | }, \ | 36 | }, \ |
37 | .res = { \ | 37 | .res = { \ |
diff --git a/arch/arm/mach-s3c2410/include/mach/spi.h b/arch/arm/mach-s3c2410/include/mach/spi.h index 774f3adfe8ad..1d300fb112b1 100644 --- a/arch/arm/mach-s3c2410/include/mach/spi.h +++ b/arch/arm/mach-s3c2410/include/mach/spi.h | |||
@@ -14,7 +14,7 @@ | |||
14 | #define __ASM_ARCH_SPI_H __FILE__ | 14 | #define __ASM_ARCH_SPI_H __FILE__ |
15 | 15 | ||
16 | struct s3c2410_spi_info { | 16 | struct s3c2410_spi_info { |
17 | unsigned long pin_cs; /* simple gpio cs */ | 17 | int pin_cs; /* simple gpio cs */ |
18 | unsigned int num_cs; /* total chipselects */ | 18 | unsigned int num_cs; /* total chipselects */ |
19 | int bus_num; /* bus number to use. */ | 19 | int bus_num; /* bus number to use. */ |
20 | 20 | ||
diff --git a/arch/arm/mach-versatile/core.h b/arch/arm/mach-versatile/core.h index afcaa858eb1f..9d39886a8351 100644 --- a/arch/arm/mach-versatile/core.h +++ b/arch/arm/mach-versatile/core.h | |||
@@ -34,7 +34,7 @@ extern unsigned int mmc_status(struct device *dev); | |||
34 | static struct amba_device name##_device = { \ | 34 | static struct amba_device name##_device = { \ |
35 | .dev = { \ | 35 | .dev = { \ |
36 | .coherent_dma_mask = ~0, \ | 36 | .coherent_dma_mask = ~0, \ |
37 | .bus_id = busid, \ | 37 | .init_name = busid, \ |
38 | .platform_data = plat, \ | 38 | .platform_data = plat, \ |
39 | }, \ | 39 | }, \ |
40 | .res = { \ | 40 | .res = { \ |
diff --git a/arch/arm/plat-omap/include/mach/memory.h b/arch/arm/plat-omap/include/mach/memory.h index 211c9f6619e9..d6b5ca6c7da2 100644 --- a/arch/arm/plat-omap/include/mach/memory.h +++ b/arch/arm/plat-omap/include/mach/memory.h | |||
@@ -59,7 +59,7 @@ | |||
59 | 59 | ||
60 | #define virt_to_lbus(x) ((x) - PAGE_OFFSET + OMAP1510_LB_OFFSET) | 60 | #define virt_to_lbus(x) ((x) - PAGE_OFFSET + OMAP1510_LB_OFFSET) |
61 | #define lbus_to_virt(x) ((x) - OMAP1510_LB_OFFSET + PAGE_OFFSET) | 61 | #define lbus_to_virt(x) ((x) - OMAP1510_LB_OFFSET + PAGE_OFFSET) |
62 | #define is_lbus_device(dev) (cpu_is_omap15xx() && dev && (strncmp(dev->bus_id, "ohci", 4) == 0)) | 62 | #define is_lbus_device(dev) (cpu_is_omap15xx() && dev && (strncmp(dev_name(dev), "ohci", 4) == 0)) |
63 | 63 | ||
64 | #define __arch_page_to_dma(dev, page) ({is_lbus_device(dev) ? \ | 64 | #define __arch_page_to_dma(dev, page) ({is_lbus_device(dev) ? \ |
65 | (dma_addr_t)virt_to_lbus(page_address(page)) : \ | 65 | (dma_addr_t)virt_to_lbus(page_address(page)) : \ |
diff --git a/arch/avr32/include/asm/atomic.h b/arch/avr32/include/asm/atomic.h index 7ef3862a73d0..318815107748 100644 --- a/arch/avr32/include/asm/atomic.h +++ b/arch/avr32/include/asm/atomic.h | |||
@@ -14,9 +14,9 @@ | |||
14 | #ifndef __ASM_AVR32_ATOMIC_H | 14 | #ifndef __ASM_AVR32_ATOMIC_H |
15 | #define __ASM_AVR32_ATOMIC_H | 15 | #define __ASM_AVR32_ATOMIC_H |
16 | 16 | ||
17 | #include <linux/types.h> | ||
17 | #include <asm/system.h> | 18 | #include <asm/system.h> |
18 | 19 | ||
19 | typedef struct { volatile int counter; } atomic_t; | ||
20 | #define ATOMIC_INIT(i) { (i) } | 20 | #define ATOMIC_INIT(i) { (i) } |
21 | 21 | ||
22 | #define atomic_read(v) ((v)->counter) | 22 | #define atomic_read(v) ((v)->counter) |
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c index 0d987373bc01..d547c8df157d 100644 --- a/arch/avr32/kernel/traps.c +++ b/arch/avr32/kernel/traps.c | |||
@@ -7,6 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/bug.h> | 9 | #include <linux/bug.h> |
10 | #include <linux/hardirq.h> | ||
10 | #include <linux/init.h> | 11 | #include <linux/init.h> |
11 | #include <linux/kallsyms.h> | 12 | #include <linux/kallsyms.h> |
12 | #include <linux/kdebug.h> | 13 | #include <linux/kdebug.h> |
diff --git a/arch/avr32/mach-at32ap/clock.c b/arch/avr32/mach-at32ap/clock.c index 138a00a2a2d0..442f08c5e641 100644 --- a/arch/avr32/mach-at32ap/clock.c +++ b/arch/avr32/mach-at32ap/clock.c | |||
@@ -198,7 +198,7 @@ dump_clock(struct clk *parent, struct clkinf *r) | |||
198 | unsigned i; | 198 | unsigned i; |
199 | 199 | ||
200 | /* skip clocks coupled to devices that aren't registered */ | 200 | /* skip clocks coupled to devices that aren't registered */ |
201 | if (parent->dev && !parent->dev->bus_id[0] && !parent->users) | 201 | if (parent->dev && !dev_name(parent->dev) && !parent->users) |
202 | return; | 202 | return; |
203 | 203 | ||
204 | /* <nest spaces> name <pad to end> */ | 204 | /* <nest spaces> name <pad to end> */ |
@@ -214,7 +214,7 @@ dump_clock(struct clk *parent, struct clkinf *r) | |||
214 | parent->users ? "on" : "off", /* NOTE: not-paranoid!! */ | 214 | parent->users ? "on" : "off", /* NOTE: not-paranoid!! */ |
215 | clk_get_rate(parent)); | 215 | clk_get_rate(parent)); |
216 | if (parent->dev) | 216 | if (parent->dev) |
217 | seq_printf(r->s, ", for %s", parent->dev->bus_id); | 217 | seq_printf(r->s, ", for %s", dev_name(parent->dev)); |
218 | seq_printf(r->s, "\n"); | 218 | seq_printf(r->s, "\n"); |
219 | 219 | ||
220 | /* cost of this scan is small, but not linear... */ | 220 | /* cost of this scan is small, but not linear... */ |
diff --git a/arch/blackfin/include/asm/atomic.h b/arch/blackfin/include/asm/atomic.h index 7cf508718605..25776c19064b 100644 --- a/arch/blackfin/include/asm/atomic.h +++ b/arch/blackfin/include/asm/atomic.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef __ARCH_BLACKFIN_ATOMIC__ | 1 | #ifndef __ARCH_BLACKFIN_ATOMIC__ |
2 | #define __ARCH_BLACKFIN_ATOMIC__ | 2 | #define __ARCH_BLACKFIN_ATOMIC__ |
3 | 3 | ||
4 | #include <linux/types.h> | ||
4 | #include <asm/system.h> /* local_irq_XXX() */ | 5 | #include <asm/system.h> /* local_irq_XXX() */ |
5 | 6 | ||
6 | /* | 7 | /* |
@@ -13,9 +14,6 @@ | |||
13 | * Tony Kou (tonyko@lineo.ca) Lineo Inc. 2001 | 14 | * Tony Kou (tonyko@lineo.ca) Lineo Inc. 2001 |
14 | */ | 15 | */ |
15 | 16 | ||
16 | typedef struct { | ||
17 | int counter; | ||
18 | } atomic_t; | ||
19 | #define ATOMIC_INIT(i) { (i) } | 17 | #define ATOMIC_INIT(i) { (i) } |
20 | 18 | ||
21 | #define atomic_read(v) ((v)->counter) | 19 | #define atomic_read(v) ((v)->counter) |
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index b17aeea8d620..3462245fe9fb 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -681,6 +681,8 @@ source "drivers/usb/Kconfig" | |||
681 | 681 | ||
682 | source "drivers/uwb/Kconfig" | 682 | source "drivers/uwb/Kconfig" |
683 | 683 | ||
684 | source "drivers/staging/Kconfig" | ||
685 | |||
684 | source "arch/cris/Kconfig.debug" | 686 | source "arch/cris/Kconfig.debug" |
685 | 687 | ||
686 | source "security/Kconfig" | 688 | source "security/Kconfig" |
diff --git a/arch/cris/arch-v32/drivers/iop_fw_load.c b/arch/cris/arch-v32/drivers/iop_fw_load.c index 3b3857ec1f15..2f8ea0f7a63c 100644 --- a/arch/cris/arch-v32/drivers/iop_fw_load.c +++ b/arch/cris/arch-v32/drivers/iop_fw_load.c | |||
@@ -24,12 +24,12 @@ | |||
24 | #error "Please contact <greg@kroah.com> for details on how to fix it properly." | 24 | #error "Please contact <greg@kroah.com> for details on how to fix it properly." |
25 | 25 | ||
26 | static struct device iop_spu_device[2] = { | 26 | static struct device iop_spu_device[2] = { |
27 | { .bus_id = "iop-spu0", }, | 27 | { .init_name = "iop-spu0", }, |
28 | { .bus_id = "iop-spu1", }, | 28 | { .init_name = "iop-spu1", }, |
29 | }; | 29 | }; |
30 | 30 | ||
31 | static struct device iop_mpu_device = { | 31 | static struct device iop_mpu_device = { |
32 | .bus_id = "iop-mpu", | 32 | .init_name = "iop-mpu", |
33 | }; | 33 | }; |
34 | 34 | ||
35 | static int wait_mpu_idle(void) | 35 | static int wait_mpu_idle(void) |
diff --git a/arch/cris/include/asm/atomic.h b/arch/cris/include/asm/atomic.h index f71ea686a2ea..5718dd8902a1 100644 --- a/arch/cris/include/asm/atomic.h +++ b/arch/cris/include/asm/atomic.h | |||
@@ -4,7 +4,7 @@ | |||
4 | #define __ASM_CRIS_ATOMIC__ | 4 | #define __ASM_CRIS_ATOMIC__ |
5 | 5 | ||
6 | #include <linux/compiler.h> | 6 | #include <linux/compiler.h> |
7 | 7 | #include <linux/types.h> | |
8 | #include <asm/system.h> | 8 | #include <asm/system.h> |
9 | #include <arch/atomic.h> | 9 | #include <arch/atomic.h> |
10 | 10 | ||
@@ -13,8 +13,6 @@ | |||
13 | * resource counting etc.. | 13 | * resource counting etc.. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | typedef struct { volatile int counter; } atomic_t; | ||
17 | |||
18 | #define ATOMIC_INIT(i) { (i) } | 16 | #define ATOMIC_INIT(i) { (i) } |
19 | 17 | ||
20 | #define atomic_read(v) ((v)->counter) | 18 | #define atomic_read(v) ((v)->counter) |
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 28f06fd9b7b7..9420648352b8 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig | |||
@@ -220,6 +220,8 @@ source "drivers/uwb/Kconfig" | |||
220 | 220 | ||
221 | endmenu | 221 | endmenu |
222 | 222 | ||
223 | source "drivers/staging/Kconfig" | ||
224 | |||
223 | source "fs/Kconfig" | 225 | source "fs/Kconfig" |
224 | 226 | ||
225 | source "arch/h8300/Kconfig.debug" | 227 | source "arch/h8300/Kconfig.debug" |
diff --git a/arch/h8300/include/asm/atomic.h b/arch/h8300/include/asm/atomic.h index b4cf0ea97ede..833186c8dc3b 100644 --- a/arch/h8300/include/asm/atomic.h +++ b/arch/h8300/include/asm/atomic.h | |||
@@ -1,12 +1,13 @@ | |||
1 | #ifndef __ARCH_H8300_ATOMIC__ | 1 | #ifndef __ARCH_H8300_ATOMIC__ |
2 | #define __ARCH_H8300_ATOMIC__ | 2 | #define __ARCH_H8300_ATOMIC__ |
3 | 3 | ||
4 | #include <linux/types.h> | ||
5 | |||
4 | /* | 6 | /* |
5 | * Atomic operations that C can't guarantee us. Useful for | 7 | * Atomic operations that C can't guarantee us. Useful for |
6 | * resource counting etc.. | 8 | * resource counting etc.. |
7 | */ | 9 | */ |
8 | 10 | ||
9 | typedef struct { int counter; } atomic_t; | ||
10 | #define ATOMIC_INIT(i) { (i) } | 11 | #define ATOMIC_INIT(i) { (i) } |
11 | 12 | ||
12 | #define atomic_read(v) ((v)->counter) | 13 | #define atomic_read(v) ((v)->counter) |
diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h index 50c2b83fd5a0..d37292bd9875 100644 --- a/arch/ia64/include/asm/atomic.h +++ b/arch/ia64/include/asm/atomic.h | |||
@@ -17,12 +17,6 @@ | |||
17 | #include <asm/intrinsics.h> | 17 | #include <asm/intrinsics.h> |
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
19 | 19 | ||
20 | /* | ||
21 | * On IA-64, counter must always be volatile to ensure that that the | ||
22 | * memory accesses are ordered. | ||
23 | */ | ||
24 | typedef struct { volatile __s32 counter; } atomic_t; | ||
25 | typedef struct { volatile __s64 counter; } atomic64_t; | ||
26 | 20 | ||
27 | #define ATOMIC_INIT(i) ((atomic_t) { (i) }) | 21 | #define ATOMIC_INIT(i) ((atomic_t) { (i) }) |
28 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) | 22 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) |
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index f07688da947c..097b84d54e73 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
@@ -670,9 +670,11 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
670 | 670 | ||
671 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 671 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
672 | { | 672 | { |
673 | mutex_lock(&kprobe_mutex); | 673 | if (p->ainsn.insn) { |
674 | free_insn_slot(p->ainsn.insn, p->ainsn.inst_flag & INST_FLAG_BOOSTABLE); | 674 | free_insn_slot(p->ainsn.insn, |
675 | mutex_unlock(&kprobe_mutex); | 675 | p->ainsn.inst_flag & INST_FLAG_BOOSTABLE); |
676 | p->ainsn.insn = NULL; | ||
677 | } | ||
676 | } | 678 | } |
677 | /* | 679 | /* |
678 | * We are resuming execution after a single step fault, so the pt_regs | 680 | * We are resuming execution after a single step fault, so the pt_regs |
diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c index 2a92f637431d..d0ada067a4af 100644 --- a/arch/ia64/kernel/pci-dma.c +++ b/arch/ia64/kernel/pci-dma.c | |||
@@ -39,7 +39,7 @@ int iommu_detected __read_mostly; | |||
39 | be probably a smaller DMA mask, but this is bug-to-bug compatible | 39 | be probably a smaller DMA mask, but this is bug-to-bug compatible |
40 | to i386. */ | 40 | to i386. */ |
41 | struct device fallback_dev = { | 41 | struct device fallback_dev = { |
42 | .bus_id = "fallback device", | 42 | .init_name = "fallback device", |
43 | .coherent_dma_mask = DMA_32BIT_MASK, | 43 | .coherent_dma_mask = DMA_32BIT_MASK, |
44 | .dma_mask = &fallback_dev.coherent_dma_mask, | 44 | .dma_mask = &fallback_dev.coherent_dma_mask, |
45 | }; | 45 | }; |
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 054bcd9439aa..56e12903973c 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -692,7 +692,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
692 | pgdat = NODE_DATA(nid); | 692 | pgdat = NODE_DATA(nid); |
693 | 693 | ||
694 | zone = pgdat->node_zones + ZONE_NORMAL; | 694 | zone = pgdat->node_zones + ZONE_NORMAL; |
695 | ret = __add_pages(zone, start_pfn, nr_pages); | 695 | ret = __add_pages(nid, zone, start_pfn, nr_pages); |
696 | 696 | ||
697 | if (ret) | 697 | if (ret) |
698 | printk("%s: Problem encountered in __add_pages() as ret=%d\n", | 698 | printk("%s: Problem encountered in __add_pages() as ret=%d\n", |
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c index a88eba3314d7..3f864238566d 100644 --- a/arch/ia64/sn/kernel/tiocx.c +++ b/arch/ia64/sn/kernel/tiocx.c | |||
@@ -206,8 +206,7 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num, | |||
206 | cx_dev->dev.parent = NULL; | 206 | cx_dev->dev.parent = NULL; |
207 | cx_dev->dev.bus = &tiocx_bus_type; | 207 | cx_dev->dev.bus = &tiocx_bus_type; |
208 | cx_dev->dev.release = tiocx_bus_release; | 208 | cx_dev->dev.release = tiocx_bus_release; |
209 | snprintf(cx_dev->dev.bus_id, BUS_ID_SIZE, "%d", | 209 | dev_set_name(&cx_dev->dev, "%d", cx_dev->cx_id.nasid); |
210 | cx_dev->cx_id.nasid); | ||
211 | device_register(&cx_dev->dev); | 210 | device_register(&cx_dev->dev); |
212 | get_device(&cx_dev->dev); | 211 | get_device(&cx_dev->dev); |
213 | 212 | ||
diff --git a/arch/m68knommu/include/asm/atomic.h b/arch/m68knommu/include/asm/atomic.h index d5632a305dae..6bb674855a3f 100644 --- a/arch/m68knommu/include/asm/atomic.h +++ b/arch/m68knommu/include/asm/atomic.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef __ARCH_M68KNOMMU_ATOMIC__ | 1 | #ifndef __ARCH_M68KNOMMU_ATOMIC__ |
2 | #define __ARCH_M68KNOMMU_ATOMIC__ | 2 | #define __ARCH_M68KNOMMU_ATOMIC__ |
3 | 3 | ||
4 | #include <linux/types.h> | ||
4 | #include <asm/system.h> | 5 | #include <asm/system.h> |
5 | 6 | ||
6 | /* | 7 | /* |
@@ -12,7 +13,6 @@ | |||
12 | * We do not have SMP m68k systems, so we don't have to deal with that. | 13 | * We do not have SMP m68k systems, so we don't have to deal with that. |
13 | */ | 14 | */ |
14 | 15 | ||
15 | typedef struct { int counter; } atomic_t; | ||
16 | #define ATOMIC_INIT(i) { (i) } | 16 | #define ATOMIC_INIT(i) { (i) } |
17 | 17 | ||
18 | #define atomic_read(v) ((v)->counter) | 18 | #define atomic_read(v) ((v)->counter) |
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h index 1232be3885b0..c996c3b4d074 100644 --- a/arch/mips/include/asm/atomic.h +++ b/arch/mips/include/asm/atomic.h | |||
@@ -15,13 +15,12 @@ | |||
15 | #define _ASM_ATOMIC_H | 15 | #define _ASM_ATOMIC_H |
16 | 16 | ||
17 | #include <linux/irqflags.h> | 17 | #include <linux/irqflags.h> |
18 | #include <linux/types.h> | ||
18 | #include <asm/barrier.h> | 19 | #include <asm/barrier.h> |
19 | #include <asm/cpu-features.h> | 20 | #include <asm/cpu-features.h> |
20 | #include <asm/war.h> | 21 | #include <asm/war.h> |
21 | #include <asm/system.h> | 22 | #include <asm/system.h> |
22 | 23 | ||
23 | typedef struct { volatile int counter; } atomic_t; | ||
24 | |||
25 | #define ATOMIC_INIT(i) { (i) } | 24 | #define ATOMIC_INIT(i) { (i) } |
26 | 25 | ||
27 | /* | 26 | /* |
@@ -404,8 +403,6 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
404 | 403 | ||
405 | #ifdef CONFIG_64BIT | 404 | #ifdef CONFIG_64BIT |
406 | 405 | ||
407 | typedef struct { volatile long counter; } atomic64_t; | ||
408 | |||
409 | #define ATOMIC64_INIT(i) { (i) } | 406 | #define ATOMIC64_INIT(i) { (i) } |
410 | 407 | ||
411 | /* | 408 | /* |
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index 010b27e01f7b..3ca5f42e819d 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c | |||
@@ -1454,7 +1454,7 @@ static int __init vpe_module_init(void) | |||
1454 | device_initialize(&vpe_device); | 1454 | device_initialize(&vpe_device); |
1455 | vpe_device.class = &vpe_class, | 1455 | vpe_device.class = &vpe_class, |
1456 | vpe_device.parent = NULL, | 1456 | vpe_device.parent = NULL, |
1457 | strlcpy(vpe_device.bus_id, "vpe1", BUS_ID_SIZE); | 1457 | dev_set_name(&vpe_device, "vpe1"); |
1458 | vpe_device.devt = MKDEV(major, minor); | 1458 | vpe_device.devt = MKDEV(major, minor); |
1459 | err = device_add(&vpe_device); | 1459 | err = device_add(&vpe_device); |
1460 | if (err) { | 1460 | if (err) { |
diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h index 57fcc4a5ebb4..edbfe25c5fc1 100644 --- a/arch/parisc/include/asm/atomic.h +++ b/arch/parisc/include/asm/atomic.h | |||
@@ -155,14 +155,11 @@ static inline unsigned long __cmpxchg_local(volatile void *ptr, | |||
155 | #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) | 155 | #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) |
156 | #endif | 156 | #endif |
157 | 157 | ||
158 | /* Note that we need not lock read accesses - aligned word writes/reads | 158 | /* |
159 | * are atomic, so a reader never sees unconsistent values. | 159 | * Note that we need not lock read accesses - aligned word writes/reads |
160 | * | 160 | * are atomic, so a reader never sees inconsistent values. |
161 | * Cache-line alignment would conflict with, for example, linux/module.h | ||
162 | */ | 161 | */ |
163 | 162 | ||
164 | typedef struct { volatile int counter; } atomic_t; | ||
165 | |||
166 | /* It's possible to reduce all atomic operations to either | 163 | /* It's possible to reduce all atomic operations to either |
167 | * __atomic_add_return, atomic_set and atomic_read (the latter | 164 | * __atomic_add_return, atomic_set and atomic_read (the latter |
168 | * is there only for consistency). | 165 | * is there only for consistency). |
@@ -260,8 +257,6 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
260 | 257 | ||
261 | #ifdef CONFIG_64BIT | 258 | #ifdef CONFIG_64BIT |
262 | 259 | ||
263 | typedef struct { volatile s64 counter; } atomic64_t; | ||
264 | |||
265 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) | 260 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) |
266 | 261 | ||
267 | static __inline__ int | 262 | static __inline__ int |
diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h index 499be5bdd6fa..b401950f5259 100644 --- a/arch/powerpc/include/asm/atomic.h +++ b/arch/powerpc/include/asm/atomic.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * PowerPC atomic operations | 5 | * PowerPC atomic operations |
6 | */ | 6 | */ |
7 | 7 | ||
8 | typedef struct { int counter; } atomic_t; | 8 | #include <linux/types.h> |
9 | 9 | ||
10 | #ifdef __KERNEL__ | 10 | #ifdef __KERNEL__ |
11 | #include <linux/compiler.h> | 11 | #include <linux/compiler.h> |
@@ -251,8 +251,6 @@ static __inline__ int atomic_dec_if_positive(atomic_t *v) | |||
251 | 251 | ||
252 | #ifdef __powerpc64__ | 252 | #ifdef __powerpc64__ |
253 | 253 | ||
254 | typedef struct { long counter; } atomic64_t; | ||
255 | |||
256 | #define ATOMIC64_INIT(i) { (i) } | 254 | #define ATOMIC64_INIT(i) { (i) } |
257 | 255 | ||
258 | static __inline__ long atomic64_read(const atomic64_t *v) | 256 | static __inline__ long atomic64_read(const atomic64_t *v) |
diff --git a/arch/powerpc/include/asm/hugetlb.h b/arch/powerpc/include/asm/hugetlb.h index 26f0d0ab27a5..b1dafb6a9743 100644 --- a/arch/powerpc/include/asm/hugetlb.h +++ b/arch/powerpc/include/asm/hugetlb.h | |||
@@ -18,6 +18,12 @@ pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, | |||
18 | pte_t *ptep); | 18 | pte_t *ptep); |
19 | 19 | ||
20 | /* | 20 | /* |
21 | * The version of vma_mmu_pagesize() in arch/powerpc/mm/hugetlbpage.c needs | ||
22 | * to override the version in mm/hugetlb.c | ||
23 | */ | ||
24 | #define vma_mmu_pagesize vma_mmu_pagesize | ||
25 | |||
26 | /* | ||
21 | * If the arch doesn't supply something else, assume that hugepage | 27 | * If the arch doesn't supply something else, assume that hugepage |
22 | * size aligned regions are ok without further preparation. | 28 | * size aligned regions are ok without further preparation. |
23 | */ | 29 | */ |
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index de79915452c8..989edcdf0297 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c | |||
@@ -96,9 +96,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
96 | 96 | ||
97 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 97 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
98 | { | 98 | { |
99 | mutex_lock(&kprobe_mutex); | 99 | if (p->ainsn.insn) { |
100 | free_insn_slot(p->ainsn.insn, 0); | 100 | free_insn_slot(p->ainsn.insn, 0); |
101 | mutex_unlock(&kprobe_mutex); | 101 | p->ainsn.insn = NULL; |
102 | } | ||
102 | } | 103 | } |
103 | 104 | ||
104 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 105 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c index 201c7a5486cb..9920d6a7cf29 100644 --- a/arch/powerpc/mm/hugetlbpage.c +++ b/arch/powerpc/mm/hugetlbpage.c | |||
@@ -512,6 +512,13 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, | |||
512 | return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); | 512 | return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); |
513 | } | 513 | } |
514 | 514 | ||
515 | unsigned long vma_mmu_pagesize(struct vm_area_struct *vma) | ||
516 | { | ||
517 | unsigned int psize = get_slice_psize(vma->vm_mm, vma->vm_start); | ||
518 | |||
519 | return 1UL << mmu_psize_to_shift(psize); | ||
520 | } | ||
521 | |||
515 | /* | 522 | /* |
516 | * Called by asm hashtable.S for doing lazy icache flush | 523 | * Called by asm hashtable.S for doing lazy icache flush |
517 | */ | 524 | */ |
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 53b06ebb3f2f..f00f09a77f12 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -132,7 +132,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
132 | /* this should work for most non-highmem platforms */ | 132 | /* this should work for most non-highmem platforms */ |
133 | zone = pgdata->node_zones; | 133 | zone = pgdata->node_zones; |
134 | 134 | ||
135 | return __add_pages(zone, start_pfn, nr_pages); | 135 | return __add_pages(nid, zone, start_pfn, nr_pages); |
136 | } | 136 | } |
137 | #endif /* CONFIG_MEMORY_HOTPLUG */ | 137 | #endif /* CONFIG_MEMORY_HOTPLUG */ |
138 | 138 | ||
diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h index 2d184655bc5d..de432f2de2d2 100644 --- a/arch/s390/include/asm/atomic.h +++ b/arch/s390/include/asm/atomic.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __ARCH_S390_ATOMIC__ | 2 | #define __ARCH_S390_ATOMIC__ |
3 | 3 | ||
4 | #include <linux/compiler.h> | 4 | #include <linux/compiler.h> |
5 | #include <linux/types.h> | ||
5 | 6 | ||
6 | /* | 7 | /* |
7 | * include/asm-s390/atomic.h | 8 | * include/asm-s390/atomic.h |
@@ -23,9 +24,6 @@ | |||
23 | * S390 uses 'Compare And Swap' for atomicity in SMP enviroment | 24 | * S390 uses 'Compare And Swap' for atomicity in SMP enviroment |
24 | */ | 25 | */ |
25 | 26 | ||
26 | typedef struct { | ||
27 | int counter; | ||
28 | } __attribute__ ((aligned (4))) atomic_t; | ||
29 | #define ATOMIC_INIT(i) { (i) } | 27 | #define ATOMIC_INIT(i) { (i) } |
30 | 28 | ||
31 | #ifdef __KERNEL__ | 29 | #ifdef __KERNEL__ |
@@ -149,9 +147,6 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
149 | #undef __CS_LOOP | 147 | #undef __CS_LOOP |
150 | 148 | ||
151 | #ifdef __s390x__ | 149 | #ifdef __s390x__ |
152 | typedef struct { | ||
153 | long long counter; | ||
154 | } __attribute__ ((aligned (8))) atomic64_t; | ||
155 | #define ATOMIC64_INIT(i) { (i) } | 150 | #define ATOMIC64_INIT(i) { (i) } |
156 | 151 | ||
157 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) | 152 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) |
diff --git a/arch/s390/include/asm/s390_rdev.h b/arch/s390/include/asm/s390_rdev.h deleted file mode 100644 index 6fa20442a48c..000000000000 --- a/arch/s390/include/asm/s390_rdev.h +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-s390/ccwdev.h | ||
3 | * | ||
4 | * Copyright (C) 2002,2005 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> | ||
6 | * Carsten Otte <cotte@de.ibm.com> | ||
7 | * | ||
8 | * Interface for s390 root device | ||
9 | */ | ||
10 | |||
11 | #ifndef _S390_RDEV_H_ | ||
12 | #define _S390_RDEV_H_ | ||
13 | extern struct device *s390_root_dev_register(const char *); | ||
14 | extern void s390_root_dev_unregister(struct device *); | ||
15 | #endif /* _S390_RDEV_H_ */ | ||
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 569079ec4ff0..9b92856632cf 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -218,9 +218,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
218 | 218 | ||
219 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 219 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
220 | { | 220 | { |
221 | mutex_lock(&kprobe_mutex); | 221 | if (p->ainsn.insn) { |
222 | free_insn_slot(p->ainsn.insn, 0); | 222 | free_insn_slot(p->ainsn.insn, 0); |
223 | mutex_unlock(&kprobe_mutex); | 223 | p->ainsn.insn = NULL; |
224 | } | ||
224 | } | 225 | } |
225 | 226 | ||
226 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 227 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 158b0d6d7046..f0258ca3b17e 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c | |||
@@ -183,7 +183,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
183 | rc = vmem_add_mapping(start, size); | 183 | rc = vmem_add_mapping(start, size); |
184 | if (rc) | 184 | if (rc) |
185 | return rc; | 185 | return rc; |
186 | rc = __add_pages(zone, PFN_DOWN(start), PFN_DOWN(size)); | 186 | rc = __add_pages(nid, zone, PFN_DOWN(start), PFN_DOWN(size)); |
187 | if (rc) | 187 | if (rc) |
188 | vmem_remove_mapping(start, size); | 188 | vmem_remove_mapping(start, size); |
189 | return rc; | 189 | return rc; |
diff --git a/arch/sh/include/asm/atomic.h b/arch/sh/include/asm/atomic.h index c043ef003028..6327ffbb1992 100644 --- a/arch/sh/include/asm/atomic.h +++ b/arch/sh/include/asm/atomic.h | |||
@@ -7,16 +7,15 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | typedef struct { volatile int counter; } atomic_t; | 10 | #include <linux/compiler.h> |
11 | #include <linux/types.h> | ||
12 | #include <asm/system.h> | ||
11 | 13 | ||
12 | #define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) | 14 | #define ATOMIC_INIT(i) ( (atomic_t) { (i) } ) |
13 | 15 | ||
14 | #define atomic_read(v) ((v)->counter) | 16 | #define atomic_read(v) ((v)->counter) |
15 | #define atomic_set(v,i) ((v)->counter = (i)) | 17 | #define atomic_set(v,i) ((v)->counter = (i)) |
16 | 18 | ||
17 | #include <linux/compiler.h> | ||
18 | #include <asm/system.h> | ||
19 | |||
20 | #if defined(CONFIG_GUSA_RB) | 19 | #if defined(CONFIG_GUSA_RB) |
21 | #include <asm/atomic-grb.h> | 20 | #include <asm/atomic-grb.h> |
22 | #elif defined(CONFIG_CPU_SH4A) | 21 | #elif defined(CONFIG_CPU_SH4A) |
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index 88807a2aacc3..c0aa3d83ec0e 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c | |||
@@ -13,6 +13,7 @@ | |||
13 | */ | 13 | */ |
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/ptrace.h> | 15 | #include <linux/ptrace.h> |
16 | #include <linux/hardirq.h> | ||
16 | #include <linux/init.h> | 17 | #include <linux/init.h> |
17 | #include <linux/spinlock.h> | 18 | #include <linux/spinlock.h> |
18 | #include <linux/module.h> | 19 | #include <linux/module.h> |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 6cbef8caeb56..3edf297c829b 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -311,7 +311,8 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
311 | pgdat = NODE_DATA(nid); | 311 | pgdat = NODE_DATA(nid); |
312 | 312 | ||
313 | /* We only have ZONE_NORMAL, so this is easy.. */ | 313 | /* We only have ZONE_NORMAL, so this is easy.. */ |
314 | ret = __add_pages(pgdat->node_zones + ZONE_NORMAL, start_pfn, nr_pages); | 314 | ret = __add_pages(nid, pgdat->node_zones + ZONE_NORMAL, |
315 | start_pfn, nr_pages); | ||
315 | if (unlikely(ret)) | 316 | if (unlikely(ret)) |
316 | printk("%s: Failed, __add_pages() == %d\n", __func__, ret); | 317 | printk("%s: Failed, __add_pages() == %d\n", __func__, ret); |
317 | 318 | ||
diff --git a/arch/sparc/include/asm/atomic_32.h b/arch/sparc/include/asm/atomic_32.h index 5c944b5a8040..ce465975a6a5 100644 --- a/arch/sparc/include/asm/atomic_32.h +++ b/arch/sparc/include/asm/atomic_32.h | |||
@@ -13,8 +13,6 @@ | |||
13 | 13 | ||
14 | #include <linux/types.h> | 14 | #include <linux/types.h> |
15 | 15 | ||
16 | typedef struct { volatile int counter; } atomic_t; | ||
17 | |||
18 | #ifdef __KERNEL__ | 16 | #ifdef __KERNEL__ |
19 | 17 | ||
20 | #define ATOMIC_INIT(i) { (i) } | 18 | #define ATOMIC_INIT(i) { (i) } |
diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h index 5982c5ae7f07..a0a706492696 100644 --- a/arch/sparc/include/asm/atomic_64.h +++ b/arch/sparc/include/asm/atomic_64.h | |||
@@ -10,9 +10,6 @@ | |||
10 | #include <linux/types.h> | 10 | #include <linux/types.h> |
11 | #include <asm/system.h> | 11 | #include <asm/system.h> |
12 | 12 | ||
13 | typedef struct { volatile int counter; } atomic_t; | ||
14 | typedef struct { volatile __s64 counter; } atomic64_t; | ||
15 | |||
16 | #define ATOMIC_INIT(i) { (i) } | 13 | #define ATOMIC_INIT(i) { (i) } |
17 | #define ATOMIC64_INIT(i) { (i) } | 14 | #define ATOMIC64_INIT(i) { (i) } |
18 | 15 | ||
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c index 44e490419495..7384d8accfe7 100644 --- a/arch/um/kernel/trap.c +++ b/arch/um/kernel/trap.c | |||
@@ -64,11 +64,10 @@ good_area: | |||
64 | 64 | ||
65 | do { | 65 | do { |
66 | int fault; | 66 | int fault; |
67 | survive: | 67 | |
68 | fault = handle_mm_fault(mm, vma, address, is_write); | 68 | fault = handle_mm_fault(mm, vma, address, is_write); |
69 | if (unlikely(fault & VM_FAULT_ERROR)) { | 69 | if (unlikely(fault & VM_FAULT_ERROR)) { |
70 | if (fault & VM_FAULT_OOM) { | 70 | if (fault & VM_FAULT_OOM) { |
71 | err = -ENOMEM; | ||
72 | goto out_of_memory; | 71 | goto out_of_memory; |
73 | } else if (fault & VM_FAULT_SIGBUS) { | 72 | } else if (fault & VM_FAULT_SIGBUS) { |
74 | err = -EACCES; | 73 | err = -EACCES; |
@@ -104,18 +103,14 @@ out: | |||
104 | out_nosemaphore: | 103 | out_nosemaphore: |
105 | return err; | 104 | return err; |
106 | 105 | ||
107 | /* | ||
108 | * We ran out of memory, or some other thing happened to us that made | ||
109 | * us unable to handle the page fault gracefully. | ||
110 | */ | ||
111 | out_of_memory: | 106 | out_of_memory: |
112 | if (is_global_init(current)) { | 107 | /* |
113 | up_read(&mm->mmap_sem); | 108 | * We ran out of memory, call the OOM killer, and return the userspace |
114 | yield(); | 109 | * (which will retry the fault, or kill us if we got oom-killed). |
115 | down_read(&mm->mmap_sem); | 110 | */ |
116 | goto survive; | 111 | up_read(&mm->mmap_sem); |
117 | } | 112 | pagefault_out_of_memory(); |
118 | goto out; | 113 | return 0; |
119 | } | 114 | } |
120 | 115 | ||
121 | static void bad_segv(struct faultinfo fi, unsigned long ip) | 116 | static void bad_segv(struct faultinfo fi, unsigned long ip) |
@@ -214,9 +209,6 @@ unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user, | |||
214 | si.si_addr = (void __user *)address; | 209 | si.si_addr = (void __user *)address; |
215 | current->thread.arch.faultinfo = fi; | 210 | current->thread.arch.faultinfo = fi; |
216 | force_sig_info(SIGBUS, &si, current); | 211 | force_sig_info(SIGBUS, &si, current); |
217 | } else if (err == -ENOMEM) { | ||
218 | printk(KERN_INFO "VM: killing process %s\n", current->comm); | ||
219 | do_exit(SIGKILL); | ||
220 | } else { | 212 | } else { |
221 | BUG_ON(err != -EFAULT); | 213 | BUG_ON(err != -EFAULT); |
222 | si.si_signo = SIGSEGV; | 214 | si.si_signo = SIGSEGV; |
diff --git a/arch/x86/include/asm/atomic_32.h b/arch/x86/include/asm/atomic_32.h index ad5b9f6ecddf..85b46fba4229 100644 --- a/arch/x86/include/asm/atomic_32.h +++ b/arch/x86/include/asm/atomic_32.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _ASM_X86_ATOMIC_32_H | 2 | #define _ASM_X86_ATOMIC_32_H |
3 | 3 | ||
4 | #include <linux/compiler.h> | 4 | #include <linux/compiler.h> |
5 | #include <linux/types.h> | ||
5 | #include <asm/processor.h> | 6 | #include <asm/processor.h> |
6 | #include <asm/cmpxchg.h> | 7 | #include <asm/cmpxchg.h> |
7 | 8 | ||
@@ -10,15 +11,6 @@ | |||
10 | * resource counting etc.. | 11 | * resource counting etc.. |
11 | */ | 12 | */ |
12 | 13 | ||
13 | /* | ||
14 | * Make sure gcc doesn't try to be clever and move things around | ||
15 | * on us. We need to use _exactly_ the address the user gave us, | ||
16 | * not some alias that contains the same information. | ||
17 | */ | ||
18 | typedef struct { | ||
19 | int counter; | ||
20 | } atomic_t; | ||
21 | |||
22 | #define ATOMIC_INIT(i) { (i) } | 14 | #define ATOMIC_INIT(i) { (i) } |
23 | 15 | ||
24 | /** | 16 | /** |
diff --git a/arch/x86/include/asm/atomic_64.h b/arch/x86/include/asm/atomic_64.h index 279d2a731f3f..8c21731984da 100644 --- a/arch/x86/include/asm/atomic_64.h +++ b/arch/x86/include/asm/atomic_64.h | |||
@@ -1,25 +1,15 @@ | |||
1 | #ifndef _ASM_X86_ATOMIC_64_H | 1 | #ifndef _ASM_X86_ATOMIC_64_H |
2 | #define _ASM_X86_ATOMIC_64_H | 2 | #define _ASM_X86_ATOMIC_64_H |
3 | 3 | ||
4 | #include <linux/types.h> | ||
4 | #include <asm/alternative.h> | 5 | #include <asm/alternative.h> |
5 | #include <asm/cmpxchg.h> | 6 | #include <asm/cmpxchg.h> |
6 | 7 | ||
7 | /* atomic_t should be 32 bit signed type */ | ||
8 | |||
9 | /* | 8 | /* |
10 | * Atomic operations that C can't guarantee us. Useful for | 9 | * Atomic operations that C can't guarantee us. Useful for |
11 | * resource counting etc.. | 10 | * resource counting etc.. |
12 | */ | 11 | */ |
13 | 12 | ||
14 | /* | ||
15 | * Make sure gcc doesn't try to be clever and move things around | ||
16 | * on us. We need to use _exactly_ the address the user gave us, | ||
17 | * not some alias that contains the same information. | ||
18 | */ | ||
19 | typedef struct { | ||
20 | int counter; | ||
21 | } atomic_t; | ||
22 | |||
23 | #define ATOMIC_INIT(i) { (i) } | 13 | #define ATOMIC_INIT(i) { (i) } |
24 | 14 | ||
25 | /** | 15 | /** |
@@ -191,11 +181,7 @@ static inline int atomic_sub_return(int i, atomic_t *v) | |||
191 | #define atomic_inc_return(v) (atomic_add_return(1, v)) | 181 | #define atomic_inc_return(v) (atomic_add_return(1, v)) |
192 | #define atomic_dec_return(v) (atomic_sub_return(1, v)) | 182 | #define atomic_dec_return(v) (atomic_sub_return(1, v)) |
193 | 183 | ||
194 | /* An 64bit atomic type */ | 184 | /* The 64-bit atomic type */ |
195 | |||
196 | typedef struct { | ||
197 | long counter; | ||
198 | } atomic64_t; | ||
199 | 185 | ||
200 | #define ATOMIC64_INIT(i) { (i) } | 186 | #define ATOMIC64_INIT(i) { (i) } |
201 | 187 | ||
diff --git a/arch/x86/include/asm/unwind.h b/arch/x86/include/asm/unwind.h deleted file mode 100644 index 8b064bd9c553..000000000000 --- a/arch/x86/include/asm/unwind.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | #ifndef _ASM_X86_UNWIND_H | ||
2 | #define _ASM_X86_UNWIND_H | ||
3 | |||
4 | #define UNW_PC(frame) ((void)(frame), 0UL) | ||
5 | #define UNW_SP(frame) ((void)(frame), 0UL) | ||
6 | #define UNW_FP(frame) ((void)(frame), 0UL) | ||
7 | |||
8 | static inline int arch_unw_user_mode(const void *info) | ||
9 | { | ||
10 | return 0; | ||
11 | } | ||
12 | |||
13 | #endif /* _ASM_X86_UNWIND_H */ | ||
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c index 6c27679ec6aa..eead6f8f9218 100644 --- a/arch/x86/kernel/kprobes.c +++ b/arch/x86/kernel/kprobes.c | |||
@@ -376,9 +376,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
376 | 376 | ||
377 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 377 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
378 | { | 378 | { |
379 | mutex_lock(&kprobe_mutex); | 379 | if (p->ainsn.insn) { |
380 | free_insn_slot(p->ainsn.insn, (p->ainsn.boostable == 1)); | 380 | free_insn_slot(p->ainsn.insn, (p->ainsn.boostable == 1)); |
381 | mutex_unlock(&kprobe_mutex); | 381 | p->ainsn.insn = NULL; |
382 | } | ||
382 | } | 383 | } |
383 | 384 | ||
384 | static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) | 385 | static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) |
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index ce6650eb64e9..c9a666cdd3db 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
21 | #include <linux/ptrace.h> | 21 | #include <linux/ptrace.h> |
22 | #include <linux/string.h> | 22 | #include <linux/string.h> |
23 | #include <linux/unwind.h> | ||
24 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
25 | #include <linux/errno.h> | 24 | #include <linux/errno.h> |
26 | #include <linux/kexec.h> | 25 | #include <linux/kexec.h> |
@@ -51,7 +50,6 @@ | |||
51 | #include <asm/debugreg.h> | 50 | #include <asm/debugreg.h> |
52 | #include <asm/atomic.h> | 51 | #include <asm/atomic.h> |
53 | #include <asm/system.h> | 52 | #include <asm/system.h> |
54 | #include <asm/unwind.h> | ||
55 | #include <asm/traps.h> | 53 | #include <asm/traps.h> |
56 | #include <asm/desc.h> | 54 | #include <asm/desc.h> |
57 | #include <asm/i387.h> | 55 | #include <asm/i387.h> |
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 57ec8c86a877..9e268b6b204e 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c | |||
@@ -667,7 +667,6 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code) | |||
667 | if (unlikely(in_atomic() || !mm)) | 667 | if (unlikely(in_atomic() || !mm)) |
668 | goto bad_area_nosemaphore; | 668 | goto bad_area_nosemaphore; |
669 | 669 | ||
670 | again: | ||
671 | /* | 670 | /* |
672 | * When running in the kernel we expect faults to occur only to | 671 | * When running in the kernel we expect faults to occur only to |
673 | * addresses in user space. All other faults represent errors in the | 672 | * addresses in user space. All other faults represent errors in the |
@@ -859,25 +858,14 @@ no_context: | |||
859 | oops_end(flags, regs, sig); | 858 | oops_end(flags, regs, sig); |
860 | #endif | 859 | #endif |
861 | 860 | ||
862 | /* | ||
863 | * We ran out of memory, or some other thing happened to us that made | ||
864 | * us unable to handle the page fault gracefully. | ||
865 | */ | ||
866 | out_of_memory: | 861 | out_of_memory: |
862 | /* | ||
863 | * We ran out of memory, call the OOM killer, and return the userspace | ||
864 | * (which will retry the fault, or kill us if we got oom-killed). | ||
865 | */ | ||
867 | up_read(&mm->mmap_sem); | 866 | up_read(&mm->mmap_sem); |
868 | if (is_global_init(tsk)) { | 867 | pagefault_out_of_memory(); |
869 | yield(); | 868 | return; |
870 | /* | ||
871 | * Re-lookup the vma - in theory the vma tree might | ||
872 | * have changed: | ||
873 | */ | ||
874 | goto again; | ||
875 | } | ||
876 | |||
877 | printk("VM: killing process %s\n", tsk->comm); | ||
878 | if (error_code & PF_USER) | ||
879 | do_group_exit(SIGKILL); | ||
880 | goto no_context; | ||
881 | 869 | ||
882 | do_sigbus: | 870 | do_sigbus: |
883 | up_read(&mm->mmap_sem); | 871 | up_read(&mm->mmap_sem); |
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index f99a6c6c432e..544d724caeee 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -1079,7 +1079,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
1079 | unsigned long start_pfn = start >> PAGE_SHIFT; | 1079 | unsigned long start_pfn = start >> PAGE_SHIFT; |
1080 | unsigned long nr_pages = size >> PAGE_SHIFT; | 1080 | unsigned long nr_pages = size >> PAGE_SHIFT; |
1081 | 1081 | ||
1082 | return __add_pages(zone, start_pfn, nr_pages); | 1082 | return __add_pages(nid, zone, start_pfn, nr_pages); |
1083 | } | 1083 | } |
1084 | #endif | 1084 | #endif |
1085 | 1085 | ||
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 9f7a0d24d42a..54c437e96541 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -857,7 +857,7 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
857 | if (last_mapped_pfn > max_pfn_mapped) | 857 | if (last_mapped_pfn > max_pfn_mapped) |
858 | max_pfn_mapped = last_mapped_pfn; | 858 | max_pfn_mapped = last_mapped_pfn; |
859 | 859 | ||
860 | ret = __add_pages(zone, start_pfn, nr_pages); | 860 | ret = __add_pages(nid, zone, start_pfn, nr_pages); |
861 | WARN_ON_ONCE(ret); | 861 | WARN_ON_ONCE(ret); |
862 | 862 | ||
863 | return ret; | 863 | return ret; |