Deadlock in ifaddr_change() while removing IPFW rules

Andrey V. Elsukov bu7cher at yandex.ru
Tue Apr 18 09:33:13 UTC 2017


On 18.04.2017 01:49, Julian K. wrote:
> I wrote a kernel module [1] for a the fastd UDP tunneling protocol. Like
> the if_tun it calls if_purgeaddrs() on destruction of interfaces. When I
> delete IPFW rules a the same time the kernel runs into a deadlock. It
> seems to be a general problem that also affects other network drivers.
> 
> Could someone please take a closer look at this issue? Below I attached
> some debugging outputs.

> ipfw_chk() at ipfw_chk+0xa42/frame 0xfffffe0098192ee0
> ipfw_check_packet() at ipfw_check_packet+0xeb/frame 0xfffffe0098193040
> pfil_run_hooks() at pfil_run_hooks+0x83/frame 0xfffffe00981930d0
> ip_output() at ip_output+0xdd7/frame 0xfffffe0098193220
> icmp_reflect() at icmp_reflect+0x553/frame 0xfffffe00981932e0
> icmp_error() at icmp_error+0x525/frame 0xfffffe0098193330
> ipfw_chk() at ipfw_chk+0x30bb/frame 0xfffffe0098193520
> ipfw_check_packet() at ipfw_check_packet+0xeb/frame 0xfffffe0098193680
> pfil_run_hooks() at pfil_run_hooks+0x83/frame 0xfffffe0098193710
> ip_input() at ip_input+0x39d/frame 0xfffffe0098193770
> netisr_dispatch_src() at netisr_dispatch_src+0xa5/frame 0xfffffe00981937d0

What FreeBSD version do you use?
There were several changes in head/ and stable/11, that could change
this behavior. Can you try the same on recent revision?

-- 
WBR, Andrey V. Elsukov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 553 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20170418/01acf9c7/attachment.sig>


More information about the freebsd-net mailing list