[Bug 282168] vtnet(4): panic in if_attach_internal() when kldloading

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 18 Oct 2024 16:22:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282168

--- Comment #8 from Lexi Winter <lexi.freebsd@le-fay.org> ---
i can't build world with the patch from D47174 on top of
fa573868f187956b384722a90392866769f4965a.

--- subr_bus.o ---
/data/build/src/freebsd/lf/main/sys/kern/subr_bus.c:2577:26: error: incomplete
definition of type 'struct prison'
 2577 |         KASSERT(IS_DEFAULT_VNET(TD_TO_VNET(curthread)),
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
 2578 |             ("device_attach: curthread is not in default vnet"));
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:248:25: note: expanded from
macro 'TD_TO_VNET'
  248 | #define TD_TO_VNET(td)          CRED_TO_VNET((td)->td_ucred)
      |                                 ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:247:41: note: expanded from
macro 'CRED_TO_VNET'
  247 | #define CRED_TO_VNET(cr)        (cr)->cr_prison->pr_vnet
      |                                                ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:245:32: note: expanded from
macro 'IS_DEFAULT_VNET'
  245 | #define IS_DEFAULT_VNET(arg)    ((arg) == vnet0)
      |                                   ^
/data/build/src/freebsd/lf/main/sys/sys/kassert.h:144:24: note: expanded from
macro 'KASSERT'
  144 |         if (__predict_false(!(exp)))                                   
\
      |             ~~~~~~~~~~~~~~~~~~^~~~~
/data/build/src/freebsd/lf/main/sys/sys/cdefs.h:315:51: note: expanded from
macro '__predict_false'
  315 | #define __predict_false(exp)    __builtin_expect((exp), 0)
      |                                                   ^~~
/data/build/src/freebsd/lf/main/sys/sys/cpuset.h:152:8: note: forward
declaration of 'struct prison'
  152 | struct prison;
      |        ^
/data/build/src/freebsd/lf/main/sys/kern/subr_bus.c:2579:20: error: incomplete
definition of type 'struct prison'
 2579 |         CURVNET_SET_QUIET(TD_TO_VNET(curthread));
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:248:25: note: expanded from
macro 'TD_TO_VNET'
  248 | #define TD_TO_VNET(td)          CRED_TO_VNET((td)->td_ucred)
      |                                 ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:247:41: note: expanded from
macro 'CRED_TO_VNET'
  247 | #define CRED_TO_VNET(cr)        (cr)->cr_prison->pr_vnet
      |                                                ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:221:15: note: expanded from
macro 'CURVNET_SET_QUIET'
  221 |         VNET_ASSERT((arg) != NULL && (arg)->vnet_magic_n ==
VNET_MAGIC_N, \
      |        
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  222 |             ("CURVNET_SET at %s:%d %s() curvnet=%p vnet=%p",           
\
      |            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  223 |             __FILE__, __LINE__, __func__, curvnet, (arg)));            
\
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:184:8: note: expanded from macro
'VNET_ASSERT'
  184 |         if (!(exp))                                                    
\
      |               ^~~
/data/build/src/freebsd/lf/main/sys/sys/cpuset.h:152:8: note: forward
declaration of 'struct prison'
  152 | struct prison;
      |        ^
/data/build/src/freebsd/lf/main/sys/kern/subr_bus.c:2579:20: error: incomplete
definition of type 'struct prison'
 2579 |         CURVNET_SET_QUIET(TD_TO_VNET(curthread));
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:248:25: note: expanded from
macro 'TD_TO_VNET'
  248 | #define TD_TO_VNET(td)          CRED_TO_VNET((td)->td_ucred)
      |                                 ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:247:41: note: expanded from
macro 'CRED_TO_VNET'
  247 | #define CRED_TO_VNET(cr)        (cr)->cr_prison->pr_vnet
      |                                                ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:221:32: note: expanded from
macro 'CURVNET_SET_QUIET'
  221 |         VNET_ASSERT((arg) != NULL && (arg)->vnet_magic_n ==
VNET_MAGIC_N, \
      |        
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  222 |             ("CURVNET_SET at %s:%d %s() curvnet=%p vnet=%p",           
\
      |            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  223 |             __FILE__, __LINE__, __func__, curvnet, (arg)));            
\
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:184:8: note: expanded from macro
'VNET_ASSERT'
  184 |         if (!(exp))                                                    
\
      |               ^~~
/data/build/src/freebsd/lf/main/sys/sys/cpuset.h:152:8: note: forward
declaration of 'struct prison'
  152 | struct prison;
      |        ^
/data/build/src/freebsd/lf/main/sys/kern/subr_bus.c:2579:20: error: incomplete
definition of type 'struct prison'
 2579 |         CURVNET_SET_QUIET(TD_TO_VNET(curthread));
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:248:25: note: expanded from
macro 'TD_TO_VNET'
  248 | #define TD_TO_VNET(td)          CRED_TO_VNET((td)->td_ucred)
      |                                 ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:247:41: note: expanded from
macro 'CRED_TO_VNET'
  247 | #define CRED_TO_VNET(cr)        (cr)->cr_prison->pr_vnet
      |                                                ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:223:46: note: expanded from
macro 'CURVNET_SET_QUIET'
  221 |         VNET_ASSERT((arg) != NULL && (arg)->vnet_magic_n ==
VNET_MAGIC_N, \
      |        
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  222 |             ("CURVNET_SET at %s:%d %s() curvnet=%p vnet=%p",           
\
      |            
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  223 |             __FILE__, __LINE__, __func__, curvnet, (arg)));            
\
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:185:9: note: expanded from macro
'VNET_ASSERT'
  185 |                 panic msg;                                             
\
      |                       ^~~
/data/build/src/freebsd/lf/main/sys/sys/cpuset.h:152:8: note: forward
declaration of 'struct prison'
  152 | struct prison;
      |        ^
/data/build/src/freebsd/lf/main/sys/kern/subr_bus.c:2579:20: error: incomplete
definition of type 'struct prison'
 2579 |         CURVNET_SET_QUIET(TD_TO_VNET(curthread));
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/data/build/src/freebsd/lf/main/sys/net/vnet.h:248:25: note: expanded from
macro 'TD_TO_VNET'
  248 | #define TD_TO_VNET(td)          CRED_TO_VNET((td)->td_ucred)
      |                                 ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:247:41: note: expanded from
macro 'CRED_TO_VNET'
  247 | #define CRED_TO_VNET(cr)        (cr)->cr_prison->pr_vnet
      |                                                ^
/data/build/src/freebsd/lf/main/sys/net/vnet.h:225:12: note: expanded from
macro 'CURVNET_SET_QUIET'
  225 |         curvnet = arg;  
      |                   ^~~
/data/build/src/freebsd/lf/main/sys/sys/cpuset.h:152:8: note: forward
declaration of 'struct prison'
  152 | struct prison;
      |        ^
5 errors generated.
*** [subr_bus.o] Error code 1

make[2]: stopped making "all" in
/data/build/obj/freebsd/data/build/src/freebsd/lf/main/amd64.amd64/sys/GENERIC

-- 
You are receiving this mail because:
You are the assignee for the bug.