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

Commit c2188952 authored by Vladislav Zolotarov's avatar Vladislav Zolotarov Committed by David S. Miller
Browse files

bnx2x: fix rx ring size report



Store the size in bp, read from bp when queried.

Signed-off-by: default avatarDmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: default avatarVladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5f837363
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -3091,15 +3091,20 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
	struct bnx2x_fastpath *fp = &bp->fp[index];
	int ring_size = 0;
	u8 cos;
	int rx_ring_size = 0;

	/* if rx_ring_size specified - use it */
	int rx_ring_size = bp->rx_ring_size ? bp->rx_ring_size :
			   MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp);
	if (!bp->rx_ring_size) {

		rx_ring_size = MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp);

		/* allocate at least number of buffers required by FW */
		rx_ring_size = max_t(int, bp->disable_tpa ? MIN_RX_SIZE_NONTPA :
						    MIN_RX_SIZE_TPA,
				  rx_ring_size);
				     MIN_RX_SIZE_TPA, rx_ring_size);

		bp->rx_ring_size = rx_ring_size;
	} else
		rx_ring_size = bp->rx_ring_size;

	/* Common */
	sb = &bnx2x_fp(bp, index, status_blk);
+1 −4
Original line number Diff line number Diff line
@@ -1309,9 +1309,6 @@ static void bnx2x_get_ringparam(struct net_device *dev,

	if (bp->rx_ring_size)
		ering->rx_pending = bp->rx_ring_size;
	else
		if (bp->state == BNX2X_STATE_OPEN && bp->num_queues)
			ering->rx_pending = MAX_RX_AVAIL/bp->num_queues;
	else
		ering->rx_pending = MAX_RX_AVAIL;