All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.