mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: linux-kernel@vger.kernel.org,
	David Woodhouse <dwmw2@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] genirq: fix irq_desc->depth handling with DEBUG_SHIRQ
Date: Fri, 22 Aug 2008 08:07:32 +0200	[thread overview]
Message-ID: <20080822060727.GH14110@elte.hu> (raw)
In-Reply-To: <20080821185828.GA14070@oksana.dev.rtsoft.ru>


* Anton Vorontsov <avorontsov@ru.mvista.com> wrote:

> When DEBUG_SHIRQ is selected, a spurious IRQ is issued before
> the setup_irq() initializes the desc->depth. An IRQ handler may
> call disable_irq_nosync(), but then setup_irq() will overwrite
> desc->depth, and upon enable_irq() we'll catch this WARN:
> 
> ------------[ cut here ]------------
> Badness at kernel/irq/manage.c:180
> NIP: c0061ab8 LR: c0061f10 CTR: 00000000
> REGS: cf83be50 TRAP: 0700   Not tainted  (2.6.27-rc3-23450-g74919b0)
> MSR: 00021032 <ME,IR,DR>  CR: 22042022  XER: 20000000
> TASK = cf829100[5] 'events/0' THREAD: cf83a000
> GPR00: c0061f10 cf83bf00 cf829100 c038e674 00000016 00000000 cf83bef8 00000038
> GPR08: c0298910 00000000 c0310d28 cf83a000 00000c9c 1001a1a8 0fffe000 00800000
> GPR16: ffffffff 00000000 007fff00 00000000 007ffeb0 c03320a0 c031095c c0310924
> GPR24: cf8292ec cf807190 cf83a000 00009032 c038e6a4 c038e674 cf99b1cc c038e674
> NIP [c0061ab8] __enable_irq+0x20/0x80
> LR [c0061f10] enable_irq+0x50/0x70
> Call Trace:
> [cf83bf00] [c038e674] irq_desc+0x630/0x9000 (unreliable)
> [cf83bf10] [c0061f10] enable_irq+0x50/0x70
> [cf83bf30] [c01abe94] phy_change+0x68/0x108
> [cf83bf50] [c0046394] run_workqueue+0xc4/0x16c
> [cf83bf90] [c0046834] worker_thread+0x74/0xd4
> [cf83bfd0] [c004ab7c] kthread+0x48/0x84
> [cf83bff0] [c00135e0] kernel_thread+0x44/0x60
> Instruction dump:
> 4e800020 3d20c031 38a94214 4bffffcc 9421fff0 7c0802a6 93e1000c 7c7f1b78
> 90010014 8123001c 2f890000 409e001c <0fe00000> 80010014 83e1000c 38210010
> 
> That trace corresponds to this line:
> WARN(1, KERN_WARNING "Unbalanced enable for IRQ %d\n", irq);
> 
> The patch fixes the problem by moving the SHIRQ code below the
> setup_irq().
> 
> Unfortunately we can't easily move the SHIRQ code inside the
> setup_irq(), since it grabs a spinlock, so to prvent a 'real'
> IRQ from interfere us we should disable that IRQ.
> 
> p.s. The driver in question is drivers/net/phy/phy.c.
> 
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>

applied to tip/genirq - thanks Anton.

	Ingo

      reply	other threads:[~2008-08-22  6:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-21 18:58 Anton Vorontsov
2008-08-22  6:07 ` Ingo Molnar [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=20080822060727.GH14110@elte.hu \
    --to=mingo@elte.hu \
    --cc=avorontsov@ru.mvista.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /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

all inboxes | Powered by JetHome®