kernel trap 12 with interrupts disabled [bge0 on 7.2R]

Martin nakal at web.de
Fri May 15 15:37:13 UTC 2009


Hi John,

one more thing that I noticed. It seems that the netmask passed to the
procedure rt_maskedcopy is invalid. Cannot dereference the pointer.

I went one frame up and I've looked at the control flow of the parent
routine rtrequest1_fib. This routine passes the netmask, but before it
does that it went with req=11 (RTM_RESOLVE) through this piece of code:

/usr/src/sys/net/route.c:985

case RTM_RESOLVE:
        if (ret_nrt == NULL || (rt = *ret_nrt) == NULL)
                  senderr(EINVAL);
        ifa = rt->rt_ifa;
        /* XXX locking? */
        flags = rt->rt_flags &
                ~(RTF_CLONING | RTF_STATIC);
        flags |= RTF_WASCLONED;
        gateway = rt->rt_gateway;
        if ((netmask = rt->rt_genmask) == NULL)
                flags |= RTF_HOST;
        goto makeroute;

Is this a locking problem?

--
Martin


More information about the freebsd-stable mailing list