Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 May 2011 07:47:01 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org, philip-freebsd1@soeberg.net
Subject:   Re: device_detach() on a device used by ixgbe driver (  FreeBSD	7-STABLE through to 9-CURRENT)
Message-ID:  <201105240747.02381.jhb@freebsd.org>
In-Reply-To: <4DDA97EA.20705@soeberg.net>
References:  <4DDA6B95.3090704@soeberg.net> <201105231032.20084.jhb@freebsd.org> <4DDA97EA.20705@soeberg.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, May 23, 2011 1:22:50 pm Philip Soeberg wrote:
> On 23-05-2011 16:32, John Baldwin wrote:
> >> I assume this (transcanding from FreeBSD 7.0-STABLE through to FreeBSD
> >> 9-CURRENT) is in error? I would expect sys/dev/ixgbe/ixgbe.c's probe()
> >> function to return BUS_PROBE_DEFAULT, which is the "Base OS default
> >> driver"..
> >
> > Yes, that is true.
> >
> >> If this is true, then we should probably also update
> >> sys/kern/device_if.m's description of the probe() method as to reflect
> >> the BUS_PROBE_* return values in a clearer way than is currently described.
> >> Do you want me to provide a patch? (it's really a one liner for ixgbe.c
> >> and a couple of alterations to the device_if.m, if need be)
> >
> > device_if.m was probably just never updated from when BUS_PROBE_* were added.
> > Updating it would be a good thing.
> I'll submit a patch tomorrow with an updated description and a fix for 
> the ixgbe then..
> >
> >> I would also expect the ixgbe.c driver to do a quick resource_disabled()
> >> in it's attach() function, so that we can disable specific adapters
> >> through kenv hint.ix.0.disabled=1..
>  >
> > I think ixgbe has to be fixed to use BUS_PROBE_DEFAULT.  Very few drivers
> > should use '0' for their probe return value.
> >
> 
> but since it does return zero, do you have any idea how I can force it 
> to detach allowing me in instead? I've been stabbing high and low at it 
> for hours now, and nothing seem to get me anywhere.. short of hacking 
> the ixgbe_attach() function address, I can't seem to figure out a way to 
> kill the systems way of re-attaching the device to the ixgbe just after 
> I've detached it.
> 
> rather frustrating.. It's like a catch-22 problem..
> 
> and worse, the ixgbe driver is per default included as a static module, 
> so loader.conf "ix_load=no" will have no effect (unless I'm mistaken?)
> 
> I'm running out of ideas as to how I can attach myself to that Intel 
> device instead of the ixgbe when it is linked static and with a return 
> of zero in it's probe().. And I'm also out of ideas as to how to disable 
> that damn module altogether, short of recompiling the kernel..
> 
> any ideas?

Short of dynamically patching ixgbe_probe()'s return value at runtime?
No, no ideas. :(

-- 
John Baldwin



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