netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David S. Miller" <davem@davemloft.net>
To: Peter Chubb <peterc@gelato.unsw.edu.au>
Cc: peterc@gelato.unsw.edu.au, netdev@oss.sgi.com
Subject: Re: TG3 fix for slow switches (Was: TG3 driver failure on HP 16-way)
Date: Mon, 20 Dec 2004 22:19:36 -0800	[thread overview]
Message-ID: <20041220221936.056b6812.davem@davemloft.net> (raw)
In-Reply-To: <16839.30796.413939.333935@wombat.chubb.wattle.id.au>

On Tue, 21 Dec 2004 12:11:40 +1100
Peter Chubb <peterc@gelato.unsw.edu.au> wrote:

> It doesn't work because tg3_readphy sets bmsr to 0xffffffff even if it
> can't read the value.  This breaks that loop early; and because
> BBMSR_LSTATUS is set, all sorts of things happen before the card is ready.
> 
> Why is tg3_readphys returning 0xffffffff if it can't read a value anyway?

Because callers are not supposed to depend upon the value being set
to anything valid if tg3_readphy() returns an error.

I thought it should never be returning an error at this spot.  The
PHY should always return a valid value within PHY_BUSY_LOOPS.  If
MI_COM_BUSY is staying set for such a long time that's a pretty
serious problem.

Taking a peek at the bcm5700 driver by Broadcom, they handle all PHY read
timeouts the way your patch does in this one spot, by setting the returned
value to zero.  So it seems the device can time out like that in these
situations, and your patch is something close to the correct fix.

Good catch Peter, I'll think some more about this and probably end
up using something similar to your second patch.

Thanks.

  reply	other threads:[~2004-12-21  6:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-21  0:12 TG3 fix for slow switches (Was: TG3 driver failure on HP 16-way) Peter Chubb
2004-12-21  0:15 ` David S. Miller
2004-12-21  1:11   ` Peter Chubb
2004-12-21  6:19     ` David S. Miller [this message]
2005-01-06 23:19     ` David S. Miller
2005-01-07  0:17       ` Darren Williams
2005-01-07  3:48         ` David S. Miller
2005-01-07  5:30           ` Darren Williams
2005-01-07  5:28             ` David S. Miller
2005-01-07  9:25               ` Darren Williams
  -- strict thread matches above, loose matches on Subject: below --
2004-12-23  0:02 Michael Chan
2004-12-23  4:31 ` David S. Miller
2005-05-31 15:38 ` Grant Grundler
2005-05-31 17:22   ` Michael Chan
2005-05-31 18:36     ` Grant Grundler
2005-05-31 17:42       ` Michael Chan
2005-05-31 19:03         ` Grant Grundler
2005-05-31 18:22           ` Michael Chan
2004-12-23  8:14 Michael Chan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041220221936.056b6812.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=netdev@oss.sgi.com \
    --cc=peterc@gelato.unsw.edu.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).