Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: if_iwn.c patch to support the 5100... (analysis + patch)



On Fri September 18 2009 09:27:01 Christos Zoulas wrote:
> On Sep 18,  9:14am, sverre%viewmark.com@localhost (Sverre Froyen) wrote:
> -- Subject: Re: if_iwn.c patch to support the 5100... (analysis + patch)
> 
> | On Fri September 18 2009 04:05:19 Brett Lymn wrote:
> | > On Thu, Sep 17, 2009 at 09:39:20AM -0600, Sverre Froyen wrote:
> | > > It looks like these errors may be because iwn_init is called a second
> | > > time before the first call has completed.  It is called via the
> | > > "if_init" pointer and also through iwn_ioctl.  The call via the ioctl
> | > > path only happens if the IFF_UP is set.  I notice that, e.g.,
> | > > net/if_ethersubr.c sets this flag before the call to if_init.  While
> | > > this seems counterintuitive to me it is appears to be the way it's
> | > > always worked. The simplest fix is to remove the call to iwn_init
> | > > from iwn_ioctl:
> | >
> | > Doesn't that have the unfortunate side effect of you then being unable
> | > to reset the interface by doing an ifconfig down/up?
> |
> | You are correct.  Calling it a patch was an exaggeration.  I quick test
> | shows that ifconfig up/down indeed leaves the interface in a non-working
> | state. (Still better than a panic at boot, though.)
> |
> | In order to serialize access (or really prevent a second simultaneous
> | access) is the following the correct approach?
> 
> cvs rdiff -u -r1.151 -r1.152 src/sys/netinet6/in6.c
> cvs rdiff -u -r1.82 -r1.83 src/sys/netinet6/in6_ifattach.c
> cvs rdiff -u -r1.11 -r1.12 src/sys/netinet6/in6_ifattach.h
>
>Can you try  backing out those three changes instead?

NetBSD-current as of this morning, which includes the above backout,
works fine without my "patch".

Current also no longer panics in the ne and wi drivers (it did last week).  I 
suspect that the iwi panic reported in kern/42069 has also been fixed.

Thanks,
Sverre


Home | Main Index | Thread Index | Old Index