Date: Thu, 17 Jun 2004 15:38:08 -0400 From: John Baldwin <jhb@FreeBSD.org> To: "M. Warner Losh" <imp@bsdimp.com> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/i386/i386 bios.c Message-ID: <200406171538.08813.jhb@FreeBSD.org> In-Reply-To: <20040617.132522.102576979.imp@bsdimp.com> References: <200406152008.50656.jhb@FreeBSD.org> <200406171247.04461.jhb@FreeBSD.org> <20040617.132522.102576979.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 17 June 2004 03:25 pm, M. Warner Losh wrote: > In message: <200406171247.04461.jhb@FreeBSD.org> > > John Baldwin <jhb@FreeBSD.org> writes: > : On Tuesday 15 June 2004 11:02 pm, M. Warner Losh wrote: > : > In message: <200406152008.50656.jhb@FreeBSD.org> > : > > : > John Baldwin <jhb@freebsd.org> writes: > : > : On Monday 14 June 2004 10:12 pm, Nate Lawson wrote: > : > : > njl 2004-06-15 02:12:12 UTC > : > : > > : > : > FreeBSD src repository > : > : > > : > : > Modified files: > : > : > sys/i386/i386 bios.c > : > : > Log: > : > : > We only need the devclass_find() result, not the softc. > : > : > : > : The devclass still exists if there is no acpi0 device due to 'set > : > : hint.acpi.0.disabled=1'. Perhaps devclass_get_device() is more > : > : appropriate than devclass_get_softc() though. > : > > : > The hint is insufficient to create the devclass, I believe. It exists > : > because there's a node in the tree or could be a node in the tree. > : > devclass_get_device() and checking to see if it is attached might be > : > even better. > : > : The devclass exists even if there is no acpi0 device is my point. If > : acpi.ko is loaded or compiled into the kernel, then the driver is going > : to be loaded and the devclass added to the kernel's list. > > I think we're saying basically the same thing and arguing over how it > gets there :-) > > Fetching the softc likely isn't the right answer. > device_is_attached(dev) is likely a better way to go. Yes, using that instead of getting the softc would be fine. However, it would need to check that the passed in dev is NULL in that case. You would need to do: device_t acpidev; acpidev = devclass_get_device(devclass_find("acpi"), 0); if (acpidev != NULL && device_is_attached(acpidev)) return; rather than: if (devclass_get_softc(devclass_find("acpi"), 0) != NULL) return; Which requires an extra variable, etc. If device_is_attached() checked for NULL argument you could do: if (device_is_attached(devclass_get_device(devclass_find("acpi"), 0))) return; -- 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?200406171538.08813.jhb>