[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160329.230930.1234182429605936870.davem@davemloft.net>
Date: Tue, 29 Mar 2016 23:09:30 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: ezequiel@...guardiasur.com.ar
Cc: thomas.petazzoni@...e-electrons.com, netdev@...r.kernel.org
Subject: Re: [PATCH] ethernet: mvneta: Support netpoll
From: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>
Date: Mon, 28 Mar 2016 17:41:18 -0300
> +/* Polled functionality used by netconsole and others in non interrupt mode */
> +static void mvneta_poll_controller(struct net_device *dev)
> +{
> + struct mvneta_port *pp = netdev_priv(dev);
> +
> + on_each_cpu(mvneta_percpu_poll_controller, pp, false);
> +}
This doesn't work.
netpoll may be invoked from any context whatsoever, even hardware
interrupt handlers or contexts where cpu interrupts are disabled.
smp_call_function() and thus on_each_cpu() may not be called with
disabled interrupts or from a hardware interrupt handler or from
a bottom half handler, all of which are valid situations where
netpoll may occur since printk's can occur anywhere.
Powered by blists - more mailing lists