cdrom: Call cdrom_mrw_exit from cdrom_release function
authorPhillip Potter <phil@philpotter.co.uk>
Tue, 22 Jul 2025 23:19:00 +0000 (00:19 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 23 Jul 2025 01:10:17 +0000 (19:10 -0600)
commit5ec9d26b78c4eb7c2fab54dcec6c0eb845302a98
tree716abfe1da1b2db863a776b0b122f8f58cade5f0
parent63ce53724637e2e7ba51fe3a4f78351715049905
cdrom: Call cdrom_mrw_exit from cdrom_release function

Remove the cdrom_mrw_exit call from unregister_cdrom, as it invokes
block commands that can fail due to a NULL pointer dereference from the
call happening too late, during the unloading of the driver (e.g.
unplugging of USB optical drives).

Instead perform the call inside cdrom_release, thus also removing the
need for the exit function pointer inside the cdrom_device_info struct.

Reported-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Closes: https://lore.kernel.org/linux-block/uxgzea5ibqxygv3x7i4ojbpvcpv2wziorvb3ns5cdtyvobyn7h@y4g4l5ezv2ec
Suggested-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/linux-block/6686fe78-a050-4a1d-aa27-b7bf7ca6e912@kernel.dk
Tested-by: Phillip Potter <phil@philpotter.co.uk>
Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
Link: https://lore.kernel.org/r/20250722231900.1164-2-phil@philpotter.co.uk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Documentation/cdrom/cdrom-standard.rst
drivers/cdrom/cdrom.c
include/linux/cdrom.h