On Tue, Dec 20, 2016 at 03:09:11PM +0100, Martin Pieuchot wrote:
> No we can't because we're already holding it. So carp_master_down()
> must be split in two, diff below does that and only grab the lock in
> the timer routine.
OK bluhm@
>
> Index: netinet/ip_carp.c
> ===
On 20/12/16(Tue) 14:31, Alexander Bluhm wrote:
> On Tue, Dec 20, 2016 at 12:08:57PM +0100, Martin Pieuchot wrote:
> > I introduced a bug in carp(4), one code path tries to take the NET_LOCK()
> > twice:
> >
> > panic() at panic+0xfe
> > rw_enter() at rw_enter+0x1f8
> > carp_send_ad() a
On Tue, Dec 20, 2016 at 12:08:57PM +0100, Martin Pieuchot wrote:
> I introduced a bug in carp(4), one code path tries to take the NET_LOCK()
> twice:
>
> panic() at panic+0xfe
> rw_enter() at rw_enter+0x1f8
> carp_send_ad() at carp_send_ad+0x4d
> carp_vhe_send_ad_all() at c
I introduced a bug in carp(4), one code path tries to take the NET_LOCK()
twice:
panic() at panic+0xfe
rw_enter() at rw_enter+0x1f8
carp_send_ad() at carp_send_ad+0x4d
carp_vhe_send_ad_all() at carp_vhe_send_ad_all+0x4b
carp_ioctl() at carp_ioctl+0x491