Temporary workaround for aac_cam to deal with CAM requiring Giant. This
should fix the panics on boot with newer Adaptec RAID cards. Approved by: re (rwatson)
This commit is contained in:
parent
b4485f7a3c
commit
c5a8036c3d
@ -116,11 +116,15 @@ aac_cam_detach(device_t dev)
|
||||
|
||||
camsc = (struct aac_cam *)device_get_softc(dev);
|
||||
|
||||
mtx_lock(&Giant);
|
||||
|
||||
xpt_async(AC_LOST_DEVICE, camsc->path, NULL);
|
||||
xpt_free_path(camsc->path);
|
||||
xpt_bus_deregister(cam_sim_path(camsc->sim));
|
||||
cam_sim_free(camsc->sim, /*free_devq*/TRUE);
|
||||
|
||||
|
||||
mtx_unlock(&Giant);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -491,7 +495,11 @@ aac_cam_complete(struct aac_command *cm)
|
||||
|
||||
aac_release_command(cm);
|
||||
|
||||
AAC_LOCK_RELEASE(&sc->aac_io_lock);
|
||||
mtx_lock(&Giant);
|
||||
xpt_done(ccb);
|
||||
mtx_unlock(&Giant);
|
||||
AAC_LOCK_ACQUIRE(&sc->aac_io_lock);
|
||||
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user