2014-12-10 13:02:56

by Richard Weinberger

[permalink] [raw]
Subject: [PATCH] um: Skip futex_atomic_cmpxchg_inatomic() test

futex_atomic_cmpxchg_inatomic() does not work on UML because
it triggers a copy_from_user() in kernel context.
On UML copy_from_user() can only be used if the kernel was called
by a real user space process such that UML can use ptrace()
to fetch the value.

Reported-by: Miklos Szeredi <[email protected]>
Suggested-by: Geert Uytterhoeven <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
---
arch/um/Kconfig.common | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
index 87bc868..d195a87 100644
--- a/arch/um/Kconfig.common
+++ b/arch/um/Kconfig.common
@@ -3,6 +3,7 @@ config UML
default y
select HAVE_ARCH_AUDITSYSCALL
select HAVE_UID16
+ select HAVE_FUTEX_CMPXCHG if FUTEX
select GENERIC_IRQ_SHOW
select GENERIC_CPU_DEVICES
select GENERIC_IO
--
2.1.0


2014-12-15 10:35:05

by Daniel Walter

[permalink] [raw]
Subject: Re: [uml-devel] [PATCH] um: Skip futex_atomic_cmpxchg_inatomic() test

----- Original Message -----
> From: "Richard Weinberger" <[email protected]>
> To: [email protected]
> Cc: [email protected], [email protected], "Richard Weinberger" <[email protected]>, [email protected],
> [email protected], [email protected]
> Sent: Wednesday, December 10, 2014 1:02:15 PM
> Subject: [uml-devel] [PATCH] um: Skip futex_atomic_cmpxchg_inatomic() test
>
> futex_atomic_cmpxchg_inatomic() does not work on UML because
> it triggers a copy_from_user() in kernel context.
> On UML copy_from_user() can only be used if the kernel was called
> by a real user space process such that UML can use ptrace()
> to fetch the value.
>
> Reported-by: Miklos Szeredi <[email protected]>
> Suggested-by: Geert Uytterhoeven <[email protected]>
> Signed-off-by: Richard Weinberger <[email protected]>
> ---
> arch/um/Kconfig.common | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
> index 87bc868..d195a87 100644
> --- a/arch/um/Kconfig.common
> +++ b/arch/um/Kconfig.common
> @@ -3,6 +3,7 @@ config UML
> default y
> select HAVE_ARCH_AUDITSYSCALL
> select HAVE_UID16
> + select HAVE_FUTEX_CMPXCHG if FUTEX
> select GENERIC_IRQ_SHOW
> select GENERIC_CPU_DEVICES
> select GENERIC_IO
> --
> 2.1.0
>
Hi,

tested it a few days, looks good.


Tested-by: Daniel Walter <[email protected]>