ide-floppy & devfs - /dev entry not created if drive is empty (repost)
Two months ago I sent following report:
Quoted 10 lines · Stanislav Brabec
I have tested ide-floppy on my Linux 2.4.19 with ATAPI ZIP 100. I am using devfs.
I found following problem:
If module ide-floppy is loaded and no disc is present in the drive,
/dev/ide/host0/bus1/target1/lun0/discentry is not created. Later inserted media cannot be checked in any way, because no /dev entry exists.
Now I have tested 2.4.20-pre10 with the same ugly result. :-(
And got imediatelly answer and patch:
Quoted 2 lines · Kevin P. Fleming
There are patches at http://members.cox.net/kpfleming/ide-floppy to resolve this.
----- Forwarded message from "Kevin P. Fleming" <[email protected]> -----
Date: Mon, 19 Aug 2002 18:12:22 -0700
From: "Kevin P. Fleming" <[email protected]>
To: Andre Hedrick <[email protected]>
CC: Stanislav Brabec <[email protected]>, Paul Bristow <[email protected]>,
[email protected]
Subject: Re: ide-floppy & devfs - /dev entry not created if drive is empty
I'll let Paul handle this, since he is the ide-floppy maintainer and has some other changes he wants to make. If you do not get anything from him in a week or so, please let me know and I'll updates the patches to the latest -ac kernel and send them.
Oh, there is one non-ide-floppy patch, this cleans up a small part of ide-probe and ensures that ide-floppy devices are marked as removable devices. Last kernel I applied it to was 2.4.20-pre2-ac1, it may have problems with the newer ones if you've worked on ide-probe.
diff -X dontdiff -urN linux/drivers/ide/ide-probe.c linux-probe/drivers/ide/ide-probe.c
drivers/ide/ide-probe.c +3 -6
@@ -130,31 +130,40 @@ goto err_misc; }#endif /* CONFIG_BLK_DEV_PDC4030 */ +/* +* Handle drive type overrides for "unusual" devices +*/ switch (type) { -case ide_floppy: -if (!strstr (id->model,"CD-ROM" )) { -if (!strstr (id->model,"oppy" ) && - !strstr (id->model,"poyp" ) && - !strstr (id->model,"ZIP" )) - printk("cdrom or floppy?,
assuming ");
- if (drive->media != ide_cdrom) {
- printk ("FLOPPY");
- break;
- }
- }
+ case ide_floppy:
+ if (strstr(id->model, "CD-ROM")) {
+ type = ide_cdrom;
+ break;
+ }
+ if (!strstr(id->model, "oppy") &&
+ !strstr(id->model, "poyp") &&
+ !strstr(id->model, "ZIP"))
+ printk("cdrom or floppy?, assuming ");
+ if (drive->media == ide_cdrom)
type = ide_cdrom; /* Early cdrom
models used zero */
- case ide_cdrom:
- drive->removable = 1;
+ break;
#ifdef CONFIG_PPC
+ case ide_cdrom:
/* kludge for Apple PowerBook internal zip */
- if (!strstr(id->model, "CD-ROM") &&
- strstr(id->model, "ZIP")) {
- printk ("FLOPPY");
- type = ide_floppy;
- break;
- }
+ if (!strstr(id->model, "CD-ROM") &&
+ strstr(id->model, "ZIP")) {
+ type = ide_floppy;
+ break;
+ }
#endif
+ }
+ switch (type) {
+ case ide_floppy:
+ printk ("FLOPPY");
+ drive->removable = 1;
+ break;
+ case ide_cdrom:
printk ("CD/DVD-ROM");
+ drive->removable = 1;
break;
case ide_tape:
printk ("TAPE");
Quoted 37 lines · Andre Hedrick
Patch is welcome here.
Drop it on AC and myself please.
Quoted 19 lines · Kevin P. Fleming
There are patches at http://members.cox.net/kpfleming/ide-floppy to resolve this.
Quoted 14 lines · Stanislav Brabec
Hallo Paul Bristow,
I have tested ide-floppy on my Linux 2.4.19 with ATAPI ZIP 100. I am using devfs.
I found following problem:
If module ide-floppy is loaded and no disc is present in the drive,
/dev/ide/host0/bus1/target1/lun0/discentry is not created. Later inserted media cannot be checked in any way, because no /dev entry exists.Older kernels have also this behavior.
Quoted 9 lines
Quoted 2 lines
Fix: Create .../disc entry in all cases, even if no disc is present.
-
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/
Quoted 3 lines
Andre Hedrick
LAD Storage Consulting Group
----- End forwarded message -----
Signature · 2 lines
Stanislav Brabec http://www.penguin.cz/~utx