All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
Cc: Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	Grygorii Strashko
	<grygorii.strashko-l0cyMroinI0@public.gmane.org>,
	Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>,
	Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org>,
	linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Nishanth Menon <nm-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH] usb: dwc3: omap: Fix imprecise external abort and oops on boot
Date: Thu, 08 Dec 2016 19:51:41 +0200	[thread overview]
Message-ID: <87a8c6pavm.fsf@linux.intel.com> (raw)
In-Reply-To: <20161208153734.GF4264-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>


Hi,

Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org> writes:
> * Felipe Balbi <balbi-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> [161208 01:45]:
>> 
>> Hi,
>> 
>> Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org> writes:
>> > Somehow starting with v4.9-rc7 there have been imprecise
>> 
>> There's nothing touching dwc3 since v4.9-rc5.
>
> Right, nothing obvious has changed. I think it's just a slight timing
> change in the code that started triggering it.

could be

>> > external aborts on omap5-uevm dwc3 controller. I have not been
>> > able to bisect what exactly triggered this as it does not always
>> > happen. It seems that something changed with probing that
>> > now exposes the issue:
>> >
>> > Unhandled fault: imprecise external abort (0x1406) at 0x00000000
>> 
>> hmmm, clock disabled... dwc3-omap shouldn't have pm runtime at all.
>
> It does for the interconnect target module clkctrl register via PM
> runtime. That's the "usb_otg_ss" module.

but that's all hidden in omap_device.c, we don't touch it from driver
perspective.

>> > ...
>> > PC is at dwc3_omap_interrupt_thread+0x20/0x80
>> > LR is at irq_thread_fn+0x1c/0x54
>> > ...
>> > [<c0989fa8>] (dwc3_omap_interrupt_thread) from [<c038a4d8>]
>> > (irq_thread_fn+0x1c/0x54)
>> > [<c038a4d8>] (irq_thread_fn) from [<c038a7b0>] (irq_thread+0x12c/0x1f0)
>> > [<c038a7b0>] (irq_thread) from [<c035d6f0>] (kthread+0xdc/0xf4)
>> > [<c035d6f0>] (kthread) from [<c0307d78>] (ret_from_fork+0x14/0x3c)
>> > ...
>> >
>> > Unable to handle kernel paging request at virtual address ffffffec
>> > ...
>> > Internal error: Oops: 37 [#2] SMP ARM
>> > PC is at kthread_data+0x4/0xc
>> > LR is at irq_thread_dtor+0x28/0xd0
>> > ...
>> > [<c035e0b4>] (kthread_data) from [<c038a5dc>] (irq_thread_dtor+0x28/0xd0)
>> > [<c038a5dc>] (irq_thread_dtor) from [<c035bef0>] (task_work_run+0xb8/0xdc)
>> > [<c035bef0>] (task_work_run) from [<c03448d4>] (do_exit+0x314/0xa20)
>> > [<c03448d4>] (do_exit) from [<c030bea8>] (die+0x410/0x474)
>> > [<c030bea8>] (die) from [<c0301350>] (do_DataAbort+0xb4/0xb8)
>> > [<c0301350>] (do_DataAbort) from [<c030c578>] (__dabt_svc+0x58/0x80)
>> > Exception stack(0xee777ec8 to 0xee777f10)
>> > 7ec0:                   0000014d ee6e6f10 00000034 fc020034 ee6e6f10 ee1eec00
>> > 7ee0: 00000000 00000000 ee6ec640 c038a4bc 00000000 00000000 00000000 ee777f18
>> > 7f00: c038a4d8 c0989fa8 60000013 ffffffff
>> > [<c030c578>] (__dabt_svc) from [<c0989fa8>] (dwc3_omap_interrupt_thread+0x20/0x80)
>> > [<c0989fa8>] (dwc3_omap_interrupt_thread) from [<c038a4d8>] (irq_thread_fn+0x1c/0x54)
>> > [<c038a4d8>] (irq_thread_fn) from [<c038a7b0>] (irq_thread+0x12c/0x1f0)
>> > [<c038a7b0>] (irq_thread) from [<c035d6f0>] (kthread+0xdc/0xf4)
>> > [<c035d6f0>] (kthread) from [<c0307d78>] (ret_from_fork+0x14/0x3c)
>> >
>> > Fix the issue by making sure the dwc3 interrupts are disabled
>> > before we call devm_request_threaded_irq().
>> 
>> that should already be the case. Are you sure that register isn't zero
>> in probe?
>
> Looks like irq0_status = 0 and irqmisc_status = 0x2121. Also just
> clearing irqmisc with dwc3_omap_write_irqmisc_clr(omap, 0xffffffff)
> stops the issue from happening.
>
> There is some deferred probing happening but irqmisc is always 0x2121.

some spurious irq status from ROM code, perhaps? Are you not resetting
usb_otg_ss hwmod? We shouldn't have any pending interrupts when we get
to probe(), if we do have them, then we need an erratum for it.

You could try making usb_otg_ss is reset by hwmod. It would also be good
to check other OMAP-ish devices sporting dwc3 (DRA7x, AM437x, AM57x) if
they have the same behavior.

Adding Nishanth to the loop too for reference.

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2016-12-08 17:51 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-08  3:21 [PATCH] usb: dwc3: omap: Fix imprecise external abort and oops on boot Tony Lindgren
     [not found] ` <20161208032108.21962-1-tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08  9:44   ` Felipe Balbi
     [not found]     ` <87lgvqkb6f.fsf-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-12-08 15:37       ` Tony Lindgren
     [not found]         ` <20161208153734.GF4264-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08 17:51           ` Felipe Balbi [this message]
     [not found]             ` <87a8c6pavm.fsf-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-12-08 18:25               ` Tony Lindgren
     [not found]                 ` <20161208182521.GA4920-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08 18:44                   ` Tony Lindgren
     [not found]                     ` <20161208184425.GB4920-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08 19:09                       ` Tony Lindgren
2016-12-08 19:18                       ` Felipe Balbi
     [not found]                         ` <8737hy8c1s.fsf-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-12-08 19:32                           ` Tony Lindgren
     [not found]                             ` <20161208193208.GE4920-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08 20:09                               ` Felipe Balbi
     [not found]                                 ` <87fulyuqs6.fsf-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-12-08 20:26                                   ` Tony Lindgren
2016-12-08 19:16                   ` Felipe Balbi
     [not found]                     ` <8760mu8c4m.fsf-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-12-08 19:45                       ` Tony Lindgren
     [not found]                         ` <20161208194557.GF4920-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08 20:11                           ` Felipe Balbi
     [not found]                             ` <87d1h2uqny.fsf-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-12-08 20:25                               ` Tony Lindgren
2016-12-08 21:54           ` Grygorii Strashko
     [not found]             ` <9cce1e34-2fec-9477-4827-6b4c67920a8a-l0cyMroinI0@public.gmane.org>
2016-12-08 22:57               ` Tony Lindgren
     [not found]                 ` <20161208225724.GI4920-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-08 23:38                   ` Grygorii Strashko
     [not found]                     ` <2a0ce107-dddb-6c59-8681-677e217e9fac-l0cyMroinI0@public.gmane.org>
2016-12-08 23:55                       ` Tony Lindgren
     [not found]                         ` <20161208235513.GJ4920-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2016-12-09 18:45                           ` Grygorii Strashko
2016-12-09 16:08   ` Roger Quadros
     [not found]     ` <8a94638a-a8fe-88e0-aece-1ed9835df3c6-l0cyMroinI0@public.gmane.org>
2016-12-09 16:28       ` Tony Lindgren

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=87a8c6pavm.fsf@linux.intel.com \
    --to=balbi-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=nm-l0cyMroinI0@public.gmane.org \
    --cc=nsekhar-l0cyMroinI0@public.gmane.org \
    --cc=rogerq-l0cyMroinI0@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@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 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.