Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bfa271d0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6:
  sysfs: remove BUG_ON() from sysfs_remove_group()
  Driver core: Revert "Fix Firmware class name collision"
  Block: Fix whole_disk attribute bug
parents 123f794f 969affd2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -292,7 +292,8 @@ firmware_class_timeout(u_long data)

static inline void fw_setup_device_id(struct device *f_dev, struct device *dev)
{
	snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
	/* XXX warning we should watch out for name collisions */
	strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
}

static int fw_register_device(struct device **dev_p, const char *fw_name,
+10 −7
Original line number Diff line number Diff line
@@ -319,6 +319,14 @@ void delete_partition(struct gendisk *disk, int part)
	put_device(&p->dev);
}

static ssize_t whole_disk_show(struct device *dev,
			       struct device_attribute *attr, char *buf)
{
	return 0;
}
static DEVICE_ATTR(whole_disk, S_IRUSR | S_IRGRP | S_IROTH,
		   whole_disk_show, NULL);

void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len, int flags)
{
	struct hd_struct *p;
@@ -352,13 +360,8 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len,
	device_add(&p->dev);
	partition_sysfs_add_subdir(p);
	p->dev.uevent_suppress = 0;
	if (flags & ADDPART_FLAG_WHOLEDISK) {
		static struct attribute addpartattr = {
			.name = "whole_disk",
			.mode = S_IRUSR | S_IRGRP | S_IROTH,
		};
		err = sysfs_create_file(&p->dev.kobj, &addpartattr);
	}
	if (flags & ADDPART_FLAG_WHOLEDISK)
		err = device_create_file(&p->dev, &dev_attr_whole_disk);

	/* suppress uevent if the disk supresses it */
	if (!disk->dev.uevent_suppress)
+6 −1
Original line number Diff line number Diff line
@@ -77,7 +77,12 @@ void sysfs_remove_group(struct kobject * kobj,

	if (grp->name) {
		sd = sysfs_get_dirent(dir_sd, grp->name);
		BUG_ON(!sd);
		if (!sd) {
			printk(KERN_WARNING "sysfs group %p not found for "
				"kobject '%s'\n", grp, kobject_name(kobj));
			WARN_ON(!sd);
			return;
		}
	} else
		sd = sysfs_get(dir_sd);