svn commit: r346687 - head/sys/compat/linuxkpi/common/src
Konstantin Belousov
kostikbel at gmail.com
Thu Apr 25 18:43:10 UTC 2019
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);
More information about the svn-src-head
mailing list