diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-09-17 00:14:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-09-17 00:14:54 -0400 |
commit | edb1e9671a990e6eb9f593636deed7ac43ba9084 (patch) | |
tree | 1b8b592411d9d7e4321479f57cb6d1f38ec483e3 /net/sched/act_api.c | |
parent | fa890d586cc127ce72597ba0a909bfecf784e10c (diff) | |
parent | d9f30ec0b0d129b9cbf2b041a6a3159aa24592f6 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[VLAN]: Fix net_device leak.
[PPP] generic: Fix receive path data clobbering & non-linear handling
[PPP] generic: Call skb_cow_head before scribbling over skb
[NET] skbuff: Add skb_cow_head
[BRIDGE]: Kill clone argument to br_flood_*
[PPP] pppoe: Fill in header directly in __pppoe_xmit
[PPP] pppoe: Fix data clobbering in __pppoe_xmit and return value
[PPP] pppoe: Fix skb_unshare_check call position
[SCTP]: Convert bind_addr_list locking to RCU
[SCTP]: Add RCU synchronization around sctp_localaddr_list
[PKT_SCHED]: sch_cbq.c: Shut up uninitialized variable warning
[PKTGEN]: srcmac fix
[IPV6]: Fix source address selection.
[IPV4]: Just increment OutDatagrams once per a datagram.
[IPV6]: Just increment OutDatagrams once per a datagram.
[IPV6]: Fix unbalanced socket reference with MSG_CONFIRM.
[NET_SCHED] protect action config/dump from irqs
[NET]: Fix two issues wrt. SO_BINDTODEVICE.
Diffstat (limited to 'net/sched/act_api.c')
-rw-r--r-- | net/sched/act_api.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/sched/act_api.c b/net/sched/act_api.c index feef366cad5d..72cdb0fade20 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c | |||
@@ -68,7 +68,7 @@ static int tcf_dump_walker(struct sk_buff *skb, struct netlink_callback *cb, | |||
68 | int err = 0, index = -1,i = 0, s_i = 0, n_i = 0; | 68 | int err = 0, index = -1,i = 0, s_i = 0, n_i = 0; |
69 | struct rtattr *r ; | 69 | struct rtattr *r ; |
70 | 70 | ||
71 | read_lock(hinfo->lock); | 71 | read_lock_bh(hinfo->lock); |
72 | 72 | ||
73 | s_i = cb->args[0]; | 73 | s_i = cb->args[0]; |
74 | 74 | ||
@@ -96,7 +96,7 @@ static int tcf_dump_walker(struct sk_buff *skb, struct netlink_callback *cb, | |||
96 | } | 96 | } |
97 | } | 97 | } |
98 | done: | 98 | done: |
99 | read_unlock(hinfo->lock); | 99 | read_unlock_bh(hinfo->lock); |
100 | if (n_i) | 100 | if (n_i) |
101 | cb->args[0] += n_i; | 101 | cb->args[0] += n_i; |
102 | return n_i; | 102 | return n_i; |
@@ -156,13 +156,13 @@ struct tcf_common *tcf_hash_lookup(u32 index, struct tcf_hashinfo *hinfo) | |||
156 | { | 156 | { |
157 | struct tcf_common *p; | 157 | struct tcf_common *p; |
158 | 158 | ||
159 | read_lock(hinfo->lock); | 159 | read_lock_bh(hinfo->lock); |
160 | for (p = hinfo->htab[tcf_hash(index, hinfo->hmask)]; p; | 160 | for (p = hinfo->htab[tcf_hash(index, hinfo->hmask)]; p; |
161 | p = p->tcfc_next) { | 161 | p = p->tcfc_next) { |
162 | if (p->tcfc_index == index) | 162 | if (p->tcfc_index == index) |
163 | break; | 163 | break; |
164 | } | 164 | } |
165 | read_unlock(hinfo->lock); | 165 | read_unlock_bh(hinfo->lock); |
166 | 166 | ||
167 | return p; | 167 | return p; |
168 | } | 168 | } |