Loading drivers/base/core.c +5 −2 Original line number Diff line number Diff line Loading @@ -2378,6 +2378,7 @@ int device_add(struct device *dev) struct class_interface *class_intf; int error = -EINVAL, fw_ret; struct kobject *glue_dir = NULL; bool is_fwnode_dev = false; dev = get_device(dev); if (!dev) Loading Loading @@ -2475,8 +2476,10 @@ int device_add(struct device *dev) kobject_uevent(&dev->kobj, KOBJ_ADD); if (dev->fwnode && !dev->fwnode->dev) if (dev->fwnode && !dev->fwnode->dev) { dev->fwnode->dev = dev; is_fwnode_dev = true; } /* * Check if any of the other devices (consumers) have been waiting for Loading @@ -2492,7 +2495,7 @@ int device_add(struct device *dev) */ device_link_add_missing_supplier_links(); if (fwnode_has_op(dev->fwnode, add_links)) { if (is_fwnode_dev && fwnode_has_op(dev->fwnode, add_links)) { fw_ret = fwnode_call_int_op(dev->fwnode, add_links, dev); if (fw_ret == -ENODEV) device_link_wait_for_mandatory_supplier(dev); Loading Loading
drivers/base/core.c +5 −2 Original line number Diff line number Diff line Loading @@ -2378,6 +2378,7 @@ int device_add(struct device *dev) struct class_interface *class_intf; int error = -EINVAL, fw_ret; struct kobject *glue_dir = NULL; bool is_fwnode_dev = false; dev = get_device(dev); if (!dev) Loading Loading @@ -2475,8 +2476,10 @@ int device_add(struct device *dev) kobject_uevent(&dev->kobj, KOBJ_ADD); if (dev->fwnode && !dev->fwnode->dev) if (dev->fwnode && !dev->fwnode->dev) { dev->fwnode->dev = dev; is_fwnode_dev = true; } /* * Check if any of the other devices (consumers) have been waiting for Loading @@ -2492,7 +2495,7 @@ int device_add(struct device *dev) */ device_link_add_missing_supplier_links(); if (fwnode_has_op(dev->fwnode, add_links)) { if (is_fwnode_dev && fwnode_has_op(dev->fwnode, add_links)) { fw_ret = fwnode_call_int_op(dev->fwnode, add_links, dev); if (fw_ret == -ENODEV) device_link_wait_for_mandatory_supplier(dev); Loading