Skip to content

Commit

Permalink
[TG3]: Fix bug in setting a tg3_flag
Browse files Browse the repository at this point in the history
Found a bug while reviewing the patches the second time.

The TG3_FLAG_TXD_MBOX_HWBUG flag is set after the register access
methods have been determined. This patch fixes it by moving it up before
the various access methods are assigned.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Michael Chan authored and David S. Miller committed Aug 29, 2005
1 parent 15f5a58 commit 087fe25
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -9408,6 +9408,12 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
}
}

/* 5700 BX chips need to have their TX producer index mailboxes
* written twice to workaround a bug.
*/
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5700_BX)
tp->tg3_flags |= TG3_FLAG_TXD_MBOX_HWBUG;

/* Back to back register writes can cause problems on this chip,
* the workaround is to read back all reg writes except those to
* mailbox regs. See tg3_write_indirect_reg32().
Expand Down Expand Up @@ -9682,14 +9688,6 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
else
tp->tg3_flags &= ~TG3_FLAG_POLL_SERDES;

/* 5700 BX chips need to have their TX producer index mailboxes
* written twice to workaround a bug.
*/
if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5700_BX)
tp->tg3_flags |= TG3_FLAG_TXD_MBOX_HWBUG;
else
tp->tg3_flags &= ~TG3_FLAG_TXD_MBOX_HWBUG;

/* It seems all chips can get confused if TX buffers
* straddle the 4GB address boundary in some cases.
*/
Expand Down

0 comments on commit 087fe25

Please sign in to comment.