[PATCH] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux systems

Khem Raj posted 1 patch 2 years, 1 month ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220321172006.3014516-1-raj.khem@gmail.com
There is a newer version of this series
util/mmap-alloc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
[PATCH] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux systems
Posted by Khem Raj 2 years, 1 month ago
linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures
which include asm-generic/mman.h and mips/powerpc are not including this
file in linux/mman.h, therefore these should be defined for such
architectures on Linux as well. This fixes build on mips/musl/linux

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Zhang Yi <yi.z.zhang@linux.intel.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
---
 util/mmap-alloc.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/util/mmap-alloc.c b/util/mmap-alloc.c
index 893d864354..86d3cda248 100644
--- a/util/mmap-alloc.c
+++ b/util/mmap-alloc.c
@@ -10,14 +10,18 @@
  * later.  See the COPYING file in the top-level directory.
  */
 
+#include "qemu/osdep.h"
 #ifdef CONFIG_LINUX
 #include <linux/mman.h>
-#else  /* !CONFIG_LINUX */
+#endif  /* CONFIG_LINUX */
+
+#ifndef MAP_SYNC
 #define MAP_SYNC              0x0
+#endif /* MAP_SYNC */
+#ifndef MAP_SHARED_VALIDATE
 #define MAP_SHARED_VALIDATE   0x0
-#endif /* CONFIG_LINUX */
+#endif /* MAP_SHARED_VALIDATE */
 
-#include "qemu/osdep.h"
 #include "qemu/mmap-alloc.h"
 #include "qemu/host-utils.h"
 #include "qemu/cutils.h"
-- 
2.35.1
Re: [PATCH] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux systems
Posted by Richard Henderson 2 years, 1 month ago
On 3/21/22 10:20, Khem Raj wrote:
> linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures
> which include asm-generic/mman.h and mips/powerpc are not including this
> file in linux/mman.h, therefore these should be defined for such
> architectures on Linux as well.

This is not precisely correct.

MAP_SHARED_VALIDATE is defined in <linux/mman.h> for all architectures.

MAP_SYNC is defined in <asm-generic/mman-common.h>, which is included by powerpc 
<asm/mman.h>.  But you are correct that this is missing for mips.

> @@ -10,14 +10,18 @@
>    * later.  See the COPYING file in the top-level directory.
>    */
>   
> +#include "qemu/osdep.h"
>   #ifdef CONFIG_LINUX
>   #include <linux/mman.h>
> -#else  /* !CONFIG_LINUX */
> +#endif  /* CONFIG_LINUX */
> +
> +#ifndef MAP_SYNC
>   #define MAP_SYNC              0x0
> +#endif /* MAP_SYNC */
> +#ifndef MAP_SHARED_VALIDATE
>   #define MAP_SHARED_VALIDATE   0x0
> -#endif /* CONFIG_LINUX */
> +#endif /* MAP_SHARED_VALIDATE */
>   
> -#include "qemu/osdep.h"

The patch is correct, just need to fix the description.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Re: [PATCH] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux systems
Posted by Michael S. Tsirkin 2 years, 1 month ago
On Tue, Mar 22, 2022 at 07:05:05AM -0700, Richard Henderson wrote:
> On 3/21/22 10:20, Khem Raj wrote:
> > linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures
> > which include asm-generic/mman.h and mips/powerpc are not including this
> > file in linux/mman.h, therefore these should be defined for such
> > architectures on Linux as well.
> 
> This is not precisely correct.
> 
> MAP_SHARED_VALIDATE is defined in <linux/mman.h> for all architectures.
> 
> MAP_SYNC is defined in <asm-generic/mman-common.h>, which is included by
> powerpc <asm/mman.h>.  But you are correct that this is missing for mips.

OK, sounds like the commit log should be tweaked and the patch reposted.
The patch itself looks ok to me

Acked-by: Michael S. Tsirkin <mst@redhat.com>

mips tree I guess?


> > @@ -10,14 +10,18 @@
> >    * later.  See the COPYING file in the top-level directory.
> >    */
> > +#include "qemu/osdep.h"
> >   #ifdef CONFIG_LINUX
> >   #include <linux/mman.h>
> > -#else  /* !CONFIG_LINUX */
> > +#endif  /* CONFIG_LINUX */
> > +
> > +#ifndef MAP_SYNC
> >   #define MAP_SYNC              0x0
> > +#endif /* MAP_SYNC */
> > +#ifndef MAP_SHARED_VALIDATE
> >   #define MAP_SHARED_VALIDATE   0x0
> > -#endif /* CONFIG_LINUX */
> > +#endif /* MAP_SHARED_VALIDATE */
> > -#include "qemu/osdep.h"
> 
> The patch is correct, just need to fix the description.
> 
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> 
> r~