Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Apr 2019 21:43:00 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Tycho Nightingale <tychon@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r346687 - head/sys/compat/linuxkpi/common/src
Message-ID:  <20190425184300.GM12936@kib.kiev.ua>
In-Reply-To: <201904251813.x3PIDut8078016@repo.freebsd.org>
References:  <201904251813.x3PIDut8078016@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 25, 2019 at 06:13:56PM +0000, Tycho Nightingale wrote:
> Author: tychon
> Date: Thu Apr 25 18:13:55 2019
> New Revision: 346687
> URL: https://svnweb.freebsd.org/changeset/base/346687
> 
> Log:
>   LinuxKPI buildfix for ppc64 after r346645.
>   
>   Proposed by:	hselasky
>   Sponsored by:	Dell EMC Isilon
> 
> Modified:
>   head/sys/compat/linuxkpi/common/src/linux_pci.c
> 
> Modified: head/sys/compat/linuxkpi/common/src/linux_pci.c
> ==============================================================================
> --- head/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Apr 25 17:28:36 2019	(r346686)
> +++ head/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Apr 25 18:13:55 2019	(r346687)
> @@ -137,9 +137,9 @@ linux_dma_tag_init(struct device *dev, u64 dma_mask)
>  	    dma_mask,			/* lowaddr */
>  	    BUS_SPACE_MAXADDR,		/* highaddr */
>  	    NULL, NULL,			/* filtfunc, filtfuncarg */
> -	    BUS_SPACE_MAXADDR,		/* maxsize */
> +	    BUS_SPACE_MAXSIZE,		/* maxsize */
>  	    1,				/* nsegments */
> -	    BUS_SPACE_MAXADDR,		/* maxsegsz */
> +	    BUS_SPACE_MAXSIZE,		/* maxsegsz */
>  	    0,				/* flags */
>  	    NULL, NULL,			/* lockfunc, lockfuncarg */
>  	    &priv->dmat);

It seems that amd64 BUS_SPACE_MAXSIZE is 4G, I do not know why.
Either we should fix that, or the following fix is more appropriate.
i386 and ppc both have PAE-like configs where maxaddr is 64bit but
maxsize is 32bit.

diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c
index 4e93827e2e9..ed0d5575b05 100644
--- a/sys/compat/linuxkpi/common/src/linux_pci.c
+++ b/sys/compat/linuxkpi/common/src/linux_pci.c
@@ -137,9 +137,17 @@ linux_dma_tag_init(struct device *dev, u64 dma_mask)
 	    dma_mask,			/* lowaddr */
 	    BUS_SPACE_MAXADDR,		/* highaddr */
 	    NULL, NULL,			/* filtfunc, filtfuncarg */
+#if defined(__i386__) || defined(__powerpc__)
+	    BUS_SPACE_MAXSIZE,
+#else
 	    BUS_SPACE_MAXADDR,		/* maxsize */
+#endif
 	    1,				/* nsegments */
+#if defined(__i386__) || defined(__powerpc__)
+	    BUS_SPACE_MAXSIZE,
+#else
 	    BUS_SPACE_MAXADDR,		/* maxsegsz */
+#endif
 	    0,				/* flags */
 	    NULL, NULL,			/* lockfunc, lockfuncarg */
 	    &priv->dmat);





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