summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2017-10-20 11:29:55 -0700
committerDavid S. Miller <davem@davemloft.net>2017-10-22 03:13:19 +0100
commit7dbfb4ef77db5666f0f3a425e7db93ca30ff4285 (patch)
tree94d623cfd54d163441c39b3bb26dab37e1e51ff6
parent02db34d04ecb5e4bb590eb7baf1c12c82ad68ac9 (diff)
downloadlinux-7dbfb4ef77db5666f0f3a425e7db93ca30ff4285.tar.bz2
tun: do not block BH again in tun_flow_cleanup()
tun_flow_cleanup() being a timer callback, it is already running in BH context. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/tun.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 3b41c36eae90..f9541f7f9fb7 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -454,7 +454,7 @@ static void tun_flow_cleanup(unsigned long data)
tun_debug(KERN_INFO, tun, "tun_flow_cleanup\n");
- spin_lock_bh(&tun->lock);
+ spin_lock(&tun->lock);
for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) {
struct tun_flow_entry *e;
struct hlist_node *n;
@@ -472,7 +472,7 @@ static void tun_flow_cleanup(unsigned long data)
if (count)
mod_timer(&tun->flow_gc_timer, round_jiffies_up(next_timer));
- spin_unlock_bh(&tun->lock);
+ spin_unlock(&tun->lock);
}
static void tun_flow_update(struct tun_struct *tun, u32 rxhash,