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

Commit 022059b0 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "block: genhd: add 'groups' argument to device_add_disk"

This reverts commit 1bf6a186.

The patch series submitted for the 4.19-stable branch:
	https://lore.kernel.org/r/20210223092859.17033-1-jefflexu@linux.alibaba.com


should be reverted from the android-4.19-stable branch as it breaks the
ABI for device_add_disk() and the issue the series is resolving does not
affect Android devices.  So revert the whole thing.

Bug: 161946584
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: If2f890a6682dad1d6b0d532d35bc13fe3b8a31a9
parent 468b8023
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -891,7 +891,7 @@ static int ubd_disk_register(int major, u64 size, int unit,

	disk->private_data = &ubd_devs[unit];
	disk->queue = ubd_devs[unit].queue;
	device_add_disk(parent, disk, NULL);
	device_add_disk(parent, disk);

	*disk_out = disk;
	return 0;
+5 −14
Original line number Diff line number Diff line
@@ -582,8 +582,7 @@ static int exact_lock(dev_t devt, void *data)
	return 0;
}

static void register_disk(struct device *parent, struct gendisk *disk,
			  const struct attribute_group **groups)
static void register_disk(struct device *parent, struct gendisk *disk)
{
	struct device *ddev = disk_to_dev(disk);
	struct block_device *bdev;
@@ -598,10 +597,6 @@ static void register_disk(struct device *parent, struct gendisk *disk,
	/* delay uevents, until we scanned partition table */
	dev_set_uevent_suppress(ddev, 1);

	if (groups) {
		WARN_ON(ddev->groups);
		ddev->groups = groups;
	}
	if (device_add(ddev))
		return;
	if (!sysfs_deprecated) {
@@ -669,7 +664,6 @@ static void register_disk(struct device *parent, struct gendisk *disk,
 * __device_add_disk - add disk information to kernel list
 * @parent: parent device for the disk
 * @disk: per-device partitioning information
 * @groups: Additional per-device sysfs groups
 * @register_queue: register the queue if set to true
 *
 * This function registers the partitioning information in @disk
@@ -678,7 +672,6 @@ static void register_disk(struct device *parent, struct gendisk *disk,
 * FIXME: error handling
 */
static void __device_add_disk(struct device *parent, struct gendisk *disk,
			      const struct attribute_group **groups,
			      bool register_queue)
{
	dev_t devt;
@@ -722,7 +715,7 @@ static void __device_add_disk(struct device *parent, struct gendisk *disk,
		blk_register_region(disk_devt(disk), disk->minors, NULL,
				    exact_match, exact_lock, disk);
	}
	register_disk(parent, disk, groups);
	register_disk(parent, disk);
	if (register_queue)
		blk_register_queue(disk);

@@ -736,17 +729,15 @@ static void __device_add_disk(struct device *parent, struct gendisk *disk,
	blk_integrity_add(disk);
}

void device_add_disk(struct device *parent, struct gendisk *disk,
		     const struct attribute_group **groups)

void device_add_disk(struct device *parent, struct gendisk *disk)
{
	__device_add_disk(parent, disk, groups, true);
	__device_add_disk(parent, disk, true);
}
EXPORT_SYMBOL(device_add_disk);

void device_add_disk_no_queue_reg(struct device *parent, struct gendisk *disk)
{
	__device_add_disk(parent, disk, NULL, false);
	__device_add_disk(parent, disk, false);
}
EXPORT_SYMBOL(device_add_disk_no_queue_reg);

+1 −1
Original line number Diff line number Diff line
@@ -4714,7 +4714,7 @@ static int __init do_floppy_init(void)
		/* to be cleaned up... */
		disks[drive]->private_data = (void *)(long)drive;
		disks[drive]->flags |= GENHD_FL_REMOVABLE;
		device_add_disk(&floppy_device[drive].dev, disks[drive], NULL);
		device_add_disk(&floppy_device[drive].dev, disks[drive]);
	}

	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -3861,7 +3861,7 @@ static int mtip_block_initialize(struct driver_data *dd)
	set_capacity(dd->disk, capacity);

	/* Enable the block device and add it to /dev */
	device_add_disk(&dd->pdev->dev, dd->disk, NULL);
	device_add_disk(&dd->pdev->dev, dd->disk);

	dd->bdev = bdget_disk(dd->disk, 0);
	/*
+1 −1
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ static int ps3disk_probe(struct ps3_system_bus_device *_dev)
		 gendisk->disk_name, priv->model, priv->raw_capacity >> 11,
		 get_capacity(gendisk) >> 11);

	device_add_disk(&dev->sbd.core, gendisk, NULL);
	device_add_disk(&dev->sbd.core, gendisk);
	return 0;

fail_cleanup_queue:
Loading