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,10 +3642,12 @@
 #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,10 +3680,26 @@
             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 |