Current-Users archive

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

Re: iwn, wpa_supplicant, and wpa2 enterprise



On Fri June 4 2010 01:45:22 Roy Marples wrote:
> On 06/04/10 02:54, Sverre Froyen wrote:
> > I see a "iwn0: cannot assign link-local address" message on the console,
> > which could be from a dhcpcd triggered iwn_ioctl call that fails because
> > of the rev 1.94 change, thereby causing a dhcpcd failure.
> 
> That's not a dhcpcd message. Probably refers to the link-local IPv6
> address.

You're correct. It's not caused by dhcpcd. I instrumented the iwn driver to 
list the failed ioctls. There are two. The first one is from wpa_supplicant:

        iwn0: ioctl while busy: 0xc0706984

(the hex number is the command). This is followed by

        iwn0: cannot assign link-local address

and another failed ioctl from dhcpcd:

        iwn0: ioctl while busy: 0xc0906911

I still suspect that dhcpcd treats the failed (EBUSY) ioctl differently than a 
successful ioctl with a non-active status, and that this is the cause of its 
failure to configure the interface.

As a test, I modified iwn_ioctl to skip the error return:

        /*  
         * Prevent processes from entering this function while another
         * process is tsleep'ing in it.
         */
        if (sc->sc_flags & IWN_FLAG_BUSY) {
                splx(s);
                aprint_normal_dev(sc->sc_dev,
                    "ioctl while busy: 0x%lx\n", cmd);
                /* return EBUSY; */
                s = splnet();
        }

With this change my laptop boots normally.

Not sure what to do next. I attempted adding a 1 sec DELAY and rechecking the 
busy bit. This had no effect. Perhaps use a tsleep? Suggestions are welcome :-)

Sverre


Home | Main Index | Thread Index | Old Index