Commit Graph

675 Commits

Author SHA1 Message Date
mentor
a192279dd6 Only deliver frames to VAPs that are running.
This includes the reinstatement of the ieee80211_input_all function as this functionality should live in the net80211 layer. Unfortunately the code for this is a tad on the ugly side.

Thanks to OpenWRT/nbd: https://dev.openwrt.org/log/trunk/package/madwifi/patches/334-input.patch


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3621 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-10 06:03:52 +00:00
mentor
dfdda8ca55 Remove axq_link, for benoit.
The last descriptor is now implicit in the structure and meta-data of the buffers; axq_link does not need to be maintained separately.
Add macros to to return the last buffer, descriptor, and link them as necessary.
Make the queue moving macro implicitly link descriptors, and remove the explicit descriptor linking in this case.

ath_node_move_data is still desperately in need of a review; it is used in XR.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3620 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-07 18:33:15 +00:00
mentor
3dc12c74ec Fold descriptor link address byte-swapping for hardware into a common function
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3619 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-06 22:18:43 +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
mentor
d3842998ca Remove now unused FF next field in ieee80211_cb. This makes ieee80211_cb under 48 bytes on 64-bit with IEEE80211_DEBUG_REFCNT
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3617 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-06 11:22:31 +00:00
mentor
f5f3adc423 Have ath_tx_txqaddbuf calculate and use the last descriptor for the buffer. This occurs in the FF case, where there may be two buffers.
This fixes problems with r3548 noted in #1922.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3616 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-06 00:18:09 +00:00
mentor
f577062ef7 Move the monitor physical parameter struct inside ieee80211_cb. Have same struct actually be an array. Add an evil struct definition that breaks if ieee80211_cb is bigger than 48 bytes; it serves no other purpose.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3615 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 23:51:16 +00:00
mentor
094374b5ee Add sys/queue.h include to if_athvar.h. Plus some formatting/fiddling
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3614 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 23:49:40 +00:00
mentor
2a96a01877 Refactor some FF buffer descriptor setup code to be clearer and more consistent
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3613 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 16:09:13 +00:00
proski
7d7024184e Don't use "inline" in forward declarations - it doesn't work
Move txqactive() implementation before it's used.  Let the compiler
decide whether to inline that function.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3606 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 13:50:10 +00:00
proski
a49a973027 Use __skb_queue_after() instead of __skb_append()
Follow the rule of coding for the latest API.  Use __skb_queue_after()
in the code rather than __skb_append(), which is due to be removed in
Linux 2.6.26.  Provide compatibility definitions for __skb_queue_after()
in include/compat.h.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3605 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 12:12:43 +00:00
proski
1941f3990b Add $(obj)/ to the dependencies of ath_hal.o
Otherwise, $(TARGET).hal.o is not built for Linux 2.4 kernels.  The rule
for ath_hal.o is for Linux 2.4 only and should not affect Linux 2.6
builds.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3604 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 12:05:10 +00:00
proski
2913278884 Adjust build system for Linux 2.6.26
During the second stage of the module build, Linux 2.6.26 does not
define $(obj).  Try using $(SUBDIRS) as $(obj) before falling back to
the current directory.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3603 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 02:00:56 +00:00
proski
32df5a67ce Provide __skb_append() replacement for Linux 2.6.26
__skb_append() will be removed in Linux 2.6.26.  __skb_queue_after()
should be used instead.  Use the new interface on Linux 2.6.25 and
newer.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3602 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 01:41:23 +00:00
mentor
658d470ad5 Revert now unnecessary compile fix for INITIAL_JIFFIES - r3598. The other code using this define looked like it should not be using it too.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3601 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 01:02:51 +00:00
mentor
63436cbc14 Kill dead uptime calculating code; not needed in a driver...
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3600 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-05 01:00:11 +00:00
proski
9230ae95d4 Fix Linux 2.4 compatibility
Filter out harmful options from OBJCOPY.  Linux 2.4 adds "-O binary" and
"-S" for i386 and x86_64, which would break the build.

Use $(TOP) in hal_unmangle.objcopy path.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3599 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-04 23:30:34 +00:00
proski
370c06ca3a Define INITIAL_JIFFIES if not already defined
Normally, compatibility issues should be addressed in compat.h, but
INITIAL_JIFFIES is not something that should be widely used.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3598 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-04 23:11:21 +00:00
proski
75beeeb876 Define gfp_t before it's used
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3597 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-04 23:07:39 +00:00
mentor
380c55d9c9 Rename and move, into the right headers, the SKB and BF macros
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3596 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-04 17:48:59 +00:00
mentor
9538bc8243 Remove the skb_copy call from ieee80211_input. However, create a copied SKB for each call to ieee80211_input when we are sending to all VAPs. Effectively, this means that we are using the SKB from the ath_buf except when ieee80211_input is called multiple times.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3595 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-03 03:49:05 +00:00
mentor
1b318d3853 Tidy RX queue processing code:
* Formatting
 * Add a function to remove SKB from ath_buf.
 * Call aforementioned function early if we are accepting a frame, so that there's not chance the data can get stomped on by DMA. We should probably do this for ignored frames as well, but I got fed up trying to sort out the stack of goto.
 * Remove some KASSERT for skb users, as the SKB are always copied.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3594 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-03 03:40:27 +00:00
mentor
2ecfeab07e Move the maximum monitor headroom definition to a nice header file
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3593 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-05-01 13:49:09 +00:00
mentor
65868884d2 Do not modify source packet in ieee80211_input_monitor if the headroom is not sufficient. Instead, make sure the copied skb is allocated with enough headroom.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3586 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-30 22:11:27 +00:00
mentor
bbcacb393a Correct terminology in ieee80211_input skb_copy comment
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3585 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-30 22:04:38 +00:00
benoit
663f433fcd Merge madwifi-dfs r3574:3578 to trunk
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3579 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-28 10:23:24 +00:00
mentor
c29842a728 Initially set sc_lastcal to now. The previous code set it to INITIAL_JIFFIES which is the initial value at _boot_ time not module load time.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3574 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-25 13:40:31 +00:00
mentor
ef6d84125b Convert as many things as possible to use kzalloc
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3573 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-24 14:10:42 +00:00
mentor
63c6adeeb8 Move another header to the top of compat.h - fixes previous commit
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3572 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-24 14:09:57 +00:00
mentor
218abe13a6 Add kzalloc() compatibility function
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3571 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-24 13:51:22 +00:00
mentor
0c14432118 Move a kernel include into __KERNEL__ protected section
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3570 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-24 13:26:00 +00:00
mentor
d8c264b8f5 Remove unused header file include - bitmap.h
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3569 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-24 13:15:43 +00:00
nbd
26b2191b1f add the default values for cwmin and cwmax to the if_athvar.h header file and remove them from the rate control file - the minstrel variant of this is totally wrong and leads to inefficient rate control behavior
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3563 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-23 01:28:15 +00:00
nbd
cff0e47587 minstrel: Don't count short retries as rate failures. These only specify
RTS/CTS failures which are rate independent.

Acked-by: Derek Smithies



git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3562 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-23 00:26:54 +00:00
benoit
96adde4c63 Remove ito64() macro. Use u_int64_t instead.
Convert all dma_addr_t to u_int64_t for printing.
Fixed ticket #1895


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3559 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-21 21:23:19 +00:00
mentor
22b84448cc Fix ito64(). sizeof(some_int) is in bytes not bits.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3558 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-21 20:49:57 +00:00
mentor
129ddd7051 Errant brace from r3554
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3556 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-20 23:43:45 +00:00
mentor
1e1bf2cb6b Remove code superceded by r3551
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3555 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-20 22:27:45 +00:00
mentor
528a01e3d7 Formatting for r3552
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3554 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-20 22:25:54 +00:00
benoit
ae11ec5e49 Added debug in case the TX queue locked up (You need to do athdebug +watchdog
to see those debug message).
Fixed a bug where we removed TX descriptors too early. This should fix NETDEV
WATCHDOG error messages. Apparently, TX descriptor status is updated by the
hardware before TXDP.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3552 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-20 21:06:15 +00:00
benoit
4cb21704e2 Change ATH_TXQ_REMOVE_HEAD macro to sure we reset axq_link whenever we remove
the last TX descriptor.


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3551 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-20 21:04:13 +00:00
mentor
2b06287f11 More cases of r3549. Further, add a reminder to check ath_node_move_data, which look shorribly broken, but is used for XR only.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3550 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-19 19:00:14 +00:00
mentor
a4078f91f2 Update TX queue properties, caused by removal of the last item, while the same lock is still held during removal of that item. Thanks to benoit for coming across this while investigating a TX queue stoppage.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3549 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-19 16:04:07 +00:00
mentor
361fac4be9 Remove the 'lastds' parameter to ath_tx_txqaddbuf as it is always bf->bf_desc, and, further, most buffer handling logic assumes that the the descriptor is held in bf_desc.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3548 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-19 14:57:50 +00:00
mentor
0bdf7ff4cf Move all warnings, pedantic or otherwise, to the WARNINGS variable - seems they were added in a different place in r3533
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3546 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-18 02:08:35 +00:00
mtaylor
8ec7d856b1 Add casts to force register addresses to stay 32-bits on 64-bit architectures.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3545 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-15 07:44:58 +00:00
mtaylor
3f2f68b9c5 Fix register name checks, name is a local array and will never be null, even when the contents are empty string / NULL.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3538 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-11 04:24:53 +00:00
mtaylor
7e4c9f199b Use EXTRA_CFLAGS intead of CFLAGS. Remove -Werror
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3537 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-11 04:15:17 +00:00
mtaylor
f8f3f6ce14 Add support for ATHEROS_DEBUG kernel flag, default 'Y'.
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3536 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-11 00:10:36 +00:00
mtaylor
9269ea6eb9 Restore default behavior of making debug builds
git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3535 0192ed92-7a03-0410-a25b-9323aeb14dbd
2008-04-10 23:59:01 +00:00