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. 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. Found by Linux Driver Verification project (linuxtesting.org).