Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0656db9e authored by Geert Uytterhoeven's avatar Geert Uytterhoeven
Browse files

base: soc: Let soc_device_match() return no match when called too early



If soc_device_match() is called before the SoC bus has been registered,
bus_for_each_dev() returns -EINVAL, which is considered a match, as it
is non-zero.

While calling soc_device_match() too early can be considered an
integration mistake, returning a match is counter-intuitive:
soc_device_match() is typically used to handle quirks, i.e. to deviate
from the default path.  Hence add a check to abort checking and return
no match instead.

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
parent c470abd4
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -230,6 +230,8 @@ const struct soc_device_attribute *soc_device_match(
			break;
			break;
		ret = bus_for_each_dev(&soc_bus_type, NULL, (void *)matches,
		ret = bus_for_each_dev(&soc_bus_type, NULL, (void *)matches,
				       soc_device_match_one);
				       soc_device_match_one);
		if (ret < 0)
			return NULL;
		if (!ret)
		if (!ret)
			matches++;
			matches++;
		else
		else