Print this page
dccp: getting kernel segfaults, back out recent added features

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/dccp/dccp.c
          +++ new/usr/src/uts/common/inet/dccp/dccp.c
↓ open down ↓ 252 lines elided ↑ open up ↑
 253  253          mutex_exit(&cpu_lock);
 254  254  
 255  255          dccps->dccps_sc = kmem_zalloc(max_ncpus * sizeof (dccp_stats_cpu_t *),
 256  256              KM_SLEEP);
 257  257          for (i = 0; i < dccps->dccps_sc_cnt; i++) {
 258  258                  dccps->dccps_sc[i] = kmem_zalloc(sizeof (dccp_stats_cpu_t),
 259  259                      KM_SLEEP);
 260  260          }
 261  261  
 262  262          /* Kernel statistics */
 263      -        dccps->dccps_kstat = dccp_kstat2_init(stackid);
 264      -        dccps->dccps_mibkp = dccp_kstat_init(stackid);
      263 +        //dccps->dccps_kstat = dccp_kstat2_init(stackid);
      264 +        //dccps->dccps_mibkp = dccp_kstat_init(stackid);
 265  265  
 266  266          /* Driver major number */
 267  267          major = mod_name_to_major(INET_NAME);
 268  268          error = ldi_ident_from_major(major, &dccps->dccps_ldi_ident);
 269  269          ASSERT(error == 0);
 270  270  
 271  271          return (dccps);
 272  272  }
 273  273  
 274  274  /*
↓ open down ↓ 21 lines elided ↑ open up ↑
 296  296                  ASSERT(dccps->dccps_bind_fanout[i].df_dccp == NULL);
 297  297                  mutex_destroy(&dccps->dccps_bind_fanout[i].df_lock);
 298  298          }
 299  299          kmem_free(dccps->dccps_bind_fanout, dccps->dccps_bind_fanout_size *
 300  300              sizeof (dccp_df_t));
 301  301          dccps->dccps_bind_fanout = NULL;
 302  302  
 303  303          /* Kernel statistics */
 304  304          dccp_kstat_fini(stackid, dccps->dccps_mibkp);
 305  305          dccps->dccps_mibkp = NULL;
      306 +        dccp_kstat2_fini(stackid, dccps->dccps_kstat);
      307 +        dccps->dccps_kstat = NULL;
 306  308  
 307  309          ldi_ident_release(dccps->dccps_ldi_ident);
 308  310  
 309  311          kmem_free(dccps, sizeof (*dccps));
 310  312  }
 311  313  
 312  314  /* /dev/dccp */
 313  315  static int
 314  316  dccp_openv4(queue_t *q, dev_t *devp, int flag, int sflag, cred_t *credp)
 315  317  {
↓ open down ↓ 927 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX