]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
block/floppy: Don't use REALLY_SLOW_IO for delays
authorJuergen Gross <jgross@suse.com>
Mon, 19 Jan 2026 18:26:29 +0000 (19:26 +0100)
committerIngo Molnar <mingo@kernel.org>
Sun, 22 Mar 2026 07:43:23 +0000 (08:43 +0100)
Instead of defining REALLY_SLOW_IO before including io.h, add the
required additional calls of native_io_delay() to the related functions
in arch/x86/include/asm/floppy.h.

Drop REALLY_SLOW_IO now too as it has no users.

  [ bp: Merge the REALLY_SLOW_IO removal into this patch. ]

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://patch.msgid.link/20260119182632.596369-4-jgross@suse.com
arch/x86/include/asm/floppy.h
arch/x86/include/asm/io.h
drivers/block/floppy.c

index e7a244051c622799cbb1a9b1b2da5b504e743297..8d1e86687b989685f62f223d55b9aa8ca3d7cf3f 100644 (file)
@@ -29,9 +29,6 @@
 #define CSW fd_routine[can_use_virtual_dma & 1]
 
 
-#define fd_inb(base, reg)              inb_p((base) + (reg))
-#define fd_outb(value, base, reg)      outb_p(value, (base) + (reg))
-
 #define fd_request_dma()       CSW._request_dma(FLOPPY_DMA, "floppy")
 #define fd_free_dma()          CSW._free_dma(FLOPPY_DMA)
 #define fd_enable_irq()                enable_irq(FLOPPY_IRQ)
@@ -49,6 +46,26 @@ static char *virtual_dma_addr;
 static int virtual_dma_mode;
 static int doing_pdma;
 
+static inline u8 fd_inb(u16 base, u16 reg)
+{
+       u8 ret = inb_p(base + reg);
+
+       native_io_delay();
+       native_io_delay();
+       native_io_delay();
+
+       return ret;
+}
+
+static inline void fd_outb(u8 value, u16 base, u16 reg)
+{
+       outb_p(value, base + reg);
+
+       native_io_delay();
+       native_io_delay();
+       native_io_delay();
+}
+
 static irqreturn_t floppy_hardint(int irq, void *dev_id)
 {
        unsigned char st;
@@ -79,9 +96,9 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id)
                        if (st != (STATUS_DMA | STATUS_READY))
                                break;
                        if (virtual_dma_mode)
-                               outb_p(*lptr, virtual_dma_port + FD_DATA);
+                               fd_outb(*lptr, virtual_dma_port, FD_DATA);
                        else
-                               *lptr = inb_p(virtual_dma_port + FD_DATA);
+                               *lptr = fd_inb(virtual_dma_port, FD_DATA);
                }
                virtual_dma_count = lcount;
                virtual_dma_addr = lptr;
index 4179a2ebe777f3eb7091c0fdf6e9f6317ca6f2c9..7f4847b2b904d027ab32df62c9f3b005a504b067 100644 (file)
@@ -253,11 +253,6 @@ static inline void slow_down_io(void)
                return;
 
        native_io_delay();
-#ifdef REALLY_SLOW_IO
-       native_io_delay();
-       native_io_delay();
-       native_io_delay();
-#endif
 }
 
 #define BUILDIO(bwl, type)                                             \
index 92e446a64371248bcfcef4a89a4ec6c6a1e74c06..0509746f8aed01b291d07cc463d2053994c1121e 100644 (file)
  * Better audit of register_blkdev.
  */
 
-#define REALLY_SLOW_IO
-
 #define DEBUGT 2
 
 #define DPRINT(format, args...) \