net: hip04: Make tx coalesce timer actually work
authorThomas Gleixner <tglx@linutronix.de>
Tue, 14 Apr 2015 19:42:42 +0000 (21:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Apr 2015 21:21:29 +0000 (17:21 -0400)
commit48b63776c8255d5b0a84c5caafab5560d9cb7f3b
treed05aa926812257d5c96a07d561b1bd65ea674981
parentc841e12add6926d64aa608687893465330b5a03e
net: hip04: Make tx coalesce timer actually work

The code sets the expiry value of the timer to a relative value and
starts it with hrtimer_start_expires. That's fine, but that only works
once. The timer is started in relative mode, so the expiry value gets
overwritten with the absolut expiry time (now + expiry).

So once the timer expired, a new call to hrtimer_start_expires results
in an immidiately expired timer, because the expiry value is
already in the past.

Use the proper mechanisms to (re)start the timer in the intended way.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: dingtianhong <dingtianhong@huawei.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Zhangfei Gao <zhangfei.gao@linaro.org>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: netdev@vger.kernel.org
Acked-by: Ding Tianhong <dingtianhong@huawei.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hip04_eth.c