diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-09-23 19:03:21 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-23 19:03:21 -0400 |
| commit | 536f8098026bde1368bbfcbcb9682a7637b73df2 (patch) | |
| tree | cf83d2e1afa503b6aeba103b55cd1da0af4e7a4c /include | |
| parent | e86ee6682b649183c11013a98be02f25e9ae399d (diff) | |
| parent | 3fd07d3bf0077dcc0f5a33d2eb1938ea050da8da (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'include')
68 files changed, 758 insertions, 183 deletions
diff --git a/include/asm-alpha/futex.h b/include/asm-alpha/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-alpha/futex.h +++ b/include/asm-alpha/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-arm/arch-aaec2000/memory.h b/include/asm-arm/arch-aaec2000/memory.h index 681b6a6171a1..79c90813bc3e 100644 --- a/include/asm-arm/arch-aaec2000/memory.h +++ b/include/asm-arm/arch-aaec2000/memory.h | |||
| @@ -64,10 +64,6 @@ | |||
| 64 | #define NODE_MAX_MEM_SHIFT 26 | 64 | #define NODE_MAX_MEM_SHIFT 26 |
| 65 | #define NODE_MAX_MEM_SIZE (1 << NODE_MAX_MEM_SHIFT) | 65 | #define NODE_MAX_MEM_SIZE (1 << NODE_MAX_MEM_SHIFT) |
| 66 | 66 | ||
| 67 | #else | ||
| 68 | |||
| 69 | #define PFN_TO_NID(addr) (0) | ||
| 70 | |||
| 71 | #endif /* CONFIG_DISCONTIGMEM */ | 67 | #endif /* CONFIG_DISCONTIGMEM */ |
| 72 | 68 | ||
| 73 | #endif /* __ASM_ARCH_MEMORY_H */ | 69 | #endif /* __ASM_ARCH_MEMORY_H */ |
diff --git a/include/asm-arm/arch-iop3xx/memory.h b/include/asm-arm/arch-iop3xx/memory.h index dc4735cb0c10..45351f5cd904 100644 --- a/include/asm-arm/arch-iop3xx/memory.h +++ b/include/asm-arm/arch-iop3xx/memory.h | |||
| @@ -36,6 +36,4 @@ | |||
| 36 | 36 | ||
| 37 | #endif | 37 | #endif |
| 38 | 38 | ||
| 39 | #define PFN_TO_NID(addr) (0) | ||
| 40 | |||
| 41 | #endif | 39 | #endif |
diff --git a/include/asm-arm/arch-ixp2000/ixp2000-regs.h b/include/asm-arm/arch-ixp2000/ixp2000-regs.h index 75623f81ef75..32aece069869 100644 --- a/include/asm-arm/arch-ixp2000/ixp2000-regs.h +++ b/include/asm-arm/arch-ixp2000/ixp2000-regs.h | |||
| @@ -370,8 +370,6 @@ | |||
| 370 | #define GLOBAL_REG_BASE (IXP2000_GLOBAL_REG_VIRT_BASE + 0x0a00) | 370 | #define GLOBAL_REG_BASE (IXP2000_GLOBAL_REG_VIRT_BASE + 0x0a00) |
| 371 | #define GLOBAL_REG(x) (volatile unsigned long*)(GLOBAL_REG_BASE | (x)) | 371 | #define GLOBAL_REG(x) (volatile unsigned long*)(GLOBAL_REG_BASE | (x)) |
| 372 | 372 | ||
| 373 | #define IXP2000_PROD_ID GLOBAL_REG(0x00) | ||
| 374 | |||
| 375 | #define IXP2000_MAJ_PROD_TYPE_MASK 0x001F0000 | 373 | #define IXP2000_MAJ_PROD_TYPE_MASK 0x001F0000 |
| 376 | #define IXP2000_MAJ_PROD_TYPE_IXP2000 0x00000000 | 374 | #define IXP2000_MAJ_PROD_TYPE_IXP2000 0x00000000 |
| 377 | #define IXP2000_MIN_PROD_TYPE_MASK 0x0000FF00 | 375 | #define IXP2000_MIN_PROD_TYPE_MASK 0x0000FF00 |
diff --git a/include/asm-arm/arch-ixp2000/platform.h b/include/asm-arm/arch-ixp2000/platform.h index c0caf3e3e6fd..abdcf51bd283 100644 --- a/include/asm-arm/arch-ixp2000/platform.h +++ b/include/asm-arm/arch-ixp2000/platform.h | |||
| @@ -31,20 +31,24 @@ | |||
| 31 | 31 | ||
| 32 | #include <asm/system.h> /* Pickup local_irq_ functions */ | 32 | #include <asm/system.h> /* Pickup local_irq_ functions */ |
| 33 | 33 | ||
| 34 | static inline void ixp2000_reg_write(volatile unsigned long *reg, unsigned long val) | 34 | static inline void ixp2000_reg_write(volatile void *reg, unsigned long val) |
| 35 | { | 35 | { |
| 36 | volatile unsigned long dummy; | 36 | unsigned long dummy; |
| 37 | unsigned long flags; | 37 | unsigned long flags; |
| 38 | 38 | ||
| 39 | local_irq_save(flags); | 39 | local_irq_save(flags); |
| 40 | *reg = val; | 40 | *((volatile unsigned long *)reg) = val; |
| 41 | barrier(); | 41 | barrier(); |
| 42 | dummy = *reg; | 42 | dummy = *((volatile unsigned long *)reg); |
| 43 | local_irq_restore(flags); | 43 | local_irq_restore(flags); |
| 44 | } | 44 | } |
| 45 | #else | 45 | #else |
| 46 | #define ixp2000_reg_write(reg, val) (*reg = val) | 46 | static inline void ixp2000_reg_write(volatile void *reg, unsigned long val) |
| 47 | { | ||
| 48 | *((volatile unsigned long *)reg) = val; | ||
| 49 | } | ||
| 47 | #endif /* IXDP2400 || IXDP2401 */ | 50 | #endif /* IXDP2400 || IXDP2401 */ |
| 51 | #define ixp2000_reg_read(reg) (*((volatile unsigned long *)reg)) | ||
| 48 | 52 | ||
| 49 | /* | 53 | /* |
| 50 | * Boards may multiplex different devices on the 2nd channel of | 54 | * Boards may multiplex different devices on the 2nd channel of |
| @@ -84,7 +88,7 @@ void ixp2000_release_slowport(struct slowport_cfg *); | |||
| 84 | */ | 88 | */ |
| 85 | static inline unsigned ixp2000_has_broken_slowport(void) | 89 | static inline unsigned ixp2000_has_broken_slowport(void) |
| 86 | { | 90 | { |
| 87 | unsigned long id = *IXP2000_PROD_ID; | 91 | unsigned long id = *IXP2000_PRODUCT_ID; |
| 88 | unsigned long id_prod = id & (IXP2000_MAJ_PROD_TYPE_MASK | | 92 | unsigned long id_prod = id & (IXP2000_MAJ_PROD_TYPE_MASK | |
| 89 | IXP2000_MIN_PROD_TYPE_MASK); | 93 | IXP2000_MIN_PROD_TYPE_MASK); |
| 90 | return (((id_prod == | 94 | return (((id_prod == |
diff --git a/include/asm-arm/arch-lh7a40x/memory.h b/include/asm-arm/arch-lh7a40x/memory.h index 7e2fea372663..c650e6feb9d5 100644 --- a/include/asm-arm/arch-lh7a40x/memory.h +++ b/include/asm-arm/arch-lh7a40x/memory.h | |||
| @@ -85,10 +85,6 @@ | |||
| 85 | (((unsigned long)(addr) & 0x01ffffff) >> PAGE_SHIFT) | 85 | (((unsigned long)(addr) & 0x01ffffff) >> PAGE_SHIFT) |
| 86 | # endif | 86 | # endif |
| 87 | 87 | ||
| 88 | #else | ||
| 89 | |||
| 90 | # define PFN_TO_NID(addr) (0) | ||
| 91 | |||
| 92 | #endif | 88 | #endif |
| 93 | 89 | ||
| 94 | #endif | 90 | #endif |
diff --git a/include/asm-arm/arch-omap/memory.h b/include/asm-arm/arch-omap/memory.h index 84f81e315a25..ef32d61eec7a 100644 --- a/include/asm-arm/arch-omap/memory.h +++ b/include/asm-arm/arch-omap/memory.h | |||
| @@ -86,6 +86,5 @@ | |||
| 86 | 86 | ||
| 87 | #endif /* CONFIG_ARCH_OMAP1510 */ | 87 | #endif /* CONFIG_ARCH_OMAP1510 */ |
| 88 | 88 | ||
| 89 | #define PHYS_TO_NID(addr) (0) | ||
| 90 | #endif | 89 | #endif |
| 91 | 90 | ||
diff --git a/include/asm-arm/arch-pxa/memory.h b/include/asm-arm/arch-pxa/memory.h index 217a80b820ff..58bad9748b5c 100644 --- a/include/asm-arm/arch-pxa/memory.h +++ b/include/asm-arm/arch-pxa/memory.h | |||
| @@ -67,10 +67,6 @@ | |||
| 67 | #define LOCAL_MAP_NR(addr) \ | 67 | #define LOCAL_MAP_NR(addr) \ |
| 68 | (((unsigned long)(addr) & 0x03ffffff) >> PAGE_SHIFT) | 68 | (((unsigned long)(addr) & 0x03ffffff) >> PAGE_SHIFT) |
| 69 | 69 | ||
| 70 | #else | ||
| 71 | |||
| 72 | #define PFN_TO_NID(addr) (0) | ||
| 73 | |||
| 74 | #endif | 70 | #endif |
| 75 | 71 | ||
| 76 | #endif | 72 | #endif |
diff --git a/include/asm-arm/arch-pxa/poodle.h b/include/asm-arm/arch-pxa/poodle.h index 58bda9d571a5..6b5ac5144e70 100644 --- a/include/asm-arm/arch-pxa/poodle.h +++ b/include/asm-arm/arch-pxa/poodle.h | |||
| @@ -37,24 +37,25 @@ | |||
| 37 | #define POODLE_GPIO_nSD_DETECT (9) | 37 | #define POODLE_GPIO_nSD_DETECT (9) |
| 38 | #define POODLE_GPIO_MAIN_BAT_LOW (13) | 38 | #define POODLE_GPIO_MAIN_BAT_LOW (13) |
| 39 | #define POODLE_GPIO_BAT_COVER (13) | 39 | #define POODLE_GPIO_BAT_COVER (13) |
| 40 | #define POODLE_GPIO_USB_PULLUP (20) | ||
| 40 | #define POODLE_GPIO_ADC_TEMP_ON (21) | 41 | #define POODLE_GPIO_ADC_TEMP_ON (21) |
| 41 | #define POODLE_GPIO_BYPASS_ON (36) | 42 | #define POODLE_GPIO_BYPASS_ON (36) |
| 42 | #define POODLE_GPIO_CHRG_ON (38) | 43 | #define POODLE_GPIO_CHRG_ON (38) |
| 43 | #define POODLE_GPIO_CHRG_FULL (16) | 44 | #define POODLE_GPIO_CHRG_FULL (16) |
| 44 | 45 | ||
| 45 | /* PXA GPIOs */ | 46 | /* PXA GPIOs */ |
| 46 | #define POODLE_IRQ_GPIO_ON_KEY IRQ_GPIO0 | 47 | #define POODLE_IRQ_GPIO_ON_KEY IRQ_GPIO(0) |
| 47 | #define POODLE_IRQ_GPIO_AC_IN IRQ_GPIO1 | 48 | #define POODLE_IRQ_GPIO_AC_IN IRQ_GPIO(1) |
| 48 | #define POODLE_IRQ_GPIO_HP_IN IRQ_GPIO4 | 49 | #define POODLE_IRQ_GPIO_HP_IN IRQ_GPIO(4) |
| 49 | #define POODLE_IRQ_GPIO_CO IRQ_GPIO16 | 50 | #define POODLE_IRQ_GPIO_CO IRQ_GPIO(16) |
| 50 | #define POODLE_IRQ_GPIO_TP_INT IRQ_GPIO5 | 51 | #define POODLE_IRQ_GPIO_TP_INT IRQ_GPIO(5) |
| 51 | #define POODLE_IRQ_GPIO_WAKEUP IRQ_GPIO11 | 52 | #define POODLE_IRQ_GPIO_WAKEUP IRQ_GPIO(11) |
| 52 | #define POODLE_IRQ_GPIO_GA_INT IRQ_GPIO10 | 53 | #define POODLE_IRQ_GPIO_GA_INT IRQ_GPIO(10) |
| 53 | #define POODLE_IRQ_GPIO_CF_IRQ IRQ_GPIO17 | 54 | #define POODLE_IRQ_GPIO_CF_IRQ IRQ_GPIO(17) |
| 54 | #define POODLE_IRQ_GPIO_CF_CD IRQ_GPIO14 | 55 | #define POODLE_IRQ_GPIO_CF_CD IRQ_GPIO(14) |
| 55 | #define POODLE_IRQ_GPIO_nSD_INT IRQ_GPIO8 | 56 | #define POODLE_IRQ_GPIO_nSD_INT IRQ_GPIO(8) |
| 56 | #define POODLE_IRQ_GPIO_nSD_DETECT IRQ_GPIO9 | 57 | #define POODLE_IRQ_GPIO_nSD_DETECT IRQ_GPIO(9) |
| 57 | #define POODLE_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO13 | 58 | #define POODLE_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO(13) |
| 58 | 59 | ||
| 59 | /* SCOOP GPIOs */ | 60 | /* SCOOP GPIOs */ |
| 60 | #define POODLE_SCOOP_CHARGE_ON SCOOP_GPCR_PA11 | 61 | #define POODLE_SCOOP_CHARGE_ON SCOOP_GPCR_PA11 |
diff --git a/include/asm-arm/arch-sa1100/memory.h b/include/asm-arm/arch-sa1100/memory.h index 32d3d5bde34d..8743ff5c1b23 100644 --- a/include/asm-arm/arch-sa1100/memory.h +++ b/include/asm-arm/arch-sa1100/memory.h | |||
| @@ -99,10 +99,6 @@ __arch_adjust_zones(int node, unsigned long *size, unsigned long *holes) | |||
| 99 | #define LOCAL_MAP_NR(addr) \ | 99 | #define LOCAL_MAP_NR(addr) \ |
| 100 | (((unsigned long)(addr) & 0x07ffffff) >> PAGE_SHIFT) | 100 | (((unsigned long)(addr) & 0x07ffffff) >> PAGE_SHIFT) |
| 101 | 101 | ||
| 102 | #else | ||
| 103 | |||
| 104 | #define PFN_TO_NID(addr) (0) | ||
| 105 | |||
| 106 | #endif | 102 | #endif |
| 107 | 103 | ||
| 108 | #endif | 104 | #endif |
diff --git a/include/asm-arm/futex.h b/include/asm-arm/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-arm/futex.h +++ b/include/asm-arm/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-arm/hardware/arm_twd.h b/include/asm-arm/hardware/arm_twd.h new file mode 100644 index 000000000000..131d5b40e072 --- /dev/null +++ b/include/asm-arm/hardware/arm_twd.h | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | #ifndef __ASM_HARDWARE_TWD_H | ||
| 2 | #define __ASM_HARDWARE_TWD_H | ||
| 3 | |||
| 4 | #define TWD_TIMER_LOAD 0x00 | ||
| 5 | #define TWD_TIMER_COUNTER 0x04 | ||
| 6 | #define TWD_TIMER_CONTROL 0x08 | ||
| 7 | #define TWD_TIMER_INTSTAT 0x0C | ||
| 8 | |||
| 9 | #define TWD_WDOG_LOAD 0x20 | ||
| 10 | #define TWD_WDOG_COUNTER 0x24 | ||
| 11 | #define TWD_WDOG_CONTROL 0x28 | ||
| 12 | #define TWD_WDOG_INTSTAT 0x2C | ||
| 13 | #define TWD_WDOG_RESETSTAT 0x30 | ||
| 14 | #define TWD_WDOG_DISABLE 0x34 | ||
| 15 | |||
| 16 | #endif | ||
diff --git a/include/asm-arm/mach/arch.h b/include/asm-arm/mach/arch.h index 56c6bf4ab0c3..4fa95084a8c0 100644 --- a/include/asm-arm/mach/arch.h +++ b/include/asm-arm/mach/arch.h | |||
| @@ -50,7 +50,7 @@ struct machine_desc { | |||
| 50 | */ | 50 | */ |
| 51 | #define MACHINE_START(_type,_name) \ | 51 | #define MACHINE_START(_type,_name) \ |
| 52 | const struct machine_desc __mach_desc_##_type \ | 52 | const struct machine_desc __mach_desc_##_type \ |
| 53 | __attribute__((__section__(".arch.info"))) = { \ | 53 | __attribute__((__section__(".arch.info.init"))) = { \ |
| 54 | .nr = MACH_TYPE_##_type, \ | 54 | .nr = MACH_TYPE_##_type, \ |
| 55 | .name = _name, | 55 | .name = _name, |
| 56 | 56 | ||
diff --git a/include/asm-arm/memory.h b/include/asm-arm/memory.h index e47bea7d1723..a8a933a775db 100644 --- a/include/asm-arm/memory.h +++ b/include/asm-arm/memory.h | |||
| @@ -160,12 +160,25 @@ static inline __deprecated void *bus_to_virt(unsigned long x) | |||
| 160 | #define page_to_pfn(page) \ | 160 | #define page_to_pfn(page) \ |
| 161 | (( (page) - page_zone(page)->zone_mem_map) \ | 161 | (( (page) - page_zone(page)->zone_mem_map) \ |
| 162 | + page_zone(page)->zone_start_pfn) | 162 | + page_zone(page)->zone_start_pfn) |
| 163 | |||
| 163 | #define pfn_to_page(pfn) \ | 164 | #define pfn_to_page(pfn) \ |
| 164 | (PFN_TO_MAPBASE(pfn) + LOCAL_MAP_NR((pfn) << PAGE_SHIFT)) | 165 | (PFN_TO_MAPBASE(pfn) + LOCAL_MAP_NR((pfn) << PAGE_SHIFT)) |
| 165 | #define pfn_valid(pfn) (PFN_TO_NID(pfn) < MAX_NUMNODES) | 166 | |
| 167 | #define pfn_valid(pfn) \ | ||
| 168 | ({ \ | ||
| 169 | unsigned int nid = PFN_TO_NID(pfn); \ | ||
| 170 | int valid = nid < MAX_NUMNODES; \ | ||
| 171 | if (valid) { \ | ||
| 172 | pg_data_t *node = NODE_DATA(nid); \ | ||
| 173 | valid = (pfn - node->node_start_pfn) < \ | ||
| 174 | node->node_spanned_pages; \ | ||
| 175 | } \ | ||
| 176 | valid; \ | ||
| 177 | }) | ||
| 166 | 178 | ||
| 167 | #define virt_to_page(kaddr) \ | 179 | #define virt_to_page(kaddr) \ |
| 168 | (ADDR_TO_MAPBASE(kaddr) + LOCAL_MAP_NR(kaddr)) | 180 | (ADDR_TO_MAPBASE(kaddr) + LOCAL_MAP_NR(kaddr)) |
| 181 | |||
| 169 | #define virt_addr_valid(kaddr) (KVADDR_TO_NID(kaddr) < MAX_NUMNODES) | 182 | #define virt_addr_valid(kaddr) (KVADDR_TO_NID(kaddr) < MAX_NUMNODES) |
| 170 | 183 | ||
| 171 | /* | 184 | /* |
diff --git a/include/asm-arm/setup.h b/include/asm-arm/setup.h index adcbd79762bf..ea3ed2465233 100644 --- a/include/asm-arm/setup.h +++ b/include/asm-arm/setup.h | |||
| @@ -171,7 +171,7 @@ struct tagtable { | |||
| 171 | int (*parse)(const struct tag *); | 171 | int (*parse)(const struct tag *); |
| 172 | }; | 172 | }; |
| 173 | 173 | ||
| 174 | #define __tag __attribute_used__ __attribute__((__section__(".taglist"))) | 174 | #define __tag __attribute_used__ __attribute__((__section__(".taglist.init"))) |
| 175 | #define __tagtable(tag, fn) \ | 175 | #define __tagtable(tag, fn) \ |
| 176 | static struct tagtable __tagtable_##fn __tag = { tag, fn } | 176 | static struct tagtable __tagtable_##fn __tag = { tag, fn } |
| 177 | 177 | ||
| @@ -213,6 +213,6 @@ struct early_params { | |||
| 213 | 213 | ||
| 214 | #define __early_param(name,fn) \ | 214 | #define __early_param(name,fn) \ |
| 215 | static struct early_params __early_##fn __attribute_used__ \ | 215 | static struct early_params __early_##fn __attribute_used__ \ |
| 216 | __attribute__((__section__("__early_param"))) = { name, fn } | 216 | __attribute__((__section__(".early_param.init"))) = { name, fn } |
| 217 | 217 | ||
| 218 | #endif | 218 | #endif |
diff --git a/include/asm-arm26/futex.h b/include/asm-arm26/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-arm26/futex.h +++ b/include/asm-arm26/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-cris/futex.h b/include/asm-cris/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-cris/futex.h +++ b/include/asm-cris/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-frv/futex.h b/include/asm-frv/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-frv/futex.h +++ b/include/asm-frv/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-h8300/futex.h b/include/asm-h8300/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-h8300/futex.h +++ b/include/asm-h8300/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-i386/futex.h b/include/asm-i386/futex.h index 44b9db806474..e7a271d39309 100644 --- a/include/asm-i386/futex.h +++ b/include/asm-i386/futex.h | |||
| @@ -61,7 +61,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 61 | if (op == FUTEX_OP_SET) | 61 | if (op == FUTEX_OP_SET) |
| 62 | __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg); | 62 | __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg); |
| 63 | else { | 63 | else { |
| 64 | #ifndef CONFIG_X86_BSWAP | 64 | #if !defined(CONFIG_X86_BSWAP) && !defined(CONFIG_UML) |
| 65 | if (boot_cpu_data.x86 == 3) | 65 | if (boot_cpu_data.x86 == 3) |
| 66 | ret = -ENOSYS; | 66 | ret = -ENOSYS; |
| 67 | else | 67 | else |
diff --git a/include/asm-ia64/futex.h b/include/asm-ia64/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-ia64/futex.h +++ b/include/asm-ia64/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-ia64/ptrace.h b/include/asm-ia64/ptrace.h index fc544929ac34..a79d1a7ecc77 100644 --- a/include/asm-ia64/ptrace.h +++ b/include/asm-ia64/ptrace.h | |||
| @@ -57,7 +57,9 @@ | |||
| 57 | #include <linux/config.h> | 57 | #include <linux/config.h> |
| 58 | 58 | ||
| 59 | #include <asm/fpu.h> | 59 | #include <asm/fpu.h> |
| 60 | #ifndef ASM_OFFSETS_C | ||
| 60 | #include <asm/asm-offsets.h> | 61 | #include <asm/asm-offsets.h> |
| 62 | #endif | ||
| 61 | 63 | ||
| 62 | /* | 64 | /* |
| 63 | * Base-2 logarithm of number of pages to allocate per task structure | 65 | * Base-2 logarithm of number of pages to allocate per task structure |
diff --git a/include/asm-ia64/thread_info.h b/include/asm-ia64/thread_info.h index cf4a950a0f4f..171b2207bde4 100644 --- a/include/asm-ia64/thread_info.h +++ b/include/asm-ia64/thread_info.h | |||
| @@ -5,7 +5,9 @@ | |||
| 5 | #ifndef _ASM_IA64_THREAD_INFO_H | 5 | #ifndef _ASM_IA64_THREAD_INFO_H |
| 6 | #define _ASM_IA64_THREAD_INFO_H | 6 | #define _ASM_IA64_THREAD_INFO_H |
| 7 | 7 | ||
| 8 | #ifndef ASM_OFFSETS_C | ||
| 8 | #include <asm/asm-offsets.h> | 9 | #include <asm/asm-offsets.h> |
| 10 | #endif | ||
| 9 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
| 10 | #include <asm/ptrace.h> | 12 | #include <asm/ptrace.h> |
| 11 | 13 | ||
| @@ -51,9 +53,14 @@ struct thread_info { | |||
| 51 | }, \ | 53 | }, \ |
| 52 | } | 54 | } |
| 53 | 55 | ||
| 56 | #ifndef ASM_OFFSETS_C | ||
| 54 | /* how to get the thread information struct from C */ | 57 | /* how to get the thread information struct from C */ |
| 55 | #define current_thread_info() ((struct thread_info *) ((char *) current + IA64_TASK_SIZE)) | 58 | #define current_thread_info() ((struct thread_info *) ((char *) current + IA64_TASK_SIZE)) |
| 56 | #define alloc_thread_info(tsk) ((struct thread_info *) ((char *) (tsk) + IA64_TASK_SIZE)) | 59 | #define alloc_thread_info(tsk) ((struct thread_info *) ((char *) (tsk) + IA64_TASK_SIZE)) |
| 60 | #else | ||
| 61 | #define current_thread_info() ((struct thread_info *) 0) | ||
| 62 | #define alloc_thread_info(tsk) ((struct thread_info *) 0) | ||
| 63 | #endif | ||
| 57 | #define free_thread_info(ti) /* nothing */ | 64 | #define free_thread_info(ti) /* nothing */ |
| 58 | 65 | ||
| 59 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR | 66 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR |
diff --git a/include/asm-m32r/futex.h b/include/asm-m32r/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-m32r/futex.h +++ b/include/asm-m32r/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-m68k/futex.h b/include/asm-m68k/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-m68k/futex.h +++ b/include/asm-m68k/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-m68knommu/futex.h b/include/asm-m68knommu/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-m68knommu/futex.h +++ b/include/asm-m68knommu/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-parisc/futex.h b/include/asm-parisc/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-parisc/futex.h +++ b/include/asm-parisc/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-ppc/futex.h b/include/asm-ppc/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-ppc/futex.h +++ b/include/asm-ppc/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-ppc/irq.h b/include/asm-ppc/irq.h index 55752474d0d9..bd9674807f05 100644 --- a/include/asm-ppc/irq.h +++ b/include/asm-ppc/irq.h | |||
| @@ -138,6 +138,16 @@ irq_canonicalize(int irq) | |||
| 138 | #define SIU_IRQ7 (14) | 138 | #define SIU_IRQ7 (14) |
| 139 | #define SIU_LEVEL7 (15) | 139 | #define SIU_LEVEL7 (15) |
| 140 | 140 | ||
| 141 | #define MPC8xx_INT_FEC1 SIU_LEVEL1 | ||
| 142 | #define MPC8xx_INT_FEC2 SIU_LEVEL3 | ||
| 143 | |||
| 144 | #define MPC8xx_INT_SCC1 (CPM_IRQ_OFFSET + CPMVEC_SCC1) | ||
| 145 | #define MPC8xx_INT_SCC2 (CPM_IRQ_OFFSET + CPMVEC_SCC2) | ||
| 146 | #define MPC8xx_INT_SCC3 (CPM_IRQ_OFFSET + CPMVEC_SCC3) | ||
| 147 | #define MPC8xx_INT_SCC4 (CPM_IRQ_OFFSET + CPMVEC_SCC4) | ||
| 148 | #define MPC8xx_INT_SMC1 (CPM_IRQ_OFFSET + CPMVEC_SMC1) | ||
| 149 | #define MPC8xx_INT_SMC2 (CPM_IRQ_OFFSET + CPMVEC_SMC2) | ||
| 150 | |||
| 141 | /* The internal interrupts we can configure as we see fit. | 151 | /* The internal interrupts we can configure as we see fit. |
| 142 | * My personal preference is CPM at level 2, which puts it above the | 152 | * My personal preference is CPM at level 2, which puts it above the |
| 143 | * MBX PCI/ISA/IDE interrupts. | 153 | * MBX PCI/ISA/IDE interrupts. |
diff --git a/include/asm-ppc/mpc8xx.h b/include/asm-ppc/mpc8xx.h index dc8e59896050..208a2e11daee 100644 --- a/include/asm-ppc/mpc8xx.h +++ b/include/asm-ppc/mpc8xx.h | |||
| @@ -97,6 +97,22 @@ extern unsigned char __res[]; | |||
| 97 | 97 | ||
| 98 | struct pt_regs; | 98 | struct pt_regs; |
| 99 | 99 | ||
| 100 | enum ppc_sys_devices { | ||
| 101 | MPC8xx_CPM_FEC1, | ||
| 102 | MPC8xx_CPM_FEC2, | ||
| 103 | MPC8xx_CPM_I2C, | ||
| 104 | MPC8xx_CPM_SCC1, | ||
| 105 | MPC8xx_CPM_SCC2, | ||
| 106 | MPC8xx_CPM_SCC3, | ||
| 107 | MPC8xx_CPM_SCC4, | ||
| 108 | MPC8xx_CPM_SPI, | ||
| 109 | MPC8xx_CPM_MCC1, | ||
| 110 | MPC8xx_CPM_MCC2, | ||
| 111 | MPC8xx_CPM_SMC1, | ||
| 112 | MPC8xx_CPM_SMC2, | ||
| 113 | MPC8xx_CPM_USB, | ||
| 114 | }; | ||
| 115 | |||
| 100 | #endif /* !__ASSEMBLY__ */ | 116 | #endif /* !__ASSEMBLY__ */ |
| 101 | #endif /* CONFIG_8xx */ | 117 | #endif /* CONFIG_8xx */ |
| 102 | #endif /* __CONFIG_8xx_DEFS */ | 118 | #endif /* __CONFIG_8xx_DEFS */ |
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h index 048f7c8596ee..549f44843c5e 100644 --- a/include/asm-ppc/ppc_sys.h +++ b/include/asm-ppc/ppc_sys.h | |||
| @@ -27,6 +27,8 @@ | |||
| 27 | #include <asm/mpc83xx.h> | 27 | #include <asm/mpc83xx.h> |
| 28 | #elif defined(CONFIG_85xx) | 28 | #elif defined(CONFIG_85xx) |
| 29 | #include <asm/mpc85xx.h> | 29 | #include <asm/mpc85xx.h> |
| 30 | #elif defined(CONFIG_8xx) | ||
| 31 | #include <asm/mpc8xx.h> | ||
| 30 | #elif defined(CONFIG_PPC_MPC52xx) | 32 | #elif defined(CONFIG_PPC_MPC52xx) |
| 31 | #include <asm/mpc52xx.h> | 33 | #include <asm/mpc52xx.h> |
| 32 | #elif defined(CONFIG_MPC10X_BRIDGE) | 34 | #elif defined(CONFIG_MPC10X_BRIDGE) |
diff --git a/include/asm-ppc/tlbflush.h b/include/asm-ppc/tlbflush.h index 9850f53f54b0..9afee4ffc835 100644 --- a/include/asm-ppc/tlbflush.h +++ b/include/asm-ppc/tlbflush.h | |||
| @@ -72,7 +72,7 @@ static inline void flush_tlb_page(struct vm_area_struct *vma, | |||
| 72 | static inline void flush_tlb_page_nohash(struct vm_area_struct *vma, | 72 | static inline void flush_tlb_page_nohash(struct vm_area_struct *vma, |
| 73 | unsigned long vmaddr) | 73 | unsigned long vmaddr) |
| 74 | { _tlbie(vmaddr); } | 74 | { _tlbie(vmaddr); } |
| 75 | static inline void flush_tlb_range(struct mm_struct *mm, | 75 | static inline void flush_tlb_range(struct vm_area_struct *vma, |
| 76 | unsigned long start, unsigned long end) | 76 | unsigned long start, unsigned long end) |
| 77 | { __tlbia(); } | 77 | { __tlbia(); } |
| 78 | static inline void flush_tlb_kernel_range(unsigned long start, | 78 | static inline void flush_tlb_kernel_range(unsigned long start, |
diff --git a/include/asm-s390/futex.h b/include/asm-s390/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-s390/futex.h +++ b/include/asm-s390/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-sh/futex.h b/include/asm-sh/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-sh/futex.h +++ b/include/asm-sh/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-sh64/futex.h b/include/asm-sh64/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-sh64/futex.h +++ b/include/asm-sh64/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-sparc/futex.h b/include/asm-sparc/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-sparc/futex.h +++ b/include/asm-sparc/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-sparc64/cacheflush.h b/include/asm-sparc64/cacheflush.h index 51b26e81d828..ededd2659eab 100644 --- a/include/asm-sparc64/cacheflush.h +++ b/include/asm-sparc64/cacheflush.h | |||
| @@ -4,13 +4,6 @@ | |||
| 4 | #include <linux/config.h> | 4 | #include <linux/config.h> |
| 5 | #include <asm/page.h> | 5 | #include <asm/page.h> |
| 6 | 6 | ||
| 7 | /* Flushing for D-cache alias handling is only needed if | ||
| 8 | * the page size is smaller than 16K. | ||
| 9 | */ | ||
| 10 | #if PAGE_SHIFT < 14 | ||
| 11 | #define DCACHE_ALIASING_POSSIBLE | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #ifndef __ASSEMBLY__ | 7 | #ifndef __ASSEMBLY__ |
| 15 | 8 | ||
| 16 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
diff --git a/include/asm-sparc64/futex.h b/include/asm-sparc64/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-sparc64/futex.h +++ b/include/asm-sparc64/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-sparc64/ide.h b/include/asm-sparc64/ide.h index 4c1098474c73..c393f815b0be 100644 --- a/include/asm-sparc64/ide.h +++ b/include/asm-sparc64/ide.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
| 16 | #include <asm/spitfire.h> | 16 | #include <asm/spitfire.h> |
| 17 | #include <asm/cacheflush.h> | 17 | #include <asm/cacheflush.h> |
| 18 | #include <asm/page.h> | ||
| 18 | 19 | ||
| 19 | #ifndef MAX_HWIFS | 20 | #ifndef MAX_HWIFS |
| 20 | # ifdef CONFIG_BLK_DEV_IDEPCI | 21 | # ifdef CONFIG_BLK_DEV_IDEPCI |
diff --git a/include/asm-sparc64/page.h b/include/asm-sparc64/page.h index c9f8ef208ea5..7f8d764abc47 100644 --- a/include/asm-sparc64/page.h +++ b/include/asm-sparc64/page.h | |||
| @@ -21,6 +21,13 @@ | |||
| 21 | #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) | 21 | #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) |
| 22 | #define PAGE_MASK (~(PAGE_SIZE-1)) | 22 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
| 23 | 23 | ||
| 24 | /* Flushing for D-cache alias handling is only needed if | ||
| 25 | * the page size is smaller than 16K. | ||
| 26 | */ | ||
| 27 | #if PAGE_SHIFT < 14 | ||
| 28 | #define DCACHE_ALIASING_POSSIBLE | ||
| 29 | #endif | ||
| 30 | |||
| 24 | #ifdef __KERNEL__ | 31 | #ifdef __KERNEL__ |
| 25 | 32 | ||
| 26 | #ifndef __ASSEMBLY__ | 33 | #ifndef __ASSEMBLY__ |
diff --git a/include/asm-sparc64/pgalloc.h b/include/asm-sparc64/pgalloc.h index b9b1914aae63..a96067cca963 100644 --- a/include/asm-sparc64/pgalloc.h +++ b/include/asm-sparc64/pgalloc.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <asm/spitfire.h> | 10 | #include <asm/spitfire.h> |
| 11 | #include <asm/cpudata.h> | 11 | #include <asm/cpudata.h> |
| 12 | #include <asm/cacheflush.h> | 12 | #include <asm/cacheflush.h> |
| 13 | #include <asm/page.h> | ||
| 13 | 14 | ||
| 14 | /* Page table allocation/freeing. */ | 15 | /* Page table allocation/freeing. */ |
| 15 | #ifdef CONFIG_SMP | 16 | #ifdef CONFIG_SMP |
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h index a2b4f5ed4625..a297f6144f0f 100644 --- a/include/asm-sparc64/pgtable.h +++ b/include/asm-sparc64/pgtable.h | |||
| @@ -24,21 +24,23 @@ | |||
| 24 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
| 25 | #include <asm/const.h> | 25 | #include <asm/const.h> |
| 26 | 26 | ||
| 27 | /* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 16MB). | 27 | /* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 32MB). |
| 28 | * The page copy blockops use 0x1000000 to 0x18000000 (16MB --> 24MB). | 28 | * The page copy blockops can use 0x2000000 to 0x10000000. |
| 29 | * The PROM resides in an area spanning 0xf0000000 to 0x100000000. | 29 | * The PROM resides in an area spanning 0xf0000000 to 0x100000000. |
| 30 | * The vmalloc area spans 0x140000000 to 0x200000000. | 30 | * The vmalloc area spans 0x100000000 to 0x200000000. |
| 31 | * Since modules need to be in the lowest 32-bits of the address space, | ||
| 32 | * we place them right before the OBP area from 0x10000000 to 0xf0000000. | ||
| 31 | * There is a single static kernel PMD which maps from 0x0 to address | 33 | * There is a single static kernel PMD which maps from 0x0 to address |
| 32 | * 0x400000000. | 34 | * 0x400000000. |
| 33 | */ | 35 | */ |
| 34 | #define TLBTEMP_BASE _AC(0x0000000001000000,UL) | 36 | #define TLBTEMP_BASE _AC(0x0000000002000000,UL) |
| 35 | #define MODULES_VADDR _AC(0x0000000002000000,UL) | 37 | #define MODULES_VADDR _AC(0x0000000010000000,UL) |
| 36 | #define MODULES_LEN _AC(0x000000007e000000,UL) | 38 | #define MODULES_LEN _AC(0x00000000e0000000,UL) |
| 37 | #define MODULES_END _AC(0x0000000080000000,UL) | 39 | #define MODULES_END _AC(0x00000000f0000000,UL) |
| 38 | #define VMALLOC_START _AC(0x0000000140000000,UL) | ||
| 39 | #define VMALLOC_END _AC(0x0000000200000000,UL) | ||
| 40 | #define LOW_OBP_ADDRESS _AC(0x00000000f0000000,UL) | 40 | #define LOW_OBP_ADDRESS _AC(0x00000000f0000000,UL) |
| 41 | #define HI_OBP_ADDRESS _AC(0x0000000100000000,UL) | 41 | #define HI_OBP_ADDRESS _AC(0x0000000100000000,UL) |
| 42 | #define VMALLOC_START _AC(0x0000000100000000,UL) | ||
| 43 | #define VMALLOC_END _AC(0x0000000200000000,UL) | ||
| 42 | 44 | ||
| 43 | /* XXX All of this needs to be rethought so we can take advantage | 45 | /* XXX All of this needs to be rethought so we can take advantage |
| 44 | * XXX cheetah's full 64-bit virtual address space, ie. no more hole | 46 | * XXX cheetah's full 64-bit virtual address space, ie. no more hole |
diff --git a/include/asm-um/futex.h b/include/asm-um/futex.h index 2cac5ecd9d00..142ee2d8e0fd 100644 --- a/include/asm-um/futex.h +++ b/include/asm-um/futex.h | |||
| @@ -1,53 +1,12 @@ | |||
| 1 | #ifndef _ASM_FUTEX_H | 1 | #ifndef __UM_FUTEX_H |
| 2 | #define _ASM_FUTEX_H | 2 | #define __UM_FUTEX_H |
| 3 | |||
| 4 | #ifdef __KERNEL__ | ||
| 5 | 3 | ||
| 6 | #include <linux/futex.h> | 4 | #include <linux/futex.h> |
| 7 | #include <asm/errno.h> | 5 | #include <asm/errno.h> |
| 6 | #include <asm/system.h> | ||
| 7 | #include <asm/processor.h> | ||
| 8 | #include <asm/uaccess.h> | 8 | #include <asm/uaccess.h> |
| 9 | 9 | ||
| 10 | static inline int | 10 | #include "asm/arch/futex.h" |
| 11 | futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | ||
| 12 | { | ||
| 13 | int op = (encoded_op >> 28) & 7; | ||
| 14 | int cmp = (encoded_op >> 24) & 15; | ||
| 15 | int oparg = (encoded_op << 8) >> 20; | ||
| 16 | int cmparg = (encoded_op << 20) >> 20; | ||
| 17 | int oldval = 0, ret, tem; | ||
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | ||
| 19 | oparg = 1 << oparg; | ||
| 20 | |||
| 21 | if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) | ||
| 22 | return -EFAULT; | ||
| 23 | |||
| 24 | inc_preempt_count(); | ||
| 25 | |||
| 26 | switch (op) { | ||
| 27 | case FUTEX_OP_SET: | ||
| 28 | case FUTEX_OP_ADD: | ||
| 29 | case FUTEX_OP_OR: | ||
| 30 | case FUTEX_OP_ANDN: | ||
| 31 | case FUTEX_OP_XOR: | ||
| 32 | default: | ||
| 33 | ret = -ENOSYS; | ||
| 34 | } | ||
| 35 | 11 | ||
| 36 | dec_preempt_count(); | ||
| 37 | |||
| 38 | if (!ret) { | ||
| 39 | switch (cmp) { | ||
| 40 | case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; | ||
| 41 | case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; | ||
| 42 | case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; | ||
| 43 | case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; | ||
| 44 | case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; | ||
| 45 | case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; | ||
| 46 | default: ret = -ENOSYS; | ||
| 47 | } | ||
| 48 | } | ||
| 49 | return ret; | ||
| 50 | } | ||
| 51 | |||
| 52 | #endif | ||
| 53 | #endif | 12 | #endif |
diff --git a/include/asm-um/processor-generic.h b/include/asm-um/processor-generic.h index b2fc94fbc2d9..2d242360c3d6 100644 --- a/include/asm-um/processor-generic.h +++ b/include/asm-um/processor-generic.h | |||
| @@ -21,6 +21,7 @@ struct thread_struct { | |||
| 21 | * copy_thread) to mark that we are begin called from userspace (fork / | 21 | * copy_thread) to mark that we are begin called from userspace (fork / |
| 22 | * vfork / clone), and reset to 0 after. It is left to 0 when called | 22 | * vfork / clone), and reset to 0 after. It is left to 0 when called |
| 23 | * from kernelspace (i.e. kernel_thread() or fork_idle(), as of 2.6.11). */ | 23 | * from kernelspace (i.e. kernel_thread() or fork_idle(), as of 2.6.11). */ |
| 24 | struct task_struct *saved_task; | ||
| 24 | int forking; | 25 | int forking; |
| 25 | int nsyscalls; | 26 | int nsyscalls; |
| 26 | struct pt_regs regs; | 27 | struct pt_regs regs; |
diff --git a/include/asm-um/system-i386.h b/include/asm-um/system-i386.h index ea8381de3cc9..c436263e67ba 100644 --- a/include/asm-um/system-i386.h +++ b/include/asm-um/system-i386.h | |||
| @@ -3,6 +3,4 @@ | |||
| 3 | 3 | ||
| 4 | #include "asm/system-generic.h" | 4 | #include "asm/system-generic.h" |
| 5 | 5 | ||
| 6 | #define __HAVE_ARCH_CMPXCHG 1 | ||
| 7 | |||
| 8 | #endif | 6 | #endif |
diff --git a/include/asm-v850/futex.h b/include/asm-v850/futex.h index 2cac5ecd9d00..9feff4ce1424 100644 --- a/include/asm-v850/futex.h +++ b/include/asm-v850/futex.h | |||
| @@ -14,7 +14,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
| 14 | int cmp = (encoded_op >> 24) & 15; | 14 | int cmp = (encoded_op >> 24) & 15; |
| 15 | int oparg = (encoded_op << 8) >> 20; | 15 | int oparg = (encoded_op << 8) >> 20; |
| 16 | int cmparg = (encoded_op << 20) >> 20; | 16 | int cmparg = (encoded_op << 20) >> 20; |
| 17 | int oldval = 0, ret, tem; | 17 | int oldval = 0, ret; |
| 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | 18 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) |
| 19 | oparg = 1 << oparg; | 19 | oparg = 1 << oparg; |
| 20 | 20 | ||
diff --git a/include/asm-x86_64/desc.h b/include/asm-x86_64/desc.h index 594e610f4a1e..68ac3c62fe3d 100644 --- a/include/asm-x86_64/desc.h +++ b/include/asm-x86_64/desc.h | |||
| @@ -8,6 +8,8 @@ | |||
| 8 | #ifndef __ASSEMBLY__ | 8 | #ifndef __ASSEMBLY__ |
| 9 | 9 | ||
| 10 | #include <linux/string.h> | 10 | #include <linux/string.h> |
| 11 | #include <linux/smp.h> | ||
| 12 | |||
| 11 | #include <asm/segment.h> | 13 | #include <asm/segment.h> |
| 12 | #include <asm/mmu.h> | 14 | #include <asm/mmu.h> |
| 13 | 15 | ||
diff --git a/include/linux/byteorder/generic.h b/include/linux/byteorder/generic.h index 5fde6f4d6c1e..04bd756efc67 100644 --- a/include/linux/byteorder/generic.h +++ b/include/linux/byteorder/generic.h | |||
| @@ -5,6 +5,10 @@ | |||
| 5 | * linux/byteorder_generic.h | 5 | * linux/byteorder_generic.h |
| 6 | * Generic Byte-reordering support | 6 | * Generic Byte-reordering support |
| 7 | * | 7 | * |
| 8 | * The "... p" macros, like le64_to_cpup, can be used with pointers | ||
| 9 | * to unaligned data, but there will be a performance penalty on | ||
| 10 | * some architectures. Use get_unaligned for unaligned data. | ||
| 11 | * | ||
| 8 | * Francois-Rene Rideau <fare@tunes.org> 19970707 | 12 | * Francois-Rene Rideau <fare@tunes.org> 19970707 |
| 9 | * gathered all the good ideas from all asm-foo/byteorder.h into one file, | 13 | * gathered all the good ideas from all asm-foo/byteorder.h into one file, |
| 10 | * cleaned them up. | 14 | * cleaned them up. |
diff --git a/include/linux/dccp.h b/include/linux/dccp.h index 8bf4bacb5051..71fab4311e92 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h | |||
| @@ -4,16 +4,6 @@ | |||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <asm/byteorder.h> | 5 | #include <asm/byteorder.h> |
| 6 | 6 | ||
| 7 | /* Structure describing an Internet (DCCP) socket address. */ | ||
| 8 | struct sockaddr_dccp { | ||
| 9 | __u16 sdccp_family; /* Address family */ | ||
| 10 | __u16 sdccp_port; /* Port number */ | ||
| 11 | __u32 sdccp_addr; /* Internet address */ | ||
| 12 | __u32 sdccp_service; /* Service */ | ||
| 13 | /* Pad to size of `struct sockaddr': 16 bytes . */ | ||
| 14 | __u32 sdccp_pad; | ||
| 15 | }; | ||
| 16 | |||
| 17 | /** | 7 | /** |
| 18 | * struct dccp_hdr - generic part of DCCP packet header | 8 | * struct dccp_hdr - generic part of DCCP packet header |
| 19 | * | 9 | * |
| @@ -188,6 +178,11 @@ enum { | |||
| 188 | 178 | ||
| 189 | /* DCCP socket options */ | 179 | /* DCCP socket options */ |
| 190 | #define DCCP_SOCKOPT_PACKET_SIZE 1 | 180 | #define DCCP_SOCKOPT_PACKET_SIZE 1 |
| 181 | #define DCCP_SOCKOPT_SERVICE 2 | ||
| 182 | #define DCCP_SOCKOPT_CCID_RX_INFO 128 | ||
| 183 | #define DCCP_SOCKOPT_CCID_TX_INFO 192 | ||
| 184 | |||
| 185 | #define DCCP_SERVICE_LIST_MAX_LEN 32 | ||
| 191 | 186 | ||
| 192 | #ifdef __KERNEL__ | 187 | #ifdef __KERNEL__ |
| 193 | 188 | ||
| @@ -337,7 +332,8 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb) | |||
| 337 | */ | 332 | */ |
| 338 | struct dccp_options { | 333 | struct dccp_options { |
| 339 | __u64 dccpo_sequence_window; | 334 | __u64 dccpo_sequence_window; |
| 340 | __u8 dccpo_ccid; | 335 | __u8 dccpo_rx_ccid; |
| 336 | __u8 dccpo_tx_ccid; | ||
| 341 | __u8 dccpo_send_ack_vector; | 337 | __u8 dccpo_send_ack_vector; |
| 342 | __u8 dccpo_send_ndp_count; | 338 | __u8 dccpo_send_ndp_count; |
| 343 | }; | 339 | }; |
| @@ -360,14 +356,8 @@ static inline struct dccp_request_sock *dccp_rsk(const struct request_sock *req) | |||
| 360 | 356 | ||
| 361 | extern struct inet_timewait_death_row dccp_death_row; | 357 | extern struct inet_timewait_death_row dccp_death_row; |
| 362 | 358 | ||
| 363 | /* Read about the ECN nonce to see why it is 253 */ | ||
| 364 | #define DCCP_MAX_ACK_VECTOR_LEN 253 | ||
| 365 | |||
| 366 | struct dccp_options_received { | 359 | struct dccp_options_received { |
| 367 | u32 dccpor_ndp:24, | 360 | u32 dccpor_ndp; /* only 24 bits */ |
| 368 | dccpor_ack_vector_len:8; | ||
| 369 | u32 dccpor_ack_vector_idx:10; | ||
| 370 | /* 22 bits hole, try to pack */ | ||
| 371 | u32 dccpor_timestamp; | 361 | u32 dccpor_timestamp; |
| 372 | u32 dccpor_timestamp_echo; | 362 | u32 dccpor_timestamp_echo; |
| 373 | u32 dccpor_elapsed_time; | 363 | u32 dccpor_elapsed_time; |
| @@ -382,6 +372,27 @@ enum dccp_role { | |||
| 382 | DCCP_ROLE_SERVER, | 372 | DCCP_ROLE_SERVER, |
| 383 | }; | 373 | }; |
| 384 | 374 | ||
| 375 | struct dccp_service_list { | ||
| 376 | __u32 dccpsl_nr; | ||
| 377 | __u32 dccpsl_list[0]; | ||
| 378 | }; | ||
| 379 | |||
| 380 | #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) | ||
| 381 | |||
| 382 | static inline int dccp_list_has_service(const struct dccp_service_list *sl, | ||
| 383 | const u32 service) | ||
| 384 | { | ||
| 385 | if (likely(sl != NULL)) { | ||
| 386 | u32 i = sl->dccpsl_nr; | ||
| 387 | while (i--) | ||
| 388 | if (sl->dccpsl_list[i] == service) | ||
| 389 | return 1; | ||
| 390 | } | ||
| 391 | return 0; | ||
| 392 | } | ||
| 393 | |||
| 394 | struct dccp_ackvec; | ||
| 395 | |||
| 385 | /** | 396 | /** |
| 386 | * struct dccp_sock - DCCP socket state | 397 | * struct dccp_sock - DCCP socket state |
| 387 | * | 398 | * |
| @@ -402,7 +413,7 @@ enum dccp_role { | |||
| 402 | * @dccps_packet_size - Set thru setsockopt | 413 | * @dccps_packet_size - Set thru setsockopt |
| 403 | * @dccps_role - Role of this sock, one of %dccp_role | 414 | * @dccps_role - Role of this sock, one of %dccp_role |
| 404 | * @dccps_ndp_count - number of Non Data Packets since last data packet | 415 | * @dccps_ndp_count - number of Non Data Packets since last data packet |
| 405 | * @dccps_hc_rx_ackpkts - receiver half connection acked packets | 416 | * @dccps_hc_rx_ackvec - rx half connection ack vector |
| 406 | */ | 417 | */ |
| 407 | struct dccp_sock { | 418 | struct dccp_sock { |
| 408 | /* inet_connection_sock has to be the first member of dccp_sock */ | 419 | /* inet_connection_sock has to be the first member of dccp_sock */ |
| @@ -417,7 +428,8 @@ struct dccp_sock { | |||
| 417 | __u64 dccps_gss; | 428 | __u64 dccps_gss; |
| 418 | __u64 dccps_gsr; | 429 | __u64 dccps_gsr; |
| 419 | __u64 dccps_gar; | 430 | __u64 dccps_gar; |
| 420 | unsigned long dccps_service; | 431 | __u32 dccps_service; |
| 432 | struct dccp_service_list *dccps_service_list; | ||
| 421 | struct timeval dccps_timestamp_time; | 433 | struct timeval dccps_timestamp_time; |
| 422 | __u32 dccps_timestamp_echo; | 434 | __u32 dccps_timestamp_echo; |
| 423 | __u32 dccps_packet_size; | 435 | __u32 dccps_packet_size; |
| @@ -426,7 +438,7 @@ struct dccp_sock { | |||
| 426 | __u32 dccps_pmtu_cookie; | 438 | __u32 dccps_pmtu_cookie; |
| 427 | __u32 dccps_mss_cache; | 439 | __u32 dccps_mss_cache; |
| 428 | struct dccp_options dccps_options; | 440 | struct dccp_options dccps_options; |
| 429 | struct dccp_ackpkts *dccps_hc_rx_ackpkts; | 441 | struct dccp_ackvec *dccps_hc_rx_ackvec; |
| 430 | void *dccps_hc_rx_ccid_private; | 442 | void *dccps_hc_rx_ccid_private; |
| 431 | void *dccps_hc_tx_ccid_private; | 443 | void *dccps_hc_tx_ccid_private; |
| 432 | struct ccid *dccps_hc_rx_ccid; | 444 | struct ccid *dccps_hc_rx_ccid; |
| @@ -443,6 +455,11 @@ static inline struct dccp_sock *dccp_sk(const struct sock *sk) | |||
| 443 | return (struct dccp_sock *)sk; | 455 | return (struct dccp_sock *)sk; |
| 444 | } | 456 | } |
| 445 | 457 | ||
| 458 | static inline int dccp_service_not_initialized(const struct sock *sk) | ||
| 459 | { | ||
| 460 | return dccp_sk(sk)->dccps_service == DCCP_SERVICE_INVALID_VALUE; | ||
| 461 | } | ||
| 462 | |||
| 446 | static inline const char *dccp_role(const struct sock *sk) | 463 | static inline const char *dccp_role(const struct sock *sk) |
| 447 | { | 464 | { |
| 448 | switch (dccp_sk(sk)->dccps_role) { | 465 | switch (dccp_sk(sk)->dccps_role) { |
diff --git a/include/linux/device.h b/include/linux/device.h index 06e5d42f2c7b..95d607a48f06 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -317,6 +317,11 @@ dev_set_drvdata (struct device *dev, void *data) | |||
| 317 | dev->driver_data = data; | 317 | dev->driver_data = data; |
| 318 | } | 318 | } |
| 319 | 319 | ||
| 320 | static inline int device_is_registered(struct device *dev) | ||
| 321 | { | ||
| 322 | return klist_node_attached(&dev->knode_bus); | ||
| 323 | } | ||
| 324 | |||
| 320 | /* | 325 | /* |
| 321 | * High level routines for use by the bus drivers | 326 | * High level routines for use by the bus drivers |
| 322 | */ | 327 | */ |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index be35332b67e6..3d49a305bf88 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -230,11 +230,6 @@ struct i2c_adapter { | |||
| 230 | struct device dev; /* the adapter device */ | 230 | struct device dev; /* the adapter device */ |
| 231 | struct class_device class_dev; /* the class device */ | 231 | struct class_device class_dev; /* the class device */ |
| 232 | 232 | ||
| 233 | #ifdef CONFIG_PROC_FS | ||
| 234 | /* No need to set this when you initialize the adapter */ | ||
| 235 | int inode; | ||
| 236 | #endif /* def CONFIG_PROC_FS */ | ||
| 237 | |||
| 238 | int nr; | 233 | int nr; |
| 239 | struct list_head clients; | 234 | struct list_head clients; |
| 240 | struct list_head list; | 235 | struct list_head list; |
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 17d0c0d40b0e..eef0876d8307 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
| @@ -42,8 +42,8 @@ struct hlist_node; | |||
| 42 | struct vlan_ethhdr { | 42 | struct vlan_ethhdr { |
| 43 | unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ | 43 | unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ |
| 44 | unsigned char h_source[ETH_ALEN]; /* source ether addr */ | 44 | unsigned char h_source[ETH_ALEN]; /* source ether addr */ |
| 45 | unsigned short h_vlan_proto; /* Should always be 0x8100 */ | 45 | __be16 h_vlan_proto; /* Should always be 0x8100 */ |
| 46 | unsigned short h_vlan_TCI; /* Encapsulates priority and VLAN ID */ | 46 | __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */ |
| 47 | unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ | 47 | unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| @@ -55,8 +55,8 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) | |||
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | struct vlan_hdr { | 57 | struct vlan_hdr { |
| 58 | unsigned short h_vlan_TCI; /* Encapsulates priority and VLAN ID */ | 58 | __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */ |
| 59 | unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ | 59 | __be16 h_vlan_encapsulated_proto; /* packet type ID field (or len) */ |
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | #define VLAN_VID_MASK 0xfff | 62 | #define VLAN_VID_MASK 0xfff |
diff --git a/include/linux/joystick.h b/include/linux/joystick.h index 06b9af77eb7f..5fd20ddd7ae3 100644 --- a/include/linux/joystick.h +++ b/include/linux/joystick.h | |||
| @@ -111,29 +111,30 @@ struct js_corr { | |||
| 111 | #define JS_SET_ALL 8 | 111 | #define JS_SET_ALL 8 |
| 112 | 112 | ||
| 113 | struct JS_DATA_TYPE { | 113 | struct JS_DATA_TYPE { |
| 114 | __s32 buttons; | 114 | int32_t buttons; |
| 115 | __s32 x; | 115 | int32_t x; |
| 116 | __s32 y; | 116 | int32_t y; |
| 117 | }; | 117 | }; |
| 118 | 118 | ||
| 119 | struct JS_DATA_SAVE_TYPE_32 { | 119 | struct JS_DATA_SAVE_TYPE_32 { |
| 120 | __s32 JS_TIMEOUT; | 120 | int32_t JS_TIMEOUT; |
| 121 | __s32 BUSY; | 121 | int32_t BUSY; |
| 122 | __s32 JS_EXPIRETIME; | 122 | int32_t JS_EXPIRETIME; |
| 123 | __s32 JS_TIMELIMIT; | 123 | int32_t JS_TIMELIMIT; |
| 124 | struct JS_DATA_TYPE JS_SAVE; | 124 | struct JS_DATA_TYPE JS_SAVE; |
| 125 | struct JS_DATA_TYPE JS_CORR; | 125 | struct JS_DATA_TYPE JS_CORR; |
| 126 | }; | 126 | }; |
| 127 | 127 | ||
| 128 | struct JS_DATA_SAVE_TYPE_64 { | 128 | struct JS_DATA_SAVE_TYPE_64 { |
| 129 | __s32 JS_TIMEOUT; | 129 | int32_t JS_TIMEOUT; |
| 130 | __s32 BUSY; | 130 | int32_t BUSY; |
| 131 | __s64 JS_EXPIRETIME; | 131 | int64_t JS_EXPIRETIME; |
| 132 | __s64 JS_TIMELIMIT; | 132 | int64_t JS_TIMELIMIT; |
| 133 | struct JS_DATA_TYPE JS_SAVE; | 133 | struct JS_DATA_TYPE JS_SAVE; |
| 134 | struct JS_DATA_TYPE JS_CORR; | 134 | struct JS_DATA_TYPE JS_CORR; |
| 135 | }; | 135 | }; |
| 136 | 136 | ||
| 137 | #ifdef __KERNEL__ | ||
| 137 | #if BITS_PER_LONG == 64 | 138 | #if BITS_PER_LONG == 64 |
| 138 | #define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_64 | 139 | #define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_64 |
| 139 | #elif BITS_PER_LONG == 32 | 140 | #elif BITS_PER_LONG == 32 |
| @@ -141,5 +142,6 @@ struct JS_DATA_SAVE_TYPE_64 { | |||
| 141 | #else | 142 | #else |
| 142 | #error Unexpected BITS_PER_LONG | 143 | #error Unexpected BITS_PER_LONG |
| 143 | #endif | 144 | #endif |
| 145 | #endif | ||
| 144 | 146 | ||
| 145 | #endif /* _LINUX_JOYSTICK_H */ | 147 | #endif /* _LINUX_JOYSTICK_H */ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 82d7024f0765..097b3a3c693d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -136,6 +136,7 @@ extern unsigned int kobjsize(const void *objp); | |||
| 136 | #define VM_EXEC 0x00000004 | 136 | #define VM_EXEC 0x00000004 |
| 137 | #define VM_SHARED 0x00000008 | 137 | #define VM_SHARED 0x00000008 |
| 138 | 138 | ||
| 139 | /* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */ | ||
| 139 | #define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */ | 140 | #define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */ |
| 140 | #define VM_MAYWRITE 0x00000020 | 141 | #define VM_MAYWRITE 0x00000020 |
| 141 | #define VM_MAYEXEC 0x00000040 | 142 | #define VM_MAYEXEC 0x00000040 |
| @@ -350,7 +351,8 @@ static inline void put_page(struct page *page) | |||
| 350 | * only one copy in memory, at most, normally. | 351 | * only one copy in memory, at most, normally. |
| 351 | * | 352 | * |
| 352 | * For the non-reserved pages, page_count(page) denotes a reference count. | 353 | * For the non-reserved pages, page_count(page) denotes a reference count. |
| 353 | * page_count() == 0 means the page is free. | 354 | * page_count() == 0 means the page is free. page->lru is then used for |
| 355 | * freelist management in the buddy allocator. | ||
| 354 | * page_count() == 1 means the page is used for exactly one purpose | 356 | * page_count() == 1 means the page is used for exactly one purpose |
| 355 | * (e.g. a private data page of one process). | 357 | * (e.g. a private data page of one process). |
| 356 | * | 358 | * |
| @@ -376,10 +378,8 @@ static inline void put_page(struct page *page) | |||
| 376 | * attaches, plus 1 if `private' contains something, plus one for | 378 | * attaches, plus 1 if `private' contains something, plus one for |
| 377 | * the page cache itself. | 379 | * the page cache itself. |
| 378 | * | 380 | * |
| 379 | * All pages belonging to an inode are in these doubly linked lists: | 381 | * Instead of keeping dirty/clean pages in per address-space lists, we instead |
| 380 | * mapping->clean_pages, mapping->dirty_pages and mapping->locked_pages; | 382 | * now tag pages as dirty/under writeback in the radix tree. |
| 381 | * using the page->list list_head. These fields are also used for | ||
| 382 | * freelist managemet (when page_count()==0). | ||
| 383 | * | 383 | * |
| 384 | * There is also a per-mapping radix tree mapping index to the page | 384 | * There is also a per-mapping radix tree mapping index to the page |
| 385 | * in memory if present. The tree is rooted at mapping->root. | 385 | * in memory if present. The tree is rooted at mapping->root. |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack.h b/include/linux/netfilter_ipv4/ip_conntrack.h index 7e033e9271a8..bace72a76cc4 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack.h +++ b/include/linux/netfilter_ipv4/ip_conntrack.h | |||
| @@ -133,11 +133,13 @@ enum ip_conntrack_expect_events { | |||
| 133 | 133 | ||
| 134 | #include <linux/netfilter_ipv4/ip_conntrack_tcp.h> | 134 | #include <linux/netfilter_ipv4/ip_conntrack_tcp.h> |
| 135 | #include <linux/netfilter_ipv4/ip_conntrack_icmp.h> | 135 | #include <linux/netfilter_ipv4/ip_conntrack_icmp.h> |
| 136 | #include <linux/netfilter_ipv4/ip_conntrack_proto_gre.h> | ||
| 136 | #include <linux/netfilter_ipv4/ip_conntrack_sctp.h> | 137 | #include <linux/netfilter_ipv4/ip_conntrack_sctp.h> |
| 137 | 138 | ||
| 138 | /* per conntrack: protocol private data */ | 139 | /* per conntrack: protocol private data */ |
| 139 | union ip_conntrack_proto { | 140 | union ip_conntrack_proto { |
| 140 | /* insert conntrack proto private data here */ | 141 | /* insert conntrack proto private data here */ |
| 142 | struct ip_ct_gre gre; | ||
| 141 | struct ip_ct_sctp sctp; | 143 | struct ip_ct_sctp sctp; |
| 142 | struct ip_ct_tcp tcp; | 144 | struct ip_ct_tcp tcp; |
| 143 | struct ip_ct_icmp icmp; | 145 | struct ip_ct_icmp icmp; |
| @@ -148,6 +150,7 @@ union ip_conntrack_expect_proto { | |||
| 148 | }; | 150 | }; |
| 149 | 151 | ||
| 150 | /* Add protocol helper include file here */ | 152 | /* Add protocol helper include file here */ |
| 153 | #include <linux/netfilter_ipv4/ip_conntrack_pptp.h> | ||
| 151 | #include <linux/netfilter_ipv4/ip_conntrack_amanda.h> | 154 | #include <linux/netfilter_ipv4/ip_conntrack_amanda.h> |
| 152 | #include <linux/netfilter_ipv4/ip_conntrack_ftp.h> | 155 | #include <linux/netfilter_ipv4/ip_conntrack_ftp.h> |
| 153 | #include <linux/netfilter_ipv4/ip_conntrack_irc.h> | 156 | #include <linux/netfilter_ipv4/ip_conntrack_irc.h> |
| @@ -155,12 +158,20 @@ union ip_conntrack_expect_proto { | |||
| 155 | /* per conntrack: application helper private data */ | 158 | /* per conntrack: application helper private data */ |
| 156 | union ip_conntrack_help { | 159 | union ip_conntrack_help { |
| 157 | /* insert conntrack helper private data (master) here */ | 160 | /* insert conntrack helper private data (master) here */ |
| 161 | struct ip_ct_pptp_master ct_pptp_info; | ||
| 158 | struct ip_ct_ftp_master ct_ftp_info; | 162 | struct ip_ct_ftp_master ct_ftp_info; |
| 159 | struct ip_ct_irc_master ct_irc_info; | 163 | struct ip_ct_irc_master ct_irc_info; |
| 160 | }; | 164 | }; |
| 161 | 165 | ||
| 162 | #ifdef CONFIG_IP_NF_NAT_NEEDED | 166 | #ifdef CONFIG_IP_NF_NAT_NEEDED |
| 163 | #include <linux/netfilter_ipv4/ip_nat.h> | 167 | #include <linux/netfilter_ipv4/ip_nat.h> |
| 168 | #include <linux/netfilter_ipv4/ip_nat_pptp.h> | ||
| 169 | |||
| 170 | /* per conntrack: nat application helper private data */ | ||
| 171 | union ip_conntrack_nat_help { | ||
| 172 | /* insert nat helper private data here */ | ||
| 173 | struct ip_nat_pptp nat_pptp_info; | ||
| 174 | }; | ||
| 164 | #endif | 175 | #endif |
| 165 | 176 | ||
| 166 | #include <linux/types.h> | 177 | #include <linux/types.h> |
| @@ -223,6 +234,7 @@ struct ip_conntrack | |||
| 223 | #ifdef CONFIG_IP_NF_NAT_NEEDED | 234 | #ifdef CONFIG_IP_NF_NAT_NEEDED |
| 224 | struct { | 235 | struct { |
| 225 | struct ip_nat_info info; | 236 | struct ip_nat_info info; |
| 237 | union ip_conntrack_nat_help help; | ||
| 226 | #if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ | 238 | #if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ |
| 227 | defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) | 239 | defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) |
| 228 | int masq_index; | 240 | int masq_index; |
| @@ -372,7 +384,7 @@ extern struct ip_conntrack_expect * | |||
| 372 | __ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple); | 384 | __ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple); |
| 373 | 385 | ||
| 374 | extern struct ip_conntrack_expect * | 386 | extern struct ip_conntrack_expect * |
| 375 | ip_conntrack_expect_find_get(const struct ip_conntrack_tuple *tuple); | 387 | ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple); |
| 376 | 388 | ||
| 377 | extern struct ip_conntrack_tuple_hash * | 389 | extern struct ip_conntrack_tuple_hash * |
| 378 | __ip_conntrack_find(const struct ip_conntrack_tuple *tuple, | 390 | __ip_conntrack_find(const struct ip_conntrack_tuple *tuple, |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_pptp.h b/include/linux/netfilter_ipv4/ip_conntrack_pptp.h new file mode 100644 index 000000000000..389e3851d52f --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_conntrack_pptp.h | |||
| @@ -0,0 +1,332 @@ | |||
| 1 | /* PPTP constants and structs */ | ||
| 2 | #ifndef _CONNTRACK_PPTP_H | ||
| 3 | #define _CONNTRACK_PPTP_H | ||
| 4 | |||
| 5 | /* state of the control session */ | ||
| 6 | enum pptp_ctrlsess_state { | ||
| 7 | PPTP_SESSION_NONE, /* no session present */ | ||
| 8 | PPTP_SESSION_ERROR, /* some session error */ | ||
| 9 | PPTP_SESSION_STOPREQ, /* stop_sess request seen */ | ||
| 10 | PPTP_SESSION_REQUESTED, /* start_sess request seen */ | ||
| 11 | PPTP_SESSION_CONFIRMED, /* session established */ | ||
| 12 | }; | ||
| 13 | |||
| 14 | /* state of the call inside the control session */ | ||
| 15 | enum pptp_ctrlcall_state { | ||
| 16 | PPTP_CALL_NONE, | ||
| 17 | PPTP_CALL_ERROR, | ||
| 18 | PPTP_CALL_OUT_REQ, | ||
| 19 | PPTP_CALL_OUT_CONF, | ||
| 20 | PPTP_CALL_IN_REQ, | ||
| 21 | PPTP_CALL_IN_REP, | ||
| 22 | PPTP_CALL_IN_CONF, | ||
| 23 | PPTP_CALL_CLEAR_REQ, | ||
| 24 | }; | ||
| 25 | |||
| 26 | |||
| 27 | /* conntrack private data */ | ||
| 28 | struct ip_ct_pptp_master { | ||
| 29 | enum pptp_ctrlsess_state sstate; /* session state */ | ||
| 30 | |||
| 31 | /* everything below is going to be per-expectation in newnat, | ||
| 32 | * since there could be more than one call within one session */ | ||
| 33 | enum pptp_ctrlcall_state cstate; /* call state */ | ||
| 34 | u_int16_t pac_call_id; /* call id of PAC, host byte order */ | ||
| 35 | u_int16_t pns_call_id; /* call id of PNS, host byte order */ | ||
| 36 | |||
| 37 | /* in pre-2.6.11 this used to be per-expect. Now it is per-conntrack | ||
| 38 | * and therefore imposes a fixed limit on the number of maps */ | ||
| 39 | struct ip_ct_gre_keymap *keymap_orig, *keymap_reply; | ||
| 40 | }; | ||
| 41 | |||
| 42 | /* conntrack_expect private member */ | ||
| 43 | struct ip_ct_pptp_expect { | ||
| 44 | enum pptp_ctrlcall_state cstate; /* call state */ | ||
| 45 | u_int16_t pac_call_id; /* call id of PAC */ | ||
| 46 | u_int16_t pns_call_id; /* call id of PNS */ | ||
| 47 | }; | ||
| 48 | |||
| 49 | |||
| 50 | #ifdef __KERNEL__ | ||
| 51 | |||
| 52 | #define IP_CONNTR_PPTP PPTP_CONTROL_PORT | ||
| 53 | |||
| 54 | #define PPTP_CONTROL_PORT 1723 | ||
| 55 | |||
| 56 | #define PPTP_PACKET_CONTROL 1 | ||
| 57 | #define PPTP_PACKET_MGMT 2 | ||
| 58 | |||
| 59 | #define PPTP_MAGIC_COOKIE 0x1a2b3c4d | ||
| 60 | |||
| 61 | struct pptp_pkt_hdr { | ||
| 62 | __u16 packetLength; | ||
| 63 | __u16 packetType; | ||
| 64 | __u32 magicCookie; | ||
| 65 | }; | ||
| 66 | |||
| 67 | /* PptpControlMessageType values */ | ||
| 68 | #define PPTP_START_SESSION_REQUEST 1 | ||
| 69 | #define PPTP_START_SESSION_REPLY 2 | ||
| 70 | #define PPTP_STOP_SESSION_REQUEST 3 | ||
| 71 | #define PPTP_STOP_SESSION_REPLY 4 | ||
| 72 | #define PPTP_ECHO_REQUEST 5 | ||
| 73 | #define PPTP_ECHO_REPLY 6 | ||
| 74 | #define PPTP_OUT_CALL_REQUEST 7 | ||
| 75 | #define PPTP_OUT_CALL_REPLY 8 | ||
| 76 | #define PPTP_IN_CALL_REQUEST 9 | ||
| 77 | #define PPTP_IN_CALL_REPLY 10 | ||
| 78 | #define PPTP_IN_CALL_CONNECT 11 | ||
| 79 | #define PPTP_CALL_CLEAR_REQUEST 12 | ||
| 80 | #define PPTP_CALL_DISCONNECT_NOTIFY 13 | ||
| 81 | #define PPTP_WAN_ERROR_NOTIFY 14 | ||
| 82 | #define PPTP_SET_LINK_INFO 15 | ||
| 83 | |||
| 84 | #define PPTP_MSG_MAX 15 | ||
| 85 | |||
| 86 | /* PptpGeneralError values */ | ||
| 87 | #define PPTP_ERROR_CODE_NONE 0 | ||
| 88 | #define PPTP_NOT_CONNECTED 1 | ||
| 89 | #define PPTP_BAD_FORMAT 2 | ||
| 90 | #define PPTP_BAD_VALUE 3 | ||
| 91 | #define PPTP_NO_RESOURCE 4 | ||
| 92 | #define PPTP_BAD_CALLID 5 | ||
| 93 | #define PPTP_REMOVE_DEVICE_ERROR 6 | ||
| 94 | |||
| 95 | struct PptpControlHeader { | ||
| 96 | __u16 messageType; | ||
| 97 | __u16 reserved; | ||
| 98 | }; | ||
| 99 | |||
| 100 | /* FramingCapability Bitmap Values */ | ||
| 101 | #define PPTP_FRAME_CAP_ASYNC 0x1 | ||
| 102 | #define PPTP_FRAME_CAP_SYNC 0x2 | ||
| 103 | |||
| 104 | /* BearerCapability Bitmap Values */ | ||
| 105 | #define PPTP_BEARER_CAP_ANALOG 0x1 | ||
| 106 | #define PPTP_BEARER_CAP_DIGITAL 0x2 | ||
| 107 | |||
| 108 | struct PptpStartSessionRequest { | ||
| 109 | __u16 protocolVersion; | ||
| 110 | __u8 reserved1; | ||
| 111 | __u8 reserved2; | ||
| 112 | __u32 framingCapability; | ||
| 113 | __u32 bearerCapability; | ||
| 114 | __u16 maxChannels; | ||
| 115 | __u16 firmwareRevision; | ||
| 116 | __u8 hostName[64]; | ||
| 117 | __u8 vendorString[64]; | ||
| 118 | }; | ||
| 119 | |||
| 120 | /* PptpStartSessionResultCode Values */ | ||
| 121 | #define PPTP_START_OK 1 | ||
| 122 | #define PPTP_START_GENERAL_ERROR 2 | ||
| 123 | #define PPTP_START_ALREADY_CONNECTED 3 | ||
| 124 | #define PPTP_START_NOT_AUTHORIZED 4 | ||
| 125 | #define PPTP_START_UNKNOWN_PROTOCOL 5 | ||
| 126 | |||
| 127 | struct PptpStartSessionReply { | ||
| 128 | __u16 protocolVersion; | ||
| 129 | __u8 resultCode; | ||
| 130 | __u8 generalErrorCode; | ||
| 131 | __u32 framingCapability; | ||
| 132 | __u32 bearerCapability; | ||
| 133 | __u16 maxChannels; | ||
| 134 | __u16 firmwareRevision; | ||
| 135 | __u8 hostName[64]; | ||
| 136 | __u8 vendorString[64]; | ||
| 137 | }; | ||
| 138 | |||
| 139 | /* PptpStopReasons */ | ||
| 140 | #define PPTP_STOP_NONE 1 | ||
| 141 | #define PPTP_STOP_PROTOCOL 2 | ||
| 142 | #define PPTP_STOP_LOCAL_SHUTDOWN 3 | ||
| 143 | |||
| 144 | struct PptpStopSessionRequest { | ||
| 145 | __u8 reason; | ||
| 146 | }; | ||
| 147 | |||
| 148 | /* PptpStopSessionResultCode */ | ||
| 149 | #define PPTP_STOP_OK 1 | ||
| 150 | #define PPTP_STOP_GENERAL_ERROR 2 | ||
| 151 | |||
| 152 | struct PptpStopSessionReply { | ||
| 153 | __u8 resultCode; | ||
| 154 | __u8 generalErrorCode; | ||
| 155 | }; | ||
| 156 | |||
| 157 | struct PptpEchoRequest { | ||
| 158 | __u32 identNumber; | ||
| 159 | }; | ||
| 160 | |||
| 161 | /* PptpEchoReplyResultCode */ | ||
| 162 | #define PPTP_ECHO_OK 1 | ||
| 163 | #define PPTP_ECHO_GENERAL_ERROR 2 | ||
| 164 | |||
| 165 | struct PptpEchoReply { | ||
| 166 | __u32 identNumber; | ||
| 167 | __u8 resultCode; | ||
| 168 | __u8 generalErrorCode; | ||
| 169 | __u16 reserved; | ||
| 170 | }; | ||
| 171 | |||
| 172 | /* PptpFramingType */ | ||
| 173 | #define PPTP_ASYNC_FRAMING 1 | ||
| 174 | #define PPTP_SYNC_FRAMING 2 | ||
| 175 | #define PPTP_DONT_CARE_FRAMING 3 | ||
| 176 | |||
| 177 | /* PptpCallBearerType */ | ||
| 178 | #define PPTP_ANALOG_TYPE 1 | ||
| 179 | #define PPTP_DIGITAL_TYPE 2 | ||
| 180 | #define PPTP_DONT_CARE_BEARER_TYPE 3 | ||
| 181 | |||
| 182 | struct PptpOutCallRequest { | ||
| 183 | __u16 callID; | ||
| 184 | __u16 callSerialNumber; | ||
| 185 | __u32 minBPS; | ||
| 186 | __u32 maxBPS; | ||
| 187 | __u32 bearerType; | ||
| 188 | __u32 framingType; | ||
| 189 | __u16 packetWindow; | ||
| 190 | __u16 packetProcDelay; | ||
| 191 | __u16 reserved1; | ||
| 192 | __u16 phoneNumberLength; | ||
| 193 | __u16 reserved2; | ||
| 194 | __u8 phoneNumber[64]; | ||
| 195 | __u8 subAddress[64]; | ||
| 196 | }; | ||
| 197 | |||
| 198 | /* PptpCallResultCode */ | ||
| 199 | #define PPTP_OUTCALL_CONNECT 1 | ||
| 200 | #define PPTP_OUTCALL_GENERAL_ERROR 2 | ||
| 201 | #define PPTP_OUTCALL_NO_CARRIER 3 | ||
| 202 | #define PPTP_OUTCALL_BUSY 4 | ||
| 203 | #define PPTP_OUTCALL_NO_DIAL_TONE 5 | ||
| 204 | #define PPTP_OUTCALL_TIMEOUT 6 | ||
| 205 | #define PPTP_OUTCALL_DONT_ACCEPT 7 | ||
| 206 | |||
| 207 | struct PptpOutCallReply { | ||
| 208 | __u16 callID; | ||
| 209 | __u16 peersCallID; | ||
| 210 | __u8 resultCode; | ||
| 211 | __u8 generalErrorCode; | ||
| 212 | __u16 causeCode; | ||
| 213 | __u32 connectSpeed; | ||
| 214 | __u16 packetWindow; | ||
| 215 | __u16 packetProcDelay; | ||
| 216 | __u32 physChannelID; | ||
| 217 | }; | ||
| 218 | |||
| 219 | struct PptpInCallRequest { | ||
| 220 | __u16 callID; | ||
| 221 | __u16 callSerialNumber; | ||
| 222 | __u32 callBearerType; | ||
| 223 | __u32 physChannelID; | ||
| 224 | __u16 dialedNumberLength; | ||
| 225 | __u16 dialingNumberLength; | ||
| 226 | __u8 dialedNumber[64]; | ||
| 227 | __u8 dialingNumber[64]; | ||
| 228 | __u8 subAddress[64]; | ||
| 229 | }; | ||
| 230 | |||
| 231 | /* PptpInCallResultCode */ | ||
| 232 | #define PPTP_INCALL_ACCEPT 1 | ||
| 233 | #define PPTP_INCALL_GENERAL_ERROR 2 | ||
| 234 | #define PPTP_INCALL_DONT_ACCEPT 3 | ||
| 235 | |||
| 236 | struct PptpInCallReply { | ||
| 237 | __u16 callID; | ||
| 238 | __u16 peersCallID; | ||
| 239 | __u8 resultCode; | ||
| 240 | __u8 generalErrorCode; | ||
| 241 | __u16 packetWindow; | ||
| 242 | __u16 packetProcDelay; | ||
| 243 | __u16 reserved; | ||
| 244 | }; | ||
| 245 | |||
| 246 | struct PptpInCallConnected { | ||
| 247 | __u16 peersCallID; | ||
| 248 | __u16 reserved; | ||
| 249 | __u32 connectSpeed; | ||
| 250 | __u16 packetWindow; | ||
| 251 | __u16 packetProcDelay; | ||
| 252 | __u32 callFramingType; | ||
| 253 | }; | ||
| 254 | |||
| 255 | struct PptpClearCallRequest { | ||
| 256 | __u16 callID; | ||
| 257 | __u16 reserved; | ||
| 258 | }; | ||
| 259 | |||
| 260 | struct PptpCallDisconnectNotify { | ||
| 261 | __u16 callID; | ||
| 262 | __u8 resultCode; | ||
| 263 | __u8 generalErrorCode; | ||
| 264 | __u16 causeCode; | ||
| 265 | __u16 reserved; | ||
| 266 | __u8 callStatistics[128]; | ||
| 267 | }; | ||
| 268 | |||
| 269 | struct PptpWanErrorNotify { | ||
| 270 | __u16 peersCallID; | ||
| 271 | __u16 reserved; | ||
| 272 | __u32 crcErrors; | ||
| 273 | __u32 framingErrors; | ||
| 274 | __u32 hardwareOverRuns; | ||
| 275 | __u32 bufferOverRuns; | ||
| 276 | __u32 timeoutErrors; | ||
| 277 | __u32 alignmentErrors; | ||
| 278 | }; | ||
| 279 | |||
| 280 | struct PptpSetLinkInfo { | ||
| 281 | __u16 peersCallID; | ||
| 282 | __u16 reserved; | ||
| 283 | __u32 sendAccm; | ||
| 284 | __u32 recvAccm; | ||
| 285 | }; | ||
| 286 | |||
| 287 | |||
| 288 | struct pptp_priv_data { | ||
| 289 | __u16 call_id; | ||
| 290 | __u16 mcall_id; | ||
| 291 | __u16 pcall_id; | ||
| 292 | }; | ||
| 293 | |||
| 294 | union pptp_ctrl_union { | ||
| 295 | struct PptpStartSessionRequest sreq; | ||
| 296 | struct PptpStartSessionReply srep; | ||
| 297 | struct PptpStopSessionRequest streq; | ||
| 298 | struct PptpStopSessionReply strep; | ||
| 299 | struct PptpOutCallRequest ocreq; | ||
| 300 | struct PptpOutCallReply ocack; | ||
| 301 | struct PptpInCallRequest icreq; | ||
| 302 | struct PptpInCallReply icack; | ||
| 303 | struct PptpInCallConnected iccon; | ||
| 304 | struct PptpClearCallRequest clrreq; | ||
| 305 | struct PptpCallDisconnectNotify disc; | ||
| 306 | struct PptpWanErrorNotify wanerr; | ||
| 307 | struct PptpSetLinkInfo setlink; | ||
| 308 | }; | ||
| 309 | |||
| 310 | extern int | ||
| 311 | (*ip_nat_pptp_hook_outbound)(struct sk_buff **pskb, | ||
| 312 | struct ip_conntrack *ct, | ||
| 313 | enum ip_conntrack_info ctinfo, | ||
| 314 | struct PptpControlHeader *ctlh, | ||
| 315 | union pptp_ctrl_union *pptpReq); | ||
| 316 | |||
| 317 | extern int | ||
| 318 | (*ip_nat_pptp_hook_inbound)(struct sk_buff **pskb, | ||
| 319 | struct ip_conntrack *ct, | ||
| 320 | enum ip_conntrack_info ctinfo, | ||
| 321 | struct PptpControlHeader *ctlh, | ||
| 322 | union pptp_ctrl_union *pptpReq); | ||
| 323 | |||
| 324 | extern int | ||
| 325 | (*ip_nat_pptp_hook_exp_gre)(struct ip_conntrack_expect *exp_orig, | ||
| 326 | struct ip_conntrack_expect *exp_reply); | ||
| 327 | |||
| 328 | extern void | ||
| 329 | (*ip_nat_pptp_hook_expectfn)(struct ip_conntrack *ct, | ||
| 330 | struct ip_conntrack_expect *exp); | ||
| 331 | #endif /* __KERNEL__ */ | ||
| 332 | #endif /* _CONNTRACK_PPTP_H */ | ||
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h b/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h new file mode 100644 index 000000000000..8d090ef82f5f --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | #ifndef _CONNTRACK_PROTO_GRE_H | ||
| 2 | #define _CONNTRACK_PROTO_GRE_H | ||
| 3 | #include <asm/byteorder.h> | ||
| 4 | |||
| 5 | /* GRE PROTOCOL HEADER */ | ||
| 6 | |||
| 7 | /* GRE Version field */ | ||
| 8 | #define GRE_VERSION_1701 0x0 | ||
| 9 | #define GRE_VERSION_PPTP 0x1 | ||
| 10 | |||
| 11 | /* GRE Protocol field */ | ||
| 12 | #define GRE_PROTOCOL_PPTP 0x880B | ||
| 13 | |||
| 14 | /* GRE Flags */ | ||
| 15 | #define GRE_FLAG_C 0x80 | ||
| 16 | #define GRE_FLAG_R 0x40 | ||
| 17 | #define GRE_FLAG_K 0x20 | ||
| 18 | #define GRE_FLAG_S 0x10 | ||
| 19 | #define GRE_FLAG_A 0x80 | ||
| 20 | |||
| 21 | #define GRE_IS_C(f) ((f)&GRE_FLAG_C) | ||
| 22 | #define GRE_IS_R(f) ((f)&GRE_FLAG_R) | ||
| 23 | #define GRE_IS_K(f) ((f)&GRE_FLAG_K) | ||
| 24 | #define GRE_IS_S(f) ((f)&GRE_FLAG_S) | ||
| 25 | #define GRE_IS_A(f) ((f)&GRE_FLAG_A) | ||
| 26 | |||
| 27 | /* GRE is a mess: Four different standards */ | ||
| 28 | struct gre_hdr { | ||
| 29 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
| 30 | __u16 rec:3, | ||
| 31 | srr:1, | ||
| 32 | seq:1, | ||
| 33 | key:1, | ||
| 34 | routing:1, | ||
| 35 | csum:1, | ||
| 36 | version:3, | ||
| 37 | reserved:4, | ||
| 38 | ack:1; | ||
| 39 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
| 40 | __u16 csum:1, | ||
| 41 | routing:1, | ||
| 42 | key:1, | ||
| 43 | seq:1, | ||
| 44 | srr:1, | ||
| 45 | rec:3, | ||
| 46 | ack:1, | ||
| 47 | reserved:4, | ||
| 48 | version:3; | ||
| 49 | #else | ||
| 50 | #error "Adjust your <asm/byteorder.h> defines" | ||
| 51 | #endif | ||
| 52 | __u16 protocol; | ||
| 53 | }; | ||
| 54 | |||
| 55 | /* modified GRE header for PPTP */ | ||
| 56 | struct gre_hdr_pptp { | ||
| 57 | __u8 flags; /* bitfield */ | ||
| 58 | __u8 version; /* should be GRE_VERSION_PPTP */ | ||
| 59 | __u16 protocol; /* should be GRE_PROTOCOL_PPTP */ | ||
| 60 | __u16 payload_len; /* size of ppp payload, not inc. gre header */ | ||
| 61 | __u16 call_id; /* peer's call_id for this session */ | ||
| 62 | __u32 seq; /* sequence number. Present if S==1 */ | ||
| 63 | __u32 ack; /* seq number of highest packet recieved by */ | ||
| 64 | /* sender in this session */ | ||
| 65 | }; | ||
| 66 | |||
| 67 | |||
| 68 | /* this is part of ip_conntrack */ | ||
| 69 | struct ip_ct_gre { | ||
| 70 | unsigned int stream_timeout; | ||
| 71 | unsigned int timeout; | ||
| 72 | }; | ||
| 73 | |||
| 74 | #ifdef __KERNEL__ | ||
| 75 | struct ip_conntrack_expect; | ||
| 76 | struct ip_conntrack; | ||
| 77 | |||
| 78 | /* structure for original <-> reply keymap */ | ||
| 79 | struct ip_ct_gre_keymap { | ||
| 80 | struct list_head list; | ||
| 81 | |||
| 82 | struct ip_conntrack_tuple tuple; | ||
| 83 | }; | ||
| 84 | |||
| 85 | /* add new tuple->key_reply pair to keymap */ | ||
| 86 | int ip_ct_gre_keymap_add(struct ip_conntrack *ct, | ||
| 87 | struct ip_conntrack_tuple *t, | ||
| 88 | int reply); | ||
| 89 | |||
| 90 | /* delete keymap entries */ | ||
| 91 | void ip_ct_gre_keymap_destroy(struct ip_conntrack *ct); | ||
| 92 | |||
| 93 | |||
| 94 | /* get pointer to gre key, if present */ | ||
| 95 | static inline u_int32_t *gre_key(struct gre_hdr *greh) | ||
| 96 | { | ||
| 97 | if (!greh->key) | ||
| 98 | return NULL; | ||
| 99 | if (greh->csum || greh->routing) | ||
| 100 | return (u_int32_t *) (greh+sizeof(*greh)+4); | ||
| 101 | return (u_int32_t *) (greh+sizeof(*greh)); | ||
| 102 | } | ||
| 103 | |||
| 104 | /* get pointer ot gre csum, if present */ | ||
| 105 | static inline u_int16_t *gre_csum(struct gre_hdr *greh) | ||
| 106 | { | ||
| 107 | if (!greh->csum) | ||
| 108 | return NULL; | ||
| 109 | return (u_int16_t *) (greh+sizeof(*greh)); | ||
| 110 | } | ||
| 111 | |||
| 112 | #endif /* __KERNEL__ */ | ||
| 113 | |||
| 114 | #endif /* _CONNTRACK_PROTO_GRE_H */ | ||
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_tuple.h b/include/linux/netfilter_ipv4/ip_conntrack_tuple.h index c33f0b5e0d0a..14dc0f7b6556 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack_tuple.h +++ b/include/linux/netfilter_ipv4/ip_conntrack_tuple.h | |||
| @@ -28,6 +28,9 @@ union ip_conntrack_manip_proto | |||
| 28 | struct { | 28 | struct { |
| 29 | u_int16_t port; | 29 | u_int16_t port; |
| 30 | } sctp; | 30 | } sctp; |
| 31 | struct { | ||
| 32 | u_int16_t key; /* key is 32bit, pptp only uses 16 */ | ||
| 33 | } gre; | ||
| 31 | }; | 34 | }; |
| 32 | 35 | ||
| 33 | /* The manipulable part of the tuple. */ | 36 | /* The manipulable part of the tuple. */ |
| @@ -61,6 +64,10 @@ struct ip_conntrack_tuple | |||
| 61 | struct { | 64 | struct { |
| 62 | u_int16_t port; | 65 | u_int16_t port; |
| 63 | } sctp; | 66 | } sctp; |
| 67 | struct { | ||
| 68 | u_int16_t key; /* key is 32bit, | ||
| 69 | * pptp only uses 16 */ | ||
| 70 | } gre; | ||
| 64 | } u; | 71 | } u; |
| 65 | 72 | ||
| 66 | /* The protocol. */ | 73 | /* The protocol. */ |
diff --git a/include/linux/netfilter_ipv4/ip_nat_pptp.h b/include/linux/netfilter_ipv4/ip_nat_pptp.h new file mode 100644 index 000000000000..eaf66c2e8f93 --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_nat_pptp.h | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | /* PPTP constants and structs */ | ||
| 2 | #ifndef _NAT_PPTP_H | ||
| 3 | #define _NAT_PPTP_H | ||
| 4 | |||
| 5 | /* conntrack private data */ | ||
| 6 | struct ip_nat_pptp { | ||
| 7 | u_int16_t pns_call_id; /* NAT'ed PNS call id */ | ||
| 8 | u_int16_t pac_call_id; /* NAT'ed PAC call id */ | ||
| 9 | }; | ||
| 10 | |||
| 11 | #endif /* _NAT_PPTP_H */ | ||
diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h index 58c72a52dc65..59f70b34e029 100644 --- a/include/linux/netfilter_ipv6/ip6_tables.h +++ b/include/linux/netfilter_ipv6/ip6_tables.h | |||
| @@ -455,6 +455,9 @@ extern unsigned int ip6t_do_table(struct sk_buff **pskb, | |||
| 455 | 455 | ||
| 456 | /* Check for an extension */ | 456 | /* Check for an extension */ |
| 457 | extern int ip6t_ext_hdr(u8 nexthdr); | 457 | extern int ip6t_ext_hdr(u8 nexthdr); |
| 458 | /* find specified header and get offset to it */ | ||
| 459 | extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset, | ||
| 460 | u8 target); | ||
| 458 | 461 | ||
| 459 | #define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1)) | 462 | #define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1)) |
| 460 | 463 | ||
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 7bbd25970c9e..bdebdc564506 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #define NETLINK_IP6_FW 13 | 20 | #define NETLINK_IP6_FW 13 |
| 21 | #define NETLINK_DNRTMSG 14 /* DECnet routing messages */ | 21 | #define NETLINK_DNRTMSG 14 /* DECnet routing messages */ |
| 22 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ | 22 | #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ |
| 23 | #define NETLINK_GENERIC 16 | ||
| 23 | 24 | ||
| 24 | #define MAX_LINKS 32 | 25 | #define MAX_LINKS 32 |
| 25 | 26 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index cb414ea42f02..b86a4b77007e 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -491,6 +491,7 @@ | |||
| 491 | #define PCI_DEVICE_ID_AMI_MEGARAID2 0x9060 | 491 | #define PCI_DEVICE_ID_AMI_MEGARAID2 0x9060 |
| 492 | 492 | ||
| 493 | #define PCI_VENDOR_ID_AMD 0x1022 | 493 | #define PCI_VENDOR_ID_AMD 0x1022 |
| 494 | #define PCI_DEVICE_ID_AMD_K8_NB 0x1100 | ||
| 494 | #define PCI_DEVICE_ID_AMD_LANCE 0x2000 | 495 | #define PCI_DEVICE_ID_AMD_LANCE 0x2000 |
| 495 | #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 | 496 | #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 |
| 496 | #define PCI_DEVICE_ID_AMD_SCSI 0x2020 | 497 | #define PCI_DEVICE_ID_AMD_SCSI 0x2020 |
| @@ -1356,7 +1357,7 @@ | |||
| 1356 | #define PCI_DEVICE_ID_RME_DIGI96 0x3fc0 | 1357 | #define PCI_DEVICE_ID_RME_DIGI96 0x3fc0 |
| 1357 | #define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1 | 1358 | #define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1 |
| 1358 | #define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2 | 1359 | #define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2 |
| 1359 | #define PCI_DEVICE_IDRME__DIGI96_8_PAD_OR_PST 0x3fc3 | 1360 | #define PCI_DEVICE_ID_RME_DIGI96_8_PAD_OR_PST 0x3fc3 |
| 1360 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL 0x3fc4 | 1361 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL 0x3fc4 |
| 1361 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5 | 1362 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5 |
| 1362 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6 | 1363 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6 |
| @@ -2253,6 +2254,9 @@ | |||
| 2253 | 2254 | ||
| 2254 | #define PCI_VENDOR_ID_INFINICON 0x1820 | 2255 | #define PCI_VENDOR_ID_INFINICON 0x1820 |
| 2255 | 2256 | ||
| 2257 | #define PCI_VENDOR_ID_SITECOM 0x182d | ||
| 2258 | #define PCI_DEVICE_ID_SITECOM_DC105V2 0x3069 | ||
| 2259 | |||
| 2256 | #define PCI_VENDOR_ID_TOPSPIN 0x1867 | 2260 | #define PCI_VENDOR_ID_TOPSPIN 0x1867 |
| 2257 | 2261 | ||
| 2258 | #define PCI_VENDOR_ID_TDI 0x192E | 2262 | #define PCI_VENDOR_ID_TDI 0x192E |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 425f58c8ea4a..a6f03e473737 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -508,5 +508,7 @@ asmlinkage long sys_keyctl(int cmd, unsigned long arg2, unsigned long arg3, | |||
| 508 | 508 | ||
| 509 | asmlinkage long sys_ioprio_set(int which, int who, int ioprio); | 509 | asmlinkage long sys_ioprio_set(int which, int who, int ioprio); |
| 510 | asmlinkage long sys_ioprio_get(int which, int who); | 510 | asmlinkage long sys_ioprio_get(int which, int who); |
| 511 | asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask, | ||
| 512 | unsigned long maxnode); | ||
| 511 | 513 | ||
| 512 | #endif | 514 | #endif |
diff --git a/include/linux/tfrc.h b/include/linux/tfrc.h new file mode 100644 index 000000000000..7dab7831c3cb --- /dev/null +++ b/include/linux/tfrc.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | #ifndef _LINUX_TFRC_H_ | ||
| 2 | #define _LINUX_TFRC_H_ | ||
| 3 | /* | ||
| 4 | * include/linux/tfrc.h | ||
| 5 | * | ||
| 6 | * Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand. | ||
| 7 | * Copyright (c) 2005 Ian McDonald <iam4@cs.waikato.ac.nz> | ||
| 8 | * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br> | ||
| 9 | * Copyright (c) 2003 Nils-Erik Mattsson, Joacim Haggmark, Magnus Erixzon | ||
| 10 | * | ||
| 11 | * This program is free software; you can redistribute it and/or modify | ||
| 12 | * it under the terms of the GNU General Public License as published by | ||
| 13 | * the Free Software Foundation; either version 2 of the License, or | ||
| 14 | * (at your option) any later version. | ||
| 15 | */ | ||
| 16 | |||
| 17 | #include <linux/types.h> | ||
| 18 | |||
| 19 | struct tfrc_rx_info { | ||
| 20 | __u32 tfrcrx_x_recv; | ||
| 21 | __u32 tfrcrx_rtt; | ||
| 22 | __u32 tfrcrx_p; | ||
| 23 | }; | ||
| 24 | |||
| 25 | struct tfrc_tx_info { | ||
| 26 | __u32 tfrctx_x; | ||
| 27 | __u32 tfrctx_x_recv; | ||
| 28 | __u32 tfrctx_x_calc; | ||
| 29 | __u32 tfrctx_rtt; | ||
| 30 | __u32 tfrctx_p; | ||
| 31 | __u32 tfrctx_rto; | ||
| 32 | __u32 tfrctx_ipi; | ||
| 33 | }; | ||
| 34 | |||
| 35 | #endif /* _LINUX_TFRC_H_ */ | ||
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index e426641c519f..06b4235aa016 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
| @@ -84,6 +84,7 @@ | |||
| 84 | #define IP_VS_CONN_F_IN_SEQ 0x0400 /* must do input seq adjust */ | 84 | #define IP_VS_CONN_F_IN_SEQ 0x0400 /* must do input seq adjust */ |
| 85 | #define IP_VS_CONN_F_SEQ_MASK 0x0600 /* in/out sequence mask */ | 85 | #define IP_VS_CONN_F_SEQ_MASK 0x0600 /* in/out sequence mask */ |
| 86 | #define IP_VS_CONN_F_NO_CPORT 0x0800 /* no client port set yet */ | 86 | #define IP_VS_CONN_F_NO_CPORT 0x0800 /* no client port set yet */ |
| 87 | #define IP_VS_CONN_F_TEMPLATE 0x1000 /* template, not connection */ | ||
| 87 | 88 | ||
| 88 | /* Move it to better place one day, for now keep it unique */ | 89 | /* Move it to better place one day, for now keep it unique */ |
| 89 | #define NFC_IPVS_PROPERTY 0x10000 | 90 | #define NFC_IPVS_PROPERTY 0x10000 |
| @@ -739,6 +740,8 @@ enum { | |||
| 739 | 740 | ||
| 740 | extern struct ip_vs_conn *ip_vs_conn_in_get | 741 | extern struct ip_vs_conn *ip_vs_conn_in_get |
| 741 | (int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); | 742 | (int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); |
| 743 | extern struct ip_vs_conn *ip_vs_ct_in_get | ||
| 744 | (int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); | ||
| 742 | extern struct ip_vs_conn *ip_vs_conn_out_get | 745 | extern struct ip_vs_conn *ip_vs_conn_out_get |
| 743 | (int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); | 746 | (int protocol, __u32 s_addr, __u16 s_port, __u32 d_addr, __u16 d_port); |
| 744 | 747 | ||
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h index 53184a38fdf6..0e293fe733b0 100644 --- a/include/rdma/ib_mad.h +++ b/include/rdma/ib_mad.h | |||
| @@ -108,6 +108,13 @@ | |||
| 108 | #define IB_QP1_QKEY 0x80010000 | 108 | #define IB_QP1_QKEY 0x80010000 |
| 109 | #define IB_QP_SET_QKEY 0x80000000 | 109 | #define IB_QP_SET_QKEY 0x80000000 |
| 110 | 110 | ||
| 111 | enum { | ||
| 112 | IB_MGMT_MAD_DATA = 232, | ||
| 113 | IB_MGMT_RMPP_DATA = 220, | ||
| 114 | IB_MGMT_VENDOR_DATA = 216, | ||
| 115 | IB_MGMT_SA_DATA = 200 | ||
| 116 | }; | ||
| 117 | |||
| 111 | struct ib_mad_hdr { | 118 | struct ib_mad_hdr { |
| 112 | u8 base_version; | 119 | u8 base_version; |
| 113 | u8 mgmt_class; | 120 | u8 mgmt_class; |
| @@ -149,20 +156,20 @@ struct ib_sa_hdr { | |||
| 149 | 156 | ||
| 150 | struct ib_mad { | 157 | struct ib_mad { |
| 151 | struct ib_mad_hdr mad_hdr; | 158 | struct ib_mad_hdr mad_hdr; |
| 152 | u8 data[232]; | 159 | u8 data[IB_MGMT_MAD_DATA]; |
| 153 | }; | 160 | }; |
| 154 | 161 | ||
| 155 | struct ib_rmpp_mad { | 162 | struct ib_rmpp_mad { |
| 156 | struct ib_mad_hdr mad_hdr; | 163 | struct ib_mad_hdr mad_hdr; |
| 157 | struct ib_rmpp_hdr rmpp_hdr; | 164 | struct ib_rmpp_hdr rmpp_hdr; |
| 158 | u8 data[220]; | 165 | u8 data[IB_MGMT_RMPP_DATA]; |
| 159 | }; | 166 | }; |
| 160 | 167 | ||
| 161 | struct ib_sa_mad { | 168 | struct ib_sa_mad { |
| 162 | struct ib_mad_hdr mad_hdr; | 169 | struct ib_mad_hdr mad_hdr; |
| 163 | struct ib_rmpp_hdr rmpp_hdr; | 170 | struct ib_rmpp_hdr rmpp_hdr; |
| 164 | struct ib_sa_hdr sa_hdr; | 171 | struct ib_sa_hdr sa_hdr; |
| 165 | u8 data[200]; | 172 | u8 data[IB_MGMT_SA_DATA]; |
| 166 | } __attribute__ ((packed)); | 173 | } __attribute__ ((packed)); |
| 167 | 174 | ||
| 168 | struct ib_vendor_mad { | 175 | struct ib_vendor_mad { |
| @@ -170,7 +177,7 @@ struct ib_vendor_mad { | |||
| 170 | struct ib_rmpp_hdr rmpp_hdr; | 177 | struct ib_rmpp_hdr rmpp_hdr; |
| 171 | u8 reserved; | 178 | u8 reserved; |
| 172 | u8 oui[3]; | 179 | u8 oui[3]; |
| 173 | u8 data[216]; | 180 | u8 data[IB_MGMT_VENDOR_DATA]; |
| 174 | }; | 181 | }; |
| 175 | 182 | ||
| 176 | struct ib_class_port_info | 183 | struct ib_class_port_info |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 916144be208b..69313ba7505b 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
| @@ -439,6 +439,8 @@ enum scsi_host_state { | |||
| 439 | SHOST_CANCEL, | 439 | SHOST_CANCEL, |
| 440 | SHOST_DEL, | 440 | SHOST_DEL, |
| 441 | SHOST_RECOVERY, | 441 | SHOST_RECOVERY, |
| 442 | SHOST_CANCEL_RECOVERY, | ||
| 443 | SHOST_DEL_RECOVERY, | ||
| 442 | }; | 444 | }; |
| 443 | 445 | ||
| 444 | struct Scsi_Host { | 446 | struct Scsi_Host { |
| @@ -465,8 +467,6 @@ struct Scsi_Host { | |||
| 465 | 467 | ||
| 466 | struct list_head eh_cmd_q; | 468 | struct list_head eh_cmd_q; |
| 467 | struct task_struct * ehandler; /* Error recovery thread. */ | 469 | struct task_struct * ehandler; /* Error recovery thread. */ |
| 468 | struct semaphore * eh_wait; /* The error recovery thread waits | ||
| 469 | on this. */ | ||
| 470 | struct semaphore * eh_action; /* Wait for specific actions on the | 470 | struct semaphore * eh_action; /* Wait for specific actions on the |
| 471 | host. */ | 471 | host. */ |
| 472 | unsigned int eh_active:1; /* Indicates the eh thread is awake and active if | 472 | unsigned int eh_active:1; /* Indicates the eh thread is awake and active if |
| @@ -621,6 +621,13 @@ static inline struct Scsi_Host *dev_to_shost(struct device *dev) | |||
| 621 | return container_of(dev, struct Scsi_Host, shost_gendev); | 621 | return container_of(dev, struct Scsi_Host, shost_gendev); |
| 622 | } | 622 | } |
| 623 | 623 | ||
| 624 | static inline int scsi_host_in_recovery(struct Scsi_Host *shost) | ||
| 625 | { | ||
| 626 | return shost->shost_state == SHOST_RECOVERY || | ||
| 627 | shost->shost_state == SHOST_CANCEL_RECOVERY || | ||
| 628 | shost->shost_state == SHOST_DEL_RECOVERY; | ||
| 629 | } | ||
| 630 | |||
| 624 | extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *); | 631 | extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *); |
| 625 | extern void scsi_flush_work(struct Scsi_Host *); | 632 | extern void scsi_flush_work(struct Scsi_Host *); |
| 626 | 633 | ||
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index 115db056dc6b..b0d445437372 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
| @@ -103,8 +103,8 @@ enum fc_port_state { | |||
| 103 | incapable of reporting */ | 103 | incapable of reporting */ |
| 104 | #define FC_PORTSPEED_1GBIT 1 | 104 | #define FC_PORTSPEED_1GBIT 1 |
| 105 | #define FC_PORTSPEED_2GBIT 2 | 105 | #define FC_PORTSPEED_2GBIT 2 |
| 106 | #define FC_PORTSPEED_10GBIT 4 | 106 | #define FC_PORTSPEED_4GBIT 4 |
| 107 | #define FC_PORTSPEED_4GBIT 8 | 107 | #define FC_PORTSPEED_10GBIT 8 |
| 108 | #define FC_PORTSPEED_NOT_NEGOTIATED (1 << 15) /* Speed not established */ | 108 | #define FC_PORTSPEED_NOT_NEGOTIATED (1 << 15) /* Speed not established */ |
| 109 | 109 | ||
| 110 | /* | 110 | /* |
