mwifiex: use ktime_get_real for timestamping
authorArnd Bergmann <arnd@arndb.de>
Wed, 30 Sep 2015 11:26:34 +0000 (13:26 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Oct 2015 10:16:43 +0000 (03:16 -0700)
The mwifiex_11n_aggregate_pkt() function creates a ktime_t from
a timeval returned by do_gettimeofday, which is slow and causes
an overflow in 2038 on 32-bit architectures.

This solves both problems by using the appropriate ktime_get_real()
function.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Amitkumar Karwar <akarwar@marvell.com>
Cc: Nishant Sarmukadam <nishants@marvell.com>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wireless/mwifiex/11n_aggr.c

index f7c717253a664aaa7170b3216890ebd1b22ad295..78853c51774d875f021f3d554d567b2aa1d65606 100644 (file)
@@ -173,7 +173,6 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
        int pad = 0, aggr_num = 0, ret;
        struct mwifiex_tx_param tx_param;
        struct txpd *ptx_pd = NULL;
-       struct timeval tv;
        int headroom = adapter->iface_type == MWIFIEX_USB ? 0 : INTF_HEADER_LEN;
 
        skb_src = skb_peek(&pra_list->skb_head);
@@ -203,8 +202,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
        tx_info_aggr->flags |= MWIFIEX_BUF_FLAG_AGGR_PKT;
        skb_aggr->priority = skb_src->priority;
 
-       do_gettimeofday(&tv);
-       skb_aggr->tstamp = timeval_to_ktime(tv);
+       skb_aggr->tstamp = ktime_get_real();
 
        do {
                /* Check if AMSDU can accommodate this MSDU */