--- src/sys/bus/cam/scsi/scsi_ses.c 2004/05/19 22:52:38 1.11 +++ src/sys/bus/cam/scsi/scsi_ses.c 2005/06/02 20:40:31 1.12 @@ -38,6 +38,7 @@ #include #include #include +#include #include #include "../cam.h" @@ -423,19 +424,19 @@ sesopen(dev_t dev, int flags, int fmt, s { struct cam_periph *periph; struct ses_softc *softc; - int error, s; + int error; - s = splsoftcam(); + crit_enter(); periph = cam_extend_get(sesperiphs, SESUNIT(dev)); if (periph == NULL) { - splx(s); + crit_exit(); return (ENXIO); } if ((error = cam_periph_lock(periph, PCATCH)) != 0) { - splx(s); + crit_exit(); return (error); } - splx(s); + crit_exit(); if (cam_periph_acquire(periph) != CAM_REQ_CMP) { cam_periph_unlock(periph); @@ -504,13 +505,13 @@ sesclose(dev_t dev, int flag, int fmt, s static void sesstart(struct cam_periph *p, union ccb *sccb) { - int s = splbio(); + crit_enter(); if (p->immediate_priority <= p->pinfo.priority) { SLIST_INSERT_HEAD(&p->ccb_list, &sccb->ccb_h, periph_links.sle); p->immediate_priority = CAM_PRIORITY_NONE; wakeup(&p->ccb_list); } - splx(s); + crit_exit(); } static void