cvs commit: src/sys/i386/i386 bios.c
M. Warner Losh
imp at bsdimp.com
Thu Jun 17 19:46:13 GMT 2004
In message: <200406171538.08813.jhb at FreeBSD.org>
John Baldwin <jhb at FreeBSD.org> writes:
: On Thursday 17 June 2004 03:25 pm, M. Warner Losh wrote:
: > In message: <200406171247.04461.jhb at FreeBSD.org>
: >
: > John Baldwin <jhb at FreeBSD.org> writes:
: > : On Tuesday 15 June 2004 11:02 pm, M. Warner Losh wrote:
: > : > In message: <200406152008.50656.jhb at FreeBSD.org>
: > : >
: > : > John Baldwin <jhb at 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;
True.
: 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;
Easy enough to arrange...
Warner
More information about the cvs-src
mailing list