[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <052f3394-ce15-4e6c-bfe2-4dfbee25be29@redhat.com>
Date: Tue, 30 Sep 2025 13:13:48 +0200
From: Paolo Abeni <pabeni@...hat.com>
To: Duoming Zhou <duoming@....edu.cn>, netdev@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, kuba@...nel.org, edumazet@...gle.com,
davem@...emloft.net, andrew+netdev@...n.ch, UNGLinuxDriver@...rochip.com,
alexandre.belloni@...tlin.com, claudiu.manoil@....com,
vladimir.oltean@....com
Subject: Re: [PATCH net] net: mscc: ocelot: Fix use-after-free caused by
cyclic delayed work
On 9/27/25 4:45 PM, Duoming Zhou wrote:
> diff --git a/drivers/net/ethernet/mscc/ocelot_stats.c b/drivers/net/ethernet/mscc/ocelot_stats.c
> index 545710dadcf5..d8ab789f6bea 100644
> --- a/drivers/net/ethernet/mscc/ocelot_stats.c
> +++ b/drivers/net/ethernet/mscc/ocelot_stats.c
> @@ -1021,6 +1021,6 @@ int ocelot_stats_init(struct ocelot *ocelot)
>
> void ocelot_stats_deinit(struct ocelot *ocelot)
> {
> - cancel_delayed_work(&ocelot->stats_work);
> + cancel_delayed_work_sync(&ocelot->stats_work);
> destroy_workqueue(ocelot->stats_queue);
> }
AFAICS the stat_work can unconditionally reschedule itself, you should
use disable_delayed_work_sync() instead.
Cheers,
Paolo
Powered by blists - more mailing lists