diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-05-15 06:55:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-21 21:48:11 -0400 |
commit | e039fa4a4195ac4ee895e6f3d1334beed63256fe (patch) | |
tree | cfd0762d73df96b73052378be7b157c4ac6e7035 /drivers/net/wireless/rt2x00/rt2x00.h | |
parent | e24549485f859be6518929bb1c9c0257d79f033d (diff) |
mac80211: move TX info into skb->cb
This patch converts mac80211 and all drivers to have transmit
information and status in skb->cb rather than allocating extra
memory for it and copying all the data around. To make it fit,
a union is used where only data that is necessary for all steps
is kept outside of the union.
A number of fixes were done by Ivo, as well as the rt2x00 part
of this patch.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00.h')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 1900d4c0e846..5c7220ea46e6 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h | |||
@@ -542,8 +542,7 @@ struct rt2x00lib_ops { | |||
542 | struct sk_buff *skb, | 542 | struct sk_buff *skb, |
543 | struct txentry_desc *txdesc); | 543 | struct txentry_desc *txdesc); |
544 | int (*write_tx_data) (struct rt2x00_dev *rt2x00dev, | 544 | int (*write_tx_data) (struct rt2x00_dev *rt2x00dev, |
545 | struct data_queue *queue, struct sk_buff *skb, | 545 | struct data_queue *queue, struct sk_buff *skb); |
546 | struct ieee80211_tx_control *control); | ||
547 | int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev, | 546 | int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev, |
548 | struct sk_buff *skb); | 547 | struct sk_buff *skb); |
549 | void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev, | 548 | void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev, |
@@ -930,7 +929,6 @@ static inline u16 get_duration_res(const unsigned int size, const u8 rate) | |||
930 | * rt2x00queue_create_tx_descriptor - Create TX descriptor from mac80211 input | 929 | * rt2x00queue_create_tx_descriptor - Create TX descriptor from mac80211 input |
931 | * @entry: The entry which will be used to transfer the TX frame. | 930 | * @entry: The entry which will be used to transfer the TX frame. |
932 | * @txdesc: rt2x00 TX descriptor which will be initialized by this function. | 931 | * @txdesc: rt2x00 TX descriptor which will be initialized by this function. |
933 | * @control: mac80211 TX control structure from where we read the information. | ||
934 | * | 932 | * |
935 | * This function will initialize the &struct txentry_desc based on information | 933 | * This function will initialize the &struct txentry_desc based on information |
936 | * from mac80211. This descriptor can then be used by rt2x00lib and the drivers | 934 | * from mac80211. This descriptor can then be used by rt2x00lib and the drivers |
@@ -943,8 +941,7 @@ static inline u16 get_duration_res(const unsigned int size, const u8 rate) | |||
943 | * the &struct txentry_desc structure. | 941 | * the &struct txentry_desc structure. |
944 | */ | 942 | */ |
945 | void rt2x00queue_create_tx_descriptor(struct queue_entry *entry, | 943 | void rt2x00queue_create_tx_descriptor(struct queue_entry *entry, |
946 | struct txentry_desc *txdesc, | 944 | struct txentry_desc *txdesc); |
947 | struct ieee80211_tx_control *control); | ||
948 | 945 | ||
949 | /** | 946 | /** |
950 | * rt2x00queue_write_tx_descriptor - Write TX descriptor to hardware | 947 | * rt2x00queue_write_tx_descriptor - Write TX descriptor to hardware |
@@ -1001,8 +998,7 @@ void rt2x00lib_rxdone(struct queue_entry *entry, | |||
1001 | /* | 998 | /* |
1002 | * mac80211 handlers. | 999 | * mac80211 handlers. |
1003 | */ | 1000 | */ |
1004 | int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb, | 1001 | int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb); |
1005 | struct ieee80211_tx_control *control); | ||
1006 | int rt2x00mac_start(struct ieee80211_hw *hw); | 1002 | int rt2x00mac_start(struct ieee80211_hw *hw); |
1007 | void rt2x00mac_stop(struct ieee80211_hw *hw); | 1003 | void rt2x00mac_stop(struct ieee80211_hw *hw); |
1008 | int rt2x00mac_add_interface(struct ieee80211_hw *hw, | 1004 | int rt2x00mac_add_interface(struct ieee80211_hw *hw, |