From nobody Sun Jun 14 18:58:14 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DA7936C5B1 for ; Sun, 5 Apr 2026 08:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775377421; cv=none; b=Ay+VJ4TCEXcN0kI8vQFgNDMM3IrbUH+tvqiifg+G+qDoloRtQ66erdsGGoXq1GXvWhpgLxKhLJsod90qHs7/yTJsniHjytS7vgjDN8t9JToW3UR9RkGjrQ54IhEnOUaOhherEBRGLxuXcnh5OZ7xnB8ZXD3xLVFYysA1lzqYbU4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775377421; c=relaxed/simple; bh=O818hNrmebuhm54PNjEMjBqHlwr2K30gFLLi0YLGmTw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bFg54VQkJwG3ZAQPXkBOlM/3mJKOGrYZdvO6Yy6KnsNh6G7IGW/Tu5RvLGeV6vrlNIggYb9oHlpQvHwDJviv1peY0XYN98sk1qZJmzOXfUuqdZaiNxIKFW2mNP0XhqRoLrapMa4SV4lbm9p0IlNzJg2Ayhy8tcJM8hGZ3+jzX6g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GQQ+BGfq; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GQQ+BGfq" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4887f49ec5aso43886005e9.1 for ; Sun, 05 Apr 2026 01:23:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775377418; x=1775982218; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7qyT7dMuTyeo4pWg6I7mWIhj7ve7iNx1quZYqE2iyEg=; b=GQQ+BGfqkjArTMRCkgJbjsOkz2DMt1wO1Yo0esvMEVACAw+KPJ3edb6kBJynE6qpw7 wIZtBS5MvZ7spj+mdS5CJD1MLwFuX5RBp8aS4yx7m0WbeFjg53hpw6EEuAzi6r6zcEKr l1ESCrL1zSApDzX3DaW2fSYGZWqRa3fZZjNazZ/ps67ynELZjaLG+YyjljMpVEBf7z0L 9gvAZLq/Tw4POJiLufGIuzdCdnB2kXtLcUB3yXYSf7kf+1MuXYM80c4n+mZHKzBHoAgs nEXHjww5ssUoncVMGupEBsHcGupl0ADQnSzKLBOZIgSoxOlTnWiAhWQHx3uiCaZJoetZ 1VJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775377418; x=1775982218; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7qyT7dMuTyeo4pWg6I7mWIhj7ve7iNx1quZYqE2iyEg=; b=DtuZ6FpsqtPRQPrERG4vfwCq7G+zElEbkaqQnjmES6RjrdYkXH0itPr2N3sVu9SHVK 4j7nVeMsTfu/19TqCbMAEjNw3Z/Plou+3LDyiIj5kkH7S1EVrKhnJic056dtTPVpGuH4 RPBUa3BD7LhjWzQqvfo4XRsa11X6QQVfQlK/4ZG3OfHHpcMwoVmWX9uU+DXe7kceNrwO nbnRIWXj7fd8qjbp/BC5542RNEizl/ueQdxXlTQ1FANh/v/IVOabbIJi97bdGtT/2sFT 6xiQuKdclXzDYwIXrLg00+zBSXdbxBlB2/vV83qc0qfWs5FrAPBfWaTJ5XG+a7cqzJUi aA+Q== X-Forwarded-Encrypted: i=1; AJvYcCWegeSODSDmPBz2nKNBc7SWpSnHAccAwm5xOc7nHo1/9JqBASjMDupXpfOiWEoA7gPE5sHCciKvMgagpxE=@vger.kernel.org X-Gm-Message-State: AOJu0YwT7esP7dUeR8Dy/7x0An2mK/0IaIO30IAv9EsuC8HsN/5CRBwK faK4p9ZtsekAMOfmo50ELjj6sJg7Zu4veteI85ySqUTLJb+b7Mw9aHc= X-Gm-Gg: AeBDiesW23wKlswDApHdhb735mIPtYjbmDWJvBLaCyzrg3pb+AjD/14udaLUuf3Pejg S9ny7r9GKoaYYnVPW3udGOyv0gVdd7P+P8dLGDExj8Hl8mcZlJoFSKGey4UH9z6esjnfdrsLkbE V2fg65EAoIDLgvkqf5m17M1V1/IW9Yz0VzdetJrtJyZXBgJkehaYw/aurt5iD/cTydvnkL/7Gvr rGNuqRT5rkLFKoWS4dZV18v5mOR/iy6Ag2OXy+m6c0jURlQJKaKIYNmdZyOunFKOh8EKNqeu7jY rgwOzg8Nk8PQYLbZJ6p1nCqTrAbsQZWLKZ3Wpv25cLdNfboia97giVXwwPvHQg0voQkR/GVzmIp hdS8e6QIxVsM2SHq1o0iFW6fVYuQg5ACIeYC8aINXwZXRVZYcYl3TveW4FFhG2UfsKR1crdyLq6 8NVYPzrCpUPbyr4d0gS9PYD//56kSq4uyrHrs6hG949MvMeX3zfVmZ4ymcyIZREghil3k+T3Mzb wLA5azs X-Received: by 2002:a05:600c:820f:b0:485:3f1c:d887 with SMTP id 5b1f17b1804b1-488997d31f6mr136814905e9.26.1775377418195; Sun, 05 Apr 2026 01:23:38 -0700 (PDT) Received: from localhost ([2a02:810d:4a94:b300:4382:4d9a:caac:a8d9]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-4887e80a616sm675861105e9.2.2026.04.05.01.23.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Apr 2026 01:23:37 -0700 (PDT) From: Florian Fuchs To: linux-sh@vger.kernel.org, John Paul Adrian Glaubitz , Artur Rojek Cc: Adrian McMenamin , linux-kernel@vger.kernel.org, Florian Fuchs Subject: [PATCH 1/2] cdrom: gdrom: replace port I/O with MMIO accessors Date: Sun, 5 Apr 2026 10:23:29 +0200 Message-ID: <20260405082330.4104672-2-fuchsfl@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260405082330.4104672-1-fuchsfl@gmail.com> References: <20260405082330.4104672-1-fuchsfl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" GDROM_DATA_REG is a memory-mapped data register, but the driver uses outsw() and insw() only for this register. Replace this with local helpers using MMIO accessors ioread16_rep() / iowrite16_rep(). Before, it oopsed accessing the data register, as the io_port_base P2SEG gets added to the argument in outsw() / insw(), which leads to an unusable drive: BUG: unable to handle kernel paging request at 405f7080 PC: [<8c28d5b4>] gdrom_spicommand+0x6c/0xb0 Signed-off-by: Florian Fuchs --- The original Oops can be reproduced just by mounting a disc, like: mount -t iso9660 -o ro /dev/gdrom /mnt --- drivers/cdrom/gdrom.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c index 4ba4dd06cbf4..dccf41fa5d0a 100644 --- a/drivers/cdrom/gdrom.c +++ b/drivers/cdrom/gdrom.c @@ -171,6 +171,16 @@ static void gdrom_identifydevice(void *buf) data[c] =3D __raw_readw(GDROM_DATA_REG); } =20 +static void gdrom_fifo_readw(void *buf, unsigned int words) +{ + ioread16_rep((void __iomem *)GDROM_DATA_REG, buf, words); +} + +static void gdrom_fifo_writew(const void *buf, unsigned int words) +{ + iowrite16_rep((void __iomem *)GDROM_DATA_REG, buf, words); +} + static void gdrom_spicommand(void *spi_string, int buflen) { short *cmd =3D spi_string; @@ -198,7 +208,7 @@ static void gdrom_spicommand(void *spi_string, int bufl= en) gdrom_getsense(NULL); return; } - outsw(GDROM_DATA_REG, cmd, 6); + gdrom_fifo_writew(cmd, 6); } =20 =20 @@ -282,7 +292,7 @@ static int gdrom_readtoc_cmd(struct gdromtoc *toc, int = session) err =3D -EINVAL; goto cleanup_readtoc; } - insw(GDROM_DATA_REG, toc, tocsize/2); + gdrom_fifo_readw(toc, tocsize / 2); if (gd.status & 0x01) err =3D -EINVAL; =20 @@ -433,7 +443,7 @@ static int gdrom_getsense(short *bufstring) GDROM_DEFAULT_TIMEOUT); if (gd.pending) goto cleanup_sense; - insw(GDROM_DATA_REG, &sense, sense_command->buflen/2); + gdrom_fifo_readw(sense, sense_command->buflen / 2); if (sense[1] & 40) { pr_info("Drive not ready - command aborted\n"); goto cleanup_sense; @@ -612,7 +622,7 @@ static blk_status_t gdrom_readdisk_dma(struct request *= req) cpu_relax(); gd.pending =3D 1; gd.transfer =3D 1; - outsw(GDROM_DATA_REG, &read_command->cmd, 6); + gdrom_fifo_writew(read_command->cmd, 6); timeout =3D jiffies + HZ / 2; /* Wait for any pending DMA to finish */ while (__raw_readb(GDROM_DMA_STATUS_REG) && --=20 2.43.0 From nobody Sun Jun 14 18:58:14 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BECF236EA93 for ; Sun, 5 Apr 2026 08:23:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775377423; cv=none; b=BCaWydUUcagWxdT7d6FsUHYFNkuBlFflbP39gC2ILqqKzo/D+N4ORSU+I3VRvUy3WInabs5z1LPdxVNnK+L1o1R1PNThZaCOA5+MqbgCBfVKpJoG6dG0Cj3HZbk8eXXyBmB6lWfXDCsPGb6QlsmlDSw5CEKM3DzKSch/SHu8Tlk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775377423; c=relaxed/simple; bh=CndNBHs65/Oko/6eA4m0yCdiX9aMzha3rwQSngz79G0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X3Gdpnu9guIRITL04/ytQ6vmnj3BNSS73HKp23DHfhWsUgGb5IMaRO/b/f5ZGDxZVzLIIB3sk/RXGMY/b4/w+c40VZaww27w+vP5dfRGKvROEdqAMqAKesceP8hWSkbnU15F2FZijuC/T++JrUzXCP2Hss0kRGPobhz76xxGr+I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MDEhRGsU; arc=none smtp.client-ip=209.85.221.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MDEhRGsU" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-43d02a71526so1773558f8f.3 for ; Sun, 05 Apr 2026 01:23:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775377420; x=1775982220; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ivdw88sKwAITBaCSqptSbAgLAv66q7tzyfMWmFGYTXA=; b=MDEhRGsUs9Mph6z7/XaZONQkeD/FGY+9TRyIIbgvgrr5b8YQ4V7ql0RfHifk9Re28s KJT9xThFjQ/naMSix1QzZFRN7qbN1GsYgBhV913XJMmiDmiwhpl06qRubE2WdGJ5O233 Dy/F7Rr6cw5fQ0Mz5R/6XeCX1U+RsIoYjO8dBy9jhabM69C/wAtPeg/Cwkvzl6KTLdZz ajx2NTIjJVB+9Z9iugKwXCLxrY7/YicOSHQ6BuWvozqkWYaREbcjUyXjTdDEzeVGVV01 57UzNU2zAQldMelPOYAJiuTZOXuAZp3KDoirDQzl9JSdkBenRf87XXkbYPXDoiLIq6Yt nPhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775377420; x=1775982220; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ivdw88sKwAITBaCSqptSbAgLAv66q7tzyfMWmFGYTXA=; b=hD2Yww/O1zNP0+3nt5yJoMuIf0gJM9zLtQCcvTwyRt1NCNoFu0Oin6dv3PdTk0TFrJ X2N1mAeMeGrNdWECST00Qb/Hysfm7GsTQdb2z0GMKwgcVh07hjgM5z1EKmqUQd//EYHL KdOkBUKPREx52+bpatnOj9waKtNGUez8o4k0teAgMQOdVDH6uuLdcIQkEHSCvweO6+Rk vWpm3oDM74EWAYyxG4JKS1XKwgc+l+ROgVAbTpi92k5KguUXmLb93BfVlX1m2KLnerj3 VJyiM/7gZ9NGoNVuTiPmtFI3SbtjRC3yAxDiRkbfhuPnNTROUpimXixxlO4rhdfrttw0 P6Cg== X-Forwarded-Encrypted: i=1; AJvYcCVoZWn65eUoHOiQviyIYFvs/Hwyo1A3Cq0gm70Wt3h66fj/luclwXwTJ8X7AsJ848QAUoK4eMpM/fE5tZQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxBXZx+OMsHIJB7FBqtsvXIVGXkzd3fWY2N/bz1B6aGagsW4w8o ZR6pIUKEUXiSf6MxXhjlGGt85n0nV48DvEOIgoCxldMZT03fOspRxWY= X-Gm-Gg: AeBDievgOVdF7wIMRR4EXpYMo06ljrcn/ygN/MMYRfpN2pRa+EE49RQpSc15hYRUvUv k32zcjbROXDdrmwiz6+ijHep+i71/+XcBg+hHx2WaIDOV0h+lZgTlz/Jw2qpMQ41/hFSDEEkOqY LCuC0I0YYjeyyJM4CYvEGgoMQh/14zIG7iDxqCWKqEfh5oc3h2nmtbvWUgti0ib5R0UxXSpR0H/ lPONU5LL4W6EuonKi5/Rlp1ietiMViNT6BblSz7eGWPbN7NAMXBweTj4eXf6FDoYbxOGdpqNVBG ze4hP6F3c3zuhoJAY622Xo7rA9/fj+ce7krSe2JnrZmDsKrKE62arkKEUatA365J5pi6DXwVDSE ZMMPCJ6MNfVMoTQIbN+pfmoRcdHm/eWQNvMxg3Rc8zFnIPAgHX6Blw6m4TCE0TH1+yO6rAuvVP1 Cv3UIXFvLY3z6c039EW6JqBaDjlIk3VC/wbYadtymcAjbLBb4LUlG8L2W4LRbsrIUlxYX7Hkcnw H9X67jG X-Received: by 2002:a05:6000:208a:b0:43b:492c:8345 with SMTP id ffacd0b85a97d-43d2927f4bfmr11419777f8f.10.1775377420033; Sun, 05 Apr 2026 01:23:40 -0700 (PDT) Received: from localhost ([2a02:810d:4a94:b300:4382:4d9a:caac:a8d9]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-43d1e2a7223sm27615483f8f.5.2026.04.05.01.23.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Apr 2026 01:23:39 -0700 (PDT) From: Florian Fuchs To: linux-sh@vger.kernel.org, John Paul Adrian Glaubitz , Artur Rojek Cc: Adrian McMenamin , linux-kernel@vger.kernel.org, Florian Fuchs Subject: [PATCH 2/2] cdrom: gdrom: update gendisk capacity on open Date: Sun, 5 Apr 2026 10:23:30 +0200 Message-ID: <20260405082330.4104672-3-fuchsfl@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260405082330.4104672-1-fuchsfl@gmail.com> References: <20260405082330.4104672-1-fuchsfl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Update the gendisk capacity of the media. Without the capacity, the block reads fail before reaching the request queue, which prevented ISO9660 mounts. Refresh the capacity from the TOC leadout in gdrom_bdops_open() so it checks the inserted media. Signed-off-by: Florian Fuchs --- drivers/cdrom/gdrom.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c index dccf41fa5d0a..854a511e3466 100644 --- a/drivers/cdrom/gdrom.c +++ b/drivers/cdrom/gdrom.c @@ -484,6 +484,25 @@ static const struct cdrom_device_ops gdrom_ops =3D { CDC_RESET | CDC_DRIVE_STATUS | CDC_CD_R, }; =20 +static int gdrom_update_capacity(void) +{ + sector_t cap; + int ret; + + if (gdrom_drivestatus(gd.cd_info, CDSL_CURRENT) !=3D CDS_DISC_OK) { + set_capacity(gd.disk, 0); + return -ENOMEDIUM; + } + ret =3D gdrom_readtoc_cmd(gd.toc, 0); + if (ret) { + set_capacity(gd.disk, 0); + return ret; + } + cap =3D (sector_t)get_entry_lba(gd.toc->leadout) * GD_TO_BLK; + set_capacity(gd.disk, cap); + return 0; +} + static int gdrom_bdops_open(struct gendisk *disk, blk_mode_t mode) { int ret; @@ -492,6 +511,8 @@ static int gdrom_bdops_open(struct gendisk *disk, blk_m= ode_t mode) =20 mutex_lock(&gdrom_mutex); ret =3D cdrom_open(gd.cd_info, mode); + if (!ret) + ret =3D gdrom_update_capacity(); mutex_unlock(&gdrom_mutex); return ret; } --=20 2.43.0