From 95debe03abf329784b8f093bc21d2dd72ae52cf4 Mon Sep 17 00:00:00 2001 From: "sjur.brandeland@stericsson.com" Date: Sun, 22 May 2011 11:18:54 +0000 Subject: [PATCH] --- yaml --- r: 247956 b: refs/heads/master c: 69c867c90c7fe0773d9aa4e8bbf777f574be13d2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/caif/caif_dev.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cb71b90feed1..9fc86f9112be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 138eded8ba1227261a297b32b7940664c14d193e +refs/heads/master: 69c867c90c7fe0773d9aa4e8bbf777f574be13d2 diff --git a/trunk/net/caif/caif_dev.c b/trunk/net/caif/caif_dev.c index 366ca0fb7a29..682c0fedf360 100644 --- a/trunk/net/caif/caif_dev.c +++ b/trunk/net/caif/caif_dev.c @@ -142,6 +142,7 @@ static int receive(struct sk_buff *skb, struct net_device *dev, { struct cfpkt *pkt; struct caif_device_entry *caifd; + int err; pkt = cfpkt_fromnative(CAIF_DIR_IN, skb); @@ -159,7 +160,11 @@ static int receive(struct sk_buff *skb, struct net_device *dev, caifd_hold(caifd); rcu_read_unlock(); - caifd->layer.up->receive(caifd->layer.up, pkt); + err = caifd->layer.up->receive(caifd->layer.up, pkt); + + /* For -EILSEQ the packet is not freed so so it now */ + if (err == -EILSEQ) + cfpkt_destroy(pkt); /* Release reference to stack upwards */ caifd_put(caifd);