Why doesn't ppc(4) check non-ENXIO failures during probe?

Garrett Cooper yanegomi at gmail.com
Mon Aug 16 23:23:56 UTC 2010

On Mon, Aug 16, 2010 at 1:19 PM, John Baldwin <jhb at freebsd.org> wrote:
> On Sunday, August 15, 2010 1:33:38 am Garrett Cooper wrote:
>>     One thing that's puzzling me about the ppc(4) driver's ISA
>> routines is that it only checks to see whether or not the device has
>> an IO error:
> Your patch would break hinted ppc devices.  ENXIO means that the device_t
> being probed has an ISA PNP ID, but it does not match any of the IDs in the
> list.  ENONET means that the device_t does not have an ISA ID at all.  For the
> isa bus that means it was explicitly created via a set of ppc.X hints.

Just clarifying some things because I don't know all of the details.

If a ISA based parallel port fails to probe with ENOENT, then it's
assumed that the configuration details are incorrect, and it should
reprobe the device with different configuration settings (irq, isa
port, etc) a max of BIOS_MAX_PPC times before it finally bails failing
to configure a device (ppc_probe in ppc.c)? What if all of the ISA
details in the device.hints file are bogus and the only detail that's
correct is in the puc driver, etc? Would it fail to connect the card
if it reached the BIOS_MAX_PPC ISA-related failure limit (see
ppc_probe again)?


More information about the freebsd-hackers mailing list