if_re does not work
John Baldwin
jhb at freebsd.org
Tue Jul 11 15:02:11 UTC 2006
On Tuesday 11 July 2006 01:30, Bill Paul wrote:
> > Hi all,
> >
> > I have two CardBus card with RealTek 8169SB as follows:
> >
> > NETGEAR GA511
> > Buffalo LPC-CB-CLGT
> >
> > But they act up from revision 1.68 of if_re.c.
>
> This has nothing to do with the re(4) driver. The problem is that
> the cardbus code is not allocating an interrupt resource for the device:
>
> > It is a log of NETGEAR GA511 inserting to ThinkPad X40.
>
> It sure is.
>
> > Jul 10 22:54:33 x40 kernel: re0: <RealTek 8169SB/8110SB Single-chip
Gigabit Ethernet> port 0x3000-0x30ff mem 0xd0211000-0xd02111ff at device 0.0
on cardbus0
>
> Note that there is no 'irq' mentioned anywhere in this line, which is why
> you get this error:
>
> > Jul 10 22:54:33 x40 kernel: re0: couldn't set up irq
>
> If you really think this is related to the driver, prove it: back out
> the changes (while keeping the rest of your kernel the same) and see if
> it works again. I don't think it will.
In theory the bus_alloc_resource(.., SYS_RES_IRQ, ...) should route an
interrupt for the re0 device but it won't show up in the probe line in that
case since the probe line is printed before re_attach() is called. In fact,
in the failing case, it wasn't bus_alloc_resource() that failed, but
bus_setup_intr(). This is most likely not an re0 issue however.
goto-san, can you add printf's to i386/i386/intr_machdep.c:intr_add_handler()
and kern/kern_intr.c:intr_event_add_handler() to see which of the EINVAL
cases is being triggered?
--
John Baldwin
More information about the freebsd-current
mailing list