floppy: cleanup: make wait_til_ready() not rely on current_fdc anymore
authorWilly Tarreau <w@1wt.eu>
Tue, 31 Mar 2020 09:40:43 +0000 (11:40 +0200)
committerDenis Efremov <efremov@linux.com>
Tue, 12 May 2020 16:34:54 +0000 (19:34 +0300)
Now the fdc is passed in argument so that the function does not
use current_fdc anymore.

Link: https://lore.kernel.org/r/20200331094054.24441-13-w@1wt.eu
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Denis Efremov <efremov@linux.com>
drivers/block/floppy.c

index dd739594fce7fff37a1a0c6c3c5a50e1fb5ae6f2..5dfddd4726fb9f87d248bf4a5725df2d46406ba2 100644 (file)
@@ -1107,30 +1107,30 @@ static void setup_DMA(void)
 static void show_floppy(int fdc);
 
 /* waits until the fdc becomes ready */
-static int wait_til_ready(void)
+static int wait_til_ready(int fdc)
 {
        int status;
        int counter;
 
-       if (fdc_state[current_fdc].reset)
+       if (fdc_state[fdc].reset)
                return -1;
        for (counter = 0; counter < 10000; counter++) {
-               status = fdc_inb(current_fdc, FD_STATUS);
+               status = fdc_inb(fdc, FD_STATUS);
                if (status & STATUS_READY)
                        return status;
        }
        if (initialized) {
-               DPRINT("Getstatus times out (%x) on fdc %d\n", status, current_fdc);
-               show_floppy(current_fdc);
+               DPRINT("Getstatus times out (%x) on fdc %d\n", status, fdc);
+               show_floppy(fdc);
        }
-       fdc_state[current_fdc].reset = 1;
+       fdc_state[fdc].reset = 1;
        return -1;
 }
 
 /* sends a command byte to the fdc */
 static int output_byte(char byte)
 {
-       int status = wait_til_ready();
+       int status = wait_til_ready(current_fdc);
 
        if (status < 0)
                return -1;
@@ -1159,7 +1159,7 @@ static int result(void)
        int status = 0;
 
        for (i = 0; i < MAX_REPLIES; i++) {
-               status = wait_til_ready();
+               status = wait_til_ready(current_fdc);
                if (status < 0)
                        break;
                status &= STATUS_DIR | STATUS_READY | STATUS_BUSY | STATUS_DMA;
@@ -1186,7 +1186,7 @@ static int result(void)
 /* does the fdc need more output? */
 static int need_more_output(void)
 {
-       int status = wait_til_ready();
+       int status = wait_til_ready(current_fdc);
 
        if (status < 0)
                return -1;