From: Evgeniy Polyakov <johnpol-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
To: Alan Cox <alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
Cc: Arjan van de Ven <arjan-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
ipw2100-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
yi.zhu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
reinette.chatre-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
jgarzik-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org,
linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org,
davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org,
holtmann-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org
Subject: Re: Mark IPW2100 as BROKEN: Fatal interrupt. Scheduling firmware restart.
Date: Fri, 26 Sep 2008 09:56:52 +0400 [thread overview]
Message-ID: <20080926055651.GA19560@2ka.mipt.ru> (raw)
In-Reply-To: <20080921205744.2d78f1fa-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
On Sun, Sep 21, 2008 at 08:57:44PM +0100, Alan Cox (alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org) wrote:
> > Getting the fact, that rmmod/insmod does not always fix the problem (but
> > most of the time for a short period of time), I again want to point,
> > that it looks like a firmware problem related to some inner timings. You
> > ask me to fix the driver and do not even listen to what I said
> > previously and do not get that into account and analyze.
>
> Try putting it into D3 counting to 10 and powering it back up. Thats
> about as close as you can get to pulling the plug when it hangs.
I made several experimetns with power states in reset handler,
like put to d3 (hot), disable device, save/resetore states.
Fatal interrupts continue to fire with essentially the same rate.
The same error address does not always contain the same error value, but
frequently it is finit small set.
Here are some data:
[41773.200686] ipw2100: Fatal interrupt. Scheduling firmware restart.
[41773.200707] eth1: Fatal error value: 0x500185B8, address: 0x08004501,
inta: 0x40000000
[41773.200810] ipw2100 0000:02:04.0: PCI INT A disabled
[41773.203110] ipw2100: IRQ INTA == 0xFFFFFFFF
[41773.224446] ipw2100: IRQ INTA == 0xFFFFFFFF
[41773.245781] ipw2100: IRQ INTA == 0xFFFFFFFF
[41773.249360] ipw2100 0000:02:04.0: enabling device (0000 -> 0002)
[41773.249384] ipw2100 0000:02:04.0: PCI INT A -> Link[C0C8] -> GSI 11
(level, low) -> IRQ 11
[41773.249426] ipw2100 0000:02:04.0: restoring config space at
offset 0x1 (was 0x2900002, writing 0x2900006)
That is quite harmless, since interrupt handler just sees that device is
dissapearing. This brought me to think more about interrupt processing
(irq handler and related tasklet), and I found races between interrupt
tasklet, ipw2100_wx_event_work() handler, reset task and probably
others. Register access in some cases are proteceted by lock (interrupt
handler), and in some cases is not (all others). Although every user
first disables interrupts, but it can be handled right now and scheduled
tasklet already. Also priv->status field is frequently accessed and
modified with and without locks. This may be harmless, but still a red
flag.
Another data about the same failed address:
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x5000CEE4, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x5000CEE4, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x5000CEE4, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
eth1: Fatal error value: 0x50018584, address: 0x61C00000, inta:
0x40000000
values are quite limited, but I saw at different address wider set of
different data, but still limited. Addresses and values of the fatal
interrupt do not follow some immediately obvious law, so this looks more
like firmware losts its mind. The reason for this actually may be a
register access races described above. I will continue experiments with
this.
--
Evgeniy Polyakov
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-09-26 5:56 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-21 17:23 Mark IPW2100 as BROKEN: Fatal interrupt. Scheduling firmware restart Evgeniy Polyakov
2008-09-21 18:04 ` Arjan van de Ven
2008-09-21 18:28 ` Evgeniy Polyakov
2008-09-21 18:35 ` Arjan van de Ven
[not found] ` <20080921113513.16677c4e-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2008-09-21 18:52 ` Wei Weng
2008-09-21 19:20 ` Arjan van de Ven
2008-09-21 19:00 ` Evgeniy Polyakov
[not found] ` <20080921190050.GA20484-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 19:14 ` Johannes Berg
2008-09-21 19:38 ` Evgeniy Polyakov
[not found] ` <20080921193809.GA8735-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 19:43 ` Arjan van de Ven
2008-09-21 20:20 ` Evgeniy Polyakov
[not found] ` <20080921202057.GB25052-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 20:27 ` Arjan van de Ven
[not found] ` <20080921132753.5689b564-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2008-09-21 20:57 ` Evgeniy Polyakov
[not found] ` <20080921205706.GA24545-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 21:02 ` Arjan van de Ven
[not found] ` <20080921140203.4698a2ee-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2008-09-21 21:05 ` Evgeniy Polyakov
[not found] ` <20080921210554.GA2135-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 21:14 ` Arjan van de Ven
2008-09-21 23:27 ` Marcel Holtmann
2008-09-22 0:00 ` Evgeniy Polyakov
2008-09-21 21:43 ` Denys Fedoryshchenko
[not found] ` <200809220043.07345.denys-EpTYZhqHKuJnTudFRACr3A@public.gmane.org>
2008-09-21 22:07 ` Evgeniy Polyakov
[not found] ` <20080921220708.GA31413-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 22:15 ` Denys Fedoryshchenko
[not found] ` <200809220116.00133.denys-EpTYZhqHKuJnTudFRACr3A@public.gmane.org>
2008-09-21 23:46 ` Evgeniy Polyakov
2008-09-21 22:38 ` Alan Cox
[not found] ` <20080921233819.32714483-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2008-09-21 23:44 ` Evgeniy Polyakov
[not found] ` <20080921234403.GA17946-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 23:48 ` David Miller
2008-09-22 0:18 ` Evgeniy Polyakov
2008-09-22 14:22 ` Bill Davidsen
2008-09-21 20:05 ` Cyrill Gorcunov
2008-09-21 20:26 ` Evgeniy Polyakov
[not found] ` <20080921202656.GC25052-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 20:35 ` Cyrill Gorcunov
2008-09-21 21:06 ` Evgeniy Polyakov
2008-09-21 19:57 ` Alan Cox
[not found] ` <20080921205744.2d78f1fa-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2008-09-21 21:10 ` Evgeniy Polyakov
2008-09-26 5:56 ` Evgeniy Polyakov [this message]
2008-09-21 19:35 ` Marcel Holtmann
2008-09-21 21:12 ` Evgeniy Polyakov
2008-09-21 22:45 ` Matthew Garrett
[not found] ` <20080921172316.GA6306-9fLWQ3dKdXwox3rIn2DAYQ@public.gmane.org>
2008-09-21 17:36 ` Michael Buesch
[not found] ` <200809211936.00414.mb-fseUSCV1ubazQB+pC5nmwQ@public.gmane.org>
2008-09-21 17:38 ` Evgeniy Polyakov
2008-09-21 22:42 ` Matthew Garrett
2008-09-21 23:45 ` Evgeniy Polyakov
2008-09-22 16:21 ` [Ipw2100-devel] " Kenneth Crudup
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=20080926055651.GA19560@2ka.mipt.ru \
--to=johnpol-9flwq3dkdxwox3rin2dayq@public.gmane.org \
--cc=alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org \
--cc=arjan-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
--cc=holtmann-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=ipw2100-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=jgarzik-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
--cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=reinette.chatre-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=yi.zhu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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;
as well as URLs for NNTP newsgroup(s).