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

Commit 0989aa43 authored by Jeff Kirsher's avatar Jeff Kirsher Committed by root
Browse files

e1000: Fix lock up while setting ring parameters

parent 9f644d51
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -634,6 +634,9 @@ e1000_set_ringparam(struct net_device *netdev,
	struct e1000_rx_ring *rxdr, *rx_old, *rx_new;
	int i, err, tx_ring_size, rx_ring_size;

	if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending))
		return -EINVAL;

	tx_ring_size = sizeof(struct e1000_tx_ring) * adapter->num_tx_queues;
	rx_ring_size = sizeof(struct e1000_rx_ring) * adapter->num_rx_queues;

@@ -661,9 +664,6 @@ e1000_set_ringparam(struct net_device *netdev,
	txdr = adapter->tx_ring;
	rxdr = adapter->rx_ring;

	if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending))
		return -EINVAL;

	rxdr->count = max(ring->rx_pending,(uint32_t)E1000_MIN_RXD);
	rxdr->count = min(rxdr->count,(uint32_t)(mac_type < e1000_82544 ?
		E1000_MAX_RXD : E1000_MAX_82544_RXD));