diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-frv/mem-layout.h | 2 | ||||
| -rw-r--r-- | include/asm-frv/pgtable.h | 19 | ||||
| -rw-r--r-- | include/asm-frv/spr-regs.h | 14 | ||||
| -rw-r--r-- | include/asm-frv/system.h | 21 | ||||
| -rw-r--r-- | include/asm-mips/cacheflush.h | 18 | ||||
| -rw-r--r-- | include/asm-mips/mach-pb1x00/pb1200.h | 2 | ||||
| -rw-r--r-- | include/asm-x86/irqflags.h | 29 | ||||
| -rw-r--r-- | include/asm-x86/linkage.h | 35 | ||||
| -rw-r--r-- | include/asm-x86/nops.h | 20 | ||||
| -rw-r--r-- | include/linux/Kbuild | 2 | ||||
| -rw-r--r-- | include/linux/cgroup.h | 1 | ||||
| -rw-r--r-- | include/linux/hpet.h | 2 | ||||
| -rw-r--r-- | include/linux/if_tun.h | 39 | ||||
| -rw-r--r-- | include/linux/ipv6.h | 2 | ||||
| -rw-r--r-- | include/linux/libata.h | 25 | ||||
| -rw-r--r-- | include/linux/linkage.h | 20 | ||||
| -rw-r--r-- | include/linux/pnp.h | 2 | ||||
| -rw-r--r-- | include/linux/spinlock.h | 3 | ||||
| -rw-r--r-- | include/linux/virtio.h | 5 | ||||
| -rw-r--r-- | include/net/inet_ecn.h | 2 | ||||
| -rw-r--r-- | include/net/sctp/command.h | 1 | ||||
| -rw-r--r-- | include/net/sctp/ulpevent.h | 2 | ||||
| -rw-r--r-- | include/net/tcp.h | 2 |
23 files changed, 172 insertions, 96 deletions
diff --git a/include/asm-frv/mem-layout.h b/include/asm-frv/mem-layout.h index 83532252b8be..734a1d0583b6 100644 --- a/include/asm-frv/mem-layout.h +++ b/include/asm-frv/mem-layout.h | |||
| @@ -60,7 +60,7 @@ | |||
| 60 | */ | 60 | */ |
| 61 | #define BRK_BASE __UL(2 * 1024 * 1024 + PAGE_SIZE) | 61 | #define BRK_BASE __UL(2 * 1024 * 1024 + PAGE_SIZE) |
| 62 | #define STACK_TOP __UL(2 * 1024 * 1024) | 62 | #define STACK_TOP __UL(2 * 1024 * 1024) |
| 63 | #define STACK_TOP_MAX STACK_TOP | 63 | #define STACK_TOP_MAX __UL(0xc0000000) |
| 64 | 64 | ||
| 65 | /* userspace process size */ | 65 | /* userspace process size */ |
| 66 | #ifdef CONFIG_MMU | 66 | #ifdef CONFIG_MMU |
diff --git a/include/asm-frv/pgtable.h b/include/asm-frv/pgtable.h index 6c0682ed5fc9..4e219046fe42 100644 --- a/include/asm-frv/pgtable.h +++ b/include/asm-frv/pgtable.h | |||
| @@ -507,13 +507,22 @@ static inline int pte_file(pte_t pte) | |||
| 507 | */ | 507 | */ |
| 508 | static inline void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t pte) | 508 | static inline void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t pte) |
| 509 | { | 509 | { |
| 510 | struct mm_struct *mm; | ||
| 510 | unsigned long ampr; | 511 | unsigned long ampr; |
| 511 | pgd_t *pge = pgd_offset(current->mm, address); | ||
| 512 | pud_t *pue = pud_offset(pge, address); | ||
| 513 | pmd_t *pme = pmd_offset(pue, address); | ||
| 514 | 512 | ||
| 515 | ampr = pme->ste[0] & 0xffffff00; | 513 | mm = current->mm; |
| 516 | ampr |= xAMPRx_L | xAMPRx_SS_16Kb | xAMPRx_S | xAMPRx_C | xAMPRx_V; | 514 | if (mm) { |
| 515 | pgd_t *pge = pgd_offset(mm, address); | ||
| 516 | pud_t *pue = pud_offset(pge, address); | ||
| 517 | pmd_t *pme = pmd_offset(pue, address); | ||
| 518 | |||
| 519 | ampr = pme->ste[0] & 0xffffff00; | ||
| 520 | ampr |= xAMPRx_L | xAMPRx_SS_16Kb | xAMPRx_S | xAMPRx_C | | ||
| 521 | xAMPRx_V; | ||
| 522 | } else { | ||
| 523 | address = ULONG_MAX; | ||
| 524 | ampr = 0; | ||
| 525 | } | ||
| 517 | 526 | ||
| 518 | asm volatile("movgs %0,scr0\n" | 527 | asm volatile("movgs %0,scr0\n" |
| 519 | "movgs %0,scr1\n" | 528 | "movgs %0,scr1\n" |
diff --git a/include/asm-frv/spr-regs.h b/include/asm-frv/spr-regs.h index c2a541ef828d..01e6af5e99b8 100644 --- a/include/asm-frv/spr-regs.h +++ b/include/asm-frv/spr-regs.h | |||
| @@ -99,9 +99,23 @@ | |||
| 99 | #define TBR_TT_TRAP1 (0x81 << 4) | 99 | #define TBR_TT_TRAP1 (0x81 << 4) |
| 100 | #define TBR_TT_TRAP2 (0x82 << 4) | 100 | #define TBR_TT_TRAP2 (0x82 << 4) |
| 101 | #define TBR_TT_TRAP3 (0x83 << 4) | 101 | #define TBR_TT_TRAP3 (0x83 << 4) |
| 102 | #define TBR_TT_TRAP120 (0xf8 << 4) | ||
| 103 | #define TBR_TT_TRAP121 (0xf9 << 4) | ||
| 104 | #define TBR_TT_TRAP122 (0xfa << 4) | ||
| 105 | #define TBR_TT_TRAP123 (0xfb << 4) | ||
| 106 | #define TBR_TT_TRAP124 (0xfc << 4) | ||
| 107 | #define TBR_TT_TRAP125 (0xfd << 4) | ||
| 102 | #define TBR_TT_TRAP126 (0xfe << 4) | 108 | #define TBR_TT_TRAP126 (0xfe << 4) |
| 103 | #define TBR_TT_BREAK (0xff << 4) | 109 | #define TBR_TT_BREAK (0xff << 4) |
| 104 | 110 | ||
| 111 | #define TBR_TT_ATOMIC_CMPXCHG32 TBR_TT_TRAP120 | ||
| 112 | #define TBR_TT_ATOMIC_XCHG32 TBR_TT_TRAP121 | ||
| 113 | #define TBR_TT_ATOMIC_XOR TBR_TT_TRAP122 | ||
| 114 | #define TBR_TT_ATOMIC_OR TBR_TT_TRAP123 | ||
| 115 | #define TBR_TT_ATOMIC_AND TBR_TT_TRAP124 | ||
| 116 | #define TBR_TT_ATOMIC_SUB TBR_TT_TRAP125 | ||
| 117 | #define TBR_TT_ATOMIC_ADD TBR_TT_TRAP126 | ||
| 118 | |||
| 105 | #define __get_TBR() ({ unsigned long x; asm volatile("movsg tbr,%0" : "=r"(x)); x; }) | 119 | #define __get_TBR() ({ unsigned long x; asm volatile("movsg tbr,%0" : "=r"(x)); x; }) |
| 106 | 120 | ||
| 107 | /* | 121 | /* |
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h index 2c57f4734746..30a67a9da11a 100644 --- a/include/asm-frv/system.h +++ b/include/asm-frv/system.h | |||
| @@ -179,14 +179,23 @@ do { \ | |||
| 179 | #define mb() asm volatile ("membar" : : :"memory") | 179 | #define mb() asm volatile ("membar" : : :"memory") |
| 180 | #define rmb() asm volatile ("membar" : : :"memory") | 180 | #define rmb() asm volatile ("membar" : : :"memory") |
| 181 | #define wmb() asm volatile ("membar" : : :"memory") | 181 | #define wmb() asm volatile ("membar" : : :"memory") |
| 182 | #define set_mb(var, value) do { var = value; mb(); } while (0) | 182 | #define read_barrier_depends() barrier() |
| 183 | 183 | ||
| 184 | #define smp_mb() mb() | 184 | #ifdef CONFIG_SMP |
| 185 | #define smp_rmb() rmb() | 185 | #define smp_mb() mb() |
| 186 | #define smp_wmb() wmb() | 186 | #define smp_rmb() rmb() |
| 187 | 187 | #define smp_wmb() wmb() | |
| 188 | #define read_barrier_depends() do {} while(0) | ||
| 189 | #define smp_read_barrier_depends() read_barrier_depends() | 188 | #define smp_read_barrier_depends() read_barrier_depends() |
| 189 | #define set_mb(var, value) \ | ||
| 190 | do { xchg(&var, (value)); } while (0) | ||
| 191 | #else | ||
| 192 | #define smp_mb() barrier() | ||
| 193 | #define smp_rmb() barrier() | ||
| 194 | #define smp_wmb() barrier() | ||
| 195 | #define smp_read_barrier_depends() do {} while(0) | ||
| 196 | #define set_mb(var, value) \ | ||
| 197 | do { var = (value); barrier(); } while (0) | ||
| 198 | #endif | ||
| 190 | 199 | ||
| 191 | #define HARD_RESET_NOW() \ | 200 | #define HARD_RESET_NOW() \ |
| 192 | do { \ | 201 | do { \ |
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h index 01e7eadc97e2..d5c0f2fda51b 100644 --- a/include/asm-mips/cacheflush.h +++ b/include/asm-mips/cacheflush.h | |||
| @@ -63,8 +63,22 @@ static inline void flush_icache_page(struct vm_area_struct *vma, | |||
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | extern void (*flush_icache_range)(unsigned long start, unsigned long end); | 65 | extern void (*flush_icache_range)(unsigned long start, unsigned long end); |
| 66 | #define flush_cache_vmap(start, end) flush_cache_all() | 66 | |
| 67 | #define flush_cache_vunmap(start, end) flush_cache_all() | 67 | extern void (*__flush_cache_vmap)(void); |
| 68 | |||
| 69 | static inline void flush_cache_vmap(unsigned long start, unsigned long end) | ||
| 70 | { | ||
| 71 | if (cpu_has_dc_aliases) | ||
| 72 | __flush_cache_vmap(); | ||
| 73 | } | ||
| 74 | |||
| 75 | extern void (*__flush_cache_vunmap)(void); | ||
| 76 | |||
| 77 | static inline void flush_cache_vunmap(unsigned long start, unsigned long end) | ||
| 78 | { | ||
| 79 | if (cpu_has_dc_aliases) | ||
| 80 | __flush_cache_vunmap(); | ||
| 81 | } | ||
| 68 | 82 | ||
| 69 | extern void copy_to_user_page(struct vm_area_struct *vma, | 83 | extern void copy_to_user_page(struct vm_area_struct *vma, |
| 70 | struct page *page, unsigned long vaddr, void *dst, const void *src, | 84 | struct page *page, unsigned long vaddr, void *dst, const void *src, |
diff --git a/include/asm-mips/mach-pb1x00/pb1200.h b/include/asm-mips/mach-pb1x00/pb1200.h index ed5fd7390678..72213e3d02c7 100644 --- a/include/asm-mips/mach-pb1x00/pb1200.h +++ b/include/asm-mips/mach-pb1x00/pb1200.h | |||
| @@ -245,7 +245,7 @@ enum external_pb1200_ints { | |||
| 245 | PB1200_SD1_INSERT_INT, | 245 | PB1200_SD1_INSERT_INT, |
| 246 | PB1200_SD1_EJECT_INT, | 246 | PB1200_SD1_EJECT_INT, |
| 247 | 247 | ||
| 248 | PB1200_INT_END (PB1200_INT_BEGIN + 15) | 248 | PB1200_INT_END = PB1200_INT_BEGIN + 15 |
| 249 | }; | 249 | }; |
| 250 | 250 | ||
| 251 | /* For drivers/pcmcia/au1000_db1x00.c */ | 251 | /* For drivers/pcmcia/au1000_db1x00.c */ |
diff --git a/include/asm-x86/irqflags.h b/include/asm-x86/irqflags.h index 92021c1ffa3a..0e2292483b35 100644 --- a/include/asm-x86/irqflags.h +++ b/include/asm-x86/irqflags.h | |||
| @@ -70,6 +70,26 @@ static inline void raw_local_irq_restore(unsigned long flags) | |||
| 70 | native_restore_fl(flags); | 70 | native_restore_fl(flags); |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | #ifdef CONFIG_X86_VSMP | ||
| 74 | |||
| 75 | /* | ||
| 76 | * Interrupt control for the VSMP architecture: | ||
| 77 | */ | ||
| 78 | |||
| 79 | static inline void raw_local_irq_disable(void) | ||
| 80 | { | ||
| 81 | unsigned long flags = __raw_local_save_flags(); | ||
| 82 | raw_local_irq_restore((flags & ~X86_EFLAGS_IF) | X86_EFLAGS_AC); | ||
| 83 | } | ||
| 84 | |||
| 85 | static inline void raw_local_irq_enable(void) | ||
| 86 | { | ||
| 87 | unsigned long flags = __raw_local_save_flags(); | ||
| 88 | raw_local_irq_restore((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC)); | ||
| 89 | } | ||
| 90 | |||
| 91 | #else | ||
| 92 | |||
| 73 | static inline void raw_local_irq_disable(void) | 93 | static inline void raw_local_irq_disable(void) |
| 74 | { | 94 | { |
| 75 | native_irq_disable(); | 95 | native_irq_disable(); |
| @@ -80,6 +100,8 @@ static inline void raw_local_irq_enable(void) | |||
| 80 | native_irq_enable(); | 100 | native_irq_enable(); |
| 81 | } | 101 | } |
| 82 | 102 | ||
| 103 | #endif | ||
| 104 | |||
| 83 | /* | 105 | /* |
| 84 | * Used in the idle loop; sti takes one instruction cycle | 106 | * Used in the idle loop; sti takes one instruction cycle |
| 85 | * to complete: | 107 | * to complete: |
| @@ -137,10 +159,17 @@ static inline unsigned long __raw_local_irq_save(void) | |||
| 137 | #define raw_local_irq_save(flags) \ | 159 | #define raw_local_irq_save(flags) \ |
| 138 | do { (flags) = __raw_local_irq_save(); } while (0) | 160 | do { (flags) = __raw_local_irq_save(); } while (0) |
| 139 | 161 | ||
| 162 | #ifdef CONFIG_X86_VSMP | ||
| 163 | static inline int raw_irqs_disabled_flags(unsigned long flags) | ||
| 164 | { | ||
| 165 | return !(flags & X86_EFLAGS_IF) || (flags & X86_EFLAGS_AC); | ||
| 166 | } | ||
| 167 | #else | ||
| 140 | static inline int raw_irqs_disabled_flags(unsigned long flags) | 168 | static inline int raw_irqs_disabled_flags(unsigned long flags) |
| 141 | { | 169 | { |
| 142 | return !(flags & X86_EFLAGS_IF); | 170 | return !(flags & X86_EFLAGS_IF); |
| 143 | } | 171 | } |
| 172 | #endif | ||
| 144 | 173 | ||
| 145 | static inline int raw_irqs_disabled(void) | 174 | static inline int raw_irqs_disabled(void) |
| 146 | { | 175 | { |
diff --git a/include/asm-x86/linkage.h b/include/asm-x86/linkage.h index 31739c7d66a9..c048353f4b85 100644 --- a/include/asm-x86/linkage.h +++ b/include/asm-x86/linkage.h | |||
| @@ -8,12 +8,45 @@ | |||
| 8 | 8 | ||
| 9 | #ifdef CONFIG_X86_32 | 9 | #ifdef CONFIG_X86_32 |
| 10 | #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) | 10 | #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0))) |
| 11 | #define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret)) | ||
| 12 | /* | 11 | /* |
| 13 | * For 32-bit UML - mark functions implemented in assembly that use | 12 | * For 32-bit UML - mark functions implemented in assembly that use |
| 14 | * regparm input parameters: | 13 | * regparm input parameters: |
| 15 | */ | 14 | */ |
| 16 | #define asmregparm __attribute__((regparm(3))) | 15 | #define asmregparm __attribute__((regparm(3))) |
| 16 | |||
| 17 | /* | ||
| 18 | * Make sure the compiler doesn't do anything stupid with the | ||
| 19 | * arguments on the stack - they are owned by the *caller*, not | ||
| 20 | * the callee. This just fools gcc into not spilling into them, | ||
| 21 | * and keeps it from doing tailcall recursion and/or using the | ||
| 22 | * stack slots for temporaries, since they are live and "used" | ||
| 23 | * all the way to the end of the function. | ||
| 24 | * | ||
| 25 | * NOTE! On x86-64, all the arguments are in registers, so this | ||
| 26 | * only matters on a 32-bit kernel. | ||
| 27 | */ | ||
| 28 | #define asmlinkage_protect(n, ret, args...) \ | ||
| 29 | __asmlinkage_protect##n(ret, ##args) | ||
| 30 | #define __asmlinkage_protect_n(ret, args...) \ | ||
| 31 | __asm__ __volatile__ ("" : "=r" (ret) : "0" (ret), ##args) | ||
| 32 | #define __asmlinkage_protect0(ret) \ | ||
| 33 | __asmlinkage_protect_n(ret) | ||
| 34 | #define __asmlinkage_protect1(ret, arg1) \ | ||
| 35 | __asmlinkage_protect_n(ret, "g" (arg1)) | ||
| 36 | #define __asmlinkage_protect2(ret, arg1, arg2) \ | ||
| 37 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2)) | ||
| 38 | #define __asmlinkage_protect3(ret, arg1, arg2, arg3) \ | ||
| 39 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3)) | ||
| 40 | #define __asmlinkage_protect4(ret, arg1, arg2, arg3, arg4) \ | ||
| 41 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ | ||
| 42 | "g" (arg4)) | ||
| 43 | #define __asmlinkage_protect5(ret, arg1, arg2, arg3, arg4, arg5) \ | ||
| 44 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ | ||
| 45 | "g" (arg4), "g" (arg5)) | ||
| 46 | #define __asmlinkage_protect6(ret, arg1, arg2, arg3, arg4, arg5, arg6) \ | ||
| 47 | __asmlinkage_protect_n(ret, "g" (arg1), "g" (arg2), "g" (arg3), \ | ||
| 48 | "g" (arg4), "g" (arg5), "g" (arg6)) | ||
| 49 | |||
| 17 | #endif | 50 | #endif |
| 18 | 51 | ||
| 19 | #ifdef CONFIG_X86_ALIGNMENT_16 | 52 | #ifdef CONFIG_X86_ALIGNMENT_16 |
diff --git a/include/asm-x86/nops.h b/include/asm-x86/nops.h index e3b2bce0aff8..b3930ae539b3 100644 --- a/include/asm-x86/nops.h +++ b/include/asm-x86/nops.h | |||
| @@ -73,16 +73,7 @@ | |||
| 73 | #define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" | 73 | #define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" |
| 74 | #define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" | 74 | #define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" |
| 75 | 75 | ||
| 76 | #if defined(CONFIG_MK8) | 76 | #if defined(CONFIG_MK7) |
| 77 | #define ASM_NOP1 K8_NOP1 | ||
| 78 | #define ASM_NOP2 K8_NOP2 | ||
| 79 | #define ASM_NOP3 K8_NOP3 | ||
| 80 | #define ASM_NOP4 K8_NOP4 | ||
| 81 | #define ASM_NOP5 K8_NOP5 | ||
| 82 | #define ASM_NOP6 K8_NOP6 | ||
| 83 | #define ASM_NOP7 K8_NOP7 | ||
| 84 | #define ASM_NOP8 K8_NOP8 | ||
| 85 | #elif defined(CONFIG_MK7) | ||
| 86 | #define ASM_NOP1 K7_NOP1 | 77 | #define ASM_NOP1 K7_NOP1 |
| 87 | #define ASM_NOP2 K7_NOP2 | 78 | #define ASM_NOP2 K7_NOP2 |
| 88 | #define ASM_NOP3 K7_NOP3 | 79 | #define ASM_NOP3 K7_NOP3 |
| @@ -100,6 +91,15 @@ | |||
| 100 | #define ASM_NOP6 P6_NOP6 | 91 | #define ASM_NOP6 P6_NOP6 |
| 101 | #define ASM_NOP7 P6_NOP7 | 92 | #define ASM_NOP7 P6_NOP7 |
| 102 | #define ASM_NOP8 P6_NOP8 | 93 | #define ASM_NOP8 P6_NOP8 |
| 94 | #elif defined(CONFIG_X86_64) | ||
| 95 | #define ASM_NOP1 K8_NOP1 | ||
| 96 | #define ASM_NOP2 K8_NOP2 | ||
| 97 | #define ASM_NOP3 K8_NOP3 | ||
| 98 | #define ASM_NOP4 K8_NOP4 | ||
| 99 | #define ASM_NOP5 K8_NOP5 | ||
| 100 | #define ASM_NOP6 K8_NOP6 | ||
| 101 | #define ASM_NOP7 K8_NOP7 | ||
| 102 | #define ASM_NOP8 K8_NOP8 | ||
| 103 | #else | 103 | #else |
| 104 | #define ASM_NOP1 GENERIC_NOP1 | 104 | #define ASM_NOP1 GENERIC_NOP1 |
| 105 | #define ASM_NOP2 GENERIC_NOP2 | 105 | #define ASM_NOP2 GENERIC_NOP2 |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 9cdd12a9e843..cedbbd806bf6 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
| @@ -86,6 +86,7 @@ header-y += if_plip.h | |||
| 86 | header-y += if_ppp.h | 86 | header-y += if_ppp.h |
| 87 | header-y += if_slip.h | 87 | header-y += if_slip.h |
| 88 | header-y += if_strip.h | 88 | header-y += if_strip.h |
| 89 | header-y += if_tun.h | ||
| 89 | header-y += if_tunnel.h | 90 | header-y += if_tunnel.h |
| 90 | header-y += in6.h | 91 | header-y += in6.h |
| 91 | header-y += in_route.h | 92 | header-y += in_route.h |
| @@ -229,7 +230,6 @@ unifdef-y += if_link.h | |||
| 229 | unifdef-y += if_pppol2tp.h | 230 | unifdef-y += if_pppol2tp.h |
| 230 | unifdef-y += if_pppox.h | 231 | unifdef-y += if_pppox.h |
| 231 | unifdef-y += if_tr.h | 232 | unifdef-y += if_tr.h |
| 232 | unifdef-y += if_tun.h | ||
| 233 | unifdef-y += if_vlan.h | 233 | unifdef-y += if_vlan.h |
| 234 | unifdef-y += if_wanpipe.h | 234 | unifdef-y += if_wanpipe.h |
| 235 | unifdef-y += igmp.h | 235 | unifdef-y += igmp.h |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 028ba3b523b1..a6a6035a4e1e 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -256,6 +256,7 @@ struct cgroup_subsys { | |||
| 256 | void (*bind)(struct cgroup_subsys *ss, struct cgroup *root); | 256 | void (*bind)(struct cgroup_subsys *ss, struct cgroup *root); |
| 257 | int subsys_id; | 257 | int subsys_id; |
| 258 | int active; | 258 | int active; |
| 259 | int disabled; | ||
| 259 | int early_init; | 260 | int early_init; |
| 260 | #define MAX_CGROUP_TYPE_NAMELEN 32 | 261 | #define MAX_CGROUP_TYPE_NAMELEN 32 |
| 261 | const char *name; | 262 | const char *name; |
diff --git a/include/linux/hpet.h b/include/linux/hpet.h index 9cd94bfd07e5..2dc29ce6c8e4 100644 --- a/include/linux/hpet.h +++ b/include/linux/hpet.h | |||
| @@ -64,7 +64,7 @@ struct hpet { | |||
| 64 | */ | 64 | */ |
| 65 | 65 | ||
| 66 | #define Tn_INT_ROUTE_CAP_MASK (0xffffffff00000000ULL) | 66 | #define Tn_INT_ROUTE_CAP_MASK (0xffffffff00000000ULL) |
| 67 | #define Tn_INT_ROUTE_CAP_SHIFT (32UL) | 67 | #define Tn_INI_ROUTE_CAP_SHIFT (32UL) |
| 68 | #define Tn_FSB_INT_DELCAP_MASK (0x8000UL) | 68 | #define Tn_FSB_INT_DELCAP_MASK (0x8000UL) |
| 69 | #define Tn_FSB_INT_DELCAP_SHIFT (15) | 69 | #define Tn_FSB_INT_DELCAP_SHIFT (15) |
| 70 | #define Tn_FSB_EN_CNF_MASK (0x4000UL) | 70 | #define Tn_FSB_EN_CNF_MASK (0x4000UL) |
diff --git a/include/linux/if_tun.h b/include/linux/if_tun.h index 72f1c5f47be3..8c71fe2fb1f5 100644 --- a/include/linux/if_tun.h +++ b/include/linux/if_tun.h | |||
| @@ -18,47 +18,8 @@ | |||
| 18 | #ifndef __IF_TUN_H | 18 | #ifndef __IF_TUN_H |
| 19 | #define __IF_TUN_H | 19 | #define __IF_TUN_H |
| 20 | 20 | ||
| 21 | /* Uncomment to enable debugging */ | ||
| 22 | /* #define TUN_DEBUG 1 */ | ||
| 23 | |||
| 24 | #include <linux/types.h> | 21 | #include <linux/types.h> |
| 25 | 22 | ||
| 26 | #ifdef __KERNEL__ | ||
| 27 | |||
| 28 | #ifdef TUN_DEBUG | ||
| 29 | #define DBG if(tun->debug)printk | ||
| 30 | #define DBG1 if(debug==2)printk | ||
| 31 | #else | ||
| 32 | #define DBG( a... ) | ||
| 33 | #define DBG1( a... ) | ||
| 34 | #endif | ||
| 35 | |||
| 36 | struct tun_struct { | ||
| 37 | struct list_head list; | ||
| 38 | unsigned long flags; | ||
| 39 | int attached; | ||
| 40 | uid_t owner; | ||
| 41 | gid_t group; | ||
| 42 | |||
| 43 | wait_queue_head_t read_wait; | ||
| 44 | struct sk_buff_head readq; | ||
| 45 | |||
| 46 | struct net_device *dev; | ||
| 47 | |||
| 48 | struct fasync_struct *fasync; | ||
| 49 | |||
| 50 | unsigned long if_flags; | ||
| 51 | u8 dev_addr[ETH_ALEN]; | ||
| 52 | u32 chr_filter[2]; | ||
| 53 | u32 net_filter[2]; | ||
| 54 | |||
| 55 | #ifdef TUN_DEBUG | ||
| 56 | int debug; | ||
| 57 | #endif | ||
| 58 | }; | ||
| 59 | |||
| 60 | #endif /* __KERNEL__ */ | ||
| 61 | |||
| 62 | /* Read queue size */ | 23 | /* Read queue size */ |
| 63 | #define TUN_READQ_SIZE 500 | 24 | #define TUN_READQ_SIZE 500 |
| 64 | 25 | ||
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index 4aaefc349a4b..134c8e5cf07c 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
| @@ -53,7 +53,7 @@ struct ipv6_opt_hdr { | |||
| 53 | /* | 53 | /* |
| 54 | * TLV encoded option data follows. | 54 | * TLV encoded option data follows. |
| 55 | */ | 55 | */ |
| 56 | }; | 56 | } __attribute__ ((packed)); /* required for some archs */ |
| 57 | 57 | ||
| 58 | #define ipv6_destopt_hdr ipv6_opt_hdr | 58 | #define ipv6_destopt_hdr ipv6_opt_hdr |
| 59 | #define ipv6_hopopt_hdr ipv6_opt_hdr | 59 | #define ipv6_hopopt_hdr ipv6_opt_hdr |
diff --git a/include/linux/libata.h b/include/linux/libata.h index b064bfeb69ee..37ee881c42ac 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -350,7 +350,8 @@ enum { | |||
| 350 | ATAPI_READ = 0, /* READs */ | 350 | ATAPI_READ = 0, /* READs */ |
| 351 | ATAPI_WRITE = 1, /* WRITEs */ | 351 | ATAPI_WRITE = 1, /* WRITEs */ |
| 352 | ATAPI_READ_CD = 2, /* READ CD [MSF] */ | 352 | ATAPI_READ_CD = 2, /* READ CD [MSF] */ |
| 353 | ATAPI_MISC = 3, /* the rest */ | 353 | ATAPI_PASS_THRU = 3, /* SAT pass-thru */ |
| 354 | ATAPI_MISC = 4, /* the rest */ | ||
| 354 | }; | 355 | }; |
| 355 | 356 | ||
| 356 | enum ata_xfer_mask { | 357 | enum ata_xfer_mask { |
| @@ -849,6 +850,7 @@ extern unsigned int ata_dev_try_classify(struct ata_device *dev, int present, | |||
| 849 | */ | 850 | */ |
| 850 | extern void ata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf); | 851 | extern void ata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf); |
| 851 | extern void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf); | 852 | extern void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf); |
| 853 | extern int atapi_cmd_type(u8 opcode); | ||
| 852 | extern void ata_tf_to_fis(const struct ata_taskfile *tf, | 854 | extern void ata_tf_to_fis(const struct ata_taskfile *tf, |
| 853 | u8 pmp, int is_cmd, u8 *fis); | 855 | u8 pmp, int is_cmd, u8 *fis); |
| 854 | extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf); | 856 | extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf); |
| @@ -1379,27 +1381,6 @@ static inline int ata_try_flush_cache(const struct ata_device *dev) | |||
| 1379 | ata_id_has_flush_ext(dev->id); | 1381 | ata_id_has_flush_ext(dev->id); |
| 1380 | } | 1382 | } |
| 1381 | 1383 | ||
| 1382 | static inline int atapi_cmd_type(u8 opcode) | ||
| 1383 | { | ||
| 1384 | switch (opcode) { | ||
| 1385 | case GPCMD_READ_10: | ||
| 1386 | case GPCMD_READ_12: | ||
| 1387 | return ATAPI_READ; | ||
| 1388 | |||
| 1389 | case GPCMD_WRITE_10: | ||
| 1390 | case GPCMD_WRITE_12: | ||
| 1391 | case GPCMD_WRITE_AND_VERIFY_10: | ||
| 1392 | return ATAPI_WRITE; | ||
| 1393 | |||
| 1394 | case GPCMD_READ_CD: | ||
| 1395 | case GPCMD_READ_CD_MSF: | ||
| 1396 | return ATAPI_READ_CD; | ||
| 1397 | |||
| 1398 | default: | ||
| 1399 | return ATAPI_MISC; | ||
| 1400 | } | ||
| 1401 | } | ||
| 1402 | |||
| 1403 | static inline unsigned int ac_err_mask(u8 status) | 1384 | static inline unsigned int ac_err_mask(u8 status) |
| 1404 | { | 1385 | { |
| 1405 | if (status & (ATA_BUSY | ATA_DRQ)) | 1386 | if (status & (ATA_BUSY | ATA_DRQ)) |
diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 0592936344c4..2119610b24f8 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h | |||
| @@ -17,8 +17,24 @@ | |||
| 17 | # define asmregparm | 17 | # define asmregparm |
| 18 | #endif | 18 | #endif |
| 19 | 19 | ||
| 20 | #ifndef prevent_tail_call | 20 | /* |
| 21 | # define prevent_tail_call(ret) do { } while (0) | 21 | * This is used by architectures to keep arguments on the stack |
| 22 | * untouched by the compiler by keeping them live until the end. | ||
| 23 | * The argument stack may be owned by the assembly-language | ||
| 24 | * caller, not the callee, and gcc doesn't always understand | ||
| 25 | * that. | ||
| 26 | * | ||
| 27 | * We have the return value, and a maximum of six arguments. | ||
| 28 | * | ||
| 29 | * This should always be followed by a "return ret" for the | ||
| 30 | * protection to work (ie no more work that the compiler might | ||
| 31 | * end up needing stack temporaries for). | ||
| 32 | */ | ||
| 33 | /* Assembly files may be compiled with -traditional .. */ | ||
| 34 | #ifndef __ASSEMBLY__ | ||
| 35 | #ifndef asmlinkage_protect | ||
| 36 | # define asmlinkage_protect(n, ret, args...) do { } while (0) | ||
| 37 | #endif | ||
| 22 | #endif | 38 | #endif |
| 23 | 39 | ||
| 24 | #ifndef __ALIGN | 40 | #ifndef __ALIGN |
diff --git a/include/linux/pnp.h b/include/linux/pnp.h index 29dd55838e84..b2f05c230f4b 100644 --- a/include/linux/pnp.h +++ b/include/linux/pnp.h | |||
| @@ -175,7 +175,7 @@ static inline void pnp_set_card_drvdata(struct pnp_card_link *pcard, void *data) | |||
| 175 | struct pnp_dev { | 175 | struct pnp_dev { |
| 176 | struct device dev; /* Driver Model device interface */ | 176 | struct device dev; /* Driver Model device interface */ |
| 177 | u64 dma_mask; | 177 | u64 dma_mask; |
| 178 | unsigned char number; /* used as an index, must be unique */ | 178 | unsigned int number; /* used as an index, must be unique */ |
| 179 | int status; | 179 | int status; |
| 180 | 180 | ||
| 181 | struct list_head global_list; /* node in global list of devices */ | 181 | struct list_head global_list; /* node in global list of devices */ |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 576a5f77d3bd..1129ee0a7180 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
| @@ -341,6 +341,9 @@ static inline void double_spin_unlock(spinlock_t *l1, spinlock_t *l2, | |||
| 341 | * atomic_dec_and_lock - lock on reaching reference count zero | 341 | * atomic_dec_and_lock - lock on reaching reference count zero |
| 342 | * @atomic: the atomic counter | 342 | * @atomic: the atomic counter |
| 343 | * @lock: the spinlock in question | 343 | * @lock: the spinlock in question |
| 344 | * | ||
| 345 | * Decrements @atomic by 1. If the result is 0, returns true and locks | ||
| 346 | * @lock. Returns false for all other cases. | ||
| 344 | */ | 347 | */ |
| 345 | extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock); | 348 | extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock); |
| 346 | #define atomic_dec_and_lock(atomic, lock) \ | 349 | #define atomic_dec_and_lock(atomic, lock) \ |
diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 12c18ac1b973..e7d10845b3c1 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h | |||
| @@ -41,6 +41,8 @@ struct virtqueue | |||
| 41 | * Returns NULL or the "data" token handed to add_buf. | 41 | * Returns NULL or the "data" token handed to add_buf. |
| 42 | * @disable_cb: disable callbacks | 42 | * @disable_cb: disable callbacks |
| 43 | * vq: the struct virtqueue we're talking about. | 43 | * vq: the struct virtqueue we're talking about. |
| 44 | * Note that this is not necessarily synchronous, hence unreliable and only | ||
| 45 | * useful as an optimization. | ||
| 44 | * @enable_cb: restart callbacks after disable_cb. | 46 | * @enable_cb: restart callbacks after disable_cb. |
| 45 | * vq: the struct virtqueue we're talking about. | 47 | * vq: the struct virtqueue we're talking about. |
| 46 | * This re-enables callbacks; it returns "false" if there are pending | 48 | * This re-enables callbacks; it returns "false" if there are pending |
| @@ -48,7 +50,8 @@ struct virtqueue | |||
| 48 | * checking for more work, and enabling callbacks. | 50 | * checking for more work, and enabling callbacks. |
| 49 | * | 51 | * |
| 50 | * Locking rules are straightforward: the driver is responsible for | 52 | * Locking rules are straightforward: the driver is responsible for |
| 51 | * locking. No two operations may be invoked simultaneously. | 53 | * locking. No two operations may be invoked simultaneously, with the exception |
| 54 | * of @disable_cb. | ||
| 52 | * | 55 | * |
| 53 | * All operations can be called in any context. | 56 | * All operations can be called in any context. |
| 54 | */ | 57 | */ |
diff --git a/include/net/inet_ecn.h b/include/net/inet_ecn.h index ba33db053854..7040a782c656 100644 --- a/include/net/inet_ecn.h +++ b/include/net/inet_ecn.h | |||
| @@ -47,7 +47,7 @@ static inline __u8 INET_ECN_encapsulate(__u8 outer, __u8 inner) | |||
| 47 | } while (0) | 47 | } while (0) |
| 48 | 48 | ||
| 49 | #define IP6_ECN_flow_xmit(sk, label) do { \ | 49 | #define IP6_ECN_flow_xmit(sk, label) do { \ |
| 50 | if (INET_ECN_is_capable(inet_sk(sk)->tos)) \ | 50 | if (INET_ECN_is_capable(inet6_sk(sk)->tclass)) \ |
| 51 | (label) |= htonl(INET_ECN_ECT_0 << 20); \ | 51 | (label) |= htonl(INET_ECN_ECT_0 << 20); \ |
| 52 | } while (0) | 52 | } while (0) |
| 53 | 53 | ||
diff --git a/include/net/sctp/command.h b/include/net/sctp/command.h index 10ae2da6f93b..35b1e83fb96a 100644 --- a/include/net/sctp/command.h +++ b/include/net/sctp/command.h | |||
| @@ -104,6 +104,7 @@ typedef enum { | |||
| 104 | SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */ | 104 | SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */ |
| 105 | SCTP_CMD_ASSOC_SHKEY, /* generate the association shared keys */ | 105 | SCTP_CMD_ASSOC_SHKEY, /* generate the association shared keys */ |
| 106 | SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */ | 106 | SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */ |
| 107 | SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */ | ||
| 107 | SCTP_CMD_LAST | 108 | SCTP_CMD_LAST |
| 108 | } sctp_verb_t; | 109 | } sctp_verb_t; |
| 109 | 110 | ||
diff --git a/include/net/sctp/ulpevent.h b/include/net/sctp/ulpevent.h index 9bcfc12275e8..7ea12e8e6676 100644 --- a/include/net/sctp/ulpevent.h +++ b/include/net/sctp/ulpevent.h | |||
| @@ -67,7 +67,7 @@ struct sctp_ulpevent { | |||
| 67 | }; | 67 | }; |
| 68 | 68 | ||
| 69 | /* Retrieve the skb this event sits inside of. */ | 69 | /* Retrieve the skb this event sits inside of. */ |
| 70 | static inline struct sk_buff *sctp_event2skb(struct sctp_ulpevent *ev) | 70 | static inline struct sk_buff *sctp_event2skb(const struct sctp_ulpevent *ev) |
| 71 | { | 71 | { |
| 72 | return container_of((void *)ev, struct sk_buff, cb); | 72 | return container_of((void *)ev, struct sk_buff, cb); |
| 73 | } | 73 | } |
diff --git a/include/net/tcp.h b/include/net/tcp.h index 7de4ea3a04d9..4fd3eb2f8ec2 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -752,6 +752,8 @@ static inline unsigned int tcp_packets_in_flight(const struct tcp_sock *tp) | |||
| 752 | return tp->packets_out - tcp_left_out(tp) + tp->retrans_out; | 752 | return tp->packets_out - tcp_left_out(tp) + tp->retrans_out; |
| 753 | } | 753 | } |
| 754 | 754 | ||
| 755 | extern int tcp_limit_reno_sacked(struct tcp_sock *tp); | ||
| 756 | |||
| 755 | /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. | 757 | /* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd. |
| 756 | * The exception is rate halving phase, when cwnd is decreasing towards | 758 | * The exception is rate halving phase, when cwnd is decreasing towards |
| 757 | * ssthresh. | 759 | * ssthresh. |
