svn commit: r240717 - stable/9/sys/dev/isp
Matt Jacob
mjacob at FreeBSD.org
Thu Sep 20 00:51:10 UTC 2012
Author: mjacob
Date: Thu Sep 20 00:51:09 2012
New Revision: 240717
URL: http://svn.freebsd.org/changeset/base/240717
Log:
MFC of 239502: Remove dependence on MAXPHYS.
Modified:
stable/9/sys/dev/isp/isp_freebsd.h
stable/9/sys/dev/isp/isp_pci.c
stable/9/sys/dev/isp/isp_sbus.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
stable/9/sys/dev/isp/ (props changed)
Modified: stable/9/sys/dev/isp/isp_freebsd.h
==============================================================================
--- stable/9/sys/dev/isp/isp_freebsd.h Wed Sep 19 23:25:24 2012 (r240716)
+++ stable/9/sys/dev/isp/isp_freebsd.h Thu Sep 20 00:51:09 2012 (r240717)
@@ -726,9 +726,6 @@ int isp_fcp_next_crn(ispsoftc_t *, uint8
#define isp_sim_alloc(a, b, c, d, e, f, g, h) \
cam_sim_alloc(a, b, c, d, e, &(d)->isp_osinfo.lock, f, g, h)
-/* Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE */
-#define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1)
-
#define ISP_PATH_PRT(i, l, p, ...) \
if ((l) == ISP_LOGALL || ((l)& (i)->isp_dblev) != 0) { \
xpt_print(p, __VA_ARGS__); \
Modified: stable/9/sys/dev/isp/isp_pci.c
==============================================================================
--- stable/9/sys/dev/isp/isp_pci.c Wed Sep 19 23:25:24 2012 (r240716)
+++ stable/9/sys/dev/isp/isp_pci.c Thu Sep 20 00:51:09 2012 (r240717)
@@ -1525,7 +1525,7 @@ static int
isp_pci_mbxdma(ispsoftc_t *isp)
{
caddr_t base;
- uint32_t len;
+ uint32_t len, nsegs;
int i, error, ns, cmap = 0;
bus_size_t slim; /* segment size */
bus_addr_t llim; /* low limit of unavailable dma */
@@ -1567,6 +1567,11 @@ isp_pci_mbxdma(ispsoftc_t *isp)
return (1);
}
+ if (isp->isp_osinfo.sixtyfourbit) {
+ nsegs = ISP_NSEG64_MAX;
+ } else {
+ nsegs = ISP_NSEG_MAX;
+ }
#ifdef ISP_TARGET_MODE
/*
* XXX: We don't really support 64 bit target mode for parallel scsi yet
@@ -1579,7 +1584,7 @@ isp_pci_mbxdma(ispsoftc_t *isp)
}
#endif
- if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_PCD(isp)), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, ISP_NSEGS, slim, 0, &isp->isp_osinfo.dmat)) {
+ if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_PCD(isp)), 1, slim, llim, hlim, NULL, NULL, BUS_SPACE_MAXSIZE, nsegs, slim, 0, &isp->isp_osinfo.dmat)) {
free(isp->isp_osinfo.pcmd_pool, M_DEVBUF);
ISP_LOCK(isp);
isp_prt(isp, ISP_LOGERR, "could not create master dma tag");
Modified: stable/9/sys/dev/isp/isp_sbus.c
==============================================================================
--- stable/9/sys/dev/isp/isp_sbus.c Wed Sep 19 23:25:24 2012 (r240716)
+++ stable/9/sys/dev/isp/isp_sbus.c Thu Sep 20 00:51:09 2012 (r240717)
@@ -497,7 +497,7 @@ isp_sbus_mbxdma(ispsoftc_t *isp)
if (isp_dma_tag_create(BUS_DMA_ROOTARG(ISP_SBD(isp)), 1,
BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT,
BUS_SPACE_MAXADDR_32BIT, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT,
- ISP_NSEGS, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.dmat)) {
+ ISP_NSEG_MAX, BUS_SPACE_MAXADDR_24BIT, 0, &isp->isp_osinfo.dmat)) {
isp_prt(isp, ISP_LOGERR, "could not create master dma tag");
free(isp->isp_osinfo.pcmd_pool, M_DEVBUF);
free(isp->isp_xflist, M_DEVBUF);
More information about the svn-src-stable
mailing list