On 8/4/20 4:50 AM, Evgeny Novikov wrote: > sis5595_pci_probe() registers platform driver callbacks and just then > initializes global pointer variable s_bridge. sis5595_probe() may > dereference it before this happens that can result in null pointer > dereference. > sis5595_probe() is only called after the device is registered, which happens in sis5595_device_add() after s_bridge is set. This is a southbridge, so there won't be any hot insertion/removal events. > We can not swap registration of platform driver callbacks with > initialization of s_bridge since sm_sis5595_exit() assumes the > current order. Perhaps it has sense to implement a pci_driver.remove > callback that will take care about deregistration of platform driver > callbacks. > Agreed regarding the remove function. However, given the age of the chip, I'd rather remove the driver than spending time on cleanup efforts. This looks like a perfect candidate for depreciation. Guenter