psm0: unable to allocation IRQ (solution, well workaround)

Gary Jennejohn gary.jennejohn at freenet.de
Mon Sep 21 09:14:11 UTC 2009


On Sun, 20 Sep 2009 22:33:59 -0400
"David E. Cross" <crossd at cs.rpi.edu> wrote:

> I recently stumbled across this bug, and I have a solution to my
> specific case.
> 
> The problem is the following:
> acpi_ibm0: <IBM ThinkPad ACPI Extras> irq 12 on acpi0
> 
> 
> _IF_, I put "device acpi_ibm" into the kernel config, disaster, psm0 is
> unable to attach.
> 
> If I "acpi_ibm_load="YES"" in /boot/loader.conf, I then get the
> following:
> acpi_ibm0: <IBM ThinkPad ACPI Extras> on acpi0
> 
> Note the lack of "irq12"
> 
> Which then frees up:
> 
> psm0: <PS/2 Mouse> irq 12 on atkbdc0
> 
> 
> Now, psm0 maps its IRQ as RF_SHAREABLE, so it _should_ work regardless,
> right?
> 
> I'd regard this as a fairly serious bug.
> 
> I'm really at a loss of where to track it down more, looking at the
> acpi_ibm code, its pretty opaque as to how resource allocations are done
> and why this would ever map irq 12 (well, at least to me).
> 

I would guess (note - guess) that it's a matter of ordering in the kernel.

When acpi_ibm is in the kernel it gets probed and attached before psm by
the ACPI code and wins the race for irq allocation.

If it's loaded as a module then psm has already gotten irq 12 so
acpi_ibm is not assigned an irq.

---
Gary Jennejohn


More information about the freebsd-current mailing list