public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: cpu_pm breaks 3.2 boot on platforms with cascading GICs
Date: Thu, 24 Nov 2011 16:13:37 +0000	[thread overview]
Message-ID: <20111124161336.GB22031@mudshark.cambridge.arm.com> (raw)

Hi Colin,

Commit 254056f3 ("ARM: gic: Use cpu pm notifiers to save gic state") adds
cpu_pm notifier support to the GIC. The problem is that you register a notifier
for each GIC registered via gic_init, so on a platform with cascading GICs the
notifier is registered multiple times.

The fun part about this is that the way the notifier chain is constructed
you end up with the GIC notifier pointing to itself as the next node, so you
get a cycle in the chain. The next poor subsystem that tries to register a
notifier (in my case, VFP) gets stuck in notifier_chain_register because the
loop:

	while ((*nl) != NULL) {
		if (n->priority > (*nl)->priority)
			break;
		nl = &((*nl)->next);
	}

will never exit!

I'm not sure how you want to handle this. Clearly you should only register one
notifier for the GIC, but it does need to handle the cascading situation
properly.

This affects current mainline, so we need a solution for 3.2.

Will

             reply	other threads:[~2011-11-24 16:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-24 16:13 Will Deacon [this message]
2011-11-24 16:38 ` cpu_pm breaks 3.2 boot on platforms with cascading GICs Marc Zyngier
2011-11-24 16:53   ` Will Deacon

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=20111124161336.GB22031@mudshark.cambridge.arm.com \
    --to=will.deacon@arm.com \
    --cc=linux-arm-kernel@lists.infradead.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