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:
parent
976f6ef646
commit
aa16e18724
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user