Date: Wed, 17 Dec 2008 10:49:03 +0000 (UTC) From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r186219 - in head/sys/cam: . scsi Message-ID: <200812171049.mBHAn3tK002058@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: trasz Date: Wed Dec 17 10:49:03 2008 New Revision: 186219 URL: http://svn.freebsd.org/changeset/base/186219 Log: Revert r186186 for now; it breaks stuff. Approved by: rwatson (mentor) Modified: head/sys/cam/cam_periph.c head/sys/cam/cam_xpt.c head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/cam_periph.c ============================================================================== --- head/sys/cam/cam_periph.c Wed Dec 17 10:42:53 2008 (r186218) +++ head/sys/cam/cam_periph.c Wed Dec 17 10:49:03 2008 (r186219) @@ -311,6 +311,8 @@ cam_periph_hold(struct cam_periph *perip struct mtx *mtx; int error; + mtx_assert(periph->sim->mtx, MA_OWNED); + /* * Increment the reference count on the peripheral * while we wait for our lock attempt to succeed @@ -322,8 +324,6 @@ cam_periph_hold(struct cam_periph *perip return (ENXIO); mtx = periph->sim->mtx; - mtx_assert(mtx, MA_OWNED); - if (mtx == &Giant) mtx = NULL; Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Wed Dec 17 10:42:53 2008 (r186218) +++ head/sys/cam/cam_xpt.c Wed Dec 17 10:49:03 2008 (r186219) @@ -1595,7 +1595,7 @@ xpt_remove_periph(struct cam_periph *per { struct cam_ed *device; - cam_periph_lock(periph); + mtx_assert(periph->sim->mtx, MA_OWNED); device = periph->path->device; @@ -1615,7 +1615,6 @@ xpt_remove_periph(struct cam_periph *per mtx_lock(&xsoftc.xpt_topo_lock); xsoftc.xpt_generation++; mtx_unlock(&xsoftc.xpt_topo_lock); - cam_periph_unlock(periph); } Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Wed Dec 17 10:42:53 2008 (r186218) +++ head/sys/cam/scsi/scsi_da.c Wed Dec 17 10:49:03 2008 (r186219) @@ -772,8 +772,8 @@ daclose(struct disk *dp) softc->flags &= ~DA_FLAG_OPEN; cam_periph_unhold(periph); - cam_periph_unlock(periph); cam_periph_release(periph); + cam_periph_unlock(periph); return (0); } @@ -995,8 +995,10 @@ dacleanup(struct cam_periph *periph) xpt_print(periph->path, "can't remove sysctl context\n"); } + cam_periph_unlock(periph); disk_destroy(softc->disk); callout_drain(&softc->sendordered_c); + cam_periph_lock(periph); free(softc, M_DEVBUF); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812171049.mBHAn3tK002058>