Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2012 00:51:10 +0000 (UTC)
From:      Matt Jacob <mjacob@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r240717 - stable/9/sys/dev/isp
Message-ID:  <201209200051.q8K0pAHd009473@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209200051.q8K0pAHd009473>