base: soc: Let soc_device_match() return no match when called too early
authorGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 9 Mar 2017 11:28:18 +0000 (12:28 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 29 Mar 2017 19:43:22 +0000 (21:43 +0200)
commit0656db9e445a12122f76e259ab89d256cb07a0ad
tree55cedd9b1e3b998ea15837ce8f836556ea33259d
parentc470abd4fde40ea6a0846a2beab642a578c0b8cd
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: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Arnd Bergmann <arnd@arndb.de>
drivers/base/soc.c