]> git.baikalelectronics.ru Git - uboot.git/commit
dm: core: Fix lists_bind_fdt() using non-existent of_match
authorSimon Glass <sjg@chromium.org>
Sun, 9 Oct 2022 03:33:20 +0000 (21:33 -0600)
committerSimon Glass <sjg@chromium.org>
Sat, 29 Oct 2022 13:36:33 +0000 (07:36 -0600)
commit7afb98f1e052c7b09d5bdc493559996e36e63be6
tree14ad00ace8e38d0425d80347eae2f9c02fcfda0b
parent14cddcf38a7ff8c30dfb5b4fc83a9ad093e136b6
dm: core: Fix lists_bind_fdt() using non-existent of_match

The call to device_bind_with_driver_data() passes id->data but if
the entry has no of_match then the id has not been set by the selected
driver.

Normally this passes unnoticed since a previous driver likely had an
of_match value, so the id is set to that. Of course it is not correct
to pass the id->data from a different driver.

With clang-14 the driver ordering is such that the id is never actually
set in the 'bind /usb@1 usb_ether' line in test_bind_unbind_with_node()
thus causing a crash.

Fix this by passing 0 if the of_match for a driver does not exist.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/core/lists.c