Commit 43d81bb6 authored by Willy Tarreau's avatar Willy Tarreau Committed by Denis Efremov

floppy: cleanup: make next_valid_format() not rely on current_drive anymore

Now the drive is passed in argument so that the function does not
use current_drive anymore.

Link: https://lore.kernel.org/r/20200331094054.24441-21-w@1wt.euSigned-off-by: default avatarWilly Tarreau <w@1wt.eu>
Signed-off-by: default avatarDenis Efremov <efremov@linux.com>
parent c7af70b0
...@@ -2058,18 +2058,18 @@ static void success_and_wakeup(void) ...@@ -2058,18 +2058,18 @@ static void success_and_wakeup(void)
* ========================== * ==========================
*/ */
static int next_valid_format(void) static int next_valid_format(int drive)
{ {
int probed_format; int probed_format;
probed_format = drive_state[current_drive].probed_format; probed_format = drive_state[drive].probed_format;
while (1) { while (1) {
if (probed_format >= 8 || !drive_params[current_drive].autodetect[probed_format]) { if (probed_format >= 8 || !drive_params[drive].autodetect[probed_format]) {
drive_state[current_drive].probed_format = 0; drive_state[drive].probed_format = 0;
return 1; return 1;
} }
if (floppy_type[drive_params[current_drive].autodetect[probed_format]].sect) { if (floppy_type[drive_params[drive].autodetect[probed_format]].sect) {
drive_state[current_drive].probed_format = probed_format; drive_state[drive].probed_format = probed_format;
return 0; return 0;
} }
probed_format++; probed_format++;
...@@ -2082,7 +2082,7 @@ static void bad_flp_intr(void) ...@@ -2082,7 +2082,7 @@ static void bad_flp_intr(void)
if (probing) { if (probing) {
drive_state[current_drive].probed_format++; drive_state[current_drive].probed_format++;
if (!next_valid_format()) if (!next_valid_format(current_drive))
return; return;
} }
err_count = ++(*errors); err_count = ++(*errors);
...@@ -2884,7 +2884,7 @@ static void redo_fd_request(void) ...@@ -2884,7 +2884,7 @@ static void redo_fd_request(void)
if (!_floppy) { /* Autodetection */ if (!_floppy) { /* Autodetection */
if (!probing) { if (!probing) {
drive_state[current_drive].probed_format = 0; drive_state[current_drive].probed_format = 0;
if (next_valid_format()) { if (next_valid_format(current_drive)) {
DPRINT("no autodetectable formats\n"); DPRINT("no autodetectable formats\n");
_floppy = NULL; _floppy = NULL;
request_done(0); request_done(0);
......
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