Print this page
787 Kernel panic in ip_input.c

@@ -19,10 +19,12 @@
  * CDDL HEADER END
  */
 
 /*
  * 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. */
 
 #include <sys/types.h>
 #include <sys/stream.h>

@@ -778,13 +780,13 @@
                 ASSERT(ire != NULL);
                 if (rtc->rtc_ire != NULL)
                         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 */
                 if (IN6_IS_ADDR_MULTICAST(&nexthop)) {
                         ire = ire_multicast(ill);