Re: Microchip mcp25xxfd can controller driver- BUG: using __this_cpu_add() in preemptible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You ROCK!  Thank you for finding the issue!

On Mon, Jul 29, 2019 at 4:27 AM Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> wrote:
>
> On 7/28/19 9:37 PM, Tom Prohaszka wrote:
> > Hey Marc,
> > I added the options below, but it doesn't look like the stack is dumping.
>
> Thanks, that's indeed a proper stack dump, which is a different name for
> backtrace.
>
> > check_preemption_disabled: 143 callbacks suppressed
> > BUG: using __this_cpu_add() in preemptible [00000000] code: irq/194-mcp25xx/805
> > caller is __this_cpu_preempt_check+0x1c/0x20
> > CPU: 0 PID: 805 Comm: irq/194-mcp25xx Tainted: G           O
> > 4.9.65-dey+gf832589 #44
> > Hardware name: Freescale i.MX6 UltraLite (Device Tree)
> > [<80111790>] (unwind_backtrace) from [<8010d6cc>] (show_stack+0x20/0x24)
> > [<8010d6cc>] (show_stack) from [<804c1c94>] (dump_stack+0xa0/0xcc)
> > [<804c1c94>] (dump_stack) from [<804e1ad8>]
> > (check_preemption_disabled+0x130/0x134)
> > [<804e1ad8>] (check_preemption_disabled) from [<804e1b1c>]
> > (__this_cpu_preempt_check+0x1c/0x20)
> > [<804e1b1c>] (__this_cpu_preempt_check) from [<80804284>]
> > (__netif_receive_skb_core+0x118/0xa60)
> > [<80804284>] (__netif_receive_skb_core) from [<80806ffc>]
> > (__netif_receive_skb+0x38/0x94)
> > [<80806ffc>] (__netif_receive_skb) from [<808070e8>]
> > (netif_receive_skb_internal+0x90/0x21c)
> > [<808070e8>] (netif_receive_skb_internal) from [<808072e4>]
> > (netif_receive_skb+0x70/0x1f4)
> > [<808072e4>] (netif_receive_skb) from [<8065006c>]
> > (mcp25xxfd_can_int+0x8f8/0x9cc)
> > [<8065006c>] (mcp25xxfd_can_int) from [<8019d2e4>] (irq_thread_fn+0x2c/0x64)
> > [<8019d2e4>] (irq_thread_fn) from [<8019d644>] (irq_thread+0x180/0x24c)
> > [<8019d644>] (irq_thread) from [<801529f4>] (kthread+0x11c/0x134)
> > [<801529f4>] (kthread) from [<80108650>] (ret_from_fork+0x14/0x24)
>
> We see that netif_receive_skb() is called from the mcp's interrupt
> handler (mcp25xxfd_can_int), which is not allowed.
>
> I've pushed a fix to mcp25xxfd branch on linux-can-next. Please use that
> patch stack, it's the newest.
>
> https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git/log/?h=mcp25xxfd
>
> Marc
>
> --
> Pengutronix e.K.                  | Marc Kleine-Budde           |
> Industrial Linux Solutions        | Phone: +49-231-2826-924     |
> Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
> Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |
>



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux