| Index: sys/dev/ciss/ciss.c |
| =================================================================== |
| --- sys/dev/ciss/ciss.c (revision 264510) |
| +++ sys/dev/ciss/ciss.c (revision 264511) |
| @@ -180,8 +180,6 @@ |
| static void ciss_cam_poll(struct cam_sim *sim); |
| static void ciss_cam_complete(struct ciss_request *cr); |
| static void ciss_cam_complete_fixup(struct ciss_softc *sc, struct ccb_scsiio *csio); |
| -static struct cam_periph *ciss_find_periph(struct ciss_softc *sc, |
| - int bus, int target); |
| static int ciss_name_device(struct ciss_softc *sc, int bus, int target); |
| |
| /* periodic status monitoring */ |
| @@ -3398,27 +3396,6 @@ |
| |
| |
| /******************************************************************************** |
| - * Find a peripheral attached at (target) |
| - */ |
| -static struct cam_periph * |
| -ciss_find_periph(struct ciss_softc *sc, int bus, int target) |
| -{ |
| - struct cam_periph *periph; |
| - struct cam_path *path; |
| - int status; |
| - |
| - status = xpt_create_path(&path, NULL, cam_sim_path(sc->ciss_cam_sim[bus]), |
| - target, 0); |
| - if (status == CAM_REQ_CMP) { |
| - periph = cam_periph_find(path, NULL); |
| - xpt_free_path(path); |
| - } else { |
| - periph = NULL; |
| - } |
| - return(periph); |
| -} |
| - |
| -/******************************************************************************** |
| * Name the device at (target) |
| * |
| * XXX is this strictly correct? |
| @@ -3427,12 +3404,22 @@ |
| ciss_name_device(struct ciss_softc *sc, int bus, int target) |
| { |
| struct cam_periph *periph; |
| + struct cam_path *path; |
| + int status; |
| |
| if (CISS_IS_PHYSICAL(bus)) |
| return (0); |
| - if ((periph = ciss_find_periph(sc, bus, target)) != NULL) { |
| + |
| + status = xpt_create_path(&path, NULL, cam_sim_path(sc->ciss_cam_sim[bus]), |
| + target, 0); |
| + |
| + if (status == CAM_REQ_CMP) { |
| + mtx_lock(&sc->ciss_mtx); |
| + periph = cam_periph_find(path, NULL); |
| sprintf(sc->ciss_logical[bus][target].cl_name, "%s%d", |
| periph->periph_name, periph->unit_number); |
| + mtx_unlock(&sc->ciss_mtx); |
| + xpt_free_path(path); |
| return(0); |
| } |
| sc->ciss_logical[bus][target].cl_name[0] = 0; |