add a NOMPSAFE comment for if_mcast_op(), it is called from context

which doesn't hold IFNET_LOCK() in some cases, and calls if_ioctl

this needs to be sorted out for NET_MPSAFE
This commit is contained in:
jdolecek 2020-05-05 09:22:24 +00:00
parent 976f6ef646
commit aa16e18724

View File

@ -1,4 +1,4 @@
/* $NetBSD: if.c,v 1.475 2020/05/05 08:05:03 jdolecek Exp $ */
/* $NetBSD: if.c,v 1.476 2020/05/05 09:22:24 jdolecek Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@ -90,7 +90,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.475 2020/05/05 08:05:03 jdolecek Exp $");
__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.476 2020/05/05 09:22:24 jdolecek Exp $");
#if defined(_KERNEL_OPT)
#include "opt_inet.h"
@ -3791,6 +3791,11 @@ if_mcast_op(ifnet_t *ifp, const unsigned long cmd, const struct sockaddr *sa)
int rc;
struct ifreq ifr;
/*
* XXX NOMPSAFE - this calls if_ioctl without holding IFNET_LOCK()
* in some cases - e.g. when called from vlan/netinet/netinet6 code
* directly rather than via sockopt/doifoictl()
*/
ifreq_setaddr(cmd, &ifr, sa);
rc = (*ifp->if_ioctl)(ifp, cmd, &ifr);