Comment # 29 on bug 1202386 from
Thanks, that helped understanding what's going on there.

I guess the problem is the upstream commit
87d0e2f41b8cc2018499be4e8003fa8c09b6f2fb
    usb: typec: ucsi: add a common function ucsi_unregister_connectors()

This commit looks as if it were a harmless cleanup, but this failed in a subtle
way.
Namely, in the error scenario, the driver gets an error at
ucsi_register_altmodes(), and goes to the error handling to release the
resources.  Through this refactoring, the release part was unified to a
funciton ucsi_unregister_connectors().  And there, it has a NULL check of
con->wq, and it bails out the loop if it's NULL.
Meanwhile, ucsi_register_port() itself still calls destroy_workqueue() and
clear con->wq at its error path.  This ended up in the leftover power supply
device with the uninitialized / cleared device.

Now I'm building yet another kernel with the revert of the commit above in OBS
home:tiwai:bsc1202386-2 repo.  The test kernel will appear at
  http://download.opensuse.org/repositories/home:/tiwai:/bsc1202386-2/standard/

Please give it a try later.


You are receiving this mail because: