浏览代码

tg3: Fix tx mailbox initialization

If a device supports MSI-X interrupts, the driver assumes TSS will be
available.  This is not true for the 57765.  This patch changes the code
so that only the default tx mailbox is initialized if TSS is not
available.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Matt Carlson 15 年之前
父节点
当前提交
c2353a3214
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      drivers/net/tg3.c

+ 4 - 1
drivers/net/tg3.c

@@ -7440,10 +7440,13 @@ static void tg3_rings_reset(struct tg3 *tp)
 		for (i = 1; i < TG3_IRQ_MAX_VECS; i++) {
 		for (i = 1; i < TG3_IRQ_MAX_VECS; i++) {
 			tp->napi[i].tx_prod = 0;
 			tp->napi[i].tx_prod = 0;
 			tp->napi[i].tx_cons = 0;
 			tp->napi[i].tx_cons = 0;
-			tw32_mailbox(tp->napi[i].prodmbox, 0);
+			if (tp->tg3_flags3 & TG3_FLG3_ENABLE_TSS)
+				tw32_mailbox(tp->napi[i].prodmbox, 0);
 			tw32_rx_mbox(tp->napi[i].consmbox, 0);
 			tw32_rx_mbox(tp->napi[i].consmbox, 0);
 			tw32_mailbox_f(tp->napi[i].int_mbox, 1);
 			tw32_mailbox_f(tp->napi[i].int_mbox, 1);
 		}
 		}
+		if (!(tp->tg3_flags3 & TG3_FLG3_ENABLE_TSS))
+			tw32_mailbox(tp->napi[0].prodmbox, 0);
 	} else {
 	} else {
 		tp->napi[0].tx_prod = 0;
 		tp->napi[0].tx_prod = 0;
 		tp->napi[0].tx_cons = 0;
 		tp->napi[0].tx_cons = 0;