Skip to content

Commit

Permalink
Merge tag 'driver-core-5.0-rc2' of git://git.kernel.org/pub/scm/linux…
Browse files Browse the repository at this point in the history
…/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
  • Loading branch information
torvalds committed Jan 13, 2019
2 parents f7c1038 + 735df0f commit 72d657d
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 10 deletions.
8 changes: 4 additions & 4 deletions Documentation/driver-model/bus.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
4 changes: 3 additions & 1 deletion Documentation/filesystems/sysfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
3 changes: 2 additions & 1 deletion fs/sysfs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 4 additions & 2 deletions fs/sysfs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
3 changes: 2 additions & 1 deletion fs/sysfs/group.c
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
3 changes: 2 additions & 1 deletion fs/sysfs/symlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 72d657d

Please sign in to comment.