diff options
author | Paul Mackerras <paulus@samba.org> | 2008-03-03 05:31:09 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-03-03 05:31:09 -0500 |
commit | 3cecdda3f169f22f324f78fd544beee68e3cc6a4 (patch) | |
tree | e7c2995ddc2690d1be695a1525bcd16d3965548d /include | |
parent | b9c64498f53e0f4d90eec03048f73ac215bb6f79 (diff) | |
parent | da40451bba23b51eaca4170a095891646ce72104 (diff) |
Merge branch 'for-2.6.25' of master.kernel.org:/pub/scm/linux/kernel/git/arnd/cell-2.6 into merge
Diffstat (limited to 'include')
56 files changed, 352 insertions, 90 deletions
diff --git a/include/asm-arm/arch-pxa/entry-macro.S b/include/asm-arm/arch-pxa/entry-macro.S index b7e730851461..c145bb01bc8f 100644 --- a/include/asm-arm/arch-pxa/entry-macro.S +++ b/include/asm-arm/arch-pxa/entry-macro.S | |||
@@ -35,7 +35,7 @@ | |||
35 | 1004: | 35 | 1004: |
36 | mrc p6, 0, \irqstat, c6, c0, 0 @ ICIP2 | 36 | mrc p6, 0, \irqstat, c6, c0, 0 @ ICIP2 |
37 | mrc p6, 0, \irqnr, c7, c0, 0 @ ICMR2 | 37 | mrc p6, 0, \irqnr, c7, c0, 0 @ ICMR2 |
38 | ands \irqstat, \irqstat, \irqnr | 38 | ands \irqnr, \irqstat, \irqnr |
39 | beq 1003f | 39 | beq 1003f |
40 | rsb \irqstat, \irqnr, #0 | 40 | rsb \irqstat, \irqnr, #0 |
41 | and \irqstat, \irqstat, \irqnr | 41 | and \irqstat, \irqstat, \irqnr |
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index ac175b4d10cb..2357a73340d4 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -520,6 +520,9 @@ | |||
520 | #define MCCR_FSRIE (1 << 1) /* FIFO Service Request Interrupt Enable */ | 520 | #define MCCR_FSRIE (1 << 1) /* FIFO Service Request Interrupt Enable */ |
521 | 521 | ||
522 | #define GCR __REG(0x4050000C) /* Global Control Register */ | 522 | #define GCR __REG(0x4050000C) /* Global Control Register */ |
523 | #ifdef CONFIG_PXA3xx | ||
524 | #define GCR_CLKBPB (1 << 31) /* Internal clock enable */ | ||
525 | #endif | ||
523 | #define GCR_nDMAEN (1 << 24) /* non DMA Enable */ | 526 | #define GCR_nDMAEN (1 << 24) /* non DMA Enable */ |
524 | #define GCR_CDONE_IE (1 << 19) /* Command Done Interrupt Enable */ | 527 | #define GCR_CDONE_IE (1 << 19) /* Command Done Interrupt Enable */ |
525 | #define GCR_SDONE_IE (1 << 18) /* Status Done Interrupt Enable */ | 528 | #define GCR_SDONE_IE (1 << 18) /* Status Done Interrupt Enable */ |
diff --git a/include/asm-arm/kexec.h b/include/asm-arm/kexec.h index 1ee17b6951d0..47fe34d692da 100644 --- a/include/asm-arm/kexec.h +++ b/include/asm-arm/kexec.h | |||
@@ -8,7 +8,7 @@ | |||
8 | /* Maximum address we can reach in physical address mode */ | 8 | /* Maximum address we can reach in physical address mode */ |
9 | #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) | 9 | #define KEXEC_DESTINATION_MEMORY_LIMIT (-1UL) |
10 | /* Maximum address we can use for the control code buffer */ | 10 | /* Maximum address we can use for the control code buffer */ |
11 | #define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE | 11 | #define KEXEC_CONTROL_MEMORY_LIMIT (-1UL) |
12 | 12 | ||
13 | #define KEXEC_CONTROL_CODE_SIZE 4096 | 13 | #define KEXEC_CONTROL_CODE_SIZE 4096 |
14 | 14 | ||
diff --git a/include/asm-arm/unaligned.h b/include/asm-arm/unaligned.h index 8431f6eed5c6..5db03cf3b905 100644 --- a/include/asm-arm/unaligned.h +++ b/include/asm-arm/unaligned.h | |||
@@ -40,16 +40,16 @@ extern int __bug_unaligned_x(const void *ptr); | |||
40 | */ | 40 | */ |
41 | 41 | ||
42 | #define __get_unaligned_2_le(__p) \ | 42 | #define __get_unaligned_2_le(__p) \ |
43 | (__p[0] | __p[1] << 8) | 43 | (unsigned int)(__p[0] | __p[1] << 8) |
44 | 44 | ||
45 | #define __get_unaligned_2_be(__p) \ | 45 | #define __get_unaligned_2_be(__p) \ |
46 | (__p[0] << 8 | __p[1]) | 46 | (unsigned int)(__p[0] << 8 | __p[1]) |
47 | 47 | ||
48 | #define __get_unaligned_4_le(__p) \ | 48 | #define __get_unaligned_4_le(__p) \ |
49 | (__p[0] | __p[1] << 8 | __p[2] << 16 | __p[3] << 24) | 49 | (unsigned int)(__p[0] | __p[1] << 8 | __p[2] << 16 | __p[3] << 24) |
50 | 50 | ||
51 | #define __get_unaligned_4_be(__p) \ | 51 | #define __get_unaligned_4_be(__p) \ |
52 | (__p[0] << 24 | __p[1] << 16 | __p[2] << 8 | __p[3]) | 52 | (unsigned int)(__p[0] << 24 | __p[1] << 16 | __p[2] << 8 | __p[3]) |
53 | 53 | ||
54 | #define __get_unaligned_8_le(__p) \ | 54 | #define __get_unaligned_8_le(__p) \ |
55 | ((unsigned long long)__get_unaligned_4_le((__p+4)) << 32 | \ | 55 | ((unsigned long long)__get_unaligned_4_le((__p+4)) << 32 | \ |
diff --git a/include/asm-avr32/pgtable.h b/include/asm-avr32/pgtable.h index 018f6e2a0242..3ae7b548fce7 100644 --- a/include/asm-avr32/pgtable.h +++ b/include/asm-avr32/pgtable.h | |||
@@ -157,6 +157,7 @@ extern struct page *empty_zero_page; | |||
157 | #define _PAGE_S(x) _PAGE_NORMAL(x) | 157 | #define _PAGE_S(x) _PAGE_NORMAL(x) |
158 | 158 | ||
159 | #define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ) | 159 | #define PAGE_COPY _PAGE_P(PAGE_WRITE | PAGE_READ) |
160 | #define PAGE_SHARED _PAGE_S(PAGE_WRITE | PAGE_READ) | ||
160 | 161 | ||
161 | #ifndef __ASSEMBLY__ | 162 | #ifndef __ASSEMBLY__ |
162 | /* | 163 | /* |
diff --git a/include/asm-blackfin/gptimers.h b/include/asm-blackfin/gptimers.h index 8265ea473d5b..4f318f1fd2d9 100644 --- a/include/asm-blackfin/gptimers.h +++ b/include/asm-blackfin/gptimers.h | |||
@@ -1,12 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm/bf5xx_timers.h | 2 | * gptimers.h - Blackfin General Purpose Timer structs/defines/prototypes |
3 | * | ||
4 | * This file contains the major Data structures and constants | ||
5 | * used for General Purpose Timer Implementation in BF5xx | ||
6 | * | 3 | * |
4 | * Copyright (c) 2005-2008 Analog Devices Inc. | ||
7 | * Copyright (C) 2005 John DeHority | 5 | * Copyright (C) 2005 John DeHority |
8 | * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) | 6 | * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) |
9 | * | 7 | * |
8 | * Licensed under the GPL-2. | ||
10 | */ | 9 | */ |
11 | 10 | ||
12 | #ifndef _BLACKFIN_TIMERS_H_ | 11 | #ifndef _BLACKFIN_TIMERS_H_ |
diff --git a/include/asm-blackfin/irq.h b/include/asm-blackfin/irq.h index 65480dab244e..86b67834354d 100644 --- a/include/asm-blackfin/irq.h +++ b/include/asm-blackfin/irq.h | |||
@@ -67,4 +67,6 @@ static __inline__ int irq_canonicalize(int irq) | |||
67 | #define NO_IRQ ((unsigned int)(-1)) | 67 | #define NO_IRQ ((unsigned int)(-1)) |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | #define SIC_SYSIRQ(irq) (irq - (IRQ_CORETMR + 1)) | ||
71 | |||
70 | #endif /* _BFIN_IRQ_H_ */ | 72 | #endif /* _BFIN_IRQ_H_ */ |
diff --git a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h index 15dbc21eed8b..c0694ecd2ecd 100644 --- a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h +++ b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) | 23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) |
24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) | 24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) |
25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) | 25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) |
26 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) | ||
27 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) | 26 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) |
28 | 27 | ||
29 | #define UART_PUT_CHAR(uart, v) bfin_write16(((uart)->port.membase + OFFSET_THR), v) | 28 | #define UART_PUT_CHAR(uart, v) bfin_write16(((uart)->port.membase + OFFSET_THR), v) |
@@ -58,6 +57,7 @@ | |||
58 | struct bfin_serial_port { | 57 | struct bfin_serial_port { |
59 | struct uart_port port; | 58 | struct uart_port port; |
60 | unsigned int old_status; | 59 | unsigned int old_status; |
60 | unsigned int lsr; | ||
61 | #ifdef CONFIG_SERIAL_BFIN_DMA | 61 | #ifdef CONFIG_SERIAL_BFIN_DMA |
62 | int tx_done; | 62 | int tx_done; |
63 | int tx_count; | 63 | int tx_count; |
@@ -67,15 +67,31 @@ struct bfin_serial_port { | |||
67 | unsigned int tx_dma_channel; | 67 | unsigned int tx_dma_channel; |
68 | unsigned int rx_dma_channel; | 68 | unsigned int rx_dma_channel; |
69 | struct work_struct tx_dma_workqueue; | 69 | struct work_struct tx_dma_workqueue; |
70 | #else | ||
71 | struct work_struct cts_workqueue; | ||
72 | #endif | 70 | #endif |
73 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | 71 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS |
72 | struct work_struct cts_workqueue; | ||
74 | int cts_pin; | 73 | int cts_pin; |
75 | int rts_pin; | 74 | int rts_pin; |
76 | #endif | 75 | #endif |
77 | }; | 76 | }; |
78 | 77 | ||
78 | /* The hardware clears the LSR bits upon read, so we need to cache | ||
79 | * some of the more fun bits in software so they don't get lost | ||
80 | * when checking the LSR in other code paths (TX). | ||
81 | */ | ||
82 | static inline unsigned int UART_GET_LSR(struct bfin_serial_port *uart) | ||
83 | { | ||
84 | unsigned int lsr = bfin_read16(uart->port.membase + OFFSET_LSR); | ||
85 | uart->lsr |= (lsr & (BI|FE|PE|OE)); | ||
86 | return lsr | uart->lsr; | ||
87 | } | ||
88 | |||
89 | static inline void UART_CLEAR_LSR(struct bfin_serial_port *uart) | ||
90 | { | ||
91 | uart->lsr = 0; | ||
92 | bfin_write16(uart->port.membase + OFFSET_LSR, -1); | ||
93 | } | ||
94 | |||
79 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; | 95 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; |
80 | struct bfin_serial_res { | 96 | struct bfin_serial_res { |
81 | unsigned long uart_base_addr; | 97 | unsigned long uart_base_addr; |
diff --git a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h index 7871d4313f49..b6f513bee56e 100644 --- a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h +++ b/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) | 23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) |
24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) | 24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) |
25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) | 25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) |
26 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) | ||
27 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) | 26 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) |
28 | 27 | ||
29 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) | 28 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) |
@@ -46,6 +45,7 @@ | |||
46 | struct bfin_serial_port { | 45 | struct bfin_serial_port { |
47 | struct uart_port port; | 46 | struct uart_port port; |
48 | unsigned int old_status; | 47 | unsigned int old_status; |
48 | unsigned int lsr; | ||
49 | #ifdef CONFIG_SERIAL_BFIN_DMA | 49 | #ifdef CONFIG_SERIAL_BFIN_DMA |
50 | int tx_done; | 50 | int tx_done; |
51 | int tx_count; | 51 | int tx_count; |
@@ -56,14 +56,34 @@ struct bfin_serial_port { | |||
56 | unsigned int rx_dma_channel; | 56 | unsigned int rx_dma_channel; |
57 | struct work_struct tx_dma_workqueue; | 57 | struct work_struct tx_dma_workqueue; |
58 | #else | 58 | #else |
59 | struct work_struct cts_workqueue; | 59 | # if ANOMALY_05000230 |
60 | unsigned int anomaly_threshold; | ||
61 | # endif | ||
60 | #endif | 62 | #endif |
61 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | 63 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS |
64 | struct work_struct cts_workqueue; | ||
62 | int cts_pin; | 65 | int cts_pin; |
63 | int rts_pin; | 66 | int rts_pin; |
64 | #endif | 67 | #endif |
65 | }; | 68 | }; |
66 | 69 | ||
70 | /* The hardware clears the LSR bits upon read, so we need to cache | ||
71 | * some of the more fun bits in software so they don't get lost | ||
72 | * when checking the LSR in other code paths (TX). | ||
73 | */ | ||
74 | static inline unsigned int UART_GET_LSR(struct bfin_serial_port *uart) | ||
75 | { | ||
76 | unsigned int lsr = bfin_read16(uart->port.membase + OFFSET_LSR); | ||
77 | uart->lsr |= (lsr & (BI|FE|PE|OE)); | ||
78 | return lsr | uart->lsr; | ||
79 | } | ||
80 | |||
81 | static inline void UART_CLEAR_LSR(struct bfin_serial_port *uart) | ||
82 | { | ||
83 | uart->lsr = 0; | ||
84 | bfin_write16(uart->port.membase + OFFSET_LSR, -1); | ||
85 | } | ||
86 | |||
67 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; | 87 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; |
68 | struct bfin_serial_res { | 88 | struct bfin_serial_res { |
69 | unsigned long uart_base_addr; | 89 | unsigned long uart_base_addr; |
diff --git a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h index 86e45c379838..8fc672d31057 100644 --- a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h +++ b/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) | 23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) |
24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) | 24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) |
25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) | 25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) |
26 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) | ||
27 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) | 26 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) |
28 | 27 | ||
29 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) | 28 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) |
@@ -58,6 +57,7 @@ | |||
58 | struct bfin_serial_port { | 57 | struct bfin_serial_port { |
59 | struct uart_port port; | 58 | struct uart_port port; |
60 | unsigned int old_status; | 59 | unsigned int old_status; |
60 | unsigned int lsr; | ||
61 | #ifdef CONFIG_SERIAL_BFIN_DMA | 61 | #ifdef CONFIG_SERIAL_BFIN_DMA |
62 | int tx_done; | 62 | int tx_done; |
63 | int tx_count; | 63 | int tx_count; |
@@ -67,15 +67,31 @@ struct bfin_serial_port { | |||
67 | unsigned int tx_dma_channel; | 67 | unsigned int tx_dma_channel; |
68 | unsigned int rx_dma_channel; | 68 | unsigned int rx_dma_channel; |
69 | struct work_struct tx_dma_workqueue; | 69 | struct work_struct tx_dma_workqueue; |
70 | #else | ||
71 | struct work_struct cts_workqueue; | ||
72 | #endif | 70 | #endif |
73 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | 71 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS |
72 | struct work_struct cts_workqueue; | ||
74 | int cts_pin; | 73 | int cts_pin; |
75 | int rts_pin; | 74 | int rts_pin; |
76 | #endif | 75 | #endif |
77 | }; | 76 | }; |
78 | 77 | ||
78 | /* The hardware clears the LSR bits upon read, so we need to cache | ||
79 | * some of the more fun bits in software so they don't get lost | ||
80 | * when checking the LSR in other code paths (TX). | ||
81 | */ | ||
82 | static inline unsigned int UART_GET_LSR(struct bfin_serial_port *uart) | ||
83 | { | ||
84 | unsigned int lsr = bfin_read16(uart->port.membase + OFFSET_LSR); | ||
85 | uart->lsr |= (lsr & (BI|FE|PE|OE)); | ||
86 | return lsr | uart->lsr; | ||
87 | } | ||
88 | |||
89 | static inline void UART_CLEAR_LSR(struct bfin_serial_port *uart) | ||
90 | { | ||
91 | uart->lsr = 0; | ||
92 | bfin_write16(uart->port.membase + OFFSET_LSR, -1); | ||
93 | } | ||
94 | |||
79 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; | 95 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; |
80 | struct bfin_serial_res { | 96 | struct bfin_serial_res { |
81 | unsigned long uart_base_addr; | 97 | unsigned long uart_base_addr; |
diff --git a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h index 3770aa38ee9f..7e6339f62a50 100644 --- a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h +++ b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h | |||
@@ -24,6 +24,8 @@ | |||
24 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) | 24 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) |
25 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) | 25 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) |
26 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) | 26 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) |
27 | #define UART_GET_MSR(uart) bfin_read16(((uart)->port.membase + OFFSET_MSR)) | ||
28 | #define UART_GET_MCR(uart) bfin_read16(((uart)->port.membase + OFFSET_MCR)) | ||
27 | 29 | ||
28 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) | 30 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) |
29 | #define UART_PUT_DLL(uart,v) bfin_write16(((uart)->port.membase + OFFSET_DLL),v) | 31 | #define UART_PUT_DLL(uart,v) bfin_write16(((uart)->port.membase + OFFSET_DLL),v) |
@@ -32,7 +34,9 @@ | |||
32 | #define UART_PUT_DLH(uart,v) bfin_write16(((uart)->port.membase + OFFSET_DLH),v) | 34 | #define UART_PUT_DLH(uart,v) bfin_write16(((uart)->port.membase + OFFSET_DLH),v) |
33 | #define UART_PUT_LSR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_LSR),v) | 35 | #define UART_PUT_LSR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_LSR),v) |
34 | #define UART_PUT_LCR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_LCR),v) | 36 | #define UART_PUT_LCR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_LCR),v) |
37 | #define UART_CLEAR_LSR(uart) bfin_write16(((uart)->port.membase + OFFSET_LSR), -1) | ||
35 | #define UART_PUT_GCTL(uart,v) bfin_write16(((uart)->port.membase + OFFSET_GCTL),v) | 38 | #define UART_PUT_GCTL(uart,v) bfin_write16(((uart)->port.membase + OFFSET_GCTL),v) |
39 | #define UART_PUT_MCR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_MCR),v) | ||
36 | 40 | ||
37 | #if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) | 41 | #if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) |
38 | # define CONFIG_SERIAL_BFIN_CTSRTS | 42 | # define CONFIG_SERIAL_BFIN_CTSRTS |
@@ -68,10 +72,9 @@ struct bfin_serial_port { | |||
68 | unsigned int tx_dma_channel; | 72 | unsigned int tx_dma_channel; |
69 | unsigned int rx_dma_channel; | 73 | unsigned int rx_dma_channel; |
70 | struct work_struct tx_dma_workqueue; | 74 | struct work_struct tx_dma_workqueue; |
71 | #else | ||
72 | struct work_struct cts_workqueue; | ||
73 | #endif | 75 | #endif |
74 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | 76 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS |
77 | struct work_struct cts_workqueue; | ||
75 | int cts_pin; | 78 | int cts_pin; |
76 | int rts_pin; | 79 | int rts_pin; |
77 | #endif | 80 | #endif |
diff --git a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h index 7871d4313f49..b6f513bee56e 100644 --- a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h +++ b/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) | 23 | #define UART_GET_DLH(uart) bfin_read16(((uart)->port.membase + OFFSET_DLH)) |
24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) | 24 | #define UART_GET_IIR(uart) bfin_read16(((uart)->port.membase + OFFSET_IIR)) |
25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) | 25 | #define UART_GET_LCR(uart) bfin_read16(((uart)->port.membase + OFFSET_LCR)) |
26 | #define UART_GET_LSR(uart) bfin_read16(((uart)->port.membase + OFFSET_LSR)) | ||
27 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) | 26 | #define UART_GET_GCTL(uart) bfin_read16(((uart)->port.membase + OFFSET_GCTL)) |
28 | 27 | ||
29 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) | 28 | #define UART_PUT_CHAR(uart,v) bfin_write16(((uart)->port.membase + OFFSET_THR),v) |
@@ -46,6 +45,7 @@ | |||
46 | struct bfin_serial_port { | 45 | struct bfin_serial_port { |
47 | struct uart_port port; | 46 | struct uart_port port; |
48 | unsigned int old_status; | 47 | unsigned int old_status; |
48 | unsigned int lsr; | ||
49 | #ifdef CONFIG_SERIAL_BFIN_DMA | 49 | #ifdef CONFIG_SERIAL_BFIN_DMA |
50 | int tx_done; | 50 | int tx_done; |
51 | int tx_count; | 51 | int tx_count; |
@@ -56,14 +56,34 @@ struct bfin_serial_port { | |||
56 | unsigned int rx_dma_channel; | 56 | unsigned int rx_dma_channel; |
57 | struct work_struct tx_dma_workqueue; | 57 | struct work_struct tx_dma_workqueue; |
58 | #else | 58 | #else |
59 | struct work_struct cts_workqueue; | 59 | # if ANOMALY_05000230 |
60 | unsigned int anomaly_threshold; | ||
61 | # endif | ||
60 | #endif | 62 | #endif |
61 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS | 63 | #ifdef CONFIG_SERIAL_BFIN_CTSRTS |
64 | struct work_struct cts_workqueue; | ||
62 | int cts_pin; | 65 | int cts_pin; |
63 | int rts_pin; | 66 | int rts_pin; |
64 | #endif | 67 | #endif |
65 | }; | 68 | }; |
66 | 69 | ||
70 | /* The hardware clears the LSR bits upon read, so we need to cache | ||
71 | * some of the more fun bits in software so they don't get lost | ||
72 | * when checking the LSR in other code paths (TX). | ||
73 | */ | ||
74 | static inline unsigned int UART_GET_LSR(struct bfin_serial_port *uart) | ||
75 | { | ||
76 | unsigned int lsr = bfin_read16(uart->port.membase + OFFSET_LSR); | ||
77 | uart->lsr |= (lsr & (BI|FE|PE|OE)); | ||
78 | return lsr | uart->lsr; | ||
79 | } | ||
80 | |||
81 | static inline void UART_CLEAR_LSR(struct bfin_serial_port *uart) | ||
82 | { | ||
83 | uart->lsr = 0; | ||
84 | bfin_write16(uart->port.membase + OFFSET_LSR, -1); | ||
85 | } | ||
86 | |||
67 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; | 87 | struct bfin_serial_port bfin_serial_ports[NR_PORTS]; |
68 | struct bfin_serial_res { | 88 | struct bfin_serial_res { |
69 | unsigned long uart_base_addr; | 89 | unsigned long uart_base_addr; |
diff --git a/include/asm-blackfin/mach-bf561/blackfin.h b/include/asm-blackfin/mach-bf561/blackfin.h index 362617f93845..3a16df2c86d8 100644 --- a/include/asm-blackfin/mach-bf561/blackfin.h +++ b/include/asm-blackfin/mach-bf561/blackfin.h | |||
@@ -49,7 +49,8 @@ | |||
49 | #define bfin_read_FIO_INEN() bfin_read_FIO0_INEN() | 49 | #define bfin_read_FIO_INEN() bfin_read_FIO0_INEN() |
50 | #define bfin_write_FIO_INEN(val) bfin_write_FIO0_INEN(val) | 50 | #define bfin_write_FIO_INEN(val) bfin_write_FIO0_INEN(val) |
51 | 51 | ||
52 | 52 | #define SIC_IWR0 SICA_IWR0 | |
53 | #define SIC_IWR1 SICA_IWR1 | ||
53 | #define SIC_IAR0 SICA_IAR0 | 54 | #define SIC_IAR0 SICA_IAR0 |
54 | #define bfin_write_SIC_IMASK0 bfin_write_SICA_IMASK0 | 55 | #define bfin_write_SIC_IMASK0 bfin_write_SICA_IMASK0 |
55 | #define bfin_write_SIC_IMASK1 bfin_write_SICA_IMASK1 | 56 | #define bfin_write_SIC_IMASK1 bfin_write_SICA_IMASK1 |
diff --git a/include/asm-blackfin/mach-bf561/cdefBF561.h b/include/asm-blackfin/mach-bf561/cdefBF561.h index d667816486c0..1bc8d2f89ccc 100644 --- a/include/asm-blackfin/mach-bf561/cdefBF561.h +++ b/include/asm-blackfin/mach-bf561/cdefBF561.h | |||
@@ -559,6 +559,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
559 | #define bfin_write_PPI0_CONTROL(val) bfin_write16(PPI0_CONTROL,val) | 559 | #define bfin_write_PPI0_CONTROL(val) bfin_write16(PPI0_CONTROL,val) |
560 | #define bfin_read_PPI0_STATUS() bfin_read16(PPI0_STATUS) | 560 | #define bfin_read_PPI0_STATUS() bfin_read16(PPI0_STATUS) |
561 | #define bfin_write_PPI0_STATUS(val) bfin_write16(PPI0_STATUS,val) | 561 | #define bfin_write_PPI0_STATUS(val) bfin_write16(PPI0_STATUS,val) |
562 | #define bfin_clear_PPI0_STATUS() bfin_read_PPI0_STATUS() | ||
562 | #define bfin_read_PPI0_COUNT() bfin_read16(PPI0_COUNT) | 563 | #define bfin_read_PPI0_COUNT() bfin_read16(PPI0_COUNT) |
563 | #define bfin_write_PPI0_COUNT(val) bfin_write16(PPI0_COUNT,val) | 564 | #define bfin_write_PPI0_COUNT(val) bfin_write16(PPI0_COUNT,val) |
564 | #define bfin_read_PPI0_DELAY() bfin_read16(PPI0_DELAY) | 565 | #define bfin_read_PPI0_DELAY() bfin_read16(PPI0_DELAY) |
@@ -570,6 +571,7 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
570 | #define bfin_write_PPI1_CONTROL(val) bfin_write16(PPI1_CONTROL,val) | 571 | #define bfin_write_PPI1_CONTROL(val) bfin_write16(PPI1_CONTROL,val) |
571 | #define bfin_read_PPI1_STATUS() bfin_read16(PPI1_STATUS) | 572 | #define bfin_read_PPI1_STATUS() bfin_read16(PPI1_STATUS) |
572 | #define bfin_write_PPI1_STATUS(val) bfin_write16(PPI1_STATUS,val) | 573 | #define bfin_write_PPI1_STATUS(val) bfin_write16(PPI1_STATUS,val) |
574 | #define bfin_clear_PPI1_STATUS() bfin_read_PPI1_STATUS() | ||
573 | #define bfin_read_PPI1_COUNT() bfin_read16(PPI1_COUNT) | 575 | #define bfin_read_PPI1_COUNT() bfin_read16(PPI1_COUNT) |
574 | #define bfin_write_PPI1_COUNT(val) bfin_write16(PPI1_COUNT,val) | 576 | #define bfin_write_PPI1_COUNT(val) bfin_write16(PPI1_COUNT,val) |
575 | #define bfin_read_PPI1_DELAY() bfin_read16(PPI1_DELAY) | 577 | #define bfin_read_PPI1_DELAY() bfin_read16(PPI1_DELAY) |
diff --git a/include/asm-mips/mach-db1x00/db1200.h b/include/asm-mips/mach-db1x00/db1200.h index 050eae87ff01..a6bdac61ab49 100644 --- a/include/asm-mips/mach-db1x00/db1200.h +++ b/include/asm-mips/mach-db1x00/db1200.h | |||
@@ -25,6 +25,7 @@ | |||
25 | #define __ASM_DB1200_H | 25 | #define __ASM_DB1200_H |
26 | 26 | ||
27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
28 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
28 | 29 | ||
29 | // This is defined in au1000.h with bogus value | 30 | // This is defined in au1000.h with bogus value |
30 | #undef AU1X00_EXTERNAL_INT | 31 | #undef AU1X00_EXTERNAL_INT |
diff --git a/include/asm-mips/mach-db1x00/db1x00.h b/include/asm-mips/mach-db1x00/db1x00.h index 0f5f4c29f4e8..e7a88ba35833 100644 --- a/include/asm-mips/mach-db1x00/db1x00.h +++ b/include/asm-mips/mach-db1x00/db1x00.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #ifndef __ASM_DB1X00_H | 28 | #ifndef __ASM_DB1X00_H |
29 | #define __ASM_DB1X00_H | 29 | #define __ASM_DB1X00_H |
30 | 30 | ||
31 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
31 | 32 | ||
32 | #ifdef CONFIG_MIPS_DB1550 | 33 | #ifdef CONFIG_MIPS_DB1550 |
33 | 34 | ||
diff --git a/include/asm-mips/mach-pb1x00/pb1200.h b/include/asm-mips/mach-pb1x00/pb1200.h index d9f384acfea9..ed5fd7390678 100644 --- a/include/asm-mips/mach-pb1x00/pb1200.h +++ b/include/asm-mips/mach-pb1x00/pb1200.h | |||
@@ -25,6 +25,7 @@ | |||
25 | #define __ASM_PB1200_H | 25 | #define __ASM_PB1200_H |
26 | 26 | ||
27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
28 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
28 | 29 | ||
29 | // This is defined in au1000.h with bogus value | 30 | // This is defined in au1000.h with bogus value |
30 | #undef AU1X00_EXTERNAL_INT | 31 | #undef AU1X00_EXTERNAL_INT |
diff --git a/include/asm-mips/mach-pb1x00/pb1550.h b/include/asm-mips/mach-pb1x00/pb1550.h index 9a4955ce3b4a..c2ab0e2df4ae 100644 --- a/include/asm-mips/mach-pb1x00/pb1550.h +++ b/include/asm-mips/mach-pb1x00/pb1550.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #define __ASM_PB1550_H | 28 | #define __ASM_PB1550_H |
29 | 29 | ||
30 | #include <linux/types.h> | 30 | #include <linux/types.h> |
31 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
31 | 32 | ||
32 | #define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX | 33 | #define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX |
33 | #define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX | 34 | #define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX |
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h index 0d6238987df8..edc0cfd7f6e2 100644 --- a/include/asm-powerpc/reg.h +++ b/include/asm-powerpc/reg.h | |||
@@ -153,6 +153,9 @@ | |||
153 | #define CTRL_RUNLATCH 0x1 | 153 | #define CTRL_RUNLATCH 0x1 |
154 | #define SPRN_DABR 0x3F5 /* Data Address Breakpoint Register */ | 154 | #define SPRN_DABR 0x3F5 /* Data Address Breakpoint Register */ |
155 | #define DABR_TRANSLATION (1UL << 2) | 155 | #define DABR_TRANSLATION (1UL << 2) |
156 | #define SPRN_DABRX 0x3F7 /* Data Address Breakpoint Register Extension */ | ||
157 | #define DABRX_USER (1UL << 0) | ||
158 | #define DABRX_KERNEL (1UL << 1) | ||
156 | #define SPRN_DAR 0x013 /* Data Address Register */ | 159 | #define SPRN_DAR 0x013 /* Data Address Register */ |
157 | #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */ | 160 | #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */ |
158 | #define DSISR_NOHPTE 0x40000000 /* no translation found */ | 161 | #define DSISR_NOHPTE 0x40000000 /* no translation found */ |
diff --git a/include/asm-sh/cpu-sh3/cache.h b/include/asm-sh/cpu-sh3/cache.h index 56bd838b7db4..bee2d81c56bf 100644 --- a/include/asm-sh/cpu-sh3/cache.h +++ b/include/asm-sh/cpu-sh3/cache.h | |||
@@ -35,7 +35,7 @@ | |||
35 | defined(CONFIG_CPU_SUBTYPE_SH7710) || \ | 35 | defined(CONFIG_CPU_SUBTYPE_SH7710) || \ |
36 | defined(CONFIG_CPU_SUBTYPE_SH7720) || \ | 36 | defined(CONFIG_CPU_SUBTYPE_SH7720) || \ |
37 | defined(CONFIG_CPU_SUBTYPE_SH7721) | 37 | defined(CONFIG_CPU_SUBTYPE_SH7721) |
38 | #define CCR3 0xa40000b4 | 38 | #define CCR3_REG 0xa40000b4 |
39 | #define CCR_CACHE_16KB 0x00010000 | 39 | #define CCR_CACHE_16KB 0x00010000 |
40 | #define CCR_CACHE_32KB 0x00020000 | 40 | #define CCR_CACHE_32KB 0x00020000 |
41 | #endif | 41 | #endif |
diff --git a/include/asm-sh/entry-macros.S b/include/asm-sh/entry-macros.S index 500030eae7aa..2dab0b8d9454 100644 --- a/include/asm-sh/entry-macros.S +++ b/include/asm-sh/entry-macros.S | |||
@@ -12,7 +12,7 @@ | |||
12 | not r11, r11 | 12 | not r11, r11 |
13 | stc sr, r10 | 13 | stc sr, r10 |
14 | and r11, r10 | 14 | and r11, r10 |
15 | #ifdef CONFIG_HAS_SR_RB | 15 | #ifdef CONFIG_CPU_HAS_SR_RB |
16 | stc k_g_imask, r11 | 16 | stc k_g_imask, r11 |
17 | or r11, r10 | 17 | or r11, r10 |
18 | #endif | 18 | #endif |
@@ -20,7 +20,7 @@ | |||
20 | .endm | 20 | .endm |
21 | 21 | ||
22 | .macro get_current_thread_info, ti, tmp | 22 | .macro get_current_thread_info, ti, tmp |
23 | #ifdef CONFIG_HAS_SR_RB | 23 | #ifdef CONFIG_CPU_HAS_SR_RB |
24 | stc r7_bank, \ti | 24 | stc r7_bank, \ti |
25 | #else | 25 | #else |
26 | mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp | 26 | mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp |
diff --git a/include/asm-sparc64/ptrace.h b/include/asm-sparc64/ptrace.h index 67341cff2e6b..6da197803efc 100644 --- a/include/asm-sparc64/ptrace.h +++ b/include/asm-sparc64/ptrace.h | |||
@@ -109,6 +109,7 @@ extern unsigned long profile_pc(struct pt_regs *); | |||
109 | #define profile_pc(regs) instruction_pointer(regs) | 109 | #define profile_pc(regs) instruction_pointer(regs) |
110 | #endif | 110 | #endif |
111 | extern void show_regs(struct pt_regs *); | 111 | extern void show_regs(struct pt_regs *); |
112 | extern void __show_regs(struct pt_regs *); | ||
112 | #endif | 113 | #endif |
113 | 114 | ||
114 | #else /* __ASSEMBLY__ */ | 115 | #else /* __ASSEMBLY__ */ |
diff --git a/include/asm-sparc64/reboot.h b/include/asm-sparc64/reboot.h new file mode 100644 index 000000000000..3f3f43f5be5e --- /dev/null +++ b/include/asm-sparc64/reboot.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _SPARC64_REBOOT_H | ||
2 | #define _SPARC64_REBOOT_H | ||
3 | |||
4 | extern void machine_alt_power_off(void); | ||
5 | |||
6 | #endif /* _SPARC64_REBOOT_H */ | ||
diff --git a/include/asm-sparc64/syscalls.h b/include/asm-sparc64/syscalls.h new file mode 100644 index 000000000000..45a43f637a14 --- /dev/null +++ b/include/asm-sparc64/syscalls.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef _SPARC64_SYSCALLS_H | ||
2 | #define _SPARC64_SYSCALLS_H | ||
3 | |||
4 | struct pt_regs; | ||
5 | |||
6 | extern asmlinkage long sparc_do_fork(unsigned long clone_flags, | ||
7 | unsigned long stack_start, | ||
8 | struct pt_regs *regs, | ||
9 | unsigned long stack_size); | ||
10 | |||
11 | extern asmlinkage int sparc_execve(struct pt_regs *regs); | ||
12 | |||
13 | #endif /* _SPARC64_SYSCALLS_H */ | ||
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index 1faefa6d3708..ed91a5d8d4f0 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h | |||
@@ -117,6 +117,7 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \ | |||
117 | extern void sun_do_break(void); | 117 | extern void sun_do_break(void); |
118 | extern int stop_a_enabled; | 118 | extern int stop_a_enabled; |
119 | 119 | ||
120 | extern void fault_in_user_windows(void); | ||
120 | extern void synchronize_user_stack(void); | 121 | extern void synchronize_user_stack(void); |
121 | 122 | ||
122 | extern void __flushw_user(void); | 123 | extern void __flushw_user(void); |
diff --git a/include/asm-x86/futex.h b/include/asm-x86/futex.h index cd9f894dd2d7..c9952ea9f698 100644 --- a/include/asm-x86/futex.h +++ b/include/asm-x86/futex.h | |||
@@ -102,6 +102,13 @@ futex_atomic_op_inuser(int encoded_op, int __user *uaddr) | |||
102 | static inline int | 102 | static inline int |
103 | futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | 103 | futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) |
104 | { | 104 | { |
105 | |||
106 | #if defined(CONFIG_X86_32) && !defined(CONFIG_X86_BSWAP) | ||
107 | /* Real i386 machines have no cmpxchg instruction */ | ||
108 | if (boot_cpu_data.x86 == 3) | ||
109 | return -ENOSYS; | ||
110 | #endif | ||
111 | |||
105 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | 112 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) |
106 | return -EFAULT; | 113 | return -EFAULT; |
107 | 114 | ||
diff --git a/include/asm-x86/lguest.h b/include/asm-x86/lguest.h index 4d9367b72976..9b17571e9bc3 100644 --- a/include/asm-x86/lguest.h +++ b/include/asm-x86/lguest.h | |||
@@ -23,6 +23,17 @@ | |||
23 | /* Found in switcher.S */ | 23 | /* Found in switcher.S */ |
24 | extern unsigned long default_idt_entries[]; | 24 | extern unsigned long default_idt_entries[]; |
25 | 25 | ||
26 | /* Declarations for definitions in lguest_guest.S */ | ||
27 | extern char lguest_noirq_start[], lguest_noirq_end[]; | ||
28 | extern const char lgstart_cli[], lgend_cli[]; | ||
29 | extern const char lgstart_sti[], lgend_sti[]; | ||
30 | extern const char lgstart_popf[], lgend_popf[]; | ||
31 | extern const char lgstart_pushf[], lgend_pushf[]; | ||
32 | extern const char lgstart_iret[], lgend_iret[]; | ||
33 | |||
34 | extern void lguest_iret(void); | ||
35 | extern void lguest_init(void); | ||
36 | |||
26 | struct lguest_regs | 37 | struct lguest_regs |
27 | { | 38 | { |
28 | /* Manually saved part. */ | 39 | /* Manually saved part. */ |
diff --git a/include/asm-x86/nops.h b/include/asm-x86/nops.h index fec025c7f58c..e3b2bce0aff8 100644 --- a/include/asm-x86/nops.h +++ b/include/asm-x86/nops.h | |||
@@ -3,17 +3,29 @@ | |||
3 | 3 | ||
4 | /* Define nops for use with alternative() */ | 4 | /* Define nops for use with alternative() */ |
5 | 5 | ||
6 | /* generic versions from gas */ | 6 | /* generic versions from gas |
7 | #define GENERIC_NOP1 ".byte 0x90\n" | 7 | 1: nop |
8 | #define GENERIC_NOP2 ".byte 0x89,0xf6\n" | 8 | 2: movl %esi,%esi |
9 | #define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n" | 9 | 3: leal 0x00(%esi),%esi |
10 | #define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n" | 10 | 4: leal 0x00(,%esi,1),%esi |
11 | #define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4 | 11 | 6: leal 0x00000000(%esi),%esi |
12 | #define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n" | 12 | 7: leal 0x00000000(,%esi,1),%esi |
13 | #define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n" | 13 | */ |
14 | #define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7 | 14 | #define GENERIC_NOP1 ".byte 0x90\n" |
15 | #define GENERIC_NOP2 ".byte 0x89,0xf6\n" | ||
16 | #define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n" | ||
17 | #define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n" | ||
18 | #define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4 | ||
19 | #define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n" | ||
20 | #define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n" | ||
21 | #define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7 | ||
15 | 22 | ||
16 | /* Opteron 64bit nops */ | 23 | /* Opteron 64bit nops |
24 | 1: nop | ||
25 | 2: osp nop | ||
26 | 3: osp osp nop | ||
27 | 4: osp osp osp nop | ||
28 | */ | ||
17 | #define K8_NOP1 GENERIC_NOP1 | 29 | #define K8_NOP1 GENERIC_NOP1 |
18 | #define K8_NOP2 ".byte 0x66,0x90\n" | 30 | #define K8_NOP2 ".byte 0x66,0x90\n" |
19 | #define K8_NOP3 ".byte 0x66,0x66,0x90\n" | 31 | #define K8_NOP3 ".byte 0x66,0x66,0x90\n" |
@@ -23,19 +35,35 @@ | |||
23 | #define K8_NOP7 K8_NOP4 K8_NOP3 | 35 | #define K8_NOP7 K8_NOP4 K8_NOP3 |
24 | #define K8_NOP8 K8_NOP4 K8_NOP4 | 36 | #define K8_NOP8 K8_NOP4 K8_NOP4 |
25 | 37 | ||
26 | /* K7 nops */ | 38 | /* K7 nops |
27 | /* uses eax dependencies (arbitary choice) */ | 39 | uses eax dependencies (arbitary choice) |
28 | #define K7_NOP1 GENERIC_NOP1 | 40 | 1: nop |
41 | 2: movl %eax,%eax | ||
42 | 3: leal (,%eax,1),%eax | ||
43 | 4: leal 0x00(,%eax,1),%eax | ||
44 | 6: leal 0x00000000(%eax),%eax | ||
45 | 7: leal 0x00000000(,%eax,1),%eax | ||
46 | */ | ||
47 | #define K7_NOP1 GENERIC_NOP1 | ||
29 | #define K7_NOP2 ".byte 0x8b,0xc0\n" | 48 | #define K7_NOP2 ".byte 0x8b,0xc0\n" |
30 | #define K7_NOP3 ".byte 0x8d,0x04,0x20\n" | 49 | #define K7_NOP3 ".byte 0x8d,0x04,0x20\n" |
31 | #define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n" | 50 | #define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n" |
32 | #define K7_NOP5 K7_NOP4 ASM_NOP1 | 51 | #define K7_NOP5 K7_NOP4 ASM_NOP1 |
33 | #define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n" | 52 | #define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n" |
34 | #define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n" | 53 | #define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n" |
35 | #define K7_NOP8 K7_NOP7 ASM_NOP1 | 54 | #define K7_NOP8 K7_NOP7 ASM_NOP1 |
36 | 55 | ||
37 | /* P6 nops */ | 56 | /* P6 nops |
38 | /* uses eax dependencies (Intel-recommended choice) */ | 57 | uses eax dependencies (Intel-recommended choice) |
58 | 1: nop | ||
59 | 2: osp nop | ||
60 | 3: nopl (%eax) | ||
61 | 4: nopl 0x00(%eax) | ||
62 | 5: nopl 0x00(%eax,%eax,1) | ||
63 | 6: osp nopl 0x00(%eax,%eax,1) | ||
64 | 7: nopl 0x00000000(%eax) | ||
65 | 8: nopl 0x00000000(%eax,%eax,1) | ||
66 | */ | ||
39 | #define P6_NOP1 GENERIC_NOP1 | 67 | #define P6_NOP1 GENERIC_NOP1 |
40 | #define P6_NOP2 ".byte 0x66,0x90\n" | 68 | #define P6_NOP2 ".byte 0x66,0x90\n" |
41 | #define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" | 69 | #define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" |
@@ -63,9 +91,7 @@ | |||
63 | #define ASM_NOP6 K7_NOP6 | 91 | #define ASM_NOP6 K7_NOP6 |
64 | #define ASM_NOP7 K7_NOP7 | 92 | #define ASM_NOP7 K7_NOP7 |
65 | #define ASM_NOP8 K7_NOP8 | 93 | #define ASM_NOP8 K7_NOP8 |
66 | #elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMII) || \ | 94 | #elif defined(CONFIG_X86_P6_NOP) |
67 | defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUMM) || \ | ||
68 | defined(CONFIG_MCORE2) || defined(CONFIG_PENTIUM4) | ||
69 | #define ASM_NOP1 P6_NOP1 | 95 | #define ASM_NOP1 P6_NOP1 |
70 | #define ASM_NOP2 P6_NOP2 | 96 | #define ASM_NOP2 P6_NOP2 |
71 | #define ASM_NOP3 P6_NOP3 | 97 | #define ASM_NOP3 P6_NOP3 |
diff --git a/include/asm-x86/page_64.h b/include/asm-x86/page_64.h index f7393bc516ef..143546073b95 100644 --- a/include/asm-x86/page_64.h +++ b/include/asm-x86/page_64.h | |||
@@ -47,8 +47,12 @@ | |||
47 | #define __PHYSICAL_MASK_SHIFT 46 | 47 | #define __PHYSICAL_MASK_SHIFT 46 |
48 | #define __VIRTUAL_MASK_SHIFT 48 | 48 | #define __VIRTUAL_MASK_SHIFT 48 |
49 | 49 | ||
50 | #define KERNEL_TEXT_SIZE (40*1024*1024) | 50 | /* |
51 | #define KERNEL_TEXT_START _AC(0xffffffff80000000, UL) | 51 | * Kernel image size is limited to 128 MB (see level2_kernel_pgt in |
52 | * arch/x86/kernel/head_64.S), and it is mapped here: | ||
53 | */ | ||
54 | #define KERNEL_IMAGE_SIZE (128*1024*1024) | ||
55 | #define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL) | ||
52 | 56 | ||
53 | #ifndef __ASSEMBLY__ | 57 | #ifndef __ASSEMBLY__ |
54 | void clear_page(void *page); | 58 | void clear_page(void *page); |
diff --git a/include/asm-x86/pgtable_32.h b/include/asm-x86/pgtable_32.h index a842c7222b1e..b478efa971e0 100644 --- a/include/asm-x86/pgtable_32.h +++ b/include/asm-x86/pgtable_32.h | |||
@@ -91,7 +91,9 @@ extern unsigned long pg0[]; | |||
91 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ | 91 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ |
92 | #define pmd_none(x) (!(unsigned long)pmd_val(x)) | 92 | #define pmd_none(x) (!(unsigned long)pmd_val(x)) |
93 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) | 93 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) |
94 | #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) | 94 | #define pmd_bad(x) ((pmd_val(x) \ |
95 | & ~(PAGE_MASK | _PAGE_USER | _PAGE_PSE | _PAGE_NX)) \ | ||
96 | != _KERNPG_TABLE) | ||
95 | 97 | ||
96 | 98 | ||
97 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) | 99 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) |
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 0a0b77bc736a..0a9258333cbd 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h | |||
@@ -153,12 +153,14 @@ static inline unsigned long pgd_bad(pgd_t pgd) | |||
153 | 153 | ||
154 | static inline unsigned long pud_bad(pud_t pud) | 154 | static inline unsigned long pud_bad(pud_t pud) |
155 | { | 155 | { |
156 | return pud_val(pud) & ~(PTE_MASK | _KERNPG_TABLE | _PAGE_USER); | 156 | return pud_val(pud) & |
157 | ~(PTE_MASK | _KERNPG_TABLE | _PAGE_USER | _PAGE_PSE | _PAGE_NX); | ||
157 | } | 158 | } |
158 | 159 | ||
159 | static inline unsigned long pmd_bad(pmd_t pmd) | 160 | static inline unsigned long pmd_bad(pmd_t pmd) |
160 | { | 161 | { |
161 | return pmd_val(pmd) & ~(PTE_MASK | _KERNPG_TABLE | _PAGE_USER); | 162 | return pmd_val(pmd) & |
163 | ~(PTE_MASK | _KERNPG_TABLE | _PAGE_USER | _PAGE_PSE | _PAGE_NX); | ||
162 | } | 164 | } |
163 | 165 | ||
164 | #define pte_none(x) (!pte_val(x)) | 166 | #define pte_none(x) (!pte_val(x)) |
diff --git a/include/asm-x86/ptrace-abi.h b/include/asm-x86/ptrace-abi.h index 81a8ee4c55fc..f224eb3c3157 100644 --- a/include/asm-x86/ptrace-abi.h +++ b/include/asm-x86/ptrace-abi.h | |||
@@ -89,13 +89,13 @@ | |||
89 | */ | 89 | */ |
90 | struct ptrace_bts_config { | 90 | struct ptrace_bts_config { |
91 | /* requested or actual size of BTS buffer in bytes */ | 91 | /* requested or actual size of BTS buffer in bytes */ |
92 | u32 size; | 92 | __u32 size; |
93 | /* bitmask of below flags */ | 93 | /* bitmask of below flags */ |
94 | u32 flags; | 94 | __u32 flags; |
95 | /* buffer overflow signal */ | 95 | /* buffer overflow signal */ |
96 | u32 signal; | 96 | __u32 signal; |
97 | /* actual size of bts_struct in bytes */ | 97 | /* actual size of bts_struct in bytes */ |
98 | u32 bts_size; | 98 | __u32 bts_size; |
99 | }; | 99 | }; |
100 | #endif | 100 | #endif |
101 | 101 | ||
diff --git a/include/linux/ata.h b/include/linux/ata.h index 78bbacaed8c4..1c622e2b0504 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -659,6 +659,11 @@ static inline int atapi_command_packet_set(const u16 *dev_id) | |||
659 | return (dev_id[0] >> 8) & 0x1f; | 659 | return (dev_id[0] >> 8) & 0x1f; |
660 | } | 660 | } |
661 | 661 | ||
662 | static inline int atapi_id_dmadir(const u16 *dev_id) | ||
663 | { | ||
664 | return ata_id_major_version(dev_id) >= 7 && (dev_id[62] & 0x8000); | ||
665 | } | ||
666 | |||
662 | static inline int is_multi_taskfile(struct ata_taskfile *tf) | 667 | static inline int is_multi_taskfile(struct ata_taskfile *tf) |
663 | { | 668 | { |
664 | return (tf->command == ATA_CMD_READ_MULTI) || | 669 | return (tf->command == ATA_CMD_READ_MULTI) || |
diff --git a/include/linux/connector.h b/include/linux/connector.h index da6dd957f908..96a89d3d6727 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
@@ -170,7 +170,5 @@ int cn_cb_equal(struct cb_id *, struct cb_id *); | |||
170 | 170 | ||
171 | void cn_queue_wrapper(struct work_struct *work); | 171 | void cn_queue_wrapper(struct work_struct *work); |
172 | 172 | ||
173 | extern int cn_already_initialized; | ||
174 | |||
175 | #endif /* __KERNEL__ */ | 173 | #endif /* __KERNEL__ */ |
176 | #endif /* __CONNECTOR_H */ | 174 | #endif /* __CONNECTOR_H */ |
diff --git a/include/linux/elfcore-compat.h b/include/linux/elfcore-compat.h index 532d13adabc4..0a90e1c3a422 100644 --- a/include/linux/elfcore-compat.h +++ b/include/linux/elfcore-compat.h | |||
@@ -45,8 +45,8 @@ struct compat_elf_prpsinfo | |||
45 | char pr_zomb; | 45 | char pr_zomb; |
46 | char pr_nice; | 46 | char pr_nice; |
47 | compat_ulong_t pr_flag; | 47 | compat_ulong_t pr_flag; |
48 | compat_uid_t pr_uid; | 48 | __compat_uid_t pr_uid; |
49 | compat_gid_t pr_gid; | 49 | __compat_gid_t pr_gid; |
50 | compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; | 50 | compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; |
51 | char pr_fname[16]; | 51 | char pr_fname[16]; |
52 | char pr_psargs[ELF_PRARGSZ]; | 52 | char pr_psargs[ELF_PRARGSZ]; |
diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h index 697da4bce6c5..1285c583b2d8 100644 --- a/include/linux/ext4_fs_extents.h +++ b/include/linux/ext4_fs_extents.h | |||
@@ -227,5 +227,6 @@ extern int ext4_ext_search_left(struct inode *, struct ext4_ext_path *, | |||
227 | ext4_lblk_t *, ext4_fsblk_t *); | 227 | ext4_lblk_t *, ext4_fsblk_t *); |
228 | extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *, | 228 | extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *, |
229 | ext4_lblk_t *, ext4_fsblk_t *); | 229 | ext4_lblk_t *, ext4_fsblk_t *); |
230 | extern void ext4_ext_drop_refs(struct ext4_ext_path *); | ||
230 | #endif /* _LINUX_EXT4_EXTENTS */ | 231 | #endif /* _LINUX_EXT4_EXTENTS */ |
231 | 232 | ||
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 2961ec788046..49829988bfa0 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
@@ -109,6 +109,14 @@ static inline void account_system_vtime(struct task_struct *tsk) | |||
109 | } | 109 | } |
110 | #endif | 110 | #endif |
111 | 111 | ||
112 | #if defined(CONFIG_PREEMPT_RCU) && defined(CONFIG_NO_HZ) | ||
113 | extern void rcu_irq_enter(void); | ||
114 | extern void rcu_irq_exit(void); | ||
115 | #else | ||
116 | # define rcu_irq_enter() do { } while (0) | ||
117 | # define rcu_irq_exit() do { } while (0) | ||
118 | #endif /* CONFIG_PREEMPT_RCU */ | ||
119 | |||
112 | /* | 120 | /* |
113 | * It is safe to do non-atomic ops on ->hardirq_context, | 121 | * It is safe to do non-atomic ops on ->hardirq_context, |
114 | * because NMI handlers may not preempt and the ops are | 122 | * because NMI handlers may not preempt and the ops are |
@@ -117,6 +125,7 @@ static inline void account_system_vtime(struct task_struct *tsk) | |||
117 | */ | 125 | */ |
118 | #define __irq_enter() \ | 126 | #define __irq_enter() \ |
119 | do { \ | 127 | do { \ |
128 | rcu_irq_enter(); \ | ||
120 | account_system_vtime(current); \ | 129 | account_system_vtime(current); \ |
121 | add_preempt_count(HARDIRQ_OFFSET); \ | 130 | add_preempt_count(HARDIRQ_OFFSET); \ |
122 | trace_hardirq_enter(); \ | 131 | trace_hardirq_enter(); \ |
@@ -135,6 +144,7 @@ extern void irq_enter(void); | |||
135 | trace_hardirq_exit(); \ | 144 | trace_hardirq_exit(); \ |
136 | account_system_vtime(current); \ | 145 | account_system_vtime(current); \ |
137 | sub_preempt_count(HARDIRQ_OFFSET); \ | 146 | sub_preempt_count(HARDIRQ_OFFSET); \ |
147 | rcu_irq_exit(); \ | ||
138 | } while (0) | 148 | } while (0) |
139 | 149 | ||
140 | /* | 150 | /* |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 76014f8f3c60..365e0df3646b 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -271,9 +271,16 @@ extern void i2c_unregister_device(struct i2c_client *); | |||
271 | * This is done at arch_initcall time, before declaring any i2c adapters. | 271 | * This is done at arch_initcall time, before declaring any i2c adapters. |
272 | * Modules for add-on boards must use other calls. | 272 | * Modules for add-on boards must use other calls. |
273 | */ | 273 | */ |
274 | #ifdef CONFIG_I2C_BOARDINFO | ||
274 | extern int | 275 | extern int |
275 | i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsigned n); | 276 | i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsigned n); |
276 | 277 | #else | |
278 | static inline int | ||
279 | i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsigned n) | ||
280 | { | ||
281 | return 0; | ||
282 | } | ||
283 | #endif | ||
277 | 284 | ||
278 | /* | 285 | /* |
279 | * The following structs are for those who like to implement new bus drivers: | 286 | * The following structs are for those who like to implement new bus drivers: |
@@ -598,7 +605,7 @@ I2C_CLIENT_MODULE_PARM(probe, "List of adapter,address pairs to scan " \ | |||
598 | "additionally"); \ | 605 | "additionally"); \ |
599 | I2C_CLIENT_MODULE_PARM(ignore, "List of adapter,address pairs not to " \ | 606 | I2C_CLIENT_MODULE_PARM(ignore, "List of adapter,address pairs not to " \ |
600 | "scan"); \ | 607 | "scan"); \ |
601 | const static struct i2c_client_address_data addr_data = { \ | 608 | static const struct i2c_client_address_data addr_data = { \ |
602 | .normal_i2c = normal_i2c, \ | 609 | .normal_i2c = normal_i2c, \ |
603 | .probe = probe, \ | 610 | .probe = probe, \ |
604 | .ignore = ignore, \ | 611 | .ignore = ignore, \ |
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h index 42dc6a3571ec..e157c1399b61 100644 --- a/include/linux/if_ether.h +++ b/include/linux/if_ether.h | |||
@@ -129,7 +129,8 @@ extern ssize_t sysfs_format_mac(char *buf, const unsigned char *addr, int len); | |||
129 | /* | 129 | /* |
130 | * Display a 6 byte device address (MAC) in a readable format. | 130 | * Display a 6 byte device address (MAC) in a readable format. |
131 | */ | 131 | */ |
132 | extern __pure char *print_mac(char *buf, const unsigned char *addr); | 132 | extern char *print_mac(char *buf, const unsigned char *addr); |
133 | #define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x" | ||
133 | #define MAC_BUF_SIZE 18 | 134 | #define MAC_BUF_SIZE 18 |
134 | #define DECLARE_MAC_BUF(var) char var[MAC_BUF_SIZE] __maybe_unused | 135 | #define DECLARE_MAC_BUF(var) char var[MAC_BUF_SIZE] __maybe_unused |
135 | 136 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index ce7603a73156..a05f60013642 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -138,6 +138,7 @@ enum { | |||
138 | ATA_DFLAG_AN = (1 << 7), /* AN configured */ | 138 | ATA_DFLAG_AN = (1 << 7), /* AN configured */ |
139 | ATA_DFLAG_HIPM = (1 << 8), /* device supports HIPM */ | 139 | ATA_DFLAG_HIPM = (1 << 8), /* device supports HIPM */ |
140 | ATA_DFLAG_DIPM = (1 << 9), /* device supports DIPM */ | 140 | ATA_DFLAG_DIPM = (1 << 9), /* device supports DIPM */ |
141 | ATA_DFLAG_DMADIR = (1 << 10), /* device requires DMADIR */ | ||
141 | ATA_DFLAG_CFG_MASK = (1 << 12) - 1, | 142 | ATA_DFLAG_CFG_MASK = (1 << 12) - 1, |
142 | 143 | ||
143 | ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ | 144 | ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ |
diff --git a/include/linux/maple.h b/include/linux/maple.h index 3f01e2bae1a1..d31e36ebb436 100644 --- a/include/linux/maple.h +++ b/include/linux/maple.h | |||
@@ -64,7 +64,6 @@ struct maple_driver { | |||
64 | int (*connect) (struct maple_device * dev); | 64 | int (*connect) (struct maple_device * dev); |
65 | void (*disconnect) (struct maple_device * dev); | 65 | void (*disconnect) (struct maple_device * dev); |
66 | struct device_driver drv; | 66 | struct device_driver drv; |
67 | int registered; | ||
68 | }; | 67 | }; |
69 | 68 | ||
70 | void maple_getcond_callback(struct maple_device *dev, | 69 | void maple_getcond_callback(struct maple_device *dev, |
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h index d74e79bacd2d..f0680c2bee73 100644 --- a/include/linux/netfilter.h +++ b/include/linux/netfilter.h | |||
@@ -31,7 +31,7 @@ | |||
31 | #define NF_VERDICT_QMASK 0xffff0000 | 31 | #define NF_VERDICT_QMASK 0xffff0000 |
32 | #define NF_VERDICT_QBITS 16 | 32 | #define NF_VERDICT_QBITS 16 |
33 | 33 | ||
34 | #define NF_QUEUE_NR(x) (((x << NF_VERDICT_QBITS) & NF_VERDICT_QMASK) | NF_QUEUE) | 34 | #define NF_QUEUE_NR(x) ((((x) << NF_VERDICT_BITS) & NF_VERDICT_QMASK) | NF_QUEUE) |
35 | 35 | ||
36 | /* only for userspace compatibility */ | 36 | /* only for userspace compatibility */ |
37 | #ifndef __KERNEL__ | 37 | #ifndef __KERNEL__ |
@@ -51,7 +51,7 @@ enum nf_inet_hooks { | |||
51 | }; | 51 | }; |
52 | 52 | ||
53 | union nf_inet_addr { | 53 | union nf_inet_addr { |
54 | u_int32_t all[4]; | 54 | __u32 all[4]; |
55 | __be32 ip; | 55 | __be32 ip; |
56 | __be32 ip6[4]; | 56 | __be32 ip6[4]; |
57 | struct in_addr in; | 57 | struct in_addr in; |
diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild index 91fef0cae42f..3aff513d12c8 100644 --- a/include/linux/netfilter/Kbuild +++ b/include/linux/netfilter/Kbuild | |||
@@ -30,7 +30,6 @@ header-y += xt_mark.h | |||
30 | header-y += xt_multiport.h | 30 | header-y += xt_multiport.h |
31 | header-y += xt_owner.h | 31 | header-y += xt_owner.h |
32 | header-y += xt_pkttype.h | 32 | header-y += xt_pkttype.h |
33 | header-y += xt_policy.h | ||
34 | header-y += xt_rateest.h | 33 | header-y += xt_rateest.h |
35 | header-y += xt_realm.h | 34 | header-y += xt_realm.h |
36 | header-y += xt_sctp.h | 35 | header-y += xt_sctp.h |
@@ -47,3 +46,4 @@ unifdef-y += nfnetlink.h | |||
47 | unifdef-y += nfnetlink_compat.h | 46 | unifdef-y += nfnetlink_compat.h |
48 | unifdef-y += x_tables.h | 47 | unifdef-y += x_tables.h |
49 | unifdef-y += xt_physdev.h | 48 | unifdef-y += xt_physdev.h |
49 | unifdef-y += xt_policy.h | ||
diff --git a/include/linux/netfilter/xt_hashlimit.h b/include/linux/netfilter/xt_hashlimit.h index 58b818ee41ca..51b18d83b477 100644 --- a/include/linux/netfilter/xt_hashlimit.h +++ b/include/linux/netfilter/xt_hashlimit.h | |||
@@ -61,7 +61,6 @@ struct xt_hashlimit_mtinfo1 { | |||
61 | 61 | ||
62 | /* Used internally by the kernel */ | 62 | /* Used internally by the kernel */ |
63 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); | 63 | struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); |
64 | struct xt_hashlimit_mtinfo1 *master __attribute__((aligned(8))); | ||
65 | }; | 64 | }; |
66 | 65 | ||
67 | #endif /*_XT_HASHLIMIT_H*/ | 66 | #endif /*_XT_HASHLIMIT_H*/ |
diff --git a/include/linux/rcuclassic.h b/include/linux/rcuclassic.h index 4d6624260b4c..b3dccd68629e 100644 --- a/include/linux/rcuclassic.h +++ b/include/linux/rcuclassic.h | |||
@@ -160,5 +160,8 @@ extern void rcu_restart_cpu(int cpu); | |||
160 | extern long rcu_batches_completed(void); | 160 | extern long rcu_batches_completed(void); |
161 | extern long rcu_batches_completed_bh(void); | 161 | extern long rcu_batches_completed_bh(void); |
162 | 162 | ||
163 | #define rcu_enter_nohz() do { } while (0) | ||
164 | #define rcu_exit_nohz() do { } while (0) | ||
165 | |||
163 | #endif /* __KERNEL__ */ | 166 | #endif /* __KERNEL__ */ |
164 | #endif /* __LINUX_RCUCLASSIC_H */ | 167 | #endif /* __LINUX_RCUCLASSIC_H */ |
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index 60c2a033b19e..01152ed532c8 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h | |||
@@ -82,5 +82,27 @@ extern struct rcupreempt_trace *rcupreempt_trace_cpu(int cpu); | |||
82 | 82 | ||
83 | struct softirq_action; | 83 | struct softirq_action; |
84 | 84 | ||
85 | #ifdef CONFIG_NO_HZ | ||
86 | DECLARE_PER_CPU(long, dynticks_progress_counter); | ||
87 | |||
88 | static inline void rcu_enter_nohz(void) | ||
89 | { | ||
90 | __get_cpu_var(dynticks_progress_counter)++; | ||
91 | WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1); | ||
92 | mb(); | ||
93 | } | ||
94 | |||
95 | static inline void rcu_exit_nohz(void) | ||
96 | { | ||
97 | mb(); | ||
98 | __get_cpu_var(dynticks_progress_counter)++; | ||
99 | WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1)); | ||
100 | } | ||
101 | |||
102 | #else /* CONFIG_NO_HZ */ | ||
103 | #define rcu_enter_nohz() do { } while (0) | ||
104 | #define rcu_exit_nohz() do { } while (0) | ||
105 | #endif /* CONFIG_NO_HZ */ | ||
106 | |||
85 | #endif /* __KERNEL__ */ | 107 | #endif /* __KERNEL__ */ |
86 | #endif /* __LINUX_RCUPREEMPT_H */ | 108 | #endif /* __LINUX_RCUPREEMPT_H */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index e217d188a102..2c9621f8bf87 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -242,6 +242,7 @@ struct task_struct; | |||
242 | 242 | ||
243 | extern void sched_init(void); | 243 | extern void sched_init(void); |
244 | extern void sched_init_smp(void); | 244 | extern void sched_init_smp(void); |
245 | extern asmlinkage void schedule_tail(struct task_struct *prev); | ||
245 | extern void init_idle(struct task_struct *idle, int cpu); | 246 | extern void init_idle(struct task_struct *idle, int cpu); |
246 | extern void init_idle_bootup_task(struct task_struct *idle); | 247 | extern void init_idle_bootup_task(struct task_struct *idle); |
247 | 248 | ||
@@ -1189,7 +1190,7 @@ struct task_struct { | |||
1189 | int softirq_context; | 1190 | int softirq_context; |
1190 | #endif | 1191 | #endif |
1191 | #ifdef CONFIG_LOCKDEP | 1192 | #ifdef CONFIG_LOCKDEP |
1192 | # define MAX_LOCK_DEPTH 30UL | 1193 | # define MAX_LOCK_DEPTH 48UL |
1193 | u64 curr_chain_key; | 1194 | u64 curr_chain_key; |
1194 | int lockdep_depth; | 1195 | int lockdep_depth; |
1195 | struct held_lock held_locks[MAX_LOCK_DEPTH]; | 1196 | struct held_lock held_locks[MAX_LOCK_DEPTH]; |
diff --git a/include/asm-sh/sci.h b/include/linux/serial_sci.h index 52e73660c129..893cc53486bc 100644 --- a/include/asm-sh/sci.h +++ b/include/linux/serial_sci.h | |||
@@ -1,12 +1,10 @@ | |||
1 | #ifndef __ASM_SH_SCI_H | 1 | #ifndef __LINUX_SERIAL_SCI_H |
2 | #define __ASM_SH_SCI_H | 2 | #define __LINUX_SERIAL_SCI_H |
3 | 3 | ||
4 | #include <linux/serial_core.h> | 4 | #include <linux/serial_core.h> |
5 | 5 | ||
6 | /* | 6 | /* |
7 | * Generic header for SuperH SCI(F) | 7 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) |
8 | * | ||
9 | * Do not place SH-specific parts in here, sh64 and h8300 depend on this too. | ||
10 | */ | 8 | */ |
11 | 9 | ||
12 | /* Offsets into the sci_port->irqs array */ | 10 | /* Offsets into the sci_port->irqs array */ |
@@ -31,4 +29,4 @@ struct plat_sci_port { | |||
31 | 29 | ||
32 | int early_sci_setup(struct uart_port *port); | 30 | int early_sci_setup(struct uart_port *port); |
33 | 31 | ||
34 | #endif /* __ASM_SH_SCI_H */ | 32 | #endif /* __LINUX_SERIAL_SCI_H */ |
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h index 9d5da8b2ccf9..20add65215af 100644 --- a/include/linux/ssb/ssb.h +++ b/include/linux/ssb/ssb.h | |||
@@ -282,6 +282,13 @@ struct ssb_bus { | |||
282 | struct ssb_boardinfo boardinfo; | 282 | struct ssb_boardinfo boardinfo; |
283 | /* Contents of the SPROM. */ | 283 | /* Contents of the SPROM. */ |
284 | struct ssb_sprom sprom; | 284 | struct ssb_sprom sprom; |
285 | /* If the board has a cardbus slot, this is set to true. */ | ||
286 | bool has_cardbus_slot; | ||
287 | |||
288 | #ifdef CONFIG_SSB_EMBEDDED | ||
289 | /* Lock for GPIO register access. */ | ||
290 | spinlock_t gpio_lock; | ||
291 | #endif /* EMBEDDED */ | ||
285 | 292 | ||
286 | /* Internal-only stuff follows. Do not touch. */ | 293 | /* Internal-only stuff follows. Do not touch. */ |
287 | struct list_head list; | 294 | struct list_head list; |
@@ -294,8 +301,13 @@ struct ssb_bus { | |||
294 | 301 | ||
295 | /* The initialization-invariants. */ | 302 | /* The initialization-invariants. */ |
296 | struct ssb_init_invariants { | 303 | struct ssb_init_invariants { |
304 | /* Versioning information about the PCB. */ | ||
297 | struct ssb_boardinfo boardinfo; | 305 | struct ssb_boardinfo boardinfo; |
306 | /* The SPROM information. That's either stored in an | ||
307 | * EEPROM or NVRAM on the board. */ | ||
298 | struct ssb_sprom sprom; | 308 | struct ssb_sprom sprom; |
309 | /* If the board has a cardbus slot, this is set to true. */ | ||
310 | bool has_cardbus_slot; | ||
299 | }; | 311 | }; |
300 | /* Type of function to fetch the invariants. */ | 312 | /* Type of function to fetch the invariants. */ |
301 | typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus, | 313 | typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus, |
diff --git a/include/linux/ssb/ssb_driver_chipcommon.h b/include/linux/ssb/ssb_driver_chipcommon.h index 4cb995494662..536851b946f6 100644 --- a/include/linux/ssb/ssb_driver_chipcommon.h +++ b/include/linux/ssb/ssb_driver_chipcommon.h | |||
@@ -51,9 +51,12 @@ | |||
51 | #define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */ | 51 | #define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */ |
52 | #define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */ | 52 | #define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */ |
53 | #define SSB_CHIPCO_CAP_64BIT 0x08000000 /* 64-bit Backplane */ | 53 | #define SSB_CHIPCO_CAP_64BIT 0x08000000 /* 64-bit Backplane */ |
54 | #define SSB_CHIPCO_CAP_PMU 0x10000000 /* PMU available (rev >= 20) */ | ||
55 | #define SSB_CHIPCO_CAP_ECI 0x20000000 /* ECI available (rev >= 20) */ | ||
54 | #define SSB_CHIPCO_CORECTL 0x0008 | 56 | #define SSB_CHIPCO_CORECTL 0x0008 |
55 | #define SSB_CHIPCO_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */ | 57 | #define SSB_CHIPCO_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */ |
56 | #define SSB_CHIPCO_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */ | 58 | #define SSB_CHIPCO_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */ |
59 | #define SSB_CHIPCO_CORECTL_UARTCLKEN 0x00000008 /* UART clock enable (rev >= 21) */ | ||
57 | #define SSB_CHIPCO_BIST 0x000C | 60 | #define SSB_CHIPCO_BIST 0x000C |
58 | #define SSB_CHIPCO_OTPS 0x0010 /* OTP status */ | 61 | #define SSB_CHIPCO_OTPS 0x0010 /* OTP status */ |
59 | #define SSB_CHIPCO_OTPS_PROGFAIL 0x80000000 | 62 | #define SSB_CHIPCO_OTPS_PROGFAIL 0x80000000 |
@@ -357,6 +360,11 @@ struct ssb_chipcommon { | |||
357 | u16 fast_pwrup_delay; | 360 | u16 fast_pwrup_delay; |
358 | }; | 361 | }; |
359 | 362 | ||
363 | static inline bool ssb_chipco_available(struct ssb_chipcommon *cc) | ||
364 | { | ||
365 | return (cc->dev != NULL); | ||
366 | } | ||
367 | |||
360 | extern void ssb_chipcommon_init(struct ssb_chipcommon *cc); | 368 | extern void ssb_chipcommon_init(struct ssb_chipcommon *cc); |
361 | 369 | ||
362 | #include <linux/pm.h> | 370 | #include <linux/pm.h> |
@@ -382,11 +390,13 @@ extern void ssb_chipco_set_clockmode(struct ssb_chipcommon *cc, | |||
382 | extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc, | 390 | extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc, |
383 | u32 ticks); | 391 | u32 ticks); |
384 | 392 | ||
393 | /* Chipcommon GPIO pin access. */ | ||
385 | u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask); | 394 | u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask); |
386 | 395 | u32 ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value); | |
387 | void ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value); | 396 | u32 ssb_chipco_gpio_outen(struct ssb_chipcommon *cc, u32 mask, u32 value); |
388 | 397 | u32 ssb_chipco_gpio_control(struct ssb_chipcommon *cc, u32 mask, u32 value); | |
389 | void ssb_chipco_gpio_outen(struct ssb_chipcommon *cc, u32 mask, u32 value); | 398 | u32 ssb_chipco_gpio_intmask(struct ssb_chipcommon *cc, u32 mask, u32 value); |
399 | u32 ssb_chipco_gpio_polarity(struct ssb_chipcommon *cc, u32 mask, u32 value); | ||
390 | 400 | ||
391 | #ifdef CONFIG_SSB_SERIAL | 401 | #ifdef CONFIG_SSB_SERIAL |
392 | extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc, | 402 | extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc, |
diff --git a/include/linux/ssb/ssb_driver_extif.h b/include/linux/ssb/ssb_driver_extif.h index a9164357b5ae..91161f0aa22b 100644 --- a/include/linux/ssb/ssb_driver_extif.h +++ b/include/linux/ssb/ssb_driver_extif.h | |||
@@ -171,11 +171,15 @@ extern void ssb_extif_get_clockcontrol(struct ssb_extif *extif, | |||
171 | extern void ssb_extif_timing_init(struct ssb_extif *extif, | 171 | extern void ssb_extif_timing_init(struct ssb_extif *extif, |
172 | unsigned long ns); | 172 | unsigned long ns); |
173 | 173 | ||
174 | u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask); | 174 | extern void ssb_extif_watchdog_timer_set(struct ssb_extif *extif, |
175 | 175 | u32 ticks); | |
176 | void ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value); | ||
177 | 176 | ||
178 | void ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask, u32 value); | 177 | /* Extif GPIO pin access */ |
178 | u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask); | ||
179 | u32 ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value); | ||
180 | u32 ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask, u32 value); | ||
181 | u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value); | ||
182 | u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value); | ||
179 | 183 | ||
180 | #ifdef CONFIG_SSB_SERIAL | 184 | #ifdef CONFIG_SSB_SERIAL |
181 | extern int ssb_extif_serial_init(struct ssb_extif *extif, | 185 | extern int ssb_extif_serial_init(struct ssb_extif *extif, |
@@ -200,5 +204,11 @@ void ssb_extif_get_clockcontrol(struct ssb_extif *extif, | |||
200 | { | 204 | { |
201 | } | 205 | } |
202 | 206 | ||
207 | static inline | ||
208 | void ssb_extif_watchdog_timer_set(struct ssb_extif *extif, | ||
209 | u32 ticks) | ||
210 | { | ||
211 | } | ||
212 | |||
203 | #endif /* CONFIG_SSB_DRIVER_EXTIF */ | 213 | #endif /* CONFIG_SSB_DRIVER_EXTIF */ |
204 | #endif /* LINUX_SSB_EXTIFCORE_H_ */ | 214 | #endif /* LINUX_SSB_EXTIFCORE_H_ */ |
diff --git a/include/linux/ssb/ssb_driver_pci.h b/include/linux/ssb/ssb_driver_pci.h index 9cfffb7b1a27..5e25bac4ed31 100644 --- a/include/linux/ssb/ssb_driver_pci.h +++ b/include/linux/ssb/ssb_driver_pci.h | |||
@@ -51,6 +51,11 @@ | |||
51 | #define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000 | 51 | #define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000 |
52 | #define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */ | 52 | #define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */ |
53 | #define SSB_PCICORE_SBTOPCI2_MASK 0xC0000000 | 53 | #define SSB_PCICORE_SBTOPCI2_MASK 0xC0000000 |
54 | #define SSB_PCICORE_PCICFG0 0x0400 /* PCI config space 0 (rev >= 8) */ | ||
55 | #define SSB_PCICORE_PCICFG1 0x0500 /* PCI config space 1 (rev >= 8) */ | ||
56 | #define SSB_PCICORE_PCICFG2 0x0600 /* PCI config space 2 (rev >= 8) */ | ||
57 | #define SSB_PCICORE_PCICFG3 0x0700 /* PCI config space 3 (rev >= 8) */ | ||
58 | #define SSB_PCICORE_SPROM(wordoffset) (0x0800 + ((wordoffset) * 2)) /* SPROM shadow area (72 bytes) */ | ||
54 | 59 | ||
55 | /* SBtoPCIx */ | 60 | /* SBtoPCIx */ |
56 | #define SSB_PCICORE_SBTOPCI_MEM 0x00000000 | 61 | #define SSB_PCICORE_SBTOPCI_MEM 0x00000000 |
diff --git a/include/linux/ssb/ssb_embedded.h b/include/linux/ssb/ssb_embedded.h new file mode 100644 index 000000000000..8d8dedff059d --- /dev/null +++ b/include/linux/ssb/ssb_embedded.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef LINUX_SSB_EMBEDDED_H_ | ||
2 | #define LINUX_SSB_EMBEDDED_H_ | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/ssb/ssb.h> | ||
6 | |||
7 | |||
8 | extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks); | ||
9 | |||
10 | /* Generic GPIO API */ | ||
11 | u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask); | ||
12 | u32 ssb_gpio_out(struct ssb_bus *bus, u32 mask, u32 value); | ||
13 | u32 ssb_gpio_outen(struct ssb_bus *bus, u32 mask, u32 value); | ||
14 | u32 ssb_gpio_control(struct ssb_bus *bus, u32 mask, u32 value); | ||
15 | u32 ssb_gpio_intmask(struct ssb_bus *bus, u32 mask, u32 value); | ||
16 | u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value); | ||
17 | |||
18 | #endif /* LINUX_SSB_EMBEDDED_H_ */ | ||
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 75370ec0923e..9f1b4b46151e 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h | |||
@@ -246,8 +246,7 @@ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item) | |||
246 | static inline void __dec_zone_page_state(struct page *page, | 246 | static inline void __dec_zone_page_state(struct page *page, |
247 | enum zone_stat_item item) | 247 | enum zone_stat_item item) |
248 | { | 248 | { |
249 | atomic_long_dec(&page_zone(page)->vm_stat[item]); | 249 | __dec_zone_state(page_zone(page), item); |
250 | atomic_long_dec(&vm_stat[item]); | ||
251 | } | 250 | } |
252 | 251 | ||
253 | /* | 252 | /* |
diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h index c17fa1fdc356..6512d85f11b3 100644 --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h | |||
@@ -14,8 +14,6 @@ | |||
14 | /* capable of receiving packets */ | 14 | /* capable of receiving packets */ |
15 | #define IP6_TNL_F_CAP_RCV 0x20000 | 15 | #define IP6_TNL_F_CAP_RCV 0x20000 |
16 | 16 | ||
17 | #define IP6_TNL_MAX 128 | ||
18 | |||
19 | /* IPv6 tunnel */ | 17 | /* IPv6 tunnel */ |
20 | 18 | ||
21 | struct ip6_tnl { | 19 | struct ip6_tnl { |
diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h index 9462d6ae2f37..9619b9d35c9e 100644 --- a/include/net/sctp/user.h +++ b/include/net/sctp/user.h | |||
@@ -411,6 +411,7 @@ struct sctp_event_subscribe { | |||
411 | __u8 sctp_shutdown_event; | 411 | __u8 sctp_shutdown_event; |
412 | __u8 sctp_partial_delivery_event; | 412 | __u8 sctp_partial_delivery_event; |
413 | __u8 sctp_adaptation_layer_event; | 413 | __u8 sctp_adaptation_layer_event; |
414 | __u8 sctp_authentication_event; | ||
414 | }; | 415 | }; |
415 | 416 | ||
416 | /* | 417 | /* |
@@ -587,7 +588,7 @@ struct sctp_authchunk { | |||
587 | * endpoint requires the peer to use. | 588 | * endpoint requires the peer to use. |
588 | */ | 589 | */ |
589 | struct sctp_hmacalgo { | 590 | struct sctp_hmacalgo { |
590 | __u16 shmac_num_idents; | 591 | __u32 shmac_num_idents; |
591 | __u16 shmac_idents[]; | 592 | __u16 shmac_idents[]; |
592 | }; | 593 | }; |
593 | 594 | ||
@@ -600,7 +601,7 @@ struct sctp_hmacalgo { | |||
600 | struct sctp_authkey { | 601 | struct sctp_authkey { |
601 | sctp_assoc_t sca_assoc_id; | 602 | sctp_assoc_t sca_assoc_id; |
602 | __u16 sca_keynumber; | 603 | __u16 sca_keynumber; |
603 | __u16 sca_keylen; | 604 | __u16 sca_keylength; |
604 | __u8 sca_key[]; | 605 | __u8 sca_key[]; |
605 | }; | 606 | }; |
606 | 607 | ||
@@ -693,8 +694,9 @@ struct sctp_status { | |||
693 | * the peer requires to be received authenticated only. | 694 | * the peer requires to be received authenticated only. |
694 | */ | 695 | */ |
695 | struct sctp_authchunks { | 696 | struct sctp_authchunks { |
696 | sctp_assoc_t gauth_assoc_id; | 697 | sctp_assoc_t gauth_assoc_id; |
697 | uint8_t gauth_chunks[]; | 698 | __u32 gauth_number_of_chunks; |
699 | uint8_t gauth_chunks[]; | ||
698 | }; | 700 | }; |
699 | 701 | ||
700 | /* | 702 | /* |