Re: -BETA6 panic with xorp multicast routing daemon

From: Robert Watson (rwatson_at_freebsd.org)
Date: 09/30/04

  • Next message: Muthu_T_at_Dell.com: "RE: PE2850 + FreeBSD 5.3-BETA6 - Keyboard not working"
    Date: Thu, 30 Sep 2004 01:16:30 -0400 (EDT)
    To: Dikshie <dikshie@ppk.itb.ac.id>
    
    

    On Thu, 30 Sep 2004, Dikshie wrote:

    > I got my -BETA6 panic when run xorp routing daemon.
    > Panic: mutex Giant not owned at /usr/src/sys/netinet/ip_mroute.c:2672
    >
    > I've included:
    > options MROUTING
    > options PIM
    > for multicast purpose and:
    >
    > options KDB
    > options KDB_TRACE
    > options DDB #Enable the kernel debugger
    > options DDB_NUMSYM
    > options GDB
    >
    > for debugging. but my box didnt save core to /var/crash.
    > any suggestions ?

    >From the nature of the panic, it sounds like you're running with
    NET_WITH_GIANT, debug.mpsafenet=0 in loader.conf, or that the setting has
    been forced by running with a kernel component that relies on Giant over
    the network stack?

    Try the attached patch, please.

    Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
    robert@fledge.watson.org Principal Research Scientist, McAfee Research

    Index: ip_mroute.c
    ===================================================================
    RCS file: /home/ncvs/src/sys/netinet/ip_mroute.c,v
    retrieving revision 1.108
    diff -u -r1.108 ip_mroute.c
    --- ip_mroute.c 27 Aug 2004 18:33:07 -0000 1.108
    +++ ip_mroute.c 30 Sep 2004 05:00:17 -0000
    @@ -598,20 +598,23 @@
     static void
     ip_mrouter_reset(void)
     {
    + int callout_flag;
    +
         bzero((caddr_t)mfctable, sizeof(mfctable));
         bzero((caddr_t)nexpire, sizeof(nexpire));
     
         pim_assert = 0;
         mrt_api_config = 0;
     
    - callout_init(&expire_upcalls_ch, CALLOUT_MPSAFE);
    + callout_flag = debug_mpsafenet ? CALLOUT_MPSAFE : 0;
    + callout_init(&expire_upcalls_ch, callout_flag);
     
         bw_upcalls_n = 0;
         bzero((caddr_t)bw_meter_timers, sizeof(bw_meter_timers));
    - callout_init(&bw_upcalls_ch, CALLOUT_MPSAFE);
    - callout_init(&bw_meter_ch, CALLOUT_MPSAFE);
    + callout_init(&bw_upcalls_ch, callout_flag);
    + callout_init(&bw_meter_ch, callout_flag);
     
    - callout_init(&tbf_reprocess_ch, CALLOUT_MPSAFE);
    + callout_init(&tbf_reprocess_ch, callout_flag);
     }
     
     static struct mtx mrouter_mtx; /* used to synch init/done work */

    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"


  • Next message: Muthu_T_at_Dell.com: "RE: PE2850 + FreeBSD 5.3-BETA6 - Keyboard not working"
  • Quantcast