Print this page
787 Kernel panic in ip_input.c

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip/ip_input.c
          +++ new/usr/src/uts/common/inet/ip/ip_input.c
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
       24 + *
       25 + * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
  24   26   */
  25   27  /* Copyright (c) 1990 Mentat Inc. */
  26   28  
  27   29  #include <sys/types.h>
  28   30  #include <sys/stream.h>
  29   31  #include <sys/dlpi.h>
  30   32  #include <sys/stropts.h>
  31   33  #include <sys/sysmacros.h>
  32   34  #include <sys/strsubr.h>
  33   35  #include <sys/strlog.h>
↓ open down ↓ 751 lines elided ↑ open up ↑
 785  787                              ALL_ZONES, ira->ira_tsl, MATCH_IRE_SECATTR,
 786  788                              irr_flags, ira->ira_xmit_hint, ipst, NULL, NULL,
 787  789                              NULL);
 788  790                  }
 789  791                  /* Update the route cache so we do the ire_refrele */
 790  792                  ASSERT(ire != NULL);
 791  793                  if (rtc->rtc_ire != NULL)
 792  794                          ire_refrele(rtc->rtc_ire);
 793  795                  rtc->rtc_ire = ire;
 794  796                  rtc->rtc_ipaddr = nexthop;
 795      -        } else if (nexthop == rtc->rtc_ipaddr) {
      797 +        } else if (nexthop == rtc->rtc_ipaddr && rtc->rtc_ire != NULL) {
 796  798                  /* Use the route cache */
 797      -                ASSERT(rtc->rtc_ire != NULL);
 798  799                  ire = rtc->rtc_ire;
 799  800          } else {
 800  801                  /* Update the route cache */
 801  802                  if (CLASSD(nexthop)) {
 802  803                          ire = ire_multicast(ill);
 803  804                  } else {
 804  805                          /* Just match the destination */
 805  806                          ire = ire_route_recursive_dstonly_v4(nexthop, irr_flags,
 806  807                              ira->ira_xmit_hint, ipst);
 807  808                  }
↓ open down ↓ 2328 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX