Created attachment 360364 [details] Patch to revert the toxic part of the upstream changeset Description of problem: During the 2.6.30 kernel development cycle, the hostap driver was converted to use net_device_ops. Within this conversion a tiny mistake was made in hostap_main.c. The original fragment of code was: if (type != HOSTAP_INTERFACE_MASTER) { /* use main radio device queue */ dev->tx_queue_len = 0; } While the equivalent new fragment (with unrelated lines marked) is: switch(type) { case HOSTAP_INTERFACE_AP: dev->netdev_ops = &hostap_mgmt_netdev_ops; /* unrelated */ dev->type = ARPHRD_IEEE80211; /* unrelated */ dev->header_ops = &hostap_80211_ops; /* unrelated */ break; case HOSTAP_INTERFACE_MASTER: dev->tx_queue_len = 0; /* use main radio device queue */ dev->netdev_ops = &hostap_master_ops; /* unrelated */ break; default: dev->netdev_ops = &hostap_netdev_ops; /* unrelated */ } Apparently the condition when dev->tx_queue_len is set to 0 was reversed in the new code, which is wrong. The original changeset in kernel GIT can be examined here: http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blobdiff;f=drivers/net/wireless/hostap/hostap_main.c;h=6fe122f18c0dcd68f8de72db16cc3310338aaf2b;hp=792dd14c894eeb7a4052dad45dab801017579b5a;hb=5ae4efbcd2611562a8b93596be034e63495706a5;hpb=4cfa8e45f4bb26ff38155f94a810a876b739958d Version-Release number of selected component (if applicable): Any kernel since 2.6.30, e.g. kernel-PAE-2.6.30.5-43.fc11.i686 How reproducible: Always when the hostap driver is used in AP mode (via hostapd). Steps to Reproduce: 1. Configure and run hostapd to provide AP services 2. Let a different computer/device associate with the AP Actual results: The size of TX queue of wifi0 (the physical wireless device) is set to zero. WPA/WPA2 association works OK (given the configuration of hostapd is correct), but any further communication is blocked (because the size of the TX queue of wifi0 is zero) and error messages are printed to the kernel ring buffer: Virtual device wifi0 asks to queue packet! Expected results: The size of TX queue of wifi0 should be non-zero, the size of queues for wlan0 and wlan0ap should be zero. Wireless communication should work after successful association, no warnings should be printed to the kernel ring buffer. Additional info: Please include the attached patch in the next kernel release for Fedora 11 and rawhide. I am going to send the same patch to the upstream kernel maintainer as well.
Fixed in 2.6.30.8-62 ... and you should have also submitted that patch for the stable kernel series.
(In reply to comment #1) Thanks a lot! The fix was merged into linux-next on 2009-09-15. Should I try to make somebody to merge it into linux-2.6.30.y and linux-2.6.31.y myself now or are you going to do it?
kernel-2.6.30.8-64.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/kernel-2.6.30.8-64.fc11
kernel-2.6.30.8-64.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report.