Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 810d8ced authored by Vincenzo Maffione's avatar Vincenzo Maffione Committed by David S. Miller
Browse files

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: default avatarVincenzo Maffione <v.maffione@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dcfba949
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1291,13 +1291,13 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)
	for (i = 0; i < NET_TX_RING_SIZE; i++) {
	for (i = 0; i < NET_TX_RING_SIZE; i++) {
		skb_entry_set_link(&np->tx_skbs[i], i+1);
		skb_entry_set_link(&np->tx_skbs[i], i+1);
		np->grant_tx_ref[i] = GRANT_INVALID_REF;
		np->grant_tx_ref[i] = GRANT_INVALID_REF;
		np->grant_tx_page[i] = NULL;
	}
	}


	/* Clear out rx_skbs */
	/* Clear out rx_skbs */
	for (i = 0; i < NET_RX_RING_SIZE; i++) {
	for (i = 0; i < NET_RX_RING_SIZE; i++) {
		np->rx_skbs[i] = NULL;
		np->rx_skbs[i] = NULL;
		np->grant_rx_ref[i] = GRANT_INVALID_REF;
		np->grant_rx_ref[i] = GRANT_INVALID_REF;
		np->grant_tx_page[i] = NULL;
	}
	}


	/* A grant for every tx ring slot */
	/* A grant for every tx ring slot */