Commit 48035728 authored by Matt Carlson's avatar Matt Carlson Committed by David S. Miller

tg3: Don't allocate jumbo ring for 5780 class devs

The 5714, 5715, and 5780 devices do not have a separate rx jumbo
producer ring.  This patch changes the code so that resources are not
allocated for it.
Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
Reviewed-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f94e290e
...@@ -6219,7 +6219,8 @@ static void tg3_rx_prodring_free(struct tg3 *tp, ...@@ -6219,7 +6219,8 @@ static void tg3_rx_prodring_free(struct tg3 *tp,
tg3_rx_skb_free(tp, &tpr->rx_std_buffers[i], tg3_rx_skb_free(tp, &tpr->rx_std_buffers[i],
tp->rx_pkt_map_sz); tp->rx_pkt_map_sz);
if (tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE) { if ((tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE) &&
!(tp->tg3_flags2 & TG3_FLG2_5780_CLASS)) {
for (i = 0; i <= tp->rx_jmb_ring_mask; i++) for (i = 0; i <= tp->rx_jmb_ring_mask; i++)
tg3_rx_skb_free(tp, &tpr->rx_jmb_buffers[i], tg3_rx_skb_free(tp, &tpr->rx_jmb_buffers[i],
TG3_RX_JMB_MAP_SZ); TG3_RX_JMB_MAP_SZ);
...@@ -6246,7 +6247,7 @@ static int tg3_rx_prodring_alloc(struct tg3 *tp, ...@@ -6246,7 +6247,7 @@ static int tg3_rx_prodring_alloc(struct tg3 *tp,
if (tpr != &tp->napi[0].prodring) { if (tpr != &tp->napi[0].prodring) {
memset(&tpr->rx_std_buffers[0], 0, memset(&tpr->rx_std_buffers[0], 0,
TG3_RX_STD_BUFF_RING_SIZE(tp)); TG3_RX_STD_BUFF_RING_SIZE(tp));
if (tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE) if (tpr->rx_jmb_buffers)
memset(&tpr->rx_jmb_buffers[0], 0, memset(&tpr->rx_jmb_buffers[0], 0,
TG3_RX_JMB_BUFF_RING_SIZE(tp)); TG3_RX_JMB_BUFF_RING_SIZE(tp));
goto done; goto done;
...@@ -6289,7 +6290,8 @@ static int tg3_rx_prodring_alloc(struct tg3 *tp, ...@@ -6289,7 +6290,8 @@ static int tg3_rx_prodring_alloc(struct tg3 *tp,
} }
} }
if (!(tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE)) if (!(tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE) ||
(tp->tg3_flags2 & TG3_FLG2_5780_CLASS))
goto done; goto done;
memset(tpr->rx_jmb, 0, TG3_RX_JMB_RING_BYTES(tp)); memset(tpr->rx_jmb, 0, TG3_RX_JMB_RING_BYTES(tp));
...@@ -6361,7 +6363,8 @@ static int tg3_rx_prodring_init(struct tg3 *tp, ...@@ -6361,7 +6363,8 @@ static int tg3_rx_prodring_init(struct tg3 *tp,
if (!tpr->rx_std) if (!tpr->rx_std)
goto err_out; goto err_out;
if (tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE) { if ((tp->tg3_flags & TG3_FLAG_JUMBO_CAPABLE) &&
!(tp->tg3_flags2 & TG3_FLG2_5780_CLASS)) {
tpr->rx_jmb_buffers = kzalloc(TG3_RX_JMB_BUFF_RING_SIZE(tp), tpr->rx_jmb_buffers = kzalloc(TG3_RX_JMB_BUFF_RING_SIZE(tp),
GFP_KERNEL); GFP_KERNEL);
if (!tpr->rx_jmb_buffers) if (!tpr->rx_jmb_buffers)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment