summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_library.c
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2011-02-14 21:50:51 +0000
committermarius <marius@FreeBSD.org>2011-02-14 21:50:51 +0000
commit38e77638a44f19dcca8baf8a19e30750c6c7be94 (patch)
treee9d7d89e8be16e2991384a4512a90155d7ceeef0 /sys/dev/isp/isp_library.c
parente5e190244192755e197dbd88660bc40f2f01fc66 (diff)
downloadFreeBSD-src-38e77638a44f19dcca8baf8a19e30750c6c7be94.zip
FreeBSD-src-38e77638a44f19dcca8baf8a19e30750c6c7be94.tar.gz
- Use the correct DMA tag/map pair for synchronize the FC scratch area.
- Allocate coherent DMA memory for the request/response queue area and and the FC scratch area. These changes allow isp(4) to work properly on sparc64 with usage of the IOMMU streaming buffers enabled. Approved by: mjacob MFC after: 2 weeks
Diffstat (limited to 'sys/dev/isp/isp_library.c')
-rw-r--r--sys/dev/isp/isp_library.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/isp/isp_library.c b/sys/dev/isp/isp_library.c
index daad0c5..e8b563f 100644
--- a/sys/dev/isp/isp_library.c
+++ b/sys/dev/isp/isp_library.c
@@ -591,13 +591,13 @@ isp_fc_change_role(ispsoftc_t *isp, int chan, int new_role)
mbs.param[3] = DMA_WD0(fcp->isp_scdma);
mbs.param[6] = DMA_WD3(fcp->isp_scdma);
mbs.param[7] = DMA_WD2(fcp->isp_scdma);
- MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN);
+ MEMORYBARRIER(isp, SYNC_SFORDEV, 0, 2 * QENTRY_LEN, chan);
isp_control(isp, ISPCTL_RUN_MBOXCMD, &mbs);
if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
FC_SCRATCH_RELEASE(isp, chan);
return (EIO);
}
- MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN);
+ MEMORYBARRIER(isp, SYNC_SFORCPU, QENTRY_LEN, QENTRY_LEN, chan);
isp_get_vp_modify(isp, (vp_modify_t *)&scp[QENTRY_LEN], vp);
#ifdef ISP_TARGET_MODE
OpenPOWER on IntegriCloud