Re: [Intel-gfx] [PATCH 16/28] drm/i915: Rework context handling in hugepages selftests
by kernel test robot
Hi Maarten,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next airlied/drm-next v5.15-rc6 next-20211021]
[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/Maarten-Lankhorst/drm-i915-Fix-i...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-randconfig-a011-20211021 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/536df9470ecdddde67095f4f40f37752d...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Maarten-Lankhorst/drm-i915-Fix-i915_request-fence-wait-semantics/20211021-183839
git checkout 536df9470ecdddde67095f4f40f37752d944c343
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
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 drivers/gpu/drm/i915/gem/i915_gem_object.c:737:
>> drivers/gpu/drm/i915/gem/selftests/huge_pages.c:25:26: error: no previous prototype for 'hugepage_ctx' [-Werror=missing-prototypes]
25 | struct i915_gem_context *hugepage_ctx(struct drm_i915_private *i915, struct file *file)
| ^~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/hugepage_ctx +25 drivers/gpu/drm/i915/gem/selftests/huge_pages.c
24
> 25 struct i915_gem_context *hugepage_ctx(struct drm_i915_private *i915, struct file *file)
26 {
27 struct i915_gem_context *ctx = live_context(i915, file);
28 struct i915_address_space *vm;
29
30 if (IS_ERR(ctx))
31 return ctx;
32
33 vm = ctx->vm;
34 if (vm)
35 WRITE_ONCE(vm->scrub_64K, true);
36
37 return ctx;
38 }
39
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
[vgupta-arc:topic-zol-remove 98/187] arch/arc/include/asm/hugepage.h:29:41: error: implicit declaration of function 'pte_mknotpresent'; did you mean 'pte_present'?
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git topic-zol-remove
head: f2709e461ce51e131e57d07a45a634f3b79b5298
commit: 3d45948c806df94ba2b6063e27208c3b4c2a7df6 [98/187] ARCv2: mm: remove unused pte accessors
config: arc-randconfig-r043-20211021 (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://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git/commit/?id...
git remote add vgupta-arc https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git
git fetch --no-tags vgupta-arc topic-zol-remove
git checkout 3d45948c806df94ba2b6063e27208c3b4c2a7df6
# 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 errors (new ones prefixed by >>):
In file included from arch/arc/include/asm/pgtable-bits-arcv2.h:145,
from arch/arc/include/asm/pgtable.h:12,
from include/linux/pgtable.h:6,
from include/linux/mm.h:33,
from include/linux/pagemap.h:8,
from mm/pgtable-generic.c:10:
mm/pgtable-generic.c: In function 'pmdp_invalidate':
>> arch/arc/include/asm/hugepage.h:29:41: error: implicit declaration of function 'pte_mknotpresent'; did you mean 'pte_present'? [-Werror=implicit-function-declaration]
29 | #define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
| ^~~~~~~~~~~~~~~~
mm/pgtable-generic.c:197:56: note: in expansion of macro 'pmd_mkinvalid'
197 | pmd_t old = pmdp_establish(vma, address, pmdp, pmd_mkinvalid(*pmdp));
| ^~~~~~~~~~~~~
>> arch/arc/include/asm/hugepage.h:29:41: error: incompatible type for argument 1 of 'pte_pmd'
29 | #define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
mm/pgtable-generic.c:197:56: note: in expansion of macro 'pmd_mkinvalid'
197 | pmd_t old = pmdp_establish(vma, address, pmdp, pmd_mkinvalid(*pmdp));
| ^~~~~~~~~~~~~
arch/arc/include/asm/hugepage.h:18:35: note: expected 'pte_t' but argument is of type 'int'
18 | static inline pmd_t pte_pmd(pte_t pte)
| ~~~~~~^~~
cc1: some warnings being treated as errors
--
In file included from arch/arc/include/asm/bug.h:30,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from mm/debug_vm_pgtable.c:13:
mm/debug_vm_pgtable.c: In function 'pmd_thp_tests':
>> arch/arc/include/asm/hugepage.h:29:41: error: implicit declaration of function 'pte_mknotpresent'; did you mean 'pte_present'? [-Werror=implicit-function-declaration]
29 | #define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
| ^~~~~~~~~~~~~~~~
include/asm-generic/bug.h:166:32: note: in definition of macro 'WARN_ON'
166 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
40 | #define p4d_val(x) (pgd_val((x).pgd))
| ^~~~~~~
include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
48 | #define pud_val(x) (p4d_val((x).p4d))
| ^~~~~~~
include/asm-generic/pgtable-nopmd.h:50:50: note: in expansion of macro 'pud_val'
50 | #define pmd_val(x) (pud_val((x).pud))
| ^~~~~~~
arch/arc/include/asm/hugepage.h:39:34: note: in expansion of macro 'pmd_val'
39 | #define pmd_trans_huge(pmd) (pmd_val(pmd) & _PAGE_HW_SZ)
| ^~~~~~~
mm/debug_vm_pgtable.c:961:18: note: in expansion of macro 'pmd_trans_huge'
961 | WARN_ON(!pmd_trans_huge(pmd_mkinvalid(pmd_mkhuge(pmd))));
| ^~~~~~~~~~~~~~
mm/debug_vm_pgtable.c:961:33: note: in expansion of macro 'pmd_mkinvalid'
961 | WARN_ON(!pmd_trans_huge(pmd_mkinvalid(pmd_mkhuge(pmd))));
| ^~~~~~~~~~~~~
>> arch/arc/include/asm/hugepage.h:29:41: error: incompatible type for argument 1 of 'pte_pmd'
29 | #define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
include/asm-generic/bug.h:166:32: note: in definition of macro 'WARN_ON'
166 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
40 | #define p4d_val(x) (pgd_val((x).pgd))
| ^~~~~~~
include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
48 | #define pud_val(x) (p4d_val((x).p4d))
| ^~~~~~~
include/asm-generic/pgtable-nopmd.h:50:50: note: in expansion of macro 'pud_val'
50 | #define pmd_val(x) (pud_val((x).pud))
| ^~~~~~~
arch/arc/include/asm/hugepage.h:39:34: note: in expansion of macro 'pmd_val'
39 | #define pmd_trans_huge(pmd) (pmd_val(pmd) & _PAGE_HW_SZ)
| ^~~~~~~
mm/debug_vm_pgtable.c:961:18: note: in expansion of macro 'pmd_trans_huge'
961 | WARN_ON(!pmd_trans_huge(pmd_mkinvalid(pmd_mkhuge(pmd))));
| ^~~~~~~~~~~~~~
mm/debug_vm_pgtable.c:961:33: note: in expansion of macro 'pmd_mkinvalid'
961 | WARN_ON(!pmd_trans_huge(pmd_mkinvalid(pmd_mkhuge(pmd))));
| ^~~~~~~~~~~~~
In file included from arch/arc/include/asm/pgtable-bits-arcv2.h:145,
from arch/arc/include/asm/pgtable.h:12,
from include/linux/pgtable.h:6,
from include/linux/mm.h:33,
from include/linux/highmem.h:8,
from mm/debug_vm_pgtable.c:14:
arch/arc/include/asm/hugepage.h:18:35: note: expected 'pte_t' but argument is of type 'int'
18 | static inline pmd_t pte_pmd(pte_t pte)
| ~~~~~~^~~
In file included from arch/arc/include/asm/bug.h:30,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from mm/debug_vm_pgtable.c:13:
>> arch/arc/include/asm/hugepage.h:29:41: error: incompatible type for argument 1 of 'pte_pmd'
29 | #define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
include/asm-generic/bug.h:166:32: note: in definition of macro 'WARN_ON'
166 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
40 | #define p4d_val(x) (pgd_val((x).pgd))
| ^~~~~~~
include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
48 | #define pud_val(x) (p4d_val((x).p4d))
| ^~~~~~~
include/asm-generic/pgtable-nopmd.h:50:50: note: in expansion of macro 'pud_val'
50 | #define pmd_val(x) (pud_val((x).pud))
| ^~~~~~~
arch/arc/include/asm/pgtable-levels.h:186:34: note: in expansion of macro 'pmd_val'
186 | #define pmd_present(x) (pmd_val(x))
| ^~~~~~~
mm/debug_vm_pgtable.c:962:18: note: in expansion of macro 'pmd_present'
962 | WARN_ON(!pmd_present(pmd_mkinvalid(pmd_mkhuge(pmd))));
| ^~~~~~~~~~~
mm/debug_vm_pgtable.c:962:30: note: in expansion of macro 'pmd_mkinvalid'
962 | WARN_ON(!pmd_present(pmd_mkinvalid(pmd_mkhuge(pmd))));
| ^~~~~~~~~~~~~
In file included from arch/arc/include/asm/pgtable-bits-arcv2.h:145,
from arch/arc/include/asm/pgtable.h:12,
from include/linux/pgtable.h:6,
from include/linux/mm.h:33,
from include/linux/highmem.h:8,
from mm/debug_vm_pgtable.c:14:
arch/arc/include/asm/hugepage.h:18:35: note: expected 'pte_t' but argument is of type 'int'
18 | static inline pmd_t pte_pmd(pte_t pte)
| ~~~~~~^~~
cc1: some warnings being treated as errors
vim +29 arch/arc/include/asm/hugepage.h
fe6c1b8611aa3a Vineet Gupta 2014-07-08 22
fe6c1b8611aa3a Vineet Gupta 2014-07-08 23 #define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 24 #define pmd_mkwrite(pmd) pte_pmd(pte_mkwrite(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 25 #define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 26 #define pmd_mkold(pmd) pte_pmd(pte_mkold(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 27 #define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 28 #define pmd_mkhuge(pmd) pte_pmd(pte_mkhuge(pmd_pte(pmd)))
86ec2da037b854 Anshuman Khandual 2020-06-03 @29 #define pmd_mkinvalid(pmd) pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 30 #define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd)))
fe6c1b8611aa3a Vineet Gupta 2014-07-08 31
:::::: The code at line 29 was first introduced by commit
:::::: 86ec2da037b85436b63afe3df43ed48fa0e52b0e mm/thp: rename pmd_mknotpresent() as pmd_mkinvalid()
:::::: TO: Anshuman Khandual <anshuman.khandual(a)arm.com>
:::::: CC: Linus Torvalds <torvalds(a)linux-foundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
Re: [Intel-gfx] [PATCH 16/28] drm/i915: Rework context handling in hugepages selftests
by kernel test robot
Hi Maarten,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next airlied/drm-next v5.15-rc6 next-20211021]
[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/Maarten-Lankhorst/drm-i915-Fix-i...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-randconfig-a016-20211021 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/536df9470ecdddde67095f4f40f37752d...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Maarten-Lankhorst/drm-i915-Fix-i915_request-fence-wait-semantics/20211021-183839
git checkout 536df9470ecdddde67095f4f40f37752d944c343
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
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/gem/i915_gem_object.c:737:
>> drivers/gpu/drm/i915/gem/selftests/huge_pages.c:25:26: warning: no previous prototype for 'hugepage_ctx' [-Wmissing-prototypes]
25 | struct i915_gem_context *hugepage_ctx(struct drm_i915_private *i915, struct file *file)
| ^~~~~~~~~~~~
vim +/hugepage_ctx +25 drivers/gpu/drm/i915/gem/selftests/huge_pages.c
24
> 25 struct i915_gem_context *hugepage_ctx(struct drm_i915_private *i915, struct file *file)
26 {
27 struct i915_gem_context *ctx = live_context(i915, file);
28 struct i915_address_space *vm;
29
30 if (IS_ERR(ctx))
31 return ctx;
32
33 vm = ctx->vm;
34 if (vm)
35 WRITE_ONCE(vm->scrub_64K, true);
36
37 return ctx;
38 }
39
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
[linux-stable-rc:linux-5.10.y 499/1334] arch/powerpc/kernel/smp.c:1380:14: error: variable 'ret' set but not used
by kernel test robot
Hi Srikar,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
head: 3a9842b42e421f6496a78a42a123639cf6d7ed31
commit: e91077cf1780108dc586cedf1d19f65b44fa3870 [499/1334] powerpc/smp: Update cpu_core_map on all PowerPc systems
config: powerpc64-randconfig-r033-20211012 (attached as .config)
compiler: powerpc64-linux-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://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-5.10.y
git checkout e91077cf1780108dc586cedf1d19f65b44fa3870
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc
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 >>):
arch/powerpc/kernel/smp.c:551:6: error: no previous prototype for 'tick_broadcast' [-Werror=missing-prototypes]
551 | void tick_broadcast(const struct cpumask *mask)
| ^~~~~~~~~~~~~~
arch/powerpc/kernel/smp.c:561:6: error: no previous prototype for 'debugger_ipi_callback' [-Werror=missing-prototypes]
561 | void debugger_ipi_callback(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~
arch/powerpc/kernel/smp.c: In function 'add_cpu_to_masks':
>> arch/powerpc/kernel/smp.c:1380:14: error: variable 'ret' set but not used [-Werror=unused-but-set-variable]
1380 | bool ret;
| ^~~
cc1: all warnings being treated as errors
vim +/ret +1380 arch/powerpc/kernel/smp.c
b8a97cb4599cda Srikar Dronamraju 2020-09-21 1373
df52f6714071c4 Oliver O'Halloran 2017-06-29 1374 static void add_cpu_to_masks(int cpu)
df52f6714071c4 Oliver O'Halloran 2017-06-29 1375 {
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1376 struct cpumask *(*submask_fn)(int) = cpu_sibling_mask;
df52f6714071c4 Oliver O'Halloran 2017-06-29 1377 int first_thread = cpu_first_thread_sibling(cpu);
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1378 int chip_id = cpu_to_chip_id(cpu);
84dbf66c634720 Srikar Dronamraju 2020-10-19 1379 cpumask_var_t mask;
bf6476152a0a08 Srikar Dronamraju 2021-04-15 @1380 bool ret;
df52f6714071c4 Oliver O'Halloran 2017-06-29 1381 int i;
df52f6714071c4 Oliver O'Halloran 2017-06-29 1382
df52f6714071c4 Oliver O'Halloran 2017-06-29 1383 /*
df52f6714071c4 Oliver O'Halloran 2017-06-29 1384 * This CPU will not be in the online mask yet so we need to manually
df52f6714071c4 Oliver O'Halloran 2017-06-29 1385 * add it to it's own thread sibling mask.
df52f6714071c4 Oliver O'Halloran 2017-06-29 1386 */
df52f6714071c4 Oliver O'Halloran 2017-06-29 1387 cpumask_set_cpu(cpu, cpu_sibling_mask(cpu));
e91077cf178010 Srikar Dronamraju 2021-08-26 1388 cpumask_set_cpu(cpu, cpu_core_mask(cpu));
df52f6714071c4 Oliver O'Halloran 2017-06-29 1389
df52f6714071c4 Oliver O'Halloran 2017-06-29 1390 for (i = first_thread; i < first_thread + threads_per_core; i++)
df52f6714071c4 Oliver O'Halloran 2017-06-29 1391 if (cpu_online(i))
df52f6714071c4 Oliver O'Halloran 2017-06-29 1392 set_cpus_related(i, cpu, cpu_sibling_mask);
df52f6714071c4 Oliver O'Halloran 2017-06-29 1393
425752c63b6f3f Gautham R. Shenoy 2018-10-11 1394 add_cpu_to_smallcore_masks(cpu);
84dbf66c634720 Srikar Dronamraju 2020-10-19 1395
84dbf66c634720 Srikar Dronamraju 2020-10-19 1396 /* In CPU-hotplug path, hence use GFP_ATOMIC */
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1397 ret = alloc_cpumask_var_node(&mask, GFP_ATOMIC, cpu_to_node(cpu));
84dbf66c634720 Srikar Dronamraju 2020-10-19 1398 update_mask_by_l2(cpu, &mask);
2a636a56d2d396 Oliver O'Halloran 2017-06-29 1399
b8a97cb4599cda Srikar Dronamraju 2020-09-21 1400 if (has_coregroup_support())
84dbf66c634720 Srikar Dronamraju 2020-10-19 1401 update_coregroup_mask(cpu, &mask);
84dbf66c634720 Srikar Dronamraju 2020-10-19 1402
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1403 if (shared_caches)
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1404 submask_fn = cpu_l2_cache_mask;
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1405
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1406 /* Update core_mask with all the CPUs that are part of submask */
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1407 or_cpumasks_related(cpu, cpu, submask_fn, cpu_core_mask);
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1408
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1409 /* Skip all CPUs already part of current CPU core mask */
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1410 cpumask_andnot(mask, cpu_online_mask, cpu_core_mask(cpu));
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1411
e91077cf178010 Srikar Dronamraju 2021-08-26 1412 /* If chip_id is -1; limit the cpu_core_mask to within DIE*/
e91077cf178010 Srikar Dronamraju 2021-08-26 1413 if (chip_id == -1)
e91077cf178010 Srikar Dronamraju 2021-08-26 1414 cpumask_and(mask, mask, cpu_cpu_mask(cpu));
e91077cf178010 Srikar Dronamraju 2021-08-26 1415
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1416 for_each_cpu(i, mask) {
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1417 if (chip_id == cpu_to_chip_id(i)) {
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1418 or_cpumasks_related(cpu, i, submask_fn, cpu_core_mask);
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1419 cpumask_andnot(mask, mask, submask_fn(i));
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1420 } else {
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1421 cpumask_andnot(mask, mask, cpu_core_mask(i));
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1422 }
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1423 }
bf6476152a0a08 Srikar Dronamraju 2021-04-15 1424
84dbf66c634720 Srikar Dronamraju 2020-10-19 1425 free_cpumask_var(mask);
a8a5356cd511db Paul Mackerras 2013-08-12 1426 }
a8a5356cd511db Paul Mackerras 2013-08-12 1427
:::::: The code at line 1380 was first introduced by commit
:::::: bf6476152a0a084038b12b9d770e32717f54a6ab powerpc/smp: Reintroduce cpu_core_mask
:::::: TO: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
Re: [RFC PATCH v2] trace: Add trace any kernel object
by kernel test robot
Hi Jeff,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on v5.15-rc6]
[also build test ERROR on next-20211021]
[cannot apply to tip/perf/core]
[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/Jeff-Xie/trace-Add-trace-any-ker...
base: 519d81956ee277b4419c723adfb154603c2565ba
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc-linux-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/215d03dac45677f4ea859542fc2c2fe52...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Jeff-Xie/trace-Add-trace-any-kernel-object/20211022-025447
git checkout 215d03dac45677f4ea859542fc2c2fe524e29fa1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc
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 >>):
kernel/trace/trace_events_trigger.c: In function 'trace_object_trigger':
>> kernel/trace/trace_events_trigger.c:1717:17: error: implicit declaration of function 'regs_get_kernel_argument'; did you mean 'regs_get_kernel_stack_nth'? [-Werror=implicit-function-declaration]
1717 | param = regs_get_kernel_argument(obj_param->regs, obj_param->param - 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| regs_get_kernel_stack_nth
cc1: all warnings being treated as errors
vim +1717 kernel/trace/trace_events_trigger.c
1713
1714 struct object_trigger_param *obj_param = data->private_data;
1715 unsigned long param;
1716
> 1717 param = regs_get_kernel_argument(obj_param->regs, obj_param->param - 1);
1718 set_trace_object((void *)param);
1719 }
1720
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
[djwong-xfs:zero-initialize-pmem-5.16 18/28] fs/xfs/libxfs/xfs_ialloc_btree.c:552:53: sparse: sparse: cast truncates bits from constant value (100000000 becomes 0)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git zero-initialize-pmem-5.16
head: 34b80c3d1203abd5fd64242ef25898c7d64166ca
commit: c0ef00d1e835bfd24399aaa069b2b608dd60b485 [18/28] xfs: check absolute maximum nlevels for each btree type
config: csky-randconfig-s032-20211008 (attached as .config)
compiler: csky-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/comm...
git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
git fetch --no-tags djwong-xfs zero-initialize-pmem-5.16
git checkout c0ef00d1e835bfd24399aaa069b2b608dd60b485
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=csky SHELL=/bin/bash fs/xfs/ mm/
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 >>)
fs/xfs/libxfs/xfs_ialloc_btree.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, include/linux/list.h, ...):
arch/csky/include/asm/bitops.h:77:9: sparse: sparse: preprocessor token __clear_bit redefined
fs/xfs/libxfs/xfs_ialloc_btree.c: note: in included file (through arch/csky/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, ...):
include/asm-generic/bitops/non-atomic.h:34:9: sparse: this was the original definition
>> fs/xfs/libxfs/xfs_ialloc_btree.c:552:53: sparse: sparse: cast truncates bits from constant value (100000000 becomes 0)
vim +552 fs/xfs/libxfs/xfs_ialloc_btree.c
543
544 unsigned int
545 xfs_inobt_absolute_maxlevels(void)
546 {
547 unsigned int minrecs[2];
548
549 xfs_btree_absolute_minrecs(minrecs, 0, sizeof(xfs_inobt_rec_t),
550 sizeof(xfs_inobt_key_t) + sizeof(xfs_inobt_ptr_t));
551
> 552 return xfs_btree_compute_maxlevels(minrecs, XFS_MAX_AG_INODES);
553 }
554
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
[asahilinux:pmgr/dev 1/17] drivers/mfd/syscon.c:147:1-8: WARNING: invalid free of devm_ allocated data
by kernel test robot
tree: https://github.com/AsahiLinux/linux pmgr/dev
head: 5e95e49bc0542356638eb24fb8655b76d3a37858
commit: f04927fcc3313ad4efdf030d2f9a3a62ba5a78b0 [1/17] mfd/syscon: Use of_iomap() instead of ioremap()
config: i386-randconfig-c001-20211001 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
cocci warnings: (new ones prefixed by >>)
>> drivers/mfd/syscon.c:147:1-8: WARNING: invalid free of devm_ allocated data
vim +147 drivers/mfd/syscon.c
87d687301f3807 Dong Aisheng 2012-09-05 42
39233b7c611248 Paul Cercueil 2019-07-24 43 static struct syscon *of_syscon_register(struct device_node *np, bool check_clk)
87d687301f3807 Dong Aisheng 2012-09-05 44 {
a00406b71c5f08 Fabrice Gasnier 2018-12-12 45 struct clk *clk;
bdb0066df96e74 Pankaj Dubey 2014-09-30 46 struct syscon *syscon;
bdb0066df96e74 Pankaj Dubey 2014-09-30 47 struct regmap *regmap;
bdb0066df96e74 Pankaj Dubey 2014-09-30 48 void __iomem *base;
db2fb60cd35d2d Damien Riegel 2015-11-30 49 u32 reg_io_width;
bdb0066df96e74 Pankaj Dubey 2014-09-30 50 int ret;
bdb0066df96e74 Pankaj Dubey 2014-09-30 51 struct regmap_config syscon_config = syscon_regmap_config;
ca668f0edfae65 Philipp Zabel 2016-01-29 52 struct resource res;
bdb0066df96e74 Pankaj Dubey 2014-09-30 53
bdb0066df96e74 Pankaj Dubey 2014-09-30 54 syscon = kzalloc(sizeof(*syscon), GFP_KERNEL);
bdb0066df96e74 Pankaj Dubey 2014-09-30 55 if (!syscon)
bdb0066df96e74 Pankaj Dubey 2014-09-30 56 return ERR_PTR(-ENOMEM);
bdb0066df96e74 Pankaj Dubey 2014-09-30 57
ca668f0edfae65 Philipp Zabel 2016-01-29 58 if (of_address_to_resource(np, 0, &res)) {
ca668f0edfae65 Philipp Zabel 2016-01-29 59 ret = -ENOMEM;
ca668f0edfae65 Philipp Zabel 2016-01-29 60 goto err_map;
ca668f0edfae65 Philipp Zabel 2016-01-29 61 }
ca668f0edfae65 Philipp Zabel 2016-01-29 62
f04927fcc3313a Hector Martin 2021-08-23 63 base = of_iomap(np, 0);
bdb0066df96e74 Pankaj Dubey 2014-09-30 64 if (!base) {
bdb0066df96e74 Pankaj Dubey 2014-09-30 65 ret = -ENOMEM;
bdb0066df96e74 Pankaj Dubey 2014-09-30 66 goto err_map;
bdb0066df96e74 Pankaj Dubey 2014-09-30 67 }
bdb0066df96e74 Pankaj Dubey 2014-09-30 68
bdb0066df96e74 Pankaj Dubey 2014-09-30 69 /* Parse the device's DT node for an endianness specification */
bdb0066df96e74 Pankaj Dubey 2014-09-30 70 if (of_property_read_bool(np, "big-endian"))
bdb0066df96e74 Pankaj Dubey 2014-09-30 71 syscon_config.val_format_endian = REGMAP_ENDIAN_BIG;
bdb0066df96e74 Pankaj Dubey 2014-09-30 72 else if (of_property_read_bool(np, "little-endian"))
bdb0066df96e74 Pankaj Dubey 2014-09-30 73 syscon_config.val_format_endian = REGMAP_ENDIAN_LITTLE;
d29ccdb3f0e5dc Paul Burton 2016-10-14 74 else if (of_property_read_bool(np, "native-endian"))
d29ccdb3f0e5dc Paul Burton 2016-10-14 75 syscon_config.val_format_endian = REGMAP_ENDIAN_NATIVE;
bdb0066df96e74 Pankaj Dubey 2014-09-30 76
db2fb60cd35d2d Damien Riegel 2015-11-30 77 /*
db2fb60cd35d2d Damien Riegel 2015-11-30 78 * search for reg-io-width property in DT. If it is not provided,
db2fb60cd35d2d Damien Riegel 2015-11-30 79 * default to 4 bytes. regmap_init_mmio will return an error if values
db2fb60cd35d2d Damien Riegel 2015-11-30 80 * are invalid so there is no need to check them here.
db2fb60cd35d2d Damien Riegel 2015-11-30 81 */
db2fb60cd35d2d Damien Riegel 2015-11-30 82 ret = of_property_read_u32(np, "reg-io-width", ®_io_width);
db2fb60cd35d2d Damien Riegel 2015-11-30 83 if (ret)
db2fb60cd35d2d Damien Riegel 2015-11-30 84 reg_io_width = 4;
db2fb60cd35d2d Damien Riegel 2015-11-30 85
3bafc09e779710 Baolin Wang 2017-12-25 86 ret = of_hwspin_lock_get_id(np, 0);
3bafc09e779710 Baolin Wang 2017-12-25 87 if (ret > 0 || (IS_ENABLED(CONFIG_HWSPINLOCK) && ret == 0)) {
3bafc09e779710 Baolin Wang 2017-12-25 88 syscon_config.use_hwlock = true;
3bafc09e779710 Baolin Wang 2017-12-25 89 syscon_config.hwlock_id = ret;
3bafc09e779710 Baolin Wang 2017-12-25 90 syscon_config.hwlock_mode = HWLOCK_IRQSTATE;
3bafc09e779710 Baolin Wang 2017-12-25 91 } else if (ret < 0) {
3bafc09e779710 Baolin Wang 2017-12-25 92 switch (ret) {
3bafc09e779710 Baolin Wang 2017-12-25 93 case -ENOENT:
3bafc09e779710 Baolin Wang 2017-12-25 94 /* Ignore missing hwlock, it's optional. */
3bafc09e779710 Baolin Wang 2017-12-25 95 break;
3bafc09e779710 Baolin Wang 2017-12-25 96 default:
3bafc09e779710 Baolin Wang 2017-12-25 97 pr_err("Failed to retrieve valid hwlock: %d\n", ret);
df561f6688fef7 Gustavo A. R. Silva 2020-08-23 98 fallthrough;
3bafc09e779710 Baolin Wang 2017-12-25 99 case -EPROBE_DEFER:
3bafc09e779710 Baolin Wang 2017-12-25 100 goto err_regmap;
3bafc09e779710 Baolin Wang 2017-12-25 101 }
3bafc09e779710 Baolin Wang 2017-12-25 102 }
3bafc09e779710 Baolin Wang 2017-12-25 103
e15d7f2b81d2e7 Suman Anna 2020-07-27 104 syscon_config.name = kasprintf(GFP_KERNEL, "%pOFn@%llx", np,
e15d7f2b81d2e7 Suman Anna 2020-07-27 105 (u64)res.start);
db2fb60cd35d2d Damien Riegel 2015-11-30 106 syscon_config.reg_stride = reg_io_width;
db2fb60cd35d2d Damien Riegel 2015-11-30 107 syscon_config.val_bits = reg_io_width * 8;
ca668f0edfae65 Philipp Zabel 2016-01-29 108 syscon_config.max_register = resource_size(&res) - reg_io_width;
db2fb60cd35d2d Damien Riegel 2015-11-30 109
bdb0066df96e74 Pankaj Dubey 2014-09-30 110 regmap = regmap_init_mmio(NULL, base, &syscon_config);
56a1188159cb2b Limeng 2021-04-07 111 kfree(syscon_config.name);
bdb0066df96e74 Pankaj Dubey 2014-09-30 112 if (IS_ERR(regmap)) {
bdb0066df96e74 Pankaj Dubey 2014-09-30 113 pr_err("regmap init failed\n");
bdb0066df96e74 Pankaj Dubey 2014-09-30 114 ret = PTR_ERR(regmap);
bdb0066df96e74 Pankaj Dubey 2014-09-30 115 goto err_regmap;
bdb0066df96e74 Pankaj Dubey 2014-09-30 116 }
bdb0066df96e74 Pankaj Dubey 2014-09-30 117
39233b7c611248 Paul Cercueil 2019-07-24 118 if (check_clk) {
a00406b71c5f08 Fabrice Gasnier 2018-12-12 119 clk = of_clk_get(np, 0);
a00406b71c5f08 Fabrice Gasnier 2018-12-12 120 if (IS_ERR(clk)) {
a00406b71c5f08 Fabrice Gasnier 2018-12-12 121 ret = PTR_ERR(clk);
a00406b71c5f08 Fabrice Gasnier 2018-12-12 122 /* clock is optional */
a00406b71c5f08 Fabrice Gasnier 2018-12-12 123 if (ret != -ENOENT)
a00406b71c5f08 Fabrice Gasnier 2018-12-12 124 goto err_clk;
a00406b71c5f08 Fabrice Gasnier 2018-12-12 125 } else {
a00406b71c5f08 Fabrice Gasnier 2018-12-12 126 ret = regmap_mmio_attach_clk(regmap, clk);
a00406b71c5f08 Fabrice Gasnier 2018-12-12 127 if (ret)
a00406b71c5f08 Fabrice Gasnier 2018-12-12 128 goto err_attach;
a00406b71c5f08 Fabrice Gasnier 2018-12-12 129 }
39233b7c611248 Paul Cercueil 2019-07-24 130 }
a00406b71c5f08 Fabrice Gasnier 2018-12-12 131
bdb0066df96e74 Pankaj Dubey 2014-09-30 132 syscon->regmap = regmap;
bdb0066df96e74 Pankaj Dubey 2014-09-30 133 syscon->np = np;
bdb0066df96e74 Pankaj Dubey 2014-09-30 134
bdb0066df96e74 Pankaj Dubey 2014-09-30 135 spin_lock(&syscon_list_slock);
bdb0066df96e74 Pankaj Dubey 2014-09-30 136 list_add_tail(&syscon->list, &syscon_list);
bdb0066df96e74 Pankaj Dubey 2014-09-30 137 spin_unlock(&syscon_list_slock);
87d687301f3807 Dong Aisheng 2012-09-05 138
bdb0066df96e74 Pankaj Dubey 2014-09-30 139 return syscon;
bdb0066df96e74 Pankaj Dubey 2014-09-30 140
a00406b71c5f08 Fabrice Gasnier 2018-12-12 141 err_attach:
a00406b71c5f08 Fabrice Gasnier 2018-12-12 142 if (!IS_ERR(clk))
a00406b71c5f08 Fabrice Gasnier 2018-12-12 143 clk_put(clk);
a00406b71c5f08 Fabrice Gasnier 2018-12-12 144 err_clk:
a00406b71c5f08 Fabrice Gasnier 2018-12-12 145 regmap_exit(regmap);
bdb0066df96e74 Pankaj Dubey 2014-09-30 146 err_regmap:
bdb0066df96e74 Pankaj Dubey 2014-09-30 @147 iounmap(base);
bdb0066df96e74 Pankaj Dubey 2014-09-30 148 err_map:
bdb0066df96e74 Pankaj Dubey 2014-09-30 149 kfree(syscon);
bdb0066df96e74 Pankaj Dubey 2014-09-30 150 return ERR_PTR(ret);
87d687301f3807 Dong Aisheng 2012-09-05 151 }
87d687301f3807 Dong Aisheng 2012-09-05 152
:::::: The code at line 147 was first introduced by commit
:::::: bdb0066df96e74a4002125467ebe459feff1ebef mfd: syscon: Decouple syscon interface from platform devices
:::::: TO: Pankaj Dubey <pankaj.dubey(a)samsung.com>
:::::: CC: Lee Jones <lee.jones(a)linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
[vgupta-arc:topic-zol-remove 70/187] arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git topic-zol-remove
head: f2709e461ce51e131e57d07a45a634f3b79b5298
commit: 0ce72856d001ca4a343064d9d909d454aba4a597 [70/187] ARCv3: 64-bit io accesses
config: arc-randconfig-s032-20211019 (attached as .config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git/commit/?id...
git remote add vgupta-arc https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git
git fetch --no-tags vgupta-arc topic-zol-remove
git checkout 0ce72856d001ca4a343064d9d909d454aba4a597
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arc
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/char/ipmi/ipmi_si_mem_io.c: note: in included file (through include/linux/io.h):
>> arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:67:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:67:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:52:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:52:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:52:42: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:67:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:67:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
--
drivers/char/ipmi/ipmi_si_port_io.c: note: in included file (through include/linux/io.h):
>> arch/arc/include/asm/io.h:52:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:52:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:52:42: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:67:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:67:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:67:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:67:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:164:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:164:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:164:43: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
--
drivers/mtd/maps/map_funcs.c: note: in included file (through include/linux/io.h, include/linux/mtd/map.h):
>> arch/arc/include/asm/io.h:52:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:52:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:52:42: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:67:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:67:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:164:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:164:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:164:43: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
--
drivers/mtd/maps/physmap-gemini.c: note: in included file (through include/linux/io.h, include/linux/mtd/map.h):
>> arch/arc/include/asm/io.h:52:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:52:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:52:42: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:67:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:67:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:67:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:164:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:164:43: sparse: expected unsigned short const volatile [usertype] *ptr
arch/arc/include/asm/io.h:164:43: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
--
drivers/mtd/maps/physmap-versatile.c: note: in included file (through include/linux/io.h):
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:82:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:82:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:82:43: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:176:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:176:43: sparse: expected unsigned int const volatile [usertype] *ptr
arch/arc/include/asm/io.h:176:43: sparse: got void volatile [noderef] __iomem *addr
--
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c: note: in included file (through include/linux/io.h):
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c:253:9: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:52:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:52:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:52:42: sparse: got void const volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:152:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:152:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:152:42: sparse: got void volatile [noderef] __iomem *addr
>> arch/arc/include/asm/io.h:52:42: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const volatile [usertype] *ptr @@ got void const volatile [noderef] __iomem *addr @@
arch/arc/include/asm/io.h:52:42: sparse: expected unsigned char const volatile [usertype] *ptr
arch/arc/include/asm/io.h:52:42: sparse: got void const volatile [noderef] __iomem *addr
vim +67 arch/arc/include/asm/io.h
48
49 #define __raw_readb __raw_readb
50 static inline u8 __raw_readb(const volatile void __iomem *addr)
51 {
> 52 const volatile u8 __force *ptr = addr;
53 u8 b;
54
55 __asm__ __volatile__(
56 " ldb%U1 %0, %1 \n"
57 : "=r" (b)
58 : "m" (*ptr)
59 : "memory");
60
61 return b;
62 }
63
64 #define __raw_readw __raw_readw
65 static inline u16 __raw_readw(const volatile void __iomem *addr)
66 {
> 67 const volatile u16 __force *ptr = addr;
68 u16 s;
69
70 __asm__ __volatile__(
71 " ldh%U1 %0, %1 \n"
72 : "=r" (s)
73 : "m" (*ptr)
74 : "memory");
75
76 return s;
77 }
78
79 #define __raw_readl __raw_readl
80 static inline u32 __raw_readl(const volatile void __iomem *addr)
81 {
> 82 const volatile u32 __force *ptr = addr;
83 u32 w;
84
85 __asm__ __volatile__(
86 " ld%U1 %0, %1 \n"
87 : "=r" (w)
88 : "m" (*ptr)
89 : "memory");
90
91 return w;
92 }
93
94 #ifdef CONFIG_64BIT
95
96 #define __raw_readq __raw_readq
97 static inline u32 __raw_readq(const volatile void __iomem *addr)
98 {
99 const volatile u64 __force *ptr = addr;
100 u64 q;
101
102 __asm__ __volatile__(
103 " ldl%U1 %0, %1 \n"
104 : "=r" (q)
105 : "m" (*ptr)
106 : "memory");
107
108 return q;
109 }
110
111 #endif
112
113 /*
114 * {read,write}s{b,w,l}() repeatedly access the same IO address in
115 * native endianness in 8-, 16-, 32-bit chunks {into,from} memory,
116 * @count times
117 */
118 #define __raw_readsx(t,f) \
119 static inline void __raw_reads##f(const volatile void __iomem *addr, \
120 void *ptr, unsigned int count) \
121 { \
122 bool is_aligned = ((unsigned long)ptr % ((t) / 8)) == 0; \
123 u##t *buf = ptr; \
124 \
125 if (!count) \
126 return; \
127 \
128 /* Some ARC CPU's don't support unaligned accesses */ \
129 if (is_aligned) { \
130 do { \
131 u##t x = __raw_read##f(addr); \
132 *buf++ = x; \
133 } while (--count); \
134 } else { \
135 do { \
136 u##t x = __raw_read##f(addr); \
137 put_unaligned(x, buf++); \
138 } while (--count); \
139 } \
140 }
141
142 #define __raw_readsb __raw_readsb
143 __raw_readsx(8, b)
144 #define __raw_readsw __raw_readsw
145 __raw_readsx(16, w)
146 #define __raw_readsl __raw_readsl
147 __raw_readsx(32, l)
148
149 #define __raw_writeb __raw_writeb
150 static inline void __raw_writeb(u8 b, volatile void __iomem *addr)
151 {
> 152 const volatile u8 __force *ptr = addr;
153
154 __asm__ __volatile__(
155 " stb%U1 %0, %1 \n"
156 :
157 : "r" (b), "m" (*ptr)
158 : "memory");
159 }
160
161 #define __raw_writew __raw_writew
162 static inline void __raw_writew(u16 s, volatile void __iomem *addr)
163 {
> 164 const volatile u16 __force *ptr = addr;
165
166 __asm__ __volatile__(
167 " stw%U1 %0, %1 \n"
168 :
169 : "r" (s), "m" (*ptr)
170 : "memory");
171 }
172
173 #define __raw_writel __raw_writel
174 static inline void __raw_writel(u32 w, volatile void __iomem *addr)
175 {
> 176 const volatile u32 __force *ptr = addr;
177
178 __asm__ __volatile__(
179 " st%U1 %0, %1 \n"
180 :
181 : "r" (w), "m" (*ptr)
182 : "memory");
183
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months
[frank-w-bpi-r2-4.14:5.15-bpi-r2-pro-drm2 19/88] drivers/net/wireless/mediatek/mt76/eeprom.c:48:24: sparse: sparse: Using plain integer as NULL pointer
by kernel test robot
tree: https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro-drm2
head: 0ab1ef3f4d5eae2229584acdde09e8ea708fc052
commit: 1134cbecda5b146283bf738fc325a90013af97d6 [19/88] mt76: allow loading eeprom from file
config: i386-randconfig-s001-20211015 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/frank-w/BPI-R2-4.14/commit/1134cbecda5b146283bf738fc32...
git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.15-bpi-r2-pro-drm2
git checkout 1134cbecda5b146283bf738fc325a90013af97d6
# 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/net/wireless/mediatek/mt76/
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/net/wireless/mediatek/mt76/eeprom.c:48:24: sparse: sparse: Using plain integer as NULL pointer
vim +48 drivers/net/wireless/mediatek/mt76/eeprom.c
11
12 static int
13 mt76_get_eeprom_file(struct mt76_dev *dev, int len)
14 {
15 char path[64]="";
16 struct file *fp;
17 loff_t pos=0;
18 int ret;
19 struct inode *inode = NULL;
20 loff_t size;
21
22 ret = snprintf(path,sizeof(path),"/lib/firmware/mediatek/%s_rf.bin",dev->dev->driver->name);
23 if(ret<0)
24 return -EINVAL;
25 dev_info(dev->dev,"Load eeprom: %s\n",path);
26 fp = filp_open(path, O_RDONLY, 0);
27 if (IS_ERR(fp)) {
28 dev_info(dev->dev,"Open eeprom file failed: %s\n",path);
29 return -ENOENT;
30 }
31
32 inode = file_inode(fp);
33 if ((!S_ISREG(inode->i_mode) && !S_ISBLK(inode->i_mode))) {
34 printk(KERN_ALERT "invalid file type: %s\n", path);
35 return -ENOENT;
36 }
37 size = i_size_read(inode->i_mapping->host);
38 if (size < 0)
39 {
40 printk(KERN_ALERT "failed getting size of %s size:%lld \n",path,size);
41 return -ENOENT;
42 }
43 ret = kernel_read(fp, dev->eeprom.data, len, &pos);
44 if(ret < size){
45 dev_info(dev->dev,"Load eeprom ERR, count %d byte (len:%d)\n",ret,len);
46 return -ENOENT;
47 }
> 48 filp_close(fp, 0);
49 dev_info(dev->dev,"Load eeprom OK, count %d byte\n",ret);
50
51 return 0;
52 }
53
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
11 months