Re: [PATCH] thunderbolt: Prevent crash when ICM firmware is not running

From: Mika Westerberg
Date: Wed Mar 14 2018 - 07:28:36 EST


On Fri, Mar 09, 2018 at 01:44:34PM +0300, Mika Westerberg wrote:
> On Lenovo ThinkPad Yoga 370 (and possibly some other Lenovo models as
> well) the Thunderbolt host controller sometimes comes up in such way
> that the ICM firmware is not running properly. This is most likely an
> issue in BIOS/firmware but as side-effect driver crashes the kernel due
> to NULL pointer dereference:
>
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000980
> IP: pci_write_config_dword+0x5/0x20
> Call Trace:
> pcie2cio_write+0x3b/0x70 [thunderbolt]
> icm_driver_ready+0x168/0x260 [thunderbolt]
> ? tb_ctl_start+0x50/0x70 [thunderbolt]
> tb_domain_add+0x73/0xf0 [thunderbolt]
> nhi_probe+0x182/0x300 [thunderbolt]
> local_pci_probe+0x42/0xa0
> ? pci_match_device+0xd9/0x100
> pci_device_probe+0x146/0x1b0
> driver_probe_device+0x315/0x480
> ...
>
> Instead of crashing update the driver to bail out gracefully if we
> encounter such situation.
>
> Fixes: f67cf491175a ("thunderbolt: Add support for Internal Connection Manager (ICM)")
> Reported-by: Jordan Glover <Golden_Miller83@xxxxxxxxxxxxx>
> Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx

Applied to thunderbolt.git/next.