@@ -49,9 +49,16 @@ int sdw_slave_modalias(const struct sdw_slave *slave, char *buf, size_t size)
 static int sdw_uevent(struct device *dev, struct kobj_uevent_env *env)
 {
-ÂÂÂ struct sdw_slave *slave = to_sdw_slave_device(dev);
+ÂÂÂ struct sdw_slave *slave;
ÂÂÂÂÂ char modalias[32];
+ÂÂÂ if (is_sdw_slave(dev)) {
+ÂÂÂÂÂÂÂ slave = to_sdw_slave_device(dev);
+ÂÂÂ } else {
+ÂÂÂÂÂÂÂ dev_warn(dev, "uevent for unknown Soundwire type\n");
+ÂÂÂÂÂÂÂ return -EINVAL;
+ÂÂÂ }
+
ÂÂÂÂÂ sdw_slave_modalias(slave, modalias, sizeof(modalias));
ÂÂÂÂÂ if (add_uevent_var(env, "MODALIAS=%s", modalias))
Positive evaluation of is_sdw_slave() check is required for function to continue, thus you might as well do:
if (!is_sdw_slave(dev)) {
ÂÂÂÂdev_warn();
ÂÂÂÂreturn -EINVAL;
}
slave = to_sdw_slave_device(dev);