From 4ef37cdc8d0036f9d938aba1ce5e3800bfbdb46e Mon Sep 17 00:00:00 2001 From: Dmitry Tarnyagin Date: Thu, 13 Oct 2011 11:29:24 +0000 Subject: [PATCH] --- yaml --- r: 266850 b: refs/heads/master c: 73033c987a8bd0b080509063bb7c130b8941ad73 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/caif/caif_hsi.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 8c1ab22a3e56..b1a5bd85f935 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fe47f1250805438fa06580c9ce6d37bc4bc595d2 +refs/heads/master: 73033c987a8bd0b080509063bb7c130b8941ad73 diff --git a/trunk/drivers/net/caif/caif_hsi.c b/trunk/drivers/net/caif/caif_hsi.c index 36da27b50114..82c4d6ca2d3f 100644 --- a/trunk/drivers/net/caif/caif_hsi.c +++ b/trunk/drivers/net/caif/caif_hsi.c @@ -551,7 +551,9 @@ static void cfhsi_rx_done_work(struct work_struct *work) return; /* Update inactivity timer if pending. */ + spin_lock_bh(&cfhsi->lock); mod_timer_pending(&cfhsi->timer, jiffies + CFHSI_INACTIVITY_TOUT); + spin_unlock_bh(&cfhsi->lock); if (cfhsi->rx_state == CFHSI_RX_STATE_DESC) { desc_pld_len = cfhsi_rx_desc(desc, cfhsi); @@ -866,10 +868,10 @@ static int cfhsi_xmit(struct sk_buff *skb, struct net_device *dev) start_xfer = 1; } - spin_unlock_bh(&cfhsi->lock); - - if (!start_xfer) + if (!start_xfer) { + spin_unlock_bh(&cfhsi->lock); return 0; + } /* Delete inactivity timer if started. */ #ifdef CONFIG_SMP @@ -878,6 +880,8 @@ static int cfhsi_xmit(struct sk_buff *skb, struct net_device *dev) timer_active = del_timer(&cfhsi->timer); #endif /* CONFIG_SMP */ + spin_unlock_bh(&cfhsi->lock); + if (timer_active) { struct cfhsi_desc *desc = (struct cfhsi_desc *)cfhsi->tx_buf; int len;