The patch titled Subject: fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix has been added to the -mm tree. Its filename is fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix fix build, fix printk typo Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Anton Blanchard <anton@xxxxxxxxxx> Cc: Nicholas Piggin <npiggin@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/user.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) --- a/kernel/user.c~fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix +++ a/kernel/user.c @@ -138,7 +138,9 @@ static void free_user(struct user_struct { uid_hash_remove(up); spin_unlock_irqrestore(&uidhash_lock, flags); +#ifdef CONFIG_EPOLL percpu_counter_destroy(&up->epoll_watches); +#endif kmem_cache_free(uid_cachep, up); } @@ -186,10 +188,12 @@ struct user_struct *alloc_uid(kuid_t uid new->uid = uid; refcount_set(&new->__count, 1); +#ifdef CONFIG_EPOLL if (percpu_counter_init(&new->epoll_watches, 0, GFP_KERNEL)) { kmem_cache_free(uid_cachep, new); return NULL; } +#endif ratelimit_state_init(&new->ratelimit, HZ, 100); ratelimit_set_flags(&new->ratelimit, RATELIMIT_MSG_ON_RELEASE); @@ -200,7 +204,9 @@ struct user_struct *alloc_uid(kuid_t uid spin_lock_irq(&uidhash_lock); up = uid_hash_find(uid, hashent); if (up) { +#ifdef CONFIG_EPOLL percpu_counter_destroy(&new->epoll_watches); +#endif kmem_cache_free(uid_cachep, new); } else { uid_hash_insert(new, hashent); @@ -222,8 +228,10 @@ static int __init uid_cache_init(void) for(n = 0; n < UIDHASH_SZ; ++n) INIT_HLIST_HEAD(uidhash_table + n); +#ifdef CONFIG_EPOLL if (percpu_counter_init(&root_user.epoll_watches, 0, GFP_KERNEL)) - panic("percpu cpunter alloc failed"); + panic("percpu counter alloc failed"); +#endif /* Insert the root user immediately (init already runs as root) */ spin_lock_irq(&uidhash_lock); _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are mm.patch lazy-tlb-allow-lazy-tlb-mm-refcounting-to-be-configurable-fix.patch mm-compaction-optimize-proactive-compaction-deferrals-fix.patch mm-compaction-support-triggering-of-proactive-compaction-by-user-fix.patch mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt-fix.patch fs-epoll-use-a-per-cpu-counter-for-users-watches-count-fix.patch log-if-a-core-dump-is-aborted-due-to-changed-file-permissions-fix.patch linux-next-rejects.patch kernel-forkc-export-kernel_thread-to-modules.patch