Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
by kernel test robot
Hi Konstantin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc1 next-20201030]
[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/Konstantin-Komarov/NTFS-read-wri...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 07e0887302450a62f51dba72df6afb5fabb23d1c
config: h8300-randconfig-s031-20201030 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.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.3-68-g49c98aa3-dirty
# https://github.com/0day-ci/linux/commit/7c34316b6c7f9af2046f8343d3b010c37...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201030-230756
git checkout 7c34316b6c7f9af2046f8343d3b010c37340ef1d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=h8300
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/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast to restricted __le32
>> fs/ntfs3/frecord.c:569:33: sparse: sparse: cast from restricted __le64
vim +569 fs/ntfs3/frecord.c
cbd4257e6d85149 Konstantin Komarov 2020-10-30 532
cbd4257e6d85149 Konstantin Komarov 2020-10-30 533 /*
cbd4257e6d85149 Konstantin Komarov 2020-10-30 534 * random write access to sparsed or compressed file may result to
cbd4257e6d85149 Konstantin Komarov 2020-10-30 535 * not optimized packed runs.
cbd4257e6d85149 Konstantin Komarov 2020-10-30 536 * Here it is the place to optimize it
cbd4257e6d85149 Konstantin Komarov 2020-10-30 537 */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 538 static int ni_repack(struct ntfs_inode *ni)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 539 {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 540 int err = 0;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 541 struct ntfs_sb_info *sbi = ni->mi.sbi;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 542 struct mft_inode *mi, *mi_p = NULL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 543 struct ATTRIB *attr = NULL, *attr_p;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 544 struct ATTR_LIST_ENTRY *le = NULL, *le_p;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 545 CLST alloc = 0;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 546 u8 cluster_bits = sbi->cluster_bits;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 547 CLST svcn, evcn = 0, svcn_p, evcn_p, next_svcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 548 u32 roff, rs = sbi->record_size;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 549 struct runs_tree run;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 550
cbd4257e6d85149 Konstantin Komarov 2020-10-30 551 run_init(&run);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 552
cbd4257e6d85149 Konstantin Komarov 2020-10-30 553 while ((attr = ni_enum_attr_ex(ni, attr, &le))) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 554 if (!attr->non_res)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 555 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 556
cbd4257e6d85149 Konstantin Komarov 2020-10-30 557 if (ni_load_mi(ni, le, &mi)) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 558 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 559 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 560 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 561
cbd4257e6d85149 Konstantin Komarov 2020-10-30 562 svcn = le64_to_cpu(attr->nres.svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 563 if (svcn != le64_to_cpu(le->vcn)) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 564 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 565 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 566 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 567
cbd4257e6d85149 Konstantin Komarov 2020-10-30 568 if (!svcn) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 @569 alloc = le32_to_cpu(attr->nres.alloc_size) >>
cbd4257e6d85149 Konstantin Komarov 2020-10-30 570 cluster_bits;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 571 mi_p = NULL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 572 } else if (svcn != evcn + 1) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 573 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 574 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 575 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 576
cbd4257e6d85149 Konstantin Komarov 2020-10-30 577 evcn = le64_to_cpu(attr->nres.evcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 578
cbd4257e6d85149 Konstantin Komarov 2020-10-30 579 if (svcn > evcn + 1) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 580 err = -EINVAL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 581 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 582 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 583
cbd4257e6d85149 Konstantin Komarov 2020-10-30 584 if (!mi_p) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 585 /* do not try if too little free space */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 586 if (le32_to_cpu(mi->mrec->used) + 8 >= rs)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 587 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 588
cbd4257e6d85149 Konstantin Komarov 2020-10-30 589 /* do not try if last attribute segment */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 590 if (evcn + 1 == alloc)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 591 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 592 run_close(&run);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 593 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 594
cbd4257e6d85149 Konstantin Komarov 2020-10-30 595 roff = le16_to_cpu(attr->nres.run_off);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 596 err = run_unpack(&run, sbi, ni->mi.rno, svcn, evcn, svcn,
cbd4257e6d85149 Konstantin Komarov 2020-10-30 597 Add2Ptr(attr, roff),
cbd4257e6d85149 Konstantin Komarov 2020-10-30 598 le32_to_cpu(attr->size) - roff);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 599 if (err < 0)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 600 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 601
cbd4257e6d85149 Konstantin Komarov 2020-10-30 602 if (!mi_p) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 603 mi_p = mi;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 604 attr_p = attr;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 605 svcn_p = svcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 606 evcn_p = evcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 607 le_p = le;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 608 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 609 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 610
cbd4257e6d85149 Konstantin Komarov 2020-10-30 611 /*
cbd4257e6d85149 Konstantin Komarov 2020-10-30 612 * run contains data from two records: mi_p and mi
cbd4257e6d85149 Konstantin Komarov 2020-10-30 613 * try to pack in one
cbd4257e6d85149 Konstantin Komarov 2020-10-30 614 */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 615 err = mi_pack_runs(mi_p, attr_p, &run, evcn + 1 - svcn_p);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 616 if (err)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 617 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 618
cbd4257e6d85149 Konstantin Komarov 2020-10-30 619 next_svcn = le64_to_cpu(attr_p->nres.evcn) + 1;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 620
cbd4257e6d85149 Konstantin Komarov 2020-10-30 621 if (next_svcn >= evcn + 1) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 622 /* we can remove this attribute segment */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 623 al_remove_le(ni, le);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 624 mi_remove_attr(mi, attr);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 625 le = le_p;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 626 continue;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 627 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 628
cbd4257e6d85149 Konstantin Komarov 2020-10-30 629 attr->nres.svcn = le->vcn = cpu_to_le64(next_svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 630 mi->dirty = true;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 631 ni->attr_list.dirty = true;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 632
cbd4257e6d85149 Konstantin Komarov 2020-10-30 633 if (evcn + 1 == alloc) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 634 err = mi_pack_runs(mi, attr, &run,
cbd4257e6d85149 Konstantin Komarov 2020-10-30 635 evcn + 1 - next_svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 636 if (err)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 637 break;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 638 mi_p = NULL;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 639 } else {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 640 mi_p = mi;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 641 attr_p = attr;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 642 svcn_p = next_svcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 643 evcn_p = evcn;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 644 le_p = le;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 645 run_truncate_head(&run, next_svcn);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 646 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 647 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 648
cbd4257e6d85149 Konstantin Komarov 2020-10-30 649 if (err) {
cbd4257e6d85149 Konstantin Komarov 2020-10-30 650 ntfs_inode_warn(&ni->vfs_inode, "there is a problem");
cbd4257e6d85149 Konstantin Komarov 2020-10-30 651 ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 652
cbd4257e6d85149 Konstantin Komarov 2020-10-30 653 /* Pack loaded but not packed runs */
cbd4257e6d85149 Konstantin Komarov 2020-10-30 654 if (mi_p)
cbd4257e6d85149 Konstantin Komarov 2020-10-30 655 mi_pack_runs(mi_p, attr_p, &run, evcn_p + 1 - svcn_p);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 656 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 657
cbd4257e6d85149 Konstantin Komarov 2020-10-30 658 run_close(&run);
cbd4257e6d85149 Konstantin Komarov 2020-10-30 659 return err;
cbd4257e6d85149 Konstantin Komarov 2020-10-30 660 }
cbd4257e6d85149 Konstantin Komarov 2020-10-30 661
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months
Re: [Intel-gfx] [PATCH 09/10] drm/i915: Clean up SSKPD/MLTR defines
by kernel test robot
Hi Ville,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on drm-tip/drm-tip v5.10-rc1 next-20201030]
[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/Ville-Syrjala/drm-i915-ilk-wm-cl...
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-r002-20201030 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/85b64f8c6a46ef8a0a7f4969c508d4272...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ville-Syrjala/drm-i915-ilk-wm-cleanups/20201031-005212
git checkout 85b64f8c6a46ef8a0a7f4969c508d4272a940a83
# save the attached .config to linux build tree
make W=1 ARCH=i386
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 >>):
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/bits.h:35:22: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \
| ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:50:19: note: in expansion of macro '__bf_shf'
50 | ~((_mask) >> __bf_shf(_mask)) & (_val) : 0, \
| ^~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/bits.h:36:11: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \
| ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:50:19: note: in expansion of macro '__bf_shf'
50 | ~((_mask) >> __bf_shf(_mask)) & (_val) : 0, \
| ^~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:50:16: warning: right shift count is negative [-Wshift-count-negative]
50 | ~((_mask) >> __bf_shf(_mask)) & (_val) : 0, \
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:49:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
49 | BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \
| ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:35:22: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:52:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
52 | BUILD_BUG_ON_MSG((_mask) > (typeof(_reg))~0ull, \
| ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/bits.h:36:11: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:52:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
52 | BUILD_BUG_ON_MSG((_mask) > (typeof(_reg))~0ull, \
| ^~~~~~~~~~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
--
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
21 | BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
| ^~~~~~~~~~~~
include/linux/bitfield.h:54:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
54 | __BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:55:21: note: in expansion of macro '__bf_shf'
55 | (1ULL << __bf_shf(_mask))); \
| ^~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/bits.h:36:11: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
21 | BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
| ^~~~~~~~~~~~
include/linux/bitfield.h:54:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
54 | __BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:55:21: note: in expansion of macro '__bf_shf'
55 | (1ULL << __bf_shf(_mask))); \
| ^~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:55:18: warning: left shift count is negative [-Wshift-count-negative]
55 | (1ULL << __bf_shf(_mask))); \
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
21 | BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
| ^~~~~~~~~~~~
include/linux/bitfield.h:54:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
54 | __BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:35:22: warning: left shift count >= width of type [-Wshift-count-overflow]
35 | (((~UL(0)) - (UL(1) << (l)) + 1) & \
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
21 | BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
| ^~~~~~~~~~~~
include/linux/bitfield.h:54:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
54 | __BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/bitfield.h:108:3: note: in expansion of macro '__BF_FIELD_CHECK'
108 | __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:184:56: note: in expansion of macro 'FIELD_GET'
184 | #define _REG_FIELD_GET(__type, __mask, __val) ((__type)FIELD_GET(__mask, __val))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:208:40: note: in expansion of macro '_REG_FIELD_GET'
208 | #define REG_FIELD_GET64(__mask, __val) _REG_FIELD_GET(u64, __mask, __val)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:11: note: in expansion of macro 'REG_FIELD_GET64'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~
include/linux/bits.h:38:31: note: in expansion of macro '__GENMASK'
38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:133:12: note: in expansion of macro 'GENMASK'
133 | ((__type)(GENMASK(__high, __low) + \
| ^~~~~~~
drivers/gpu/drm/i915/i915_reg.h:160:38: note: in expansion of macro '_REG_GENMASK'
160 | #define REG_GENMASK64(__high, __low) _REG_GENMASK(u64, __high, __low)
| ^~~~~~~~~~~~
drivers/gpu/drm/i915/i915_reg.h:3822:34: note: in expansion of macro 'REG_GENMASK64'
3822 | #define SSKPD_NEW_WM0_MASK_HSW REG_GENMASK64(63, 56)
| ^~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_pm.c:2936:27: note: in expansion of macro 'SSKPD_NEW_WM0_MASK_HSW'
2936 | wm[0] = REG_FIELD_GET64(SSKPD_NEW_WM0_MASK_HSW, sskpd);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/bits.h:36:11: warning: right shift count is negative [-Wshift-count-negative]
36 | (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
| ^~
include/linux/compiler_types.h:299:9: note: in definition of macro '__compiletime_assert'
299 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:319:2: note: in expansion of macro '_compiletime_assert'
319 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
21 | BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
| ^~~~~~~~~~~~
include/linux/bitfield.h:54:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
54 | __BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
..
vim +/__compiletime_assert_615 +319 include/linux/compiler_types.h
eb5c2d4b45e3d2d Will Deacon 2020-07-21 305
eb5c2d4b45e3d2d Will Deacon 2020-07-21 306 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2d Will Deacon 2020-07-21 307 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2d Will Deacon 2020-07-21 308
eb5c2d4b45e3d2d Will Deacon 2020-07-21 309 /**
eb5c2d4b45e3d2d Will Deacon 2020-07-21 310 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2d Will Deacon 2020-07-21 311 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2d Will Deacon 2020-07-21 312 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2d Will Deacon 2020-07-21 313 *
eb5c2d4b45e3d2d Will Deacon 2020-07-21 314 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2d Will Deacon 2020-07-21 315 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2d Will Deacon 2020-07-21 316 * compiler has support to do so.
eb5c2d4b45e3d2d Will Deacon 2020-07-21 317 */
eb5c2d4b45e3d2d Will Deacon 2020-07-21 318 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2d Will Deacon 2020-07-21 @319 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2d Will Deacon 2020-07-21 320
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months
[xlnx:xlnx_rebase_v5.4 903/1683] drivers/usb/dwc3/core.h:1419: multiple definition of `dwc3_simple_wakeup_capable'; drivers/usb/dwc3/core.o:drivers/usb/dwc3/core.h:1419: first defined here
by kernel test robot
Hi Michal,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head: 87d2d58e2137748748d96a630fd93eb0e2d81123
commit: 6d0468b837bc2b3cce625f59904d137e63637b5d [903/1683] usb: dwc3: Add support for clock disabling during suspend
config: x86_64-randconfig-a001-20201030 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/Xilinx/linux-xlnx/commit/6d0468b837bc2b3cce625f59904d1...
git remote add xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.4
git checkout 6d0468b837bc2b3cce625f59904d137e63637b5d
# 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 >>):
ld: drivers/usb/dwc3/gadget.o: in function `dwc3_simple_wakeup_capable':
>> drivers/usb/dwc3/core.h:1419: multiple definition of `dwc3_simple_wakeup_capable'; drivers/usb/dwc3/core.o:drivers/usb/dwc3/core.h:1419: first defined here
ld: drivers/usb/dwc3/ep0.o: in function `dwc3_simple_wakeup_capable':
>> drivers/usb/dwc3/core.h:1419: multiple definition of `dwc3_simple_wakeup_capable'; drivers/usb/dwc3/core.o:drivers/usb/dwc3/core.h:1419: first defined here
ld: drivers/usb/dwc3/debugfs.o: in function `dwc3_simple_wakeup_capable':
>> drivers/usb/dwc3/core.h:1419: multiple definition of `dwc3_simple_wakeup_capable'; drivers/usb/dwc3/core.o:drivers/usb/dwc3/core.h:1419: first defined here
vim +1419 drivers/usb/dwc3/core.h
1414
1415 #if IS_ENABLED(CONFIG_USB_DWC3_OF_SIMPLE)
1416 void dwc3_simple_wakeup_capable(struct device *dev, bool wakeup);
1417 #else
1418 void dwc3_simple_wakeup_capable(struct device *dev, bool wakeup)
> 1419 { ; }
1420 #endif
1421
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months
drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 07e0887302450a62f51dba72df6afb5fabb23d1c
commit: 8f28ca6bd8211214faf717677bbffe375c2a6072 iomap: constify ioreadX() iomem argument (as in generic implementation)
date: 3 months ago
config: alpha-randconfig-s031-20201029 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.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.3-56-gc09e8239-dirty
# 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 8f28ca6bd8211214faf717677bbffe375c2a6072
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha
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/scsi/mvumi.c:81:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/scsi/mvumi.c:81:52: sparse: expected void [noderef] __iomem *
drivers/scsi/mvumi.c:81:52: sparse: got void *
drivers/scsi/mvumi.c:90:39: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
drivers/scsi/mvumi.c:90:39: sparse: expected void *
drivers/scsi/mvumi.c:90:39: sparse: got void [noderef] __iomem *
drivers/scsi/mvumi.c:210:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_l @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:210:34: sparse: expected unsigned int [usertype] baseaddr_l
drivers/scsi/mvumi.c:210:34: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:211:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_h @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:211:34: sparse: expected unsigned int [usertype] baseaddr_h
drivers/scsi/mvumi.c:211:34: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:213:17: sparse: sparse: invalid assignment: |=
drivers/scsi/mvumi.c:213:17: sparse: left side has type unsigned int
drivers/scsi/mvumi.c:213:17: sparse: right side has type restricted __le32
drivers/scsi/mvumi.c:213:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:213:17: sparse: expected unsigned int [usertype] size
drivers/scsi/mvumi.c:213:17: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:242:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_l @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:242:26: sparse: expected unsigned int [usertype] baseaddr_l
drivers/scsi/mvumi.c:242:26: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:243:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_h @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:243:26: sparse: expected unsigned int [usertype] baseaddr_h
drivers/scsi/mvumi.c:243:26: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:245:9: sparse: sparse: invalid assignment: |=
drivers/scsi/mvumi.c:245:9: sparse: left side has type unsigned int
drivers/scsi/mvumi.c:245:9: sparse: right side has type restricted __le32
drivers/scsi/mvumi.c:245:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:245:9: sparse: expected unsigned int [usertype] size
drivers/scsi/mvumi.c:245:9: sparse: got restricted __le32 [usertype]
>> drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *inb_read_pointer @@
>> drivers/scsi/mvumi.c:407:40: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:407:40: sparse: got void *inb_read_pointer
>> drivers/scsi/mvumi.c:429:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *ib_shadow @@
drivers/scsi/mvumi.c:429:30: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:429:30: sparse: got void *ib_shadow
drivers/scsi/mvumi.c:458:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *ib_shadow @@
drivers/scsi/mvumi.c:458:31: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:458:31: sparse: got void *ib_shadow
drivers/scsi/mvumi.c:459:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *inb_write_pointer @@
drivers/scsi/mvumi.c:459:48: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:459:48: sparse: got void *inb_write_pointer
>> drivers/scsi/mvumi.c:496:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_copy_pointer @@
drivers/scsi/mvumi.c:496:41: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:496:41: sparse: got void *outb_copy_pointer
>> drivers/scsi/mvumi.c:497:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *ob_shadow @@
drivers/scsi/mvumi.c:497:48: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:497:48: sparse: got void *ob_shadow
>> drivers/scsi/mvumi.c:516:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_read_pointer @@
drivers/scsi/mvumi.c:516:33: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:516:33: sparse: got void *outb_read_pointer
drivers/scsi/mvumi.c:517:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_copy_pointer @@
drivers/scsi/mvumi.c:517:33: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:517:33: sparse: got void *outb_copy_pointer
drivers/scsi/mvumi.c:578:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_read_pointer @@
drivers/scsi/mvumi.c:578:42: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:578:42: sparse: got void *outb_read_pointer
drivers/scsi/mvumi.c:585:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:585:26: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:585:26: sparse: got void *enpointa_mask_reg
>> drivers/scsi/mvumi.c:586:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:586:26: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:586:26: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:589:40: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:589:40: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:589:40: sparse: got void *pciea_to_arm_drbl_reg
>> drivers/scsi/mvumi.c:1281:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1281:28: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1281:28: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1282:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1282:28: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1282:28: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1284:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_mask_reg @@
drivers/scsi/mvumi.c:1284:48: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1284:48: sparse: got void *arm_to_pciea_mask_reg
>> drivers/scsi/mvumi.c:1285:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1285:28: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1285:28: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1286:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1286:28: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1286:28: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:612:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:612:26: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:612:26: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:613:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:613:28: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:613:28: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:615:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:615:46: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:615:46: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:624:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:624:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:624:36: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:670:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_enable @@
drivers/scsi/mvumi.c:670:32: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:670:32: sparse: got void *reset_enable
drivers/scsi/mvumi.c:671:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_request @@
drivers/scsi/mvumi.c:671:34: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:671:34: sparse: got void *reset_request
drivers/scsi/mvumi.c:673:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_enable @@
drivers/scsi/mvumi.c:673:35: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:673:35: sparse: got void *reset_enable
drivers/scsi/mvumi.c:674:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_request @@
drivers/scsi/mvumi.c:674:35: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:674:35: sparse: got void *reset_request
>> drivers/scsi/mvumi.c:1100:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg0 @@
drivers/scsi/mvumi.c:1100:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1100:36: sparse: got void *arm_to_pciea_msg0
drivers/scsi/mvumi.c:1115:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg1 @@
drivers/scsi/mvumi.c:1115:52: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1115:52: sparse: got void *pciea_to_arm_msg1
drivers/scsi/mvumi.c:1116:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg0 @@
drivers/scsi/mvumi.c:1116:39: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1116:39: sparse: got void *pciea_to_arm_msg0
drivers/scsi/mvumi.c:1117:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1117:47: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1117:47: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1122:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg1 @@
drivers/scsi/mvumi.c:1122:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1122:45: sparse: got void *pciea_to_arm_msg1
drivers/scsi/mvumi.c:1124:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:1124:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1124:45: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:1127:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg0 @@
drivers/scsi/mvumi.c:1127:39: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1127:39: sparse: got void *pciea_to_arm_msg0
drivers/scsi/mvumi.c:1128:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1128:47: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1128:47: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1168:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg0 @@
drivers/scsi/mvumi.c:1168:39: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1168:39: sparse: got void *pciea_to_arm_msg0
drivers/scsi/mvumi.c:1169:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1169:47: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1169:47: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1174:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1174:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1174:36: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1176:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1176:36: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1176:36: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1177:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *ib_shadow @@
drivers/scsi/mvumi.c:1177:50: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1177:50: sparse: got void *ib_shadow
drivers/scsi/mvumi.c:1180:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *inb_aval_count_basel @@
drivers/scsi/mvumi.c:1180:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1180:45: sparse: got void *inb_aval_count_basel
drivers/scsi/mvumi.c:1182:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *inb_aval_count_baseh @@
drivers/scsi/mvumi.c:1182:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1182:45: sparse: got void *inb_aval_count_baseh
drivers/scsi/mvumi.c:1188:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *ob_shadow @@
drivers/scsi/mvumi.c:1188:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1188:61: sparse: got void *ob_shadow
drivers/scsi/mvumi.c:1190:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_copy_basel @@
drivers/scsi/mvumi.c:1190:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1190:61: sparse: got void *outb_copy_basel
drivers/scsi/mvumi.c:1192:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_copy_baseh @@
drivers/scsi/mvumi.c:1192:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1192:61: sparse: got void *outb_copy_baseh
drivers/scsi/mvumi.c:1244:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:1244:34: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1244:34: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:1248:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1248:51: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1248:51: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1256:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:1256:42: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1256:42: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:1849:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] src_low_addr @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:1849:35: sparse: expected unsigned int [usertype] src_low_addr
drivers/scsi/mvumi.c:1849:35: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:1851:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] src_high_addr @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:1851:36: sparse: expected unsigned int [usertype] src_high_addr
drivers/scsi/mvumi.c:1851:36: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:1903:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_mask_reg @@
drivers/scsi/mvumi.c:1903:48: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1903:48: sparse: got void *arm_to_pciea_mask_reg
drivers/scsi/mvumi.c:1904:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1904:29: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1904:29: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1906:29: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1906:29: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1906:29: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1918:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_mask_reg @@
drivers/scsi/mvumi.c:1918:26: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1918:26: sparse: got void *arm_to_pciea_mask_reg
drivers/scsi/mvumi.c:1919:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1919:29: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1919:29: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1922:29: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1922:29: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1922:29: sparse: got void *enpointa_mask_reg
>> drivers/scsi/mvumi.c:1931:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *main_int_cause_reg @@
drivers/scsi/mvumi.c:1931:31: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1931:31: sparse: got void *main_int_cause_reg
>> drivers/scsi/mvumi.c:1935:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1935:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1935:36: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1939:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1939:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1939:61: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1945:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1945:53: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1945:53: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1951:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1951:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1951:36: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1953:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1953:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1953:61: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1956:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1956:43: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1956:43: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1958:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1958:51: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1958:51: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1975:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1975:37: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1975:37: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1977:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1977:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1977:45: sparse: got void *arm_to_pciea_drbl_reg
--
drivers/uio/uio_aec.c:44:49: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *int_flag @@ got void * @@
drivers/uio/uio_aec.c:44:49: sparse: expected void [noderef] __iomem *int_flag
drivers/uio/uio_aec.c:44:49: sparse: got void *
>> drivers/uio/uio_aec.c:50:49: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:50:49: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:50:49: sparse: got void *
drivers/uio/uio_aec.c:59:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:59:9: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:59:9: sparse: got void *
drivers/uio/uio_aec.c:59:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:59:9: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:59:9: sparse: got void *
drivers/uio/uio_aec.c:59:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:59:9: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:59:9: sparse: got void *
drivers/uio/uio_aec.c:59:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:59:9: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:59:9: sparse: got void *
drivers/uio/uio_aec.c:59:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:59:9: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:59:9: sparse: got void *
drivers/uio/uio_aec.c:59:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:59:9: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:59:9: sparse: got void *
drivers/uio/uio_aec.c:88:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *priv @@ got void [noderef] __iomem * @@
drivers/uio/uio_aec.c:88:20: sparse: expected void *priv
drivers/uio/uio_aec.c:88:20: sparse: got void [noderef] __iomem *
drivers/uio/uio_aec.c:104:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:104:42: sparse: expected void [noderef] __iomem *addr
drivers/uio/uio_aec.c:104:42: sparse: got void *
drivers/uio/uio_aec.c:105:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:105:43: sparse: expected void [noderef] __iomem *addr
drivers/uio/uio_aec.c:105:43: sparse: got void *
drivers/uio/uio_aec.c:106:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:106:34: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:106:34: sparse: got void *
drivers/uio/uio_aec.c:115:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got void *priv @@
drivers/uio/uio_aec.c:115:31: sparse: expected void [noderef] __iomem *
drivers/uio/uio_aec.c:115:31: sparse: got void *priv
drivers/uio/uio_aec.c:130:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:130:42: sparse: expected void [noderef] __iomem *addr
drivers/uio/uio_aec.c:130:42: sparse: got void *
drivers/uio/uio_aec.c:131:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:131:43: sparse: expected void [noderef] __iomem *addr
drivers/uio/uio_aec.c:131:43: sparse: got void *
drivers/uio/uio_aec.c:133:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/uio/uio_aec.c:133:28: sparse: expected void const [noderef] __iomem *addr
drivers/uio/uio_aec.c:133:28: sparse: got void *
drivers/uio/uio_aec.c:138:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *priv @@
drivers/uio/uio_aec.c:138:21: sparse: expected void volatile [noderef] __iomem *addr
drivers/uio/uio_aec.c:138:21: sparse: got void *priv
vim +407 drivers/scsi/mvumi.c
f0c568a478f0353 Jianyun Li 2011-05-11 401
bd756ddea18e02c Shun Fu 2012-09-23 402 static unsigned int mvumi_check_ib_list_9143(struct mvumi_hba *mhba)
f0c568a478f0353 Jianyun Li 2011-05-11 403 {
bd756ddea18e02c Shun Fu 2012-09-23 404 unsigned int ib_rp_reg;
bd756ddea18e02c Shun Fu 2012-09-23 405 struct mvumi_hw_regs *regs = mhba->regs;
bd756ddea18e02c Shun Fu 2012-09-23 406
bd756ddea18e02c Shun Fu 2012-09-23 @407 ib_rp_reg = ioread32(mhba->regs->inb_read_pointer);
f0c568a478f0353 Jianyun Li 2011-05-11 408
bd756ddea18e02c Shun Fu 2012-09-23 409 if (unlikely(((ib_rp_reg & regs->cl_slot_num_mask) ==
bd756ddea18e02c Shun Fu 2012-09-23 410 (mhba->ib_cur_slot & regs->cl_slot_num_mask)) &&
bd756ddea18e02c Shun Fu 2012-09-23 411 ((ib_rp_reg & regs->cl_pointer_toggle)
bd756ddea18e02c Shun Fu 2012-09-23 412 != (mhba->ib_cur_slot & regs->cl_pointer_toggle)))) {
bd756ddea18e02c Shun Fu 2012-09-23 413 dev_warn(&mhba->pdev->dev, "no free slot to use.\n");
bd756ddea18e02c Shun Fu 2012-09-23 414 return 0;
bd756ddea18e02c Shun Fu 2012-09-23 415 }
f0c568a478f0353 Jianyun Li 2011-05-11 416 if (atomic_read(&mhba->fw_outstanding) >= mhba->max_io) {
f0c568a478f0353 Jianyun Li 2011-05-11 417 dev_warn(&mhba->pdev->dev, "firmware io overflow.\n");
bd756ddea18e02c Shun Fu 2012-09-23 418 return 0;
bd756ddea18e02c Shun Fu 2012-09-23 419 } else {
bd756ddea18e02c Shun Fu 2012-09-23 420 return mhba->max_io - atomic_read(&mhba->fw_outstanding);
bd756ddea18e02c Shun Fu 2012-09-23 421 }
f0c568a478f0353 Jianyun Li 2011-05-11 422 }
f0c568a478f0353 Jianyun Li 2011-05-11 423
bd756ddea18e02c Shun Fu 2012-09-23 424 static unsigned int mvumi_check_ib_list_9580(struct mvumi_hba *mhba)
bd756ddea18e02c Shun Fu 2012-09-23 425 {
bd756ddea18e02c Shun Fu 2012-09-23 426 unsigned int count;
bd756ddea18e02c Shun Fu 2012-09-23 427 if (atomic_read(&mhba->fw_outstanding) >= (mhba->max_io - 1))
bd756ddea18e02c Shun Fu 2012-09-23 428 return 0;
bd756ddea18e02c Shun Fu 2012-09-23 @429 count = ioread32(mhba->ib_shadow);
bd756ddea18e02c Shun Fu 2012-09-23 430 if (count == 0xffff)
bd756ddea18e02c Shun Fu 2012-09-23 431 return 0;
bd756ddea18e02c Shun Fu 2012-09-23 432 return count;
f0c568a478f0353 Jianyun Li 2011-05-11 433 }
f0c568a478f0353 Jianyun Li 2011-05-11 434
bd756ddea18e02c Shun Fu 2012-09-23 435 static void mvumi_get_ib_list_entry(struct mvumi_hba *mhba, void **ib_entry)
bd756ddea18e02c Shun Fu 2012-09-23 436 {
bd756ddea18e02c Shun Fu 2012-09-23 437 unsigned int cur_ib_entry;
bd756ddea18e02c Shun Fu 2012-09-23 438
bd756ddea18e02c Shun Fu 2012-09-23 439 cur_ib_entry = mhba->ib_cur_slot & mhba->regs->cl_slot_num_mask;
f0c568a478f0353 Jianyun Li 2011-05-11 440 cur_ib_entry++;
f0c568a478f0353 Jianyun Li 2011-05-11 441 if (cur_ib_entry >= mhba->list_num_io) {
f0c568a478f0353 Jianyun Li 2011-05-11 442 cur_ib_entry -= mhba->list_num_io;
bd756ddea18e02c Shun Fu 2012-09-23 443 mhba->ib_cur_slot ^= mhba->regs->cl_pointer_toggle;
f0c568a478f0353 Jianyun Li 2011-05-11 444 }
bd756ddea18e02c Shun Fu 2012-09-23 445 mhba->ib_cur_slot &= ~mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu 2012-09-23 446 mhba->ib_cur_slot |= (cur_ib_entry & mhba->regs->cl_slot_num_mask);
bd756ddea18e02c Shun Fu 2012-09-23 447 if (mhba->hba_capability & HS_CAPABILITY_SUPPORT_DYN_SRC) {
bd756ddea18e02c Shun Fu 2012-09-23 448 *ib_entry = mhba->ib_list + cur_ib_entry *
bd756ddea18e02c Shun Fu 2012-09-23 449 sizeof(struct mvumi_dyn_list_entry);
bd756ddea18e02c Shun Fu 2012-09-23 450 } else {
f0c568a478f0353 Jianyun Li 2011-05-11 451 *ib_entry = mhba->ib_list + cur_ib_entry * mhba->ib_max_size;
bd756ddea18e02c Shun Fu 2012-09-23 452 }
f0c568a478f0353 Jianyun Li 2011-05-11 453 atomic_inc(&mhba->fw_outstanding);
f0c568a478f0353 Jianyun Li 2011-05-11 454 }
f0c568a478f0353 Jianyun Li 2011-05-11 455
f0c568a478f0353 Jianyun Li 2011-05-11 456 static void mvumi_send_ib_list_entry(struct mvumi_hba *mhba)
f0c568a478f0353 Jianyun Li 2011-05-11 457 {
bd756ddea18e02c Shun Fu 2012-09-23 458 iowrite32(0xffff, mhba->ib_shadow);
bd756ddea18e02c Shun Fu 2012-09-23 459 iowrite32(mhba->ib_cur_slot, mhba->regs->inb_write_pointer);
f0c568a478f0353 Jianyun Li 2011-05-11 460 }
f0c568a478f0353 Jianyun Li 2011-05-11 461
f0c568a478f0353 Jianyun Li 2011-05-11 462 static char mvumi_check_ob_frame(struct mvumi_hba *mhba,
f0c568a478f0353 Jianyun Li 2011-05-11 463 unsigned int cur_obf, struct mvumi_rsp_frame *p_outb_frame)
f0c568a478f0353 Jianyun Li 2011-05-11 464 {
f0c568a478f0353 Jianyun Li 2011-05-11 465 unsigned short tag, request_id;
f0c568a478f0353 Jianyun Li 2011-05-11 466
f0c568a478f0353 Jianyun Li 2011-05-11 467 udelay(1);
f0c568a478f0353 Jianyun Li 2011-05-11 468 p_outb_frame = mhba->ob_list + cur_obf * mhba->ob_max_size;
f0c568a478f0353 Jianyun Li 2011-05-11 469 request_id = p_outb_frame->request_id;
f0c568a478f0353 Jianyun Li 2011-05-11 470 tag = p_outb_frame->tag;
f0c568a478f0353 Jianyun Li 2011-05-11 471 if (tag > mhba->tag_pool.size) {
f0c568a478f0353 Jianyun Li 2011-05-11 472 dev_err(&mhba->pdev->dev, "ob frame data error\n");
f0c568a478f0353 Jianyun Li 2011-05-11 473 return -1;
f0c568a478f0353 Jianyun Li 2011-05-11 474 }
f0c568a478f0353 Jianyun Li 2011-05-11 475 if (mhba->tag_cmd[tag] == NULL) {
f0c568a478f0353 Jianyun Li 2011-05-11 476 dev_err(&mhba->pdev->dev, "tag[0x%x] with NO command\n", tag);
f0c568a478f0353 Jianyun Li 2011-05-11 477 return -1;
f0c568a478f0353 Jianyun Li 2011-05-11 478 } else if (mhba->tag_cmd[tag]->request_id != request_id &&
f0c568a478f0353 Jianyun Li 2011-05-11 479 mhba->request_id_enabled) {
f0c568a478f0353 Jianyun Li 2011-05-11 480 dev_err(&mhba->pdev->dev, "request ID from FW:0x%x,"
f0c568a478f0353 Jianyun Li 2011-05-11 481 "cmd request ID:0x%x\n", request_id,
f0c568a478f0353 Jianyun Li 2011-05-11 482 mhba->tag_cmd[tag]->request_id);
f0c568a478f0353 Jianyun Li 2011-05-11 483 return -1;
f0c568a478f0353 Jianyun Li 2011-05-11 484 }
f0c568a478f0353 Jianyun Li 2011-05-11 485
f0c568a478f0353 Jianyun Li 2011-05-11 486 return 0;
f0c568a478f0353 Jianyun Li 2011-05-11 487 }
f0c568a478f0353 Jianyun Li 2011-05-11 488
bd756ddea18e02c Shun Fu 2012-09-23 489 static int mvumi_check_ob_list_9143(struct mvumi_hba *mhba,
bd756ddea18e02c Shun Fu 2012-09-23 490 unsigned int *cur_obf, unsigned int *assign_obf_end)
f0c568a478f0353 Jianyun Li 2011-05-11 491 {
bd756ddea18e02c Shun Fu 2012-09-23 492 unsigned int ob_write, ob_write_shadow;
bd756ddea18e02c Shun Fu 2012-09-23 493 struct mvumi_hw_regs *regs = mhba->regs;
f0c568a478f0353 Jianyun Li 2011-05-11 494
f0c568a478f0353 Jianyun Li 2011-05-11 495 do {
bd756ddea18e02c Shun Fu 2012-09-23 @496 ob_write = ioread32(regs->outb_copy_pointer);
bd756ddea18e02c Shun Fu 2012-09-23 @497 ob_write_shadow = ioread32(mhba->ob_shadow);
bd756ddea18e02c Shun Fu 2012-09-23 498 } while ((ob_write & regs->cl_slot_num_mask) != ob_write_shadow);
f0c568a478f0353 Jianyun Li 2011-05-11 499
bd756ddea18e02c Shun Fu 2012-09-23 500 *cur_obf = mhba->ob_cur_slot & mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu 2012-09-23 501 *assign_obf_end = ob_write & mhba->regs->cl_slot_num_mask;
f0c568a478f0353 Jianyun Li 2011-05-11 502
bd756ddea18e02c Shun Fu 2012-09-23 503 if ((ob_write & regs->cl_pointer_toggle) !=
bd756ddea18e02c Shun Fu 2012-09-23 504 (mhba->ob_cur_slot & regs->cl_pointer_toggle)) {
bd756ddea18e02c Shun Fu 2012-09-23 505 *assign_obf_end += mhba->list_num_io;
bd756ddea18e02c Shun Fu 2012-09-23 506 }
bd756ddea18e02c Shun Fu 2012-09-23 507 return 0;
f0c568a478f0353 Jianyun Li 2011-05-11 508 }
f0c568a478f0353 Jianyun Li 2011-05-11 509
bd756ddea18e02c Shun Fu 2012-09-23 510 static int mvumi_check_ob_list_9580(struct mvumi_hba *mhba,
bd756ddea18e02c Shun Fu 2012-09-23 511 unsigned int *cur_obf, unsigned int *assign_obf_end)
bd756ddea18e02c Shun Fu 2012-09-23 512 {
bd756ddea18e02c Shun Fu 2012-09-23 513 unsigned int ob_write;
bd756ddea18e02c Shun Fu 2012-09-23 514 struct mvumi_hw_regs *regs = mhba->regs;
bd756ddea18e02c Shun Fu 2012-09-23 515
bd756ddea18e02c Shun Fu 2012-09-23 @516 ob_write = ioread32(regs->outb_read_pointer);
bd756ddea18e02c Shun Fu 2012-09-23 517 ob_write = ioread32(regs->outb_copy_pointer);
bd756ddea18e02c Shun Fu 2012-09-23 518 *cur_obf = mhba->ob_cur_slot & mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu 2012-09-23 519 *assign_obf_end = ob_write & mhba->regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu 2012-09-23 520 if (*assign_obf_end < *cur_obf)
bd756ddea18e02c Shun Fu 2012-09-23 521 *assign_obf_end += mhba->list_num_io;
bd756ddea18e02c Shun Fu 2012-09-23 522 else if (*assign_obf_end == *cur_obf)
bd756ddea18e02c Shun Fu 2012-09-23 523 return -1;
bd756ddea18e02c Shun Fu 2012-09-23 524 return 0;
bd756ddea18e02c Shun Fu 2012-09-23 525 }
bd756ddea18e02c Shun Fu 2012-09-23 526
bd756ddea18e02c Shun Fu 2012-09-23 527 static void mvumi_receive_ob_list_entry(struct mvumi_hba *mhba)
bd756ddea18e02c Shun Fu 2012-09-23 528 {
bd756ddea18e02c Shun Fu 2012-09-23 529 unsigned int cur_obf, assign_obf_end, i;
bd756ddea18e02c Shun Fu 2012-09-23 530 struct mvumi_ob_data *ob_data;
bd756ddea18e02c Shun Fu 2012-09-23 531 struct mvumi_rsp_frame *p_outb_frame;
bd756ddea18e02c Shun Fu 2012-09-23 532 struct mvumi_hw_regs *regs = mhba->regs;
bd756ddea18e02c Shun Fu 2012-09-23 533
bd756ddea18e02c Shun Fu 2012-09-23 534 if (mhba->instancet->check_ob_list(mhba, &cur_obf, &assign_obf_end))
bd756ddea18e02c Shun Fu 2012-09-23 535 return;
bd756ddea18e02c Shun Fu 2012-09-23 536
f0c568a478f0353 Jianyun Li 2011-05-11 537 for (i = (assign_obf_end - cur_obf); i != 0; i--) {
f0c568a478f0353 Jianyun Li 2011-05-11 538 cur_obf++;
f0c568a478f0353 Jianyun Li 2011-05-11 539 if (cur_obf >= mhba->list_num_io) {
f0c568a478f0353 Jianyun Li 2011-05-11 540 cur_obf -= mhba->list_num_io;
bd756ddea18e02c Shun Fu 2012-09-23 541 mhba->ob_cur_slot ^= regs->cl_pointer_toggle;
f0c568a478f0353 Jianyun Li 2011-05-11 542 }
f0c568a478f0353 Jianyun Li 2011-05-11 543
f0c568a478f0353 Jianyun Li 2011-05-11 544 p_outb_frame = mhba->ob_list + cur_obf * mhba->ob_max_size;
f0c568a478f0353 Jianyun Li 2011-05-11 545
f0c568a478f0353 Jianyun Li 2011-05-11 546 /* Copy pointer may point to entry in outbound list
f0c568a478f0353 Jianyun Li 2011-05-11 547 * before entry has valid data
f0c568a478f0353 Jianyun Li 2011-05-11 548 */
f0c568a478f0353 Jianyun Li 2011-05-11 549 if (unlikely(p_outb_frame->tag > mhba->tag_pool.size ||
f0c568a478f0353 Jianyun Li 2011-05-11 550 mhba->tag_cmd[p_outb_frame->tag] == NULL ||
f0c568a478f0353 Jianyun Li 2011-05-11 551 p_outb_frame->request_id !=
f0c568a478f0353 Jianyun Li 2011-05-11 552 mhba->tag_cmd[p_outb_frame->tag]->request_id))
f0c568a478f0353 Jianyun Li 2011-05-11 553 if (mvumi_check_ob_frame(mhba, cur_obf, p_outb_frame))
f0c568a478f0353 Jianyun Li 2011-05-11 554 continue;
f0c568a478f0353 Jianyun Li 2011-05-11 555
f0c568a478f0353 Jianyun Li 2011-05-11 556 if (!list_empty(&mhba->ob_data_list)) {
f0c568a478f0353 Jianyun Li 2011-05-11 557 ob_data = (struct mvumi_ob_data *)
f0c568a478f0353 Jianyun Li 2011-05-11 558 list_first_entry(&mhba->ob_data_list,
f0c568a478f0353 Jianyun Li 2011-05-11 559 struct mvumi_ob_data, list);
f0c568a478f0353 Jianyun Li 2011-05-11 560 list_del_init(&ob_data->list);
f0c568a478f0353 Jianyun Li 2011-05-11 561 } else {
f0c568a478f0353 Jianyun Li 2011-05-11 562 ob_data = NULL;
f0c568a478f0353 Jianyun Li 2011-05-11 563 if (cur_obf == 0) {
f0c568a478f0353 Jianyun Li 2011-05-11 564 cur_obf = mhba->list_num_io - 1;
bd756ddea18e02c Shun Fu 2012-09-23 565 mhba->ob_cur_slot ^= regs->cl_pointer_toggle;
f0c568a478f0353 Jianyun Li 2011-05-11 566 } else
f0c568a478f0353 Jianyun Li 2011-05-11 567 cur_obf -= 1;
f0c568a478f0353 Jianyun Li 2011-05-11 568 break;
f0c568a478f0353 Jianyun Li 2011-05-11 569 }
f0c568a478f0353 Jianyun Li 2011-05-11 570
f0c568a478f0353 Jianyun Li 2011-05-11 571 memcpy(ob_data->data, p_outb_frame, mhba->ob_max_size);
f0c568a478f0353 Jianyun Li 2011-05-11 572 p_outb_frame->tag = 0xff;
f0c568a478f0353 Jianyun Li 2011-05-11 573
f0c568a478f0353 Jianyun Li 2011-05-11 574 list_add_tail(&ob_data->list, &mhba->free_ob_list);
f0c568a478f0353 Jianyun Li 2011-05-11 575 }
bd756ddea18e02c Shun Fu 2012-09-23 576 mhba->ob_cur_slot &= ~regs->cl_slot_num_mask;
bd756ddea18e02c Shun Fu 2012-09-23 577 mhba->ob_cur_slot |= (cur_obf & regs->cl_slot_num_mask);
bd756ddea18e02c Shun Fu 2012-09-23 578 iowrite32(mhba->ob_cur_slot, regs->outb_read_pointer);
f0c568a478f0353 Jianyun Li 2011-05-11 579 }
f0c568a478f0353 Jianyun Li 2011-05-11 580
bd756ddea18e02c Shun Fu 2012-09-23 581 static void mvumi_reset(struct mvumi_hba *mhba)
f0c568a478f0353 Jianyun Li 2011-05-11 582 {
bd756ddea18e02c Shun Fu 2012-09-23 583 struct mvumi_hw_regs *regs = mhba->regs;
bd756ddea18e02c Shun Fu 2012-09-23 584
bd756ddea18e02c Shun Fu 2012-09-23 585 iowrite32(0, regs->enpointa_mask_reg);
bd756ddea18e02c Shun Fu 2012-09-23 @586 if (ioread32(regs->arm_to_pciea_msg1) != HANDSHAKE_DONESTATE)
f0c568a478f0353 Jianyun Li 2011-05-11 587 return;
f0c568a478f0353 Jianyun Li 2011-05-11 588
bd756ddea18e02c Shun Fu 2012-09-23 589 iowrite32(DRBL_SOFT_RESET, regs->pciea_to_arm_drbl_reg);
f0c568a478f0353 Jianyun Li 2011-05-11 590 }
f0c568a478f0353 Jianyun Li 2011-05-11 591
:::::: The code at line 407 was first introduced by commit
:::::: bd756ddea18e02ccea8b29496b2fe3bd91af8eb7 [SCSI] mvumi: Add support for Marvell SAS/SATA RAID-on-Chip(ROC) 88RC9580
:::::: TO: Shun Fu <fushun(a)gmail.com>
:::::: CC: James Bottomley <JBottomley(a)Parallels.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months
net/can/isotp.c:1240:13: sparse: sparse: incorrect type in initializer (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 23859ae44402f4d935b9ee548135dd1e65e2cbf4
commit: e057dd3fc20ffb3d7f150af46542a51b59b90127 can: add ISO 15765-2:2016 transport protocol
date: 3 weeks ago
config: sh-randconfig-s031-20201028 (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.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.3-56-gc09e8239-dirty
# 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 e057dd3fc20ffb3d7f150af46542a51b59b90127
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
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 >>)"
>> net/can/isotp.c:1240:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *optlen @@
>> net/can/isotp.c:1240:13: sparse: expected int const *__gu_addr
>> net/can/isotp.c:1240:13: sparse: got int [noderef] __user *optlen
>> net/can/isotp.c:1240:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int const *__gu_addr @@
>> net/can/isotp.c:1240:13: sparse: expected void const volatile [noderef] __user *ptr
>> net/can/isotp.c:1240:13: sparse: got int const *__gu_addr
vim +1240 net/can/isotp.c
1229
1230 static int isotp_getsockopt(struct socket *sock, int level, int optname,
1231 char __user *optval, int __user *optlen)
1232 {
1233 struct sock *sk = sock->sk;
1234 struct isotp_sock *so = isotp_sk(sk);
1235 int len;
1236 void *val;
1237
1238 if (level != SOL_CAN_ISOTP)
1239 return -EINVAL;
> 1240 if (get_user(len, optlen))
1241 return -EFAULT;
1242 if (len < 0)
1243 return -EINVAL;
1244
1245 switch (optname) {
1246 case CAN_ISOTP_OPTS:
1247 len = min_t(int, len, sizeof(struct can_isotp_options));
1248 val = &so->opt;
1249 break;
1250
1251 case CAN_ISOTP_RECV_FC:
1252 len = min_t(int, len, sizeof(struct can_isotp_fc_options));
1253 val = &so->rxfc;
1254 break;
1255
1256 case CAN_ISOTP_TX_STMIN:
1257 len = min_t(int, len, sizeof(u32));
1258 val = &so->force_tx_stmin;
1259 break;
1260
1261 case CAN_ISOTP_RX_STMIN:
1262 len = min_t(int, len, sizeof(u32));
1263 val = &so->force_rx_stmin;
1264 break;
1265
1266 case CAN_ISOTP_LL_OPTS:
1267 len = min_t(int, len, sizeof(struct can_isotp_ll_options));
1268 val = &so->ll;
1269 break;
1270
1271 default:
1272 return -ENOPROTOOPT;
1273 }
1274
1275 if (put_user(len, optlen))
1276 return -EFAULT;
1277 if (copy_to_user(optval, val, len))
1278 return -EFAULT;
1279 return 0;
1280 }
1281
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months
[dhowells-fs:fscache-iter 70/74] fs/afs/write.c:28:60: error: macro "fscache_set_page_dirty" passed 2 arguments, but takes just 1
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git fscache-iter
head: ed2e5767f7ef51dad8eea9f019f1f18e4d8555ce
commit: 08647ce9292f8ad1da1458c4f738d80136d47e0f [70/74] afs: Copy local writes to the cache when writing to the server
config: arm64-randconfig-r035-20201030 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.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/dhowells/linux-fs.git/com...
git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
git fetch --no-tags dhowells-fs fscache-iter
git checkout 08647ce9292f8ad1da1458c4f738d80136d47e0f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 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 errors (new ones prefixed by >>):
fs/afs/write.c: In function 'afs_set_page_dirty':
>> fs/afs/write.c:28:60: error: macro "fscache_set_page_dirty" passed 2 arguments, but takes just 1
28 | return fscache_set_page_dirty(page, afs_vnode_cache(vnode));
| ^
In file included from include/linux/fscache_helper.h:15,
from fs/afs/write.c:14:
include/linux/fscache.h:545: note: macro "fscache_set_page_dirty" defined here
545 | #define fscache_set_page_dirty(PAGE) (__set_page_dirty_nobuffers((PAGE)))
|
>> fs/afs/write.c:28:9: error: 'fscache_set_page_dirty' undeclared (first use in this function); did you mean 'afs_set_page_dirty'?
28 | return fscache_set_page_dirty(page, afs_vnode_cache(vnode));
| ^~~~~~~~~~~~~~~~~~~~~~
| afs_set_page_dirty
fs/afs/write.c:28:9: note: each undeclared identifier is reported only once for each function it appears in
fs/afs/write.c:26:20: warning: unused variable 'vnode' [-Wunused-variable]
26 | struct afs_vnode *vnode = AFS_FS_I(page->mapping->host);
| ^~~~~
fs/afs/write.c:29:1: error: control reaches end of non-void function [-Werror=return-type]
29 | }
| ^
cc1: some warnings being treated as errors
vim +/fscache_set_page_dirty +28 fs/afs/write.c
16
17 static void afs_write_to_cache(struct afs_vnode *vnode, loff_t start, size_t len,
18 loff_t i_size);
19
20 /*
21 * Mark a page as having been made dirty and thus needing writeback. We also
22 * need to pin the cache object to write back to.
23 */
24 int afs_set_page_dirty(struct page *page)
25 {
26 struct afs_vnode *vnode = AFS_FS_I(page->mapping->host);
27
> 28 return fscache_set_page_dirty(page, afs_vnode_cache(vnode));
29 }
30
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months
Re: [PATCH v2] f2fs: move ioctl interface definitions to separated file
by kernel test robot
Hi Chao,
I love your patch! Yet something to improve:
[auto build test ERROR on f2fs/dev-test]
[also build test ERROR on linus/master v5.10-rc1 next-20201030]
[cannot apply to linux/master]
[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/Chao-Yu/f2fs-move-ioctl-interfac...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: x86_64-randconfig-a013-20201030 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project fa5a13276764a2657b3571fa3c57b07ee5d2d661)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/652525531fd95cc9ef1011882abec714d...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chao-Yu/f2fs-move-ioctl-interface-definitions-to-separated-file/20201030-152809
git checkout 652525531fd95cc9ef1011882abec714d0d853dc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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 <built-in>:1:
>> ./usr/include/linux/f2fs.h:58:2: error: unknown type name 'u32'
u32 sync;
^
>> ./usr/include/linux/f2fs.h:59:2: error: unknown type name 'u64'
u64 start;
^
./usr/include/linux/f2fs.h:60:2: error: unknown type name 'u64'
u64 len;
^
./usr/include/linux/f2fs.h:64:2: error: unknown type name 'u64'
u64 start;
^
./usr/include/linux/f2fs.h:65:2: error: unknown type name 'u64'
u64 len;
^
./usr/include/linux/f2fs.h:69:2: error: unknown type name 'u32'
u32 dst_fd; /* destination fd */
^
./usr/include/linux/f2fs.h:70:2: error: unknown type name 'u64'
u64 pos_in; /* start position in src_fd */
^
./usr/include/linux/f2fs.h:71:2: error: unknown type name 'u64'
u64 pos_out; /* start position in dst_fd */
^
./usr/include/linux/f2fs.h:72:2: error: unknown type name 'u64'
u64 len; /* size to move */
^
./usr/include/linux/f2fs.h:76:2: error: unknown type name 'u32'
u32 dev_num; /* device number to flush */
^
./usr/include/linux/f2fs.h:77:2: error: unknown type name 'u32'
u32 segments; /* # of segments to flush */
^
./usr/include/linux/f2fs.h:81:2: error: unknown type name 'u64'
u64 start;
^
./usr/include/linux/f2fs.h:82:2: error: unknown type name 'u64'
u64 len;
^
./usr/include/linux/f2fs.h:83:2: error: unknown type name 'u64'
u64 flags;
^
14 errors generated.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
4 months