Merge tag 'driver-core-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 7 Jun 2020 17:53:36 +0000 (10:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 7 Jun 2020 17:53:36 +0000 (10:53 -0700)
Pull driver core updates from Greg KH:
 "Here is the set of driver core patches for 5.8-rc1.

  Not all that huge this release, just a number of small fixes and
  updates:

   - software node fixes

   - kobject now sends KOBJ_REMOVE when it is removed from sysfs, not
     when it is removed from memory (which could come much later)

   - device link additions and fixes based on testing on more devices

   - firmware core cleanups

   - other minor changes, full details in the shortlog

  All have been in linux-next for a while with no reported issues"

* tag 'driver-core-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (23 commits)
  driver core: Update device link status correctly for SYNC_STATE_ONLY links
  firmware_loader: change enum fw_opt to u32
  software node: implement software_node_unregister()
  kobject: send KOBJ_REMOVE uevent when the object is removed from sysfs
  driver core: Remove unnecessary is_fwnode_dev variable in device_add()
  drivers property: When no children in primary, try secondary
  driver core: platform: Fix spelling errors in platform.c
  driver core: Remove check in driver_deferred_probe_force_trigger()
  of: platform: Batch fwnode parsing when adding all top level devices
  driver core: fw_devlink: Add support for batching fwnode parsing
  driver core: Look for waiting consumers only for a fwnode's primary device
  driver core: Move code to the right part of the file
  Revert "Revert "driver core: Set fw_devlink to "permissive" behavior by default""
  drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish
  firmware_loader: move fw_fallback_config to a private kernel symbol namespace
  driver core: Add missing '\n' in log messages
  driver/base/soc: Use kobj_to_dev() API
  Add documentation on meaning of -EPROBE_DEFER
  driver core: platform: remove redundant assignment to variable ret
  debugfs: Use the correct style for SPDX License Identifier
  ...

1  2 
drivers/base/core.c
drivers/base/platform.c
drivers/base/swnode.c
drivers/of/platform.c
include/linux/property.h
lib/kobject.c
lib/test_printf.c

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -440,10 -440,8 +440,11 @@@ software_node_find_by_name(const struc
  int software_node_register_nodes(const struct software_node *nodes);
  void software_node_unregister_nodes(const struct software_node *nodes);
  
 +int software_node_register_node_group(const struct software_node **node_group);
 +void software_node_unregister_node_group(const struct software_node **node_group);
 +
  int software_node_register(const struct software_node *node);
+ void software_node_unregister(const struct software_node *node);
  
  int software_node_notify(struct device *dev, unsigned long action);
  
diff --cc lib/kobject.c
@@@ -670,16 -677,9 +677,9 @@@ static void kobject_cleanup(struct kobj
                 kobject_name(kobj), kobj, __func__, kobj->parent);
  
        if (t && !t->release)
 -              pr_debug("kobject: '%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/kobject.txt.\n",
 +              pr_debug("kobject: '%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.\n",
                         kobject_name(kobj), kobj);
  
-       /* send "remove" if the caller did not do it but sent "add" */
-       if (kobj->state_add_uevent_sent && !kobj->state_remove_uevent_sent) {
-               pr_debug("kobject: '%s' (%p): auto cleanup 'remove' event\n",
-                        kobject_name(kobj), kobj);
-               kobject_uevent(kobj, KOBJ_REMOVE);
-       }
        /* remove from sysfs if the caller did not do it */
        if (kobj->state_in_sysfs) {
                pr_debug("kobject: '%s' (%p): auto cleanup kobject_del\n",
Simple merge