summaryrefslogtreecommitdiffstats
path: root/net/caif/caif_dev.c
diff options
context:
space:
mode:
authorsjur.brandeland@stericsson.com <sjur.brandeland@stericsson.com>2012-01-17 04:03:14 +0100
committerDavid S. Miller <davem@davemloft.net>2012-01-17 16:46:55 +0100
commit59f608d84f937cb5e2fd3a0b9f848f200d47ba85 (patch)
tree1f2e58895a410e494c910176f401cea24dabff7d /net/caif/caif_dev.c
parentcaif: Fix typo in Vendor/Product-ID for CAIF modems (diff)
downloadlinux-59f608d84f937cb5e2fd3a0b9f848f200d47ba85.tar.xz
linux-59f608d84f937cb5e2fd3a0b9f848f200d47ba85.zip
caif: Remove bad WARN_ON in caif_dev
Remove WARN_ON and bad handling of SKB without destructor callback in caif_flow_cb. SKB without destructor cannot be handled as an error case. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/caif/caif_dev.c')
-rw-r--r--net/caif/caif_dev.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c
index 61570ee76fe6..673728add60b 100644
--- a/net/caif/caif_dev.c
+++ b/net/caif/caif_dev.c
@@ -146,15 +146,17 @@ void caif_flow_cb(struct sk_buff *skb)
spin_lock_bh(&caifd->flow_lock);
send_xoff = caifd->xoff;
caifd->xoff = 0;
- if (!WARN_ON(caifd->xoff_skb_dtor == NULL)) {
- WARN_ON(caifd->xoff_skb != skb);
- dtor = caifd->xoff_skb_dtor;
- caifd->xoff_skb = NULL;
- caifd->xoff_skb_dtor = NULL;
- }
+ dtor = caifd->xoff_skb_dtor;
+
+ if (WARN_ON(caifd->xoff_skb != skb))
+ skb = NULL;
+
+ caifd->xoff_skb = NULL;
+ caifd->xoff_skb_dtor = NULL;
+
spin_unlock_bh(&caifd->flow_lock);
- if (dtor)
+ if (dtor && skb)
dtor(skb);
if (send_xoff)