From af10b639baae115471e7f1d9109bfe2eeb00d77e Mon Sep 17 00:00:00 2001 From: Dan McDonald Date: Fri, 11 Mar 2011 13:33:44 -0500 Subject: [PATCH] 787 Kernel panic in ip_input.c --- usr/src/uts/common/inet/ip/ip6_input.c | 6 ++++-- usr/src/uts/common/inet/ip/ip_input.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/usr/src/uts/common/inet/ip/ip6_input.c b/usr/src/uts/common/inet/ip/ip6_input.c index 8a718dbc11..c7c241f944 100644 --- a/usr/src/uts/common/inet/ip/ip6_input.c +++ b/usr/src/uts/common/inet/ip/ip6_input.c @@ -21,6 +21,8 @@ /* * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved + * + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* Copyright (c) 1990 Mentat Inc. */ @@ -780,9 +782,9 @@ ill_input_short_v6(mblk_t *mp, void *iph_arg, void *nexthop_arg, ire_refrele(rtc->rtc_ire); rtc->rtc_ire = ire; rtc->rtc_ip6addr = nexthop; - } else if (IN6_ARE_ADDR_EQUAL(&nexthop, &rtc->rtc_ip6addr)) { + } else if (IN6_ARE_ADDR_EQUAL(&nexthop, &rtc->rtc_ip6addr) && + rtc->rtc_ire != NULL) { /* Use the route cache */ - ASSERT(rtc->rtc_ire != NULL); ire = rtc->rtc_ire; } else { /* Update the route cache */ diff --git a/usr/src/uts/common/inet/ip/ip_input.c b/usr/src/uts/common/inet/ip/ip_input.c index 933bafd11a..6aa70b014a 100644 --- a/usr/src/uts/common/inet/ip/ip_input.c +++ b/usr/src/uts/common/inet/ip/ip_input.c @@ -21,6 +21,8 @@ /* * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * + * Copyright 2011 Nexenta Systems, Inc. All rights reserved. */ /* Copyright (c) 1990 Mentat Inc. */ @@ -792,9 +794,8 @@ after_ilb: ire_refrele(rtc->rtc_ire); rtc->rtc_ire = ire; rtc->rtc_ipaddr = nexthop; - } else if (nexthop == rtc->rtc_ipaddr) { + } else if (nexthop == rtc->rtc_ipaddr && rtc->rtc_ire != NULL) { /* Use the route cache */ - ASSERT(rtc->rtc_ire != NULL); ire = rtc->rtc_ire; } else { /* Update the route cache */ -- 2.11.4.GIT