Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 103438 - at76c503a broken with Linux 2.6.12
Summary: at76c503a broken with Linux 2.6.12
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Mobile Herd (OBSOLETE)
URL:
Whiteboard:
Keywords: Inclusion
Depends on:
Blocks:
 
Reported: 2005-08-23 04:42 UTC by Stian Halseth
Modified: 2005-08-24 00:04 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stian Halseth 2005-08-23 04:42:08 UTC
Quoting Ruud Linders who have made a patch fixing this problem:

 [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

Reproducible: Always
Steps to Reproduce:
1. Install Linux 2.6.12 (gentoo-sources or vanilla)
2. emerge net-wireless/at76c503a
3.

Actual Results:  
The driver installs and loads fine with the appropriate firmware in place put no
traffic is getting through, se description under details.

Expected Results:  
Wireless functionality as with kernels before Linux 2.6.12

I'm not on my Gentoo box right now so can't paste info from emerge info, but
this is reproducable under any Linux 2.6.12 distro.

Ruud Linders patch to fix the problem:

--- 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);
Comment 1 Steev Klimaszewski (RETIRED) gentoo-dev 2005-08-23 14:25:52 UTC
How exactly, do you mean this is broken, I use an at76c503a usb wifi device 
with 2.6.12, so I am curious if you could relabel the bug to something more 
meaningful, as it works here.
Comment 2 Stefan Schweizer (RETIRED) gentoo-dev 2005-08-24 00:04:54 UTC
Sorry, this is obviously not reproduceable. Can you please post the fix to the
upstream(at76c503a) mailing list so that they can include it? It will then flow
back automatically to gentoo with the next debian snapshot.