From: Jiang Lu <lu.ji...@windriver.com> Add the ndo_poll_controller hook function for acp device.
Signed-off-by: Kevin Hao <kexin....@windriver.com> --- drivers/net/ethernet/lsi/lsi_acp_net.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.c b/drivers/net/ethernet/lsi/lsi_acp_net.c index bc5ee3b..c62db95 100644 --- a/drivers/net/ethernet/lsi/lsi_acp_net.c +++ b/drivers/net/ethernet/lsi/lsi_acp_net.c @@ -1722,7 +1722,6 @@ static irqreturn_t appnic_isr(int irq, void *device_id) APPNIC_DMA_INTERRUPT_ENABLE); __napi_schedule(&dev->napi); } else { - pr_err("acp-femac: NAPI bug! Int while in poll\n"); write_mac(APPNIC_DMA_INTERRUPT_ENABLE_TRANSMIT, APPNIC_DMA_INTERRUPT_ENABLE); } @@ -1738,6 +1737,21 @@ static irqreturn_t appnic_isr(int irq, void *device_id) return IRQ_HANDLED; } +#ifdef CONFIG_NET_POLL_CONTROLLER +/* + * Polling receive - used by netconsole and other diagnostic tools + * to allow network i/o with interrupts disabled. + */ +static void +appnic_poll_controller(struct net_device *dev) +{ + disable_irq(dev->irq); + appnic_isr(dev->irq, dev); + enable_irq(dev->irq); +} + +#endif + /* * ---------------------------------------------------------------------- * appnic_open @@ -2149,6 +2163,9 @@ static const struct net_device_ops appnic_netdev_ops = { .ndo_get_stats = appnic_get_stats, .ndo_set_mac_address = appnic_set_mac_address, .ndo_start_xmit = appnic_hard_start_xmit, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = appnic_poll_controller, +#endif }; /* -- 1.8.3 _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto