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);