[wireless-drivers-next:master 40/69] drivers/net/wireless/realtek/rtw88/rtw8821c.c:71:8: warning: type qualifiers ignored on function return type
by kernel test robot
Hi Tzu-En,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne... master
head: b28bd97c1c191ade3736b33f2b24e5b288b90ab4
commit: f745eb9ca5bf823bc5c0f82a434cefb41c57844e [40/69] rtw88: 8821c: Add 8821CE to Kconfig and Makefile
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-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
git checkout f745eb9ca5bf823bc5c0f82a434cefb41c57844e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
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 >>):
>> drivers/net/wireless/realtek/rtw88/rtw8821c.c:71:8: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
71 | static const u8 rtw8821c_get_swing_index(struct rtw_dev *rtwdev)
| ^~~~~
vim +71 drivers/net/wireless/realtek/rtw88/rtw8821c.c
3a4312828ce13e Tzu-En Huang 2020-06-03 70
3a4312828ce13e Tzu-En Huang 2020-06-03 @71 static const u8 rtw8821c_get_swing_index(struct rtw_dev *rtwdev)
3a4312828ce13e Tzu-En Huang 2020-06-03 72 {
3a4312828ce13e Tzu-En Huang 2020-06-03 73 u8 i = 0;
3a4312828ce13e Tzu-En Huang 2020-06-03 74 u32 swing, table_value;
3a4312828ce13e Tzu-En Huang 2020-06-03 75
3a4312828ce13e Tzu-En Huang 2020-06-03 76 swing = rtw_read32_mask(rtwdev, REG_TXSCALE_A, 0xffe00000);
3a4312828ce13e Tzu-En Huang 2020-06-03 77 for (i = 0; i < ARRAY_SIZE(rtw8821c_txscale_tbl); i++) {
3a4312828ce13e Tzu-En Huang 2020-06-03 78 table_value = rtw8821c_txscale_tbl[i];
3a4312828ce13e Tzu-En Huang 2020-06-03 79 if (swing == table_value)
3a4312828ce13e Tzu-En Huang 2020-06-03 80 break;
3a4312828ce13e Tzu-En Huang 2020-06-03 81 }
3a4312828ce13e Tzu-En Huang 2020-06-03 82
3a4312828ce13e Tzu-En Huang 2020-06-03 83 return i;
3a4312828ce13e Tzu-En Huang 2020-06-03 84 }
3a4312828ce13e Tzu-En Huang 2020-06-03 85
:::::: The code at line 71 was first introduced by commit
:::::: 3a4312828ce13e1645fd3af76e4314a2623b3361 rtw88: 8821c: add power tracking
:::::: TO: Tzu-En Huang <tehuang(a)realtek.com>
:::::: CC: Kalle Valo <kvalo(a)codeaurora.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH 5/5] btrfs: Switch seed device to list api
by kernel test robot
Hi Nikolay,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on kdave/for-next]
[also build test ERROR on next-20200715]
[cannot apply to v5.8-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Nikolay-Borisov/Convert-seed-dev...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
config: x86_64-rhel-7.6-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# 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 error/warnings (new ones prefixed by >>):
In file included from fs/btrfs/volumes.c:17:
fs/btrfs/ctree.h:2271:8: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
2271 | size_t __const btrfs_get_num_csums(void);
| ^~~~~~~
In file included from fs/btrfs/volumes.c:28:
fs/btrfs/sysfs.h:16:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
16 | const char * const btrfs_feature_set_name(enum btrfs_feature_set set);
| ^~~~~
fs/btrfs/volumes.c:1030:6: warning: no previous prototype for '__btrfs_free_extra_devids' [-Wmissing-prototypes]
1030 | void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices, int step,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
fs/btrfs/volumes.c: In function 'btrfs_rm_dev_replace_free_srcdev':
>> fs/btrfs/volumes.c:2219:28: warning: variable 'tmp_fs_devices' set but not used [-Wunused-but-set-variable]
2219 | struct btrfs_fs_devices *tmp_fs_devices;
| ^~~~~~~~~~~~~~
--
In file included from fs/btrfs/delayed-inode.h:17,
from fs/btrfs/super.c:30:
fs/btrfs/ctree.h:2271:8: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
2271 | size_t __const btrfs_get_num_csums(void);
| ^~~~~~~
In file included from fs/btrfs/super.c:46:
fs/btrfs/sysfs.h:16:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
16 | const char * const btrfs_feature_set_name(enum btrfs_feature_set set);
| ^~~~~
fs/btrfs/super.c: In function 'btrfs_show_devname':
>> fs/btrfs/super.c:2404:28: error: 'struct btrfs_fs_devices' has no member named 'seed'
2404 | cur_devices = cur_devices->seed;
| ^~
vim +2404 fs/btrfs/super.c
9e7cc91a6d18a4 Wang Xiaoguang 2016-08-01 2377
9c5085c147989d Josef Bacik 2012-06-05 2378 static int btrfs_show_devname(struct seq_file *m, struct dentry *root)
9c5085c147989d Josef Bacik 2012-06-05 2379 {
9c5085c147989d Josef Bacik 2012-06-05 2380 struct btrfs_fs_info *fs_info = btrfs_sb(root->d_sb);
9c5085c147989d Josef Bacik 2012-06-05 2381 struct btrfs_fs_devices *cur_devices;
9c5085c147989d Josef Bacik 2012-06-05 2382 struct btrfs_device *dev, *first_dev = NULL;
9c5085c147989d Josef Bacik 2012-06-05 2383 struct list_head *head;
9c5085c147989d Josef Bacik 2012-06-05 2384
88c14590cdd6f3 David Sterba 2018-03-16 2385 /*
88c14590cdd6f3 David Sterba 2018-03-16 2386 * Lightweight locking of the devices. We should not need
88c14590cdd6f3 David Sterba 2018-03-16 2387 * device_list_mutex here as we only read the device data and the list
88c14590cdd6f3 David Sterba 2018-03-16 2388 * is protected by RCU. Even if a device is deleted during the list
88c14590cdd6f3 David Sterba 2018-03-16 2389 * traversals, we'll get valid data, the freeing callback will wait at
52042d8e82ff50 Andrea Gelmini 2018-11-28 2390 * least until the rcu_read_unlock.
88c14590cdd6f3 David Sterba 2018-03-16 2391 */
88c14590cdd6f3 David Sterba 2018-03-16 2392 rcu_read_lock();
9c5085c147989d Josef Bacik 2012-06-05 2393 cur_devices = fs_info->fs_devices;
9c5085c147989d Josef Bacik 2012-06-05 2394 while (cur_devices) {
9c5085c147989d Josef Bacik 2012-06-05 2395 head = &cur_devices->devices;
88c14590cdd6f3 David Sterba 2018-03-16 2396 list_for_each_entry_rcu(dev, head, dev_list) {
e6e674bd4d54fe Anand Jain 2017-12-04 2397 if (test_bit(BTRFS_DEV_STATE_MISSING, &dev->dev_state))
aa9ddcd4b55571 Josef Bacik 2012-08-02 2398 continue;
0aeb8a6e67cdde Anand Jain 2014-06-30 2399 if (!dev->name)
0aeb8a6e67cdde Anand Jain 2014-06-30 2400 continue;
9c5085c147989d Josef Bacik 2012-06-05 2401 if (!first_dev || dev->devid < first_dev->devid)
9c5085c147989d Josef Bacik 2012-06-05 2402 first_dev = dev;
9c5085c147989d Josef Bacik 2012-06-05 2403 }
9c5085c147989d Josef Bacik 2012-06-05 @2404 cur_devices = cur_devices->seed;
9c5085c147989d Josef Bacik 2012-06-05 2405 }
9c5085c147989d Josef Bacik 2012-06-05 2406
672d599041c862 Misono Tomohiro 2018-08-02 2407 if (first_dev)
672d599041c862 Misono Tomohiro 2018-08-02 2408 seq_escape(m, rcu_str_deref(first_dev->name), " \t\n\\");
672d599041c862 Misono Tomohiro 2018-08-02 2409 else
9c5085c147989d Josef Bacik 2012-06-05 2410 WARN_ON(1);
88c14590cdd6f3 David Sterba 2018-03-16 2411 rcu_read_unlock();
9c5085c147989d Josef Bacik 2012-06-05 2412 return 0;
9c5085c147989d Josef Bacik 2012-06-05 2413 }
9c5085c147989d Josef Bacik 2012-06-05 2414
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[tglx-devel:x86/entry 16/21] include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/entry
head: 5c8d5a67cdc4a03d2c383cb4e70375c2da1eb5eb
commit: 36e542056fc9af793328f226b87e02a4c008975e [16/21] x86/kvm: Use generic exit to guest work function
config: x86_64-rhel-7.6-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
git checkout 36e542056fc9af793328f226b87e02a4c008975e
# 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 error/warnings (new ones prefixed by >>):
In file included from arch/x86/kvm/x86.c:58:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/entry-common.h:453:1: warning: control reaches end of non-void function [-Wreturn-type]
453 | }
| ^
--
In file included from arch/x86/include/asm/idtentry.h:9,
from arch/x86/include/asm/traps.h:9,
from arch/x86/kernel/traps.c:48:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/x86/entry/common.c:13:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/entry/common.c: At top level:
arch/x86/entry/common.c:210:24: warning: no previous prototype for 'do_SYSENTER_32' [-Wmissing-prototypes]
210 | __visible noinstr long do_SYSENTER_32(struct pt_regs *regs)
| ^~~~~~~~~~~~~~
arch/x86/entry/common.c:273:24: warning: no previous prototype for 'xen_pv_evtchn_do_upcall' [-Wmissing-prototypes]
273 | __visible noinstr void xen_pv_evtchn_do_upcall(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/x86/include/asm/idtentry.h:9,
from arch/x86/include/asm/traps.h:9,
from arch/x86/xen/enlighten_pv.c:62:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/xen/enlighten_pv.c: At top level:
arch/x86/xen/enlighten_pv.c:1231:34: warning: no previous prototype for 'xen_start_kernel' [-Wmissing-prototypes]
1231 | asmlinkage __visible void __init xen_start_kernel(void)
| ^~~~~~~~~~~~~~~~
--
In file included from arch/x86/include/asm/idtentry.h:9,
from arch/x86/xen/smp_pv.c:29:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/xen/smp_pv.c: At top level:
arch/x86/xen/smp_pv.c:92:27: warning: no previous prototype for 'cpu_bringup_and_idle' [-Wmissing-prototypes]
92 | asmlinkage __visible void cpu_bringup_and_idle(void)
| ^~~~~~~~~~~~~~~~~~~~
--
In file included from arch/x86/include/asm/idtentry.h:9,
from arch/x86/include/asm/traps.h:9,
from arch/x86/mm/extable.c:8:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/mm/extable.c: At top level:
arch/x86/mm/extable.c:26:16: warning: no previous prototype for 'ex_handler_default' [-Wmissing-prototypes]
26 | __visible bool ex_handler_default(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~~~
arch/x86/mm/extable.c:36:16: warning: no previous prototype for 'ex_handler_fault' [-Wmissing-prototypes]
36 | __visible bool ex_handler_fault(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~
arch/x86/mm/extable.c:57:16: warning: no previous prototype for 'ex_handler_fprestore' [-Wmissing-prototypes]
57 | __visible bool ex_handler_fprestore(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/mm/extable.c:72:16: warning: no previous prototype for 'ex_handler_uaccess' [-Wmissing-prototypes]
72 | __visible bool ex_handler_uaccess(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~~~
arch/x86/mm/extable.c:83:16: warning: no previous prototype for 'ex_handler_rdmsr_unsafe' [-Wmissing-prototypes]
83 | __visible bool ex_handler_rdmsr_unsafe(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/mm/extable.c:100:16: warning: no previous prototype for 'ex_handler_wrmsr_unsafe' [-Wmissing-prototypes]
100 | __visible bool ex_handler_wrmsr_unsafe(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/mm/extable.c:116:16: warning: no previous prototype for 'ex_handler_clear_fs' [-Wmissing-prototypes]
116 | __visible bool ex_handler_clear_fs(const struct exception_table_entry *fixup,
| ^~~~~~~~~~~~~~~~~~~
--
In file included from kernel/entry/common.c:4:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/entry/common.c: In function 'exit_to_guest_mode_work':
>> kernel/entry/common.c:376:17: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
376 | if (ti_work & _TIF_NEED_RESCHED_MASK) {
| ^~~~~~~~~~~~~~~~~~~~~~
| TIF_NEED_RESCHED
>> kernel/entry/common.c:393:1: error: expected 'while' before 'int'
393 | int exit_to_guest_mode(struct kvm_vcpu *vcpu)
| ^~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from arch/x86/include/asm/percpu.h:45,
from arch/x86/include/asm/current.h:6,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from kernel/entry/common.c:3:
>> include/linux/export.h:98:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
98 | extern typeof(sym) sym; \
| ^~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
kernel/entry/common.c:411:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
411 | EXPORT_SYMBOL_GPL(exit_to_guest_mode);
| ^~~~~~~~~~~~~~~~~
In file included from arch/x86/include/asm/current.h:5,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from kernel/entry/common.c:3:
>> include/linux/compiler.h:343:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
343 | static void * __section(.discard.addressable) __used \
| ^~~~~~
include/linux/export.h:51:2: note: in expansion of macro '__ADDRESSABLE'
51 | __ADDRESSABLE(sym) \
| ^~~~~~~~~~~~~
include/linux/export.h:108:2: note: in expansion of macro '__KSYMTAB_ENTRY'
108 | __KSYMTAB_ENTRY(sym, sec)
| ^~~~~~~~~~~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
kernel/entry/common.c:411:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
411 | EXPORT_SYMBOL_GPL(exit_to_guest_mode);
| ^~~~~~~~~~~~~~~~~
>> kernel/entry/common.c:411:1: error: expected declaration or statement at end of input
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from arch/x86/include/asm/percpu.h:45,
from arch/x86/include/asm/current.h:6,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from kernel/entry/common.c:3:
include/linux/export.h:100:20: warning: unused variable '__kstrtabns_exit_to_guest_mode' [-Wunused-variable]
100 | extern const char __kstrtabns_##sym[]; \
| ^~~~~~~~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
kernel/entry/common.c:411:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
411 | EXPORT_SYMBOL_GPL(exit_to_guest_mode);
| ^~~~~~~~~~~~~~~~~
include/linux/export.h:99:20: warning: unused variable '__kstrtab_exit_to_guest_mode' [-Wunused-variable]
99 | extern const char __kstrtab_##sym[]; \
| ^~~~~~~~~~
include/linux/export.h:147:39: note: in expansion of macro '___EXPORT_SYMBOL'
147 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
159 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "_gpl")
| ^~~~~~~~~~~~~~
kernel/entry/common.c:411:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
411 | EXPORT_SYMBOL_GPL(exit_to_guest_mode);
| ^~~~~~~~~~~~~~~~~
At top level:
kernel/entry/common.c:366:12: warning: 'exit_to_guest_mode_work' defined but not used [-Wunused-function]
366 | static int exit_to_guest_mode_work(struct kvm_vcpu *vcpu, unsigned long ti_work)
| ^~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/x86/include/asm/idtentry.h:9,
from arch/x86/include/asm/traps.h:9,
from arch/x86/kernel/cpu/intel.c:24:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/cpu/intel.c: In function 'init_intel':
arch/x86/kernel/cpu/intel.c:642:20: warning: variable 'l2' set but not used [-Wunused-but-set-variable]
642 | unsigned int l1, l2;
| ^~
--
In file included from arch/x86/kvm/vmx/vmx.c:30:
include/linux/entry-common.h: In function '__exit_to_guest_mode_work_pending':
>> include/linux/entry-common.h:406:3: error: '_TIF_NEED_RESCHED_MASK' undeclared (first use in this function); did you mean 'TIF_NEED_RESCHED'?
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:406:3: note: each undeclared identifier is reported only once for each function it appears in
406 | (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/entry-common.h:452:22: note: in expansion of macro 'EXIT_TO_GUEST_MODE_WORK'
452 | return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/x86/kvm/vmx/vmx.c:51:
arch/x86/kvm/vmx/capabilities.h: At top level:
arch/x86/kvm/vmx/capabilities.h:7:10: fatal error: lapic.h: No such file or directory
7 | #include "lapic.h"
| ^~~~~~~~~
compilation terminated.
vim +406 include/linux/entry-common.h
1adc6c0ca59cff Thomas Gleixner 2019-10-23 404
1adc6c0ca59cff Thomas Gleixner 2019-10-23 405 #define EXIT_TO_GUEST_MODE_WORK \
1adc6c0ca59cff Thomas Gleixner 2019-10-23 @406 (_TIF_NEED_RESCHED_MASK | _TIF_SIGPENDING | \
1adc6c0ca59cff Thomas Gleixner 2019-10-23 407 _TIF_NOTIFY_RESUME | ARCH_EXIT_TO_GUEST_MODE_WORK)
1adc6c0ca59cff Thomas Gleixner 2019-10-23 408
1adc6c0ca59cff Thomas Gleixner 2019-10-23 409 struct kvm_vcpu;
1adc6c0ca59cff Thomas Gleixner 2019-10-23 410
1adc6c0ca59cff Thomas Gleixner 2019-10-23 411 /**
1adc6c0ca59cff Thomas Gleixner 2019-10-23 412 * arch_exit_to_guest_mode_work - Architecture specific exit to guest mode
1adc6c0ca59cff Thomas Gleixner 2019-10-23 413 * work function.
1adc6c0ca59cff Thomas Gleixner 2019-10-23 414 * @vcpu: Pointer to current's VCPU data
1adc6c0ca59cff Thomas Gleixner 2019-10-23 415 * @ti_work: Cached TIF flags gathered in exit_to_guest_mode()
1adc6c0ca59cff Thomas Gleixner 2019-10-23 416 *
1adc6c0ca59cff Thomas Gleixner 2019-10-23 417 * Invoked from exit_to_guest_mode_work(). Defaults to NOOP. Can be
1adc6c0ca59cff Thomas Gleixner 2019-10-23 418 * replaced by architecture specific code.
1adc6c0ca59cff Thomas Gleixner 2019-10-23 419 */
1adc6c0ca59cff Thomas Gleixner 2019-10-23 420 static inline int arch_exit_to_guest_mode_work(struct kvm_vcpu *vcpu,
1adc6c0ca59cff Thomas Gleixner 2019-10-23 421 unsigned long ti_work);
1adc6c0ca59cff Thomas Gleixner 2019-10-23 422
1adc6c0ca59cff Thomas Gleixner 2019-10-23 423 #ifndef arch_exit_to_guest_mode_work
1adc6c0ca59cff Thomas Gleixner 2019-10-23 424 static inline int arch_exit_to_guest_mode_work(struct kvm_vcpu *vcpu,
1adc6c0ca59cff Thomas Gleixner 2019-10-23 425 unsigned long ti_work)
1adc6c0ca59cff Thomas Gleixner 2019-10-23 426 {
1adc6c0ca59cff Thomas Gleixner 2019-10-23 427 return 0;
1adc6c0ca59cff Thomas Gleixner 2019-10-23 428 }
1adc6c0ca59cff Thomas Gleixner 2019-10-23 429 #endif
1adc6c0ca59cff Thomas Gleixner 2019-10-23 430
1adc6c0ca59cff Thomas Gleixner 2019-10-23 431 /**
1adc6c0ca59cff Thomas Gleixner 2019-10-23 432 * exit_to_guest_mode - Check and handle pending work which needs to be
1adc6c0ca59cff Thomas Gleixner 2019-10-23 433 * handled before returning to guest mode
1adc6c0ca59cff Thomas Gleixner 2019-10-23 434 * @vcpu: Pointer to current's VCPU data
1adc6c0ca59cff Thomas Gleixner 2019-10-23 435 *
1adc6c0ca59cff Thomas Gleixner 2019-10-23 436 * Returns: 0 or an error code
1adc6c0ca59cff Thomas Gleixner 2019-10-23 437 */
1adc6c0ca59cff Thomas Gleixner 2019-10-23 438 int exit_to_guest_mode(struct kvm_vcpu *vcpu);
1adc6c0ca59cff Thomas Gleixner 2019-10-23 439
1adc6c0ca59cff Thomas Gleixner 2019-10-23 440 /**
1adc6c0ca59cff Thomas Gleixner 2019-10-23 441 * __exit_to_guest_mode_work_pending - Check if work is pending
1adc6c0ca59cff Thomas Gleixner 2019-10-23 442 *
1adc6c0ca59cff Thomas Gleixner 2019-10-23 443 * Returns: True if work pending, False otherwise.
1adc6c0ca59cff Thomas Gleixner 2019-10-23 444 *
1adc6c0ca59cff Thomas Gleixner 2019-10-23 445 * Bare variant of exit_to_guest_mode_work_pending(). Can be called from
1adc6c0ca59cff Thomas Gleixner 2019-10-23 446 * interrupt enabled code for racy quick checks with care.
1adc6c0ca59cff Thomas Gleixner 2019-10-23 447 */
1adc6c0ca59cff Thomas Gleixner 2019-10-23 448 static inline bool __exit_to_guest_mode_work_pending(void)
1adc6c0ca59cff Thomas Gleixner 2019-10-23 449 {
1adc6c0ca59cff Thomas Gleixner 2019-10-23 450 unsigned long ti_work = READ_ONCE(current_thread_info()->flags);
1adc6c0ca59cff Thomas Gleixner 2019-10-23 451
1adc6c0ca59cff Thomas Gleixner 2019-10-23 @452 return !!(ti_work & EXIT_TO_GUEST_MODE_WORK);
1adc6c0ca59cff Thomas Gleixner 2019-10-23 @453 }
1adc6c0ca59cff Thomas Gleixner 2019-10-23 454
:::::: The code at line 406 was first introduced by commit
:::::: 1adc6c0ca59cff49d0e9da4e959157d811eaf809 entry: Provide infrastructure for work before entering a guest
:::::: TO: Thomas Gleixner <tglx(a)linutronix.de>
:::::: CC: Thomas Gleixner <tglx(a)linutronix.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH 2/5] btrfs: Factor out loop logic from btrfs_free_extra_devids
by kernel test robot
Hi Nikolay,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on kdave/for-next]
[also build test WARNING on v5.8-rc5 next-20200715]
[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/Nikolay-Borisov/Convert-seed-dev...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
config: x86_64-rhel-7.6-kselftests (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# 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 fs/btrfs/volumes.c:17:
fs/btrfs/ctree.h:2271:8: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
2271 | size_t __const btrfs_get_num_csums(void);
| ^~~~~~~
In file included from fs/btrfs/volumes.c:28:
fs/btrfs/sysfs.h:16:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
16 | const char * const btrfs_feature_set_name(enum btrfs_feature_set set);
| ^~~~~
>> fs/btrfs/volumes.c:1029:6: warning: no previous prototype for '__btrfs_free_extra_devids' [-Wmissing-prototypes]
1029 | void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices, int step,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
vim +/__btrfs_free_extra_devids +1029 fs/btrfs/volumes.c
1026
1027
1028
> 1029 void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices, int step,
1030 struct btrfs_device **latest_dev)
1031 {
1032 struct btrfs_device *device, *next;
1033
1034 /* This is the initialized path, it is safe to release the devices. */
1035 list_for_each_entry_safe(device, next, &fs_devices->devices, dev_list) {
1036 if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA,
1037 &device->dev_state)) {
1038 if (!test_bit(BTRFS_DEV_STATE_REPLACE_TGT,
1039 &device->dev_state) &&
1040 !test_bit(BTRFS_DEV_STATE_MISSING,
1041 &device->dev_state) &&
1042 (!*latest_dev ||
1043 device->generation > (*latest_dev)->generation)) {
1044 *latest_dev = device;
1045 }
1046 continue;
1047 }
1048
1049 if (device->devid == BTRFS_DEV_REPLACE_DEVID) {
1050 /*
1051 * In the first step, keep the device which has
1052 * the correct fsid and the devid that is used
1053 * for the dev_replace procedure.
1054 * In the second step, the dev_replace state is
1055 * read from the device tree and it is known
1056 * whether the procedure is really active or
1057 * not, which means whether this device is
1058 * used or whether it should be removed.
1059 */
1060 if (step == 0 || test_bit(BTRFS_DEV_STATE_REPLACE_TGT,
1061 &device->dev_state)) {
1062 continue;
1063 }
1064 }
1065 if (device->bdev) {
1066 blkdev_put(device->bdev, device->mode);
1067 device->bdev = NULL;
1068 fs_devices->open_devices--;
1069 }
1070 if (test_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state)) {
1071 list_del_init(&device->dev_alloc_list);
1072 clear_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state);
1073 if (!test_bit(BTRFS_DEV_STATE_REPLACE_TGT,
1074 &device->dev_state))
1075 fs_devices->rw_devices--;
1076 }
1077 list_del_init(&device->dev_list);
1078 fs_devices->num_devices--;
1079 btrfs_free_device(device);
1080 }
1081
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[linux-next:master 6311/8137] arch/riscv/mm/init.c:520:13: warning: no previous prototype for 'resource_init'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ca0e494af5edb59002665bf12871e94b4163a257
commit: 526fbaed33e8eac89634a676e5f8e3b41dfae66e [6311/8137] riscv: Register System RAM as iomem resources
config: riscv-randconfig-r014-20200715 (attached as .config)
compiler: riscv32-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
git checkout 526fbaed33e8eac89634a676e5f8e3b41dfae66e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/riscv/mm/init.c:520:13: warning: no previous prototype for 'resource_init' [-Wmissing-prototypes]
520 | void __init resource_init(void)
| ^~~~~~~~~~~~~
vim +/resource_init +520 arch/riscv/mm/init.c
519
> 520 void __init resource_init(void)
521 {
522 struct memblock_region *region;
523
524 for_each_memblock(memory, region) {
525 struct resource *res;
526
527 res = memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES);
528 if (!res)
529 panic("%s: Failed to allocate %zu bytes\n", __func__,
530 sizeof(struct resource));
531
532 if (memblock_is_nomap(region)) {
533 res->name = "reserved";
534 res->flags = IORESOURCE_MEM;
535 } else {
536 res->name = "System RAM";
537 res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
538 }
539 res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region));
540 res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
541
542 request_resource(&iomem_resource, res);
543 }
544 }
545
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[tglx-devel:x86/entry 8/21] arch/x86/entry/common.c:434:3: error: implicit declaration of function 'irq_enter_from_user_mode'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/entry
head: 5c8d5a67cdc4a03d2c383cb4e70375c2da1eb5eb
commit: 20049a8a124513a9de53d614179c434ade144242 [8/21] x86/entry: Use generic syscall entry function
config: i386-tinyconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
git checkout 20049a8a124513a9de53d614179c434ade144242
# 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>
Note: the tglx-devel/x86/entry HEAD 5c8d5a67cdc4a03d2c383cb4e70375c2da1eb5eb builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
arch/x86/entry/common.c:222:24: warning: no previous prototype for 'syscall_return_slowpath' [-Wmissing-prototypes]
222 | __visible noinstr void syscall_return_slowpath(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/x86/entry/common.c:282:24: warning: no previous prototype for 'do_int80_syscall_32' [-Wmissing-prototypes]
282 | __visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~
arch/x86/entry/common.c:324:24: warning: no previous prototype for 'do_fast_syscall_32' [-Wmissing-prototypes]
324 | __visible noinstr long do_fast_syscall_32(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~
arch/x86/entry/common.c:376:24: warning: no previous prototype for 'do_SYSENTER_32' [-Wmissing-prototypes]
376 | __visible noinstr long do_SYSENTER_32(struct pt_regs *regs)
| ^~~~~~~~~~~~~~
arch/x86/entry/common.c: In function 'idtentry_enter':
>> arch/x86/entry/common.c:434:3: error: implicit declaration of function 'irq_enter_from_user_mode'; did you mean 'irqentry_enter_from_user_mode'? [-Werror=implicit-function-declaration]
434 | irq_enter_from_user_mode(regs);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| irqentry_enter_from_user_mode
cc1: some warnings being treated as errors
vim +434 arch/x86/entry/common.c
392
393 /**
394 * idtentry_enter - Handle state tracking on ordinary idtentries
395 * @regs: Pointer to pt_regs of interrupted context
396 *
397 * Invokes:
398 * - lockdep irqflag state tracking as low level ASM entry disabled
399 * interrupts.
400 *
401 * - Context tracking if the exception hit user mode.
402 *
403 * - The hardirq tracer to keep the state consistent as low level ASM
404 * entry disabled interrupts.
405 *
406 * As a precondition, this requires that the entry came from user mode,
407 * idle, or a kernel context in which RCU is watching.
408 *
409 * For kernel mode entries RCU handling is done conditional. If RCU is
410 * watching then the only RCU requirement is to check whether the tick has
411 * to be restarted. If RCU is not watching then rcu_irq_enter() has to be
412 * invoked on entry and rcu_irq_exit() on exit.
413 *
414 * Avoiding the rcu_irq_enter/exit() calls is an optimization but also
415 * solves the problem of kernel mode pagefaults which can schedule, which
416 * is not possible after invoking rcu_irq_enter() without undoing it.
417 *
418 * For user mode entries irq_enter_from_user_mode() must be invoked to
419 * establish the proper context for NOHZ_FULL. Otherwise scheduling on exit
420 * would not be possible.
421 *
422 * Returns: An opaque object that must be passed to idtentry_exit()
423 *
424 * The return value must be fed into the state argument of
425 * idtentry_exit().
426 */
427 idtentry_state_t noinstr idtentry_enter(struct pt_regs *regs)
428 {
429 idtentry_state_t ret = {
430 .exit_rcu = false,
431 };
432
433 if (user_mode(regs)) {
> 434 irq_enter_from_user_mode(regs);
435 return ret;
436 }
437
438 /*
439 * If this entry hit the idle task invoke rcu_irq_enter() whether
440 * RCU is watching or not.
441 *
442 * Interupts can nest when the first interrupt invokes softirq
443 * processing on return which enables interrupts.
444 *
445 * Scheduler ticks in the idle task can mark quiescent state and
446 * terminate a grace period, if and only if the timer interrupt is
447 * not nested into another interrupt.
448 *
449 * Checking for __rcu_is_watching() here would prevent the nesting
450 * interrupt to invoke rcu_irq_enter(). If that nested interrupt is
451 * the tick then rcu_flavor_sched_clock_irq() would wrongfully
452 * assume that it is the first interupt and eventually claim
453 * quiescient state and end grace periods prematurely.
454 *
455 * Unconditionally invoke rcu_irq_enter() so RCU state stays
456 * consistent.
457 *
458 * TINY_RCU does not support EQS, so let the compiler eliminate
459 * this part when enabled.
460 */
461 if (!IS_ENABLED(CONFIG_TINY_RCU) && is_idle_task(current)) {
462 /*
463 * If RCU is not watching then the same careful
464 * sequence vs. lockdep and tracing is required
465 * as in irq_enter_from_user_mode().
466 */
467 lockdep_hardirqs_off(CALLER_ADDR0);
468 rcu_irq_enter();
469 instrumentation_begin();
470 trace_hardirqs_off_finish();
471 instrumentation_end();
472
473 ret.exit_rcu = true;
474 return ret;
475 }
476
477 /*
478 * If RCU is watching then RCU only wants to check whether it needs
479 * to restart the tick in NOHZ mode. rcu_irq_enter_check_tick()
480 * already contains a warning when RCU is not watching, so no point
481 * in having another one here.
482 */
483 instrumentation_begin();
484 rcu_irq_enter_check_tick();
485 /* Use the combo lockdep/tracing function */
486 trace_hardirqs_off();
487 instrumentation_end();
488
489 return ret;
490 }
491
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
drivers/usb/gadget/udc/mv_udc_core.c:833:34: 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: e9919e11e219eaa5e8041b7b1a196839143e9125
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 4 weeks ago
config: mips-randconfig-s032-20200715 (attached as .config)
compiler: mipsel-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.2-49-g707c5017-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# 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=mips
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/usb/gadget/udc/mv_udc_core.c:67:33: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __le16 [usertype] wMaxPacketSize @@ got int @@
drivers/usb/gadget/udc/mv_udc_core.c:67:33: sparse: expected restricted __le16 [usertype] wMaxPacketSize
drivers/usb/gadget/udc/mv_udc_core.c:67:33: sparse: got int
drivers/usb/gadget/udc/mv_udc_core.c:367:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr0 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/mv_udc_core.c:367:24: sparse: expected unsigned int [usertype] buff_ptr0
drivers/usb/gadget/udc/mv_udc_core.c:367:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/mv_udc_core.c:369:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr1 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/mv_udc_core.c:369:24: sparse: expected unsigned int [usertype] buff_ptr1
drivers/usb/gadget/udc/mv_udc_core.c:369:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/mv_udc_core.c:370:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr2 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/mv_udc_core.c:370:24: sparse: expected unsigned int [usertype] buff_ptr2
drivers/usb/gadget/udc/mv_udc_core.c:370:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/mv_udc_core.c:371:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr3 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/mv_udc_core.c:371:24: sparse: expected unsigned int [usertype] buff_ptr3
drivers/usb/gadget/udc/mv_udc_core.c:371:24: sparse: got restricted __le32 [usertype]
drivers/usb/gadget/udc/mv_udc_core.c:372:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] buff_ptr4 @@ got restricted __le32 [usertype] @@
drivers/usb/gadget/udc/mv_udc_core.c:372:24: sparse: expected unsigned int [usertype] buff_ptr4
drivers/usb/gadget/udc/mv_udc_core.c:372:24: sparse: got restricted __le32 [usertype]
>> drivers/usb/gadget/udc/mv_udc_core.c:833:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got unsigned int * @@
>> drivers/usb/gadget/udc/mv_udc_core.c:833:34: sparse: expected void const volatile [noderef] __iomem *mem
drivers/usb/gadget/udc/mv_udc_core.c:833:34: sparse: got unsigned int *
>> drivers/usb/gadget/udc/mv_udc_core.c:834:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got unsigned int * @@
>> drivers/usb/gadget/udc/mv_udc_core.c:834:42: sparse: expected void volatile [noderef] __iomem *mem
drivers/usb/gadget/udc/mv_udc_core.c:834:42: sparse: got unsigned int *
drivers/usb/gadget/udc/mv_udc_core.c:1456:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] @@ got restricted __le16 [usertype] @@
drivers/usb/gadget/udc/mv_udc_core.c:1456:41: sparse: expected unsigned short [usertype]
drivers/usb/gadget/udc/mv_udc_core.c:1456:41: sparse: got restricted __le16 [usertype]
drivers/usb/gadget/udc/mv_udc_core.c:1516:26: sparse: sparse: cast from restricted __le16
drivers/usb/gadget/udc/mv_udc_core.c:1546:31: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1547:35: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1568:30: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1579:39: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1580:43: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1616:34: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1625:52: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1611:30: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1611:30: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1634:39: sparse: sparse: restricted __le16 degrades to integer
drivers/usb/gadget/udc/mv_udc_core.c:1635:43: sparse: sparse: restricted __le16 degrades to integer
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: cast to restricted __le32
arch/mips/include/asm/io.h:354:1: sparse: sparse: too many warnings
--
>> drivers/watchdog/sb_wdog.c:269:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got char *wd_cfg_reg @@
>> drivers/watchdog/sb_wdog.c:269:27: sparse: expected void const volatile [noderef] __iomem *mem
drivers/watchdog/sb_wdog.c:269:27: sparse: got char *wd_cfg_reg
>> drivers/watchdog/sb_wdog.c:270:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got char * @@
drivers/watchdog/sb_wdog.c:270:42: sparse: expected void const volatile [noderef] __iomem *mem
drivers/watchdog/sb_wdog.c:270:42: sparse: got char *
drivers/watchdog/sb_wdog.c:275:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/watchdog/sb_wdog.c:275:24: sparse: char *
>> drivers/watchdog/sb_wdog.c:275:24: sparse: char [noderef] __iomem *
>> drivers/watchdog/sb_wdog.c:307:34: sparse: sparse: cast removes address space '__iomem' of expression
drivers/watchdog/sb_wdog.c:321:22: sparse: sparse: cast removes address space '__iomem' of expression
drivers/watchdog/sb_wdog.c:331:22: sparse: sparse: cast removes address space '__iomem' of expression
vim +833 drivers/usb/gadget/udc/mv_udc_core.c
c2bbd16b03d036 drivers/usb/gadget/mv_udc_core.c Neil Zhang 2011-12-20 770
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 771 /* dequeues (cancels, unlinks) an I/O request from an endpoint */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 772 static int mv_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req)
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 773 {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 774 struct mv_ep *ep = container_of(_ep, struct mv_ep, ep);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 775 struct mv_req *req;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 776 struct mv_udc *udc = ep->udc;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 777 unsigned long flags;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 778 int stopped, ret = 0;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 779 u32 epctrlx;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 780
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 781 if (!_ep || !_req)
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 782 return -EINVAL;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 783
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 784 spin_lock_irqsave(&ep->udc->lock, flags);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 785 stopped = ep->stopped;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 786
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 787 /* Stop the ep before we deal with the queue */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 788 ep->stopped = 1;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 789 epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 790 if (ep_dir(ep) == EP_DIR_IN)
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 791 epctrlx &= ~EPCTRL_TX_ENABLE;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 792 else
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 793 epctrlx &= ~EPCTRL_RX_ENABLE;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 794 writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 795
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 796 /* make sure it's actually queued on this endpoint */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 797 list_for_each_entry(req, &ep->queue, queue) {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 798 if (&req->req == _req)
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 799 break;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 800 }
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 801 if (&req->req != _req) {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 802 ret = -EINVAL;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 803 goto out;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 804 }
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 805
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 806 /* The request is in progress, or completed but not dequeued */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 807 if (ep->queue.next == &req->queue) {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 808 _req->status = -ECONNRESET;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 809 mv_ep_fifo_flush(_ep); /* flush current transfer */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 810
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 811 /* The request isn't the last request in this ep queue */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 812 if (req->queue.next != &ep->queue) {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 813 struct mv_req *next_req;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 814
c2bbd16b03d036 drivers/usb/gadget/mv_udc_core.c Neil Zhang 2011-12-20 815 next_req = list_entry(req->queue.next,
c2bbd16b03d036 drivers/usb/gadget/mv_udc_core.c Neil Zhang 2011-12-20 816 struct mv_req, queue);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 817
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 818 /* Point the QH to the first TD of next request */
c2bbd16b03d036 drivers/usb/gadget/mv_udc_core.c Neil Zhang 2011-12-20 819 mv_prime_ep(ep, next_req);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 820 } else {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 821 struct mv_dqh *qh;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 822
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 823 qh = ep->dqh;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 824 qh->next_dtd_ptr = 1;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 825 qh->size_ioc_int_sts = 0;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 826 }
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 827
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 828 /* The request hasn't been processed, patch up the TD chain */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 829 } else {
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 830 struct mv_req *prev_req;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 831
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 832 prev_req = list_entry(req->queue.prev, struct mv_req, queue);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 @833 writel(readl(&req->tail->dtd_next),
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 @834 &prev_req->tail->dtd_next);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 835
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 836 }
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 837
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 838 done(ep, req, -ECONNRESET);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 839
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 840 /* Enable EP */
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 841 out:
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 842 epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 843 if (ep_dir(ep) == EP_DIR_IN)
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 844 epctrlx |= EPCTRL_TX_ENABLE;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 845 else
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 846 epctrlx |= EPCTRL_RX_ENABLE;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 847 writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 848 ep->stopped = stopped;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 849
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 850 spin_unlock_irqrestore(&ep->udc->lock, flags);
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 851 return ret;
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 852 }
e7cddda48c7f89 drivers/usb/gadget/mv_udc_core.c cxie4 2010-11-30 853
:::::: The code at line 833 was first introduced by commit
:::::: e7cddda48c7f892a3fb5c10a6f41a4395f46c0c2 USB: pxa: Add USB client support for Marvell PXA9xx/PXA168 chips
:::::: TO: cxie4 <cxie4(a)marvell.com>
:::::: CC: Greg Kroah-Hartman <gregkh(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[renesas-drivers:master 69/80] drivers/net/ethernet/sfc/efx_common.c:1232:19: sparse: sparse: incompatible types for operation (==):
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git master
head: 541708cc1e6ad29fdb4c294831dfa855bd64487b
commit: 428d2a440d43ba81b698ec71de5125e4aeddf752 [69/80] Merge remote-tracking branch 'pci/next' into renesas-drivers
config: parisc-randconfig-s031-20200714 (attached as .config)
compiler: hppa-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.2-41-g14e84ffc-dirty
git checkout 428d2a440d43ba81b698ec71de5125e4aeddf752
# 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=parisc
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/ethernet/sfc/efx_common.c:1232:19: sparse: sparse: incompatible types for operation (==):
>> drivers/net/ethernet/sfc/efx_common.c:1232:19: sparse: incomplete type enum pci_channel_state state
>> drivers/net/ethernet/sfc/efx_common.c:1232:19: sparse: restricted pci_channel_state_t
>> drivers/net/ethernet/sfc/efx_common.c:1308:27: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different base types)) @@ expected restricted pci_ers_result_t ( *error_detected )( ... ) @@ got restricted pci_ers_result_t ( * )( ... ) @@
>> drivers/net/ethernet/sfc/efx_common.c:1308:27: sparse: expected restricted pci_ers_result_t ( *error_detected )( ... )
>> drivers/net/ethernet/sfc/efx_common.c:1308:27: sparse: got restricted pci_ers_result_t ( * )( ... )
vim +1232 drivers/net/ethernet/sfc/efx_common.c
21ea21252eddb3c Edward Cree 2020-06-29 1221
21ea21252eddb3c Edward Cree 2020-06-29 1222 /* A PCI error affecting this device was detected.
21ea21252eddb3c Edward Cree 2020-06-29 1223 * At this point MMIO and DMA may be disabled.
21ea21252eddb3c Edward Cree 2020-06-29 1224 * Stop the software path and request a slot reset.
21ea21252eddb3c Edward Cree 2020-06-29 1225 */
21ea21252eddb3c Edward Cree 2020-06-29 1226 static pci_ers_result_t efx_io_error_detected(struct pci_dev *pdev,
21ea21252eddb3c Edward Cree 2020-06-29 1227 enum pci_channel_state state)
21ea21252eddb3c Edward Cree 2020-06-29 1228 {
21ea21252eddb3c Edward Cree 2020-06-29 1229 pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
21ea21252eddb3c Edward Cree 2020-06-29 1230 struct efx_nic *efx = pci_get_drvdata(pdev);
21ea21252eddb3c Edward Cree 2020-06-29 1231
21ea21252eddb3c Edward Cree 2020-06-29 @1232 if (state == pci_channel_io_perm_failure)
21ea21252eddb3c Edward Cree 2020-06-29 1233 return PCI_ERS_RESULT_DISCONNECT;
21ea21252eddb3c Edward Cree 2020-06-29 1234
21ea21252eddb3c Edward Cree 2020-06-29 1235 rtnl_lock();
21ea21252eddb3c Edward Cree 2020-06-29 1236
21ea21252eddb3c Edward Cree 2020-06-29 1237 if (efx->state != STATE_DISABLED) {
21ea21252eddb3c Edward Cree 2020-06-29 1238 efx->state = STATE_RECOVERY;
21ea21252eddb3c Edward Cree 2020-06-29 1239 efx->reset_pending = 0;
21ea21252eddb3c Edward Cree 2020-06-29 1240
21ea21252eddb3c Edward Cree 2020-06-29 1241 efx_device_detach_sync(efx);
21ea21252eddb3c Edward Cree 2020-06-29 1242
21ea21252eddb3c Edward Cree 2020-06-29 1243 efx_stop_all(efx);
21ea21252eddb3c Edward Cree 2020-06-29 1244 efx_disable_interrupts(efx);
21ea21252eddb3c Edward Cree 2020-06-29 1245
21ea21252eddb3c Edward Cree 2020-06-29 1246 status = PCI_ERS_RESULT_NEED_RESET;
21ea21252eddb3c Edward Cree 2020-06-29 1247 } else {
21ea21252eddb3c Edward Cree 2020-06-29 1248 /* If the interface is disabled we don't want to do anything
21ea21252eddb3c Edward Cree 2020-06-29 1249 * with it.
21ea21252eddb3c Edward Cree 2020-06-29 1250 */
21ea21252eddb3c Edward Cree 2020-06-29 1251 status = PCI_ERS_RESULT_RECOVERED;
21ea21252eddb3c Edward Cree 2020-06-29 1252 }
21ea21252eddb3c Edward Cree 2020-06-29 1253
21ea21252eddb3c Edward Cree 2020-06-29 1254 rtnl_unlock();
21ea21252eddb3c Edward Cree 2020-06-29 1255
21ea21252eddb3c Edward Cree 2020-06-29 1256 pci_disable_device(pdev);
21ea21252eddb3c Edward Cree 2020-06-29 1257
21ea21252eddb3c Edward Cree 2020-06-29 1258 return status;
21ea21252eddb3c Edward Cree 2020-06-29 1259 }
21ea21252eddb3c Edward Cree 2020-06-29 1260
21ea21252eddb3c Edward Cree 2020-06-29 1261 /* Fake a successful reset, which will be performed later in efx_io_resume. */
21ea21252eddb3c Edward Cree 2020-06-29 1262 static pci_ers_result_t efx_io_slot_reset(struct pci_dev *pdev)
21ea21252eddb3c Edward Cree 2020-06-29 1263 {
21ea21252eddb3c Edward Cree 2020-06-29 1264 struct efx_nic *efx = pci_get_drvdata(pdev);
21ea21252eddb3c Edward Cree 2020-06-29 1265 pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
21ea21252eddb3c Edward Cree 2020-06-29 1266
21ea21252eddb3c Edward Cree 2020-06-29 1267 if (pci_enable_device(pdev)) {
21ea21252eddb3c Edward Cree 2020-06-29 1268 netif_err(efx, hw, efx->net_dev,
21ea21252eddb3c Edward Cree 2020-06-29 1269 "Cannot re-enable PCI device after reset.\n");
21ea21252eddb3c Edward Cree 2020-06-29 1270 status = PCI_ERS_RESULT_DISCONNECT;
21ea21252eddb3c Edward Cree 2020-06-29 1271 }
21ea21252eddb3c Edward Cree 2020-06-29 1272
21ea21252eddb3c Edward Cree 2020-06-29 1273 return status;
21ea21252eddb3c Edward Cree 2020-06-29 1274 }
21ea21252eddb3c Edward Cree 2020-06-29 1275
21ea21252eddb3c Edward Cree 2020-06-29 1276 /* Perform the actual reset and resume I/O operations. */
21ea21252eddb3c Edward Cree 2020-06-29 1277 static void efx_io_resume(struct pci_dev *pdev)
21ea21252eddb3c Edward Cree 2020-06-29 1278 {
21ea21252eddb3c Edward Cree 2020-06-29 1279 struct efx_nic *efx = pci_get_drvdata(pdev);
21ea21252eddb3c Edward Cree 2020-06-29 1280 int rc;
21ea21252eddb3c Edward Cree 2020-06-29 1281
21ea21252eddb3c Edward Cree 2020-06-29 1282 rtnl_lock();
21ea21252eddb3c Edward Cree 2020-06-29 1283
21ea21252eddb3c Edward Cree 2020-06-29 1284 if (efx->state == STATE_DISABLED)
21ea21252eddb3c Edward Cree 2020-06-29 1285 goto out;
21ea21252eddb3c Edward Cree 2020-06-29 1286
21ea21252eddb3c Edward Cree 2020-06-29 1287 rc = efx_reset(efx, RESET_TYPE_ALL);
21ea21252eddb3c Edward Cree 2020-06-29 1288 if (rc) {
21ea21252eddb3c Edward Cree 2020-06-29 1289 netif_err(efx, hw, efx->net_dev,
21ea21252eddb3c Edward Cree 2020-06-29 1290 "efx_reset failed after PCI error (%d)\n", rc);
21ea21252eddb3c Edward Cree 2020-06-29 1291 } else {
21ea21252eddb3c Edward Cree 2020-06-29 1292 efx->state = STATE_READY;
21ea21252eddb3c Edward Cree 2020-06-29 1293 netif_dbg(efx, hw, efx->net_dev,
21ea21252eddb3c Edward Cree 2020-06-29 1294 "Done resetting and resuming IO after PCI error.\n");
21ea21252eddb3c Edward Cree 2020-06-29 1295 }
21ea21252eddb3c Edward Cree 2020-06-29 1296
21ea21252eddb3c Edward Cree 2020-06-29 1297 out:
21ea21252eddb3c Edward Cree 2020-06-29 1298 rtnl_unlock();
21ea21252eddb3c Edward Cree 2020-06-29 1299 }
21ea21252eddb3c Edward Cree 2020-06-29 1300
21ea21252eddb3c Edward Cree 2020-06-29 1301 /* For simplicity and reliability, we always require a slot reset and try to
21ea21252eddb3c Edward Cree 2020-06-29 1302 * reset the hardware when a pci error affecting the device is detected.
21ea21252eddb3c Edward Cree 2020-06-29 1303 * We leave both the link_reset and mmio_enabled callback unimplemented:
21ea21252eddb3c Edward Cree 2020-06-29 1304 * with our request for slot reset the mmio_enabled callback will never be
21ea21252eddb3c Edward Cree 2020-06-29 1305 * called, and the link_reset callback is not used by AER or EEH mechanisms.
21ea21252eddb3c Edward Cree 2020-06-29 1306 */
21ea21252eddb3c Edward Cree 2020-06-29 1307 const struct pci_error_handlers efx_err_handlers = {
21ea21252eddb3c Edward Cree 2020-06-29 @1308 .error_detected = efx_io_error_detected,
21ea21252eddb3c Edward Cree 2020-06-29 1309 .slot_reset = efx_io_slot_reset,
21ea21252eddb3c Edward Cree 2020-06-29 1310 .resume = efx_io_resume,
21ea21252eddb3c Edward Cree 2020-06-29 1311 };
2d73515a1ce4ef8 Edward Cree 2020-06-30 1312
:::::: The code at line 1232 was first introduced by commit
:::::: 21ea21252eddb3cea56845f58f87208062799bef sfc: commonise PCI error handlers
:::::: TO: Edward Cree <ecree(a)solarflare.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH] tty: Add MOXA NPort Real TTY Driver
by kernel test robot
Hi "Johnson,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on tty/tty-testing]
[also build test WARNING on v5.8-rc5 next-20200714]
[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/Johnson-CH-Chen/tty-Add-MOXA-NPo...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
config: sparc64-randconfig-s032-20200715 (attached as .config)
compiler: sparc64-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.2-49-g707c5017-dirty
# 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=sparc64
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/tty/npreal2.c:1107:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct serial_struct *retinfo @@
>> drivers/tty/npreal2.c:1107:26: sparse: expected void [noderef] __user *to
>> drivers/tty/npreal2.c:1107:26: sparse: got struct serial_struct *retinfo
>> drivers/tty/npreal2.c:1122:56: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct serial_struct *new_info @@
>> drivers/tty/npreal2.c:1122:56: sparse: expected void const [noderef] __user *from
>> drivers/tty/npreal2.c:1122:56: sparse: got struct serial_struct *new_info
>> drivers/tty/npreal2.c:1149:57: sparse: sparse: Using plain integer as NULL pointer
>> drivers/tty/npreal2.c:1186:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int *value @@
>> drivers/tty/npreal2.c:1186:9: sparse: expected void const volatile [noderef] __user *
>> drivers/tty/npreal2.c:1186:9: sparse: got unsigned int *value
drivers/tty/npreal2.c:1624:38: sparse: sparse: Using plain integer as NULL pointer
drivers/tty/npreal2.c:1897:34: sparse: sparse: Using plain integer as NULL pointer
drivers/tty/npreal2.c:1914:21: sparse: sparse: Using plain integer as NULL pointer
drivers/tty/npreal2.c:1984:46: sparse: sparse: Using plain integer as NULL pointer
>> drivers/tty/npreal2.c:2261:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned long * @@
drivers/tty/npreal2.c:2261:17: sparse: expected void const volatile [noderef] __user *
>> drivers/tty/npreal2.c:2261:17: sparse: got unsigned long *
drivers/tty/npreal2.c:2265:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned long * @@
drivers/tty/npreal2.c:2265:17: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2265:17: sparse: got unsigned long *
>> drivers/tty/npreal2.c:2319:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2319:21: sparse: expected void const volatile [noderef] __user *
>> drivers/tty/npreal2.c:2319:21: sparse: got int *
drivers/tty/npreal2.c:2319:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2319:62: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2319:62: sparse: got int *
drivers/tty/npreal2.c:2320:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2320:25: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2320:25: sparse: got int *
drivers/tty/npreal2.c:2321:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2321:25: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2321:25: sparse: got int *
drivers/tty/npreal2.c:2322:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2322:25: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2322:25: sparse: got int *
drivers/tty/npreal2.c:2323:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2323:25: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2323:25: sparse: got int *
drivers/tty/npreal2.c:2324:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2324:25: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2324:25: sparse: got int *
drivers/tty/npreal2.c:2329:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2329:17: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2329:17: sparse: got int *
drivers/tty/npreal2.c:2330:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2330:17: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2330:17: sparse: got int *
drivers/tty/npreal2.c:2331:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2331:17: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2331:17: sparse: got int *
drivers/tty/npreal2.c:2332:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int * @@
drivers/tty/npreal2.c:2332:17: sparse: expected void const volatile [noderef] __user *
drivers/tty/npreal2.c:2332:17: sparse: got int *
>> drivers/tty/npreal2.c:2570:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got void * @@
drivers/tty/npreal2.c:2570:35: sparse: expected void [noderef] __user *to
>> drivers/tty/npreal2.c:2570:35: sparse: got void *
>> drivers/tty/npreal2.c:2591:57: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void * @@
drivers/tty/npreal2.c:2591:57: sparse: expected void const [noderef] __user *from
drivers/tty/npreal2.c:2591:57: sparse: got void *
drivers/tty/npreal2.c:2720:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got void * @@
drivers/tty/npreal2.c:2720:35: sparse: expected void [noderef] __user *to
drivers/tty/npreal2.c:2720:35: sparse: got void *
drivers/tty/npreal2.c:2734:56: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void * @@
drivers/tty/npreal2.c:2734:56: sparse: expected void const [noderef] __user *from
drivers/tty/npreal2.c:2734:56: sparse: got void *
>> drivers/tty/npreal2.c:2803:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got char *buf @@
drivers/tty/npreal2.c:2803:34: sparse: expected void [noderef] __user *to
>> drivers/tty/npreal2.c:2803:34: sparse: got char *buf
>> drivers/tty/npreal2.c:2831:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got char * @@
drivers/tty/npreal2.c:2831:38: sparse: expected void [noderef] __user *to
>> drivers/tty/npreal2.c:2831:38: sparse: got char *
>> drivers/tty/npreal2.c:2899:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got char const *buf @@
drivers/tty/npreal2.c:2899:38: sparse: expected void const [noderef] __user *from
>> drivers/tty/npreal2.c:2899:38: sparse: got char const *buf
>> drivers/tty/npreal2.c:2950:22: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected long ( *proc_read )( ... ) @@ got long ( * )( ... ) @@
>> drivers/tty/npreal2.c:2950:22: sparse: expected long ( *proc_read )( ... )
>> drivers/tty/npreal2.c:2950:22: sparse: got long ( * )( ... )
>> drivers/tty/npreal2.c:2951:23: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected long ( *proc_write )( ... ) @@ got long ( * )( ... ) @@
>> drivers/tty/npreal2.c:2951:23: sparse: expected long ( *proc_write )( ... )
drivers/tty/npreal2.c:2951:23: sparse: got long ( * )( ... )
>> drivers/tty/npreal2.c:2954:22: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __poll_t ( *proc_poll )( ... ) @@ got unsigned int ( * )( ... ) @@
>> drivers/tty/npreal2.c:2954:22: sparse: expected restricted __poll_t ( *proc_poll )( ... )
>> drivers/tty/npreal2.c:2954:22: sparse: got unsigned int ( * )( ... )
vim +1107 drivers/tty/npreal2.c
1089
1090 static int npreal_get_serial_info(struct npreal_struct *info, struct serial_struct *retinfo)
1091 {
1092 struct serial_struct tmp;
1093
1094 if (!retinfo)
1095 return -EFAULT;
1096
1097 memset(&tmp, 0, sizeof(tmp));
1098 tmp.type = info->type;
1099 tmp.line = info->port;
1100 tmp.flags = info->flags;
1101 tmp.close_delay = info->close_delay;
1102 tmp.closing_wait = info->closing_wait;
1103 tmp.custom_divisor = info->custom_divisor;
1104 tmp.baud_base = info->baud_base;
1105 tmp.hub6 = 0;
1106
> 1107 if (copy_to_user(retinfo, &tmp, sizeof(*retinfo)))
1108 return -EFAULT;
1109 else
1110 return 0;
1111 }
1112
1113 static int npreal_set_serial_info(struct npreal_struct *info, struct serial_struct *new_info)
1114 {
1115 struct serial_struct new_serial;
1116 int rsp_length = RSP_BUFFER_SIZE;
1117 int retval = 0;
1118 unsigned int flags;
1119 char rsp_buffer[RSP_BUFFER_SIZE];
1120
1121
> 1122 if ((!new_info) || copy_from_user(&new_serial, new_info, sizeof(new_serial)))
1123 return -EFAULT;
1124
1125 flags = info->flags & ASYNC_SPD_MASK;
1126
1127 if (!capable(CAP_SYS_ADMIN)) {
1128 if ((new_serial.close_delay != info->close_delay) ||
1129 ((new_serial.flags & ~ASYNC_USR_MASK) != (info->flags & ~ASYNC_USR_MASK)))
1130 return -EPERM;
1131
1132 info->flags = ((info->flags & ~ASYNC_USR_MASK) |
1133 (new_serial.flags & ASYNC_USR_MASK));
1134 } else {
1135 info->flags = ((info->flags & ~ASYNC_FLAGS) | (new_serial.flags & ASYNC_FLAGS));
1136 info->close_delay = new_serial.close_delay * HZ / 100;
1137
1138 if (new_serial.closing_wait == ASYNC_CLOSING_WAIT_NONE)
1139 info->closing_wait = ASYNC_CLOSING_WAIT_NONE;
1140 else
1141 info->closing_wait = new_serial.closing_wait * HZ / 100;
1142 }
1143
1144 info->type = new_serial.type;
1145 set_common_xmit_fifo_size(info, info->net_node);
1146
1147 if (info->flags & ASYNC_INITIALIZED) {
1148 if (flags != (info->flags & ASYNC_SPD_MASK))
> 1149 retval = npreal_port_init(info, 0);
1150
1151 if (info->net_node)
1152 npreal_set_tx_fifo_command_done(info, info->net_node, rsp_buffer,
1153 &rsp_length);
1154
1155 }
1156
1157 info->custom_divisor = new_serial.custom_divisor;
1158
1159 if (info->custom_divisor == 0)
1160 info->baud_base = 921600L;
1161 else
1162 info->baud_base = new_serial.baud_base;
1163
1164 return retval;
1165 }
1166
1167 /**
1168 * npreal_get_lsr_info() - get line status register info
1169 *
1170 * Let user call ioctl() to get info when the UART physically is emptied.
1171 * On bus types like RS485, the transmitter must release the bus after
1172 * transmitting. This must be done when the transmit shift register is
1173 * empty, not be done when the transmit holding register is empty.
1174 * This functionality allows an RS485 driver to be written in user space.
1175 *
1176 * Always return 0 when function is ended.
1177 */
1178 static int npreal_get_lsr_info(struct npreal_struct *info,
1179 unsigned int *value)
1180 {
1181 unsigned int result = 0;
1182
1183 if (npreal_wait_oqueue(info, 0) == 0)
1184 result = TIOCSER_TEMT;
1185
> 1186 put_user(result, value);
1187
1188 return 0;
1189 }
1190
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
drivers/mtd/maps/pxa2xx-flash.c:71:26: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e9919e11e219eaa5e8041b7b1a196839143e9125
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 4 weeks ago
config: arm-randconfig-s031-20200715 (attached as .config)
compiler: arm-linux-gnueabi-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.2-49-g707c5017-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# 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=arm
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/mtd/maps/pxa2xx-flash.c:71:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *cached @@ got void [noderef] __iomem * @@
drivers/mtd/maps/pxa2xx-flash.c:71:26: sparse: expected void *cached
>> drivers/mtd/maps/pxa2xx-flash.c:71:26: sparse: got void [noderef] __iomem *
>> drivers/mtd/maps/pxa2xx-flash.c:87:26: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/mtd/maps/pxa2xx-flash.c:87:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *iomem_cookie @@ got void * @@
>> drivers/mtd/maps/pxa2xx-flash.c:87:26: sparse: expected void volatile [noderef] __iomem *iomem_cookie
drivers/mtd/maps/pxa2xx-flash.c:87:26: sparse: got void *
>> drivers/mtd/maps/pxa2xx-flash.c:89:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *iomem_cookie @@ got void *cached @@
drivers/mtd/maps/pxa2xx-flash.c:89:42: sparse: expected void volatile [noderef] __iomem *iomem_cookie
drivers/mtd/maps/pxa2xx-flash.c:89:42: sparse: got void *cached
drivers/mtd/maps/pxa2xx-flash.c:110:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *iomem_cookie @@ got void *cached @@
drivers/mtd/maps/pxa2xx-flash.c:110:34: sparse: expected void volatile [noderef] __iomem *iomem_cookie
drivers/mtd/maps/pxa2xx-flash.c:110:34: sparse: got void *cached
--
drivers/net/ethernet/ethoc.c:313:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *vma @@ got void [noderef] __iomem *membase @@
drivers/net/ethernet/ethoc.c:313:13: sparse: expected void *vma
drivers/net/ethernet/ethoc.c:313:13: sparse: got void [noderef] __iomem *membase
>> drivers/net/ethernet/ethoc.c:450:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem *from @@ got void *src @@
>> drivers/net/ethernet/ethoc.c:450:33: sparse: expected void const volatile [noderef] __iomem *from
drivers/net/ethernet/ethoc.c:450:33: sparse: got void *src
>> drivers/net/ethernet/ethoc.c:908:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *to @@ got void *[assigned] dest @@
>> drivers/net/ethernet/ethoc.c:908:9: sparse: expected void volatile [noderef] __iomem *to
drivers/net/ethernet/ethoc.c:908:9: sparse: got void *[assigned] dest
drivers/net/ethernet/ethoc.c:1108:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *membase @@ got void * @@
drivers/net/ethernet/ethoc.c:1108:31: sparse: expected void [noderef] __iomem *membase
drivers/net/ethernet/ethoc.c:1108:31: sparse: got void *
--
>> drivers/firmware/efi/test/efi_test.c:157:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *register __p @@ got unsigned long *[addressable] data_size @@
>> drivers/firmware/efi/test/efi_test.c:157:13: sparse: expected unsigned long [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:157:13: sparse: got unsigned long *[addressable] data_size
drivers/firmware/efi/test/efi_test.c:160:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct guid_t [usertype] *[addressable] vendor_guid @@
drivers/firmware/efi/test/efi_test.c:160:61: sparse: expected void const [noderef] __user *from
drivers/firmware/efi/test/efi_test.c:160:61: sparse: got struct guid_t [usertype] *[addressable] vendor_guid
drivers/firmware/efi/test/efi_test.c:167:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@
drivers/firmware/efi/test/efi_test.c:167:60: sparse: expected unsigned short [noderef] [usertype] __user *src
drivers/firmware/efi/test/efi_test.c:167:60: sparse: got unsigned short [usertype] *[addressable] variable_name
>> drivers/firmware/efi/test/efi_test.c:187:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
>> drivers/firmware/efi/test/efi_test.c:187:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:187:13: sparse: got unsigned long [usertype] *[addressable] status
>> drivers/firmware/efi/test/efi_test.c:194:35: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long *[addressable] data_size @@
drivers/firmware/efi/test/efi_test.c:194:35: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:194:35: sparse: got unsigned long *[addressable] data_size
drivers/firmware/efi/test/efi_test.c:209:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got void *[addressable] data @@
drivers/firmware/efi/test/efi_test.c:209:45: sparse: expected void [noderef] __user *to
drivers/firmware/efi/test/efi_test.c:209:45: sparse: got void *[addressable] data
>> drivers/firmware/efi/test/efi_test.c:215:19: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__pu_ptr @@ got unsigned int [usertype] *[addressable] attributes @@
>> drivers/firmware/efi/test/efi_test.c:215:19: sparse: expected unsigned int const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:215:19: sparse: got unsigned int [usertype] *[addressable] attributes
drivers/firmware/efi/test/efi_test.c:220:19: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long *[addressable] data_size @@
drivers/firmware/efi/test/efi_test.c:220:19: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:220:19: sparse: got unsigned long *[addressable] data_size
drivers/firmware/efi/test/efi_test.c:243:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct guid_t [usertype] *[addressable] vendor_guid @@
drivers/firmware/efi/test/efi_test.c:243:53: sparse: expected void const [noderef] __user *from
drivers/firmware/efi/test/efi_test.c:243:53: sparse: got struct guid_t [usertype] *[addressable] vendor_guid
drivers/firmware/efi/test/efi_test.c:248:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@
drivers/firmware/efi/test/efi_test.c:248:60: sparse: expected unsigned short [noderef] [usertype] __user *src
drivers/firmware/efi/test/efi_test.c:248:60: sparse: got unsigned short [usertype] *[addressable] variable_name
drivers/firmware/efi/test/efi_test.c:253:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __user * @@ got void *[addressable] data @@
drivers/firmware/efi/test/efi_test.c:253:39: sparse: expected void const [noderef] __user *
drivers/firmware/efi/test/efi_test.c:253:39: sparse: got void *[addressable] data
drivers/firmware/efi/test/efi_test.c:263:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:263:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:263:13: sparse: got unsigned long [usertype] *[addressable] status
drivers/firmware/efi/test/efi_test.c:292:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:292:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:292:13: sparse: got unsigned long [usertype] *[addressable] status
drivers/firmware/efi/test/efi_test.c:301:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct efi_time_cap_t [noderef] [usertype] __user *cap_local @@ got struct efi_time_cap_t [usertype] * @@
drivers/firmware/efi/test/efi_test.c:301:27: sparse: expected struct efi_time_cap_t [noderef] [usertype] __user *cap_local
drivers/firmware/efi/test/efi_test.c:301:27: sparse: got struct efi_time_cap_t [usertype] *
drivers/firmware/efi/test/efi_test.c:308:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct efi_time_t [usertype] *[addressable] time @@
drivers/firmware/efi/test/efi_test.c:308:41: sparse: expected void [noderef] __user *to
drivers/firmware/efi/test/efi_test.c:308:41: sparse: got struct efi_time_t [usertype] *[addressable] time
drivers/firmware/efi/test/efi_test.c:325:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct efi_time_t [usertype] *[addressable] time @@
drivers/firmware/efi/test/efi_test.c:325:46: sparse: expected void const [noderef] __user *from
drivers/firmware/efi/test/efi_test.c:325:46: sparse: got struct efi_time_t [usertype] *[addressable] time
drivers/firmware/efi/test/efi_test.c:330:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:330:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:330:13: sparse: got unsigned long [usertype] *[addressable] status
drivers/firmware/efi/test/efi_test.c:354:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:354:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:354:13: sparse: got unsigned long [usertype] *[addressable] status
>> drivers/firmware/efi/test/efi_test.c:360:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char const [noderef] __user *__pu_ptr @@ got unsigned char [usertype] *[addressable] enabled @@
>> drivers/firmware/efi/test/efi_test.c:360:38: sparse: expected unsigned char const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:360:38: sparse: got unsigned char [usertype] *[addressable] enabled
drivers/firmware/efi/test/efi_test.c:365:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct efi_time_t [usertype] *[addressable] time @@
drivers/firmware/efi/test/efi_test.c:365:47: sparse: expected void [noderef] __user *to
drivers/firmware/efi/test/efi_test.c:365:47: sparse: got struct efi_time_t [usertype] *[addressable] time
drivers/firmware/efi/test/efi_test.c:389:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct efi_time_t [usertype] *[addressable] time @@
drivers/firmware/efi/test/efi_test.c:389:60: sparse: expected void const [noderef] __user *from
drivers/firmware/efi/test/efi_test.c:389:60: sparse: got struct efi_time_t [usertype] *[addressable] time
drivers/firmware/efi/test/efi_test.c:397:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:397:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:397:13: sparse: got unsigned long [usertype] *[addressable] status
>> drivers/firmware/efi/test/efi_test.c:421:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long [noderef] __user *register __p @@ got unsigned long *[addressable] variable_name_size @@
drivers/firmware/efi/test/efi_test.c:421:21: sparse: expected unsigned long [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:421:21: sparse: got unsigned long *[addressable] variable_name_size
drivers/firmware/efi/test/efi_test.c:429:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct guid_t [usertype] *[addressable] vendor_guid @@
drivers/firmware/efi/test/efi_test.c:429:52: sparse: expected void const [noderef] __user *from
drivers/firmware/efi/test/efi_test.c:429:52: sparse: got struct guid_t [usertype] *[addressable] vendor_guid
drivers/firmware/efi/test/efi_test.c:439:52: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@
drivers/firmware/efi/test/efi_test.c:439:52: sparse: expected unsigned short [noderef] [usertype] __user *src
drivers/firmware/efi/test/efi_test.c:439:52: sparse: got unsigned short [usertype] *[addressable] variable_name
drivers/firmware/efi/test/efi_test.c:452:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@
drivers/firmware/efi/test/efi_test.c:452:52: sparse: expected unsigned short [noderef] [usertype] __user *src
drivers/firmware/efi/test/efi_test.c:452:52: sparse: got unsigned short [usertype] *[addressable] variable_name
drivers/firmware/efi/test/efi_test.c:461:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:461:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:461:13: sparse: got unsigned long [usertype] *[addressable] status
>> drivers/firmware/efi/test/efi_test.c:468:35: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long *[addressable] variable_name_size @@
drivers/firmware/efi/test/efi_test.c:468:35: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:468:35: sparse: got unsigned long *[addressable] variable_name_size
drivers/firmware/efi/test/efi_test.c:479:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *dst @@ got unsigned short [usertype] *[addressable] variable_name @@
drivers/firmware/efi/test/efi_test.c:479:62: sparse: expected unsigned short [noderef] [usertype] __user *dst
drivers/firmware/efi/test/efi_test.c:479:62: sparse: got unsigned short [usertype] *[addressable] variable_name
drivers/firmware/efi/test/efi_test.c:487:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long *[addressable] variable_name_size @@
drivers/firmware/efi/test/efi_test.c:487:21: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:487:21: sparse: got unsigned long *[addressable] variable_name_size
drivers/firmware/efi/test/efi_test.c:494:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct guid_t [usertype] *[addressable] vendor_guid @@
drivers/firmware/efi/test/efi_test.c:494:53: sparse: expected void [noderef] __user *to
drivers/firmware/efi/test/efi_test.c:494:53: sparse: got struct guid_t [usertype] *[addressable] vendor_guid
drivers/firmware/efi/test/efi_test.c:522:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:522:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:522:13: sparse: got unsigned long [usertype] *[addressable] status
>> drivers/firmware/efi/test/efi_test.c:529:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__pu_ptr @@ got unsigned int [usertype] *[addressable] high_count @@
drivers/firmware/efi/test/efi_test.c:529:13: sparse: expected unsigned int const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:529:13: sparse: got unsigned int [usertype] *[addressable] high_count
drivers/firmware/efi/test/efi_test.c:546:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __user * @@ got void * @@
drivers/firmware/efi/test/efi_test.c:546:37: sparse: expected void const [noderef] __user *
drivers/firmware/efi/test/efi_test.c:546:37: sparse: got void *
drivers/firmware/efi/test/efi_test.c:575:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] status @@
drivers/firmware/efi/test/efi_test.c:575:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:575:13: sparse: got unsigned long [usertype] *[addressable] status
>> drivers/firmware/efi/test/efi_test.c:581:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long long const [noderef] __user *__pu_ptr @@ got unsigned long long [usertype] *[addressable] maximum_variable_storage_size @@
>> drivers/firmware/efi/test/efi_test.c:581:13: sparse: expected unsigned long long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:581:13: sparse: got unsigned long long [usertype] *[addressable] maximum_variable_storage_size
drivers/firmware/efi/test/efi_test.c:585:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long long const [noderef] __user *__pu_ptr @@ got unsigned long long [usertype] *[addressable] remaining_variable_storage_size @@
drivers/firmware/efi/test/efi_test.c:585:13: sparse: expected unsigned long long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:585:13: sparse: got unsigned long long [usertype] *[addressable] remaining_variable_storage_size
drivers/firmware/efi/test/efi_test.c:589:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long long const [noderef] __user *__pu_ptr @@ got unsigned long long [usertype] *[addressable] maximum_variable_size @@
drivers/firmware/efi/test/efi_test.c:589:13: sparse: expected unsigned long long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:589:13: sparse: got unsigned long long [usertype] *[addressable] maximum_variable_size
>> drivers/firmware/efi/test/efi_test.c:625:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct efi_capsule_header_t [usertype] *[noderef] __user *register __p @@ got struct efi_capsule_header_t [usertype] ** @@
>> drivers/firmware/efi/test/efi_test.c:625:21: sparse: expected struct efi_capsule_header_t [usertype] *[noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:625:21: sparse: got struct efi_capsule_header_t [usertype] **
drivers/firmware/efi/test/efi_test.c:629:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct efi_capsule_header_t [usertype] *[assigned] c @@
drivers/firmware/efi/test/efi_test.c:629:50: sparse: expected void const [noderef] __user *from
drivers/firmware/efi/test/efi_test.c:629:50: sparse: got struct efi_capsule_header_t [usertype] *[assigned] c
drivers/firmware/efi/test/efi_test.c:643:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long const [noderef] __user *__pu_ptr @@ got unsigned long [usertype] *[addressable] [assigned] status @@
drivers/firmware/efi/test/efi_test.c:643:13: sparse: expected unsigned long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:643:13: sparse: got unsigned long [usertype] *[addressable] [assigned] status
drivers/firmware/efi/test/efi_test.c:653:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned long long const [noderef] __user *__pu_ptr @@ got unsigned long long [usertype] *[addressable] [assigned] maximum_capsule_size @@
drivers/firmware/efi/test/efi_test.c:653:13: sparse: expected unsigned long long const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:653:13: sparse: got unsigned long long [usertype] *[addressable] [assigned] maximum_capsule_size
>> drivers/firmware/efi/test/efi_test.c:658:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__pu_ptr @@ got int *[addressable] [assigned] reset_type @@
>> drivers/firmware/efi/test/efi_test.c:658:13: sparse: expected int const [noderef] __user *__pu_ptr
drivers/firmware/efi/test/efi_test.c:658:13: sparse: got int *[addressable] [assigned] reset_type
drivers/firmware/efi/test/efi_test.c:35:27: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [usertype] *s @@ got unsigned short [noderef] [usertype] __user *str @@
drivers/firmware/efi/test/efi_test.c:35:27: sparse: expected unsigned short [usertype] *s
drivers/firmware/efi/test/efi_test.c:35:27: sparse: got unsigned short [noderef] [usertype] __user *str
>> drivers/firmware/efi/test/efi_test.c:44:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [noderef] __user *register __p @@ got unsigned short [usertype] * @@
>> drivers/firmware/efi/test/efi_test.c:44:13: sparse: expected unsigned short [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:44:13: sparse: got unsigned short [usertype] *
drivers/firmware/efi/test/efi_test.c:50:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [noderef] __user *register __p @@ got unsigned short [usertype] * @@
drivers/firmware/efi/test/efi_test.c:50:21: sparse: expected unsigned short [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:50:21: sparse: got unsigned short [usertype] *
drivers/firmware/efi/test/efi_test.c:35:27: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [usertype] *[assigned] s @@ got unsigned short [noderef] [usertype] __user *str @@
drivers/firmware/efi/test/efi_test.c:35:27: sparse: expected unsigned short [usertype] *[assigned] s
drivers/firmware/efi/test/efi_test.c:35:27: sparse: got unsigned short [noderef] [usertype] __user *str
>> drivers/firmware/efi/test/efi_test.c:44:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [noderef] __user *register __p @@ got unsigned short [usertype] * @@
>> drivers/firmware/efi/test/efi_test.c:44:13: sparse: expected unsigned short [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:44:13: sparse: got unsigned short [usertype] *
drivers/firmware/efi/test/efi_test.c:50:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [noderef] __user *register __p @@ got unsigned short [usertype] * @@
drivers/firmware/efi/test/efi_test.c:50:21: sparse: expected unsigned short [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:50:21: sparse: got unsigned short [usertype] *
drivers/firmware/efi/test/efi_test.c:35:27: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [usertype] *[assigned] s @@ got unsigned short [noderef] [usertype] __user *str @@
drivers/firmware/efi/test/efi_test.c:35:27: sparse: expected unsigned short [usertype] *[assigned] s
drivers/firmware/efi/test/efi_test.c:35:27: sparse: got unsigned short [noderef] [usertype] __user *str
>> drivers/firmware/efi/test/efi_test.c:44:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [noderef] __user *register __p @@ got unsigned short [usertype] * @@
>> drivers/firmware/efi/test/efi_test.c:44:13: sparse: expected unsigned short [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:44:13: sparse: got unsigned short [usertype] *
drivers/firmware/efi/test/efi_test.c:50:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [noderef] __user *register __p @@ got unsigned short [usertype] * @@
drivers/firmware/efi/test/efi_test.c:50:21: sparse: expected unsigned short [noderef] __user *register __p
drivers/firmware/efi/test/efi_test.c:50:21: sparse: got unsigned short [usertype] *
--
>> drivers/video/fbdev/pxa3xx-gcu.c:412:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got char const *buff @@
>> drivers/video/fbdev/pxa3xx-gcu.c:412:43: sparse: expected void const [noderef] __user *from
drivers/video/fbdev/pxa3xx-gcu.c:412:43: sparse: got char const *buff
drivers/video/fbdev/pxa3xx-gcu.c:572:33: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected int ( *write )( ... ) @@ got int ( * )( ... ) @@
drivers/video/fbdev/pxa3xx-gcu.c:572:33: sparse: expected int ( *write )( ... )
drivers/video/fbdev/pxa3xx-gcu.c:572:33: sparse: got int ( * )( ... )
drivers/video/fbdev/pxa3xx-gcu.c:153:15: sparse: sparse: memset with byte count of 262144
--
>> drivers/video/fbdev/pxafb.c:916:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *video_mem @@ got void * @@
>> drivers/video/fbdev/pxafb.c:916:24: sparse: expected void [noderef] __iomem *video_mem
drivers/video/fbdev/pxafb.c:916:24: sparse: got void *
>> drivers/video/fbdev/pxafb.c:921:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile *x @@ got void [noderef] __iomem *video_mem @@
drivers/video/fbdev/pxafb.c:921:47: sparse: expected void const volatile *x
>> drivers/video/fbdev/pxafb.c:921:47: sparse: got void [noderef] __iomem *video_mem
>> drivers/video/fbdev/pxafb.c:977:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *virt @@ got void [noderef] __iomem *video_mem @@
drivers/video/fbdev/pxafb.c:977:53: sparse: expected void *virt
drivers/video/fbdev/pxafb.c:977:53: sparse: got void [noderef] __iomem *video_mem
drivers/video/fbdev/pxafb.c:1714:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *video_mem @@ got void * @@
drivers/video/fbdev/pxafb.c:1714:24: sparse: expected void [noderef] __iomem *video_mem
drivers/video/fbdev/pxafb.c:1714:24: sparse: got void *
drivers/video/fbdev/pxafb.c:1718:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile *x @@ got void [noderef] __iomem *video_mem @@
drivers/video/fbdev/pxafb.c:1718:47: sparse: expected void const volatile *x
drivers/video/fbdev/pxafb.c:1718:47: sparse: got void [noderef] __iomem *video_mem
drivers/video/fbdev/pxafb.c:2392:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *virt @@ got void [noderef] __iomem *video_mem @@
drivers/video/fbdev/pxafb.c:2392:29: sparse: expected void *virt
drivers/video/fbdev/pxafb.c:2392:29: sparse: got void [noderef] __iomem *video_mem
drivers/video/fbdev/pxafb.c:2418:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *virt @@ got void [noderef] __iomem *video_mem @@
drivers/video/fbdev/pxafb.c:2418:29: sparse: expected void *virt
drivers/video/fbdev/pxafb.c:2418:29: sparse: got void [noderef] __iomem *video_mem
--
>> drivers/soc/qcom/smd-rpm.c:177:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem *from @@ got unsigned char const * @@
>> drivers/soc/qcom/smd-rpm.c:177:25: sparse: expected void const volatile [noderef] __iomem *from
drivers/soc/qcom/smd-rpm.c:177:25: sparse: got unsigned char const *
vim +71 drivers/mtd/maps/pxa2xx-flash.c
e644f7d6289456 Todd Poynor 2005-11-07 45
06f25510692385 Bill Pemberton 2012-11-19 46 static int pxa2xx_flash_probe(struct platform_device *pdev)
e644f7d6289456 Todd Poynor 2005-11-07 47 {
d20d5a5780a014 Jingoo Han 2013-07-30 48 struct flash_platform_data *flash = dev_get_platdata(&pdev->dev);
e644f7d6289456 Todd Poynor 2005-11-07 49 struct pxa2xx_flash_info *info;
e644f7d6289456 Todd Poynor 2005-11-07 50 struct resource *res;
e644f7d6289456 Todd Poynor 2005-11-07 51
e644f7d6289456 Todd Poynor 2005-11-07 52 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
e644f7d6289456 Todd Poynor 2005-11-07 53 if (!res)
e644f7d6289456 Todd Poynor 2005-11-07 54 return -ENODEV;
e644f7d6289456 Todd Poynor 2005-11-07 55
2bfefa4c9632fb Julia Lawall 2010-05-13 56 info = kzalloc(sizeof(struct pxa2xx_flash_info), GFP_KERNEL);
e644f7d6289456 Todd Poynor 2005-11-07 57 if (!info)
e644f7d6289456 Todd Poynor 2005-11-07 58 return -ENOMEM;
e644f7d6289456 Todd Poynor 2005-11-07 59
7c4bb4f8f8ad6d Geert Uytterhoeven 2013-11-12 60 info->map.name = flash->name;
e644f7d6289456 Todd Poynor 2005-11-07 61 info->map.bankwidth = flash->width;
e644f7d6289456 Todd Poynor 2005-11-07 62 info->map.phys = res->start;
28f65c11f2ffb3 Joe Perches 2011-06-09 63 info->map.size = resource_size(res);
e644f7d6289456 Todd Poynor 2005-11-07 64
e644f7d6289456 Todd Poynor 2005-11-07 65 info->map.virt = ioremap(info->map.phys, info->map.size);
e644f7d6289456 Todd Poynor 2005-11-07 66 if (!info->map.virt) {
e644f7d6289456 Todd Poynor 2005-11-07 67 printk(KERN_WARNING "Failed to ioremap %s\n",
e644f7d6289456 Todd Poynor 2005-11-07 68 info->map.name);
e644f7d6289456 Todd Poynor 2005-11-07 69 return -ENOMEM;
e644f7d6289456 Todd Poynor 2005-11-07 70 }
97ef08ae275e38 Christoph Hellwig 2019-08-17 @71 info->map.cached = ioremap_cache(info->map.phys, info->map.size);
e644f7d6289456 Todd Poynor 2005-11-07 72 if (!info->map.cached)
e644f7d6289456 Todd Poynor 2005-11-07 73 printk(KERN_WARNING "Failed to ioremap cached %s\n",
e644f7d6289456 Todd Poynor 2005-11-07 74 info->map.name);
e644f7d6289456 Todd Poynor 2005-11-07 75 info->map.inval_cache = pxa2xx_map_inval_cache;
e644f7d6289456 Todd Poynor 2005-11-07 76 simple_map_init(&info->map);
e644f7d6289456 Todd Poynor 2005-11-07 77
e644f7d6289456 Todd Poynor 2005-11-07 78 printk(KERN_NOTICE
e644f7d6289456 Todd Poynor 2005-11-07 79 "Probing %s at physical address 0x%08lx"
e644f7d6289456 Todd Poynor 2005-11-07 80 " (%d-bit bankwidth)\n",
e644f7d6289456 Todd Poynor 2005-11-07 81 info->map.name, (unsigned long)info->map.phys,
e644f7d6289456 Todd Poynor 2005-11-07 82 info->map.bankwidth * 8);
e644f7d6289456 Todd Poynor 2005-11-07 83
e644f7d6289456 Todd Poynor 2005-11-07 84 info->mtd = do_map_probe(flash->map_name, &info->map);
e644f7d6289456 Todd Poynor 2005-11-07 85
e644f7d6289456 Todd Poynor 2005-11-07 86 if (!info->mtd) {
e644f7d6289456 Todd Poynor 2005-11-07 @87 iounmap((void *)info->map.virt);
e644f7d6289456 Todd Poynor 2005-11-07 88 if (info->map.cached)
e644f7d6289456 Todd Poynor 2005-11-07 @89 iounmap(info->map.cached);
e644f7d6289456 Todd Poynor 2005-11-07 90 return -EIO;
e644f7d6289456 Todd Poynor 2005-11-07 91 }
2451581f94e3f5 Frans Klaver 2015-06-10 92 info->mtd->dev.parent = &pdev->dev;
e644f7d6289456 Todd Poynor 2005-11-07 93
42d7fbe223ab87 Artem Bityutskiy 2012-03-09 94 mtd_device_parse_register(info->mtd, probes, NULL, flash->parts,
42d7fbe223ab87 Artem Bityutskiy 2012-03-09 95 flash->nr_parts);
e644f7d6289456 Todd Poynor 2005-11-07 96
7a192ec334cab9 Ming Lei 2009-02-06 97 platform_set_drvdata(pdev, info);
e644f7d6289456 Todd Poynor 2005-11-07 98 return 0;
e644f7d6289456 Todd Poynor 2005-11-07 99 }
e644f7d6289456 Todd Poynor 2005-11-07 100
:::::: The code at line 71 was first introduced by commit
:::::: 97ef08ae275e388321dcde9190adbaa0c67b93fe mtd: pxa2xx: Use ioremap_cache insted of ioremap_cached
:::::: TO: Christoph Hellwig <hch(a)lst.de>
:::::: CC: Richard Weinberger <richard(a)nod.at>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months