mirror of https://github.com/hak5/openwrt.git
ath79: ag71xx: add support for timer functions in linux 4.15+
Kernel newer than 4.15 dropped "data" field and used from_timer to cast out the parent struct pointer for current timer. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>openwrt-19.07
parent
67fced9ba3
commit
8d3af284e0
|
@ -985,10 +985,16 @@ static int ag71xx_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
|
||||||
static void ag71xx_oom_timer_handler(unsigned long data)
|
static void ag71xx_oom_timer_handler(unsigned long data)
|
||||||
{
|
{
|
||||||
struct net_device *dev = (struct net_device *) data;
|
struct net_device *dev = (struct net_device *) data;
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
struct ag71xx *ag = netdev_priv(dev);
|
||||||
|
#else
|
||||||
|
static void ag71xx_oom_timer_handler(struct timer_list *t)
|
||||||
|
{
|
||||||
|
struct ag71xx *ag = from_timer(ag, t, oom_timer);
|
||||||
|
#endif
|
||||||
|
|
||||||
napi_schedule(&ag->napi);
|
napi_schedule(&ag->napi);
|
||||||
}
|
}
|
||||||
|
@ -1401,9 +1407,13 @@ static int ag71xx_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
INIT_DELAYED_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
INIT_DELAYED_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
||||||
|
|
||||||
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
|
||||||
init_timer(&ag->oom_timer);
|
init_timer(&ag->oom_timer);
|
||||||
ag->oom_timer.data = (unsigned long) dev;
|
ag->oom_timer.data = (unsigned long) dev;
|
||||||
ag->oom_timer.function = ag71xx_oom_timer_handler;
|
ag->oom_timer.function = ag71xx_oom_timer_handler;
|
||||||
|
#else
|
||||||
|
timer_setup(&ag->oom_timer, ag71xx_oom_timer_handler, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
tx_size = AG71XX_TX_RING_SIZE_DEFAULT;
|
tx_size = AG71XX_TX_RING_SIZE_DEFAULT;
|
||||||
ag->rx_ring.order = ag71xx_ring_size_order(AG71XX_RX_RING_SIZE_DEFAULT);
|
ag->rx_ring.order = ag71xx_ring_size_order(AG71XX_RX_RING_SIZE_DEFAULT);
|
||||||
|
|
Loading…
Reference in New Issue