[PATCH v3 0/3] cdrom: gdrom: fix block I/O and capacity setting

Florian Fuchs
2026-04-23T20:21:00Z

Hi all,

This series fixes a gdrom driver Oops due to bad MMIO register access and
fixes the missing updates of the block layer gendisk capacity that
prevented ISO9660 mounts from working. It fixes also the case of disc
swapping by sending the Test Unit command prior to cdrom_open().

The change was tested on real Sega Dreamcast devices (PAL-E, NTSC-J,
NTSC-U) with physical CD-R discs and with GDEMU emulated discs. Before:
Oops on mount and an unusable drive. After: Successfully able to mount
and use the inserted medium.

Thanks,
Florian
---
v2->v3: Added patch "cdrom: gdrom: verify device access after disc swap"
from Artur Rojek to also handle the disc swap case reliably. And
added Acked-by, Reviewed-by from v2 to the respective patches.
Also handle the GDROM case in gdrom_update_capacity().
v1->v2: for "cdrom: gdrom: replace port I/O with MMIO accessors": Don't
use helper functions with io.*_rep(), but writesw() and readsw()
local in the respective functions. Improved failure case of
gdrom_update_capacity() in gdrom_bdops_open().

v2: https://lore.kernel.org/linux-sh/20260419162823.2829286-1-fuchsfl@gmail.com/
v1: https://lore.kernel.org/linux-sh/20260405082330.4104672-1-fuchsfl@gmail.com/

Artur Rojek (1):
cdrom: gdrom: verify device access after disc swap

Florian Fuchs (2):
cdrom: gdrom: replace port I/O with MMIO accessors
cdrom: gdrom: update gendisk capacity on open

drivers/cdrom/gdrom.c | 65 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 61 insertions(+), 4 deletions(-)

base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f
--
2.43.0