Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 06 Jun 2015 13:08:16 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        Marcel Moolenaar <marcel@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r284078 - head/sys/dev/pci
Message-ID:  <5117505.v1AmJczBtP@ralph.baldwin.cx>
In-Reply-To: <FACB89C9-092E-4459-A46D-A1EDE987889D@xcllnt.net>
References:  <201506061551.t56FpCbX013048@svn.freebsd.org> <14005803.mtbqcRkBJG@ralph.baldwin.cx> <FACB89C9-092E-4459-A46D-A1EDE987889D@xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday, June 06, 2015 09:18:22 AM Marcel Moolenaar wrote:
> 
> > On Jun 6, 2015, at 9:03 AM, John Baldwin <jhb@FreeBSD.org> wrote:
> > 
> > On Saturday, June 06, 2015 03:51:12 PM Marcel Moolenaar wrote:
> >> Author: marcel
> >> Date: Sat Jun  6 15:51:11 2015
> >> New Revision: 284078
> >> URL: https://svnweb.freebsd.org/changeset/base/284078
> >> 
> >> Log:
> >>  Don't return -10000 as the probe priority. That's lower than what
> >>  BUS_PROBE_HOOVER is. Drivers like proto(4), when compiled into the
> >>  kernel or preloaded, will render your system useless by virtue of
> >>  attaching to your PCI busses.
> >> 
> >>  Return BUS_PROBE_GENERIC instead. It's just the next priority up
> >>  from BUS_PROBE_HOOVER. No other meaning has been give to its use.
> >>  While BUS_PROBE_DEFAULT seems like a better candidate, it's hard
> >>  not to think that there must be some reason why these drivers
> >>  return -10000 in the first place.
> > 
> > BUS_PROBE_DEFAULT would conflict with other drivers that are supposed to
> > override these, such as acpi_pcib_pci which should override pci_pci
> > for PCI-PCI bridges in the ACPI namespace.  That driver currently hardcodes
> > -1000 itself. :-/  Then there's pcibios_pcib_probe for the $PIR PCI-PCI
> > bridge driver for when ACPI isn't present.  It returns -2000.  The
> > MPTable PCI-PCI bridge driver returns -1000 like ACPI.
> 
> So that means we have a regression. Do you want me to back out
> or should we just move forward and fix those too.

Yeah, I just now realized this.  If you can fix this quickly it's probably ok
to just fix it vs backing it out and committing a larger change.

For the x86 PCI bridge drivers, I think you can probably use
BUS_PROBE_DEFAULT for ACPI and MPTable and BUS_PROBE_LOW_PRIORITY for the
pcibios one.  However, I haven't looked at other platforms.  I believe there
are some other PCI-PCI bridge drivers kicking around (for OFW on sparc64 and
powerpc at least, not sure if there are others).

It might be fine to lower HOOVER as well, but it's probably worth it to fix
all drivers to use one of the BUS_PROBE constants (perhaps with an offset
like 'BUS_PROBE_GENERIC - 10 or some such') rather than magic values.

Unfortunately sweeping all device_probe calls is likely to be a bit tedious.
:-/

-- 
John Baldwin



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