Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (55 commits) sctp: fix random memory dereference with SCTP_HMAC_IDENT option. sctp: correct bounds check in sctp_setsockopt_auth_key wan: Missing capability checks in sbni_ioctl() e100, fix iomap read qeth: preallocated header account offset qeth: l2 write unicast list to hardware qeth: use -EOPNOTSUPP instead of -ENOTSUPP. ibm_newemac: Don't call dev_mc_add() before device is registered net: don't grab a mutex within a timer context in gianfar forcedeth: fix checksum flag net/usb/mcs7830: add set_mac_address net/usb/mcs7830: new device IDs [netdrvr] smc91x: fix resource removal (null ptr deref) ibmveth: fix bad UDP checksums [netdrvr] hso: dev_kfree_skb crash fix [netdrvr] hso: icon 322 detection fix atl1: disable TSO by default atl1e: multistatement if missing braces igb: remove 82576 quad adapter drivers/net/skfp/ess.c: fix compile warnings ...
This commit is contained in:
@@ -217,6 +217,14 @@ static inline spinlock_t *qdisc_root_lock(struct Qdisc *qdisc)
|
||||
return qdisc_lock(root);
|
||||
}
|
||||
|
||||
static inline spinlock_t *qdisc_root_sleeping_lock(struct Qdisc *qdisc)
|
||||
{
|
||||
struct Qdisc *root = qdisc_root_sleeping(qdisc);
|
||||
|
||||
ASSERT_RTNL();
|
||||
return qdisc_lock(root);
|
||||
}
|
||||
|
||||
static inline struct net_device *qdisc_dev(struct Qdisc *qdisc)
|
||||
{
|
||||
return qdisc->dev_queue->dev;
|
||||
@@ -224,12 +232,12 @@ static inline struct net_device *qdisc_dev(struct Qdisc *qdisc)
|
||||
|
||||
static inline void sch_tree_lock(struct Qdisc *q)
|
||||
{
|
||||
spin_lock_bh(qdisc_root_lock(q));
|
||||
spin_lock_bh(qdisc_root_sleeping_lock(q));
|
||||
}
|
||||
|
||||
static inline void sch_tree_unlock(struct Qdisc *q)
|
||||
{
|
||||
spin_unlock_bh(qdisc_root_lock(q));
|
||||
spin_unlock_bh(qdisc_root_sleeping_lock(q));
|
||||
}
|
||||
|
||||
#define tcf_tree_lock(tp) sch_tree_lock((tp)->q)
|
||||
|
||||
Reference in New Issue
Block a user