diff options
| author | Matt Jacob <mjacob@FreeBSD.org> | 2010-02-03 21:09:32 +0000 |
|---|---|---|
| committer | Matt Jacob <mjacob@FreeBSD.org> | 2010-02-03 21:09:32 +0000 |
| commit | c8b8a2c4e6ee8692a7eeff8a75511ad52835be75 (patch) | |
| tree | fdde0434a01b70cd56bc51a41aa3aaccfc6b07f8 /sys/dev/isp/isp_sbus.c | |
| parent | 7121df6349476d73276d4e51b4de6774cad003ca (diff) | |
Notes
Diffstat (limited to 'sys/dev/isp/isp_sbus.c')
| -rw-r--r-- | sys/dev/isp/isp_sbus.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/isp/isp_sbus.c b/sys/dev/isp/isp_sbus.c index a50d0f20ed86..e2dd78fed96f 100644 --- a/sys/dev/isp/isp_sbus.c +++ b/sys/dev/isp/isp_sbus.c @@ -455,13 +455,17 @@ isp_sbus_mbxdma(ispsoftc_t *isp) return (1); } - len = sizeof (XS_T **) * isp->isp_maxcmds; - isp->isp_xflist = (XS_T **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); + len = sizeof (isp_hdl_t *) * isp->isp_maxcmds; + isp->isp_xflist = (isp_hdl_t *) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO); if (isp->isp_xflist == NULL) { isp_prt(isp, ISP_LOGERR, "cannot alloc xflist array"); ISP_LOCK(isp); return (1); } + for (len = 0; len < isp->isp_maxcmds - 1; len++) { + isp->isp_xflist[len].cmd = &isp->isp_xflist[len+1]; + } + isp->isp_xffree = isp->isp_xflist; len = sizeof (bus_dmamap_t) * isp->isp_maxcmds; if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_SBD(isp)), 1, |
