summaryrefslogtreecommitdiff
path: root/net/sched
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@google.com>2017-05-03 08:50:11 -0700
committerGreg Kroah-Hartman <gregkh@google.com>2017-05-03 08:50:11 -0700
commit24ac44dc5c56770e9dbaa9024cb957a000b6c1b7 (patch)
tree24782019455b314970cd2b3550e7de31ef4c2475 /net/sched
parent1f48a715af37ceffd86ee7a5f693dd2ca2dda892 (diff)
parent0c49a2c16ca93e2e4e68e21dbc95e9466a01bbdb (diff)
Merge 4.4.66 into android-4.4
Changes in 4.4.66: f2fs: do more integrity verification for superblock xc2028: unlock on error in xc2028_set_config() ARM: OMAP2+: timer: add probe for clocksources clk: sunxi: Add apb0 gates for H3 crypto: testmgr - fix out of bound read in __test_aead() drm/amdgpu: fix array out of bounds ext4: check if in-inode xattr is corrupted in ext4_expand_extra_isize_ea() md:raid1: fix a dead loop when read from a WriteMostly disk MIPS: Fix crash registers on non-crashing CPUs net: cavium: liquidio: Avoid dma_unmap_single on uninitialized ndata net_sched: close another race condition in tcf_mirred_release() RDS: Fix the atomicity for congestion map update regulator: core: Clear the supply pointer if enabling fails usb: gadget: f_midi: Fixed a bug when buflen was smaller than wMaxPacketSize xen/x86: don't lose event interrupts sparc64: kern_addr_valid regression sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write() net: neigh: guard against NULL solicit() method net: phy: handle state correctly in phy_stop_machine l2tp: purge socket queues in the .destruct() callback net/packet: fix overflow in check for tp_frame_nr net/packet: fix overflow in check for tp_reserve l2tp: take reference on sessions being dumped l2tp: fix PPP pseudo-wire auto-loading net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given sctp: listen on the sock only when it's state is listening or closed tcp: clear saved_syn in tcp_disconnect() dp83640: don't recieve time stamps twice net: ipv6: RTF_PCPU should not be settable from userspace netpoll: Check for skb->queue_mapping ip6mr: fix notification device destruction macvlan: Fix device ref leak when purging bc_queue ipv6: check skb->protocol before lookup for nexthop ipv6: check raw payload size correctly in ioctl ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type ALSA: seq: Don't break snd_use_lock_sync() loop by timeout MIPS: KGDB: Use kernel context for sleeping threads MIPS: Avoid BUG warning in arch_check_elf p9_client_readdir() fix Input: i8042 - add Clevo P650RS to the i8042 reset list nfsd: check for oversized NFSv2/v3 arguments ARCv2: save r30 on kernel entry as gcc uses it for code-gen ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram Linux 4.4.66 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'net/sched')
-rw-r--r--net/sched/act_mirred.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c
index e384d6aefa3a..1090a52c03cd 100644
--- a/net/sched/act_mirred.c
+++ b/net/sched/act_mirred.c
@@ -36,14 +36,15 @@ static DEFINE_SPINLOCK(mirred_list_lock);
static void tcf_mirred_release(struct tc_action *a, int bind)
{
struct tcf_mirred *m = to_mirred(a);
- struct net_device *dev = rcu_dereference_protected(m->tcfm_dev, 1);
+ struct net_device *dev;
/* We could be called either in a RCU callback or with RTNL lock held. */
spin_lock_bh(&mirred_list_lock);
list_del(&m->tcfm_list);
- spin_unlock_bh(&mirred_list_lock);
+ dev = rcu_dereference_protected(m->tcfm_dev, 1);
if (dev)
dev_put(dev);
+ spin_unlock_bh(&mirred_list_lock);
}
static const struct nla_policy mirred_policy[TCA_MIRRED_MAX + 1] = {