2019-09-07 05:42:44

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 1/2] watch_queue: make locked_vm accessible

The locked_vm member of struct user_struct is guarded by an #ifdef,
which breaks building the new watch_queue driver when all the other
subsystems that need it are disabled:

drivers/misc/watch_queue.c:315:38: error: no member named 'locked_vm' in 'struct user_struct'; did you mean 'locked_shm'?

Add watch_queue to the list.

Signed-off-by: Arnd Bergmann <[email protected]>
---
include/linux/sched/user.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/sched/user.h b/include/linux/sched/user.h
index 917d88edb7b9..6cd21c7bb83e 100644
--- a/include/linux/sched/user.h
+++ b/include/linux/sched/user.h
@@ -33,7 +33,7 @@ struct user_struct {
kuid_t uid;

#if defined(CONFIG_PERF_EVENTS) || defined(CONFIG_BPF_SYSCALL) || \
- defined(CONFIG_NET) || defined(CONFIG_IO_URING)
+ defined(CONFIG_NET) || defined(CONFIG_IO_URING) || defined(CONFIG_WATCH_QUEUE)
atomic_long_t locked_vm;
#endif

--
2.20.0


2019-09-07 06:40:50

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH 2/2] [don't apply] watch_queue: disable sample

Building in a separate object directory causes a compilation
failure for a missing header:

samples/watch_queue/watch_test.c:23:10: fatal error: linux/watch_queue.h: No such file or directory

I could not figure out why this does not work and applied this
patch locally. It would be good to fix this properly for 5.4
instead.

Signed-off-by: Arnd Bergmann <[email protected]>
---
samples/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/Makefile b/samples/Makefile
index a61a39047d02..068b28113be9 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -20,4 +20,4 @@ obj-$(CONFIG_SAMPLE_TRACE_PRINTK) += trace_printk/
obj-$(CONFIG_VIDEO_PCI_SKELETON) += v4l/
obj-y += vfio-mdev/
subdir-$(CONFIG_SAMPLE_VFS) += vfs
-subdir-$(CONFIG_SAMPLE_WATCH_QUEUE) += watch_queue
+#subdir-$(CONFIG_SAMPLE_WATCH_QUEUE) += watch_queue
--
2.20.0

2019-09-07 06:58:10

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH 1/2] watch_queue: make locked_vm accessible

On 9/6/19 9:32 AM, Arnd Bergmann wrote:
> The locked_vm member of struct user_struct is guarded by an #ifdef,
> which breaks building the new watch_queue driver when all the other
> subsystems that need it are disabled:
>
> drivers/misc/watch_queue.c:315:38: error: no member named 'locked_vm' in 'struct user_struct'; did you mean 'locked_shm'?
>
> Add watch_queue to the list.

Should we either:

1) Make it unconditionally available

or

2) Introduce a symbol for this that others can select, like
CONFIG_NEEDS_USER_LOCKED_VM or something like that.

?

--
Jens Axboe