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-x86/linkage.h | 35 | ||||
-rw-r--r-- | include/linux/Kbuild | 2 | ||||
-rw-r--r-- | include/linux/if_tun.h | 39 | ||||
-rw-r--r-- | include/linux/ipv6.h | 2 | ||||
-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/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 |
15 files changed, 107 insertions, 59 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-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/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/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/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/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. |