Driver core fixes for 5.0-rc2
Here is one small sysfs change, and a documentation update for 5.0-rc2 The sysfs change moves from using BUG_ON to WARN_ON, as discussed in an email thread on lkml while trying to track down another driver bug. sysfs should not be crashing and preventing people from seeing where they went wrong. Now it properly recovers and warns the developer. The documentation update removes the use of BUS_ATTR() as the kernel is moving away from this to use the specific BUS_ATTR_RW() and friends instead. There are pending patches in all of the different subsystems to remove the last users of this macro, but for now, don't advertise it should be used anymore to keep new ones from being introduced. Both have been in linux-next with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCXDsRFA8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ynbgACfTY/rAZpWTgMdPDfoOmF+s/XHQXsAoJKZ+v+f Tpkcw76Wo1ESpPLuT1u1 =W0D+ -----END PGP SIGNATURE----- Merge tag 'driver-core-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core fixes from Greg KH: "Here is one small sysfs change, and a documentation update for 5.0-rc2 The sysfs change moves from using BUG_ON to WARN_ON, as discussed in an email thread on lkml while trying to track down another driver bug. sysfs should not be crashing and preventing people from seeing where they went wrong. Now it properly recovers and warns the developer. The documentation update removes the use of BUS_ATTR() as the kernel is moving away from this to use the specific BUS_ATTR_RW() and friends instead. There are pending patches in all of the different subsystems to remove the last users of this macro, but for now, don't advertise it should be used anymore to keep new ones from being introduced. Both have been in linux-next with no reported issues" * tag 'driver-core-5.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: Documentation: driver core: remove use of BUS_ATTR sysfs: convert BUG_ON to WARN_ON
This commit is contained in:
commit
72d657dd21
@ -124,11 +124,11 @@ struct bus_attribute {
|
||||
ssize_t (*store)(struct bus_type *, const char * buf, size_t count);
|
||||
};
|
||||
|
||||
Bus drivers can export attributes using the BUS_ATTR macro that works
|
||||
similarly to the DEVICE_ATTR macro for devices. For example, a definition
|
||||
like this:
|
||||
Bus drivers can export attributes using the BUS_ATTR_RW macro that works
|
||||
similarly to the DEVICE_ATTR_RW macro for devices. For example, a
|
||||
definition like this:
|
||||
|
||||
static BUS_ATTR(debug,0644,show_debug,store_debug);
|
||||
static BUS_ATTR_RW(debug);
|
||||
|
||||
is equivalent to declaring:
|
||||
|
||||
|
@ -344,7 +344,9 @@ struct bus_attribute {
|
||||
|
||||
Declaring:
|
||||
|
||||
BUS_ATTR(_name, _mode, _show, _store)
|
||||
static BUS_ATTR_RW(name);
|
||||
static BUS_ATTR_RO(name);
|
||||
static BUS_ATTR_WO(name);
|
||||
|
||||
Creation/Removal:
|
||||
|
||||
|
@ -43,7 +43,8 @@ int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
|
||||
kuid_t uid;
|
||||
kgid_t gid;
|
||||
|
||||
BUG_ON(!kobj);
|
||||
if (WARN_ON(!kobj))
|
||||
return -EINVAL;
|
||||
|
||||
if (kobj->parent)
|
||||
parent = kobj->parent->sd;
|
||||
|
@ -325,7 +325,8 @@ int sysfs_create_file_ns(struct kobject *kobj, const struct attribute *attr,
|
||||
kuid_t uid;
|
||||
kgid_t gid;
|
||||
|
||||
BUG_ON(!kobj || !kobj->sd || !attr);
|
||||
if (WARN_ON(!kobj || !kobj->sd || !attr))
|
||||
return -EINVAL;
|
||||
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
return sysfs_add_file_mode_ns(kobj->sd, attr, false, attr->mode,
|
||||
@ -537,7 +538,8 @@ int sysfs_create_bin_file(struct kobject *kobj,
|
||||
kuid_t uid;
|
||||
kgid_t gid;
|
||||
|
||||
BUG_ON(!kobj || !kobj->sd || !attr);
|
||||
if (WARN_ON(!kobj || !kobj->sd || !attr))
|
||||
return -EINVAL;
|
||||
|
||||
kobject_get_ownership(kobj, &uid, &gid);
|
||||
return sysfs_add_file_mode_ns(kobj->sd, &attr->attr, true,
|
||||
|
@ -112,7 +112,8 @@ static int internal_create_group(struct kobject *kobj, int update,
|
||||
kgid_t gid;
|
||||
int error;
|
||||
|
||||
BUG_ON(!kobj || (!update && !kobj->sd));
|
||||
if (WARN_ON(!kobj || (!update && !kobj->sd)))
|
||||
return -EINVAL;
|
||||
|
||||
/* Updates may happen before the object has been instantiated */
|
||||
if (unlikely(update && !kobj->sd))
|
||||
|
@ -23,7 +23,8 @@ static int sysfs_do_create_link_sd(struct kernfs_node *parent,
|
||||
{
|
||||
struct kernfs_node *kn, *target = NULL;
|
||||
|
||||
BUG_ON(!name || !parent);
|
||||
if (WARN_ON(!name || !parent))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* We don't own @target_kobj and it may be removed at any time.
|
||||
|
Loading…
Reference in New Issue
Block a user