Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c5f6b32 authored by Eric Biggers's avatar Eric Biggers Committed by Theodore Ts'o
Browse files

blockgroup_lock.h: simplify definition of NR_BG_LOCKS



We can use ilog2() to more easily produce the desired NR_BG_LOCKS.  This
works because ilog2() is evaluated at compile-time when its argument is
a compile-time constant.

I did not change the chosen NR_BG_LOCKS values.

Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
Reviewed-by: default avatarAndreas Dilger <adilger@dilger.ca>
parent 9e5ab85d
Loading
Loading
Loading
Loading
+2 −20
Original line number Diff line number Diff line
@@ -10,28 +10,10 @@
#include <linux/cache.h>

#ifdef CONFIG_SMP

/*
 * We want a power-of-two.  Is there a better way than this?
 */

#if NR_CPUS >= 32
#define NR_BG_LOCKS	128
#elif NR_CPUS >= 16
#define NR_BG_LOCKS	64
#elif NR_CPUS >= 8
#define NR_BG_LOCKS	32
#elif NR_CPUS >= 4
#define NR_BG_LOCKS	16
#elif NR_CPUS >= 2
#define NR_BG_LOCKS	8
#define NR_BG_LOCKS	(4 << ilog2(NR_CPUS < 32 ? NR_CPUS : 32))
#else
#define NR_BG_LOCKS	4
#endif

#else	/* CONFIG_SMP */
#define NR_BG_LOCKS	1
#endif	/* CONFIG_SMP */
#endif

struct bgl_lock {
	spinlock_t lock;