mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
ANDROID: serdev: Fix platform device support
After commit cdad3113fcaa ("ANDROID: serdev: add platform device support") landed, we started seeing boot panics on HiKey960/HiKey. After some debugging I found the patch is passing a serdev_device->dev pointer to match()/uevent(), which expects the dev pointer to be contained in a platform_device structure instead. When it uses container_of, it ends up miscast and we get bad values. Alistair suggested this fix which seems to avoid the issue. Signed-off-by: John Stultz <john.stultz@linaro.org> Bug: 146517987 Change-Id: I6354aeb4008fff85264a3c848c6c95fb8ca5b07a
This commit is contained in:
parent
d8cb91663b
commit
aba366935d
@ -56,7 +56,7 @@ static int serdev_device_match(struct device *dev, struct device_driver *drv)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (dev->parent->parent->bus == &platform_bus_type &&
|
if (dev->parent->parent->bus == &platform_bus_type &&
|
||||||
dev->parent->parent->bus->match(dev, drv))
|
dev->parent->parent->bus->match(dev->parent->parent, drv))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -73,7 +73,7 @@ static int serdev_uevent(struct device *dev, struct kobj_uevent_env *env)
|
|||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
if (dev->parent->parent->bus == &platform_bus_type)
|
if (dev->parent->parent->bus == &platform_bus_type)
|
||||||
rc = dev->parent->parent->bus->uevent(dev, env);
|
rc = dev->parent->parent->bus->uevent(dev->parent->parent, env);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user