On Friday 15 May 2009 11:36:18 am Martin wrote: > > 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?
A GPF on amd64 usually happens because the pointer has high bits corrupt (the high N bits on amd64 must be either all zeros or all ones). In my experience those are all caused by hardware issues rather than races or bugs. -- John Baldwin _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"