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

Commit 672a2c87 authored by Jan Kara's avatar Jan Kara Committed by Jens Axboe
Browse files

axonram: Fix gendisk handling



It is invalid to call del_gendisk() when disk->queue is NULL. Fix error
handling in axon_ram_probe() to avoid doing that.

Also del_gendisk() does not drop a reference to gendisk allocated by
alloc_disk(). That has to be done by put_disk(). Add that call where
needed.

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 79bd9959
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -274,7 +274,9 @@ static int axon_ram_probe(struct platform_device *device)
			if (bank->disk->major > 0)
				unregister_blkdev(bank->disk->major,
						bank->disk->disk_name);
			if (bank->disk->flags & GENHD_FL_UP)
				del_gendisk(bank->disk);
			put_disk(bank->disk);
		}
		device->dev.platform_data = NULL;
		if (bank->io_addr != 0)
@@ -299,6 +301,7 @@ axon_ram_remove(struct platform_device *device)
	device_remove_file(&device->dev, &dev_attr_ecc);
	free_irq(bank->irq_id, device);
	del_gendisk(bank->disk);
	put_disk(bank->disk);
	iounmap((void __iomem *) bank->io_addr);
	kfree(bank);