From: Stephan von Krawczynski <skraw@ithnet.com>
To: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Severe problem with e1000 driver in 2.4.31/32 (at least)
Date: Fri, 17 Feb 2006 14:04:21 +0100 [thread overview]
Message-ID: <20060217140421.3f049719.skraw@ithnet.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0602161344240.5564@lindenhurst-2.jf.intel.com>
On Thu, 16 Feb 2006 13:49:12 -0800 (PST)
Jesse Brandeburg <jesse.brandeburg@intel.com> wrote:
> > The box runs into a BUG in e1000_hw.c line 5052. The BUG shows up because
> > the code is obviously executed inside an interrupt, which seems not
> > intended. As this BUG is always reproducable and pretty annoying we made
> > this pretty bad workaround:
>
> Please try this patch, compile tested. It matches up this particular code
> to what is currently in 2.6.16-rc
>
> e1000: fix BUG reported due to calling msec_delay in irq context
>
> There are some functions that are called in irq context that need to use
> msec_delay_irq instead to avoid a BUG.
>
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Hello Jesse,
I can confirm the patch eliminates the problem here. I first thought about
doing it the same way but was unsure whether the function itself should execute
in interrupt at all.
Thank you for your immediate answer, please make sure to include the patch as
is in 2.4.
Stephan
>
> ---
>
> drivers/net/e1000/e1000_hw.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
> --- a/drivers/net/e1000/e1000_hw.c
> +++ b/drivers/net/e1000/e1000_hw.c
> @@ -5049,7 +5049,7 @@ e1000_config_dsp_after_link_change(struc
> if(ret_val)
> return ret_val;
>
> - msec_delay(20);
> + msec_delay_irq(20);
>
> ret_val = e1000_write_phy_reg(hw, 0x0000,
> IGP01E1000_IEEE_FORCE_GIGA);
> @@ -5073,7 +5073,7 @@ e1000_config_dsp_after_link_change(struc
> if(ret_val)
> return ret_val;
>
> - msec_delay(20);
> + msec_delay_irq(20);
>
> /* Now enable the transmitter */
> ret_val = e1000_write_phy_reg(hw, 0x2F5B, phy_saved_data);
> @@ -5098,7 +5098,7 @@ e1000_config_dsp_after_link_change(struc
> if(ret_val)
> return ret_val;
>
> - msec_delay(20);
> + msec_delay_irq(20);
>
> ret_val = e1000_write_phy_reg(hw, 0x0000,
> IGP01E1000_IEEE_FORCE_GIGA);
> @@ -5114,7 +5114,7 @@ e1000_config_dsp_after_link_change(struc
> if(ret_val)
> return ret_val;
>
> - msec_delay(20);
> + msec_delay_irq(20);
>
> /* Now enable the transmitter */
> ret_val = e1000_write_phy_reg(hw, 0x2F5B, phy_saved_data);
>
prev parent reply other threads:[~2006-02-17 13:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-16 19:39 Stephan von Krawczynski
[not found] ` <4807377b0602161342l4b46fa3cu26a007789ba08443@mail.gmail.com>
2006-02-16 21:49 ` Jesse Brandeburg
2006-02-17 13:04 ` Stephan von Krawczynski [this message]
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=20060217140421.3f049719.skraw@ithnet.com \
--to=skraw@ithnet.com \
--cc=jesse.brandeburg@intel.com \
--cc=linux-kernel@vger.kernel.org \
/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
Powered by JetHome