bitmap: replace bitmap_{from,to}_u32array
with bitmap_{from,to}_arr32 over the kernel. Additionally to it: * __check_eq_bitmap() now takes single nbits argument. * __check_eq_u32_array is not used in new test but may be used in future. So I don't remove it here, but annotate as __used. Tested on arm64 and 32-bit BE mips. [arnd@arndb.de: perf: arm_dsu_pmu: convert to bitmap_from_arr32] Link: http://lkml.kernel.org/r/20180201172508.5739-2-ynorov@caviumnetworks.com [ynorov@caviumnetworks.com: fix net/core/ethtool.c] Link: http://lkml.kernel.org/r/20180205071747.4ekxtsbgxkj5b2fz@yury-thinkpad Link: http://lkml.kernel.org/r/20171228150019.27953-2-ynorov@caviumnetworks.com Signed-off-by: Yury Norov <ynorov@caviumnetworks.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Ben Hutchings <ben@decadent.org.uk> Cc: David Decotigny <decot@googlers.com>, Cc: David S. Miller <davem@davemloft.net>, Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Matthew Wilcox <mawilcox@microsoft.com> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
c724f19361
commit
3aa56885e5
@@ -616,18 +616,15 @@ static int load_link_ksettings_from_user(struct ethtool_link_ksettings *to,
|
||||
return -EFAULT;
|
||||
|
||||
memcpy(&to->base, &link_usettings.base, sizeof(to->base));
|
||||
bitmap_from_u32array(to->link_modes.supported,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS,
|
||||
link_usettings.link_modes.supported,
|
||||
__ETHTOOL_LINK_MODE_MASK_NU32);
|
||||
bitmap_from_u32array(to->link_modes.advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS,
|
||||
link_usettings.link_modes.advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NU32);
|
||||
bitmap_from_u32array(to->link_modes.lp_advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS,
|
||||
link_usettings.link_modes.lp_advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NU32);
|
||||
bitmap_from_arr32(to->link_modes.supported,
|
||||
link_usettings.link_modes.supported,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_from_arr32(to->link_modes.advertising,
|
||||
link_usettings.link_modes.advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_from_arr32(to->link_modes.lp_advertising,
|
||||
link_usettings.link_modes.lp_advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -643,18 +640,15 @@ store_link_ksettings_for_user(void __user *to,
|
||||
struct ethtool_link_usettings link_usettings;
|
||||
|
||||
memcpy(&link_usettings.base, &from->base, sizeof(link_usettings));
|
||||
bitmap_to_u32array(link_usettings.link_modes.supported,
|
||||
__ETHTOOL_LINK_MODE_MASK_NU32,
|
||||
from->link_modes.supported,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_to_u32array(link_usettings.link_modes.advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NU32,
|
||||
from->link_modes.advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_to_u32array(link_usettings.link_modes.lp_advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NU32,
|
||||
from->link_modes.lp_advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_to_arr32(link_usettings.link_modes.supported,
|
||||
from->link_modes.supported,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_to_arr32(link_usettings.link_modes.advertising,
|
||||
from->link_modes.advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_to_arr32(link_usettings.link_modes.lp_advertising,
|
||||
from->link_modes.lp_advertising,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
|
||||
if (copy_to_user(to, &link_usettings, sizeof(link_usettings)))
|
||||
return -EFAULT;
|
||||
@@ -2358,10 +2352,8 @@ static int ethtool_get_per_queue_coalesce(struct net_device *dev,
|
||||
|
||||
useraddr += sizeof(*per_queue_opt);
|
||||
|
||||
bitmap_from_u32array(queue_mask,
|
||||
MAX_NUM_QUEUE,
|
||||
per_queue_opt->queue_mask,
|
||||
DIV_ROUND_UP(MAX_NUM_QUEUE, 32));
|
||||
bitmap_from_arr32(queue_mask, per_queue_opt->queue_mask,
|
||||
MAX_NUM_QUEUE);
|
||||
|
||||
for_each_set_bit(bit, queue_mask, MAX_NUM_QUEUE) {
|
||||
struct ethtool_coalesce coalesce = { .cmd = ETHTOOL_GCOALESCE };
|
||||
@@ -2393,10 +2385,7 @@ static int ethtool_set_per_queue_coalesce(struct net_device *dev,
|
||||
|
||||
useraddr += sizeof(*per_queue_opt);
|
||||
|
||||
bitmap_from_u32array(queue_mask,
|
||||
MAX_NUM_QUEUE,
|
||||
per_queue_opt->queue_mask,
|
||||
DIV_ROUND_UP(MAX_NUM_QUEUE, 32));
|
||||
bitmap_from_arr32(queue_mask, per_queue_opt->queue_mask, MAX_NUM_QUEUE);
|
||||
n_queue = bitmap_weight(queue_mask, MAX_NUM_QUEUE);
|
||||
tmp = backup = kmalloc_array(n_queue, sizeof(*backup), GFP_KERNEL);
|
||||
if (!backup)
|
||||
|
Reference in New Issue
Block a user