[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5253FCF6.1040808@mellanox.com>
Date: Tue, 8 Oct 2013 15:39:18 +0300
From: Amir Vadai <amirv@...lanox.com>
To: Jacob Keller <jacob.e.keller@...el.com>
CC: <netdev@...r.kernel.org>, Alex Duyck <alexander.h.duyck@...el.com>,
Hyong-Youb Kim <hykim@...i.com>,
Dmitry Kravkov <dmitry@...adcom.com>,
Eliezer Tamir <eliezer.tamir@...ux.intel.com>
Subject: Re: [PATCH net RFC 1/2] netdevice: add might_sleep() call to napi_disable
On 18/09/2013 23:20, Jacob Keller wrote:
> napi_disable potentially calls msleep(1) if the NAPI_STATE_SCHED bit is
> previously set by something else. Because it does not always call msleep, it
> was difficult to track down a bug related to calling napi_disable within
> local_bh_disable()d context. This patch adds a might_sleep() call to the
> napi_disable routine in order to aid in the future debugging of similar issues.
> This will cause a BUG in drivers which have implemented busy polling in a
> similar fashion to ixgbe, and which call napi_disable inside the
> local_bh_disable()d section where the vector napi lock is taken.
>
> Signed-off-by: Jacob Keller <jacob.e.keller@...el.com>
> Cc: Eliezer Tamir <eliezer.tamir@...ux.intel.com>
> Cc: Alex Duyck <alexander.h.duyck@...el.com>
> Cc: Hyong-Youb Kim <hykim@...i.com>
> Cc: Amir Vadai <amirv@...lanox.com>
> Cc: Dmitry Kravkov <dmitry@...adcom.com>
> ---
> include/linux/netdevice.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index 3de49ac..81dab00 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -483,6 +483,8 @@ extern void napi_hash_del(struct napi_struct *napi);
> */
> static inline void napi_disable(struct napi_struct *n)
> {
> + might_sleep();
> +
> set_bit(NAPI_STATE_DISABLE, &n->state);
> while (test_and_set_bit(NAPI_STATE_SCHED, &n->state))
> msleep(1);
>
Works ok with mlx4_en driver.
Acked-By: Amir Vadai <amirv@...lanox.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists