Hi Akihiko, On Fri, Apr 08, 2022 at 02:03:52AM +0900, Akihiko Odaki wrote: > If I read the code correctly, the registration itself happens synchronously > and platform_device_register_data() always returns a non-NULL value unless > it returns -ENOMEM. The driver, however, can be asynchronously bound and > dev_get_drvdata(&typec->ec->ec->dev) can return NULL as the consequence. It > would have a call trace like the following when scheduling asynchronous > driver binding: > platform_device_register_data() > platform_device_register_resndata() > platform_device_register_full() > - This always creates and returns platform_device. > platform_device_add() > - This adds the created platform_device. > device_add() > bus_probe_device() > device_initial_probe() > __device_attach() > - This schedules asynchronous probing. > > typec->ec->ec should be pointing to the correct platform_device as the > patched driver works without Oops on my computer. It is not NULL at least. Can you provide more information about your test computer in this case? Is it a Chromebook running stock firmware (if so, please let us know which model, and which firmware version it is running). In the past, we've also gotten some reports from people running MrChromebox custom firmware on older Chromebooks which have exposed other bugs in this driver. Let us know if that's the case here, and where we can get that firmware. Thanks, Benson -- Benson Leung Staff Software Engineer Chrome OS Kernel Google Inc. bleung@google.com Chromium OS Project bleung@chromium.org