Message ID | 1286783444-7719-1-git-send-email-jslaby@suse.cz |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Le lundi 11 octobre 2010 à 09:50 +0200, Jiri Slaby a écrit : > Stanse found we do in console_show: > kfree_skb(skb); > return skb->len; > which is not good. Fix that by remembering the len and use it in the > function instead. > > Signed-off-by: Jiri Slaby <jslaby@suse.cz> > Cc: Chas Williams <chas@cmf.nrl.navy.mil> > --- Acked-by: Eric Dumazet <eric.dumazet@gmail.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Mon, 11 Oct 2010 10:19:29 +0200 > Le lundi 11 octobre 2010 à 09:50 +0200, Jiri Slaby a écrit : >> Stanse found we do in console_show: >> kfree_skb(skb); >> return skb->len; >> which is not good. Fix that by remembering the len and use it in the >> function instead. >> >> Signed-off-by: Jiri Slaby <jslaby@suse.cz> >> Cc: Chas Williams <chas@cmf.nrl.navy.mil> >> --- > > Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index f916ddf..f46138a 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c @@ -444,6 +444,7 @@ static ssize_t console_show(struct device *dev, struct device_attribute *attr, struct atm_dev *atmdev = container_of(dev, struct atm_dev, class_dev); struct solos_card *card = atmdev->dev_data; struct sk_buff *skb; + unsigned int len; spin_lock(&card->cli_queue_lock); skb = skb_dequeue(&card->cli_queue[SOLOS_CHAN(atmdev)]); @@ -451,11 +452,12 @@ static ssize_t console_show(struct device *dev, struct device_attribute *attr, if(skb == NULL) return sprintf(buf, "No data.\n"); - memcpy(buf, skb->data, skb->len); - dev_dbg(&card->dev->dev, "len: %d\n", skb->len); + len = skb->len; + memcpy(buf, skb->data, len); + dev_dbg(&card->dev->dev, "len: %d\n", len); kfree_skb(skb); - return skb->len; + return len; } static int send_command(struct solos_card *card, int dev, const char *buf, size_t size)
Stanse found we do in console_show: kfree_skb(skb); return skb->len; which is not good. Fix that by remembering the len and use it in the function instead. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Chas Williams <chas@cmf.nrl.navy.mil> --- drivers/atm/solos-pci.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)