[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20111003.134856.2253211244720214327.davem@davemloft.net>
Date: Mon, 03 Oct 2011 13:48:56 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: andy@...yhouse.net
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net] bonding: properly stop queuing work when requested
From: Andy Gospodarek <andy@...yhouse.net>
Date: Fri, 23 Sep 2011 16:53:34 -0400
> During a test where a pair of bonding interfaces using ARP monitoring
> were both brought up and torn down (with an rmmod) repeatedly, a panic
> in the timer code was noticed. I tracked this down and determined that
> any of the bonding functions that ran as workqueue handlers and requeued
> more work might not properly exit when the module was removed.
>
> There was a flag protected by the bond lock called kill_timers that is
> set when the interface goes down or the module is removed, but many of
> the functions that monitor link status now unlock the bond lock to take
> rtnl first. There is a chance that another CPU running the rmmod could
> get the lock and set kill_timers after the first check has passed.
>
> This patch does not allow any function to queue work that will make
> itself run unless kill_timers is not set. I also noticed while doing
> this work that bond_resend_igmp_join_requests did not have a check for
> kill_timers, so I added the needed call there as well.
>
> Signed-off-by: Andy Gospodarek <andy@...yhouse.net>
> Reported-by: Liang Zheng <lzheng@...hat.com>
Applied, thanks Andy.
--
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