The driver should allocate the per-device-instance soft state structure, being careful to clean up properly if an error occurs.
instance = ddi_get_instance(dip);
if (ddi_soft_state_zalloc(isp_state,
instance) != DDI_SUCCESS) {
return (DDI_FAILURE);
}
isp = ddi_get_soft_state(isp_state, instance);