Print this page
XXXX don't fail device detach when it's physically removed

*** 15055,15065 **** /* Get full devname */ devname = kmem_alloc(MAXNAMELEN + 1, KM_SLEEP); (void) ddi_deviname(cdip, devname); /* Clean cache */ (void) devfs_clean(parent, devname + 1, ! DV_CLEAN_FORCE); kmem_free(devname, MAXNAMELEN + 1); } if (rpip != NULL) { if (MDI_PI_IS_OFFLINE(rpip)) { rval = DDI_SUCCESS; --- 15055,15065 ---- /* Get full devname */ devname = kmem_alloc(MAXNAMELEN + 1, KM_SLEEP); (void) ddi_deviname(cdip, devname); /* Clean cache */ (void) devfs_clean(parent, devname + 1, ! DV_CLEAN_FORCE|DV_DEVI_GONE); kmem_free(devname, MAXNAMELEN + 1); } if (rpip != NULL) { if (MDI_PI_IS_OFFLINE(rpip)) { rval = DDI_SUCCESS;
*** 15125,15135 **** /* Get full devname */ devname = kmem_alloc(MAXNAMELEN + 1, KM_SLEEP); (void) ddi_deviname(cdip, devname); /* Clean cache */ (void) devfs_clean(pdip, devname + 1, ! DV_CLEAN_FORCE); kmem_free(devname, MAXNAMELEN + 1); } rval = ndi_devi_offline(cdip, flags); --- 15125,15135 ---- /* Get full devname */ devname = kmem_alloc(MAXNAMELEN + 1, KM_SLEEP); (void) ddi_deviname(cdip, devname); /* Clean cache */ (void) devfs_clean(pdip, devname + 1, ! DV_CLEAN_FORCE|DV_DEVI_GONE); kmem_free(devname, MAXNAMELEN + 1); } rval = ndi_devi_offline(cdip, flags);