Hi Andrew, Today's linux-next merge of the akpm-current tree got a conflict in kernel/futex.c between commit a52b89ebb6d4 ("futexes: Increase hash table size for better performance") from the tip tree and commit 61beee6c76e5 ("futex: switch to USER_DS for futex test") from the akpm-current tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@canb.auug.org.au diff --cc kernel/futex.c index 3666aa0017ed,66d23727c6ab..000000000000 --- a/kernel/futex.c +++ b/kernel/futex.c @@@ -63,7 -63,7 +63,8 @@@ #include #include #include +#include + #include #include @@@ -2845,19 -2734,9 +2846,20 @@@ SYSCALL_DEFINE6(futex, u32 __user *, ua static int __init futex_init(void) { + mm_segment_t fs; u32 curval; - int i; + unsigned long i; + +#if CONFIG_BASE_SMALL + futex_hashsize = 16; +#else + futex_hashsize = roundup_pow_of_two(256 * num_possible_cpus()); +#endif + + futex_queues = alloc_large_system_hash("futex", sizeof(*futex_queues), + futex_hashsize, 0, + futex_hashsize < 256 ? HASH_SMALL : 0, + NULL, NULL, futex_hashsize, futex_hashsize); /* * This will fail and we want it. Some arch implementations do @@@ -2869,10 -2748,13 +2871,13 @@@ * implementation, the non-functional ones will return * -ENOSYS. */ + fs = get_fs(); + set_fs(USER_DS); if (cmpxchg_futex_value_locked(&curval, NULL, 0, 0) == -EFAULT) futex_cmpxchg_enabled = 1; + set_fs(fs); - for (i = 0; i < ARRAY_SIZE(futex_queues); i++) { + for (i = 0; i < futex_hashsize; i++) { plist_head_init(&futex_queues[i].chain); spin_lock_init(&futex_queues[i].lock); }