[Atmel-WLAN-USB] at76c503a fixed for kernel 2.6.12 !
Ruud Linders
rkmp at xs4all.nl
Mon Aug 22 12:19:06 CEST 2005
All kernel 2.6.12+ users,
As reported before, the at76c503a driver got broken somewhere
after kernel 2.6.12-rc3.
Using Linus' git-bissect tools I managed to find the exact patch
which broke the driver, it is this patch:
=====
cacaddf57ed4d5ca994e9a7e2bd5558061f5d89d is first bad commit
Author: Tommy S. Christensen <tommy.christensen at tpack.net>
Date: Tue May 3 16:18:52 2005 -0700
[NET]: Disable queueing when carrier is lost.
Some network drivers call netif_stop_queue() when detecting loss of
carrier. This leads to packets being queued up at the qdisc level for
an unbound period of time. In order to prevent this effect, the core
networking stack will now cease to queue packets for any device, that
is operationally down (i.e. the queue is flushed and disabled).
=====
This was a very good clue to start digging into the driver source and
lo and behold enabling the carrier on 2 places in the source fixed it
for me and the driver is working without any problems now in ad-hoc
mode. Patch attached (against latest cvs source).
Have fun,
Ruud
Ruud Linders wrote:
> After several hours of building/rebooting cycles I finally got to
> the conclusion that somewhere between kernels
> 2.6.12-rc3 and
> 2.6.12-rc3-git1
> (ftp://ftp.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.12-rc3-git1.bz2)
>
> the at76c503a driver got broken !
>
> It doesn't appear to be a problem with ARP messages as Jim mentioned
> since manually setting the arp table doesn't help.
>
> What I =do= see is that the interface actually receives something
> as the RX-packets/RX-bytes of the interface are incremented
> when I ping it (or any other IP address in the subnet for that
> matter).
>
> Enough for today, it is now a matter of dissecting the
> patch-2.6.12-rc3-git1.bz2 to see which change caused the problems
> (and then finding a fix).
>
>
> Ruud Linders wrote:
>
>>Jim MacBaine wrote:
>>
>>
>>>On 8/17/05, Ruud Linders <rkmp at xs4all.nl> wrote:
>>>
>>>
>>>
>>>
>>>>After upgrading my kernel from 2.6.11 to 2.6.12, I can't get a
>>>>working link anymore.
>>>
>>>
>>>Yes, we have had this topic here a few times already. But noone here
>>>has enough techical knowledge to fix the driver. So the driver is
>>>obviously unmaintained.
>>>
>>
>>
>>That's too bad :-( I've been using it for long time without problems.
>>
>>
>>
>>>>Effect is no message seems to get through.
>>>
>>>
>>>If you'd look closer, you'd probably see that arp requests get through
>>>but that they are not answered.
>>
>>
>>Hmm, I'll have a look at that.
>>
>>
>>
>>>>Been using this the at76c503a driver since years started back with 2.4.x.
>>>>
>>>>With atmelwlandriver cvs version from sourceforge I actually got
>>>>a working connection on kernel 2.6.12 (although only channel 10
>>>>seems to work ?!)
>>>
>>>
>>>I have switched from the atmelwlandriver to at76c503c after I had
>>>massive problems with the first one (still on 2.4), complete system
>>>stalls, spontaneous reboots and often a completley unresponsive usb
>>>system, which is quite bad with a usb keyboard.
>>>
>>>But maybe it is time to try the atmelwlandriver again. Is it working
>>>stable on 2.6.12 for you?
>>
>>
>>I've been running it now for a day or 2 and I can't say that there have
>>been these disastrous errors. Building/installing was painless so it
>>seems to be rather up-to-date AND it uses standard 'iwconfig' to setup
>>(I have some vague memoeries it used to require strange tools to manage)
>>
>>Once it is running it seems to work alright, however, it is doing weird
>>things when starting up. I try to set it up in ad-hoc mode on fixed
>>channel but it insists in scanning all channels/networks in the
>>neighborhood to "join" something. So when I don't have my laptop powered
>>on (as the other side of the wireless link) it will lock on another
>>channel (with =my= wep-key & essid) which happens to be used by some
>>neighbor two appartments away !?
>>
>>
>>I think it is time to switch to something newer with 802.11g support
>>with Access Point functionality and proper linux(-usb) support.
>>
>>
>>
>>>Regards,
>>>Jim
>>>
>>>_______________________________________________
>>>Atmel-wlan-usb mailing list
>>>Atmel-wlan-usb at iprserv.jura.uni-leipzig.de
>>>https://iprserv.jura.uni-leipzig.de/mailman/listinfo/atmel-wlan-usb
>>>
>>
>>
>>
>
>
-------------- next part --------------
--- at76c503.c.ORIG 2005-04-06 19:38:55.000000000 +0200
+++ at76c503.c 2005-08-22 11:43:44.000000000 +0200
@@ -2833,6 +2833,7 @@
goto end_startibss;
}
+ netif_carrier_on(dev->netdev);
netif_start_queue(dev->netdev);
}
end_startibss:
@@ -2884,6 +2885,7 @@
memcpy(dev->bssid, bptr->bssid, ETH_ALEN);
dev->channel = bptr->channel;
iwevent_bss_connect(dev->netdev,bptr->bssid);
+ netif_carrier_on(dev->netdev);
netif_start_queue(dev->netdev);
/* just to be sure */
del_timer_sync(&dev->mgmt_timer);
More information about the Atmel-wlan-usb
mailing list