exit early in floppy_init when no floppy exists
Subsystems (2)
PATCH 1/1 exit early in floppy_init when no floppy exists
modprobe -v floppy on a Apple G5 writes incorrect stuff to dmesg:
Floppy drive(s): fd0 is 2.88M
The reason is that the legacy io check happens very late, when part of the floppy stuff is already initialized. check_legacy_ioport() returns either -ENODEV right away, or it walks the device-tree looking for a floppy node.
---
Can this go into 2.6.18 please? Our installer parses dmesg to find floppy devices. Dont ask....
drivers/block/floppy.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
drivers/block/floppy.c +5 -7
@@ -4177,6 +4177,11 @@ static int __init floppy_init(void)int i, unit, drive;int err, dr; +#if defined(CONFIG_PPC_MERGE ) +if (check_legacy_ioport (FDC1 )) +return -ENODEV ; +#endif + raw_cmd =NULL ;for (dr =0 ; dr <N_DRIVE ; dr++) {
@@ -4234,13 +4239,6 @@ static int __init floppy_init(void) } use_virtual_dma = can_use_virtual_dma &1 ; -#if defined(CONFIG_PPC_MERGE ) -if (check_legacy_ioport (FDC1 )) { -del_timer (&fd_timeout); - err = -ENODEV ; - goto out_unreg_region; - } -#endif fdc_state[0 ].address =FDC1 ;if (fdc_state[0 ].address ==-1 ) {del_timer (&fd_timeout);
Quoted 11 lines · Olaf Hering
modprobe -v floppy on a Apple G5 writes incorrect stuff to dmesg:
Floppy drive(s): fd0 is 2.88M
The reason is that the legacy io check happens very late, when part of the floppy stuff is already initialized.
check_legacy_ioport()returns either-ENODEVright away, or it walks the device-tree looking for a floppy node.Signed-off-by Olaf Hering <[email protected]>
Quoted 46 lines
---
Can this go into 2.6.18 please? Our installer parses dmesg to find floppy devices. Dont ask....
drivers/block/floppy.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)Index:
linux-2.6.18-rc4/drivers/block/floppy.c
===================================================================drivers/block/floppy.c +5
-8@@ -4177,6 +4177,11 @@ static int __init floppy_init(void)int i, unit, drive;int err, dr; +#if defined(CONFIG_PPC_MERGE ) +if (check_legacy_ioport (FDC1 )) +return -ENODEV ; +#endif + raw_cmd =NULL ;for (dr =0 ; dr <N_DRIVE ; dr++) {@@ -4234,13 +4239,6 @@ static int __init floppy_init(void) } use_virtual_dma = can_use_virtual_dma &1 ; -#if defined(CONFIG_PPC_MERGE ) -if (check_legacy_ioport (FDC1 )) { -del_timer (&fd_timeout); - err = -ENODEV ; - goto out_unreg_region; - } -#endif fdc_state[0 ].address =FDC1 ;if (fdc_state[0 ].address ==-1 ) {del_timer (&fd_timeout); -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/