On Mon, Jun 12, 2023 at 11:56:43PM +0300, Vitaliy Makkoveev wrote:
> On Mon, Jun 12, 2023 at 09:04:41PM +0200, Why 42? The lists account. wrote:
> > 
> > On Wed, Jun 07, 2023 at 03:50:29PM +0300, Vitaliy Makkoveev wrote:
> > > > ...
> > > > Please, share your dvmrpd.conf.
> > > > 
> > > 
> > > Also, you could try to use ktrace to provide some additional info.
> > 
> > 
> > Hi Again,
> > 
> > On site I had to power cycle the ThinkPad to be able to get control.
> > 
> > The contents of the dvmrpd config file should be visible here:
> >     dvmrpd.conf+ifconfig.jpg    https://paste.c-net.org/SlimeReply
> > 
> > In order to be able to show progress, I tried using "mrouted" instead.
> > It seems to have resulted in much the same panic.
> > So apparently the problem may not specific to dvmrpd.
> > Maybe something related to the USB Ethernet adaptor? I see some
> > references to both "ure" and "usb" in the stack traces ...
> > 
> > See for example:
> >     mrouted_panic.jpg           https://paste.c-net.org/YolandaSamir
> >     ddb_show_panic+trace.jpg    https://paste.c-net.org/TrackParent
> >     ddbcpu0+1.jpg               https://paste.c-net.org/HansonAinsley
> >     ddbcpu3+4+5.jpg             https://paste.c-net.org/MidtermsComposer
> >     ddbcpu6+7.jpg               https://paste.c-net.org/CostaScratchy
> > 
> > Sorry about all the photos, it was the best I could do. I'm driving the
> > system via a pretty rubbish KVM switch.
> > 
> > Hope this helps with the analysis. In the meantime I'll look around for
> > some other multicast routing solution.
> > 
> > Cheers,
> > Robb.
> > 
> 
> We have missing kernel lock around (*if_sysctl)(). Diff below should fix
> it.

OK bluhm@

> Index: sys/netinet/ip_mroute.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet/ip_mroute.c,v
> retrieving revision 1.138
> diff -u -p -r1.138 ip_mroute.c
> --- sys/netinet/ip_mroute.c   19 Apr 2023 20:03:51 -0000      1.138
> +++ sys/netinet/ip_mroute.c   12 Jun 2023 20:55:05 -0000
> @@ -718,7 +718,9 @@ add_vif(struct socket *so, struct mbuf *
>               satosin(&ifr.ifr_addr)->sin_len = sizeof(struct sockaddr_in);
>               satosin(&ifr.ifr_addr)->sin_family = AF_INET;
>               satosin(&ifr.ifr_addr)->sin_addr = zeroin_addr;
> +             KERNEL_LOCK();
>               error = (*ifp->if_ioctl)(ifp, SIOCADDMULTI, (caddr_t)&ifr);
> +             KERNEL_UNLOCK();
>               if (error)
>                       return (error);
>       }

Reply via email to