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]

 



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   |

Attachment: signature.asc
Description: OpenPGP digital signature


[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