Merge tag 'driver-core-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg KH: "Here is the "big" set of driver core patches for 4.21-rc1. It's not really big, just a number of small changes for some reported issues, some documentation updates to hopefully make it harder for people to abuse the driver model, and some other minor cleanups. All of these have been in linux-next for a while with no reported issues" * tag 'driver-core-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: mm, memory_hotplug: update a comment in unregister_memory() component: convert to DEFINE_SHOW_ATTRIBUTE sysfs: Disable lockdep for driver bind/unbind files driver core: Add missing dev->bus->need_parent_lock checks kobject: return error code if writing /sys/.../uevent fails driver core: Move async_synchronize_full call driver core: platform: Respect return code of platform_device_register_full() kref/kobject: Improve documentation drivers/base/memory.c: Use DEVICE_ATTR_RO and friends driver core: Replace simple_strto{l,ul} by kstrtou{l,ul} kernfs: Improve kernfs_notify() poll notification latency kobject: Fix warnings in lib/kobject_uevent.c kobject: drop unnecessary cast "%llu" for u64 driver core: fix comments for device_block_probing() driver core: Replace simple_strtol by kstrtoint
This commit is contained in:
@@ -639,7 +639,7 @@ static void kobject_cleanup(struct kobject *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.\n",
|
||||
pr_debug("kobject: '%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/kobject.txt.\n",
|
||||
kobject_name(kobj), kobj);
|
||||
|
||||
/* send "remove" if the caller did not do it but sent "add" */
|
||||
|
@@ -240,6 +240,7 @@ static int kobj_usermode_filter(struct kobject *kobj)
|
||||
ops = kobj_ns_ops(kobj);
|
||||
if (ops) {
|
||||
const void *init_ns, *ns;
|
||||
|
||||
ns = kobj->ktype->namespace(kobj);
|
||||
init_ns = ops->initial_ns();
|
||||
return ns != init_ns;
|
||||
@@ -390,6 +391,7 @@ static int kobject_uevent_net_broadcast(struct kobject *kobj,
|
||||
ops = kobj_ns_ops(kobj);
|
||||
if (!ops && kobj->kset) {
|
||||
struct kobject *ksobj = &kobj->kset->kobj;
|
||||
|
||||
if (ksobj->parent != NULL)
|
||||
ops = kobj_ns_ops(ksobj->parent);
|
||||
}
|
||||
@@ -579,7 +581,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
|
||||
|
||||
mutex_lock(&uevent_sock_mutex);
|
||||
/* we will send an event, so request a new sequence number */
|
||||
retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)++uevent_seqnum);
|
||||
retval = add_uevent_var(env, "SEQNUM=%llu", ++uevent_seqnum);
|
||||
if (retval) {
|
||||
mutex_unlock(&uevent_sock_mutex);
|
||||
goto exit;
|
||||
|
Reference in New Issue
Block a user