floppy: make sure to reset all FDCs upon resume()
In floppy_resume() we don't properly reinitialize all FDCs, instead we reinitialize the current FDC once per available FDC because value -1 is passed to user_reset_fdc(). Let's simply save the current drive and properly reinitialize each FDC. Link: https://lore.kernel.org/r/20200410101904.14652-1-w@1wt.eu Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Denis Efremov <efremov@linux.com>
This commit is contained in:
parent
05f5e319a1
commit
6111a4f9bb
@ -4545,11 +4545,13 @@ static void floppy_device_release(struct device *dev)
|
||||
static int floppy_resume(struct device *dev)
|
||||
{
|
||||
int fdc;
|
||||
int saved_drive;
|
||||
|
||||
saved_drive = current_drive;
|
||||
for (fdc = 0; fdc < N_FDC; fdc++)
|
||||
if (fdc_state[fdc].address != -1)
|
||||
user_reset_fdc(-1, FD_RESET_ALWAYS, false);
|
||||
|
||||
user_reset_fdc(REVDRIVE(fdc, 0), FD_RESET_ALWAYS, false);
|
||||
set_fdc(saved_drive);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user