diff mbox series

Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux systems

Message ID 20220321172006.3014516-1-raj.khem@gmail.com
State New
Headers show
Series Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux systems | expand

Commit Message

Khem Raj March 21, 2022, 5:20 p.m. UTC
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(-)

Comments

Richard Henderson March 22, 2022, 2:05 p.m. UTC | #1
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~
Michael S. Tsirkin March 22, 2022, 2:44 p.m. UTC | #2
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~
diff mbox series

Patch

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"