[intel-linux-intel-lts:5.4/yocto 5/5] drivers/gpu/drm/drm_edid.c:5539:54: sparse: sparse: incorrect type in argument 2 (different modifiers)
by kernel test robot
tree: https://github.com/intel/linux-intel-lts.git 5.4/yocto
head: 8e2b1510d279aecb1f89907553283c79c1b2b226
commit: 8e2b1510d279aecb1f89907553283c79c1b2b226 [5/5] drm/edid: Fix DispID tile parsing for override EDID
config: i386-randconfig-s002-20210814 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-348-gf0e6938b-dirty
# https://github.com/intel/linux-intel-lts/commit/8e2b1510d279aecb1f8990755...
git remote add intel-linux-intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-linux-intel-lts 5.4/yocto
git checkout 8e2b1510d279aecb1f89907553283c79c1b2b226
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/drm_edid.c:5539:54: sparse: sparse: incorrect type in argument 2 (different modifiers) @@ expected char *topology @@ got unsigned char const * @@
drivers/gpu/drm/drm_edid.c:5539:54: sparse: expected char *topology
drivers/gpu/drm/drm_edid.c:5539:54: sparse: got unsigned char const *
drivers/gpu/drm/drm_edid.c:5541:65: sparse: sparse: incorrect type in argument 2 (different modifiers) @@ expected char *topology @@ got unsigned char const * @@
drivers/gpu/drm/drm_edid.c:5541:65: sparse: expected char *topology
drivers/gpu/drm/drm_edid.c:5541:65: sparse: got unsigned char const *
vim +5539 drivers/gpu/drm/drm_edid.c
40d9b043a89e23 Dave Airlie 2014-10-20 5504
5e546cd5b3bc76 Dave Airlie 2016-05-03 5505 static int drm_parse_tiled_block(struct drm_connector *connector,
8e2b1510d279ae Ville Syrjälä 2020-03-13 5506 const struct displayid_block *block)
40d9b043a89e23 Dave Airlie 2014-10-20 5507 {
8e2b1510d279ae Ville Syrjälä 2020-03-13 5508 const struct displayid_tiled_block *tile = (struct displayid_tiled_block *)block;
40d9b043a89e23 Dave Airlie 2014-10-20 5509 u16 w, h;
40d9b043a89e23 Dave Airlie 2014-10-20 5510 u8 tile_v_loc, tile_h_loc;
40d9b043a89e23 Dave Airlie 2014-10-20 5511 u8 num_v_tile, num_h_tile;
40d9b043a89e23 Dave Airlie 2014-10-20 5512 struct drm_tile_group *tg;
40d9b043a89e23 Dave Airlie 2014-10-20 5513
40d9b043a89e23 Dave Airlie 2014-10-20 5514 w = tile->tile_size[0] | tile->tile_size[1] << 8;
40d9b043a89e23 Dave Airlie 2014-10-20 5515 h = tile->tile_size[2] | tile->tile_size[3] << 8;
40d9b043a89e23 Dave Airlie 2014-10-20 5516
40d9b043a89e23 Dave Airlie 2014-10-20 5517 num_v_tile = (tile->topo[0] & 0xf) | (tile->topo[2] & 0x30);
40d9b043a89e23 Dave Airlie 2014-10-20 5518 num_h_tile = (tile->topo[0] >> 4) | ((tile->topo[2] >> 2) & 0x30);
40d9b043a89e23 Dave Airlie 2014-10-20 5519 tile_v_loc = (tile->topo[1] & 0xf) | ((tile->topo[2] & 0x3) << 4);
40d9b043a89e23 Dave Airlie 2014-10-20 5520 tile_h_loc = (tile->topo[1] >> 4) | (((tile->topo[2] >> 2) & 0x3) << 4);
40d9b043a89e23 Dave Airlie 2014-10-20 5521
40d9b043a89e23 Dave Airlie 2014-10-20 5522 connector->has_tile = true;
40d9b043a89e23 Dave Airlie 2014-10-20 5523 if (tile->tile_cap & 0x80)
40d9b043a89e23 Dave Airlie 2014-10-20 5524 connector->tile_is_single_monitor = true;
40d9b043a89e23 Dave Airlie 2014-10-20 5525
40d9b043a89e23 Dave Airlie 2014-10-20 5526 connector->num_h_tile = num_h_tile + 1;
40d9b043a89e23 Dave Airlie 2014-10-20 5527 connector->num_v_tile = num_v_tile + 1;
40d9b043a89e23 Dave Airlie 2014-10-20 5528 connector->tile_h_loc = tile_h_loc;
40d9b043a89e23 Dave Airlie 2014-10-20 5529 connector->tile_v_loc = tile_v_loc;
40d9b043a89e23 Dave Airlie 2014-10-20 5530 connector->tile_h_size = w + 1;
40d9b043a89e23 Dave Airlie 2014-10-20 5531 connector->tile_v_size = h + 1;
40d9b043a89e23 Dave Airlie 2014-10-20 5532
40d9b043a89e23 Dave Airlie 2014-10-20 5533 DRM_DEBUG_KMS("tile cap 0x%x\n", tile->tile_cap);
40d9b043a89e23 Dave Airlie 2014-10-20 5534 DRM_DEBUG_KMS("tile_size %d x %d\n", w + 1, h + 1);
40d9b043a89e23 Dave Airlie 2014-10-20 5535 DRM_DEBUG_KMS("topo num tiles %dx%d, location %dx%d\n",
40d9b043a89e23 Dave Airlie 2014-10-20 5536 num_h_tile + 1, num_v_tile + 1, tile_h_loc, tile_v_loc);
40d9b043a89e23 Dave Airlie 2014-10-20 5537 DRM_DEBUG_KMS("vend %c%c%c\n", tile->topology_id[0], tile->topology_id[1], tile->topology_id[2]);
40d9b043a89e23 Dave Airlie 2014-10-20 5538
40d9b043a89e23 Dave Airlie 2014-10-20 @5539 tg = drm_mode_get_tile_group(connector->dev, tile->topology_id);
40d9b043a89e23 Dave Airlie 2014-10-20 5540 if (!tg) {
40d9b043a89e23 Dave Airlie 2014-10-20 5541 tg = drm_mode_create_tile_group(connector->dev, tile->topology_id);
40d9b043a89e23 Dave Airlie 2014-10-20 5542 }
40d9b043a89e23 Dave Airlie 2014-10-20 5543 if (!tg)
40d9b043a89e23 Dave Airlie 2014-10-20 5544 return -ENOMEM;
40d9b043a89e23 Dave Airlie 2014-10-20 5545
40d9b043a89e23 Dave Airlie 2014-10-20 5546 if (connector->tile_group != tg) {
40d9b043a89e23 Dave Airlie 2014-10-20 5547 /* if we haven't got a pointer,
40d9b043a89e23 Dave Airlie 2014-10-20 5548 take the reference, drop ref to old tile group */
40d9b043a89e23 Dave Airlie 2014-10-20 5549 if (connector->tile_group) {
40d9b043a89e23 Dave Airlie 2014-10-20 5550 drm_mode_put_tile_group(connector->dev, connector->tile_group);
40d9b043a89e23 Dave Airlie 2014-10-20 5551 }
40d9b043a89e23 Dave Airlie 2014-10-20 5552 connector->tile_group = tg;
40d9b043a89e23 Dave Airlie 2014-10-20 5553 } else
40d9b043a89e23 Dave Airlie 2014-10-20 5554 /* if same tile group, then release the ref we just took. */
40d9b043a89e23 Dave Airlie 2014-10-20 5555 drm_mode_put_tile_group(connector->dev, tg);
5e546cd5b3bc76 Dave Airlie 2016-05-03 5556 return 0;
5e546cd5b3bc76 Dave Airlie 2016-05-03 5557 }
5e546cd5b3bc76 Dave Airlie 2016-05-03 5558
:::::: The code at line 5539 was first introduced by commit
:::::: 40d9b043a89e2301e1f97ade055a73ecc28e9afe drm/connector: store tile information from displayid (v3)
:::::: TO: Dave Airlie <airlied(a)redhat.com>
:::::: CC: Dave Airlie <airlied(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
[linux-stable-rc:linux-4.14.y 1365/2894] drivers/gpu/drm/i915/i915_gem_stolen.o: warning: objtool: gen6_get_stolen_reserved()+0x9e: can't find switch jump table
by kernel test robot
CC: linux-kernel(a)vger.kernel.org
TO: Chris Wilson <chris(a)chris-wilson.co.uk>
CC: "Greg Kroah-Hartman" <gregkh(a)linuxfoundation.org>
CC: Zhenyu Wang <zhenyuw(a)linux.intel.com>
CC: Rodrigo Vivi <rodrigo.vivi(a)intel.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
head: cf256fbcbe347b7d0ff58fe2dfa382a156bd3694
commit: 1e066477433b1a6451abda0307c13a06a23cdaa2 [1365/2894] drm/i915: Force VT'd workarounds when running as a guest OS
config: x86_64-randconfig-a016-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.14.y
git checkout 1e066477433b1a6451abda0307c13a06a23cdaa2
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=x86_64 SHELL=/bin/bash LDFLAGS=-z max-page-size=0x200000 arch/x86/xen/ drivers/gpu/drm/i915/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/i915/i915_gem_stolen.c:31:
In file included from drivers/gpu/drm/i915/i915_drv.h:63:
In file included from drivers/gpu/drm/i915/intel_uc.h:31:
In file included from drivers/gpu/drm/i915/i915_vma.h:34:
drivers/gpu/drm/i915/i915_gem_object.h:289:1: warning: attribute declaration must precede definition [-Wignored-attributes]
__deprecated
^
include/linux/compiler-gcc.h:106:37: note: expanded from macro '__deprecated'
#define __deprecated __attribute__((deprecated))
^
include/drm/drm_gem.h:247:20: note: previous definition is here
static inline void drm_gem_object_reference(struct drm_gem_object *obj)
^
In file included from drivers/gpu/drm/i915/i915_gem_stolen.c:31:
In file included from drivers/gpu/drm/i915/i915_drv.h:63:
In file included from drivers/gpu/drm/i915/intel_uc.h:31:
In file included from drivers/gpu/drm/i915/i915_vma.h:34:
drivers/gpu/drm/i915/i915_gem_object.h:299:1: warning: attribute declaration must precede definition [-Wignored-attributes]
__deprecated
^
include/linux/compiler-gcc.h:106:37: note: expanded from macro '__deprecated'
#define __deprecated __attribute__((deprecated))
^
include/drm/drm_gem.h:285:20: note: previous definition is here
static inline void drm_gem_object_unreference(struct drm_gem_object *obj)
^
In file included from drivers/gpu/drm/i915/i915_gem_stolen.c:31:
In file included from drivers/gpu/drm/i915/i915_drv.h:63:
In file included from drivers/gpu/drm/i915/intel_uc.h:31:
In file included from drivers/gpu/drm/i915/i915_vma.h:34:
drivers/gpu/drm/i915/i915_gem_object.h:302:1: warning: attribute declaration must precede definition [-Wignored-attributes]
__deprecated
^
include/linux/compiler-gcc.h:106:37: note: expanded from macro '__deprecated'
#define __deprecated __attribute__((deprecated))
^
include/drm/drm_gem.h:273:1: note: previous definition is here
drm_gem_object_unreference_unlocked(struct drm_gem_object *obj)
^
3 warnings generated.
>> drivers/gpu/drm/i915/i915_gem_stolen.o: warning: objtool: gen6_get_stolen_reserved()+0x9e: can't find switch jump table
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
arch/arm64/kvm/hyp/nvhe/setup.c:133:17: warning: no previous prototype for function '__pkvm_init_finalise'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ba31f97d43be41ca99ab72a6131d7c226306865f
commit: f320bc742bc23c1d43567712fe2814bf04b19ebc KVM: arm64: Prepare the creation of s1 mappings at EL2
date: 5 months ago
config: arm64-randconfig-r024-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout f320bc742bc23c1d43567712fe2814bf04b19ebc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/hyp/nvhe/setup.c:133:17: warning: no previous prototype for function '__pkvm_init_finalise' [-Wmissing-prototypes]
void __noreturn __pkvm_init_finalise(void)
^
arch/arm64/kvm/hyp/nvhe/setup.c:133:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __noreturn __pkvm_init_finalise(void)
^
static
1 warning generated.
vim +/__pkvm_init_finalise +133 arch/arm64/kvm/hyp/nvhe/setup.c
132
> 133 void __noreturn __pkvm_init_finalise(void)
134 {
135 struct kvm_host_data *host_data = this_cpu_ptr(&kvm_host_data);
136 struct kvm_cpu_context *host_ctxt = &host_data->host_ctxt;
137 unsigned long nr_pages, reserved_pages, pfn;
138 int ret;
139
140 /* Now that the vmemmap is backed, install the full-fledged allocator */
141 pfn = hyp_virt_to_pfn(hyp_pgt_base);
142 nr_pages = hyp_s1_pgtable_pages();
143 reserved_pages = hyp_early_alloc_nr_used_pages();
144 ret = hyp_pool_init(&hpool, pfn, nr_pages, reserved_pages);
145 if (ret)
146 goto out;
147
148 pkvm_pgtable_mm_ops = (struct kvm_pgtable_mm_ops) {
149 .zalloc_page = hyp_zalloc_hyp_page,
150 .phys_to_virt = hyp_phys_to_virt,
151 .virt_to_phys = hyp_virt_to_phys,
152 .get_page = hyp_get_page,
153 .put_page = hyp_put_page,
154 };
155 pkvm_pgtable.mm_ops = &pkvm_pgtable_mm_ops;
156
157 out:
158 /*
159 * We tail-called to here from handle___pkvm_init() and will not return,
160 * so make sure to propagate the return value to the host.
161 */
162 cpu_reg(host_ctxt, 1) = ret;
163
164 __host_enter(host_ctxt);
165 }
166
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH] staging: greybus: Convert uart.c from IDR to XArray
by kernel test robot
Hi "Fabio,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Fabio-M-De-Francesco/staging-gre...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 0bd35146642bdc56f1b87d75f047b1c92bd2bd39
config: i386-randconfig-s002-20210814 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-348-gf0e6938b-dirty
# https://github.com/0day-ci/linux/commit/901c5fde0540c767590bce64621988973...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Fabio-M-De-Francesco/staging-greybus-Convert-uart-c-from-IDR-to-XArray/20210814-225807
git checkout 901c5fde0540c767590bce646219889730c4a41b
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/staging/greybus/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/radix-tree.h:19,
from include/linux/idr.h:15,
from include/linux/kernfs.h:13,
from include/linux/sysfs.h:16,
from include/linux/kobject.h:20,
from include/linux/module.h:21,
from drivers/staging/greybus/uart.c:15:
drivers/staging/greybus/uart.c: In function 'get_gb_by_minor':
>> include/linux/xarray.h:530:39: error: 'struct mutex' has no member named 'xa_lock'; did you mean 'wait_lock'?
530 | #define xa_lock(xa) spin_lock(&(xa)->xa_lock)
| ^~~~~~~
drivers/staging/greybus/uart.c:346:2: note: in expansion of macro 'xa_lock'
346 | xa_lock(&table_lock);
| ^~~~~~~
include/linux/xarray.h:531:43: error: 'struct mutex' has no member named 'xa_lock'; did you mean 'wait_lock'?
531 | #define xa_unlock(xa) spin_unlock(&(xa)->xa_lock)
| ^~~~~~~
drivers/staging/greybus/uart.c:358:2: note: in expansion of macro 'xa_unlock'
358 | xa_unlock(&table_lock);
| ^~~~~~~~~
vim +530 include/linux/xarray.h
9b89a035514468 Matthew Wilcox 2017-11-10 420
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 421) /**
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 422) * xa_for_each_range() - Iterate over a portion of an XArray.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 423) * @xa: XArray.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 424) * @index: Index of @entry.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 425) * @entry: Entry retrieved from array.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 426) * @start: First index to retrieve from array.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 427) * @last: Last index to retrieve from array.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 428) *
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 429) * During the iteration, @entry will have the value of the entry stored
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 430) * in @xa at @index. You may modify @index during the iteration if you
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 431) * want to skip or reprocess indices. It is safe to modify the array
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 432) * during the iteration. At the end of the iteration, @entry will be set
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 433) * to NULL and @index will have a value less than or equal to max.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 434) *
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 435) * xa_for_each_range() is O(n.log(n)) while xas_for_each() is O(n). You have
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 436) * to handle your own locking with xas_for_each(), and if you have to unlock
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 437) * after each iteration, it will also end up being O(n.log(n)).
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 438) * xa_for_each_range() will spin if it hits a retry entry; if you intend to
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 439) * see retry entries, you should use the xas_for_each() iterator instead.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 440) * The xas_for_each() iterator will expand into more inline code than
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 441) * xa_for_each_range().
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 442) *
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 443) * Context: Any context. Takes and releases the RCU lock.
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 444) */
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 445) #define xa_for_each_range(xa, index, entry, start, last) \
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 446) for (index = start, \
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 447) entry = xa_find(xa, &index, last, XA_PRESENT); \
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 448) entry; \
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 449) entry = xa_find_after(xa, &index, last, XA_PRESENT))
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 450)
b803b42823d0d9 Matthew Wilcox 2017-11-14 451 /**
4a31896c5b5a27 Matthew Wilcox 2018-12-17 452 * xa_for_each_start() - Iterate over a portion of an XArray.
b803b42823d0d9 Matthew Wilcox 2017-11-14 453 * @xa: XArray.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 454 * @index: Index of @entry.
b803b42823d0d9 Matthew Wilcox 2017-11-14 455 * @entry: Entry retrieved from array.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 456 * @start: First index to retrieve from array.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 457 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 458 * During the iteration, @entry will have the value of the entry stored
4a31896c5b5a27 Matthew Wilcox 2018-12-17 459 * in @xa at @index. You may modify @index during the iteration if you
4a31896c5b5a27 Matthew Wilcox 2018-12-17 460 * want to skip or reprocess indices. It is safe to modify the array
4a31896c5b5a27 Matthew Wilcox 2018-12-17 461 * during the iteration. At the end of the iteration, @entry will be set
4a31896c5b5a27 Matthew Wilcox 2018-12-17 462 * to NULL and @index will have a value less than or equal to max.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 463 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 464 * xa_for_each_start() is O(n.log(n)) while xas_for_each() is O(n). You have
4a31896c5b5a27 Matthew Wilcox 2018-12-17 465 * to handle your own locking with xas_for_each(), and if you have to unlock
4a31896c5b5a27 Matthew Wilcox 2018-12-17 466 * after each iteration, it will also end up being O(n.log(n)).
4a31896c5b5a27 Matthew Wilcox 2018-12-17 467 * xa_for_each_start() will spin if it hits a retry entry; if you intend to
4a31896c5b5a27 Matthew Wilcox 2018-12-17 468 * see retry entries, you should use the xas_for_each() iterator instead.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 469 * The xas_for_each() iterator will expand into more inline code than
4a31896c5b5a27 Matthew Wilcox 2018-12-17 470 * xa_for_each_start().
4a31896c5b5a27 Matthew Wilcox 2018-12-17 471 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 472 * Context: Any context. Takes and releases the RCU lock.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 473 */
4a31896c5b5a27 Matthew Wilcox 2018-12-17 474 #define xa_for_each_start(xa, index, entry, start) \
00ed452c210a0b Matthew Wilcox (Oracle 2020-01-12 475) xa_for_each_range(xa, index, entry, start, ULONG_MAX)
4a31896c5b5a27 Matthew Wilcox 2018-12-17 476
4a31896c5b5a27 Matthew Wilcox 2018-12-17 477 /**
4a31896c5b5a27 Matthew Wilcox 2018-12-17 478 * xa_for_each() - Iterate over present entries in an XArray.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 479 * @xa: XArray.
b803b42823d0d9 Matthew Wilcox 2017-11-14 480 * @index: Index of @entry.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 481 * @entry: Entry retrieved from array.
b803b42823d0d9 Matthew Wilcox 2017-11-14 482 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 483 * During the iteration, @entry will have the value of the entry stored
4a31896c5b5a27 Matthew Wilcox 2018-12-17 484 * in @xa at @index. You may modify @index during the iteration if you want
4a31896c5b5a27 Matthew Wilcox 2018-12-17 485 * to skip or reprocess indices. It is safe to modify the array during the
4a31896c5b5a27 Matthew Wilcox 2018-12-17 486 * iteration. At the end of the iteration, @entry will be set to NULL and
4a31896c5b5a27 Matthew Wilcox 2018-12-17 487 * @index will have a value less than or equal to max.
b803b42823d0d9 Matthew Wilcox 2017-11-14 488 *
b803b42823d0d9 Matthew Wilcox 2017-11-14 489 * xa_for_each() is O(n.log(n)) while xas_for_each() is O(n). You have
b803b42823d0d9 Matthew Wilcox 2017-11-14 490 * to handle your own locking with xas_for_each(), and if you have to unlock
b803b42823d0d9 Matthew Wilcox 2017-11-14 491 * after each iteration, it will also end up being O(n.log(n)). xa_for_each()
b803b42823d0d9 Matthew Wilcox 2017-11-14 492 * will spin if it hits a retry entry; if you intend to see retry entries,
b803b42823d0d9 Matthew Wilcox 2017-11-14 493 * you should use the xas_for_each() iterator instead. The xas_for_each()
b803b42823d0d9 Matthew Wilcox 2017-11-14 494 * iterator will expand into more inline code than xa_for_each().
b803b42823d0d9 Matthew Wilcox 2017-11-14 495 *
b803b42823d0d9 Matthew Wilcox 2017-11-14 496 * Context: Any context. Takes and releases the RCU lock.
b803b42823d0d9 Matthew Wilcox 2017-11-14 497 */
4a31896c5b5a27 Matthew Wilcox 2018-12-17 498 #define xa_for_each(xa, index, entry) \
4a31896c5b5a27 Matthew Wilcox 2018-12-17 499 xa_for_each_start(xa, index, entry, 0)
4a31896c5b5a27 Matthew Wilcox 2018-12-17 500
4a31896c5b5a27 Matthew Wilcox 2018-12-17 501 /**
4a31896c5b5a27 Matthew Wilcox 2018-12-17 502 * xa_for_each_marked() - Iterate over marked entries in an XArray.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 503 * @xa: XArray.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 504 * @index: Index of @entry.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 505 * @entry: Entry retrieved from array.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 506 * @filter: Selection criterion.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 507 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 508 * During the iteration, @entry will have the value of the entry stored
4a31896c5b5a27 Matthew Wilcox 2018-12-17 509 * in @xa at @index. The iteration will skip all entries in the array
4a31896c5b5a27 Matthew Wilcox 2018-12-17 510 * which do not match @filter. You may modify @index during the iteration
4a31896c5b5a27 Matthew Wilcox 2018-12-17 511 * if you want to skip or reprocess indices. It is safe to modify the array
4a31896c5b5a27 Matthew Wilcox 2018-12-17 512 * during the iteration. At the end of the iteration, @entry will be set to
4a31896c5b5a27 Matthew Wilcox 2018-12-17 513 * NULL and @index will have a value less than or equal to max.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 514 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 515 * xa_for_each_marked() is O(n.log(n)) while xas_for_each_marked() is O(n).
4a31896c5b5a27 Matthew Wilcox 2018-12-17 516 * You have to handle your own locking with xas_for_each(), and if you have
4a31896c5b5a27 Matthew Wilcox 2018-12-17 517 * to unlock after each iteration, it will also end up being O(n.log(n)).
4a31896c5b5a27 Matthew Wilcox 2018-12-17 518 * xa_for_each_marked() will spin if it hits a retry entry; if you intend to
4a31896c5b5a27 Matthew Wilcox 2018-12-17 519 * see retry entries, you should use the xas_for_each_marked() iterator
4a31896c5b5a27 Matthew Wilcox 2018-12-17 520 * instead. The xas_for_each_marked() iterator will expand into more inline
4a31896c5b5a27 Matthew Wilcox 2018-12-17 521 * code than xa_for_each_marked().
4a31896c5b5a27 Matthew Wilcox 2018-12-17 522 *
4a31896c5b5a27 Matthew Wilcox 2018-12-17 523 * Context: Any context. Takes and releases the RCU lock.
4a31896c5b5a27 Matthew Wilcox 2018-12-17 524 */
4a31896c5b5a27 Matthew Wilcox 2018-12-17 525 #define xa_for_each_marked(xa, index, entry, filter) \
4a31896c5b5a27 Matthew Wilcox 2018-12-17 526 for (index = 0, entry = xa_find(xa, &index, ULONG_MAX, filter); \
4a31896c5b5a27 Matthew Wilcox 2018-12-17 527 entry; entry = xa_find_after(xa, &index, ULONG_MAX, filter))
b803b42823d0d9 Matthew Wilcox 2017-11-14 528
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 529 #define xa_trylock(xa) spin_trylock(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 @530 #define xa_lock(xa) spin_lock(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 531 #define xa_unlock(xa) spin_unlock(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 532 #define xa_lock_bh(xa) spin_lock_bh(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 533 #define xa_unlock_bh(xa) spin_unlock_bh(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 534 #define xa_lock_irq(xa) spin_lock_irq(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 535 #define xa_unlock_irq(xa) spin_unlock_irq(&(xa)->xa_lock)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 536 #define xa_lock_irqsave(xa, flags) \
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 537 spin_lock_irqsave(&(xa)->xa_lock, flags)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 538 #define xa_unlock_irqrestore(xa, flags) \
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 539 spin_unlock_irqrestore(&(xa)->xa_lock, flags)
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 540) #define xa_lock_nested(xa, subclass) \
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 541) spin_lock_nested(&(xa)->xa_lock, subclass)
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 542) #define xa_lock_bh_nested(xa, subclass) \
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 543) spin_lock_bh_nested(&(xa)->xa_lock, subclass)
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 544) #define xa_lock_irq_nested(xa, subclass) \
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 545) spin_lock_irq_nested(&(xa)->xa_lock, subclass)
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 546) #define xa_lock_irqsave_nested(xa, flags, subclass) \
82a958497dc912 Matthew Wilcox (Oracle 2020-01-17 547) spin_lock_irqsave_nested(&(xa)->xa_lock, flags, subclass)
f6bb2a2c0b81c4 Matthew Wilcox 2018-04-10 548
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH] staging: greybus: Convert uart.c from IDR to XArray
by kernel test robot
Hi "Fabio,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Fabio-M-De-Francesco/staging-gre...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 0bd35146642bdc56f1b87d75f047b1c92bd2bd39
config: riscv-randconfig-r042-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/901c5fde0540c767590bce64621988973...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Fabio-M-De-Francesco/staging-greybus-Convert-uart-c-from-IDR-to-XArray/20210814-225807
git checkout 901c5fde0540c767590bce646219889730c4a41b
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=riscv SHELL=/bin/bash drivers/staging/greybus/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/staging/greybus/uart.c:346:2: error: no member named 'xa_lock' in 'struct mutex'
xa_lock(&table_lock);
^~~~~~~~~~~~~~~~~~~~
include/linux/xarray.h:530:39: note: expanded from macro 'xa_lock'
#define xa_lock(xa) spin_lock(&(xa)->xa_lock)
~~~~ ^
drivers/staging/greybus/uart.c:358:2: error: no member named 'xa_lock' in 'struct mutex'
xa_unlock(&table_lock);
^~~~~~~~~~~~~~~~~~~~~~
include/linux/xarray.h:531:43: note: expanded from macro 'xa_unlock'
#define xa_unlock(xa) spin_unlock(&(xa)->xa_lock)
~~~~ ^
2 errors generated.
vim +346 drivers/staging/greybus/uart.c
341
342 static struct gb_tty *get_gb_by_minor(unsigned int minor)
343 {
344 struct gb_tty *gb_tty;
345
> 346 xa_lock(&table_lock);
347 gb_tty = xa_load(&tty_minors, minor);
348 if (gb_tty) {
349 mutex_lock(&gb_tty->mutex);
350 if (gb_tty->disconnected) {
351 mutex_unlock(&gb_tty->mutex);
352 gb_tty = NULL;
353 } else {
354 tty_port_get(&gb_tty->port);
355 mutex_unlock(&gb_tty->mutex);
356 }
357 }
358 xa_unlock(&table_lock);
359 return gb_tty;
360 }
361
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
arch/arm64/kvm/sys_regs.c:1544:13: warning: initializer overrides prior initialization of this subobject
by kernel test robot
Hi Marc,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dfa377c35d70c31139b1274ec49f87d380996c42
commit: 11663111cd49b4c6dd27479774e420f139e4c447 KVM: arm64: Hide PMU registers from userspace when not available
date: 7 months ago
config: arm64-randconfig-r024-20210814 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1f7b25ea76a925aca690da28de9d78db7ca99d0c)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 11663111cd49b4c6dd27479774e420f139e4c447
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/sys_regs.c:1544:13: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.reset = reset_pmcr, .reg = PMCR_EL0 },
^~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1543:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMCR_EL0), .access = access_pmcr,
^~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1556:38: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.access = access_pmceid, .reset = NULL },
^~~~
include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1555:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMCEID0_EL0),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1558:38: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.access = access_pmceid, .reset = NULL },
^~~~
include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1557:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMCEID1_EL0),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1562:43: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.access = access_pmu_evtyper, .reset = NULL },
^~~~
include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1561:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMXEVTYPER_EL0),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1564:42: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.access = access_pmu_evcntr, .reset = NULL },
^~~~
include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
#define NULL ((void *)0)
^~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1563:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMXEVCNTR_EL0),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1570:13: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.reset = reset_val, .reg = PMUSERENR_EL0, .val = 0 },
^~~~~~~~~
arch/arm64/kvm/sys_regs.c:1569:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMUSERENR_EL0), .access = access_pmuserenr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:1725:13: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.reset = reset_val, .reg = PMCCFILTR_EL0, .val = 0 },
^~~~~~~~~
arch/arm64/kvm/sys_regs.c:1724:4: note: previous initialization is here
{ PMU_SYS_REG(SYS_PMCCFILTR_EL0), .access = access_pmu_evtyper,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/sys_regs.c:949:24: note: expanded from macro 'PMU_SYS_REG'
SYS_DESC(r), .reset = reset_unknown, .visibility = pmu_visibility
^~~~~~~~~~~~~
7 warnings generated.
vim +1544 arch/arm64/kvm/sys_regs.c
1332
1333 /*
1334 * Architected system registers.
1335 * Important: Must be sorted ascending by Op0, Op1, CRn, CRm, Op2
1336 *
1337 * Debug handling: We do trap most, if not all debug related system
1338 * registers. The implementation is good enough to ensure that a guest
1339 * can use these with minimal performance degradation. The drawback is
1340 * that we don't implement any of the external debug, none of the
1341 * OSlock protocol. This should be revisited if we ever encounter a
1342 * more demanding guest...
1343 */
1344 static const struct sys_reg_desc sys_reg_descs[] = {
1345 { SYS_DESC(SYS_DC_ISW), access_dcsw },
1346 { SYS_DESC(SYS_DC_CSW), access_dcsw },
1347 { SYS_DESC(SYS_DC_CISW), access_dcsw },
1348
1349 DBG_BCR_BVR_WCR_WVR_EL1(0),
1350 DBG_BCR_BVR_WCR_WVR_EL1(1),
1351 { SYS_DESC(SYS_MDCCINT_EL1), trap_debug_regs, reset_val, MDCCINT_EL1, 0 },
1352 { SYS_DESC(SYS_MDSCR_EL1), trap_debug_regs, reset_val, MDSCR_EL1, 0 },
1353 DBG_BCR_BVR_WCR_WVR_EL1(2),
1354 DBG_BCR_BVR_WCR_WVR_EL1(3),
1355 DBG_BCR_BVR_WCR_WVR_EL1(4),
1356 DBG_BCR_BVR_WCR_WVR_EL1(5),
1357 DBG_BCR_BVR_WCR_WVR_EL1(6),
1358 DBG_BCR_BVR_WCR_WVR_EL1(7),
1359 DBG_BCR_BVR_WCR_WVR_EL1(8),
1360 DBG_BCR_BVR_WCR_WVR_EL1(9),
1361 DBG_BCR_BVR_WCR_WVR_EL1(10),
1362 DBG_BCR_BVR_WCR_WVR_EL1(11),
1363 DBG_BCR_BVR_WCR_WVR_EL1(12),
1364 DBG_BCR_BVR_WCR_WVR_EL1(13),
1365 DBG_BCR_BVR_WCR_WVR_EL1(14),
1366 DBG_BCR_BVR_WCR_WVR_EL1(15),
1367
1368 { SYS_DESC(SYS_MDRAR_EL1), trap_raz_wi },
1369 { SYS_DESC(SYS_OSLAR_EL1), trap_raz_wi },
1370 { SYS_DESC(SYS_OSLSR_EL1), trap_oslsr_el1 },
1371 { SYS_DESC(SYS_OSDLR_EL1), trap_raz_wi },
1372 { SYS_DESC(SYS_DBGPRCR_EL1), trap_raz_wi },
1373 { SYS_DESC(SYS_DBGCLAIMSET_EL1), trap_raz_wi },
1374 { SYS_DESC(SYS_DBGCLAIMCLR_EL1), trap_raz_wi },
1375 { SYS_DESC(SYS_DBGAUTHSTATUS_EL1), trap_dbgauthstatus_el1 },
1376
1377 { SYS_DESC(SYS_MDCCSR_EL0), trap_raz_wi },
1378 { SYS_DESC(SYS_DBGDTR_EL0), trap_raz_wi },
1379 // DBGDTR[TR]X_EL0 share the same encoding
1380 { SYS_DESC(SYS_DBGDTRTX_EL0), trap_raz_wi },
1381
1382 { SYS_DESC(SYS_DBGVCR32_EL2), NULL, reset_val, DBGVCR32_EL2, 0 },
1383
1384 { SYS_DESC(SYS_MPIDR_EL1), NULL, reset_mpidr, MPIDR_EL1 },
1385
1386 /*
1387 * ID regs: all ID_SANITISED() entries here must have corresponding
1388 * entries in arm64_ftr_regs[].
1389 */
1390
1391 /* AArch64 mappings of the AArch32 ID registers */
1392 /* CRm=1 */
1393 ID_SANITISED(ID_PFR0_EL1),
1394 ID_SANITISED(ID_PFR1_EL1),
1395 ID_SANITISED(ID_DFR0_EL1),
1396 ID_HIDDEN(ID_AFR0_EL1),
1397 ID_SANITISED(ID_MMFR0_EL1),
1398 ID_SANITISED(ID_MMFR1_EL1),
1399 ID_SANITISED(ID_MMFR2_EL1),
1400 ID_SANITISED(ID_MMFR3_EL1),
1401
1402 /* CRm=2 */
1403 ID_SANITISED(ID_ISAR0_EL1),
1404 ID_SANITISED(ID_ISAR1_EL1),
1405 ID_SANITISED(ID_ISAR2_EL1),
1406 ID_SANITISED(ID_ISAR3_EL1),
1407 ID_SANITISED(ID_ISAR4_EL1),
1408 ID_SANITISED(ID_ISAR5_EL1),
1409 ID_SANITISED(ID_MMFR4_EL1),
1410 ID_SANITISED(ID_ISAR6_EL1),
1411
1412 /* CRm=3 */
1413 ID_SANITISED(MVFR0_EL1),
1414 ID_SANITISED(MVFR1_EL1),
1415 ID_SANITISED(MVFR2_EL1),
1416 ID_UNALLOCATED(3,3),
1417 ID_SANITISED(ID_PFR2_EL1),
1418 ID_HIDDEN(ID_DFR1_EL1),
1419 ID_SANITISED(ID_MMFR5_EL1),
1420 ID_UNALLOCATED(3,7),
1421
1422 /* AArch64 ID registers */
1423 /* CRm=4 */
1424 { SYS_DESC(SYS_ID_AA64PFR0_EL1), .access = access_id_reg,
1425 .get_user = get_id_reg, .set_user = set_id_aa64pfr0_el1, },
1426 ID_SANITISED(ID_AA64PFR1_EL1),
1427 ID_UNALLOCATED(4,2),
1428 ID_UNALLOCATED(4,3),
1429 ID_SANITISED(ID_AA64ZFR0_EL1),
1430 ID_UNALLOCATED(4,5),
1431 ID_UNALLOCATED(4,6),
1432 ID_UNALLOCATED(4,7),
1433
1434 /* CRm=5 */
1435 ID_SANITISED(ID_AA64DFR0_EL1),
1436 ID_SANITISED(ID_AA64DFR1_EL1),
1437 ID_UNALLOCATED(5,2),
1438 ID_UNALLOCATED(5,3),
1439 ID_HIDDEN(ID_AA64AFR0_EL1),
1440 ID_HIDDEN(ID_AA64AFR1_EL1),
1441 ID_UNALLOCATED(5,6),
1442 ID_UNALLOCATED(5,7),
1443
1444 /* CRm=6 */
1445 ID_SANITISED(ID_AA64ISAR0_EL1),
1446 ID_SANITISED(ID_AA64ISAR1_EL1),
1447 ID_UNALLOCATED(6,2),
1448 ID_UNALLOCATED(6,3),
1449 ID_UNALLOCATED(6,4),
1450 ID_UNALLOCATED(6,5),
1451 ID_UNALLOCATED(6,6),
1452 ID_UNALLOCATED(6,7),
1453
1454 /* CRm=7 */
1455 ID_SANITISED(ID_AA64MMFR0_EL1),
1456 ID_SANITISED(ID_AA64MMFR1_EL1),
1457 ID_SANITISED(ID_AA64MMFR2_EL1),
1458 ID_UNALLOCATED(7,3),
1459 ID_UNALLOCATED(7,4),
1460 ID_UNALLOCATED(7,5),
1461 ID_UNALLOCATED(7,6),
1462 ID_UNALLOCATED(7,7),
1463
1464 { SYS_DESC(SYS_SCTLR_EL1), access_vm_reg, reset_val, SCTLR_EL1, 0x00C50078 },
1465 { SYS_DESC(SYS_ACTLR_EL1), access_actlr, reset_actlr, ACTLR_EL1 },
1466 { SYS_DESC(SYS_CPACR_EL1), NULL, reset_val, CPACR_EL1, 0 },
1467
1468 { SYS_DESC(SYS_RGSR_EL1), undef_access },
1469 { SYS_DESC(SYS_GCR_EL1), undef_access },
1470
1471 { SYS_DESC(SYS_ZCR_EL1), NULL, reset_val, ZCR_EL1, 0, .visibility = sve_visibility },
1472 { SYS_DESC(SYS_TTBR0_EL1), access_vm_reg, reset_unknown, TTBR0_EL1 },
1473 { SYS_DESC(SYS_TTBR1_EL1), access_vm_reg, reset_unknown, TTBR1_EL1 },
1474 { SYS_DESC(SYS_TCR_EL1), access_vm_reg, reset_val, TCR_EL1, 0 },
1475
1476 PTRAUTH_KEY(APIA),
1477 PTRAUTH_KEY(APIB),
1478 PTRAUTH_KEY(APDA),
1479 PTRAUTH_KEY(APDB),
1480 PTRAUTH_KEY(APGA),
1481
1482 { SYS_DESC(SYS_AFSR0_EL1), access_vm_reg, reset_unknown, AFSR0_EL1 },
1483 { SYS_DESC(SYS_AFSR1_EL1), access_vm_reg, reset_unknown, AFSR1_EL1 },
1484 { SYS_DESC(SYS_ESR_EL1), access_vm_reg, reset_unknown, ESR_EL1 },
1485
1486 { SYS_DESC(SYS_ERRIDR_EL1), trap_raz_wi },
1487 { SYS_DESC(SYS_ERRSELR_EL1), trap_raz_wi },
1488 { SYS_DESC(SYS_ERXFR_EL1), trap_raz_wi },
1489 { SYS_DESC(SYS_ERXCTLR_EL1), trap_raz_wi },
1490 { SYS_DESC(SYS_ERXSTATUS_EL1), trap_raz_wi },
1491 { SYS_DESC(SYS_ERXADDR_EL1), trap_raz_wi },
1492 { SYS_DESC(SYS_ERXMISC0_EL1), trap_raz_wi },
1493 { SYS_DESC(SYS_ERXMISC1_EL1), trap_raz_wi },
1494
1495 { SYS_DESC(SYS_TFSR_EL1), undef_access },
1496 { SYS_DESC(SYS_TFSRE0_EL1), undef_access },
1497
1498 { SYS_DESC(SYS_FAR_EL1), access_vm_reg, reset_unknown, FAR_EL1 },
1499 { SYS_DESC(SYS_PAR_EL1), NULL, reset_unknown, PAR_EL1 },
1500
1501 { PMU_SYS_REG(SYS_PMINTENSET_EL1),
1502 .access = access_pminten, .reg = PMINTENSET_EL1 },
1503 { PMU_SYS_REG(SYS_PMINTENCLR_EL1),
1504 .access = access_pminten, .reg = PMINTENSET_EL1 },
1505
1506 { SYS_DESC(SYS_MAIR_EL1), access_vm_reg, reset_unknown, MAIR_EL1 },
1507 { SYS_DESC(SYS_AMAIR_EL1), access_vm_reg, reset_amair_el1, AMAIR_EL1 },
1508
1509 { SYS_DESC(SYS_LORSA_EL1), trap_loregion },
1510 { SYS_DESC(SYS_LOREA_EL1), trap_loregion },
1511 { SYS_DESC(SYS_LORN_EL1), trap_loregion },
1512 { SYS_DESC(SYS_LORC_EL1), trap_loregion },
1513 { SYS_DESC(SYS_LORID_EL1), trap_loregion },
1514
1515 { SYS_DESC(SYS_VBAR_EL1), NULL, reset_val, VBAR_EL1, 0 },
1516 { SYS_DESC(SYS_DISR_EL1), NULL, reset_val, DISR_EL1, 0 },
1517
1518 { SYS_DESC(SYS_ICC_IAR0_EL1), write_to_read_only },
1519 { SYS_DESC(SYS_ICC_EOIR0_EL1), read_from_write_only },
1520 { SYS_DESC(SYS_ICC_HPPIR0_EL1), write_to_read_only },
1521 { SYS_DESC(SYS_ICC_DIR_EL1), read_from_write_only },
1522 { SYS_DESC(SYS_ICC_RPR_EL1), write_to_read_only },
1523 { SYS_DESC(SYS_ICC_SGI1R_EL1), access_gic_sgi },
1524 { SYS_DESC(SYS_ICC_ASGI1R_EL1), access_gic_sgi },
1525 { SYS_DESC(SYS_ICC_SGI0R_EL1), access_gic_sgi },
1526 { SYS_DESC(SYS_ICC_IAR1_EL1), write_to_read_only },
1527 { SYS_DESC(SYS_ICC_EOIR1_EL1), read_from_write_only },
1528 { SYS_DESC(SYS_ICC_HPPIR1_EL1), write_to_read_only },
1529 { SYS_DESC(SYS_ICC_SRE_EL1), access_gic_sre },
1530
1531 { SYS_DESC(SYS_CONTEXTIDR_EL1), access_vm_reg, reset_val, CONTEXTIDR_EL1, 0 },
1532 { SYS_DESC(SYS_TPIDR_EL1), NULL, reset_unknown, TPIDR_EL1 },
1533
1534 { SYS_DESC(SYS_SCXTNUM_EL1), undef_access },
1535
1536 { SYS_DESC(SYS_CNTKCTL_EL1), NULL, reset_val, CNTKCTL_EL1, 0},
1537
1538 { SYS_DESC(SYS_CCSIDR_EL1), access_ccsidr },
1539 { SYS_DESC(SYS_CLIDR_EL1), access_clidr },
1540 { SYS_DESC(SYS_CSSELR_EL1), access_csselr, reset_unknown, CSSELR_EL1 },
1541 { SYS_DESC(SYS_CTR_EL0), access_ctr },
1542
1543 { PMU_SYS_REG(SYS_PMCR_EL0), .access = access_pmcr,
> 1544 .reset = reset_pmcr, .reg = PMCR_EL0 },
1545 { PMU_SYS_REG(SYS_PMCNTENSET_EL0),
1546 .access = access_pmcnten, .reg = PMCNTENSET_EL0 },
1547 { PMU_SYS_REG(SYS_PMCNTENCLR_EL0),
1548 .access = access_pmcnten, .reg = PMCNTENSET_EL0 },
1549 { PMU_SYS_REG(SYS_PMOVSCLR_EL0),
1550 .access = access_pmovs, .reg = PMOVSSET_EL0 },
1551 { PMU_SYS_REG(SYS_PMSWINC_EL0),
1552 .access = access_pmswinc, .reg = PMSWINC_EL0 },
1553 { PMU_SYS_REG(SYS_PMSELR_EL0),
1554 .access = access_pmselr, .reg = PMSELR_EL0 },
1555 { PMU_SYS_REG(SYS_PMCEID0_EL0),
1556 .access = access_pmceid, .reset = NULL },
1557 { PMU_SYS_REG(SYS_PMCEID1_EL0),
1558 .access = access_pmceid, .reset = NULL },
1559 { PMU_SYS_REG(SYS_PMCCNTR_EL0),
1560 .access = access_pmu_evcntr, .reg = PMCCNTR_EL0 },
1561 { PMU_SYS_REG(SYS_PMXEVTYPER_EL0),
1562 .access = access_pmu_evtyper, .reset = NULL },
1563 { PMU_SYS_REG(SYS_PMXEVCNTR_EL0),
1564 .access = access_pmu_evcntr, .reset = NULL },
1565 /*
1566 * PMUSERENR_EL0 resets as unknown in 64bit mode while it resets as zero
1567 * in 32bit mode. Here we choose to reset it as zero for consistency.
1568 */
1569 { PMU_SYS_REG(SYS_PMUSERENR_EL0), .access = access_pmuserenr,
1570 .reset = reset_val, .reg = PMUSERENR_EL0, .val = 0 },
1571 { PMU_SYS_REG(SYS_PMOVSSET_EL0),
1572 .access = access_pmovs, .reg = PMOVSSET_EL0 },
1573
1574 { SYS_DESC(SYS_TPIDR_EL0), NULL, reset_unknown, TPIDR_EL0 },
1575 { SYS_DESC(SYS_TPIDRRO_EL0), NULL, reset_unknown, TPIDRRO_EL0 },
1576
1577 { SYS_DESC(SYS_SCXTNUM_EL0), undef_access },
1578
1579 { SYS_DESC(SYS_AMCR_EL0), undef_access },
1580 { SYS_DESC(SYS_AMCFGR_EL0), undef_access },
1581 { SYS_DESC(SYS_AMCGCR_EL0), undef_access },
1582 { SYS_DESC(SYS_AMUSERENR_EL0), undef_access },
1583 { SYS_DESC(SYS_AMCNTENCLR0_EL0), undef_access },
1584 { SYS_DESC(SYS_AMCNTENSET0_EL0), undef_access },
1585 { SYS_DESC(SYS_AMCNTENCLR1_EL0), undef_access },
1586 { SYS_DESC(SYS_AMCNTENSET1_EL0), undef_access },
1587 AMU_AMEVCNTR0_EL0(0),
1588 AMU_AMEVCNTR0_EL0(1),
1589 AMU_AMEVCNTR0_EL0(2),
1590 AMU_AMEVCNTR0_EL0(3),
1591 AMU_AMEVCNTR0_EL0(4),
1592 AMU_AMEVCNTR0_EL0(5),
1593 AMU_AMEVCNTR0_EL0(6),
1594 AMU_AMEVCNTR0_EL0(7),
1595 AMU_AMEVCNTR0_EL0(8),
1596 AMU_AMEVCNTR0_EL0(9),
1597 AMU_AMEVCNTR0_EL0(10),
1598 AMU_AMEVCNTR0_EL0(11),
1599 AMU_AMEVCNTR0_EL0(12),
1600 AMU_AMEVCNTR0_EL0(13),
1601 AMU_AMEVCNTR0_EL0(14),
1602 AMU_AMEVCNTR0_EL0(15),
1603 AMU_AMEVTYPER0_EL0(0),
1604 AMU_AMEVTYPER0_EL0(1),
1605 AMU_AMEVTYPER0_EL0(2),
1606 AMU_AMEVTYPER0_EL0(3),
1607 AMU_AMEVTYPER0_EL0(4),
1608 AMU_AMEVTYPER0_EL0(5),
1609 AMU_AMEVTYPER0_EL0(6),
1610 AMU_AMEVTYPER0_EL0(7),
1611 AMU_AMEVTYPER0_EL0(8),
1612 AMU_AMEVTYPER0_EL0(9),
1613 AMU_AMEVTYPER0_EL0(10),
1614 AMU_AMEVTYPER0_EL0(11),
1615 AMU_AMEVTYPER0_EL0(12),
1616 AMU_AMEVTYPER0_EL0(13),
1617 AMU_AMEVTYPER0_EL0(14),
1618 AMU_AMEVTYPER0_EL0(15),
1619 AMU_AMEVCNTR1_EL0(0),
1620 AMU_AMEVCNTR1_EL0(1),
1621 AMU_AMEVCNTR1_EL0(2),
1622 AMU_AMEVCNTR1_EL0(3),
1623 AMU_AMEVCNTR1_EL0(4),
1624 AMU_AMEVCNTR1_EL0(5),
1625 AMU_AMEVCNTR1_EL0(6),
1626 AMU_AMEVCNTR1_EL0(7),
1627 AMU_AMEVCNTR1_EL0(8),
1628 AMU_AMEVCNTR1_EL0(9),
1629 AMU_AMEVCNTR1_EL0(10),
1630 AMU_AMEVCNTR1_EL0(11),
1631 AMU_AMEVCNTR1_EL0(12),
1632 AMU_AMEVCNTR1_EL0(13),
1633 AMU_AMEVCNTR1_EL0(14),
1634 AMU_AMEVCNTR1_EL0(15),
1635 AMU_AMEVTYPER1_EL0(0),
1636 AMU_AMEVTYPER1_EL0(1),
1637 AMU_AMEVTYPER1_EL0(2),
1638 AMU_AMEVTYPER1_EL0(3),
1639 AMU_AMEVTYPER1_EL0(4),
1640 AMU_AMEVTYPER1_EL0(5),
1641 AMU_AMEVTYPER1_EL0(6),
1642 AMU_AMEVTYPER1_EL0(7),
1643 AMU_AMEVTYPER1_EL0(8),
1644 AMU_AMEVTYPER1_EL0(9),
1645 AMU_AMEVTYPER1_EL0(10),
1646 AMU_AMEVTYPER1_EL0(11),
1647 AMU_AMEVTYPER1_EL0(12),
1648 AMU_AMEVTYPER1_EL0(13),
1649 AMU_AMEVTYPER1_EL0(14),
1650 AMU_AMEVTYPER1_EL0(15),
1651
1652 { SYS_DESC(SYS_CNTP_TVAL_EL0), access_arch_timer },
1653 { SYS_DESC(SYS_CNTP_CTL_EL0), access_arch_timer },
1654 { SYS_DESC(SYS_CNTP_CVAL_EL0), access_arch_timer },
1655
1656 /* PMEVCNTRn_EL0 */
1657 PMU_PMEVCNTR_EL0(0),
1658 PMU_PMEVCNTR_EL0(1),
1659 PMU_PMEVCNTR_EL0(2),
1660 PMU_PMEVCNTR_EL0(3),
1661 PMU_PMEVCNTR_EL0(4),
1662 PMU_PMEVCNTR_EL0(5),
1663 PMU_PMEVCNTR_EL0(6),
1664 PMU_PMEVCNTR_EL0(7),
1665 PMU_PMEVCNTR_EL0(8),
1666 PMU_PMEVCNTR_EL0(9),
1667 PMU_PMEVCNTR_EL0(10),
1668 PMU_PMEVCNTR_EL0(11),
1669 PMU_PMEVCNTR_EL0(12),
1670 PMU_PMEVCNTR_EL0(13),
1671 PMU_PMEVCNTR_EL0(14),
1672 PMU_PMEVCNTR_EL0(15),
1673 PMU_PMEVCNTR_EL0(16),
1674 PMU_PMEVCNTR_EL0(17),
1675 PMU_PMEVCNTR_EL0(18),
1676 PMU_PMEVCNTR_EL0(19),
1677 PMU_PMEVCNTR_EL0(20),
1678 PMU_PMEVCNTR_EL0(21),
1679 PMU_PMEVCNTR_EL0(22),
1680 PMU_PMEVCNTR_EL0(23),
1681 PMU_PMEVCNTR_EL0(24),
1682 PMU_PMEVCNTR_EL0(25),
1683 PMU_PMEVCNTR_EL0(26),
1684 PMU_PMEVCNTR_EL0(27),
1685 PMU_PMEVCNTR_EL0(28),
1686 PMU_PMEVCNTR_EL0(29),
1687 PMU_PMEVCNTR_EL0(30),
1688 /* PMEVTYPERn_EL0 */
1689 PMU_PMEVTYPER_EL0(0),
1690 PMU_PMEVTYPER_EL0(1),
1691 PMU_PMEVTYPER_EL0(2),
1692 PMU_PMEVTYPER_EL0(3),
1693 PMU_PMEVTYPER_EL0(4),
1694 PMU_PMEVTYPER_EL0(5),
1695 PMU_PMEVTYPER_EL0(6),
1696 PMU_PMEVTYPER_EL0(7),
1697 PMU_PMEVTYPER_EL0(8),
1698 PMU_PMEVTYPER_EL0(9),
1699 PMU_PMEVTYPER_EL0(10),
1700 PMU_PMEVTYPER_EL0(11),
1701 PMU_PMEVTYPER_EL0(12),
1702 PMU_PMEVTYPER_EL0(13),
1703 PMU_PMEVTYPER_EL0(14),
1704 PMU_PMEVTYPER_EL0(15),
1705 PMU_PMEVTYPER_EL0(16),
1706 PMU_PMEVTYPER_EL0(17),
1707 PMU_PMEVTYPER_EL0(18),
1708 PMU_PMEVTYPER_EL0(19),
1709 PMU_PMEVTYPER_EL0(20),
1710 PMU_PMEVTYPER_EL0(21),
1711 PMU_PMEVTYPER_EL0(22),
1712 PMU_PMEVTYPER_EL0(23),
1713 PMU_PMEVTYPER_EL0(24),
1714 PMU_PMEVTYPER_EL0(25),
1715 PMU_PMEVTYPER_EL0(26),
1716 PMU_PMEVTYPER_EL0(27),
1717 PMU_PMEVTYPER_EL0(28),
1718 PMU_PMEVTYPER_EL0(29),
1719 PMU_PMEVTYPER_EL0(30),
1720 /*
1721 * PMCCFILTR_EL0 resets as unknown in 64bit mode while it resets as zero
1722 * in 32bit mode. Here we choose to reset it as zero for consistency.
1723 */
1724 { PMU_SYS_REG(SYS_PMCCFILTR_EL0), .access = access_pmu_evtyper,
1725 .reset = reset_val, .reg = PMCCFILTR_EL0, .val = 0 },
1726
1727 { SYS_DESC(SYS_DACR32_EL2), NULL, reset_unknown, DACR32_EL2 },
1728 { SYS_DESC(SYS_IFSR32_EL2), NULL, reset_unknown, IFSR32_EL2 },
1729 { SYS_DESC(SYS_FPEXC32_EL2), NULL, reset_val, FPEXC32_EL2, 0x700 },
1730 };
1731
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH 5/7] genirq/affinity: move group_cpus_evenly() into lib/
by kernel test robot
Hi Ming,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on tip/irq/core]
[also build test WARNING on next-20210813]
[cannot apply to block/for-next linux/master linus/master v5.14-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Ming-Lei/genirq-affinity-abstrac...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 04c2721d3530f0723b4c922a8fa9f26b202a20de
config: arc-randconfig-r016-20210814 (attached as .config)
compiler: arc-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/759f72186bfdd5c3ba8b53ac0749cf7ba...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ming-Lei/genirq-affinity-abstract-new-API-from-managed-irq-affinity-spread/20210814-203741
git checkout 759f72186bfdd5c3ba8b53ac0749cf7ba930012c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> lib/group_cpus.c:344:17: warning: no previous prototype for 'group_cpus_evenly' [-Wmissing-prototypes]
344 | struct cpumask *group_cpus_evenly(unsigned int numgrps)
| ^~~~~~~~~~~~~~~~~
vim +/group_cpus_evenly +344 lib/group_cpus.c
328
329 /**
330 * group_cpus_evenly - Group all CPUs evenly per NUMA/CPU locality
331 * @numgrps: number of groups
332 *
333 * Return: cpumask array if successful, NULL otherwise. And each element
334 * includes CPUs assigned to this group
335 *
336 * Try to put close CPUs from viewpoint of CPU and NUMA locality into
337 * same group, and run two-stage grouping:
338 * 1) allocate present CPUs on these groups evenly first
339 * 2) allocate other possible CPUs on these groups evenly
340 *
341 * We guarantee in the resulted grouping that all CPUs are covered, and
342 * no same CPU is assigned to different groups
343 */
> 344 struct cpumask *group_cpus_evenly(unsigned int numgrps)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month
Re: [PATCH 7/7] blk-mq: build default queue map via group_cpus_evenly()
by kernel test robot
Hi Ming,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/irq/core]
[also build test ERROR on next-20210813]
[cannot apply to block/for-next linux/master linus/master v5.14-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Ming-Lei/genirq-affinity-abstrac...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 04c2721d3530f0723b4c922a8fa9f26b202a20de
config: arc-randconfig-r043-20210814 (attached as .config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/46b1d0ed609db266f6f18e7156c4f294b...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ming-Lei/genirq-affinity-abstract-new-API-from-managed-irq-affinity-spread/20210814-203741
git checkout 46b1d0ed609db266f6f18e7156c4f294bf6c4502
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from block/blk-mq-cpumap.c:13:
include/linux/group_cpus.h: In function 'group_cpus_evenly':
>> include/linux/group_cpus.h:17:33: error: implicit declaration of function 'kcalloc'; did you mean 'kvcalloc'? [-Werror=implicit-function-declaration]
17 | struct cpumask *masks = kcalloc(numgrps, sizeof(*masks), GFP_KERNEL);
| ^~~~~~~
| kvcalloc
>> include/linux/group_cpus.h:17:33: warning: initialization of 'struct cpumask *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
In file included from include/linux/genhd.h:16,
from include/linux/blkdev.h:8,
from include/linux/blk-mq.h:5,
from block/blk-mq-cpumap.c:15:
include/linux/slab.h: At top level:
>> include/linux/slab.h:658:21: error: conflicting types for 'kcalloc'; have 'void *(size_t, size_t, gfp_t)' {aka 'void *(unsigned int, unsigned int, unsigned int)'}
658 | static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
| ^~~~~~~
In file included from block/blk-mq-cpumap.c:13:
include/linux/group_cpus.h:17:33: note: previous implicit declaration of 'kcalloc' with type 'int()'
17 | struct cpumask *masks = kcalloc(numgrps, sizeof(*masks), GFP_KERNEL);
| ^~~~~~~
cc1: some warnings being treated as errors
vim +17 include/linux/group_cpus.h
759f72186bfdd5 Ming Lei 2021-08-14 11
5cd330f089b089 Ming Lei 2021-08-14 12 #ifdef CONFIG_SMP
759f72186bfdd5 Ming Lei 2021-08-14 13 struct cpumask *group_cpus_evenly(unsigned int numgrps);
5cd330f089b089 Ming Lei 2021-08-14 14 #else
5cd330f089b089 Ming Lei 2021-08-14 15 static inline struct cpumask *group_cpus_evenly(unsigned int numgrps)
5cd330f089b089 Ming Lei 2021-08-14 16 {
5cd330f089b089 Ming Lei 2021-08-14 @17 struct cpumask *masks = kcalloc(numgrps, sizeof(*masks), GFP_KERNEL);
5cd330f089b089 Ming Lei 2021-08-14 18
5cd330f089b089 Ming Lei 2021-08-14 19 if (!masks)
5cd330f089b089 Ming Lei 2021-08-14 20 return NULL;
5cd330f089b089 Ming Lei 2021-08-14 21
5cd330f089b089 Ming Lei 2021-08-14 22 /* assign all CPUs(cpu 0) to the 1st group only */
5cd330f089b089 Ming Lei 2021-08-14 23 cpumask_copy(&masks[0], cpu_possible_mask);
5cd330f089b089 Ming Lei 2021-08-14 24 return masks;
5cd330f089b089 Ming Lei 2021-08-14 25 }
5cd330f089b089 Ming Lei 2021-08-14 26 #endif
759f72186bfdd5 Ming Lei 2021-08-14 27
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 1 month