Commit c7af70b0 authored by Willy Tarreau's avatar Willy Tarreau Committed by Denis Efremov

floppy: cleanup: make check_wp() not rely on current_{fdc,drive} anymore

Now the fdc and drive are passed in argument so that the function does
not use current_fdc nor current_drive anymore.

Link: https://lore.kernel.org/r/20200331094054.24441-20-w@1wt.euSigned-off-by: default avatarWilly Tarreau <w@1wt.eu>
Signed-off-by: default avatarDenis Efremov <efremov@linux.com>
parent 3631a674
...@@ -1561,29 +1561,29 @@ static void seek_interrupt(void) ...@@ -1561,29 +1561,29 @@ static void seek_interrupt(void)
floppy_ready(); floppy_ready();
} }
static void check_wp(void) static void check_wp(int fdc, int drive)
{ {
if (test_bit(FD_VERIFY_BIT, &drive_state[current_drive].flags)) { if (test_bit(FD_VERIFY_BIT, &drive_state[drive].flags)) {
/* check write protection */ /* check write protection */
output_byte(current_fdc, FD_GETSTATUS); output_byte(fdc, FD_GETSTATUS);
output_byte(current_fdc, UNIT(current_drive)); output_byte(fdc, UNIT(drive));
if (result(current_fdc) != 1) { if (result(fdc) != 1) {
fdc_state[current_fdc].reset = 1; fdc_state[fdc].reset = 1;
return; return;
} }
clear_bit(FD_VERIFY_BIT, &drive_state[current_drive].flags); clear_bit(FD_VERIFY_BIT, &drive_state[drive].flags);
clear_bit(FD_NEED_TWADDLE_BIT, clear_bit(FD_NEED_TWADDLE_BIT,
&drive_state[current_drive].flags); &drive_state[drive].flags);
debug_dcl(drive_params[current_drive].flags, debug_dcl(drive_params[drive].flags,
"checking whether disk is write protected\n"); "checking whether disk is write protected\n");
debug_dcl(drive_params[current_drive].flags, "wp=%x\n", debug_dcl(drive_params[drive].flags, "wp=%x\n",
reply_buffer[ST3] & 0x40); reply_buffer[ST3] & 0x40);
if (!(reply_buffer[ST3] & 0x40)) if (!(reply_buffer[ST3] & 0x40))
set_bit(FD_DISK_WRITABLE_BIT, set_bit(FD_DISK_WRITABLE_BIT,
&drive_state[current_drive].flags); &drive_state[drive].flags);
else else
clear_bit(FD_DISK_WRITABLE_BIT, clear_bit(FD_DISK_WRITABLE_BIT,
&drive_state[current_drive].flags); &drive_state[drive].flags);
} }
} }
...@@ -1627,7 +1627,7 @@ static void seek_floppy(void) ...@@ -1627,7 +1627,7 @@ static void seek_floppy(void)
track = 1; track = 1;
} }
} else { } else {
check_wp(); check_wp(current_fdc, current_drive);
if (raw_cmd->track != drive_state[current_drive].track && if (raw_cmd->track != drive_state[current_drive].track &&
(raw_cmd->flags & FD_RAW_NEED_SEEK)) (raw_cmd->flags & FD_RAW_NEED_SEEK))
track = raw_cmd->track; track = raw_cmd->track;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment