}
  EXPORT_SYMBOL_GPL(fw_devlink_purge_absent_suppliers);
  
 -#ifdef CONFIG_SRCU
+ /**
+  * __fwnode_links_move_consumers - Move consumer from @from to @to fwnode_handle
+  * @from: move consumers away from this fwnode
+  * @to: move consumers to this fwnode
+  *
+  * Move all consumer links from @from fwnode to @to fwnode.
+  */
+ static void __fwnode_links_move_consumers(struct fwnode_handle *from,
+                                         struct fwnode_handle *to)
+ {
+       struct fwnode_link *link, *tmp;
+ 
+       list_for_each_entry_safe(link, tmp, &from->consumers, s_hook) {
+               __fwnode_link_add(link->consumer, to, link->flags);
+               __fwnode_link_del(link);
+       }
+ }
+ 
+ /**
+  * __fw_devlink_pickup_dangling_consumers - Pick up dangling consumers
+  * @fwnode: fwnode from which to pick up dangling consumers
+  * @new_sup: fwnode of new supplier
+  *
+  * If the @fwnode has a corresponding struct device and the device supports
+  * probing (that is, added to a bus), then we want to let fw_devlink create
+  * MANAGED device links to this device, so leave @fwnode and its descendant's
+  * fwnode links alone.
+  *
+  * Otherwise, move its consumers to the new supplier @new_sup.
+  */
+ static void __fw_devlink_pickup_dangling_consumers(struct fwnode_handle *fwnode,
+                                                  struct fwnode_handle *new_sup)
+ {
+       struct fwnode_handle *child;
+ 
+       if (fwnode->dev && fwnode->dev->bus)
+               return;
+ 
+       fwnode->flags |= FWNODE_FLAG_NOT_DEVICE;
+       __fwnode_links_move_consumers(fwnode, new_sup);
+ 
+       fwnode_for_each_available_child_node(fwnode, child)
+               __fw_devlink_pickup_dangling_consumers(child, new_sup);
+ }
+ 
  static DEFINE_MUTEX(device_links_lock);
  DEFINE_STATIC_SRCU(device_links_srcu);
  
 
        return NULL;
  }
  
- static inline int acpi_device_uevent_modalias(struct device *dev,
 +static inline union acpi_object *acpi_evaluate_dsm_typed(acpi_handle handle,
 +                                                       const guid_t *guid,
 +                                                       u64 rev, u64 func,
 +                                                       union acpi_object *argv4,
 +                                                       acpi_object_type type)
 +{
 +      return NULL;
 +}
 +
+ static inline int acpi_device_uevent_modalias(const struct device *dev,
                                struct kobj_uevent_env *env)
  {
        return -ENODEV;