diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1271_tx.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_tx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_tx.c b/drivers/net/wireless/wl12xx/wl1271_tx.c index 7926471cd09..a32d3014781 100644 --- a/drivers/net/wireless/wl12xx/wl1271_tx.c +++ b/drivers/net/wireless/wl12xx/wl1271_tx.c | |||
@@ -86,8 +86,10 @@ static int wl1271_tx_allocate(struct wl1271 *wl, struct sk_buff *skb, u32 extra) | |||
86 | static int wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb, | 86 | static int wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb, |
87 | u32 extra, struct ieee80211_tx_info *control) | 87 | u32 extra, struct ieee80211_tx_info *control) |
88 | { | 88 | { |
89 | struct timespec ts; | ||
89 | struct wl1271_tx_hw_descr *desc; | 90 | struct wl1271_tx_hw_descr *desc; |
90 | int pad, ac; | 91 | int pad, ac; |
92 | s64 hosttime; | ||
91 | u16 tx_attr; | 93 | u16 tx_attr; |
92 | 94 | ||
93 | desc = (struct wl1271_tx_hw_descr *) skb->data; | 95 | desc = (struct wl1271_tx_hw_descr *) skb->data; |
@@ -101,8 +103,9 @@ static int wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb, | |||
101 | } | 103 | } |
102 | 104 | ||
103 | /* configure packet life time */ | 105 | /* configure packet life time */ |
104 | desc->start_time = cpu_to_le32(jiffies_to_usecs(jiffies) - | 106 | getnstimeofday(&ts); |
105 | wl->time_offset); | 107 | hosttime = (timespec_to_ns(&ts) >> 10); |
108 | desc->start_time = cpu_to_le32(hosttime - wl->time_offset); | ||
106 | desc->life_time = cpu_to_le16(TX_HW_MGMT_PKT_LIFETIME_TU); | 109 | desc->life_time = cpu_to_le16(TX_HW_MGMT_PKT_LIFETIME_TU); |
107 | 110 | ||
108 | /* configure the tx attributes */ | 111 | /* configure the tx attributes */ |