Skip to content

Commit

Permalink
tg3: Disable multivec mode for 1 MSIX vector
Browse files Browse the repository at this point in the history
For single vector MSI-X allocations, we do not want to enable
multivector modes.  This patch makes the necessary corrections.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Matt Carlson authored and David S. Miller committed Jan 26, 2011
1 parent bf933c8 commit 0583d52
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -8322,7 +8322,8 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl);
udelay(100);

if (tp->tg3_flags2 & TG3_FLG2_USING_MSIX) {
if ((tp->tg3_flags2 & TG3_FLG2_USING_MSIX) &&
tp->irq_cnt > 1) {
val = tr32(MSGINT_MODE);
val |= MSGINT_MODE_MULTIVEC_EN | MSGINT_MODE_ENABLE;
tw32(MSGINT_MODE, val);
Expand Down Expand Up @@ -9062,7 +9063,8 @@ static void tg3_ints_init(struct tg3 *tp)

if (tp->tg3_flags2 & TG3_FLG2_USING_MSI_OR_MSIX) {
u32 msi_mode = tr32(MSGINT_MODE);
if (tp->tg3_flags2 & TG3_FLG2_USING_MSIX)
if ((tp->tg3_flags2 & TG3_FLG2_USING_MSIX) &&
tp->irq_cnt > 1)
msi_mode |= MSGINT_MODE_MULTIVEC_EN;
tw32(MSGINT_MODE, msi_mode | MSGINT_MODE_ENABLE);
}
Expand Down

0 comments on commit 0583d52

Please sign in to comment.