2022-08-02 17:59:03

by Yury Norov

[permalink] [raw]
Subject: Bitmap patches for v6.0-rc1

The following changes since commit a111daf0c53ae91e71fd2bfe7497862d14132e3e:

Linux 5.19-rc3 (2022-06-19 15:06:47 -0500)

are available in the Git repository at:

https://github.com/norov/linux.git/ tags/bitmap-6.0-rc1

for you to fetch changes up to 36d4b36b69590fed99356a4426c940a253a93800:

lib/nodemask: inline next_node_in() and node_random() (2022-08-01 08:13:21 -0700)

----------------------------------------------------------------
Bitmap patches for v6.0-rc1

This branch consists of:

Qu Wenruo:
lib: bitmap: fix the duplicated comments on bitmap_to_arr64()
https://lore.kernel.org/lkml/0d85e1dbad52ad7fb5787c4432bdb36cbd24f632.1656063005.git.wqu@suse.com/

Alexander Lobakin:
bitops: let optimize out non-atomic bitops on compile-time constants
https://lore.kernel.org/lkml/[email protected]/T/

Yury Norov:
lib: cleanup bitmap-related headers
https://lore.kernel.org/linux-arm-kernel/YtCVeOGLiQ4gNPSf@yury-laptop/T/#m305522194c4d38edfdaffa71fcaaf2e2ca00a961

Alexander Lobakin:
x86/olpc: fix 'logical not is only applied to the left hand side'
https://www.spinics.net/lists/kernel/msg4440064.html

Yury Norov:
lib/nodemask: inline wrappers around bitmap
https://lore.kernel.org/all/[email protected]/

----------------------------------------------------------------
The patch "headers/deps: mm: Split <linux/gfp_types.h> out of <linux/gfp.h>"
conflicts with 70c248aca9e7e ("mm: kasan: Skip unpoisoning of user pages").

The gfp_types patch moves macros from gfp.h to gfp_types.h, but the
70c248aca9e7e modifies original gfp.h, and therefore git can't apply
gfp_types patch cleanly. The solution is to propagate the following
change from gfp.h to new gfp_types.h:

#define GFP_DMA32 __GFP_DMA32
#define GFP_HIGHUSER (GFP_USER | __GFP_HIGHMEM)
#define GFP_HIGHUSER_MOVABLE (GFP_HIGHUSER | __GFP_MOVABLE | \
- __GFP_SKIP_KASAN_POISON)
+ __GFP_SKIP_KASAN_POISON | __GFP_SKIP_KASAN_UNPOISON)
#define GFP_TRANSHUGE_LIGHT ((GFP_HIGHUSER_MOVABLE | __GFP_COMP | \
__GFP_NOMEMALLOC | __GFP_NOWARN) & ~__GFP_RECLAIM)
#define GFP_TRANSHUGE (GFP_TRANSHUGE_LIGHT | __GFP_DIRECT_RECLAIM)
---

Alexander Lobakin (13):
ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
bitops: always define asm-generic non-atomic bitops
bitops: unify non-atomic bitops prototypes across architectures
bitops: define const_*() versions of the non-atomics
bitops: wrap non-atomic bitops with a transparent macro
bitops: let optimize out non-atomic bitops on compile-time constants
net/ice: fix initializing the bitmap in the switch code
bitmap: don't assume compiler evaluates small mem*() builtins calls
lib: test_bitmap: add compile-time optimization/evaluations assertions
lib/bitmap: fix off-by-one in bitmap_to_arr64()
lib/test_bitmap: test the tail after bitmap_to_arr64()
iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
x86/olpc: fix 'logical not is only applied to the left hand side'

Ingo Molnar (2):
headers/deps: mm: Optimize <linux/gfp.h> header dependencies
headers/deps: mm: Split <linux/gfp_types.h> out of <linux/gfp.h>

Qu Wenruo (1):
lib: bitmap: fix the duplicated comments on bitmap_to_arr64()

Yury Norov (10):
arm: align find_bit declarations with generic kernel
lib/bitmap: change return types to bool where appropriate
lib/bitmap: change type of bitmap_weight to unsigned long
cpumask: change return types to bool where appropriate
lib/cpumask: change return types to unsigned where appropriate
lib/cpumask: move trivial wrappers around find_bit to the header
headers/deps: mm: align MANITAINERS and Docs with new gfp.h structure
lib/cpumask: move some one-line wrappers to header file
powerpc: drop dependency on <asm/machdep.h> in archrandom.h
lib/nodemask: inline next_node_in() and node_random()

Documentation/core-api/mm-api.rst | 8 +-
MAINTAINERS | 2 +-
arch/alpha/include/asm/bitops.h | 32 +-
arch/arm/include/asm/bitops.h | 18 +-
arch/hexagon/include/asm/bitops.h | 24 +-
arch/ia64/include/asm/bitops.h | 42 +--
arch/ia64/include/asm/processor.h | 2 +-
arch/m68k/include/asm/bitops.h | 49 ++-
arch/powerpc/include/asm/archrandom.h | 9 +-
arch/powerpc/kernel/setup-common.c | 12 +
arch/s390/include/asm/bitops.h | 61 ++--
arch/sh/include/asm/bitops-op32.h | 34 +-
arch/sparc/include/asm/bitops_32.h | 18 +-
arch/sparc/lib/atomic32.c | 12 +-
arch/x86/include/asm/bitops.h | 22 +-
arch/x86/platform/olpc/olpc-xo1-sci.c | 2 +-
drivers/dma/ti/k3-udma.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 2 +-
drivers/gpu/drm/i915/display/intel_display_power.c | 2 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c | 2 +-
drivers/iommu/intel/dmar.c | 2 +-
drivers/iommu/intel/iommu.c | 2 +-
drivers/net/ethernet/intel/ice/ice_switch.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +-
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 2 +-
drivers/net/wireless/ath/carl9170/debug.c | 2 +-
include/asm-generic/bitops/generic-non-atomic.h | 161 ++++++++++
.../asm-generic/bitops/instrumented-non-atomic.h | 35 ++-
include/asm-generic/bitops/non-atomic.h | 121 +------
.../bitops/non-instrumented-non-atomic.h | 16 +
include/linux/bitmap.h | 37 ++-
include/linux/bitops.h | 50 +++
include/linux/cpumask.h | 125 ++++++--
include/linux/gfp.h | 348 +--------------------
include/linux/gfp_types.h | 348 +++++++++++++++++++++
include/linux/nodemask.h | 24 +-
lib/Makefile | 2 +-
lib/bitmap.c | 11 +-
lib/cpumask.c | 97 +-----
lib/nodemask.c | 8 -
lib/test_bitmap.c | 68 ++++
tools/include/asm-generic/bitops/non-atomic.h | 34 +-
tools/include/linux/bitmap.h | 12 +-
tools/include/linux/bitops.h | 16 +
tools/lib/bitmap.c | 6 +-
45 files changed, 1091 insertions(+), 799 deletions(-)
create mode 100644 include/asm-generic/bitops/generic-non-atomic.h
create mode 100644 include/asm-generic/bitops/non-instrumented-non-atomic.h
create mode 100644 include/linux/gfp_types.h