Comment # 31 on bug 1202386 from
(In reply to Takashi Iwai from comment #29)
> 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.

I have successfully booted twice in consecutively. This error is still
reported: ucsi_acpi USBC000:00: con2: failed to register alt modes, but without
the subsequent null pointer dereference.

I assume this fixes the issue. How long before one might expect this fix to be
included in an official kernel build? 

I do have a question though. What is the significance of the error? I see other
USCI related errors, but also without any noticeable consequence. Are these
just errors caused by the general "flakyness" of USB-C type docking stations?

I will attach the dmesg output from the last two boots.

And thank you very much for your help.


You are receiving this mail because: