diff options
Diffstat (limited to 'include')
80 files changed, 351 insertions, 634 deletions
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 049e9aa1b867..81458767a90e 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -97,11 +97,12 @@ acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address); | |||
97 | 97 | ||
98 | acpi_status acpi_load_tables(void); | 98 | acpi_status acpi_load_tables(void); |
99 | 99 | ||
100 | #ifdef ACPI_FUTURE_USAGE | ||
101 | acpi_status acpi_load_table(struct acpi_table_header *table_ptr); | 100 | acpi_status acpi_load_table(struct acpi_table_header *table_ptr); |
102 | 101 | ||
103 | acpi_status acpi_unload_table(acpi_table_type table_type); | 102 | acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id); |
104 | 103 | ||
104 | #ifdef ACPI_FUTURE_USAGE | ||
105 | acpi_status acpi_unload_table(acpi_table_type table_type); | ||
105 | acpi_status | 106 | acpi_status |
106 | acpi_get_table_header(acpi_table_type table_type, | 107 | acpi_get_table_header(acpi_table_type table_type, |
107 | u32 instance, struct acpi_table_header *out_table_header); | 108 | u32 instance, struct acpi_table_header *out_table_header); |
@@ -180,6 +181,8 @@ acpi_get_next_object(acpi_object_type type, | |||
180 | 181 | ||
181 | acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type); | 182 | acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type); |
182 | 183 | ||
184 | acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type); | ||
185 | |||
183 | acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle); | 186 | acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle); |
184 | 187 | ||
185 | /* | 188 | /* |
diff --git a/include/asm-arm/arch-iop13xx/iq81340.h b/include/asm-arm/arch-iop13xx/iq81340.h index b98f8f109c22..ba2cf931e9ce 100644 --- a/include/asm-arm/arch-iop13xx/iq81340.h +++ b/include/asm-arm/arch-iop13xx/iq81340.h | |||
@@ -24,8 +24,5 @@ | |||
24 | #define PBI_CF_IDE_BASE (IQ81340_CMP_FLSH) | 24 | #define PBI_CF_IDE_BASE (IQ81340_CMP_FLSH) |
25 | #define PBI_CF_BAR_ADDR (IOP13XX_PBI_BAR1) | 25 | #define PBI_CF_BAR_ADDR (IOP13XX_PBI_BAR1) |
26 | 26 | ||
27 | /* These are the values used in the Machine description */ | 27 | |
28 | #define PHYS_IO 0xfeffff00 | ||
29 | #define IO_PG_OFFSET 0xffffff00 | ||
30 | #define BOOT_PARAM_OFFSET 0x00000100 | ||
31 | #endif /* _IQ81340_H_ */ | 28 | #endif /* _IQ81340_H_ */ |
diff --git a/include/asm-arm/arch-ixp23xx/memory.h b/include/asm-arm/arch-ixp23xx/memory.h index c85fc06a043c..6d859d742d7f 100644 --- a/include/asm-arm/arch-ixp23xx/memory.h +++ b/include/asm-arm/arch-ixp23xx/memory.h | |||
@@ -41,21 +41,7 @@ | |||
41 | data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR); \ | 41 | data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR); \ |
42 | __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); }) | 42 | __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); }) |
43 | 43 | ||
44 | /* | 44 | #define arch_is_coherent() 1 |
45 | * Coherency support. Only supported on A2 CPUs or on A1 | ||
46 | * systems that have the cache coherency workaround. | ||
47 | */ | ||
48 | static inline int __ixp23xx_arch_is_coherent(void) | ||
49 | { | ||
50 | extern unsigned int processor_id; | ||
51 | |||
52 | if (((processor_id & 15) >= 4) || machine_is_roadrunner()) | ||
53 | return 1; | ||
54 | |||
55 | return 0; | ||
56 | } | ||
57 | |||
58 | #define arch_is_coherent() __ixp23xx_arch_is_coherent() | ||
59 | 45 | ||
60 | #endif | 46 | #endif |
61 | 47 | ||
diff --git a/include/asm-arm/arch-s3c2410/anubis-cpld.h b/include/asm-arm/arch-s3c2410/anubis-cpld.h index 40e8e270d337..dcebf6d61903 100644 --- a/include/asm-arm/arch-s3c2410/anubis-cpld.h +++ b/include/asm-arm/arch-s3c2410/anubis-cpld.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/anubis-cpld.h | 1 | /* linux/include/asm-arm/arch-s3c2410/anubis-cpld.h |
2 | * | 2 | * |
3 | * (c) 2005 Simtec Electronics | 3 | * Copyright (c) 2005 Simtec Electronics |
4 | * http://www.simtec.co.uk/products/ | 4 | * http://www.simtec.co.uk/products/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/anubis-irq.h b/include/asm-arm/arch-s3c2410/anubis-irq.h index 4b5f423779df..cd77a70d45c0 100644 --- a/include/asm-arm/arch-s3c2410/anubis-irq.h +++ b/include/asm-arm/arch-s3c2410/anubis-irq.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/anubis-irq.h | 1 | /* linux/include/asm-arm/arch-s3c2410/anubis-irq.h |
2 | * | 2 | * |
3 | * (c) 2005 Simtec Electronics | 3 | * Copyright (c) 2005 Simtec Electronics |
4 | * http://www.simtec.co.uk/products/ | 4 | * http://www.simtec.co.uk/products/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/anubis-map.h b/include/asm-arm/arch-s3c2410/anubis-map.h index 058a2104b035..ab076de4a0d0 100644 --- a/include/asm-arm/arch-s3c2410/anubis-map.h +++ b/include/asm-arm/arch-s3c2410/anubis-map.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/anubis-map.h | 1 | /* linux/include/asm-arm/arch-s3c2410/anubis-map.h |
2 | * | 2 | * |
3 | * (c) 2005 Simtec Electronics | 3 | * Copyright (c) 2005 Simtec Electronics |
4 | * http://www.simtec.co.uk/products/ | 4 | * http://www.simtec.co.uk/products/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/audio.h b/include/asm-arm/arch-s3c2410/audio.h index 7e0222276c98..65e0acffa1ad 100644 --- a/include/asm-arm/arch-s3c2410/audio.h +++ b/include/asm-arm/arch-s3c2410/audio.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/audio.h | 1 | /* linux/include/asm-arm/arch-s3c2410/audio.h |
2 | * | 2 | * |
3 | * (c) 2004-2005 Simtec Electronics | 3 | * Copyright (c) 2004-2005 Simtec Electronics |
4 | * http://www.simtec.co.uk/products/SWLINUX/ | 4 | * http://www.simtec.co.uk/products/SWLINUX/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/bast-cpld.h b/include/asm-arm/arch-s3c2410/bast-cpld.h index 8969cffe83fa..034d2c5a47c4 100644 --- a/include/asm-arm/arch-s3c2410/bast-cpld.h +++ b/include/asm-arm/arch-s3c2410/bast-cpld.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/bast-cpld.h | 1 | /* linux/include/asm-arm/arch-s3c2410/bast-cpld.h |
2 | * | 2 | * |
3 | * (c) 2003,2004 Simtec Electronics | 3 | * Copyright (c) 2003,2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * BAST - CPLD control constants | 6 | * BAST - CPLD control constants |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/bast-irq.h b/include/asm-arm/arch-s3c2410/bast-irq.h index 15ffa66f5011..726c0466f85a 100644 --- a/include/asm-arm/arch-s3c2410/bast-irq.h +++ b/include/asm-arm/arch-s3c2410/bast-irq.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/bast-irq.h | 1 | /* linux/include/asm-arm/arch-s3c2410/bast-irq.h |
2 | * | 2 | * |
3 | * (c) 2003,2004 Simtec Electronics | 3 | * Copyright (c) 2003,2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * Machine BAST - IRQ Number definitions | 6 | * Machine BAST - IRQ Number definitions |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/bast-map.h b/include/asm-arm/arch-s3c2410/bast-map.h index 727cef84c70e..86ac1c108db8 100644 --- a/include/asm-arm/arch-s3c2410/bast-map.h +++ b/include/asm-arm/arch-s3c2410/bast-map.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/bast-map.h | 1 | /* linux/include/asm-arm/arch-s3c2410/bast-map.h |
2 | * | 2 | * |
3 | * (c) 2003,2004 Simtec Electronics | 3 | * Copyright (c) 2003,2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * Machine BAST - Memory map definitions | 6 | * Machine BAST - Memory map definitions |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/bast-pmu.h b/include/asm-arm/arch-s3c2410/bast-pmu.h index 82836027f00f..37a11fe54a78 100644 --- a/include/asm-arm/arch-s3c2410/bast-pmu.h +++ b/include/asm-arm/arch-s3c2410/bast-pmu.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/bast-pmu.h | 1 | /* linux/include/asm-arm/arch-s3c2410/bast-pmu.h |
2 | * | 2 | * |
3 | * (c) 2003,2004 Simtec Electronics | 3 | * Copyright (c) 2003,2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * Vincent Sanders <vince@simtec.co.uk> | 5 | * Vincent Sanders <vince@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/h1940-latch.h b/include/asm-arm/arch-s3c2410/h1940-latch.h index c5802411f43d..c3de5ab102eb 100644 --- a/include/asm-arm/arch-s3c2410/h1940-latch.h +++ b/include/asm-arm/arch-s3c2410/h1940-latch.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/h1940-latch.h | 1 | /* linux/include/asm-arm/arch-s3c2410/h1940-latch.h |
2 | * | 2 | * |
3 | * (c) 2005 Simtec Electronics | 3 | * Copyright (c) 2005 Simtec Electronics |
4 | * http://armlinux.simtec.co.uk/ | 4 | * http://armlinux.simtec.co.uk/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
@@ -16,7 +16,7 @@ | |||
16 | 16 | ||
17 | 17 | ||
18 | #ifndef __ASSEMBLY__ | 18 | #ifndef __ASSEMBLY__ |
19 | #define H1940_LATCH ((void __iomem *)0xF8000000) | 19 | #define H1940_LATCH ((void __force __iomem *)0xF8000000) |
20 | #else | 20 | #else |
21 | #define H1940_LATCH 0xF8000000 | 21 | #define H1940_LATCH 0xF8000000 |
22 | #endif | 22 | #endif |
diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h index 871f8af09b8b..729565e5cdf4 100644 --- a/include/asm-arm/arch-s3c2410/hardware.h +++ b/include/asm-arm/arch-s3c2410/hardware.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/hardware.h | 1 | /* linux/include/asm-arm/arch-s3c2410/hardware.h |
2 | * | 2 | * |
3 | * (c) 2003 Simtec Electronics | 3 | * Copyright (c) 2003 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - hardware | 6 | * S3C2410 - hardware |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/iic.h b/include/asm-arm/arch-s3c2410/iic.h index ed3d6c7bf6d7..71211c8b5384 100644 --- a/include/asm-arm/arch-s3c2410/iic.h +++ b/include/asm-arm/arch-s3c2410/iic.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/iic.h | 1 | /* linux/include/asm-arm/arch-s3c2410/iic.h |
2 | * | 2 | * |
3 | * (c) 2004 Simtec Electronics | 3 | * Copyright (c) 2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - I2C Controller platfrom_device info | 6 | * S3C2410 - I2C Controller platfrom_device info |
diff --git a/include/asm-arm/arch-s3c2410/leds-gpio.h b/include/asm-arm/arch-s3c2410/leds-gpio.h index f07ed040622b..800846ebddba 100644 --- a/include/asm-arm/arch-s3c2410/leds-gpio.h +++ b/include/asm-arm/arch-s3c2410/leds-gpio.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/leds-gpio.h | 1 | /* linux/include/asm-arm/arch-s3c2410/leds-gpio.h |
2 | * | 2 | * |
3 | * (c) 2006 Simtec Electronics | 3 | * Copyright (c) 2006 Simtec Electronics |
4 | * http://armlinux.simtec.co.uk/ | 4 | * http://armlinux.simtec.co.uk/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/map.h b/include/asm-arm/arch-s3c2410/map.h index 7895042d176b..4505aefbad17 100644 --- a/include/asm-arm/arch-s3c2410/map.h +++ b/include/asm-arm/arch-s3c2410/map.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/map.h | 1 | /* linux/include/asm-arm/arch-s3c2410/map.h |
2 | * | 2 | * |
3 | * (c) 2003 Simtec Electronics | 3 | * Copyright (c) 2003 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - Memory map definitions | 6 | * S3C2410 - Memory map definitions |
7 | * | 7 | * |
@@ -25,7 +25,7 @@ | |||
25 | */ | 25 | */ |
26 | 26 | ||
27 | #ifndef __ASSEMBLY__ | 27 | #ifndef __ASSEMBLY__ |
28 | #define S3C2410_ADDR(x) ((void __iomem *)0xF0000000 + (x)) | 28 | #define S3C2410_ADDR(x) ((void __iomem __force *)0xF0000000 + (x)) |
29 | #else | 29 | #else |
30 | #define S3C2410_ADDR(x) (0xF0000000 + (x)) | 30 | #define S3C2410_ADDR(x) (0xF0000000 + (x)) |
31 | #endif | 31 | #endif |
@@ -47,73 +47,65 @@ | |||
47 | #define S3C24XX_SZ_MEMCTRL SZ_1M | 47 | #define S3C24XX_SZ_MEMCTRL SZ_1M |
48 | 48 | ||
49 | /* USB host controller */ | 49 | /* USB host controller */ |
50 | #define S3C24XX_VA_USBHOST S3C2410_ADDR(0x00200000) | ||
51 | #define S3C2400_PA_USBHOST (0x14200000) | 50 | #define S3C2400_PA_USBHOST (0x14200000) |
52 | #define S3C2410_PA_USBHOST (0x49000000) | 51 | #define S3C2410_PA_USBHOST (0x49000000) |
53 | #define S3C24XX_SZ_USBHOST SZ_1M | 52 | #define S3C24XX_SZ_USBHOST SZ_1M |
54 | 53 | ||
55 | /* DMA controller */ | 54 | /* DMA controller */ |
56 | #define S3C24XX_VA_DMA S3C2410_ADDR(0x00300000) | ||
57 | #define S3C2400_PA_DMA (0x14600000) | 55 | #define S3C2400_PA_DMA (0x14600000) |
58 | #define S3C2410_PA_DMA (0x4B000000) | 56 | #define S3C2410_PA_DMA (0x4B000000) |
59 | #define S3C24XX_SZ_DMA SZ_1M | 57 | #define S3C24XX_SZ_DMA SZ_1M |
60 | 58 | ||
61 | /* Clock and Power management */ | 59 | /* Clock and Power management */ |
62 | #define S3C24XX_VA_CLKPWR S3C2410_ADDR(0x00400000) | 60 | #define S3C24XX_VA_CLKPWR S3C2410_ADDR(0x00200000) |
63 | #define S3C2400_PA_CLKPWR (0x14800000) | 61 | #define S3C2400_PA_CLKPWR (0x14800000) |
64 | #define S3C2410_PA_CLKPWR (0x4C000000) | 62 | #define S3C2410_PA_CLKPWR (0x4C000000) |
65 | #define S3C24XX_SZ_CLKPWR SZ_1M | 63 | #define S3C24XX_SZ_CLKPWR SZ_1M |
66 | 64 | ||
67 | /* LCD controller */ | 65 | /* LCD controller */ |
68 | #define S3C24XX_VA_LCD S3C2410_ADDR(0x00600000) | 66 | #define S3C24XX_VA_LCD S3C2410_ADDR(0x00300000) |
69 | #define S3C2400_PA_LCD (0x14A00000) | 67 | #define S3C2400_PA_LCD (0x14A00000) |
70 | #define S3C2410_PA_LCD (0x4D000000) | 68 | #define S3C2410_PA_LCD (0x4D000000) |
71 | #define S3C24XX_SZ_LCD SZ_1M | 69 | #define S3C24XX_SZ_LCD SZ_1M |
72 | 70 | ||
73 | /* NAND flash controller */ | 71 | /* NAND flash controller */ |
74 | #define S3C24XX_VA_NAND S3C2410_ADDR(0x00700000) | ||
75 | #define S3C2410_PA_NAND (0x4E000000) | 72 | #define S3C2410_PA_NAND (0x4E000000) |
76 | #define S3C24XX_SZ_NAND SZ_1M | 73 | #define S3C24XX_SZ_NAND SZ_1M |
77 | 74 | ||
78 | /* MMC controller - available on the S3C2400 */ | 75 | /* MMC controller - available on the S3C2400 */ |
79 | #define S3C2400_VA_MMC S3C2400_ADDR(0x00700000) | ||
80 | #define S3C2400_PA_MMC (0x15A00000) | 76 | #define S3C2400_PA_MMC (0x15A00000) |
81 | #define S3C2400_SZ_MMC SZ_1M | 77 | #define S3C2400_SZ_MMC SZ_1M |
82 | 78 | ||
83 | /* UARTs */ | 79 | /* UARTs */ |
84 | #define S3C24XX_VA_UART S3C2410_ADDR(0x00800000) | 80 | #define S3C24XX_VA_UART S3C2410_ADDR(0x00400000) |
85 | #define S3C2400_PA_UART (0x15000000) | 81 | #define S3C2400_PA_UART (0x15000000) |
86 | #define S3C2410_PA_UART (0x50000000) | 82 | #define S3C2410_PA_UART (0x50000000) |
87 | #define S3C24XX_SZ_UART SZ_1M | 83 | #define S3C24XX_SZ_UART SZ_1M |
88 | 84 | ||
89 | /* Timers */ | 85 | /* Timers */ |
90 | #define S3C24XX_VA_TIMER S3C2410_ADDR(0x00900000) | 86 | #define S3C24XX_VA_TIMER S3C2410_ADDR(0x00500000) |
91 | #define S3C2400_PA_TIMER (0x15100000) | 87 | #define S3C2400_PA_TIMER (0x15100000) |
92 | #define S3C2410_PA_TIMER (0x51000000) | 88 | #define S3C2410_PA_TIMER (0x51000000) |
93 | #define S3C24XX_SZ_TIMER SZ_1M | 89 | #define S3C24XX_SZ_TIMER SZ_1M |
94 | 90 | ||
95 | /* USB Device port */ | 91 | /* USB Device port */ |
96 | #define S3C24XX_VA_USBDEV S3C2410_ADDR(0x00A00000) | 92 | #define S3C24XX_VA_USBDEV S3C2410_ADDR(0x00600000) |
97 | #define S3C2400_PA_USBDEV (0x15200140) | 93 | #define S3C2400_PA_USBDEV (0x15200140) |
98 | #define S3C2410_PA_USBDEV (0x52000000) | 94 | #define S3C2410_PA_USBDEV (0x52000000) |
99 | #define S3C24XX_SZ_USBDEV SZ_1M | 95 | #define S3C24XX_SZ_USBDEV SZ_1M |
100 | 96 | ||
101 | /* Watchdog */ | 97 | /* Watchdog */ |
102 | #define S3C24XX_VA_WATCHDOG S3C2410_ADDR(0x00B00000) | 98 | #define S3C24XX_VA_WATCHDOG S3C2410_ADDR(0x00700000) |
103 | #define S3C2400_PA_WATCHDOG (0x15300000) | 99 | #define S3C2400_PA_WATCHDOG (0x15300000) |
104 | #define S3C2410_PA_WATCHDOG (0x53000000) | 100 | #define S3C2410_PA_WATCHDOG (0x53000000) |
105 | #define S3C24XX_SZ_WATCHDOG SZ_1M | 101 | #define S3C24XX_SZ_WATCHDOG SZ_1M |
106 | 102 | ||
107 | /* IIC hardware controller */ | 103 | /* IIC hardware controller */ |
108 | #define S3C24XX_VA_IIC S3C2410_ADDR(0x00C00000) | ||
109 | #define S3C2400_PA_IIC (0x15400000) | 104 | #define S3C2400_PA_IIC (0x15400000) |
110 | #define S3C2410_PA_IIC (0x54000000) | 105 | #define S3C2410_PA_IIC (0x54000000) |
111 | #define S3C24XX_SZ_IIC SZ_1M | 106 | #define S3C24XX_SZ_IIC SZ_1M |
112 | 107 | ||
113 | #define VA_IIC_BASE (S3C24XX_VA_IIC) | ||
114 | |||
115 | /* IIS controller */ | 108 | /* IIS controller */ |
116 | #define S3C24XX_VA_IIS S3C2410_ADDR(0x00D00000) | ||
117 | #define S3C2400_PA_IIS (0x15508000) | 109 | #define S3C2400_PA_IIS (0x15508000) |
118 | #define S3C2410_PA_IIS (0x55000000) | 110 | #define S3C2410_PA_IIS (0x55000000) |
119 | #define S3C24XX_SZ_IIS SZ_1M | 111 | #define S3C24XX_SZ_IIS SZ_1M |
@@ -134,25 +126,21 @@ | |||
134 | #define S3C24XX_SZ_GPIO SZ_1M | 126 | #define S3C24XX_SZ_GPIO SZ_1M |
135 | 127 | ||
136 | /* RTC */ | 128 | /* RTC */ |
137 | #define S3C24XX_VA_RTC S3C2410_ADDR(0x00F00000) | ||
138 | #define S3C2400_PA_RTC (0x15700040) | 129 | #define S3C2400_PA_RTC (0x15700040) |
139 | #define S3C2410_PA_RTC (0x57000000) | 130 | #define S3C2410_PA_RTC (0x57000000) |
140 | #define S3C24XX_SZ_RTC SZ_1M | 131 | #define S3C24XX_SZ_RTC SZ_1M |
141 | 132 | ||
142 | /* ADC */ | 133 | /* ADC */ |
143 | #define S3C24XX_VA_ADC S3C2410_ADDR(0x01000000) | ||
144 | #define S3C2400_PA_ADC (0x15800000) | 134 | #define S3C2400_PA_ADC (0x15800000) |
145 | #define S3C2410_PA_ADC (0x58000000) | 135 | #define S3C2410_PA_ADC (0x58000000) |
146 | #define S3C24XX_SZ_ADC SZ_1M | 136 | #define S3C24XX_SZ_ADC SZ_1M |
147 | 137 | ||
148 | /* SPI */ | 138 | /* SPI */ |
149 | #define S3C24XX_VA_SPI S3C2410_ADDR(0x01100000) | ||
150 | #define S3C2400_PA_SPI (0x15900000) | 139 | #define S3C2400_PA_SPI (0x15900000) |
151 | #define S3C2410_PA_SPI (0x59000000) | 140 | #define S3C2410_PA_SPI (0x59000000) |
152 | #define S3C24XX_SZ_SPI SZ_1M | 141 | #define S3C24XX_SZ_SPI SZ_1M |
153 | 142 | ||
154 | /* SDI */ | 143 | /* SDI */ |
155 | #define S3C24XX_VA_SDI S3C2410_ADDR(0x01200000) | ||
156 | #define S3C2410_PA_SDI (0x5A000000) | 144 | #define S3C2410_PA_SDI (0x5A000000) |
157 | #define S3C24XX_SZ_SDI SZ_1M | 145 | #define S3C24XX_SZ_SDI SZ_1M |
158 | 146 | ||
diff --git a/include/asm-arm/arch-s3c2410/nand.h b/include/asm-arm/arch-s3c2410/nand.h index e350ae2acfc6..8816f7f9cee1 100644 --- a/include/asm-arm/arch-s3c2410/nand.h +++ b/include/asm-arm/arch-s3c2410/nand.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/nand.h | 1 | /* linux/include/asm-arm/arch-s3c2410/nand.h |
2 | * | 2 | * |
3 | * (c) 2004 Simtec Electronics | 3 | * Copyright (c) 2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - NAND device controller platfrom_device info | 6 | * S3C2410 - NAND device controller platfrom_device info |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/osiris-cpld.h b/include/asm-arm/arch-s3c2410/osiris-cpld.h index e9d1ae1f354f..3b6498468d62 100644 --- a/include/asm-arm/arch-s3c2410/osiris-cpld.h +++ b/include/asm-arm/arch-s3c2410/osiris-cpld.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/osiris-cpld.h | 1 | /* linux/include/asm-arm/arch-s3c2410/osiris-cpld.h |
2 | * | 2 | * |
3 | * (c) 2005 Simtec Electronics | 3 | * Copyright (c) 2005 Simtec Electronics |
4 | * http://www.simtec.co.uk/products/ | 4 | * http://www.simtec.co.uk/products/ |
5 | * Ben Dooks <ben@simtec.co.uk> | 5 | * Ben Dooks <ben@simtec.co.uk> |
6 | * | 6 | * |
diff --git a/include/asm-arm/arch-s3c2410/regs-serial.h b/include/asm-arm/arch-s3c2410/regs-serial.h index 19c77da9c3fe..46f52401d132 100644 --- a/include/asm-arm/arch-s3c2410/regs-serial.h +++ b/include/asm-arm/arch-s3c2410/regs-serial.h | |||
@@ -197,7 +197,7 @@ struct s3c2410_uartcfg { | |||
197 | unsigned char hwport; /* hardware port number */ | 197 | unsigned char hwport; /* hardware port number */ |
198 | unsigned char unused; | 198 | unsigned char unused; |
199 | unsigned short flags; | 199 | unsigned short flags; |
200 | unsigned long uart_flags; /* default uart flags */ | 200 | upf_t uart_flags; /* default uart flags */ |
201 | 201 | ||
202 | unsigned long ucon; /* value of ucon for port */ | 202 | unsigned long ucon; /* value of ucon for port */ |
203 | unsigned long ulcon; /* value of ulcon for port */ | 203 | unsigned long ulcon; /* value of ulcon for port */ |
diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h index 4f72a853a5cf..ecf250db45fb 100644 --- a/include/asm-arm/arch-s3c2410/system.h +++ b/include/asm-arm/arch-s3c2410/system.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/system.h | 1 | /* linux/include/asm-arm/arch-s3c2410/system.h |
2 | * | 2 | * |
3 | * (c) 2003 Simtec Electronics | 3 | * Copyright (c) 2003 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - System function defines and includes | 6 | * S3C2410 - System function defines and includes |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/timex.h b/include/asm-arm/arch-s3c2410/timex.h index 703c337c5617..c16a99c5a59a 100644 --- a/include/asm-arm/arch-s3c2410/timex.h +++ b/include/asm-arm/arch-s3c2410/timex.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/timex.h | 1 | /* linux/include/asm-arm/arch-s3c2410/timex.h |
2 | * | 2 | * |
3 | * (c) 2003-2005 Simtec Electronics | 3 | * Copyright (c) 2003-2005 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - time parameters | 6 | * S3C2410 - time parameters |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h index 81b3e91c56ab..dcb2cef38f50 100644 --- a/include/asm-arm/arch-s3c2410/uncompress.h +++ b/include/asm-arm/arch-s3c2410/uncompress.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/uncompress.h | 1 | /* linux/include/asm-arm/arch-s3c2410/uncompress.h |
2 | * | 2 | * |
3 | * (c) 2003 Simtec Electronics | 3 | * Copyright (c) 2003 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - uncompress code | 6 | * S3C2410 - uncompress code |
7 | * | 7 | * |
@@ -13,6 +13,7 @@ | |||
13 | #ifndef __ASM_ARCH_UNCOMPRESS_H | 13 | #ifndef __ASM_ARCH_UNCOMPRESS_H |
14 | #define __ASM_ARCH_UNCOMPRESS_H | 14 | #define __ASM_ARCH_UNCOMPRESS_H |
15 | 15 | ||
16 | typedef unsigned int upf_t; /* cannot include linux/serial_core.h */ | ||
16 | 17 | ||
17 | /* defines for UART registers */ | 18 | /* defines for UART registers */ |
18 | #include "asm/arch/regs-serial.h" | 19 | #include "asm/arch/regs-serial.h" |
diff --git a/include/asm-arm/arch-s3c2410/usb-control.h b/include/asm-arm/arch-s3c2410/usb-control.h index 35723569a17a..5bfa376e33dc 100644 --- a/include/asm-arm/arch-s3c2410/usb-control.h +++ b/include/asm-arm/arch-s3c2410/usb-control.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/usb-control.h | 1 | /* linux/include/asm-arm/arch-s3c2410/usb-control.h |
2 | * | 2 | * |
3 | * (c) 2004 Simtec Electronics | 3 | * Copyright (c) 2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - usb port information | 6 | * S3C2410 - usb port information |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/vr1000-cpld.h b/include/asm-arm/arch-s3c2410/vr1000-cpld.h index a341b1e1bd98..0557b0a5ab1d 100644 --- a/include/asm-arm/arch-s3c2410/vr1000-cpld.h +++ b/include/asm-arm/arch-s3c2410/vr1000-cpld.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/vr1000-cpld.h | 1 | /* linux/include/asm-arm/arch-s3c2410/vr1000-cpld.h |
2 | * | 2 | * |
3 | * (c) 2003 Simtec Electronics | 3 | * Copyright (c) 2003 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * VR1000 - CPLD control constants | 6 | * VR1000 - CPLD control constants |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/vr1000-irq.h b/include/asm-arm/arch-s3c2410/vr1000-irq.h index c39a0ffa670d..890937083c61 100644 --- a/include/asm-arm/arch-s3c2410/vr1000-irq.h +++ b/include/asm-arm/arch-s3c2410/vr1000-irq.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/vr1000-irq.h | 1 | /* linux/include/asm-arm/arch-s3c2410/vr1000-irq.h |
2 | * | 2 | * |
3 | * (c) 2003,2004 Simtec Electronics | 3 | * Copyright (c) 2003,2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * Machine VR1000 - IRQ Number definitions | 6 | * Machine VR1000 - IRQ Number definitions |
7 | * | 7 | * |
diff --git a/include/asm-arm/arch-s3c2410/vr1000-map.h b/include/asm-arm/arch-s3c2410/vr1000-map.h index 1fe4db36c834..92a56a724a8c 100644 --- a/include/asm-arm/arch-s3c2410/vr1000-map.h +++ b/include/asm-arm/arch-s3c2410/vr1000-map.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/include/asm-arm/arch-s3c2410/vr1000-map.h | 1 | /* linux/include/asm-arm/arch-s3c2410/vr1000-map.h |
2 | * | 2 | * |
3 | * (c) 2003-2005 Simtec Electronics | 3 | * Copyright (c) 2003-2005 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * Machine VR1000 - Memory map definitions | 6 | * Machine VR1000 - Memory map definitions |
7 | * | 7 | * |
diff --git a/include/asm-arm/elf.h b/include/asm-arm/elf.h index 642382d2c9f0..3679a8a8922e 100644 --- a/include/asm-arm/elf.h +++ b/include/asm-arm/elf.h | |||
@@ -52,6 +52,7 @@ typedef struct user_fp elf_fpregset_t; | |||
52 | #define HWCAP_EDSP 128 | 52 | #define HWCAP_EDSP 128 |
53 | #define HWCAP_JAVA 256 | 53 | #define HWCAP_JAVA 256 |
54 | #define HWCAP_IWMMXT 512 | 54 | #define HWCAP_IWMMXT 512 |
55 | #define HWCAP_CRUNCH 1024 | ||
55 | 56 | ||
56 | #ifdef __KERNEL__ | 57 | #ifdef __KERNEL__ |
57 | #ifndef __ASSEMBLY__ | 58 | #ifndef __ASSEMBLY__ |
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h index e160aeb0138d..aa223fc546af 100644 --- a/include/asm-arm/system.h +++ b/include/asm-arm/system.h | |||
@@ -73,6 +73,7 @@ | |||
73 | #ifndef __ASSEMBLY__ | 73 | #ifndef __ASSEMBLY__ |
74 | 74 | ||
75 | #include <linux/linkage.h> | 75 | #include <linux/linkage.h> |
76 | #include <linux/irqflags.h> | ||
76 | 77 | ||
77 | struct thread_info; | 78 | struct thread_info; |
78 | struct task_struct; | 79 | struct task_struct; |
@@ -139,6 +140,9 @@ static inline int cpu_is_xsc3(void) | |||
139 | #define cpu_is_xscale() 1 | 140 | #define cpu_is_xscale() 1 |
140 | #endif | 141 | #endif |
141 | 142 | ||
143 | extern unsigned long cr_no_alignment; /* defined in entry-armv.S */ | ||
144 | extern unsigned long cr_alignment; /* defined in entry-armv.S */ | ||
145 | |||
142 | static inline unsigned int get_cr(void) | 146 | static inline unsigned int get_cr(void) |
143 | { | 147 | { |
144 | unsigned int val; | 148 | unsigned int val; |
@@ -152,6 +156,10 @@ static inline void set_cr(unsigned int val) | |||
152 | : : "r" (val) : "cc"); | 156 | : : "r" (val) : "cc"); |
153 | } | 157 | } |
154 | 158 | ||
159 | #ifndef CONFIG_SMP | ||
160 | extern void adjust_cr(unsigned long mask, unsigned long set); | ||
161 | #endif | ||
162 | |||
155 | #define CPACC_FULL(n) (3 << (n * 2)) | 163 | #define CPACC_FULL(n) (3 << (n * 2)) |
156 | #define CPACC_SVC(n) (1 << (n * 2)) | 164 | #define CPACC_SVC(n) (1 << (n * 2)) |
157 | #define CPACC_DISABLE(n) (0 << (n * 2)) | 165 | #define CPACC_DISABLE(n) (0 << (n * 2)) |
@@ -170,29 +178,6 @@ static inline void set_copro_access(unsigned int val) | |||
170 | : : "r" (val) : "cc"); | 178 | : : "r" (val) : "cc"); |
171 | } | 179 | } |
172 | 180 | ||
173 | extern unsigned long cr_no_alignment; /* defined in entry-armv.S */ | ||
174 | extern unsigned long cr_alignment; /* defined in entry-armv.S */ | ||
175 | |||
176 | #ifndef CONFIG_SMP | ||
177 | static inline void adjust_cr(unsigned long mask, unsigned long set) | ||
178 | { | ||
179 | unsigned long flags, cr; | ||
180 | |||
181 | mask &= ~CR_A; | ||
182 | |||
183 | set &= mask; | ||
184 | |||
185 | local_irq_save(flags); | ||
186 | |||
187 | cr_no_alignment = (cr_no_alignment & ~mask) | set; | ||
188 | cr_alignment = (cr_alignment & ~mask) | set; | ||
189 | |||
190 | set_cr((get_cr() & ~mask) | set); | ||
191 | |||
192 | local_irq_restore(flags); | ||
193 | } | ||
194 | #endif | ||
195 | |||
196 | #define UDBG_UNDEFINED (1 << 0) | 181 | #define UDBG_UNDEFINED (1 << 0) |
197 | #define UDBG_SYSCALL (1 << 1) | 182 | #define UDBG_SYSCALL (1 << 1) |
198 | #define UDBG_BADABORT (1 << 2) | 183 | #define UDBG_BADABORT (1 << 2) |
@@ -248,8 +233,6 @@ static inline void sched_cacheflush(void) | |||
248 | { | 233 | { |
249 | } | 234 | } |
250 | 235 | ||
251 | #include <linux/irqflags.h> | ||
252 | |||
253 | #ifdef CONFIG_SMP | 236 | #ifdef CONFIG_SMP |
254 | 237 | ||
255 | #define smp_mb() mb() | 238 | #define smp_mb() mb() |
diff --git a/include/asm-arm/unistd.h b/include/asm-arm/unistd.h index 32b06eb52819..97e7060000cf 100644 --- a/include/asm-arm/unistd.h +++ b/include/asm-arm/unistd.h | |||
@@ -360,6 +360,18 @@ | |||
360 | #define __NR_readlinkat (__NR_SYSCALL_BASE+332) | 360 | #define __NR_readlinkat (__NR_SYSCALL_BASE+332) |
361 | #define __NR_fchmodat (__NR_SYSCALL_BASE+333) | 361 | #define __NR_fchmodat (__NR_SYSCALL_BASE+333) |
362 | #define __NR_faccessat (__NR_SYSCALL_BASE+334) | 362 | #define __NR_faccessat (__NR_SYSCALL_BASE+334) |
363 | /* 335 for pselect6 */ | ||
364 | /* 336 for ppoll */ | ||
365 | #define __NR_unshare (__NR_SYSCALL_BASE+337) | ||
366 | #define __NR_set_robust_list (__NR_SYSCALL_BASE+338) | ||
367 | #define __NR_get_robust_list (__NR_SYSCALL_BASE+339) | ||
368 | #define __NR_splice (__NR_SYSCALL_BASE+340) | ||
369 | #define __NR_arm_sync_file_range (__NR_SYSCALL_BASE+341) | ||
370 | #define __NR_tee (__NR_SYSCALL_BASE+342) | ||
371 | #define __NR_vmsplice (__NR_SYSCALL_BASE+343) | ||
372 | #define __NR_move_pages (__NR_SYSCALL_BASE+344) | ||
373 | #define __NR_getcpu (__NR_SYSCALL_BASE+345) | ||
374 | /* 346 for epoll_pwait */ | ||
363 | 375 | ||
364 | /* | 376 | /* |
365 | * The following SWIs are ARM private. | 377 | * The following SWIs are ARM private. |
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index a06eecd48292..14fae1fa87df 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h | |||
@@ -35,7 +35,7 @@ struct bug_entry { | |||
35 | #define WARN_ON(condition) ({ \ | 35 | #define WARN_ON(condition) ({ \ |
36 | typeof(condition) __ret_warn_on = (condition); \ | 36 | typeof(condition) __ret_warn_on = (condition); \ |
37 | if (unlikely(__ret_warn_on)) { \ | 37 | if (unlikely(__ret_warn_on)) { \ |
38 | printk("WARNING at %s:%d %s()\n", __FILE__, \ | 38 | printk("BUG: at %s:%d %s()\n", __FILE__, \ |
39 | __LINE__, __FUNCTION__); \ | 39 | __LINE__, __FUNCTION__); \ |
40 | dump_stack(); \ | 40 | dump_stack(); \ |
41 | } \ | 41 | } \ |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 7437ccaada77..9fcc8d9fbb14 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -35,6 +35,9 @@ | |||
35 | VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \ | 35 | VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \ |
36 | *(.pci_fixup_enable) \ | 36 | *(.pci_fixup_enable) \ |
37 | VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \ | 37 | VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \ |
38 | VMLINUX_SYMBOL(__start_pci_fixups_resume) = .; \ | ||
39 | *(.pci_fixup_resume) \ | ||
40 | VMLINUX_SYMBOL(__end_pci_fixups_resume) = .; \ | ||
38 | } \ | 41 | } \ |
39 | \ | 42 | \ |
40 | /* RapidIO route ops */ \ | 43 | /* RapidIO route ops */ \ |
@@ -119,8 +122,6 @@ | |||
119 | *(__ksymtab_strings) \ | 122 | *(__ksymtab_strings) \ |
120 | } \ | 123 | } \ |
121 | \ | 124 | \ |
122 | EH_FRAME \ | ||
123 | \ | ||
124 | /* Built-in module parameters. */ \ | 125 | /* Built-in module parameters. */ \ |
125 | __param : AT(ADDR(__param) - LOAD_OFFSET) { \ | 126 | __param : AT(ADDR(__param) - LOAD_OFFSET) { \ |
126 | VMLINUX_SYMBOL(__start___param) = .; \ | 127 | VMLINUX_SYMBOL(__start___param) = .; \ |
@@ -160,26 +161,6 @@ | |||
160 | *(.kprobes.text) \ | 161 | *(.kprobes.text) \ |
161 | VMLINUX_SYMBOL(__kprobes_text_end) = .; | 162 | VMLINUX_SYMBOL(__kprobes_text_end) = .; |
162 | 163 | ||
163 | #ifdef CONFIG_STACK_UNWIND | ||
164 | #define EH_FRAME \ | ||
165 | /* Unwind data binary search table */ \ | ||
166 | . = ALIGN(8); \ | ||
167 | .eh_frame_hdr : AT(ADDR(.eh_frame_hdr) - LOAD_OFFSET) { \ | ||
168 | VMLINUX_SYMBOL(__start_unwind_hdr) = .; \ | ||
169 | *(.eh_frame_hdr) \ | ||
170 | VMLINUX_SYMBOL(__end_unwind_hdr) = .; \ | ||
171 | } \ | ||
172 | /* Unwind data */ \ | ||
173 | . = ALIGN(8); \ | ||
174 | .eh_frame : AT(ADDR(.eh_frame) - LOAD_OFFSET) { \ | ||
175 | VMLINUX_SYMBOL(__start_unwind) = .; \ | ||
176 | *(.eh_frame) \ | ||
177 | VMLINUX_SYMBOL(__end_unwind) = .; \ | ||
178 | } | ||
179 | #else | ||
180 | #define EH_FRAME | ||
181 | #endif | ||
182 | |||
183 | /* DWARF debug sections. | 164 | /* DWARF debug sections. |
184 | Symbols in the DWARF debugging sections are relative to | 165 | Symbols in the DWARF debugging sections are relative to |
185 | the beginning of the section so we begin them at 0. */ | 166 | the beginning of the section so we begin them at 0. */ |
diff --git a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h index c80b3a94511a..7cfad93edf10 100644 --- a/include/asm-i386/acpi.h +++ b/include/asm-i386/acpi.h | |||
@@ -56,30 +56,8 @@ | |||
56 | #define ACPI_ENABLE_IRQS() local_irq_enable() | 56 | #define ACPI_ENABLE_IRQS() local_irq_enable() |
57 | #define ACPI_FLUSH_CPU_CACHE() wbinvd() | 57 | #define ACPI_FLUSH_CPU_CACHE() wbinvd() |
58 | 58 | ||
59 | 59 | int __acpi_acquire_global_lock(unsigned int *lock); | |
60 | static inline int | 60 | int __acpi_release_global_lock(unsigned int *lock); |
61 | __acpi_acquire_global_lock (unsigned int *lock) | ||
62 | { | ||
63 | unsigned int old, new, val; | ||
64 | do { | ||
65 | old = *lock; | ||
66 | new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1)); | ||
67 | val = cmpxchg(lock, old, new); | ||
68 | } while (unlikely (val != old)); | ||
69 | return (new < 3) ? -1 : 0; | ||
70 | } | ||
71 | |||
72 | static inline int | ||
73 | __acpi_release_global_lock (unsigned int *lock) | ||
74 | { | ||
75 | unsigned int old, new, val; | ||
76 | do { | ||
77 | old = *lock; | ||
78 | new = old & ~0x3; | ||
79 | val = cmpxchg(lock, old, new); | ||
80 | } while (unlikely (val != old)); | ||
81 | return old & 0x1; | ||
82 | } | ||
83 | 61 | ||
84 | #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ | 62 | #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ |
85 | ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) | 63 | ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) |
diff --git a/include/asm-i386/e820.h b/include/asm-i386/e820.h index 395077aba583..c5b8fc6109d6 100644 --- a/include/asm-i386/e820.h +++ b/include/asm-i386/e820.h | |||
@@ -40,7 +40,7 @@ extern int e820_all_mapped(unsigned long start, unsigned long end, | |||
40 | unsigned type); | 40 | unsigned type); |
41 | extern void find_max_pfn(void); | 41 | extern void find_max_pfn(void); |
42 | extern void register_bootmem_low_pages(unsigned long max_low_pfn); | 42 | extern void register_bootmem_low_pages(unsigned long max_low_pfn); |
43 | extern void register_memory(void); | 43 | extern void e820_register_memory(void); |
44 | extern void limit_regions(unsigned long long size); | 44 | extern void limit_regions(unsigned long long size); |
45 | extern void print_memory_map(char *who); | 45 | extern void print_memory_map(char *who); |
46 | 46 | ||
diff --git a/include/asm-i386/unwind.h b/include/asm-i386/unwind.h index aa2c931e30db..43c70c3de2f9 100644 --- a/include/asm-i386/unwind.h +++ b/include/asm-i386/unwind.h | |||
@@ -1,95 +1,6 @@ | |||
1 | #ifndef _ASM_I386_UNWIND_H | 1 | #ifndef _ASM_I386_UNWIND_H |
2 | #define _ASM_I386_UNWIND_H | 2 | #define _ASM_I386_UNWIND_H |
3 | 3 | ||
4 | /* | ||
5 | * Copyright (C) 2002-2006 Novell, Inc. | ||
6 | * Jan Beulich <jbeulich@novell.com> | ||
7 | * This code is released under version 2 of the GNU GPL. | ||
8 | */ | ||
9 | |||
10 | #ifdef CONFIG_STACK_UNWIND | ||
11 | |||
12 | #include <linux/sched.h> | ||
13 | #include <asm/fixmap.h> | ||
14 | #include <asm/ptrace.h> | ||
15 | #include <asm/uaccess.h> | ||
16 | |||
17 | struct unwind_frame_info | ||
18 | { | ||
19 | struct pt_regs regs; | ||
20 | struct task_struct *task; | ||
21 | unsigned call_frame:1; | ||
22 | }; | ||
23 | |||
24 | #define UNW_PC(frame) (frame)->regs.eip | ||
25 | #define UNW_SP(frame) (frame)->regs.esp | ||
26 | #ifdef CONFIG_FRAME_POINTER | ||
27 | #define UNW_FP(frame) (frame)->regs.ebp | ||
28 | #define FRAME_RETADDR_OFFSET 4 | ||
29 | #define FRAME_LINK_OFFSET 0 | ||
30 | #define STACK_BOTTOM(tsk) STACK_LIMIT((tsk)->thread.esp0) | ||
31 | #define STACK_TOP(tsk) ((tsk)->thread.esp0) | ||
32 | #else | ||
33 | #define UNW_FP(frame) ((void)(frame), 0) | ||
34 | #endif | ||
35 | #define STACK_LIMIT(ptr) (((ptr) - 1) & ~(THREAD_SIZE - 1)) | ||
36 | |||
37 | #define UNW_REGISTER_INFO \ | ||
38 | PTREGS_INFO(eax), \ | ||
39 | PTREGS_INFO(ecx), \ | ||
40 | PTREGS_INFO(edx), \ | ||
41 | PTREGS_INFO(ebx), \ | ||
42 | PTREGS_INFO(esp), \ | ||
43 | PTREGS_INFO(ebp), \ | ||
44 | PTREGS_INFO(esi), \ | ||
45 | PTREGS_INFO(edi), \ | ||
46 | PTREGS_INFO(eip) | ||
47 | |||
48 | #define UNW_DEFAULT_RA(raItem, dataAlign) \ | ||
49 | ((raItem).where == Memory && \ | ||
50 | !((raItem).value * (dataAlign) + 4)) | ||
51 | |||
52 | static inline void arch_unw_init_frame_info(struct unwind_frame_info *info, | ||
53 | /*const*/ struct pt_regs *regs) | ||
54 | { | ||
55 | if (user_mode_vm(regs)) | ||
56 | info->regs = *regs; | ||
57 | else { | ||
58 | memcpy(&info->regs, regs, offsetof(struct pt_regs, esp)); | ||
59 | info->regs.esp = (unsigned long)®s->esp; | ||
60 | info->regs.xss = __KERNEL_DS; | ||
61 | } | ||
62 | } | ||
63 | |||
64 | static inline void arch_unw_init_blocked(struct unwind_frame_info *info) | ||
65 | { | ||
66 | memset(&info->regs, 0, sizeof(info->regs)); | ||
67 | info->regs.eip = info->task->thread.eip; | ||
68 | info->regs.xcs = __KERNEL_CS; | ||
69 | __get_user(info->regs.ebp, (long *)info->task->thread.esp); | ||
70 | info->regs.esp = info->task->thread.esp; | ||
71 | info->regs.xss = __KERNEL_DS; | ||
72 | info->regs.xds = __USER_DS; | ||
73 | info->regs.xes = __USER_DS; | ||
74 | info->regs.xgs = __KERNEL_PDA; | ||
75 | } | ||
76 | |||
77 | extern asmlinkage int arch_unwind_init_running(struct unwind_frame_info *, | ||
78 | asmlinkage int (*callback)(struct unwind_frame_info *, | ||
79 | void *arg), | ||
80 | void *arg); | ||
81 | |||
82 | static inline int arch_unw_user_mode(/*const*/ struct unwind_frame_info *info) | ||
83 | { | ||
84 | return user_mode_vm(&info->regs) | ||
85 | || info->regs.eip < PAGE_OFFSET | ||
86 | || (info->regs.eip >= __fix_to_virt(FIX_VDSO) | ||
87 | && info->regs.eip < __fix_to_virt(FIX_VDSO) + PAGE_SIZE) | ||
88 | || info->regs.esp < PAGE_OFFSET; | ||
89 | } | ||
90 | |||
91 | #else | ||
92 | |||
93 | #define UNW_PC(frame) ((void)(frame), 0) | 4 | #define UNW_PC(frame) ((void)(frame), 0) |
94 | #define UNW_SP(frame) ((void)(frame), 0) | 5 | #define UNW_SP(frame) ((void)(frame), 0) |
95 | #define UNW_FP(frame) ((void)(frame), 0) | 6 | #define UNW_FP(frame) ((void)(frame), 0) |
@@ -99,6 +10,4 @@ static inline int arch_unw_user_mode(const void *info) | |||
99 | return 0; | 10 | return 0; |
100 | } | 11 | } |
101 | 12 | ||
102 | #endif | ||
103 | |||
104 | #endif /* _ASM_I386_UNWIND_H */ | 13 | #endif /* _ASM_I386_UNWIND_H */ |
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h index fdad4267b447..3d90264e9d36 100644 --- a/include/asm-powerpc/spu.h +++ b/include/asm-powerpc/spu.h | |||
@@ -161,6 +161,7 @@ struct spu_syscall_block { | |||
161 | extern long spu_sys_callback(struct spu_syscall_block *s); | 161 | extern long spu_sys_callback(struct spu_syscall_block *s); |
162 | 162 | ||
163 | /* syscalls implemented in spufs */ | 163 | /* syscalls implemented in spufs */ |
164 | struct file; | ||
164 | extern struct spufs_calls { | 165 | extern struct spufs_calls { |
165 | asmlinkage long (*create_thread)(const char __user *name, | 166 | asmlinkage long (*create_thread)(const char __user *name, |
166 | unsigned int flags, mode_t mode); | 167 | unsigned int flags, mode_t mode); |
@@ -232,6 +233,7 @@ void spu_remove_sysdev_attr_group(struct attribute_group *attrs); | |||
232 | * to object-id spufs file from user space and the notifer | 233 | * to object-id spufs file from user space and the notifer |
233 | * function can assume that spu->ctx is valid. | 234 | * function can assume that spu->ctx is valid. |
234 | */ | 235 | */ |
236 | struct notifier_block; | ||
235 | int spu_switch_event_register(struct notifier_block * n); | 237 | int spu_switch_event_register(struct notifier_block * n); |
236 | int spu_switch_event_unregister(struct notifier_block * n); | 238 | int spu_switch_event_unregister(struct notifier_block * n); |
237 | 239 | ||
diff --git a/include/asm-s390/qdio.h b/include/asm-s390/qdio.h index 7189c79bc673..127f72e77419 100644 --- a/include/asm-s390/qdio.h +++ b/include/asm-s390/qdio.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #define QDIO_QETH_QFMT 0 | 34 | #define QDIO_QETH_QFMT 0 |
35 | #define QDIO_ZFCP_QFMT 1 | 35 | #define QDIO_ZFCP_QFMT 1 |
36 | #define QDIO_IQDIO_QFMT 2 | 36 | #define QDIO_IQDIO_QFMT 2 |
37 | #define QDIO_IQDIO_QFMT_ASYNCH 3 | ||
37 | 38 | ||
38 | struct qdio_buffer_element{ | 39 | struct qdio_buffer_element{ |
39 | unsigned int flags; | 40 | unsigned int flags; |
diff --git a/include/asm-s390/reset.h b/include/asm-s390/reset.h index 9b439cf67800..532e65a2aafc 100644 --- a/include/asm-s390/reset.h +++ b/include/asm-s390/reset.h | |||
@@ -19,5 +19,6 @@ extern void register_reset_call(struct reset_call *reset); | |||
19 | extern void unregister_reset_call(struct reset_call *reset); | 19 | extern void unregister_reset_call(struct reset_call *reset); |
20 | extern void s390_reset_system(void); | 20 | extern void s390_reset_system(void); |
21 | extern void (*s390_reset_mcck_handler)(void); | 21 | extern void (*s390_reset_mcck_handler)(void); |
22 | extern void (*s390_reset_pgm_handler)(void); | ||
22 | 23 | ||
23 | #endif /* _ASM_S390_RESET_H */ | 24 | #endif /* _ASM_S390_RESET_H */ |
diff --git a/include/asm-sparc/bitops.h b/include/asm-sparc/bitops.h index 04aa3318f76a..329e696e7751 100644 --- a/include/asm-sparc/bitops.h +++ b/include/asm-sparc/bitops.h | |||
@@ -14,6 +14,10 @@ | |||
14 | 14 | ||
15 | #ifdef __KERNEL__ | 15 | #ifdef __KERNEL__ |
16 | 16 | ||
17 | extern unsigned long ___set_bit(unsigned long *addr, unsigned long mask); | ||
18 | extern unsigned long ___clear_bit(unsigned long *addr, unsigned long mask); | ||
19 | extern unsigned long ___change_bit(unsigned long *addr, unsigned long mask); | ||
20 | |||
17 | /* | 21 | /* |
18 | * Set bit 'nr' in 32-bit quantity at address 'addr' where bit '0' | 22 | * Set bit 'nr' in 32-bit quantity at address 'addr' where bit '0' |
19 | * is in the highest of the four bytes and bit '31' is the high bit | 23 | * is in the highest of the four bytes and bit '31' is the high bit |
@@ -22,134 +26,62 @@ | |||
22 | */ | 26 | */ |
23 | static inline int test_and_set_bit(unsigned long nr, volatile unsigned long *addr) | 27 | static inline int test_and_set_bit(unsigned long nr, volatile unsigned long *addr) |
24 | { | 28 | { |
25 | register unsigned long mask asm("g2"); | 29 | unsigned long *ADDR, mask; |
26 | register unsigned long *ADDR asm("g1"); | ||
27 | register int tmp1 asm("g3"); | ||
28 | register int tmp2 asm("g4"); | ||
29 | register int tmp3 asm("g5"); | ||
30 | register int tmp4 asm("g7"); | ||
31 | 30 | ||
32 | ADDR = ((unsigned long *) addr) + (nr >> 5); | 31 | ADDR = ((unsigned long *) addr) + (nr >> 5); |
33 | mask = 1 << (nr & 31); | 32 | mask = 1 << (nr & 31); |
34 | 33 | ||
35 | __asm__ __volatile__( | 34 | return ___set_bit(ADDR, mask) != 0; |
36 | "mov %%o7, %%g4\n\t" | ||
37 | "call ___set_bit\n\t" | ||
38 | " add %%o7, 8, %%o7\n" | ||
39 | : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4) | ||
40 | : "0" (mask), "r" (ADDR) | ||
41 | : "memory", "cc"); | ||
42 | |||
43 | return mask != 0; | ||
44 | } | 35 | } |
45 | 36 | ||
46 | static inline void set_bit(unsigned long nr, volatile unsigned long *addr) | 37 | static inline void set_bit(unsigned long nr, volatile unsigned long *addr) |
47 | { | 38 | { |
48 | register unsigned long mask asm("g2"); | 39 | unsigned long *ADDR, mask; |
49 | register unsigned long *ADDR asm("g1"); | ||
50 | register int tmp1 asm("g3"); | ||
51 | register int tmp2 asm("g4"); | ||
52 | register int tmp3 asm("g5"); | ||
53 | register int tmp4 asm("g7"); | ||
54 | 40 | ||
55 | ADDR = ((unsigned long *) addr) + (nr >> 5); | 41 | ADDR = ((unsigned long *) addr) + (nr >> 5); |
56 | mask = 1 << (nr & 31); | 42 | mask = 1 << (nr & 31); |
57 | 43 | ||
58 | __asm__ __volatile__( | 44 | (void) ___set_bit(ADDR, mask); |
59 | "mov %%o7, %%g4\n\t" | ||
60 | "call ___set_bit\n\t" | ||
61 | " add %%o7, 8, %%o7\n" | ||
62 | : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4) | ||
63 | : "0" (mask), "r" (ADDR) | ||
64 | : "memory", "cc"); | ||
65 | } | 45 | } |
66 | 46 | ||
67 | static inline int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr) | 47 | static inline int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr) |
68 | { | 48 | { |
69 | register unsigned long mask asm("g2"); | 49 | unsigned long *ADDR, mask; |
70 | register unsigned long *ADDR asm("g1"); | ||
71 | register int tmp1 asm("g3"); | ||
72 | register int tmp2 asm("g4"); | ||
73 | register int tmp3 asm("g5"); | ||
74 | register int tmp4 asm("g7"); | ||
75 | 50 | ||
76 | ADDR = ((unsigned long *) addr) + (nr >> 5); | 51 | ADDR = ((unsigned long *) addr) + (nr >> 5); |
77 | mask = 1 << (nr & 31); | 52 | mask = 1 << (nr & 31); |
78 | 53 | ||
79 | __asm__ __volatile__( | 54 | return ___clear_bit(ADDR, mask) != 0; |
80 | "mov %%o7, %%g4\n\t" | ||
81 | "call ___clear_bit\n\t" | ||
82 | " add %%o7, 8, %%o7\n" | ||
83 | : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4) | ||
84 | : "0" (mask), "r" (ADDR) | ||
85 | : "memory", "cc"); | ||
86 | |||
87 | return mask != 0; | ||
88 | } | 55 | } |
89 | 56 | ||
90 | static inline void clear_bit(unsigned long nr, volatile unsigned long *addr) | 57 | static inline void clear_bit(unsigned long nr, volatile unsigned long *addr) |
91 | { | 58 | { |
92 | register unsigned long mask asm("g2"); | 59 | unsigned long *ADDR, mask; |
93 | register unsigned long *ADDR asm("g1"); | ||
94 | register int tmp1 asm("g3"); | ||
95 | register int tmp2 asm("g4"); | ||
96 | register int tmp3 asm("g5"); | ||
97 | register int tmp4 asm("g7"); | ||
98 | 60 | ||
99 | ADDR = ((unsigned long *) addr) + (nr >> 5); | 61 | ADDR = ((unsigned long *) addr) + (nr >> 5); |
100 | mask = 1 << (nr & 31); | 62 | mask = 1 << (nr & 31); |
101 | 63 | ||
102 | __asm__ __volatile__( | 64 | (void) ___clear_bit(ADDR, mask); |
103 | "mov %%o7, %%g4\n\t" | ||
104 | "call ___clear_bit\n\t" | ||
105 | " add %%o7, 8, %%o7\n" | ||
106 | : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4) | ||
107 | : "0" (mask), "r" (ADDR) | ||
108 | : "memory", "cc"); | ||
109 | } | 65 | } |
110 | 66 | ||
111 | static inline int test_and_change_bit(unsigned long nr, volatile unsigned long *addr) | 67 | static inline int test_and_change_bit(unsigned long nr, volatile unsigned long *addr) |
112 | { | 68 | { |
113 | register unsigned long mask asm("g2"); | 69 | unsigned long *ADDR, mask; |
114 | register unsigned long *ADDR asm("g1"); | ||
115 | register int tmp1 asm("g3"); | ||
116 | register int tmp2 asm("g4"); | ||
117 | register int tmp3 asm("g5"); | ||
118 | register int tmp4 asm("g7"); | ||
119 | 70 | ||
120 | ADDR = ((unsigned long *) addr) + (nr >> 5); | 71 | ADDR = ((unsigned long *) addr) + (nr >> 5); |
121 | mask = 1 << (nr & 31); | 72 | mask = 1 << (nr & 31); |
122 | 73 | ||
123 | __asm__ __volatile__( | 74 | return ___change_bit(ADDR, mask) != 0; |
124 | "mov %%o7, %%g4\n\t" | ||
125 | "call ___change_bit\n\t" | ||
126 | " add %%o7, 8, %%o7\n" | ||
127 | : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4) | ||
128 | : "0" (mask), "r" (ADDR) | ||
129 | : "memory", "cc"); | ||
130 | |||
131 | return mask != 0; | ||
132 | } | 75 | } |
133 | 76 | ||
134 | static inline void change_bit(unsigned long nr, volatile unsigned long *addr) | 77 | static inline void change_bit(unsigned long nr, volatile unsigned long *addr) |
135 | { | 78 | { |
136 | register unsigned long mask asm("g2"); | 79 | unsigned long *ADDR, mask; |
137 | register unsigned long *ADDR asm("g1"); | ||
138 | register int tmp1 asm("g3"); | ||
139 | register int tmp2 asm("g4"); | ||
140 | register int tmp3 asm("g5"); | ||
141 | register int tmp4 asm("g7"); | ||
142 | 80 | ||
143 | ADDR = ((unsigned long *) addr) + (nr >> 5); | 81 | ADDR = ((unsigned long *) addr) + (nr >> 5); |
144 | mask = 1 << (nr & 31); | 82 | mask = 1 << (nr & 31); |
145 | 83 | ||
146 | __asm__ __volatile__( | 84 | (void) ___change_bit(ADDR, mask); |
147 | "mov %%o7, %%g4\n\t" | ||
148 | "call ___change_bit\n\t" | ||
149 | " add %%o7, 8, %%o7\n" | ||
150 | : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4) | ||
151 | : "0" (mask), "r" (ADDR) | ||
152 | : "memory", "cc"); | ||
153 | } | 85 | } |
154 | 86 | ||
155 | #include <asm-generic/bitops/non-atomic.h> | 87 | #include <asm-generic/bitops/non-atomic.h> |
diff --git a/include/asm-sparc64/hw_irq.h b/include/asm-sparc64/hw_irq.h index 599b3b073450..8e44a8360829 100644 --- a/include/asm-sparc64/hw_irq.h +++ b/include/asm-sparc64/hw_irq.h | |||
@@ -1,6 +1,4 @@ | |||
1 | #ifndef __ASM_SPARC64_HW_IRQ_H | 1 | #ifndef __ASM_SPARC64_HW_IRQ_H |
2 | #define __ASM_SPARC64_HW_IRQ_H | 2 | #define __ASM_SPARC64_HW_IRQ_H |
3 | 3 | ||
4 | extern void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq); | ||
5 | |||
6 | #endif | 4 | #endif |
diff --git a/include/asm-sparc64/percpu.h b/include/asm-sparc64/percpu.h index ced8cbde046d..0d3df76aa47f 100644 --- a/include/asm-sparc64/percpu.h +++ b/include/asm-sparc64/percpu.h | |||
@@ -5,6 +5,16 @@ | |||
5 | 5 | ||
6 | #ifdef CONFIG_SMP | 6 | #ifdef CONFIG_SMP |
7 | 7 | ||
8 | #ifdef CONFIG_MODULES | ||
9 | # define PERCPU_MODULE_RESERVE 8192 | ||
10 | #else | ||
11 | # define PERCPU_MODULE_RESERVE 0 | ||
12 | #endif | ||
13 | |||
14 | #define PERCPU_ENOUGH_ROOM \ | ||
15 | (ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES) + \ | ||
16 | PERCPU_MODULE_RESERVE) | ||
17 | |||
8 | extern void setup_per_cpu_areas(void); | 18 | extern void setup_per_cpu_areas(void); |
9 | 19 | ||
10 | extern unsigned long __per_cpu_base; | 20 | extern unsigned long __per_cpu_base; |
diff --git a/include/asm-x86_64/acpi.h b/include/asm-x86_64/acpi.h index 9d1916e59c04..6b6fc6f8be7e 100644 --- a/include/asm-x86_64/acpi.h +++ b/include/asm-x86_64/acpi.h | |||
@@ -54,30 +54,8 @@ | |||
54 | #define ACPI_ENABLE_IRQS() local_irq_enable() | 54 | #define ACPI_ENABLE_IRQS() local_irq_enable() |
55 | #define ACPI_FLUSH_CPU_CACHE() wbinvd() | 55 | #define ACPI_FLUSH_CPU_CACHE() wbinvd() |
56 | 56 | ||
57 | 57 | int __acpi_acquire_global_lock(unsigned int *lock); | |
58 | static inline int | 58 | int __acpi_release_global_lock(unsigned int *lock); |
59 | __acpi_acquire_global_lock (unsigned int *lock) | ||
60 | { | ||
61 | unsigned int old, new, val; | ||
62 | do { | ||
63 | old = *lock; | ||
64 | new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1)); | ||
65 | val = cmpxchg(lock, old, new); | ||
66 | } while (unlikely (val != old)); | ||
67 | return (new < 3) ? -1 : 0; | ||
68 | } | ||
69 | |||
70 | static inline int | ||
71 | __acpi_release_global_lock (unsigned int *lock) | ||
72 | { | ||
73 | unsigned int old, new, val; | ||
74 | do { | ||
75 | old = *lock; | ||
76 | new = old & ~0x3; | ||
77 | val = cmpxchg(lock, old, new); | ||
78 | } while (unlikely (val != old)); | ||
79 | return old & 0x1; | ||
80 | } | ||
81 | 59 | ||
82 | #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ | 60 | #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ |
83 | ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) | 61 | ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) |
diff --git a/include/asm-x86_64/unwind.h b/include/asm-x86_64/unwind.h index 2f6349e48717..02710f6a4560 100644 --- a/include/asm-x86_64/unwind.h +++ b/include/asm-x86_64/unwind.h | |||
@@ -1,100 +1,6 @@ | |||
1 | #ifndef _ASM_X86_64_UNWIND_H | 1 | #ifndef _ASM_X86_64_UNWIND_H |
2 | #define _ASM_X86_64_UNWIND_H | 2 | #define _ASM_X86_64_UNWIND_H |
3 | 3 | ||
4 | /* | ||
5 | * Copyright (C) 2002-2006 Novell, Inc. | ||
6 | * Jan Beulich <jbeulich@novell.com> | ||
7 | * This code is released under version 2 of the GNU GPL. | ||
8 | */ | ||
9 | |||
10 | #ifdef CONFIG_STACK_UNWIND | ||
11 | |||
12 | #include <linux/sched.h> | ||
13 | #include <asm/ptrace.h> | ||
14 | #include <asm/uaccess.h> | ||
15 | #include <asm/vsyscall.h> | ||
16 | |||
17 | struct unwind_frame_info | ||
18 | { | ||
19 | struct pt_regs regs; | ||
20 | struct task_struct *task; | ||
21 | unsigned call_frame:1; | ||
22 | }; | ||
23 | |||
24 | #define UNW_PC(frame) (frame)->regs.rip | ||
25 | #define UNW_SP(frame) (frame)->regs.rsp | ||
26 | #ifdef CONFIG_FRAME_POINTER | ||
27 | #define UNW_FP(frame) (frame)->regs.rbp | ||
28 | #define FRAME_RETADDR_OFFSET 8 | ||
29 | #define FRAME_LINK_OFFSET 0 | ||
30 | #define STACK_BOTTOM(tsk) (((tsk)->thread.rsp0 - 1) & ~(THREAD_SIZE - 1)) | ||
31 | #define STACK_TOP(tsk) ((tsk)->thread.rsp0) | ||
32 | #endif | ||
33 | /* Might need to account for the special exception and interrupt handling | ||
34 | stacks here, since normally | ||
35 | EXCEPTION_STACK_ORDER < THREAD_ORDER < IRQSTACK_ORDER, | ||
36 | but the construct is needed only for getting across the stack switch to | ||
37 | the interrupt stack - thus considering the IRQ stack itself is unnecessary, | ||
38 | and the overhead of comparing against all exception handling stacks seems | ||
39 | not desirable. */ | ||
40 | #define STACK_LIMIT(ptr) (((ptr) - 1) & ~(THREAD_SIZE - 1)) | ||
41 | |||
42 | #define UNW_REGISTER_INFO \ | ||
43 | PTREGS_INFO(rax), \ | ||
44 | PTREGS_INFO(rdx), \ | ||
45 | PTREGS_INFO(rcx), \ | ||
46 | PTREGS_INFO(rbx), \ | ||
47 | PTREGS_INFO(rsi), \ | ||
48 | PTREGS_INFO(rdi), \ | ||
49 | PTREGS_INFO(rbp), \ | ||
50 | PTREGS_INFO(rsp), \ | ||
51 | PTREGS_INFO(r8), \ | ||
52 | PTREGS_INFO(r9), \ | ||
53 | PTREGS_INFO(r10), \ | ||
54 | PTREGS_INFO(r11), \ | ||
55 | PTREGS_INFO(r12), \ | ||
56 | PTREGS_INFO(r13), \ | ||
57 | PTREGS_INFO(r14), \ | ||
58 | PTREGS_INFO(r15), \ | ||
59 | PTREGS_INFO(rip) | ||
60 | |||
61 | #define UNW_DEFAULT_RA(raItem, dataAlign) \ | ||
62 | ((raItem).where == Memory && \ | ||
63 | !((raItem).value * (dataAlign) + 8)) | ||
64 | |||
65 | static inline void arch_unw_init_frame_info(struct unwind_frame_info *info, | ||
66 | /*const*/ struct pt_regs *regs) | ||
67 | { | ||
68 | info->regs = *regs; | ||
69 | } | ||
70 | |||
71 | static inline void arch_unw_init_blocked(struct unwind_frame_info *info) | ||
72 | { | ||
73 | extern const char thread_return[]; | ||
74 | |||
75 | memset(&info->regs, 0, sizeof(info->regs)); | ||
76 | info->regs.rip = (unsigned long)thread_return; | ||
77 | info->regs.cs = __KERNEL_CS; | ||
78 | __get_user(info->regs.rbp, (unsigned long *)info->task->thread.rsp); | ||
79 | info->regs.rsp = info->task->thread.rsp; | ||
80 | info->regs.ss = __KERNEL_DS; | ||
81 | } | ||
82 | |||
83 | extern int arch_unwind_init_running(struct unwind_frame_info *, | ||
84 | int (*callback)(struct unwind_frame_info *, | ||
85 | void *arg), | ||
86 | void *arg); | ||
87 | |||
88 | static inline int arch_unw_user_mode(const struct unwind_frame_info *info) | ||
89 | { | ||
90 | return user_mode(&info->regs) | ||
91 | || (long)info->regs.rip >= 0 | ||
92 | || (info->regs.rip >= VSYSCALL_START && info->regs.rip < VSYSCALL_END) | ||
93 | || (long)info->regs.rsp >= 0; | ||
94 | } | ||
95 | |||
96 | #else | ||
97 | |||
98 | #define UNW_PC(frame) ((void)(frame), 0UL) | 4 | #define UNW_PC(frame) ((void)(frame), 0UL) |
99 | #define UNW_SP(frame) ((void)(frame), 0UL) | 5 | #define UNW_SP(frame) ((void)(frame), 0UL) |
100 | 6 | ||
@@ -103,6 +9,4 @@ static inline int arch_unw_user_mode(const void *info) | |||
103 | return 0; | 9 | return 0; |
104 | } | 10 | } |
105 | 11 | ||
106 | #endif | ||
107 | |||
108 | #endif /* _ASM_X86_64_UNWIND_H */ | 12 | #endif /* _ASM_X86_64_UNWIND_H */ |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index a1b04d8a1d01..862e483cce8a 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -119,7 +119,6 @@ header-y += nfs4_mount.h | |||
119 | header-y += nfs_mount.h | 119 | header-y += nfs_mount.h |
120 | header-y += oom.h | 120 | header-y += oom.h |
121 | header-y += param.h | 121 | header-y += param.h |
122 | header-y += pci_ids.h | ||
123 | header-y += pci_regs.h | 122 | header-y += pci_regs.h |
124 | header-y += personality.h | 123 | header-y += personality.h |
125 | header-y += pfkeyv2.h | 124 | header-y += pfkeyv2.h |
@@ -138,7 +137,6 @@ header-y += radeonfb.h | |||
138 | header-y += raw.h | 137 | header-y += raw.h |
139 | header-y += resource.h | 138 | header-y += resource.h |
140 | header-y += rose.h | 139 | header-y += rose.h |
141 | header-y += sctp.h | ||
142 | header-y += smbno.h | 140 | header-y += smbno.h |
143 | header-y += snmp.h | 141 | header-y += snmp.h |
144 | header-y += sockios.h | 142 | header-y += sockios.h |
@@ -162,7 +160,6 @@ header-y += vt.h | |||
162 | header-y += wireless.h | 160 | header-y += wireless.h |
163 | header-y += xattr.h | 161 | header-y += xattr.h |
164 | header-y += x25.h | 162 | header-y += x25.h |
165 | header-y += zorro_ids.h | ||
166 | 163 | ||
167 | unifdef-y += acct.h | 164 | unifdef-y += acct.h |
168 | unifdef-y += adb.h | 165 | unifdef-y += adb.h |
diff --git a/include/linux/backlight.h b/include/linux/backlight.h index 75e91f5b6a04..a5cf1beacb44 100644 --- a/include/linux/backlight.h +++ b/include/linux/backlight.h | |||
@@ -54,7 +54,7 @@ struct backlight_device { | |||
54 | }; | 54 | }; |
55 | 55 | ||
56 | extern struct backlight_device *backlight_device_register(const char *name, | 56 | extern struct backlight_device *backlight_device_register(const char *name, |
57 | void *devdata, struct backlight_properties *bp); | 57 | struct device *dev,void *devdata,struct backlight_properties *bp); |
58 | extern void backlight_device_unregister(struct backlight_device *bd); | 58 | extern void backlight_device_unregister(struct backlight_device *bd); |
59 | 59 | ||
60 | #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev) | 60 | #define to_backlight_device(obj) container_of(obj, struct backlight_device, class_dev) |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ea330d7b46c0..36a6eacefe20 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -331,10 +331,6 @@ struct request_pm_state | |||
331 | 331 | ||
332 | #include <linux/elevator.h> | 332 | #include <linux/elevator.h> |
333 | 333 | ||
334 | typedef int (merge_request_fn) (request_queue_t *, struct request *, | ||
335 | struct bio *); | ||
336 | typedef int (merge_requests_fn) (request_queue_t *, struct request *, | ||
337 | struct request *); | ||
338 | typedef void (request_fn_proc) (request_queue_t *q); | 334 | typedef void (request_fn_proc) (request_queue_t *q); |
339 | typedef int (make_request_fn) (request_queue_t *q, struct bio *bio); | 335 | typedef int (make_request_fn) (request_queue_t *q, struct bio *bio); |
340 | typedef int (prep_rq_fn) (request_queue_t *, struct request *); | 336 | typedef int (prep_rq_fn) (request_queue_t *, struct request *); |
@@ -376,9 +372,6 @@ struct request_queue | |||
376 | struct request_list rq; | 372 | struct request_list rq; |
377 | 373 | ||
378 | request_fn_proc *request_fn; | 374 | request_fn_proc *request_fn; |
379 | merge_request_fn *back_merge_fn; | ||
380 | merge_request_fn *front_merge_fn; | ||
381 | merge_requests_fn *merge_requests_fn; | ||
382 | make_request_fn *make_request_fn; | 375 | make_request_fn *make_request_fn; |
383 | prep_rq_fn *prep_rq_fn; | 376 | prep_rq_fn *prep_rq_fn; |
384 | unplug_fn *unplug_fn; | 377 | unplug_fn *unplug_fn; |
@@ -649,6 +642,11 @@ extern int sg_scsi_ioctl(struct file *, struct request_queue *, | |||
649 | struct gendisk *, struct scsi_ioctl_command __user *); | 642 | struct gendisk *, struct scsi_ioctl_command __user *); |
650 | 643 | ||
651 | /* | 644 | /* |
645 | * Temporary export, until SCSI gets fixed up. | ||
646 | */ | ||
647 | extern int ll_back_merge_fn(request_queue_t *, struct request *, struct bio *); | ||
648 | |||
649 | /* | ||
652 | * A queue has just exitted congestion. Note this in the global counter of | 650 | * A queue has just exitted congestion. Note this in the global counter of |
653 | * congested queues, and wake up anyone who was waiting for requests to be | 651 | * congested queues, and wake up anyone who was waiting for requests to be |
654 | * put back. | 652 | * put back. |
@@ -674,7 +672,7 @@ extern void __blk_stop_queue(request_queue_t *q); | |||
674 | extern void blk_run_queue(request_queue_t *); | 672 | extern void blk_run_queue(request_queue_t *); |
675 | extern void blk_start_queueing(request_queue_t *); | 673 | extern void blk_start_queueing(request_queue_t *); |
676 | extern int blk_rq_map_user(request_queue_t *, struct request *, void __user *, unsigned long); | 674 | extern int blk_rq_map_user(request_queue_t *, struct request *, void __user *, unsigned long); |
677 | extern int blk_rq_unmap_user(struct request *); | 675 | extern int blk_rq_unmap_user(struct bio *); |
678 | extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t); | 676 | extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t); |
679 | extern int blk_rq_map_user_iov(request_queue_t *, struct request *, | 677 | extern int blk_rq_map_user_iov(request_queue_t *, struct request *, |
680 | struct sg_iovec *, int, unsigned int); | 678 | struct sg_iovec *, int, unsigned int); |
diff --git a/include/linux/connector.h b/include/linux/connector.h index 3ea1cd58de97..10eb56b2940a 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h | |||
@@ -133,7 +133,7 @@ struct cn_callback_data { | |||
133 | struct cn_callback_entry { | 133 | struct cn_callback_entry { |
134 | struct list_head callback_entry; | 134 | struct list_head callback_entry; |
135 | struct cn_callback *cb; | 135 | struct cn_callback *cb; |
136 | struct delayed_work work; | 136 | struct work_struct work; |
137 | struct cn_queue_dev *pdev; | 137 | struct cn_queue_dev *pdev; |
138 | 138 | ||
139 | struct cn_callback_id id; | 139 | struct cn_callback_id id; |
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index 826b15e914e2..fd404416f31c 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h | |||
@@ -55,7 +55,7 @@ extern int cpuset_excl_nodes_overlap(const struct task_struct *p); | |||
55 | extern int cpuset_memory_pressure_enabled; | 55 | extern int cpuset_memory_pressure_enabled; |
56 | extern void __cpuset_memory_pressure_bump(void); | 56 | extern void __cpuset_memory_pressure_bump(void); |
57 | 57 | ||
58 | extern const struct file_operations proc_cpuset_operations; | 58 | extern struct file_operations proc_cpuset_operations; |
59 | extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); | 59 | extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); |
60 | 60 | ||
61 | extern void cpuset_lock(void); | 61 | extern void cpuset_lock(void); |
diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h index a1c10b0c4cf0..1678a5de7013 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h | |||
@@ -24,7 +24,7 @@ extern int debug_locks_off(void); | |||
24 | int __ret = 0; \ | 24 | int __ret = 0; \ |
25 | \ | 25 | \ |
26 | if (unlikely(c)) { \ | 26 | if (unlikely(c)) { \ |
27 | if (debug_locks_silent || debug_locks_off()) \ | 27 | if (debug_locks_off() && !debug_locks_silent) \ |
28 | WARN_ON(1); \ | 28 | WARN_ON(1); \ |
29 | __ret = 1; \ | 29 | __ret = 1; \ |
30 | } \ | 30 | } \ |
diff --git a/include/linux/device.h b/include/linux/device.h index 49ab53ce92dc..f44247fe8135 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -433,6 +433,8 @@ static inline int device_is_registered(struct device *dev) | |||
433 | return dev->is_registered; | 433 | return dev->is_registered; |
434 | } | 434 | } |
435 | 435 | ||
436 | void driver_init(void); | ||
437 | |||
436 | /* | 438 | /* |
437 | * High level routines for use by the bus drivers | 439 | * High level routines for use by the bus drivers |
438 | */ | 440 | */ |
diff --git a/include/linux/elevator.h b/include/linux/elevator.h index a24931d24404..e88fcbc77f8f 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h | |||
@@ -12,6 +12,8 @@ typedef void (elevator_merge_req_fn) (request_queue_t *, struct request *, struc | |||
12 | 12 | ||
13 | typedef void (elevator_merged_fn) (request_queue_t *, struct request *, int); | 13 | typedef void (elevator_merged_fn) (request_queue_t *, struct request *, int); |
14 | 14 | ||
15 | typedef int (elevator_allow_merge_fn) (request_queue_t *, struct request *, struct bio *); | ||
16 | |||
15 | typedef int (elevator_dispatch_fn) (request_queue_t *, int); | 17 | typedef int (elevator_dispatch_fn) (request_queue_t *, int); |
16 | 18 | ||
17 | typedef void (elevator_add_req_fn) (request_queue_t *, struct request *); | 19 | typedef void (elevator_add_req_fn) (request_queue_t *, struct request *); |
@@ -33,6 +35,7 @@ struct elevator_ops | |||
33 | elevator_merge_fn *elevator_merge_fn; | 35 | elevator_merge_fn *elevator_merge_fn; |
34 | elevator_merged_fn *elevator_merged_fn; | 36 | elevator_merged_fn *elevator_merged_fn; |
35 | elevator_merge_req_fn *elevator_merge_req_fn; | 37 | elevator_merge_req_fn *elevator_merge_req_fn; |
38 | elevator_allow_merge_fn *elevator_allow_merge_fn; | ||
36 | 39 | ||
37 | elevator_dispatch_fn *elevator_dispatch_fn; | 40 | elevator_dispatch_fn *elevator_dispatch_fn; |
38 | elevator_add_req_fn *elevator_add_req_fn; | 41 | elevator_add_req_fn *elevator_add_req_fn; |
diff --git a/include/linux/file.h b/include/linux/file.h index edca361f2ab4..a59001e9ea58 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
@@ -80,6 +80,11 @@ extern int expand_files(struct files_struct *, int nr); | |||
80 | extern void free_fdtable_rcu(struct rcu_head *rcu); | 80 | extern void free_fdtable_rcu(struct rcu_head *rcu); |
81 | extern void __init files_defer_init(void); | 81 | extern void __init files_defer_init(void); |
82 | 82 | ||
83 | static inline void free_fdtable(struct fdtable *fdt) | ||
84 | { | ||
85 | call_rcu(&fdt->rcu, free_fdtable_rcu); | ||
86 | } | ||
87 | |||
83 | static inline struct file * fcheck_files(struct files_struct *files, unsigned int fd) | 88 | static inline struct file * fcheck_files(struct files_struct *files, unsigned int fd) |
84 | { | 89 | { |
85 | struct file * file = NULL; | 90 | struct file * file = NULL; |
diff --git a/include/linux/if_fddi.h b/include/linux/if_fddi.h index e0a150046208..4aba6b0ad41c 100644 --- a/include/linux/if_fddi.h +++ b/include/linux/if_fddi.h | |||
@@ -103,6 +103,8 @@ struct fddihdr | |||
103 | } __attribute__ ((packed)); | 103 | } __attribute__ ((packed)); |
104 | 104 | ||
105 | #ifdef __KERNEL__ | 105 | #ifdef __KERNEL__ |
106 | #include <linux/netdevice.h> | ||
107 | |||
106 | /* Define FDDI statistics structure */ | 108 | /* Define FDDI statistics structure */ |
107 | struct fddi_statistics { | 109 | struct fddi_statistics { |
108 | 110 | ||
diff --git a/include/linux/input.h b/include/linux/input.h index 4e61158b06a0..bde65c8a3519 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -491,6 +491,21 @@ struct input_absinfo { | |||
491 | #define KEY_DIGITS 0x19d | 491 | #define KEY_DIGITS 0x19d |
492 | #define KEY_TEEN 0x19e | 492 | #define KEY_TEEN 0x19e |
493 | #define KEY_TWEN 0x19f | 493 | #define KEY_TWEN 0x19f |
494 | #define KEY_VIDEOPHONE 0x1a0 | ||
495 | #define KEY_GAMES 0x1a1 | ||
496 | #define KEY_ZOOMIN 0x1a2 | ||
497 | #define KEY_ZOOMOUT 0x1a3 | ||
498 | #define KEY_ZOOMRESET 0x1a4 | ||
499 | #define KEY_WORDPROCESSOR 0x1a5 | ||
500 | #define KEY_EDITOR 0x1a6 | ||
501 | #define KEY_SPREADSHEET 0x1a7 | ||
502 | #define KEY_GRAPHICSEDITOR 0x1a8 | ||
503 | #define KEY_PRESENTATION 0x1a9 | ||
504 | #define KEY_DATABASE 0x1aa | ||
505 | #define KEY_NEWS 0x1ab | ||
506 | #define KEY_VOICEMAIL 0x1ac | ||
507 | #define KEY_ADDRESSBOOK 0x1ad | ||
508 | #define KEY_MESSENGER 0x1ae | ||
494 | 509 | ||
495 | #define KEY_DEL_EOL 0x1c0 | 510 | #define KEY_DEL_EOL 0x1c0 |
496 | #define KEY_DEL_EOS 0x1c1 | 511 | #define KEY_DEL_EOS 0x1c1 |
diff --git a/include/linux/ioport.h b/include/linux/ioport.h index cf8696d4a138..15228d79c5bc 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h | |||
@@ -91,6 +91,9 @@ struct resource_list { | |||
91 | #define IORESOURCE_ROM_COPY (1<<2) /* ROM is alloc'd copy, resource field overlaid */ | 91 | #define IORESOURCE_ROM_COPY (1<<2) /* ROM is alloc'd copy, resource field overlaid */ |
92 | #define IORESOURCE_ROM_BIOS_COPY (1<<3) /* ROM is BIOS copy, resource field overlaid */ | 92 | #define IORESOURCE_ROM_BIOS_COPY (1<<3) /* ROM is BIOS copy, resource field overlaid */ |
93 | 93 | ||
94 | /* PCI control bits. Shares IORESOURCE_BITS with above PCI ROM. */ | ||
95 | #define IORESOURCE_PCI_FIXED (1<<4) /* Do not move resource */ | ||
96 | |||
94 | /* PC/ISA/whatever - the normal PC address spaces: IO and memory */ | 97 | /* PC/ISA/whatever - the normal PC address spaces: IO and memory */ |
95 | extern struct resource ioport_resource; | 98 | extern struct resource ioport_resource; |
96 | extern struct resource iomem_resource; | 99 | extern struct resource iomem_resource; |
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index d1c8d28fa92e..76538fcf2c4e 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -265,8 +265,8 @@ extern int __must_check subsys_create_file(struct subsystem * , | |||
265 | struct subsys_attribute *); | 265 | struct subsys_attribute *); |
266 | 266 | ||
267 | #if defined(CONFIG_HOTPLUG) | 267 | #if defined(CONFIG_HOTPLUG) |
268 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); | 268 | int kobject_uevent(struct kobject *kobj, enum kobject_action action); |
269 | void kobject_uevent_env(struct kobject *kobj, enum kobject_action action, | 269 | int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, |
270 | char *envp[]); | 270 | char *envp[]); |
271 | 271 | ||
272 | int add_uevent_var(char **envp, int num_envp, int *cur_index, | 272 | int add_uevent_var(char **envp, int num_envp, int *cur_index, |
@@ -274,11 +274,12 @@ int add_uevent_var(char **envp, int num_envp, int *cur_index, | |||
274 | const char *format, ...) | 274 | const char *format, ...) |
275 | __attribute__((format (printf, 7, 8))); | 275 | __attribute__((format (printf, 7, 8))); |
276 | #else | 276 | #else |
277 | static inline void kobject_uevent(struct kobject *kobj, enum kobject_action action) { } | 277 | static inline int kobject_uevent(struct kobject *kobj, enum kobject_action action) |
278 | static inline void kobject_uevent_env(struct kobject *kobj, | 278 | { return 0; } |
279 | static inline int kobject_uevent_env(struct kobject *kobj, | ||
279 | enum kobject_action action, | 280 | enum kobject_action action, |
280 | char *envp[]) | 281 | char *envp[]) |
281 | { } | 282 | { return 0; } |
282 | 283 | ||
283 | static inline int add_uevent_var(char **envp, int num_envp, int *cur_index, | 284 | static inline int add_uevent_var(char **envp, int num_envp, int *cur_index, |
284 | char *buffer, int buffer_size, int *cur_len, | 285 | char *buffer, int buffer_size, int *cur_len, |
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 5bb2c3c585c1..28fdce1ac1db 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
@@ -11,6 +11,8 @@ | |||
11 | #include <asm/types.h> | 11 | #include <asm/types.h> |
12 | #include <linux/ioctl.h> | 12 | #include <linux/ioctl.h> |
13 | 13 | ||
14 | #define KVM_API_VERSION 1 | ||
15 | |||
14 | /* | 16 | /* |
15 | * Architectural interrupt line count, and the size of the bitmap needed | 17 | * Architectural interrupt line count, and the size of the bitmap needed |
16 | * to hold them. | 18 | * to hold them. |
@@ -209,6 +211,7 @@ struct kvm_dirty_log { | |||
209 | 211 | ||
210 | #define KVMIO 0xAE | 212 | #define KVMIO 0xAE |
211 | 213 | ||
214 | #define KVM_GET_API_VERSION _IO(KVMIO, 1) | ||
212 | #define KVM_RUN _IOWR(KVMIO, 2, struct kvm_run) | 215 | #define KVM_RUN _IOWR(KVMIO, 2, struct kvm_run) |
213 | #define KVM_GET_REGS _IOWR(KVMIO, 3, struct kvm_regs) | 216 | #define KVM_GET_REGS _IOWR(KVMIO, 3, struct kvm_regs) |
214 | #define KVM_SET_REGS _IOW(KVMIO, 4, struct kvm_regs) | 217 | #define KVM_SET_REGS _IOW(KVMIO, 4, struct kvm_regs) |
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 4830a3bedfb2..350878a2d848 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
@@ -253,15 +253,11 @@ static inline void SetPageUptodate(struct page *page) | |||
253 | 253 | ||
254 | struct page; /* forward declaration */ | 254 | struct page; /* forward declaration */ |
255 | 255 | ||
256 | int test_clear_page_dirty(struct page *page); | 256 | extern void cancel_dirty_page(struct page *page, unsigned int account_size); |
257 | |||
257 | int test_clear_page_writeback(struct page *page); | 258 | int test_clear_page_writeback(struct page *page); |
258 | int test_set_page_writeback(struct page *page); | 259 | int test_set_page_writeback(struct page *page); |
259 | 260 | ||
260 | static inline void clear_page_dirty(struct page *page) | ||
261 | { | ||
262 | test_clear_page_dirty(page); | ||
263 | } | ||
264 | |||
265 | static inline void set_page_writeback(struct page *page) | 261 | static inline void set_page_writeback(struct page *page) |
266 | { | 262 | { |
267 | test_set_page_writeback(page); | 263 | test_set_page_writeback(page); |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 01c707261f9c..f3c617eabd8d 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -20,9 +20,6 @@ | |||
20 | /* Include the pci register defines */ | 20 | /* Include the pci register defines */ |
21 | #include <linux/pci_regs.h> | 21 | #include <linux/pci_regs.h> |
22 | 22 | ||
23 | /* Include the ID list */ | ||
24 | #include <linux/pci_ids.h> | ||
25 | |||
26 | /* | 23 | /* |
27 | * The PCI interface treats multi-function devices as independent | 24 | * The PCI interface treats multi-function devices as independent |
28 | * devices. The slot/function address of each device is encoded | 25 | * devices. The slot/function address of each device is encoded |
@@ -54,6 +51,9 @@ | |||
54 | #include <asm/atomic.h> | 51 | #include <asm/atomic.h> |
55 | #include <linux/device.h> | 52 | #include <linux/device.h> |
56 | 53 | ||
54 | /* Include the ID list */ | ||
55 | #include <linux/pci_ids.h> | ||
56 | |||
57 | /* File state for mmap()s on /proc/bus/pci/X/Y */ | 57 | /* File state for mmap()s on /proc/bus/pci/X/Y */ |
58 | enum pci_mmap_state { | 58 | enum pci_mmap_state { |
59 | pci_mmap_io, | 59 | pci_mmap_io, |
@@ -396,6 +396,21 @@ struct pci_driver { | |||
396 | */ | 396 | */ |
397 | #define pci_module_init pci_register_driver | 397 | #define pci_module_init pci_register_driver |
398 | 398 | ||
399 | /** | ||
400 | * PCI_VDEVICE - macro used to describe a specific pci device in short form | ||
401 | * @vend: the vendor name | ||
402 | * @dev: the 16 bit PCI Device ID | ||
403 | * | ||
404 | * This macro is used to create a struct pci_device_id that matches a | ||
405 | * specific PCI device. The subvendor, and subdevice fields will be set | ||
406 | * to PCI_ANY_ID. The macro allows the next field to follow as the device | ||
407 | * private data. | ||
408 | */ | ||
409 | |||
410 | #define PCI_VDEVICE(vendor, device) \ | ||
411 | PCI_VENDOR_ID_##vendor, (device), \ | ||
412 | PCI_ANY_ID, PCI_ANY_ID, 0, 0 | ||
413 | |||
399 | /* these external functions are only available when PCI support is enabled */ | 414 | /* these external functions are only available when PCI support is enabled */ |
400 | #ifdef CONFIG_PCI | 415 | #ifdef CONFIG_PCI |
401 | 416 | ||
@@ -454,6 +469,8 @@ struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); | |||
454 | int pci_find_capability (struct pci_dev *dev, int cap); | 469 | int pci_find_capability (struct pci_dev *dev, int cap); |
455 | int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap); | 470 | int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap); |
456 | int pci_find_ext_capability (struct pci_dev *dev, int cap); | 471 | int pci_find_ext_capability (struct pci_dev *dev, int cap); |
472 | int pci_find_ht_capability (struct pci_dev *dev, int ht_cap); | ||
473 | int pci_find_next_ht_capability (struct pci_dev *dev, int pos, int ht_cap); | ||
457 | struct pci_bus *pci_find_next_bus(const struct pci_bus *from); | 474 | struct pci_bus *pci_find_next_bus(const struct pci_bus *from); |
458 | 475 | ||
459 | struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, | 476 | struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, |
@@ -468,6 +485,7 @@ struct pci_dev *pci_get_slot (struct pci_bus *bus, unsigned int devfn); | |||
468 | struct pci_dev *pci_get_bus_and_slot (unsigned int bus, unsigned int devfn); | 485 | struct pci_dev *pci_get_bus_and_slot (unsigned int bus, unsigned int devfn); |
469 | struct pci_dev *pci_get_class (unsigned int class, struct pci_dev *from); | 486 | struct pci_dev *pci_get_class (unsigned int class, struct pci_dev *from); |
470 | int pci_dev_present(const struct pci_device_id *ids); | 487 | int pci_dev_present(const struct pci_device_id *ids); |
488 | const struct pci_device_id *pci_find_present(const struct pci_device_id *ids); | ||
471 | 489 | ||
472 | int pci_bus_read_config_byte (struct pci_bus *bus, unsigned int devfn, int where, u8 *val); | 490 | int pci_bus_read_config_byte (struct pci_bus *bus, unsigned int devfn, int where, u8 *val); |
473 | int pci_bus_read_config_word (struct pci_bus *bus, unsigned int devfn, int where, u16 *val); | 491 | int pci_bus_read_config_word (struct pci_bus *bus, unsigned int devfn, int where, u16 *val); |
@@ -681,6 +699,7 @@ static inline struct pci_dev *pci_get_class(unsigned int class, struct pci_dev * | |||
681 | { return NULL; } | 699 | { return NULL; } |
682 | 700 | ||
683 | #define pci_dev_present(ids) (0) | 701 | #define pci_dev_present(ids) (0) |
702 | #define pci_find_present(ids) (NULL) | ||
684 | #define pci_dev_put(dev) do { } while (0) | 703 | #define pci_dev_put(dev) do { } while (0) |
685 | 704 | ||
686 | static inline void pci_set_master(struct pci_dev *dev) { } | 705 | static inline void pci_set_master(struct pci_dev *dev) { } |
@@ -783,6 +802,7 @@ enum pci_fixup_pass { | |||
783 | pci_fixup_header, /* After reading configuration header */ | 802 | pci_fixup_header, /* After reading configuration header */ |
784 | pci_fixup_final, /* Final phase of device fixups */ | 803 | pci_fixup_final, /* Final phase of device fixups */ |
785 | pci_fixup_enable, /* pci_enable_device() time */ | 804 | pci_fixup_enable, /* pci_enable_device() time */ |
805 | pci_fixup_resume, /* pci_enable_device() time */ | ||
786 | }; | 806 | }; |
787 | 807 | ||
788 | /* Anonymous variables would be nice... */ | 808 | /* Anonymous variables would be nice... */ |
@@ -801,6 +821,9 @@ enum pci_fixup_pass { | |||
801 | #define DECLARE_PCI_FIXUP_ENABLE(vendor, device, hook) \ | 821 | #define DECLARE_PCI_FIXUP_ENABLE(vendor, device, hook) \ |
802 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_enable, \ | 822 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_enable, \ |
803 | vendor##device##hook, vendor, device, hook) | 823 | vendor##device##hook, vendor, device, hook) |
824 | #define DECLARE_PCI_FIXUP_RESUME(vendor, device, hook) \ | ||
825 | DECLARE_PCI_FIXUP_SECTION(.pci_fixup_resume, \ | ||
826 | resume##vendor##device##hook, vendor, device, hook) | ||
804 | 827 | ||
805 | 828 | ||
806 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev); | 829 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev); |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 95c1e74afebc..778e701eff30 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -104,6 +104,10 @@ | |||
104 | #define PCI_CLASS_SERIAL_FIBER 0x0c04 | 104 | #define PCI_CLASS_SERIAL_FIBER 0x0c04 |
105 | #define PCI_CLASS_SERIAL_SMBUS 0x0c05 | 105 | #define PCI_CLASS_SERIAL_SMBUS 0x0c05 |
106 | 106 | ||
107 | #define PCI_BASE_CLASS_WIRELESS 0x0d | ||
108 | #define PCI_CLASS_WIRELESS_RF_CONTROLLER 0x0d10 | ||
109 | #define PCI_CLASS_WIRELESS_WHCI 0x0d1010 | ||
110 | |||
107 | #define PCI_BASE_CLASS_INTELLIGENT 0x0e | 111 | #define PCI_BASE_CLASS_INTELLIGENT 0x0e |
108 | #define PCI_CLASS_INTELLIGENT_I2O 0x0e00 | 112 | #define PCI_CLASS_INTELLIGENT_I2O 0x0e00 |
109 | 113 | ||
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h index 064b1dc71c22..7a6d34ee5ab1 100644 --- a/include/linux/pci_regs.h +++ b/include/linux/pci_regs.h | |||
@@ -475,15 +475,32 @@ | |||
475 | #define PCI_PWR_CAP 12 /* Capability */ | 475 | #define PCI_PWR_CAP 12 /* Capability */ |
476 | #define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */ | 476 | #define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */ |
477 | 477 | ||
478 | /* Hypertransport sub capability types */ | 478 | /* |
479 | * Hypertransport sub capability types | ||
480 | * | ||
481 | * Unfortunately there are both 3 bit and 5 bit capability types defined | ||
482 | * in the HT spec, catering for that is a little messy. You probably don't | ||
483 | * want to use these directly, just use pci_find_ht_capability() and it | ||
484 | * will do the right thing for you. | ||
485 | */ | ||
486 | #define HT_3BIT_CAP_MASK 0xE0 | ||
479 | #define HT_CAPTYPE_SLAVE 0x00 /* Slave/Primary link configuration */ | 487 | #define HT_CAPTYPE_SLAVE 0x00 /* Slave/Primary link configuration */ |
480 | #define HT_CAPTYPE_HOST 0x20 /* Host/Secondary link configuration */ | 488 | #define HT_CAPTYPE_HOST 0x20 /* Host/Secondary link configuration */ |
489 | |||
490 | #define HT_5BIT_CAP_MASK 0xF8 | ||
481 | #define HT_CAPTYPE_IRQ 0x80 /* IRQ Configuration */ | 491 | #define HT_CAPTYPE_IRQ 0x80 /* IRQ Configuration */ |
482 | #define HT_CAPTYPE_REMAPPING_40 0xA0 /* 40 bit address remapping */ | 492 | #define HT_CAPTYPE_REMAPPING_40 0xA0 /* 40 bit address remapping */ |
483 | #define HT_CAPTYPE_REMAPPING_64 0xA2 /* 64 bit address remapping */ | 493 | #define HT_CAPTYPE_REMAPPING_64 0xA2 /* 64 bit address remapping */ |
484 | #define HT_CAPTYPE_UNITID_CLUMP 0x90 /* Unit ID clumping */ | 494 | #define HT_CAPTYPE_UNITID_CLUMP 0x90 /* Unit ID clumping */ |
485 | #define HT_CAPTYPE_EXTCONF 0x98 /* Extended Configuration Space Access */ | 495 | #define HT_CAPTYPE_EXTCONF 0x98 /* Extended Configuration Space Access */ |
486 | #define HT_CAPTYPE_MSI_MAPPING 0xA8 /* MSI Mapping Capability */ | 496 | #define HT_CAPTYPE_MSI_MAPPING 0xA8 /* MSI Mapping Capability */ |
497 | #define HT_MSI_FLAGS 0x02 /* Offset to flags */ | ||
498 | #define HT_MSI_FLAGS_ENABLE 0x1 /* Mapping enable */ | ||
499 | #define HT_MSI_FLAGS_FIXED 0x2 /* Fixed mapping only */ | ||
500 | #define HT_MSI_FIXED_ADDR 0x00000000FEE00000ULL /* Fixed addr */ | ||
501 | #define HT_MSI_ADDR_LO 0x04 /* Offset to low addr bits */ | ||
502 | #define HT_MSI_ADDR_LO_MASK 0xFFF00000 /* Low address bit mask */ | ||
503 | #define HT_MSI_ADDR_HI 0x08 /* Offset to high addr bits */ | ||
487 | #define HT_CAPTYPE_DIRECT_ROUTE 0xB0 /* Direct routing configuration */ | 504 | #define HT_CAPTYPE_DIRECT_ROUTE 0xB0 /* Direct routing configuration */ |
488 | #define HT_CAPTYPE_VCSET 0xB8 /* Virtual Channel configuration */ | 505 | #define HT_CAPTYPE_VCSET 0xB8 /* Virtual Channel configuration */ |
489 | #define HT_CAPTYPE_ERROR_RETRY 0xC0 /* Retry on error configuration */ | 506 | #define HT_CAPTYPE_ERROR_RETRY 0xC0 /* Retry on error configuration */ |
diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 36f850373d2c..bdd277223af0 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h | |||
@@ -72,7 +72,7 @@ void __anon_vma_link(struct vm_area_struct *); | |||
72 | void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long); | 72 | void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long); |
73 | void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, unsigned long); | 73 | void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, unsigned long); |
74 | void page_add_file_rmap(struct page *); | 74 | void page_add_file_rmap(struct page *); |
75 | void page_remove_rmap(struct page *); | 75 | void page_remove_rmap(struct page *, struct vm_area_struct *); |
76 | 76 | ||
77 | /** | 77 | /** |
78 | * page_dup_rmap - duplicate pte mapping to a page | 78 | * page_dup_rmap - duplicate pte mapping to a page |
diff --git a/include/linux/sctp.h b/include/linux/sctp.h index 35108fe7a686..d4f86560bfff 100644 --- a/include/linux/sctp.h +++ b/include/linux/sctp.h | |||
@@ -180,7 +180,7 @@ typedef enum { | |||
180 | SCTP_PARAM_ERR_CAUSE = __constant_htons(0xc003), | 180 | SCTP_PARAM_ERR_CAUSE = __constant_htons(0xc003), |
181 | SCTP_PARAM_SET_PRIMARY = __constant_htons(0xc004), | 181 | SCTP_PARAM_SET_PRIMARY = __constant_htons(0xc004), |
182 | SCTP_PARAM_SUCCESS_REPORT = __constant_htons(0xc005), | 182 | SCTP_PARAM_SUCCESS_REPORT = __constant_htons(0xc005), |
183 | SCTP_PARAM_ADAPTION_LAYER_IND = __constant_htons(0xc006), | 183 | SCTP_PARAM_ADAPTATION_LAYER_IND = __constant_htons(0xc006), |
184 | 184 | ||
185 | } sctp_param_t; /* enum */ | 185 | } sctp_param_t; /* enum */ |
186 | 186 | ||
@@ -281,11 +281,11 @@ typedef struct sctp_ecn_capable_param { | |||
281 | sctp_paramhdr_t param_hdr; | 281 | sctp_paramhdr_t param_hdr; |
282 | } __attribute__((packed)) sctp_ecn_capable_param_t; | 282 | } __attribute__((packed)) sctp_ecn_capable_param_t; |
283 | 283 | ||
284 | /* ADDIP Section 3.2.6 Adaption Layer Indication */ | 284 | /* ADDIP Section 3.2.6 Adaptation Layer Indication */ |
285 | typedef struct sctp_adaption_ind_param { | 285 | typedef struct sctp_adaptation_ind_param { |
286 | struct sctp_paramhdr param_hdr; | 286 | struct sctp_paramhdr param_hdr; |
287 | __be32 adaption_ind; | 287 | __be32 adaptation_ind; |
288 | } __attribute__((packed)) sctp_adaption_ind_param_t; | 288 | } __attribute__((packed)) sctp_adaptation_ind_param_t; |
289 | 289 | ||
290 | /* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2): | 290 | /* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2): |
291 | * The INIT ACK chunk is used to acknowledge the initiation of an SCTP | 291 | * The INIT ACK chunk is used to acknowledge the initiation of an SCTP |
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index c8bb68099eb9..176f6e36dbfa 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h | |||
@@ -289,7 +289,7 @@ extern struct spi_master *spi_busnum_to_master(u16 busnum); | |||
289 | * the data being transferred; that may reduce overhead, when the | 289 | * the data being transferred; that may reduce overhead, when the |
290 | * underlying driver uses dma. | 290 | * underlying driver uses dma. |
291 | * | 291 | * |
292 | * If the transmit buffer is null, undefined data will be shifted out | 292 | * If the transmit buffer is null, zeroes will be shifted out |
293 | * while filling rx_buf. If the receive buffer is null, the data | 293 | * while filling rx_buf. If the receive buffer is null, the data |
294 | * shifted in will be discarded. Only "len" bytes shift out (or in). | 294 | * shifted in will be discarded. Only "len" bytes shift out (or in). |
295 | * It's an error to try to shift out a partial word. (For example, by | 295 | * It's an error to try to shift out a partial word. (For example, by |
diff --git a/include/linux/unwind.h b/include/linux/unwind.h index 749928c161fb..7760860fa170 100644 --- a/include/linux/unwind.h +++ b/include/linux/unwind.h | |||
@@ -14,63 +14,6 @@ | |||
14 | 14 | ||
15 | struct module; | 15 | struct module; |
16 | 16 | ||
17 | #ifdef CONFIG_STACK_UNWIND | ||
18 | |||
19 | #include <asm/unwind.h> | ||
20 | |||
21 | #ifndef ARCH_UNWIND_SECTION_NAME | ||
22 | #define ARCH_UNWIND_SECTION_NAME ".eh_frame" | ||
23 | #endif | ||
24 | |||
25 | /* | ||
26 | * Initialize unwind support. | ||
27 | */ | ||
28 | extern void unwind_init(void); | ||
29 | extern void unwind_setup(void); | ||
30 | |||
31 | #ifdef CONFIG_MODULES | ||
32 | |||
33 | extern void *unwind_add_table(struct module *, | ||
34 | const void *table_start, | ||
35 | unsigned long table_size); | ||
36 | |||
37 | extern void unwind_remove_table(void *handle, int init_only); | ||
38 | |||
39 | #endif | ||
40 | |||
41 | extern int unwind_init_frame_info(struct unwind_frame_info *, | ||
42 | struct task_struct *, | ||
43 | /*const*/ struct pt_regs *); | ||
44 | |||
45 | /* | ||
46 | * Prepare to unwind a blocked task. | ||
47 | */ | ||
48 | extern int unwind_init_blocked(struct unwind_frame_info *, | ||
49 | struct task_struct *); | ||
50 | |||
51 | /* | ||
52 | * Prepare to unwind the currently running thread. | ||
53 | */ | ||
54 | extern int unwind_init_running(struct unwind_frame_info *, | ||
55 | asmlinkage int (*callback)(struct unwind_frame_info *, | ||
56 | void *arg), | ||
57 | void *arg); | ||
58 | |||
59 | /* | ||
60 | * Unwind to previous to frame. Returns 0 if successful, negative | ||
61 | * number in case of an error. | ||
62 | */ | ||
63 | extern int unwind(struct unwind_frame_info *); | ||
64 | |||
65 | /* | ||
66 | * Unwind until the return pointer is in user-land (or until an error | ||
67 | * occurs). Returns 0 if successful, negative number in case of | ||
68 | * error. | ||
69 | */ | ||
70 | extern int unwind_to_user(struct unwind_frame_info *); | ||
71 | |||
72 | #else | ||
73 | |||
74 | struct unwind_frame_info {}; | 17 | struct unwind_frame_info {}; |
75 | 18 | ||
76 | static inline void unwind_init(void) {} | 19 | static inline void unwind_init(void) {} |
@@ -85,12 +28,12 @@ static inline void *unwind_add_table(struct module *mod, | |||
85 | return NULL; | 28 | return NULL; |
86 | } | 29 | } |
87 | 30 | ||
88 | #endif | ||
89 | |||
90 | static inline void unwind_remove_table(void *handle, int init_only) | 31 | static inline void unwind_remove_table(void *handle, int init_only) |
91 | { | 32 | { |
92 | } | 33 | } |
93 | 34 | ||
35 | #endif | ||
36 | |||
94 | static inline int unwind_init_frame_info(struct unwind_frame_info *info, | 37 | static inline int unwind_init_frame_info(struct unwind_frame_info *info, |
95 | struct task_struct *tsk, | 38 | struct task_struct *tsk, |
96 | const struct pt_regs *regs) | 39 | const struct pt_regs *regs) |
@@ -122,6 +65,4 @@ static inline int unwind_to_user(struct unwind_frame_info *info) | |||
122 | return -ENOSYS; | 65 | return -ENOSYS; |
123 | } | 66 | } |
124 | 67 | ||
125 | #endif | ||
126 | |||
127 | #endif /* _LINUX_UNWIND_H */ | 68 | #endif /* _LINUX_UNWIND_H */ |
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index c89df55f6e03..5e9803ed17fc 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h | |||
@@ -10,8 +10,9 @@ | |||
10 | /* | 10 | /* |
11 | * Light weight per cpu counter implementation. | 11 | * Light weight per cpu counter implementation. |
12 | * | 12 | * |
13 | * Counters should only be incremented and no critical kernel component | 13 | * Counters should only be incremented. You need to set EMBEDDED |
14 | * should rely on the counter values. | 14 | * to disable VM_EVENT_COUNTERS. Things like procps (vmstat, |
15 | * top, etc) use /proc/vmstat and depend on these counters. | ||
15 | * | 16 | * |
16 | * Counters are handled completely inline. On many platforms the code | 17 | * Counters are handled completely inline. On many platforms the code |
17 | * generated will simply be the increment of a global address. | 18 | * generated will simply be the increment of a global address. |
@@ -73,7 +74,13 @@ static inline void count_vm_events(enum vm_event_item item, long delta) | |||
73 | } | 74 | } |
74 | 75 | ||
75 | extern void all_vm_events(unsigned long *); | 76 | extern void all_vm_events(unsigned long *); |
77 | #ifdef CONFIG_HOTPLUG | ||
76 | extern void vm_events_fold_cpu(int cpu); | 78 | extern void vm_events_fold_cpu(int cpu); |
79 | #else | ||
80 | static inline void vm_events_fold_cpu(int cpu) | ||
81 | { | ||
82 | } | ||
83 | #endif | ||
77 | 84 | ||
78 | #else | 85 | #else |
79 | 86 | ||
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index edef8d50b26b..2a7b38d87018 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
@@ -8,16 +8,21 @@ | |||
8 | #include <linux/timer.h> | 8 | #include <linux/timer.h> |
9 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
10 | #include <linux/bitops.h> | 10 | #include <linux/bitops.h> |
11 | #include <asm/atomic.h> | ||
11 | 12 | ||
12 | struct workqueue_struct; | 13 | struct workqueue_struct; |
13 | 14 | ||
14 | struct work_struct; | 15 | struct work_struct; |
15 | typedef void (*work_func_t)(struct work_struct *work); | 16 | typedef void (*work_func_t)(struct work_struct *work); |
16 | 17 | ||
18 | /* | ||
19 | * The first word is the work queue pointer and the flags rolled into | ||
20 | * one | ||
21 | */ | ||
22 | #define work_data_bits(work) ((unsigned long *)(&(work)->data)) | ||
23 | |||
17 | struct work_struct { | 24 | struct work_struct { |
18 | /* the first word is the work queue pointer and the flags rolled into | 25 | atomic_long_t data; |
19 | * one */ | ||
20 | unsigned long management; | ||
21 | #define WORK_STRUCT_PENDING 0 /* T if work item pending execution */ | 26 | #define WORK_STRUCT_PENDING 0 /* T if work item pending execution */ |
22 | #define WORK_STRUCT_NOAUTOREL 1 /* F if work item automatically released on exec */ | 27 | #define WORK_STRUCT_NOAUTOREL 1 /* F if work item automatically released on exec */ |
23 | #define WORK_STRUCT_FLAG_MASK (3UL) | 28 | #define WORK_STRUCT_FLAG_MASK (3UL) |
@@ -26,6 +31,9 @@ struct work_struct { | |||
26 | work_func_t func; | 31 | work_func_t func; |
27 | }; | 32 | }; |
28 | 33 | ||
34 | #define WORK_DATA_INIT(autorelease) \ | ||
35 | ATOMIC_LONG_INIT((autorelease) << WORK_STRUCT_NOAUTOREL) | ||
36 | |||
29 | struct delayed_work { | 37 | struct delayed_work { |
30 | struct work_struct work; | 38 | struct work_struct work; |
31 | struct timer_list timer; | 39 | struct timer_list timer; |
@@ -36,13 +44,13 @@ struct execute_work { | |||
36 | }; | 44 | }; |
37 | 45 | ||
38 | #define __WORK_INITIALIZER(n, f) { \ | 46 | #define __WORK_INITIALIZER(n, f) { \ |
39 | .management = 0, \ | 47 | .data = WORK_DATA_INIT(0), \ |
40 | .entry = { &(n).entry, &(n).entry }, \ | 48 | .entry = { &(n).entry, &(n).entry }, \ |
41 | .func = (f), \ | 49 | .func = (f), \ |
42 | } | 50 | } |
43 | 51 | ||
44 | #define __WORK_INITIALIZER_NAR(n, f) { \ | 52 | #define __WORK_INITIALIZER_NAR(n, f) { \ |
45 | .management = (1 << WORK_STRUCT_NOAUTOREL), \ | 53 | .data = WORK_DATA_INIT(1), \ |
46 | .entry = { &(n).entry, &(n).entry }, \ | 54 | .entry = { &(n).entry, &(n).entry }, \ |
47 | .func = (f), \ | 55 | .func = (f), \ |
48 | } | 56 | } |
@@ -82,17 +90,21 @@ struct execute_work { | |||
82 | 90 | ||
83 | /* | 91 | /* |
84 | * initialize all of a work item in one go | 92 | * initialize all of a work item in one go |
93 | * | ||
94 | * NOTE! No point in using "atomic_long_set()": useing a direct | ||
95 | * assignment of the work data initializer allows the compiler | ||
96 | * to generate better code. | ||
85 | */ | 97 | */ |
86 | #define INIT_WORK(_work, _func) \ | 98 | #define INIT_WORK(_work, _func) \ |
87 | do { \ | 99 | do { \ |
88 | (_work)->management = 0; \ | 100 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(0); \ |
89 | INIT_LIST_HEAD(&(_work)->entry); \ | 101 | INIT_LIST_HEAD(&(_work)->entry); \ |
90 | PREPARE_WORK((_work), (_func)); \ | 102 | PREPARE_WORK((_work), (_func)); \ |
91 | } while (0) | 103 | } while (0) |
92 | 104 | ||
93 | #define INIT_WORK_NAR(_work, _func) \ | 105 | #define INIT_WORK_NAR(_work, _func) \ |
94 | do { \ | 106 | do { \ |
95 | (_work)->management = (1 << WORK_STRUCT_NOAUTOREL); \ | 107 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(1); \ |
96 | INIT_LIST_HEAD(&(_work)->entry); \ | 108 | INIT_LIST_HEAD(&(_work)->entry); \ |
97 | PREPARE_WORK((_work), (_func)); \ | 109 | PREPARE_WORK((_work), (_func)); \ |
98 | } while (0) | 110 | } while (0) |
@@ -114,15 +126,15 @@ struct execute_work { | |||
114 | * @work: The work item in question | 126 | * @work: The work item in question |
115 | */ | 127 | */ |
116 | #define work_pending(work) \ | 128 | #define work_pending(work) \ |
117 | test_bit(WORK_STRUCT_PENDING, &(work)->management) | 129 | test_bit(WORK_STRUCT_PENDING, work_data_bits(work)) |
118 | 130 | ||
119 | /** | 131 | /** |
120 | * delayed_work_pending - Find out whether a delayable work item is currently | 132 | * delayed_work_pending - Find out whether a delayable work item is currently |
121 | * pending | 133 | * pending |
122 | * @work: The work item in question | 134 | * @work: The work item in question |
123 | */ | 135 | */ |
124 | #define delayed_work_pending(work) \ | 136 | #define delayed_work_pending(w) \ |
125 | test_bit(WORK_STRUCT_PENDING, &(work)->work.management) | 137 | work_pending(&(w)->work) |
126 | 138 | ||
127 | /** | 139 | /** |
128 | * work_release - Release a work item under execution | 140 | * work_release - Release a work item under execution |
@@ -143,7 +155,7 @@ struct execute_work { | |||
143 | * This should also be used to release a delayed work item. | 155 | * This should also be used to release a delayed work item. |
144 | */ | 156 | */ |
145 | #define work_release(work) \ | 157 | #define work_release(work) \ |
146 | clear_bit(WORK_STRUCT_PENDING, &(work)->management) | 158 | clear_bit(WORK_STRUCT_PENDING, work_data_bits(work)) |
147 | 159 | ||
148 | 160 | ||
149 | extern struct workqueue_struct *__create_workqueue(const char *name, | 161 | extern struct workqueue_struct *__create_workqueue(const char *name, |
@@ -188,7 +200,7 @@ static inline int cancel_delayed_work(struct delayed_work *work) | |||
188 | 200 | ||
189 | ret = del_timer_sync(&work->timer); | 201 | ret = del_timer_sync(&work->timer); |
190 | if (ret) | 202 | if (ret) |
191 | clear_bit(WORK_STRUCT_PENDING, &work->work.management); | 203 | work_release(&work->work); |
192 | return ret; | 204 | return ret; |
193 | } | 205 | } |
194 | 206 | ||
diff --git a/include/media/cx2341x.h b/include/media/cx2341x.h index d91d88f93c8b..ecad55bf0162 100644 --- a/include/media/cx2341x.h +++ b/include/media/cx2341x.h | |||
@@ -49,7 +49,7 @@ struct cx2341x_mpeg_params { | |||
49 | enum v4l2_mpeg_audio_mode_extension audio_mode_extension; | 49 | enum v4l2_mpeg_audio_mode_extension audio_mode_extension; |
50 | enum v4l2_mpeg_audio_emphasis audio_emphasis; | 50 | enum v4l2_mpeg_audio_emphasis audio_emphasis; |
51 | enum v4l2_mpeg_audio_crc audio_crc; | 51 | enum v4l2_mpeg_audio_crc audio_crc; |
52 | u8 audio_properties; | 52 | u16 audio_properties; |
53 | 53 | ||
54 | /* video */ | 54 | /* video */ |
55 | enum v4l2_mpeg_video_encoding video_encoding; | 55 | enum v4l2_mpeg_video_encoding video_encoding; |
diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 2b25f5c95006..4bb0ad810179 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #define _IR_COMMON | 24 | #define _IR_COMMON |
25 | 25 | ||
26 | #include <linux/input.h> | 26 | #include <linux/input.h> |
27 | #include <linux/workqueue.h> | ||
27 | 28 | ||
28 | #define IR_TYPE_RC5 1 | 29 | #define IR_TYPE_RC5 1 |
29 | #define IR_TYPE_PD 2 /* Pulse distance encoded IR */ | 30 | #define IR_TYPE_PD 2 /* Pulse distance encoded IR */ |
diff --git a/include/net/ax25.h b/include/net/ax25.h index 14b72d868f03..5ae10dd2e32e 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h | |||
@@ -277,7 +277,7 @@ struct sock *ax25_get_socket(ax25_address *, ax25_address *, int); | |||
277 | extern ax25_cb *ax25_find_cb(ax25_address *, ax25_address *, ax25_digi *, struct net_device *); | 277 | extern ax25_cb *ax25_find_cb(ax25_address *, ax25_address *, ax25_digi *, struct net_device *); |
278 | extern void ax25_send_to_raw(ax25_address *, struct sk_buff *, int); | 278 | extern void ax25_send_to_raw(ax25_address *, struct sk_buff *, int); |
279 | extern void ax25_destroy_socket(ax25_cb *); | 279 | extern void ax25_destroy_socket(ax25_cb *); |
280 | extern ax25_cb *ax25_create_cb(void); | 280 | extern ax25_cb * __must_check ax25_create_cb(void); |
281 | extern void ax25_fillin_cb(ax25_cb *, ax25_dev *); | 281 | extern void ax25_fillin_cb(ax25_cb *, ax25_dev *); |
282 | extern struct sock *ax25_make_new(struct sock *, struct ax25_dev *); | 282 | extern struct sock *ax25_make_new(struct sock *, struct ax25_dev *); |
283 | 283 | ||
@@ -333,11 +333,25 @@ extern void ax25_ds_t3timer_expiry(ax25_cb *); | |||
333 | extern void ax25_ds_idletimer_expiry(ax25_cb *); | 333 | extern void ax25_ds_idletimer_expiry(ax25_cb *); |
334 | 334 | ||
335 | /* ax25_iface.c */ | 335 | /* ax25_iface.c */ |
336 | extern int ax25_protocol_register(unsigned int, int (*)(struct sk_buff *, ax25_cb *)); | 336 | |
337 | struct ax25_protocol { | ||
338 | struct ax25_protocol *next; | ||
339 | unsigned int pid; | ||
340 | int (*func)(struct sk_buff *, ax25_cb *); | ||
341 | }; | ||
342 | |||
343 | extern void ax25_register_pid(struct ax25_protocol *ap); | ||
337 | extern void ax25_protocol_release(unsigned int); | 344 | extern void ax25_protocol_release(unsigned int); |
338 | extern int ax25_linkfail_register(void (*)(ax25_cb *, int)); | 345 | |
339 | extern void ax25_linkfail_release(void (*)(ax25_cb *, int)); | 346 | struct ax25_linkfail { |
340 | extern int ax25_listen_register(ax25_address *, struct net_device *); | 347 | struct hlist_node lf_node; |
348 | void (*func)(ax25_cb *, int); | ||
349 | }; | ||
350 | |||
351 | extern void ax25_linkfail_register(struct ax25_linkfail *lf); | ||
352 | extern void ax25_linkfail_release(struct ax25_linkfail *lf); | ||
353 | extern int __must_check ax25_listen_register(ax25_address *, | ||
354 | struct net_device *); | ||
341 | extern void ax25_listen_release(ax25_address *, struct net_device *); | 355 | extern void ax25_listen_release(ax25_address *, struct net_device *); |
342 | extern int (*ax25_protocol_function(unsigned int))(struct sk_buff *, ax25_cb *); | 356 | extern int (*ax25_protocol_function(unsigned int))(struct sk_buff *, ax25_cb *); |
343 | extern int ax25_listen_mine(ax25_address *, struct net_device *); | 357 | extern int ax25_listen_mine(ax25_address *, struct net_device *); |
@@ -415,7 +429,7 @@ extern unsigned long ax25_display_timer(struct timer_list *); | |||
415 | /* ax25_uid.c */ | 429 | /* ax25_uid.c */ |
416 | extern int ax25_uid_policy; | 430 | extern int ax25_uid_policy; |
417 | extern ax25_uid_assoc *ax25_findbyuid(uid_t); | 431 | extern ax25_uid_assoc *ax25_findbyuid(uid_t); |
418 | extern int ax25_uid_ioctl(int, struct sockaddr_ax25 *); | 432 | extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *); |
419 | extern struct file_operations ax25_uid_fops; | 433 | extern struct file_operations ax25_uid_fops; |
420 | extern void ax25_uid_free(void); | 434 | extern void ax25_uid_free(void); |
421 | 435 | ||
diff --git a/include/net/ip6_checksum.h b/include/net/ip6_checksum.h index 68e2b32cf1d6..bc1b0fda2b04 100644 --- a/include/net/ip6_checksum.h +++ b/include/net/ip6_checksum.h | |||
@@ -87,7 +87,7 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, | |||
87 | carry = (sum < uproto); | 87 | carry = (sum < uproto); |
88 | sum += carry; | 88 | sum += carry; |
89 | 89 | ||
90 | return csum_fold((__force __wsum)csum); | 90 | return csum_fold((__force __wsum)sum); |
91 | } | 91 | } |
92 | 92 | ||
93 | #endif | 93 | #endif |
diff --git a/include/net/rose.h b/include/net/rose.h index 012b09ed2401..4c05a88b921b 100644 --- a/include/net/rose.h +++ b/include/net/rose.h | |||
@@ -188,13 +188,13 @@ extern void rose_kick(struct sock *); | |||
188 | extern void rose_enquiry_response(struct sock *); | 188 | extern void rose_enquiry_response(struct sock *); |
189 | 189 | ||
190 | /* rose_route.c */ | 190 | /* rose_route.c */ |
191 | extern struct rose_neigh *rose_loopback_neigh; | 191 | extern struct rose_neigh rose_loopback_neigh; |
192 | extern struct file_operations rose_neigh_fops; | 192 | extern struct file_operations rose_neigh_fops; |
193 | extern struct file_operations rose_nodes_fops; | 193 | extern struct file_operations rose_nodes_fops; |
194 | extern struct file_operations rose_routes_fops; | 194 | extern struct file_operations rose_routes_fops; |
195 | 195 | ||
196 | extern int rose_add_loopback_neigh(void); | 196 | extern void rose_add_loopback_neigh(void); |
197 | extern int rose_add_loopback_node(rose_address *); | 197 | extern int __must_check rose_add_loopback_node(rose_address *); |
198 | extern void rose_del_loopback_node(rose_address *); | 198 | extern void rose_del_loopback_node(rose_address *); |
199 | extern void rose_rt_device_down(struct net_device *); | 199 | extern void rose_rt_device_down(struct net_device *); |
200 | extern void rose_link_device_down(struct net_device *); | 200 | extern void rose_link_device_down(struct net_device *); |
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index c818f87122af..28af68059521 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -128,8 +128,6 @@ extern int sctp_copy_local_addr_list(struct sctp_bind_addr *, | |||
128 | int flags); | 128 | int flags); |
129 | extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); | 129 | extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family); |
130 | extern int sctp_register_pf(struct sctp_pf *, sa_family_t); | 130 | extern int sctp_register_pf(struct sctp_pf *, sa_family_t); |
131 | int sctp_inetaddr_event(struct notifier_block *this, unsigned long ev, | ||
132 | void *ptr); | ||
133 | 131 | ||
134 | /* | 132 | /* |
135 | * sctp/socket.c | 133 | * sctp/socket.c |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 8d7f26d684e5..31a8e88f1a74 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -306,7 +306,7 @@ struct sctp_sock { | |||
306 | __u8 disable_fragments; | 306 | __u8 disable_fragments; |
307 | __u8 pd_mode; | 307 | __u8 pd_mode; |
308 | __u8 v4mapped; | 308 | __u8 v4mapped; |
309 | __u32 adaption_ind; | 309 | __u32 adaptation_ind; |
310 | 310 | ||
311 | /* Receive to here while partial delivery is in effect. */ | 311 | /* Receive to here while partial delivery is in effect. */ |
312 | struct sk_buff_head pd_lobby; | 312 | struct sk_buff_head pd_lobby; |
@@ -388,7 +388,7 @@ struct sctp_cookie { | |||
388 | /* Padding for future use */ | 388 | /* Padding for future use */ |
389 | __u8 padding; | 389 | __u8 padding; |
390 | 390 | ||
391 | __u32 adaption_ind; | 391 | __u32 adaptation_ind; |
392 | 392 | ||
393 | 393 | ||
394 | /* This is a shim for my peer's INIT packet, followed by | 394 | /* This is a shim for my peer's INIT packet, followed by |
@@ -431,7 +431,7 @@ union sctp_params { | |||
431 | struct sctp_ipv4addr_param *v4; | 431 | struct sctp_ipv4addr_param *v4; |
432 | struct sctp_ipv6addr_param *v6; | 432 | struct sctp_ipv6addr_param *v6; |
433 | union sctp_addr_param *addr; | 433 | union sctp_addr_param *addr; |
434 | struct sctp_adaption_ind_param *aind; | 434 | struct sctp_adaptation_ind_param *aind; |
435 | }; | 435 | }; |
436 | 436 | ||
437 | /* RFC 2960. Section 3.3.5 Heartbeat. | 437 | /* RFC 2960. Section 3.3.5 Heartbeat. |
@@ -1483,7 +1483,7 @@ struct sctp_association { | |||
1483 | __u8 asconf_capable; /* Does peer support ADDIP? */ | 1483 | __u8 asconf_capable; /* Does peer support ADDIP? */ |
1484 | __u8 prsctp_capable; /* Can peer do PR-SCTP? */ | 1484 | __u8 prsctp_capable; /* Can peer do PR-SCTP? */ |
1485 | 1485 | ||
1486 | __u32 adaption_ind; /* Adaption Code point. */ | 1486 | __u32 adaptation_ind; /* Adaptation Code point. */ |
1487 | 1487 | ||
1488 | /* This mask is used to disable sending the ASCONF chunk | 1488 | /* This mask is used to disable sending the ASCONF chunk |
1489 | * with specified parameter to peer. | 1489 | * with specified parameter to peer. |
diff --git a/include/net/sctp/ulpevent.h b/include/net/sctp/ulpevent.h index 1a4ddc1ec7d2..2923e3d31a08 100644 --- a/include/net/sctp/ulpevent.h +++ b/include/net/sctp/ulpevent.h | |||
@@ -120,7 +120,7 @@ struct sctp_ulpevent *sctp_ulpevent_make_pdapi( | |||
120 | const struct sctp_association *asoc, | 120 | const struct sctp_association *asoc, |
121 | __u32 indication, gfp_t gfp); | 121 | __u32 indication, gfp_t gfp); |
122 | 122 | ||
123 | struct sctp_ulpevent *sctp_ulpevent_make_adaption_indication( | 123 | struct sctp_ulpevent *sctp_ulpevent_make_adaptation_indication( |
124 | const struct sctp_association *asoc, gfp_t gfp); | 124 | const struct sctp_association *asoc, gfp_t gfp); |
125 | 125 | ||
126 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, | 126 | struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc, |
diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h index 9e4a39fd129d..67a30eb2b3a4 100644 --- a/include/net/sctp/user.h +++ b/include/net/sctp/user.h | |||
@@ -75,8 +75,8 @@ enum sctp_optname { | |||
75 | #define SCTP_SET_PEER_PRIMARY_ADDR SCTP_SET_PEER_PRIMARY_ADDR | 75 | #define SCTP_SET_PEER_PRIMARY_ADDR SCTP_SET_PEER_PRIMARY_ADDR |
76 | SCTP_PRIMARY_ADDR, | 76 | SCTP_PRIMARY_ADDR, |
77 | #define SCTP_PRIMARY_ADDR SCTP_PRIMARY_ADDR | 77 | #define SCTP_PRIMARY_ADDR SCTP_PRIMARY_ADDR |
78 | SCTP_ADAPTION_LAYER, | 78 | SCTP_ADAPTATION_LAYER, |
79 | #define SCTP_ADAPTION_LAYER SCTP_ADAPTION_LAYER | 79 | #define SCTP_ADAPTATION_LAYER SCTP_ADAPTATION_LAYER |
80 | SCTP_DISABLE_FRAGMENTS, | 80 | SCTP_DISABLE_FRAGMENTS, |
81 | #define SCTP_DISABLE_FRAGMENTS SCTP_DISABLE_FRAGMENTS | 81 | #define SCTP_DISABLE_FRAGMENTS SCTP_DISABLE_FRAGMENTS |
82 | SCTP_PEER_ADDR_PARAMS, | 82 | SCTP_PEER_ADDR_PARAMS, |
@@ -331,17 +331,17 @@ struct sctp_shutdown_event { | |||
331 | }; | 331 | }; |
332 | 332 | ||
333 | /* | 333 | /* |
334 | * 5.3.1.6 SCTP_ADAPTION_INDICATION | 334 | * 5.3.1.6 SCTP_ADAPTATION_INDICATION |
335 | * | 335 | * |
336 | * When a peer sends a Adaption Layer Indication parameter , SCTP | 336 | * When a peer sends a Adaptation Layer Indication parameter , SCTP |
337 | * delivers this notification to inform the application | 337 | * delivers this notification to inform the application |
338 | * that of the peers requested adaption layer. | 338 | * that of the peers requested adaptation layer. |
339 | */ | 339 | */ |
340 | struct sctp_adaption_event { | 340 | struct sctp_adaptation_event { |
341 | __u16 sai_type; | 341 | __u16 sai_type; |
342 | __u16 sai_flags; | 342 | __u16 sai_flags; |
343 | __u32 sai_length; | 343 | __u32 sai_length; |
344 | __u32 sai_adaption_ind; | 344 | __u32 sai_adaptation_ind; |
345 | sctp_assoc_t sai_assoc_id; | 345 | sctp_assoc_t sai_assoc_id; |
346 | }; | 346 | }; |
347 | 347 | ||
@@ -374,7 +374,7 @@ struct sctp_event_subscribe { | |||
374 | __u8 sctp_peer_error_event; | 374 | __u8 sctp_peer_error_event; |
375 | __u8 sctp_shutdown_event; | 375 | __u8 sctp_shutdown_event; |
376 | __u8 sctp_partial_delivery_event; | 376 | __u8 sctp_partial_delivery_event; |
377 | __u8 sctp_adaption_layer_event; | 377 | __u8 sctp_adaptation_layer_event; |
378 | }; | 378 | }; |
379 | 379 | ||
380 | /* | 380 | /* |
@@ -395,7 +395,7 @@ union sctp_notification { | |||
395 | struct sctp_remote_error sn_remote_error; | 395 | struct sctp_remote_error sn_remote_error; |
396 | struct sctp_send_failed sn_send_failed; | 396 | struct sctp_send_failed sn_send_failed; |
397 | struct sctp_shutdown_event sn_shutdown_event; | 397 | struct sctp_shutdown_event sn_shutdown_event; |
398 | struct sctp_adaption_event sn_adaption_event; | 398 | struct sctp_adaptation_event sn_adaptation_event; |
399 | struct sctp_pdapi_event sn_pdapi_event; | 399 | struct sctp_pdapi_event sn_pdapi_event; |
400 | }; | 400 | }; |
401 | 401 | ||
@@ -412,7 +412,7 @@ enum sctp_sn_type { | |||
412 | SCTP_REMOTE_ERROR, | 412 | SCTP_REMOTE_ERROR, |
413 | SCTP_SHUTDOWN_EVENT, | 413 | SCTP_SHUTDOWN_EVENT, |
414 | SCTP_PARTIAL_DELIVERY_EVENT, | 414 | SCTP_PARTIAL_DELIVERY_EVENT, |
415 | SCTP_ADAPTION_INDICATION, | 415 | SCTP_ADAPTATION_INDICATION, |
416 | }; | 416 | }; |
417 | 417 | ||
418 | /* Notification error codes used to fill up the error fields in some | 418 | /* Notification error codes used to fill up the error fields in some |
@@ -488,13 +488,13 @@ struct sctp_prim { | |||
488 | } __attribute__((packed, aligned(4))); | 488 | } __attribute__((packed, aligned(4))); |
489 | 489 | ||
490 | /* | 490 | /* |
491 | * 7.1.11 Set Adaption Layer Indicator (SCTP_ADAPTION_LAYER) | 491 | * 7.1.11 Set Adaptation Layer Indicator (SCTP_ADAPTATION_LAYER) |
492 | * | 492 | * |
493 | * Requests that the local endpoint set the specified Adaption Layer | 493 | * Requests that the local endpoint set the specified Adaptation Layer |
494 | * Indication parameter for all future INIT and INIT-ACK exchanges. | 494 | * Indication parameter for all future INIT and INIT-ACK exchanges. |
495 | */ | 495 | */ |
496 | struct sctp_setadaption { | 496 | struct sctp_setadaptation { |
497 | __u32 ssb_adaption_ind; | 497 | __u32 ssb_adaptation_ind; |
498 | }; | 498 | }; |
499 | 499 | ||
500 | /* | 500 | /* |
diff --git a/include/net/tcp.h b/include/net/tcp.h index c99774f15eba..b7d8317f22ac 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -242,14 +242,9 @@ extern int tcp_memory_pressure; | |||
242 | 242 | ||
243 | static inline int before(__u32 seq1, __u32 seq2) | 243 | static inline int before(__u32 seq1, __u32 seq2) |
244 | { | 244 | { |
245 | return (__s32)(seq1-seq2) < 0; | 245 | return (__s32)(seq2-seq1) > 0; |
246 | } | 246 | } |
247 | 247 | #define after(seq2, seq1) before(seq1, seq2) | |
248 | static inline int after(__u32 seq1, __u32 seq2) | ||
249 | { | ||
250 | return (__s32)(seq2-seq1) < 0; | ||
251 | } | ||
252 | |||
253 | 248 | ||
254 | /* is s2<=s1<=s3 ? */ | 249 | /* is s2<=s1<=s3 ? */ |
255 | static inline int between(__u32 seq1, __u32 seq2, __u32 seq3) | 250 | static inline int between(__u32 seq1, __u32 seq2, __u32 seq3) |
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index fd2353fa7e12..0bfa3328d686 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -1456,9 +1456,9 @@ struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags); | |||
1456 | */ | 1456 | */ |
1457 | static inline int ib_dma_mapping_error(struct ib_device *dev, u64 dma_addr) | 1457 | static inline int ib_dma_mapping_error(struct ib_device *dev, u64 dma_addr) |
1458 | { | 1458 | { |
1459 | return dev->dma_ops ? | 1459 | if (dev->dma_ops) |
1460 | dev->dma_ops->mapping_error(dev, dma_addr) : | 1460 | return dev->dma_ops->mapping_error(dev, dma_addr); |
1461 | dma_mapping_error(dma_addr); | 1461 | return dma_mapping_error(dma_addr); |
1462 | } | 1462 | } |
1463 | 1463 | ||
1464 | /** | 1464 | /** |
@@ -1472,9 +1472,9 @@ static inline u64 ib_dma_map_single(struct ib_device *dev, | |||
1472 | void *cpu_addr, size_t size, | 1472 | void *cpu_addr, size_t size, |
1473 | enum dma_data_direction direction) | 1473 | enum dma_data_direction direction) |
1474 | { | 1474 | { |
1475 | return dev->dma_ops ? | 1475 | if (dev->dma_ops) |
1476 | dev->dma_ops->map_single(dev, cpu_addr, size, direction) : | 1476 | return dev->dma_ops->map_single(dev, cpu_addr, size, direction); |
1477 | dma_map_single(dev->dma_device, cpu_addr, size, direction); | 1477 | return dma_map_single(dev->dma_device, cpu_addr, size, direction); |
1478 | } | 1478 | } |
1479 | 1479 | ||
1480 | /** | 1480 | /** |
@@ -1488,8 +1488,9 @@ static inline void ib_dma_unmap_single(struct ib_device *dev, | |||
1488 | u64 addr, size_t size, | 1488 | u64 addr, size_t size, |
1489 | enum dma_data_direction direction) | 1489 | enum dma_data_direction direction) |
1490 | { | 1490 | { |
1491 | dev->dma_ops ? | 1491 | if (dev->dma_ops) |
1492 | dev->dma_ops->unmap_single(dev, addr, size, direction) : | 1492 | dev->dma_ops->unmap_single(dev, addr, size, direction); |
1493 | else | ||
1493 | dma_unmap_single(dev->dma_device, addr, size, direction); | 1494 | dma_unmap_single(dev->dma_device, addr, size, direction); |
1494 | } | 1495 | } |
1495 | 1496 | ||
@@ -1507,9 +1508,9 @@ static inline u64 ib_dma_map_page(struct ib_device *dev, | |||
1507 | size_t size, | 1508 | size_t size, |
1508 | enum dma_data_direction direction) | 1509 | enum dma_data_direction direction) |
1509 | { | 1510 | { |
1510 | return dev->dma_ops ? | 1511 | if (dev->dma_ops) |
1511 | dev->dma_ops->map_page(dev, page, offset, size, direction) : | 1512 | return dev->dma_ops->map_page(dev, page, offset, size, direction); |
1512 | dma_map_page(dev->dma_device, page, offset, size, direction); | 1513 | return dma_map_page(dev->dma_device, page, offset, size, direction); |
1513 | } | 1514 | } |
1514 | 1515 | ||
1515 | /** | 1516 | /** |
@@ -1523,8 +1524,9 @@ static inline void ib_dma_unmap_page(struct ib_device *dev, | |||
1523 | u64 addr, size_t size, | 1524 | u64 addr, size_t size, |
1524 | enum dma_data_direction direction) | 1525 | enum dma_data_direction direction) |
1525 | { | 1526 | { |
1526 | dev->dma_ops ? | 1527 | if (dev->dma_ops) |
1527 | dev->dma_ops->unmap_page(dev, addr, size, direction) : | 1528 | dev->dma_ops->unmap_page(dev, addr, size, direction); |
1529 | else | ||
1528 | dma_unmap_page(dev->dma_device, addr, size, direction); | 1530 | dma_unmap_page(dev->dma_device, addr, size, direction); |
1529 | } | 1531 | } |
1530 | 1532 | ||
@@ -1539,9 +1541,9 @@ static inline int ib_dma_map_sg(struct ib_device *dev, | |||
1539 | struct scatterlist *sg, int nents, | 1541 | struct scatterlist *sg, int nents, |
1540 | enum dma_data_direction direction) | 1542 | enum dma_data_direction direction) |
1541 | { | 1543 | { |
1542 | return dev->dma_ops ? | 1544 | if (dev->dma_ops) |
1543 | dev->dma_ops->map_sg(dev, sg, nents, direction) : | 1545 | return dev->dma_ops->map_sg(dev, sg, nents, direction); |
1544 | dma_map_sg(dev->dma_device, sg, nents, direction); | 1546 | return dma_map_sg(dev->dma_device, sg, nents, direction); |
1545 | } | 1547 | } |
1546 | 1548 | ||
1547 | /** | 1549 | /** |
@@ -1555,8 +1557,9 @@ static inline void ib_dma_unmap_sg(struct ib_device *dev, | |||
1555 | struct scatterlist *sg, int nents, | 1557 | struct scatterlist *sg, int nents, |
1556 | enum dma_data_direction direction) | 1558 | enum dma_data_direction direction) |
1557 | { | 1559 | { |
1558 | dev->dma_ops ? | 1560 | if (dev->dma_ops) |
1559 | dev->dma_ops->unmap_sg(dev, sg, nents, direction) : | 1561 | dev->dma_ops->unmap_sg(dev, sg, nents, direction); |
1562 | else | ||
1560 | dma_unmap_sg(dev->dma_device, sg, nents, direction); | 1563 | dma_unmap_sg(dev->dma_device, sg, nents, direction); |
1561 | } | 1564 | } |
1562 | 1565 | ||
@@ -1568,8 +1571,9 @@ static inline void ib_dma_unmap_sg(struct ib_device *dev, | |||
1568 | static inline u64 ib_sg_dma_address(struct ib_device *dev, | 1571 | static inline u64 ib_sg_dma_address(struct ib_device *dev, |
1569 | struct scatterlist *sg) | 1572 | struct scatterlist *sg) |
1570 | { | 1573 | { |
1571 | return dev->dma_ops ? | 1574 | if (dev->dma_ops) |
1572 | dev->dma_ops->dma_address(dev, sg) : sg_dma_address(sg); | 1575 | return dev->dma_ops->dma_address(dev, sg); |
1576 | return sg_dma_address(sg); | ||
1573 | } | 1577 | } |
1574 | 1578 | ||
1575 | /** | 1579 | /** |
@@ -1580,8 +1584,9 @@ static inline u64 ib_sg_dma_address(struct ib_device *dev, | |||
1580 | static inline unsigned int ib_sg_dma_len(struct ib_device *dev, | 1584 | static inline unsigned int ib_sg_dma_len(struct ib_device *dev, |
1581 | struct scatterlist *sg) | 1585 | struct scatterlist *sg) |
1582 | { | 1586 | { |
1583 | return dev->dma_ops ? | 1587 | if (dev->dma_ops) |
1584 | dev->dma_ops->dma_len(dev, sg) : sg_dma_len(sg); | 1588 | return dev->dma_ops->dma_len(dev, sg); |
1589 | return sg_dma_len(sg); | ||
1585 | } | 1590 | } |
1586 | 1591 | ||
1587 | /** | 1592 | /** |
@@ -1596,8 +1601,9 @@ static inline void ib_dma_sync_single_for_cpu(struct ib_device *dev, | |||
1596 | size_t size, | 1601 | size_t size, |
1597 | enum dma_data_direction dir) | 1602 | enum dma_data_direction dir) |
1598 | { | 1603 | { |
1599 | dev->dma_ops ? | 1604 | if (dev->dma_ops) |
1600 | dev->dma_ops->sync_single_for_cpu(dev, addr, size, dir) : | 1605 | dev->dma_ops->sync_single_for_cpu(dev, addr, size, dir); |
1606 | else | ||
1601 | dma_sync_single_for_cpu(dev->dma_device, addr, size, dir); | 1607 | dma_sync_single_for_cpu(dev->dma_device, addr, size, dir); |
1602 | } | 1608 | } |
1603 | 1609 | ||
@@ -1613,8 +1619,9 @@ static inline void ib_dma_sync_single_for_device(struct ib_device *dev, | |||
1613 | size_t size, | 1619 | size_t size, |
1614 | enum dma_data_direction dir) | 1620 | enum dma_data_direction dir) |
1615 | { | 1621 | { |
1616 | dev->dma_ops ? | 1622 | if (dev->dma_ops) |
1617 | dev->dma_ops->sync_single_for_device(dev, addr, size, dir) : | 1623 | dev->dma_ops->sync_single_for_device(dev, addr, size, dir); |
1624 | else | ||
1618 | dma_sync_single_for_device(dev->dma_device, addr, size, dir); | 1625 | dma_sync_single_for_device(dev->dma_device, addr, size, dir); |
1619 | } | 1626 | } |
1620 | 1627 | ||
@@ -1630,9 +1637,16 @@ static inline void *ib_dma_alloc_coherent(struct ib_device *dev, | |||
1630 | u64 *dma_handle, | 1637 | u64 *dma_handle, |
1631 | gfp_t flag) | 1638 | gfp_t flag) |
1632 | { | 1639 | { |
1633 | return dev->dma_ops ? | 1640 | if (dev->dma_ops) |
1634 | dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag) : | 1641 | return dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag); |
1635 | dma_alloc_coherent(dev->dma_device, size, dma_handle, flag); | 1642 | else { |
1643 | dma_addr_t handle; | ||
1644 | void *ret; | ||
1645 | |||
1646 | ret = dma_alloc_coherent(dev->dma_device, size, &handle, flag); | ||
1647 | *dma_handle = handle; | ||
1648 | return ret; | ||
1649 | } | ||
1636 | } | 1650 | } |
1637 | 1651 | ||
1638 | /** | 1652 | /** |
@@ -1646,8 +1660,9 @@ static inline void ib_dma_free_coherent(struct ib_device *dev, | |||
1646 | size_t size, void *cpu_addr, | 1660 | size_t size, void *cpu_addr, |
1647 | u64 dma_handle) | 1661 | u64 dma_handle) |
1648 | { | 1662 | { |
1649 | dev->dma_ops ? | 1663 | if (dev->dma_ops) |
1650 | dev->dma_ops->free_coherent(dev, size, cpu_addr, dma_handle) : | 1664 | dev->dma_ops->free_coherent(dev, size, cpu_addr, dma_handle); |
1665 | else | ||
1651 | dma_free_coherent(dev->dma_device, size, cpu_addr, dma_handle); | 1666 | dma_free_coherent(dev->dma_device, size, cpu_addr, dma_handle); |
1652 | } | 1667 | } |
1653 | 1668 | ||
diff --git a/include/sound/pcm_oss.h b/include/sound/pcm_oss.h index c854647b6f3c..1cd4f64cdf31 100644 --- a/include/sound/pcm_oss.h +++ b/include/sound/pcm_oss.h | |||
@@ -56,6 +56,7 @@ struct snd_pcm_oss_runtime { | |||
56 | size_t mmap_bytes; | 56 | size_t mmap_bytes; |
57 | char *buffer; /* vmallocated period */ | 57 | char *buffer; /* vmallocated period */ |
58 | size_t buffer_used; /* used length from period buffer */ | 58 | size_t buffer_used; /* used length from period buffer */ |
59 | struct mutex params_lock; | ||
59 | #ifdef CONFIG_SND_PCM_OSS_PLUGINS | 60 | #ifdef CONFIG_SND_PCM_OSS_PLUGINS |
60 | struct snd_pcm_plugin *plugin_first; | 61 | struct snd_pcm_plugin *plugin_first; |
61 | struct snd_pcm_plugin *plugin_last; | 62 | struct snd_pcm_plugin *plugin_last; |
diff --git a/include/sound/version.h b/include/sound/version.h index 17137f3a3b6f..2949b9b991b5 100644 --- a/include/sound/version.h +++ b/include/sound/version.h | |||
@@ -1,3 +1,3 @@ | |||
1 | /* include/version.h. Generated by alsa/ksync script. */ | 1 | /* include/version.h. Generated by alsa/ksync script. */ |
2 | #define CONFIG_SND_VERSION "1.0.13" | 2 | #define CONFIG_SND_VERSION "1.0.14rc1" |
3 | #define CONFIG_SND_DATE " (Tue Nov 28 14:07:24 2006 UTC)" | 3 | #define CONFIG_SND_DATE " (Wed Dec 20 08:11:48 2006 UTC)" |
diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h index d41cda97e952..f3514ee96bd9 100644 --- a/include/sound/ymfpci.h +++ b/include/sound/ymfpci.h | |||
@@ -286,7 +286,7 @@ struct snd_ymfpci { | |||
286 | int irq; | 286 | int irq; |
287 | 287 | ||
288 | unsigned int device_id; /* PCI device ID */ | 288 | unsigned int device_id; /* PCI device ID */ |
289 | unsigned int rev; /* PCI revision */ | 289 | unsigned char rev; /* PCI revision */ |
290 | unsigned long reg_area_phys; | 290 | unsigned long reg_area_phys; |
291 | void __iomem *reg_area_virt; | 291 | void __iomem *reg_area_virt; |
292 | struct resource *res_reg_area; | 292 | struct resource *res_reg_area; |
@@ -345,7 +345,6 @@ struct snd_ymfpci { | |||
345 | struct snd_kcontrol *spdif_pcm_ctl; | 345 | struct snd_kcontrol *spdif_pcm_ctl; |
346 | int mode_dup4ch; | 346 | int mode_dup4ch; |
347 | int rear_opened; | 347 | int rear_opened; |
348 | int rear_swap; | ||
349 | int spdif_opened; | 348 | int spdif_opened; |
350 | struct { | 349 | struct { |
351 | u16 left; | 350 | u16 left; |
@@ -378,7 +377,7 @@ int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); | |||
378 | int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); | 377 | int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); |
379 | int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); | 378 | int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); |
380 | int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); | 379 | int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); |
381 | int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rear_swap); | 380 | int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch); |
382 | int snd_ymfpci_timer(struct snd_ymfpci *chip, int device); | 381 | int snd_ymfpci_timer(struct snd_ymfpci *chip, int device); |
383 | 382 | ||
384 | #endif /* __SOUND_YMFPCI_H */ | 383 | #endif /* __SOUND_YMFPCI_H */ |