Date: Fri, 24 Sep 2004 15:35:37 -0400 From: John Baldwin <jhb@FreeBSD.org> To: freebsd-current@FreeBSD.org Cc: phk@FreeBSD.org Subject: Re: interesting bug of new fdc(4) - two /dev/fd0 device files Message-ID: <200409241535.37511.jhb@FreeBSD.org> In-Reply-To: <20040924191225.32854.qmail@web14824.mail.yahoo.com> References: <20040924191225.32854.qmail@web14824.mail.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 24 September 2004 03:12 pm, Rostislav Krasny wrote:
> I have FreeBSD 5.3-BETA5 and 5.3-BETA4 installed on separate disks of
> the same computer. After the installation I added a second floppy drive
> (disk B in DOS). See following logs about how both systems work after
> that:
>
> dmesg and shell logs of 5.3-BETA5 (two /dev/fd0 device files):
>
> PNP0700: adding dma mask 0x4
> PNP0700: adding io range 0x3f2-0x3f5, size=0x4, align=0
> PNP0700: adding irq mask 0x40
> pnpbios: handle 12 device ID PNP0700 (0007d041)
> [snipped]
> fdc0: ic_type 90 part_id 80
> fdc0: <Enhanced floppy controller> at port 0x3f0-0x3f5 irq 6 drq 2 on
> isa0
> fdc0: ic_type 90 part_id 80
> fdc0: [MPSAFE]
> fdc0: [FAST]
> fd0: <1440-KB 3.5" drive> on fdc0 drive 0
> fd1: <1440-KB 3.5" drive> on fdc0 drive 1
>
> > ls -il /dev/fd[0-9]
>
> 73 crw-r----- 1 root operator 4, 10 Sep 24 20:21 /dev/fd0
> 73 crw-r----- 1 root operator 4, 10 Sep 24 20:21 /dev/fd0
>
>
> dmesg and shell logs of 5.3-BETA4 (no such bug):
>
> PNP0700: adding dma mask 0x4
> PNP0700: adding io range 0x3f2-0x3f5, size=0x4, align=0
> PNP0700: adding irq mask 0x40
> pnpbios: handle 12 device ID PNP0700 (0007d041)
> [snipped]
> fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port
> 0x3f7,0x3f
> 0-0x3f5 irq 6 drq 2 on isa0
> fdc0: FIFO enabled, 8 bytes threshold
> fd0: <1440-KB 3.5" drive> on fdc0 drive 0
> fd1: <1440-KB 3.5" drive> on fdc0 drive 1
>
> > ls -il /dev/fd[0-9]
>
> 32 crw-r----- 1 root operator 242, 0 Sep 24 19:05 /dev/fd0
> 34 crw-r----- 1 root operator 242, 1 Sep 24 19:05 /dev/fd1
>
>
> P.S. having two floppy drives became rare at our days but this is still
> possible and correct to be used by anyone.
Looks like a bug in fd2_attach():
fd->fd_geom = g_new_geomf(&g_fd_class,
"fd%d", device_get_unit(fd->fdc->fdc_dev));
Try changing that line in sys/dev/fdc/fdc.c (about line 1909) to use
fd->fd_dev rather than fd->fdc->fdc_dev.
Or, alternatively, change the two lines to:
fd->fd_geom = g_new_geomf(&g_fd_class, "%s",
device_get_nameunit(fd));
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200409241535.37511.jhb>
