Print this page
NEX-8219 sudden reboot when accessing bge2 on HP Gen 9 - real fix
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
NEX-6635 sudden reboot when accessing bge2 on HP Gen9
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
        
*** 3642,3651 ****
--- 3642,3653 ----
  #endif
  #ifdef BGE_NETCONSOLE
          int retval;
  #endif
  #endif
+         int prop_len = 128;
+         char *prop_name, *prop_val;
  
          instance = ddi_get_instance(devinfo);
  
          BGE_GTRACE(("bge_attach($%p, %d) instance %d",
              (void *)devinfo, cmd, instance));
*** 3678,3687 ****
--- 3680,3705 ----
              DDI_PROP_DONTPASS, debug_propname, bge_debug);
          (void) snprintf(bgep->ifname, sizeof (bgep->ifname), "%s%d",
              BGE_DRIVER_NAME, instance);
  
          /*
+          * Check whether this specific instance has been disabled.
+          */
+         prop_name = kmem_zalloc(prop_len, KM_SLEEP);
+         (void) snprintf(prop_name, prop_len, "disable-%s", bgep->ifname);
+         if (ddi_prop_lookup_string(DDI_DEV_T_ANY, devinfo, 0, prop_name,
+             &prop_val) == DDI_SUCCESS) {
+                 if (strcmp(prop_val, "true") == 0) {
+                         ddi_prop_free(prop_val);
+                         kmem_free(prop_name, prop_len);
+                         goto attach_fail;
+                 }
+                 ddi_prop_free(prop_val);
+         }
+         kmem_free(prop_name, prop_len);
+ 
+         /*
           * Initialize for fma support
           */
          bgep->fm_capabilities = ddi_prop_get_int(DDI_DEV_T_ANY, devinfo,
              DDI_PROP_DONTPASS, fm_cap,
              DDI_FM_EREPORT_CAPABLE | DDI_FM_ACCCHK_CAPABLE |