From 512a245be4c4d9f511af0dd76d691311e25a01a1 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 11 Mar 2021 17:00:04 +0100 Subject: [PATCH] Revert "aoe: register default groups with device_add_disk()" This reverts commit 4fdc94b476ba89bc712c44adb261e133794eb0f0. 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: Greg Kroah-Hartman Change-Id: I483477f07ae5359975f7c11bf90bdb29269f1b03 --- drivers/block/aoe/aoe.h | 1 + drivers/block/aoe/aoeblk.c | 21 ++++++++++++++------- drivers/block/aoe/aoedev.c | 1 + 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/block/aoe/aoe.h b/drivers/block/aoe/aoe.h index 015c68017a1c..c0ebda1283cc 100644 --- a/drivers/block/aoe/aoe.h +++ b/drivers/block/aoe/aoe.h @@ -201,6 +201,7 @@ int aoeblk_init(void); void aoeblk_exit(void); void aoeblk_gdalloc(void *); void aoedisk_rm_debugfs(struct aoedev *d); +void aoedisk_rm_sysfs(struct aoedev *d); int aoechr_init(void); void aoechr_exit(void); diff --git a/drivers/block/aoe/aoeblk.c b/drivers/block/aoe/aoeblk.c index ff770e7d9e52..429ebb84b592 100644 --- a/drivers/block/aoe/aoeblk.c +++ b/drivers/block/aoe/aoeblk.c @@ -177,15 +177,10 @@ static struct attribute *aoe_attrs[] = { NULL, }; -static const struct attribute_group aoe_attr_group = { +static const struct attribute_group attr_group = { .attrs = aoe_attrs, }; -static const struct attribute_group *aoe_attr_groups[] = { - &aoe_attr_group, - NULL, -}; - static const struct file_operations aoe_debugfs_fops = { .open = aoe_debugfs_open, .read = seq_read, @@ -224,6 +219,17 @@ aoedisk_rm_debugfs(struct aoedev *d) d->debugfs = NULL; } +static int +aoedisk_add_sysfs(struct aoedev *d) +{ + return sysfs_create_group(&disk_to_dev(d->gd)->kobj, &attr_group); +} +void +aoedisk_rm_sysfs(struct aoedev *d) +{ + sysfs_remove_group(&disk_to_dev(d->gd)->kobj, &attr_group); +} + static int aoeblk_open(struct block_device *bdev, fmode_t mode) { @@ -411,7 +417,8 @@ aoeblk_gdalloc(void *vp) spin_unlock_irqrestore(&d->lock, flags); - device_add_disk(NULL, gd, aoe_attr_groups); + add_disk(gd); + aoedisk_add_sysfs(d); aoedisk_add_debugfs(d); spin_lock_irqsave(&d->lock, flags); diff --git a/drivers/block/aoe/aoedev.c b/drivers/block/aoe/aoedev.c index f29a140cdbc1..41060e9cedf2 100644 --- a/drivers/block/aoe/aoedev.c +++ b/drivers/block/aoe/aoedev.c @@ -275,6 +275,7 @@ freedev(struct aoedev *d) del_timer_sync(&d->timer); if (d->gd) { aoedisk_rm_debugfs(d); + aoedisk_rm_sysfs(d); del_gendisk(d->gd); put_disk(d->gd); blk_cleanup_queue(d->blkq);