]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
floppy: fix for PAGE_SIZE != 4KB
authorRene Rebe <rene@exactco.de>
Fri, 14 Nov 2025 13:41:27 +0000 (14:41 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 17 Nov 2025 15:22:00 +0000 (08:22 -0700)
For years I wondered why the floppy driver does not just work on
sparc64, e.g:

root@SUNW_375_0066:# disktype /dev/fd0
disktype: Can't open /dev/fd0: No such device or address

[  525.341906] disktype: attempt to access beyond end of device
fd0: rw=0, sector=0, nr_sectors = 16 limit=8
[  525.341991] floppy: error 10 while reading block 0

Turns out floppy.c __floppy_read_block_0 tries to read one page for
the first test read to determine the disk size and thus fails if that
is greater than 4k. Adjust minimum MAX_DISK_SIZE to PAGE_SIZE to fix
floppy on sparc64 and likely all other PAGE_SIZE != 4KB configs.

Cc: stable@vger.kernel.org
Signed-off-by: René Rebe <rene@exactco.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/floppy.c

index 5336c3c5ca362de9c87515e11d090545b219fc31..c28786e0fe1c8559179191183c3098122702f2e3 100644 (file)
@@ -329,7 +329,7 @@ static bool initialized;
  * This default is used whenever the current disk size is unknown.
  * [Now it is rather a minimum]
  */
-#define MAX_DISK_SIZE 4                /* 3984 */
+#define MAX_DISK_SIZE (PAGE_SIZE / 1024)
 
 /*
  * globals used by 'result()'