35 Commits

Author SHA1 Message Date
mentor
76cade5dac Make pointer declarations and casting consistent. Some other formatting changes are made in passing
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3710 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-06-06 20:32:29 +00:00
mentor
18682f3d29 SKB handling code cleanup:
* Convert last SKB_CB()->ni to SKB_NI
 * Lots of comments
 * Refactor various pieces of code for consistency, readability, and removal of goto


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3666 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-22 12:58:24 +00:00
mentor
ef47acefdd Convert tracked member of ieee80211_cb to be a flag
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3618 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-06 11:31:26 +00:00
mtaylor
eaa447863a More SKB_NI
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3496 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-09 22:03:18 +00:00
mentor
101b902062 Arbitrary whitespace cleanups
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3365 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-02-25 15:51:38 +00:00
mentor
ebc79fce38 Cleanup up de-MIC failure (in hardware) handling. Apparently, HW sometimes gets this wrong and spuriusly fails valid packets. In all cases, the packets are dropped, but we do extra processing to record statistics correctly.
This changeset adds a node statistic. If this is not liked, I encourage it to be fixed; I might learn something.
Thanks nbd.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3334 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-02-04 00:16:24 +00:00
mentor
521e00a7c6 Turn on long pre-amble in ERP IE if we have non-ERP stations
Thanks NBD


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3296 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-28 23:40:44 +00:00
mentor
28cf53aa95 Fix merge failures - pass one
mdtaylor: bad merging like this really must not continue any longer


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3272 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-27 04:26:38 +00:00
mtaylor
c2bce77197 Merge madwifi-dfs branch to trunk.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3268 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-26 20:48:11 +00:00
mentor
0b74c2ebe0 More cases to use ieee80211_skb_copy_noderef
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3262 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-26 17:46:36 +00:00
mtaylor
e479155497 Eliminate ether_sprintf in favor of new MAC_FMT and MAC_ADDR macros (which are faster and thread safe).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3254 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-25 22:49:48 +00:00
mentor
888266fa0e Revert some r3164 - was only meant ot have one file in it
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3167 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:11:38 +00:00
mentor
63ccd5bbe2 Remove unneccessary node unreference - it is handled in ieee80211_dev_kfree_skb
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3164 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 20:09:34 +00:00
mtaylor
909dc70af4 More changes merged over from madwifi-dfs that seem to have been missed
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3161 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-16 19:45:36 +00:00
mtaylor
f2bbcd9fa2 Use clone instead of copy because the contents of the frame may be modified.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3130 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-15 23:46:22 +00:00
benoit
56f411f3c0 Fixed a kernel panic due to incorrect linux API use
hard_start_xmit() functions must either return NETDEV_TX_OK or 
NETDEV_TX_BUSY (they might also return negative errno values as well, 
like -ENETDOWN)
Correct a small missing static reported by sparse
This revert part of r3075


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3123 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-01-10 20:10:41 +00:00
mentor
ff673bb684 Rework monitor mode SKB handling, touching shared and cloned SKB handling in the TX path. This patch removes any such processing based on the assumption that the current processing is wrong even in the most conservative case (cloned SKB).
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3076 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-24 01:01:47 +00:00
mentor
6d28f9cb8e Have net80211 hard_start functions return NETDEV_TX_* codes; tidy some headers in the process.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3075 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-23 20:11:05 +00:00
mentor
987156394d Remove some conditional SKB/reference handling.
* packets dropped in ath_hardstart are cleaned up there, so cleaning up in parent_queue_xmit is an error
* packets in ieee80211_pwrsave must always have a reference in the cb, so it is better that is fails noisily otherwise


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3074 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-23 20:03:13 +00:00
mentor
2de63dd9d2 Update dev->trans_start in ieee80211_hardstart. This helps with bonding and ARP monitoring.
Signed-Off-By: Jiri Fojtasek <jiri.fojtasek@hlohovec.net>
Ticket: http://madwifi.org/ticket/1700


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3073 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-23 02:57:45 +00:00
mentor
972e313a8e Whitespace near r3071
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3072 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-22 23:39:14 +00:00
nbd
806f7b46e7 fix a double-free bug
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3071 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-22 17:16:06 +00:00
mentor
d959c28466 Lots and lots of formatting and trivial changes that I have been collecting
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3069 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-21 17:55:45 +00:00
br1
9055c25cc8 fix two more instances of using the wrong bssid in IBSS mode. there are more
places where we could use vap->iv_bss->ni_bssid instead of ni->ni_bssid but i'm
not sure about the other ones.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3036 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-12 11:29:19 +00:00
br1
07bd310cd3 always use the configured bssid (vap->iv_bss->ni_bssid) as the bssid for
beacons and management frames.

this includes benoits r2993 (from dfs branch) and the patch i sent to the list
for review a couple of days ago.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3002 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-12-03 08:52:34 +00:00
mentor
5afdef8cae Formatting changes. Mostly line lengths with some whitespace. Also, remove author info from any comments.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2915 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 02:08:35 +00:00
proski
22436a7615 Avoid using preprocessor conditionals inside macro arguments
Sparse doesn't like it, and it's ugly indeed.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2914 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-22 01:28:29 +00:00
mtaylor
ebe8ee9736 This patch augments the current reference counting code with:
* Counters for total outstanding instances for each resource type (skb, ath_node and ath_buf)
* One pair of acquisition/release functions per resource type in unlocked and one in locked
* Adds some more _debug versions of functions in the call chain that acquire/release resources so that the original func/line in the driver as well as the func/line that affected the resource use can be shown in the trace.  Intermediate stack frames aren't necessary to trace the leaks.
* Changes naming convention for "lock-required" functions to suffix _locked for the versions that expect locking, to be consistent with some other places in the code.
* Consolidate debug messages to the helper functions that actually affect the reference count or acquire/release a resource
* Additional sanity checks and leak detection (esp for detecting node ref leaks through skb)
* skb references are nulled out by the new sbk unref/free function.

I've tested these changes extensively and found lots of cases where we didn't get enough node references when cloning skbuff, and where the kernel drops packets due to performance issues and leaks our node references.

With these changes and the tracing enabled I have verified that:

* TX BUF: tx buffers always go down to zero when the tx queue is done, and you can watch tx queue usage ratio go up and down again as the driver is working.  There are no leaks here at the moment, although there *are* some in the madwifi-dfs branch during CAC at the moment.

* skbuff leaks in all the common flows are fixed.  We were leaking node references in a lot of places where kernel was dropping skb's due to congestion and we were failing to increment node references when cloning skbuffs.  These are now detected, as are skbuffs that are reaped by the kernel while still holding a node reference.

* the ath_node count works correctly and on an idle system we get about 5 references per station table node, with 2 node instances per VAP.  One for the bss and one for the node in the station table, I believe.  The ath_node count goes up and down but always lands back at the stable number based on the vaps you have configured and the number of actual stations in the station table.  The point here is that it's pretty constant what you will see over time, despite excessive node creation/release in our code during input (esp input_all).  Thank god for the slab allocator.



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2902 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 20:14:11 +00:00
mtaylor
640f86f562 Put the zeroing of the CB back in. It was supposed to move up to the top and not dissapear. In another change I will commit, some of the logic depends upon zeroing earlier before assigning some values to cb
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2900 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 18:25:00 +00:00
mtaylor
5470ea57f4 More reference count increments after skbuff copies and more releases of
node references if the kernel drops the skbuff.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2895 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:43:42 +00:00
mtaylor
09b1e7bb56 More SKB_CB macro use
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2893 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-21 11:27:21 +00:00
mentor
c6eac77db1 Audit of node referencing:
* Enhance readability of some functions WRT node referencing by putting blocks around areas where node references are held
 * Various bits of consistency of the usage of node references; always unreference them at the point at which they are no longer used. Don't reuse variables implicitly.
 * Significant overhaul of the usage of bf_node and ieee80211_cb.ni. Always hold a reference with aforementioned variable and always unreference it properly.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2839 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-08 16:55:02 +00:00
mentor
be343965ed * Update comments on find_*node functions to specifically note node reference acquirement
* Update ieee80211 XR mode to use ieee80211_parent_queue_xmit


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2838 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-08 16:50:00 +00:00
mtaylor
b42f24aaf1 Fix a node reference leak in XR mode due to re-assigning a variable without unref first.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2824 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-11-03 05:49:37 +00:00
mrenzmann
2c0d8db912 Restructuring the repository layout in response to ath5k.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@2721 0192ed92-7a03-0410-a25b-9323aeb14dbd
2007-10-04 13:07:51 +00:00