Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Oct 2001 10:16:43 +0600 (NOVT)
From:      nnd@mail.nsk.ru (Nickolay Dudorov)
To:        cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/kern subr_bus.c
Message-ID:  <200110300416.f9U4Ghw00476@wint.itfs.nsk.su>
In-Reply-To: <200110282332.f9SNWZN19161@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <200110282332.f9SNWZN19161@freefall.freebsd.org>
"Andrey A. Chernov" <ache@FreeBSD.ORG> wrote:
> ache        2001/10/28 15:32:35 PST
> 
>  Modified files:
>    sys/kern             subr_bus.c 
>  Log:
>  1) In devclass_alloc_unit(), skip duplicated wired devices (i.e. with fixed
>  number) instead of allocating next free unit for them.  If someone needs
>  fixed place, he must specify it correctly. "Allocating next" is especially bad
>  because leads to double device detection and to "repeat make_dev panic" as
>  result.  This can happens if the same devices present somewhere on PCI bus,
>  hints and  ACPI.  Making them present in one place only not always
>  possible, "sc" f.e.  can't be removed from hints, it results to no console at
>  all.
>  
>  2) In make_device(), detect when devclass_add_device() fails, free dev and
>  return. I.e. add missing error checking. This part needed to finish fix in 1),
>  but must be done this way in anycase, with old variant too.
>  
>  Revision  Changes    Path
>  1.92      +9 -9      src/sys/kern/subr_bus.c

	After this commit I have the problem with the 
HighPoint's HPT366 controller on the ABIT's BP6 mobo.
In fact the problem is in the 'sys/dev/ata/ata-pci.c' where
devices for non-master controllers was maked with the fixed
unit-number 2. This works before this commit due to "allocating next"
free unit and now I have no 'ata3' controller with my ad6 disk :-(.

	The next patch fixed the problem to me.
I hope that Soeren(?) Schmidt <sos@FreeBSD.org> can check it.

	N.Dudorov

Index: sys/dev/ata/ata-pci.c
===================================================================
RCS file: /scratch/CVS/src/sys/dev/ata/ata-pci.c,v
retrieving revision 1.16
diff -b -u -r1.16 ata-pci.c
--- sys/dev/ata/ata-pci.c	23 Oct 2001 09:57:49 -0000	1.16
+++ sys/dev/ata/ata-pci.c	30 Oct 2001 03:54:39 -0000
@@ -271,7 +271,7 @@
 	    return ENOMEM;
     }
     else {
-	if (!(child = device_add_child(dev, "ata", 2)))
+	if (!(child = device_add_child(dev, "ata", -1)))
 	    return ENOMEM;
     }
     return 0;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110300416.f9U4Ghw00476>