diff options
author | Jon Mason <jon.mason@intel.com> | 2013-11-22 18:50:57 -0500 |
---|---|---|
committer | Jon Mason <jon.mason@intel.com> | 2014-04-07 13:58:14 -0400 |
commit | e8bc2ebdceea3c0c6de16d899f0679654c308739 (patch) | |
tree | ff32b932c5e70791c9f23544ece0c2de10700ee9 | |
parent | fea903ecd799ec49a2ebc4cc8cfb7bb96fd31ddc (diff) |
ntb_netdev: Fix skb free issue in open
In ntb_netdev_open, when ntb_transport_rx_enqueue fails the skb that was
attempting to be enqueued is not freed. Free this skb on the
ntb_transport_rx_enqueue error.
Signed-off-by: Jon Mason <jon.mason@intel.com>
-rw-r--r-- | drivers/net/ntb_netdev.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c index 8298880bfdd8..8e6752fd89ac 100644 --- a/drivers/net/ntb_netdev.c +++ b/drivers/net/ntb_netdev.c | |||
@@ -182,8 +182,10 @@ static int ntb_netdev_open(struct net_device *ndev) | |||
182 | 182 | ||
183 | rc = ntb_transport_rx_enqueue(dev->qp, skb, skb->data, | 183 | rc = ntb_transport_rx_enqueue(dev->qp, skb, skb->data, |
184 | ndev->mtu + ETH_HLEN); | 184 | ndev->mtu + ETH_HLEN); |
185 | if (rc == -EINVAL) | 185 | if (rc == -EINVAL) { |
186 | dev_kfree_skb(skb); | ||
186 | goto err; | 187 | goto err; |
188 | } | ||
187 | } | 189 | } |
188 | 190 | ||
189 | netif_carrier_off(ndev); | 191 | netif_carrier_off(ndev); |