phy: fix kernel oops in phy_lookup()
The kernel oopses in phy_lookup() due to 'phy->init_data' being NULL if we register PHYs from a device tree probing driver and then call phy_get() on a device that has no representation in the device tree (e.g. a PCI device). Checking the pointer before dereferening it and skipping an interation if it's NULL prevents this kernel oops. Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
907aa3aa8d
commit
743bb387a1
1 changed files with 3 additions and 0 deletions
|
@ -64,6 +64,9 @@ static struct phy *phy_lookup(struct device *device, const char *port)
|
||||||
class_dev_iter_init(&iter, phy_class, NULL, NULL);
|
class_dev_iter_init(&iter, phy_class, NULL, NULL);
|
||||||
while ((dev = class_dev_iter_next(&iter))) {
|
while ((dev = class_dev_iter_next(&iter))) {
|
||||||
phy = to_phy(dev);
|
phy = to_phy(dev);
|
||||||
|
|
||||||
|
if (!phy->init_data)
|
||||||
|
continue;
|
||||||
count = phy->init_data->num_consumers;
|
count = phy->init_data->num_consumers;
|
||||||
consumers = phy->init_data->consumers;
|
consumers = phy->init_data->consumers;
|
||||||
while (count--) {
|
while (count--) {
|
||||||
|
|
Loading…
Reference in a new issue