diff --git a/soc/soundwire.c b/soc/soundwire.c index 23e373a1f453..72a94ace1482 100644 --- a/soc/soundwire.c +++ b/soc/soundwire.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. */ #include @@ -998,10 +998,14 @@ static int swr_device_match(struct device *dev, struct device_driver *driver) if (!drv) return -EINVAL; - if (dev->type == &swr_dev_type) + if (dev->type == &swr_dev_type) { swr_dev = to_swr_device(dev); - else + if (!swr_dev) + return -EINVAL; + } else { return 0; + } + if (drv->id_table) return swr_match(drv->id_table, swr_dev) != NULL;