From: Tony Lindgren <tony@atomide.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Sebastian Reichel <sebastian.reichel@collabora.co.uk>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
Pavel Machek <pavel@ucw.cz>,
Linus Walleij <linus.walleij@linaro.org>,
Grygorii Strashko <grygorii.strashko@ti.com>
Subject: Re: [GIT pull] irq updates for 4.13
Date: Tue, 11 Jul 2017 06:51:32 -0700 [thread overview]
Message-ID: <20170711135131.GW3730@atomide.com> (raw)
In-Reply-To: <alpine.DEB.2.20.1707110933590.1799@nanos>
* Thomas Gleixner <tglx@linutronix.de> [170711 02:48]:
> On Tue, 11 Jul 2017, Thomas Gleixner wrote:
>
> So Tony actually provided the part of dmesg which shows the initial
> failure, which subsequently leads to the splat Sebastian reported.
>
> Unhandled fault: external abort on non-linefetch (0x1028) at 0xfb050034
> pgd = c0004000 [fb050034] *pgd=49011452(bad)
> Internal error: : 1028 [#1] SMP ARM
> Workqueue: events deferred_probe_work_func
> task: ce1d41c0 task.stack: ce1fc000
> PC is at omap_gpio_get_direction+0x2c/0x44
> LR is at _raw_spin_lock_irqsave+0x40/0x4c
> pc : [<c0509258>] lr : [<c08263c4>] psr: 60000093
> sp : ce1fdb78 ip : c0dce42c fp : ce22d810
> r10: ce22d800 r9 : 00000000 r8 : ce22d900
> r7 : 00000016 r6 : ce223864 r5 : fb050034 r4 : 00000020
> r3 : ce1d41c0 r2 : 00000000 r1 : a0000013 r0 : a0000013
> Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none
> Control: 10c5387d Table: 80004019 DAC: 00000051
> Process kworker/0:1 (pid: 14, stack limit = 0xce1fc218)
>
> The callstack is:
>
> omap_gpio_get_direction
> gpiochip_lock_as_irq
> gpiochip_irq_reqres
> __setup_irq
> request_threaded_irq
> smc_probe
> smc_drv_probe
> platform_drv_probe
> ....
>
> So the SMC91X network driver request an IRQ, which ends up calling into the
> GPIO interrupt setup and that fails. I have no idea why that would not fail
> with the patch reverted. Dusting off a Beaglebone board....
And "external abort on non-linefetch" means something is not clocked
in this case. The following alone makes things boot for me again, but I don't
quite follow what has now changed with the ordering.. Thomas, any ideas?
Anyways, adding Linus W and Grygorii to Cc since things now point to
gpio-omap.
Regards,
Tony
8< ---------------------
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -919,13 +919,24 @@ static int omap_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
struct gpio_bank *bank;
unsigned long flags;
void __iomem *reg;
- int dir;
+ int error, dir;
bank = gpiochip_get_data(chip);
reg = bank->base + bank->regs->direction;
+ error = pm_runtime_get_sync(bank->chip.parent);
+ if (error < 0) {
+ dev_err(bank->chip.parent,
+ "Could not enable gpio bank %p: %d\n",
+ bank, error);
+ pm_runtime_put_noidle(bank->chip.parent);
+
+ return error;
+ }
raw_spin_lock_irqsave(&bank->lock, flags);
dir = !!(readl_relaxed(reg) & BIT(offset));
raw_spin_unlock_irqrestore(&bank->lock, flags);
+ pm_runtime_put_sync(bank->chip.parent);
+
return dir;
}
--
2.13.2
next prev parent reply other threads:[~2017-07-11 13:51 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-09 8:49 [GIT pull] irq updates for 4.13 Thomas Gleixner
2017-07-10 13:35 ` Sebastian Reichel
2017-07-10 17:01 ` Linus Torvalds
2017-07-10 19:38 ` Pavel Machek
2017-07-10 20:15 ` Sebastian Reichel
2017-07-10 21:29 ` Linus Torvalds
2017-07-11 6:55 ` Thomas Gleixner
2017-07-11 9:26 ` Sebastian Reichel
2017-07-11 9:55 ` Thomas Gleixner
2017-07-11 10:52 ` Thomas Gleixner
2017-07-11 11:21 ` Sebastian Reichel
2017-07-11 13:27 ` Thomas Gleixner
2017-07-11 13:51 ` Marc Zyngier
2017-07-11 14:39 ` Sebastian Reichel
2017-07-11 9:47 ` Thomas Gleixner
2017-07-11 13:51 ` Tony Lindgren [this message]
2017-07-11 14:41 ` Thomas Gleixner
2017-07-11 15:07 ` Thomas Gleixner
2017-07-11 15:43 ` Tony Lindgren
2017-07-11 15:39 ` Grygorii Strashko
2017-07-11 16:17 ` Tony Lindgren
2017-07-12 8:00 ` Geert Uytterhoeven
2017-07-11 15:40 ` Linus Torvalds
2017-07-11 16:14 ` Sebastian Reichel
2017-07-11 16:15 ` Tony Lindgren
2017-07-11 17:17 ` Thomas Gleixner
2017-07-11 17:39 ` Tony Lindgren
2017-07-11 16:19 ` Thomas Gleixner
2017-07-11 16:31 ` Linus Torvalds
2017-07-11 17:52 ` Thomas Gleixner
2017-07-11 18:16 ` Linus Torvalds
2017-07-11 21:30 ` Sebastian Reichel
2017-07-11 21:41 ` Thomas Gleixner
2017-07-11 22:04 ` Linus Torvalds
2017-07-11 22:51 ` Sebastian Reichel
2017-07-12 5:29 ` Tony Lindgren
2017-07-15 20:24 ` Pavel Machek
2017-07-17 6:21 ` Tony Lindgren
2017-07-17 20:01 ` Linus Torvalds
2017-07-17 21:33 ` Pavel Machek
2017-07-11 16:34 ` Tony Lindgren
2017-07-11 14:41 ` Sebastian Reichel
2017-07-11 16:20 ` Tony Lindgren
2017-07-11 16:34 ` Sebastian Reichel
-- strict thread matches above, loose matches on Subject: below --
2017-07-03 7:42 Thomas Gleixner
2017-07-04 0:00 ` Linus Torvalds
2017-07-04 8:12 ` Thomas Gleixner
2017-07-04 10:29 ` Thomas Gleixner
2017-07-04 15:17 ` Jens Axboe
2017-07-04 18:34 ` Linus Torvalds
2017-07-04 19:10 ` Thomas Gleixner
2017-07-04 20:48 ` Max Gurtovoy
2017-07-06 13:58 ` Max Gurtovoy
2017-07-04 21:56 ` Jens Axboe
2017-07-05 15:14 ` Christoph Hellwig
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=20170711135131.GW3730@atomide.com \
--to=tony@atomide.com \
--cc=akpm@linux-foundation.org \
--cc=grygorii.strashko@ti.com \
--cc=hpa@zytor.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=pavel@ucw.cz \
--cc=sebastian.reichel@collabora.co.uk \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.