Commit 2219ec23 authored by Juergen Gross's avatar Juergen Gross Committed by Ingo Molnar
Browse files

block/floppy: Don't use REALLY_SLOW_IO for delays



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: default avatarJuergen Gross <jgross@suse.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Link: https://patch.msgid.link/20260119182632.596369-4-jgross@suse.com
parent 9eece498
Loading
Loading
Loading
Loading
+22 −5
Original line number Diff line number Diff line
@@ -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;
+0 −5
Original line number Diff line number Diff line
@@ -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)						\
+0 −2
Original line number Diff line number Diff line
@@ -145,8 +145,6 @@
 * Better audit of register_blkdev.
 */

#define REALLY_SLOW_IO

#define DEBUGT 2

#define DPRINT(format, args...) \