Re: [PATCH] rcar-vin: Clean up correct notifier in error path

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

 



Hi Geert,

On 2019-07-02 13:42:44 +0200, Geert Uytterhoeven wrote:
> Hi Niklas,
> 
> On Tue, Jul 2, 2019 at 3:25 AM Niklas Söderlund
> <niklas.soderlund+renesas@xxxxxxxxxxxx> wrote:
> > When adding the v4l2_async_notifier_cleanup() callas the wrong notifier
> > was cleaned up if the parallel notifier registration failed. Fix this by
> > cleaning up the correct one.
> >
> > Fixes: 9863bc8695bc36e3 ("media: rcar-vin: Cleanup notifier in error path")
> > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>
> 
> Thank you, this fixes the following boot regression on koelsch:

Indeed it does, but this patch only address the symptom and fixes the 
problem in the error path, VIN is still broken on Gen2 with this patch.  
The patch which fixes the regression is,

    https://www.mail-archive.com/linux-media@xxxxxxxxxxxxxxx/msg148213.html

> 
> Unable to handle kernel NULL pointer dereference at virtual address 000001d8
> pgd = (ptrval)
> [000001d8] *pgd=00000000
> Internal error: Oops: 5 [#1] SMP ARM
> CPU: 1 PID: 1 Comm: swapper/0 Not tainted
> 5.2.0-rc7-shmobile-07178-g1a639e48dea73e76 #280
> Hardware name: Generic R-Car Gen2 (Flattened Device Tree)
> PC is at __v4l2_async_notifier_cleanup+0xc/0x70
> LR is at v4l2_async_notifier_cleanup+0x1c/0x2c
> pc : [<c0556580>]    lr : [<c0556c78>]    psr: 20000013
> sp : eb08ddc8  ip : 00000000  fp : 00000018
> r10: 00000000  r9 : eb1a5410  r8 : c0c04c08
> r7 : eb1a5400  r6 : ffffffea  r5 : 000001c8  r4 : c0c61854
> r3 : eb08b740  r2 : 00000000  r1 : 00000000  r0 : 000001c8
> Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
> Control: 10c5387d  Table: 4000406a  DAC: 00000051
> Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
> Stack: (0xeb08ddc8 to 0xeb08e000)
> ddc0:                   c0c61854 000001c8 ffffffea eb1a5400 c0c04c08 c0556c78
> dde0: ea940040 ffffffea ffffffea c057661c c0575c9c c0ff7148 00000001 0286d9e6
> de00: 00000000 eb1a5410 00000000 c0c637bc c0cbe13c 00000000 c0c637bc 00000000
> de20: 00000018 c04408b4 eb1a5410 00000000 c0cbe24c c043ef0c eb1a5410 c0c637bc
> de40: c0c637bc c043f4f8 00000000 c0b54844 c0b6f4b0 c043f354 c0c637bc eb1a5410
> de60: 00000000 00000000 eb1a5410 c0c637bc c043f4f8 00000000 c0b54844 c043f4e0
> de80: 00000000 eb1a5410 c0c637bc c043f5a4 eb1a5410 c0c04c08 c0c637bc c043d6c4
> dea0: c0b6f4b0 eb150f58 eb1aefb4 0286d9e6 00000000 c0c637bc ea956f80 00000000
> dec0: c0c51c50 c043ddf4 c09c6620 c09c6621 00000072 c0c637bc c0c7c840 c0c04c08
> dee0: c0b34c88 c043ffc0 ffffe000 c0c7c840 c0c04c08 c0b01050 00000000 c09fa420
> df00: 00000000 c013ad00 00000000 c0b0078c c09f93a4 000000d4 00000006 00000006
> df20: 00000000 c09fa434 000000d3 c09fa434 c0b54820 ebfffbe9 ebfffbf1 0286d9e6
> df40: 00000000 0286d9e6 c0c7c840 00000007 c0c7c840 c0c83f00 c0b5483c c0c83f00
> df60: c0b54844 c0b013ec 00000006 00000006 00000000 c0b0078c c074a3d0 000000d4
> df80: 00000000 00000000 c074a3d0 00000000 00000000 00000000 00000000 00000000
> dfa0: 00000000 c074a3d8 00000000 c01010e8 00000000 00000000 00000000 00000000
> dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
> [<c0556580>] (__v4l2_async_notifier_cleanup) from [<c0556c78>]
> (v4l2_async_notifier_cleanup+0x1c/0x2c)
> [<c0556c78>] (v4l2_async_notifier_cleanup) from [<c057661c>]
> (rcar_vin_probe+0x4f8/0x5a4)
> [<c057661c>] (rcar_vin_probe) from [<c04408b4>] (platform_drv_probe+0x48/0x94)
> [<c04408b4>] (platform_drv_probe) from [<c043ef0c>] (really_probe+0x1f0/0x2b8)
> [<c043ef0c>] (really_probe) from [<c043f354>] (driver_probe_device+0x140/0x15c)
> [<c043f354>] (driver_probe_device) from [<c043f4e0>]
> (device_driver_attach+0x44/0x5c)
> [<c043f4e0>] (device_driver_attach) from [<c043f5a4>]
> (__driver_attach+0xac/0xb4)
> [<c043f5a4>] (__driver_attach) from [<c043d6c4>] (bus_for_each_dev+0x64/0xa0)
> [<c043d6c4>] (bus_for_each_dev) from [<c043ddf4>] (bus_add_driver+0x148/0x1a8)
> [<c043ddf4>] (bus_add_driver) from [<c043ffc0>] (driver_register+0xac/0xf0)
> [<c043ffc0>] (driver_register) from [<c0b01050>] (do_one_initcall+0xa8/0x1d4)
> [<c0b01050>] (do_one_initcall) from [<c0b013ec>]
> (kernel_init_freeable+0x270/0x2cc)
> [<c0b013ec>] (kernel_init_freeable) from [<c074a3d8>] (kernel_init+0x8/0x10c)
> [<c074a3d8>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
> 
> Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> -- 
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds

-- 
Regards,
Niklas Söderlund



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux