cpumask: make cpumask_size() return "unsigned int"
Subsystems (2)
PATCH 1/1 cpumask: make cpumask_size() return "unsigned int"
CPUmasks are never big enough to warrant 64-bit code.
Space savings:
add/remove: 0/0 grow/shrink: 1/4 up/down: 3/-17 (-14)
Function old new delta
sched_init_numa 1530 1533 +3
compat_sys_sched_setaffinity 160 159 -1
sys_sched_getaffinity 197 195 -2
sys_sched_setaffinity 183 176 -7
compat_sys_sched_getaffinity 179 172 -7
Signed-off-by Alexey Dobriyan <[email protected]>
---
include/linux/cpumask.h | 2 +- kernel/compat.c | 2 +- kernel/sched/core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
include/linux/cpumask.h +1 -1
@@ -640,7 +640,7 @@ static inline int cpulist_parse(const char *buf, struct cpumask *dstp)/** * cpumask_size - size to allocate for a 'struct cpumask' in bytes */ -static inline size_t cpumask_size (void ) +static inline unsigned int cpumask_size (void ) {return BITS_TO_LONGS (nr_cpumask_bits) *sizeof (long ); }
kernel/compat.c +1 -1
@@ -355,7 +355,7 @@ COMPAT_SYSCALL_DEFINE3(sched_getaffinity, compat_pid_t, pid, unsigned int, len, ret =sched_getaffinity (pid, mask);if (ret ==0 ) { -size_t retlen =min_t (size_t, len,cpumask_size ()); +unsigned int retlen =min (len,cpumask_size ());if (compat_put_bitmap (user_mask_ptr,cpumask_bits (mask), retlen *8 )) ret = -EFAULT ;
kernel/sched/core.c +1 -1
@@ -4799,7 +4799,7 @@ SYSCALL_DEFINE3(sched_getaffinity, pid_t, pid, unsigned int, len, ret =sched_getaffinity (pid, mask);if (ret ==0 ) { -size_t retlen =min_t (size_t, len,cpumask_size ()); +unsigned int retlen =min (len,cpumask_size ());if (copy_to_user (user_mask_ptr, mask, retlen)) ret = -EFAULT ;