Re: syztest

From: Arnaud Lecomte
Date: Wed Jul 30 2025 - 03:10:47 EST



On 30/07/2025 07:09, Yu Kuai wrote:
Hi,

在 2025/07/30 13:51, Arnaud Lecomte 写道:
#syz test

--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5978,10 +5978,6 @@ struct mddev *md_alloc(dev_t dev, char *name)
        disk->events |= DISK_EVENT_MEDIA_CHANGE;
      mddev->gendisk = disk;
-    error = add_disk(disk);
-    if (error)
-        goto out_put_disk;
-
      kobject_init(&mddev->kobj, &md_ktype);
      error = kobject_add(&mddev->kobj, &disk_to_dev(disk)->kobj, "%s", "md");

This is wrong, you can't add mddev >kobj under the disk without
kobject_add for the disk kobj.

Will dive a bit more into that after work,
Thanks

Thanks,
Kuai

      if (error) {
@@ -5999,6 +5995,9 @@ struct mddev *md_alloc(dev_t dev, char *name)
      kobject_uevent(&mddev->kobj, KOBJ_ADD);
      mddev->sysfs_state = sysfs_get_dirent_safe(mddev->kobj.sd, "array_state");
      mddev->sysfs_level = sysfs_get_dirent_safe(mddev->kobj.sd, "level");
+    error = add_disk(disk);
+    if (error)
+        goto out_put_disk;
      mutex_unlock(&disks_mutex);
      return mddev;