summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincenzo Maffione <v.maffione@gmail.com>2014-04-12 11:55:40 +0200
committerDavid S. Miller <davem@davemloft.net>2014-04-12 22:49:06 +0200
commit810d8cedcc880dca8b64e05fe1331ab5d4f8d992 (patch)
tree0c67703de5b8dde209e5bee3a54cbe76ca30c1bd
parentMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsh... (diff)
downloadlinux-810d8cedcc880dca8b64e05fe1331ab5d4f8d992.tar.xz
linux-810d8cedcc880dca8b64e05fe1331ab5d4f8d992.zip
drivers: net: xen-netfront: fix array initialization bug
This patch fixes the initialization of an array used in the TX datapath that was mistakenly initialized together with the RX datapath arrays. An out of range array access could happen when RX and TX rings had different sizes. Signed-off-by: Vincenzo Maffione <v.maffione@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/xen-netfront.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 057b05700f8b..158b5e639fc7 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1291,13 +1291,13 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)
for (i = 0; i < NET_TX_RING_SIZE; i++) {
skb_entry_set_link(&np->tx_skbs[i], i+1);
np->grant_tx_ref[i] = GRANT_INVALID_REF;
+ np->grant_tx_page[i] = NULL;
}
/* Clear out rx_skbs */
for (i = 0; i < NET_RX_RING_SIZE; i++) {
np->rx_skbs[i] = NULL;
np->grant_rx_ref[i] = GRANT_INVALID_REF;
- np->grant_tx_page[i] = NULL;
}
/* A grant for every tx ring slot */