> From: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> > Subject: Re: [PATCH 0/2] can: m_can_platform: Bug fix of kernel panic for > > On 11/19/19 11:20 AM, Pankaj Sharma wrote: > > The current code is failing while clock prepare enable because of not > > getting proper clock from platform device. > > > > [ 0.852089] Call trace: > > [ 0.854516] 0xffff0000fa22a668 > > [ 0.857638] clk_prepare+0x20/0x34 > > [ 0.861019] m_can_runtime_resume+0x2c/0xe4 > > [ 0.865180] pm_generic_runtime_resume+0x28/0x38 > > [ 0.869770] __rpm_callback+0x16c/0x1bc > > [ 0.873583] rpm_callback+0x24/0x78 > > [ 0.877050] rpm_resume+0x428/0x560 > > [ 0.880517] __pm_runtime_resume+0x7c/0xa8 > > [ 0.884593] m_can_clk_start.isra.9.part.10+0x1c/0xa8 > > [ 0.889618] m_can_class_register+0x138/0x370 > > [ 0.893950] m_can_plat_probe+0x120/0x170 > > [ 0.897939] platform_drv_probe+0x4c/0xa0 > > [ 0.901924] really_probe+0xd8/0x31c > > [ 0.905477] driver_probe_device+0x58/0xe8 > > [ 0.909551] device_driver_attach+0x68/0x70 > > [ 0.913711] __driver_attach+0x9c/0xf8 > > [ 0.917437] bus_for_each_dev+0x50/0xa0 > > [ 0.921251] driver_attach+0x20/0x28 > > [ 0.924804] bus_add_driver+0x148/0x1fc > > [ 0.928617] driver_register+0x6c/0x124 > > [ 0.932431] __platform_driver_register+0x48/0x50 > > [ 0.937113] m_can_plat_driver_init+0x18/0x20 > > [ 0.941446] do_one_initcall+0x4c/0x19c > > [ 0.945259] kernel_init_freeable+0x1d0/0x280 > > [ 0.949591] kernel_init+0x10/0x100 > > [ 0.953057] ret_from_fork+0x10/0x18 > > [ 0.956614] Code: 00000000 00000000 00000000 00000000 (fa22a668) > > [ 0.962681] ---[ end trace 881f71bd609de763 ]--- > > [ 0.967301] Kernel panic - not syncing: Attempted to kill init! > exitcode=0x0000000b > > > > A device driver for CAN controller hardware registers itself with the > > Linux network layer as a network device. So, the driver data for m_can > > should ideally be of type net_device. > > > > Further even when passing the proper net device in probe function the > > code was hanging because of the function m_can_runtime_resume() > > getting recursively called from m_can_class_resume(). > > > > Pankaj Sharma (2): > > can: m_can_platform: set net_device structure as driver data > > can: m_can_platform: remove unnecessary m_can_class_resume() call > > For the m_can driver I'm looking for a maintainer. Would be fine if someone > has a look at the mmio and someone else at the spi part. > Hello Marc, I am currently working on MMIO MCAN for some of our customers. We have some improvements lined up in the coming future related to m_can. I am happy to take up the maintainership for the mmio part. Regards, Sriram > Marc > > -- > Pengutronix e.K. | Marc Kleine-Budde | > Embedded Linux | https://protect2.fireeye.com/url?k=34d1e439- > 6901ecd1-34d06f76-000babff32e3- > 295eaf068a33066f&u=https://www.pengutronix.de/ | > Vertretung West/Dortmund | Phone: +49-231-2826-924 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |