net/netfilter/nft_cmp.c:128:31: sparse: sparse: cast to restricted __be16
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ab774587903771821b59471cc723bba6d893942
commit: ff4d90a89d3d4d9814e0a2696509a7d495be4163 netfilter: nftables_offload: VLAN id needs host byteorder in flow dissector
date: 7 months ago
config: i386-randconfig-s031-20211116 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ff4d90a89d3d4d9814e0a2696509a7d495be4163
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash net/netfilter/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> net/netfilter/nft_cmp.c:128:31: sparse: sparse: cast to restricted __be16
>> net/netfilter/nft_cmp.c:128:31: sparse: sparse: cast to restricted __be16
>> net/netfilter/nft_cmp.c:128:31: sparse: sparse: cast to restricted __be16
>> net/netfilter/nft_cmp.c:128:31: sparse: sparse: cast to restricted __be16
>> net/netfilter/nft_cmp.c:131:31: sparse: sparse: cast to restricted __be32
>> net/netfilter/nft_cmp.c:131:31: sparse: sparse: cast to restricted __be32
>> net/netfilter/nft_cmp.c:131:31: sparse: sparse: cast to restricted __be32
>> net/netfilter/nft_cmp.c:131:31: sparse: sparse: cast to restricted __be32
>> net/netfilter/nft_cmp.c:131:31: sparse: sparse: cast to restricted __be32
>> net/netfilter/nft_cmp.c:131:31: sparse: sparse: cast to restricted __be32
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
>> net/netfilter/nft_cmp.c:134:31: sparse: sparse: cast to restricted __be64
net/netfilter/nft_cmp.c: note: in included file:
include/net/netfilter/nf_tables_core.h:53:16: sparse: sparse: incorrect type in return expression (different base types) @@ expected unsigned int @@ got restricted __le32 [usertype] @@
include/net/netfilter/nf_tables_core.h:53:16: sparse: expected unsigned int
include/net/netfilter/nf_tables_core.h:53:16: sparse: got restricted __le32 [usertype]
vim +128 net/netfilter/nft_cmp.c
122
123 static void nft_payload_n2h(union nft_cmp_offload_data *data,
124 const u8 *val, u32 len)
125 {
126 switch (len) {
127 case 2:
> 128 data->val16 = ntohs(*((u16 *)val));
129 break;
130 case 4:
> 131 data->val32 = ntohl(*((u32 *)val));
132 break;
133 case 8:
> 134 data->val64 = be64_to_cpu(*((u64 *)val));
135 break;
136 default:
137 WARN_ON_ONCE(1);
138 break;
139 }
140 }
141
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2393:5: sparse: sparse: symbol 'mt7915_mcu_set_fixed_rate' was not declared. Should it be static?
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ab774587903771821b59471cc723bba6d893942
commit: 9a93364d6595358a11d07e7f4261ae263ae2a02a mt76: mt7915: rework debugfs fixed-rate knob
date: 4 weeks ago
config: riscv-allmodconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 9a93364d6595358a11d07e7f4261ae263ae2a02a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash drivers/net/wireless/mediatek/mt76/mt7915/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2393:5: sparse: sparse: symbol 'mt7915_mcu_set_fixed_rate' was not declared. Should it be static?
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2564:22: sparse: sparse: cast to restricted __le32
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2564:22: sparse: sparse: cast from restricted __le16
vim +/mt7915_mcu_set_fixed_rate +2393 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
e57b7901469fc0b Ryder Lee 2020-04-25 2391 }
e57b7901469fc0b Ryder Lee 2020-04-25 2392
9fac3c81eebd81b Ryder Lee 2020-04-25 @2393 int mt7915_mcu_set_fixed_rate(struct mt7915_dev *dev,
9fac3c81eebd81b Ryder Lee 2020-04-25 2394 struct ieee80211_sta *sta, u32 rate)
9fac3c81eebd81b Ryder Lee 2020-04-25 2395 {
9fac3c81eebd81b Ryder Lee 2020-04-25 2396 struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
9fac3c81eebd81b Ryder Lee 2020-04-25 2397 struct mt7915_vif *mvif = msta->vif;
9fac3c81eebd81b Ryder Lee 2020-04-25 2398 struct sta_rec_ra_fixed *ra;
9fac3c81eebd81b Ryder Lee 2020-04-25 2399 struct sk_buff *skb;
9fac3c81eebd81b Ryder Lee 2020-04-25 2400 struct tlv *tlv;
3e68af622254bad Ryder Lee 2020-05-12 2401 int len = sizeof(struct sta_req_hdr) + sizeof(*ra);
9fac3c81eebd81b Ryder Lee 2020-04-25 2402
3e68af622254bad Ryder Lee 2020-05-12 2403 skb = mt7915_mcu_alloc_sta_req(dev, mvif, msta, len);
9fac3c81eebd81b Ryder Lee 2020-04-25 2404 if (IS_ERR(skb))
9fac3c81eebd81b Ryder Lee 2020-04-25 2405 return PTR_ERR(skb);
9fac3c81eebd81b Ryder Lee 2020-04-25 2406
9fac3c81eebd81b Ryder Lee 2020-04-25 2407 tlv = mt7915_mcu_add_tlv(skb, STA_REC_RA_UPDATE, sizeof(*ra));
9fac3c81eebd81b Ryder Lee 2020-04-25 2408 ra = (struct sta_rec_ra_fixed *)tlv;
9fac3c81eebd81b Ryder Lee 2020-04-25 2409
9fac3c81eebd81b Ryder Lee 2020-04-25 2410 if (!rate) {
9fac3c81eebd81b Ryder Lee 2020-04-25 2411 ra->field = cpu_to_le32(RATE_PARAM_AUTO);
9fac3c81eebd81b Ryder Lee 2020-04-25 2412 goto out;
9fac3c81eebd81b Ryder Lee 2020-04-25 2413 }
9fac3c81eebd81b Ryder Lee 2020-04-25 2414
4d2423326de9e98 Ryder Lee 2021-08-07 2415 ra->field = cpu_to_le32(RATE_PARAM_FIXED);
9fac3c81eebd81b Ryder Lee 2020-04-25 2416 ra->phy.type = FIELD_GET(RATE_CFG_PHY_TYPE, rate);
9fac3c81eebd81b Ryder Lee 2020-04-25 2417 ra->phy.bw = FIELD_GET(RATE_CFG_BW, rate);
9fac3c81eebd81b Ryder Lee 2020-04-25 2418 ra->phy.nss = FIELD_GET(RATE_CFG_NSS, rate);
9fac3c81eebd81b Ryder Lee 2020-04-25 2419 ra->phy.mcs = FIELD_GET(RATE_CFG_MCS, rate);
9fac3c81eebd81b Ryder Lee 2020-04-25 2420 ra->phy.stbc = FIELD_GET(RATE_CFG_STBC, rate);
9fac3c81eebd81b Ryder Lee 2020-04-25 2421
9fac3c81eebd81b Ryder Lee 2020-04-25 2422 if (ra->phy.bw)
9fac3c81eebd81b Ryder Lee 2020-04-25 2423 ra->phy.ldpc = 7;
9fac3c81eebd81b Ryder Lee 2020-04-25 2424 else
9fac3c81eebd81b Ryder Lee 2020-04-25 2425 ra->phy.ldpc = FIELD_GET(RATE_CFG_LDPC, rate) * 7;
9fac3c81eebd81b Ryder Lee 2020-04-25 2426
9fac3c81eebd81b Ryder Lee 2020-04-25 2427 /* HT/VHT - SGI: 1, LGI: 0; HE - SGI: 0, MGI: 1, LGI: 2 */
4d2423326de9e98 Ryder Lee 2021-08-07 2428 if (ra->phy.type > MT_PHY_TYPE_VHT) {
4d2423326de9e98 Ryder Lee 2021-08-07 2429 ra->phy.he_ltf = FIELD_GET(RATE_CFG_HE_LTF, rate) * 85;
4d2423326de9e98 Ryder Lee 2021-08-07 2430 ra->phy.sgi = FIELD_GET(RATE_CFG_GI, rate) * 85;
4d2423326de9e98 Ryder Lee 2021-08-07 2431 } else {
4d2423326de9e98 Ryder Lee 2021-08-07 2432 ra->phy.sgi = FIELD_GET(RATE_CFG_GI, rate) * 15;
4d2423326de9e98 Ryder Lee 2021-08-07 2433 }
9fac3c81eebd81b Ryder Lee 2020-04-25 2434
9fac3c81eebd81b Ryder Lee 2020-04-25 2435 out:
fa62d0e0080bca7 Felix Fietkau 2020-09-30 2436 return mt76_mcu_skb_send_msg(&dev->mt76, skb,
c203dd621780842 Felix Fietkau 2021-01-06 2437 MCU_EXT_CMD(STA_REC_UPDATE), true);
9fac3c81eebd81b Ryder Lee 2020-04-25 2438 }
:::::: The code at line 2393 was first introduced by commit
:::::: 9fac3c81eebd81bbce8b050e15b03d3490841717 mt76: mt7915: set peer Tx fixed rate through debugfs
:::::: TO: Ryder Lee <ryder.lee(a)mediatek.com>
:::::: CC: Felix Fietkau <nbd(a)nbd.name>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
[mcgrof-next:20211116-sysctl-cleanups-v4 6/35] include/linux/export.h:98:9: error: expected expression before 'extern'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20211116-sysctl-cleanups-v4
head: 5347239461f25fc50aa761923245b9ec4a4aafec
commit: 88b045e811bcb4988e2f37077d8a582b7a111b68 [6/35] sysctl: Add const decoration for static boundary value variables
config: nios2-defconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/com...
git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
git fetch --no-tags mcgrof-next 20211116-sysctl-cleanups-v4
git checkout 88b045e811bcb4988e2f37077d8a582b7a111b68
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=nios2 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
kernel/sysctl.c:1775:36: error: 'sysctl_sched_min_granularity' undeclared here (not in a function)
1775 | .data = &sysctl_sched_min_granularity,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:1778:35: error: 'sched_proc_update_handler' undeclared here (not in a function); did you mean 'sched_rt_handler'?
1778 | .proc_handler = sched_proc_update_handler,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| sched_rt_handler
kernel/sysctl.c:1784:36: error: 'sysctl_sched_latency' undeclared here (not in a function); did you mean 'sysctl_schedstats'?
1784 | .data = &sysctl_sched_latency,
| ^~~~~~~~~~~~~~~~~~~~
| sysctl_schedstats
kernel/sysctl.c:1793:36: error: 'sysctl_sched_wakeup_granularity' undeclared here (not in a function)
1793 | .data = &sysctl_sched_wakeup_granularity,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from include/linux/cpumask.h:10,
from include/linux/mm_types_task.h:14,
from include/linux/mm_types.h:5,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from kernel/sysctl.c:22:
>> include/linux/export.h:98:9: error: expected expression before 'extern'
98 | extern typeof(sym) sym; \
| ^~~~~~
include/linux/export.h:152:41: note: in expansion of macro '___EXPORT_SYMBOL'
152 | #define __EXPORT_SYMBOL(sym, sec, ns) ___EXPORT_SYMBOL(sym, sec, ns)
| ^~~~~~~~~~~~~~~~
include/linux/export.h:160:41: note: in expansion of macro '__EXPORT_SYMBOL'
160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:163:41: note: in expansion of macro '_EXPORT_SYMBOL'
163 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
kernel/sysctl.c:3387:1: note: in expansion of macro 'EXPORT_SYMBOL'
3387 | EXPORT_SYMBOL(proc_dobool);
| ^~~~~~~~~~~~~
kernel/sysctl.c:1772: error: unterminated #ifdef
1772 | #ifdef CONFIG_SCHED_DEBUG
|
kernel/sysctl.c:1733: error: unterminated #if
1733 | #if defined(CONFIG_SYSCTL)
|
kernel/sysctl.c:1764:25: warning: 'kern_table' defined but not used [-Wunused-variable]
1764 | static struct ctl_table kern_table[] = {
| ^~~~~~~~~~
kernel/sysctl.c:1482:12: warning: 'proc_do_cad_pid' defined but not used [-Wunused-function]
1482 | static int proc_do_cad_pid(struct ctl_table *table, int write, void *buffer,
| ^~~~~~~~~~~~~~~
kernel/sysctl.c:1187:12: warning: 'proc_dostring_coredump' defined but not used [-Wunused-function]
1187 | static int proc_dostring_coredump(struct ctl_table *table, int write,
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:1177:12: warning: 'proc_dointvec_minmax_coredump' defined but not used [-Wunused-function]
1177 | static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:1156:12: warning: 'proc_dopipe_max_size' defined but not used [-Wunused-function]
1156 | static int proc_dopipe_max_size(struct ctl_table *table, int write,
| ^~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:931:12: warning: 'proc_dointvec_minmax_sysadmin' defined but not used [-Wunused-function]
931 | static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:891:12: warning: 'proc_taint' defined but not used [-Wunused-function]
891 | static int proc_taint(struct ctl_table *table, int write,
| ^~~~~~~~~~
kernel/sysctl.c:847:12: warning: 'proc_dointvec_minmax_warn_RT_change' defined but not used [-Wunused-function]
847 | static int proc_dointvec_minmax_warn_RT_change(struct ctl_table *table,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:185:18: warning: 'max_extfrag_threshold' defined but not used [-Wunused-const-variable=]
185 | static const int max_extfrag_threshold = 1000;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:184:18: warning: 'min_extfrag_threshold' defined but not used [-Wunused-const-variable=]
184 | static const int min_extfrag_threshold;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sysctl.c:128:18: warning: 'cap_last_cap' defined but not used [-Wunused-const-variable=]
128 | static const int cap_last_cap = CAP_LAST_CAP;
| ^~~~~~~~~~~~
kernel/sysctl.c:127:18: warning: 'ngroups_max' defined but not used [-Wunused-const-variable=]
127 | static const int ngroups_max = NGROUPS_MAX;
| ^~~~~~~~~~~
kernel/sysctl.c:125:18: warning: 'minolduid' defined but not used [-Wunused-const-variable=]
125 | static const int minolduid;
| ^~~~~~~~~
kernel/sysctl.c:124:18: warning: 'maxolduid' defined but not used [-Wunused-const-variable=]
124 | static const int maxolduid = 65535;
| ^~~~~~~~~
kernel/sysctl.c:121:28: warning: 'dirty_bytes_min' defined but not used [-Wunused-const-variable=]
121 | static const unsigned long dirty_bytes_min = 2 * PAGE_SIZE;
| ^~~~~~~~~~~~~~~
kernel/sysctl.c:114:18: warning: 'ten_thousand' defined but not used [-Wunused-const-variable=]
114 | static const int ten_thousand = 10000;
| ^~~~~~~~~~~~
kernel/sysctl.c:112:28: warning: 'long_max' defined but not used [-Wunused-const-variable=]
112 | static const unsigned long long_max = LONG_MAX;
| ^~~~~~~~
kernel/sysctl.c:111:28: warning: 'one_ul' defined but not used [-Wunused-const-variable=]
111 | static const unsigned long one_ul = 1;
| ^~~~~~
kernel/sysctl.c:110:28: warning: 'zero_ul' defined but not used [-Wunused-const-variable=]
110 | static const unsigned long zero_ul;
| ^~~~~~~
vim +/extern +98 include/linux/export.h
69a94abb82eed2 Masahiro Yamada 2019-09-09 84
ce2b617ce8cbb7 Jessica Yu 2019-11-12 85 /*
ce2b617ce8cbb7 Jessica Yu 2019-11-12 86 * For every exported symbol, do the following:
ce2b617ce8cbb7 Jessica Yu 2019-11-12 87 *
ce2b617ce8cbb7 Jessica Yu 2019-11-12 88 * - If applicable, place a CRC entry in the __kcrctab section.
ce2b617ce8cbb7 Jessica Yu 2019-11-12 89 * - Put the name of the symbol and namespace (empty string "" for none) in
ce2b617ce8cbb7 Jessica Yu 2019-11-12 90 * __ksymtab_strings.
ce2b617ce8cbb7 Jessica Yu 2019-11-12 91 * - Place a struct kernel_symbol entry in the __ksymtab section.
ce2b617ce8cbb7 Jessica Yu 2019-11-12 92 *
ce2b617ce8cbb7 Jessica Yu 2019-11-12 93 * note on .section use: we specify progbits since usage of the "M" (SHF_MERGE)
ce2b617ce8cbb7 Jessica Yu 2019-11-12 94 * section flag requires it. Use '%progbits' instead of '@progbits' since the
ce2b617ce8cbb7 Jessica Yu 2019-11-12 95 * former apparently works on all arches according to the binutils source.
ce2b617ce8cbb7 Jessica Yu 2019-11-12 96 */
c3a6cf19e695c8 Masahiro Yamada 2019-10-18 97 #define ___EXPORT_SYMBOL(sym, sec, ns) \
f50169324df4ad Paul Gortmaker 2011-05-23 @98 extern typeof(sym) sym; \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 99 extern const char __kstrtab_##sym[]; \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 100 extern const char __kstrtabns_##sym[]; \
8651ec01daedad Matthias Maennich 2019-09-06 101 __CRC_SYMBOL(sym, sec); \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 102 asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1 \n" \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 103 "__kstrtab_" #sym ": \n" \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 104 " .asciz \"" #sym "\" \n" \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 105 "__kstrtabns_" #sym ": \n" \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 106 " .asciz \"" ns "\" \n" \
ce2b617ce8cbb7 Jessica Yu 2019-11-12 107 " .previous \n"); \
7290d58095712a Ard Biesheuvel 2018-08-21 108 __KSYMTAB_ENTRY(sym, sec)
f50169324df4ad Paul Gortmaker 2011-05-23 109
:::::: The code at line 98 was first introduced by commit
:::::: f50169324df4ad942e544386d136216c8617636a module.h: split out the EXPORT_SYMBOL into export.h
:::::: TO: Paul Gortmaker <paul.gortmaker(a)windriver.com>
:::::: CC: Paul Gortmaker <paul.gortmaker(a)windriver.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
Re: [PATCH v2] proc/vmcore: fix clearing user buffer by properly using clear_user()
by kernel test robot
Hi David,
I love your patch! Perhaps something to improve:
[auto build test WARNING on debe436e77c72fcee804fb867f275e6d31aa999c]
url: https://github.com/0day-ci/linux/commits/David-Hildenbrand/proc-vmcore-fi...
base: debe436e77c72fcee804fb867f275e6d31aa999c
config: sh-randconfig-s032-20211117 (attached as .config)
compiler: sh4-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/c20846d5e7db81244d84acaab61b47462...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review David-Hildenbrand/proc-vmcore-fix-clearing-user-buffer-by-properly-using-clear_user/20211112-172947
git checkout c20846d5e7db81244d84acaab61b47462aaa8d13
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> fs/proc/vmcore.c:161:34: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __user *__cl_addr @@ got char *buf @@
fs/proc/vmcore.c:161:34: sparse: expected void [noderef] __user *__cl_addr
fs/proc/vmcore.c:161:34: sparse: got char *buf
fs/proc/vmcore.c:161:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __user *__cl_addr @@
fs/proc/vmcore.c:161:34: sparse: expected void *addr
fs/proc/vmcore.c:161:34: sparse: got void [noderef] __user *__cl_addr
vim +161 fs/proc/vmcore.c
133
134 /* Reads a page from the oldmem device from given offset. */
135 ssize_t read_from_oldmem(char *buf, size_t count,
136 u64 *ppos, int userbuf,
137 bool encrypted)
138 {
139 unsigned long pfn, offset;
140 size_t nr_bytes;
141 ssize_t read = 0, tmp;
142
143 if (!count)
144 return 0;
145
146 offset = (unsigned long)(*ppos % PAGE_SIZE);
147 pfn = (unsigned long)(*ppos / PAGE_SIZE);
148
149 down_read(&vmcore_cb_rwsem);
150 do {
151 if (count > (PAGE_SIZE - offset))
152 nr_bytes = PAGE_SIZE - offset;
153 else
154 nr_bytes = count;
155
156 /* If pfn is not ram, return zeros for sparse dump files */
157 if (!pfn_is_ram(pfn)) {
158 tmp = 0;
159 if (!userbuf)
160 memset(buf, 0, nr_bytes);
> 161 else if (clear_user(buf, nr_bytes))
162 tmp = -EFAULT;
163 } else {
164 if (encrypted)
165 tmp = copy_oldmem_page_encrypted(pfn, buf,
166 nr_bytes,
167 offset,
168 userbuf);
169 else
170 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
171 offset, userbuf);
172 }
173 if (tmp < 0) {
174 up_read(&vmcore_cb_rwsem);
175 return tmp;
176 }
177
178 *ppos += nr_bytes;
179 count -= nr_bytes;
180 buf += nr_bytes;
181 read += nr_bytes;
182 ++pfn;
183 offset = 0;
184 } while (count);
185
186 up_read(&vmcore_cb_rwsem);
187 return read;
188 }
189
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
Hi Stephen,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8ab774587903771821b59471cc723bba6d893942
commit: b3ed524f84f573ece1aa2f26e9db3c34a593e0d1 drm/msm: allow compile_test on !ARM
date: 7 weeks ago
config: alpha-randconfig-s031-20211117 (attached as .config)
compiler: alpha-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b3ed524f84f573ece1aa2f26e9db3c34a593e0d1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_hfi.c: note: in included file:
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:104:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
--
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:387:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:460:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:467:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:493:15: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1412:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1412:31: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1412:31: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1418:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1418:31: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1418:31: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:858:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:860:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:862:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:864:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1066:23: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1458:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[noderef] mmio @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1458:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1458:20: sparse: got void *[noderef] mmio
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1460:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[noderef] rscc @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1460:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1460:28: sparse: got void *[noderef] rscc
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1560:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[noderef] mmio @@ got void [noderef] __iomem * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1560:19: sparse: expected void *[noderef] mmio
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1560:19: sparse: got void [noderef] __iomem *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1567:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[noderef] rscc @@ got void [noderef] __iomem * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1567:27: sparse: expected void *[noderef] rscc
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1567:27: sparse: got void [noderef] __iomem *
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1598:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[noderef] mmio @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1598:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1598:20: sparse: got void *[noderef] mmio
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1600:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[noderef] rscc @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1600:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1600:28: sparse: got void *[noderef] rscc
drivers/gpu/drm/msm/adreno/a6xx_gmu.c: note: in included file (through drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:224:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:240:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:320:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.c:362:15: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: too many warnings
--
>> drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1499:36: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *llc_mmio @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1499:36: sparse: expected void [noderef] __iomem *llc_mmio
drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1499:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu.c: note: in included file (through drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:44: sparse: got void *
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:98:34: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:41: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:41: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:122:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:122:43: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:122:43: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:121:31: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:122:33: sparse: sparse: dereference of noderef expression
--
>> drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c:658:26: sparse: sparse: symbol 'msm8x76_config' was not declared. Should it be static?
--
>> drivers/gpu/drm/msm/msm_ringbuffer.c:43:36: sparse: sparse: symbol 'msm_sched_ops' was not declared. Should it be static?
--
>> drivers/gpu/drm/msm/msm_fbdev.c:115:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] __iomem *screen_base @@ got void * @@
drivers/gpu/drm/msm/msm_fbdev.c:115:26: sparse: expected char [noderef] __iomem *screen_base
drivers/gpu/drm/msm/msm_fbdev.c:115:26: sparse: got void *
--
>> drivers/gpu/drm/msm/msm_drv.c:141:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/msm/msm_drv.c:141:31: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/msm/msm_drv.c:141:31: sparse: got void *
drivers/gpu/drm/msm/msm_drv.c:150:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/msm/msm_drv.c:150:31: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/msm/msm_drv.c:150:31: sparse: got void *
--
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:189:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:189:9: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:189:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:190:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:190:9: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:190:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:191:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:191:9: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:191:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:192:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:192:9: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:192:9: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:197:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:197:19: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:197:19: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:198:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:198:19: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:198:19: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:315:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *[noderef] __iomem cxdbg @@ got void [noderef] __iomem *cxdbg @@
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:315:41: sparse: expected void *[noderef] __iomem cxdbg
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:315:41: sparse: got void [noderef] __iomem *cxdbg
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:189:9: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:190:9: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:191:9: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:192:9: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:197:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:198:19: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c: note: in included file (through drivers/gpu/drm/msm/adreno/a6xx_gpu.h):
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:133:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:133:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:133:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:133:26: sparse: sparse: dereference of noderef expression
>> drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:36: sparse: got void *
drivers/gpu/drm/msm/adreno/a6xx_gmu.h:93:26: sparse: sparse: dereference of noderef expression
--
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1360:27: sparse: sparse: cast to restricted __be32
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1360:27: sparse: sparse: cast to restricted __be32
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1360:27: sparse: sparse: cast to restricted __be32
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1360:27: sparse: sparse: cast to restricted __be32
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1360:27: sparse: sparse: cast to restricted __be32
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1360:27: sparse: sparse: cast to restricted __be32
drivers/gpu/drm/msm/dsi/dsi_host.c:1361:17: sparse: sparse: cast to restricted __be32
drivers/gpu/drm/msm/dsi/dsi_host.c:1361:17: sparse: sparse: cast to restricted __be32
drivers/gpu/drm/msm/dsi/dsi_host.c:1361:17: sparse: sparse: cast to restricted __be32
drivers/gpu/drm/msm/dsi/dsi_host.c:1361:17: sparse: sparse: cast to restricted __be32
drivers/gpu/drm/msm/dsi/dsi_host.c:1361:17: sparse: sparse: cast to restricted __be32
drivers/gpu/drm/msm/dsi/dsi_host.c:1361:17: sparse: sparse: cast to restricted __be32
vim +104 drivers/gpu/drm/msm/adreno/a6xx_hfi.c
4b565ca5a2cbbb Jordan Crouse 2018-08-06 95
df0dff13290597 Jordan Crouse 2018-09-20 96 static int a6xx_hfi_wait_for_ack(struct a6xx_gmu *gmu, u32 id, u32 seqnum,
df0dff13290597 Jordan Crouse 2018-09-20 97 u32 *payload, u32 payload_size)
df0dff13290597 Jordan Crouse 2018-09-20 98 {
df0dff13290597 Jordan Crouse 2018-09-20 99 struct a6xx_hfi_queue *queue = &gmu->queues[HFI_RESPONSE_QUEUE];
df0dff13290597 Jordan Crouse 2018-09-20 100 u32 val;
df0dff13290597 Jordan Crouse 2018-09-20 101 int ret;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 102
df0dff13290597 Jordan Crouse 2018-09-20 103 /* Wait for a response */
df0dff13290597 Jordan Crouse 2018-09-20 @104 ret = gmu_poll_timeout(gmu, REG_A6XX_GMU_GMU2HOST_INTR_INFO, val,
df0dff13290597 Jordan Crouse 2018-09-20 105 val & A6XX_GMU_GMU2HOST_INTR_INFO_MSGQ, 100, 5000);
4b565ca5a2cbbb Jordan Crouse 2018-08-06 106
df0dff13290597 Jordan Crouse 2018-09-20 107 if (ret) {
6a41da17e87dee Mamta Shukla 2018-10-20 108 DRM_DEV_ERROR(gmu->dev,
df0dff13290597 Jordan Crouse 2018-09-20 109 "Message %s id %d timed out waiting for response\n",
df0dff13290597 Jordan Crouse 2018-09-20 110 a6xx_hfi_msg_id[id], seqnum);
df0dff13290597 Jordan Crouse 2018-09-20 111 return -ETIMEDOUT;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 112 }
4b565ca5a2cbbb Jordan Crouse 2018-08-06 113
df0dff13290597 Jordan Crouse 2018-09-20 114 /* Clear the interrupt */
df0dff13290597 Jordan Crouse 2018-09-20 115 gmu_write(gmu, REG_A6XX_GMU_GMU2HOST_INTR_CLR,
df0dff13290597 Jordan Crouse 2018-09-20 116 A6XX_GMU_GMU2HOST_INTR_INFO_MSGQ);
4b565ca5a2cbbb Jordan Crouse 2018-08-06 117
df0dff13290597 Jordan Crouse 2018-09-20 118 for (;;) {
df0dff13290597 Jordan Crouse 2018-09-20 119 struct a6xx_hfi_msg_response resp;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 120
df0dff13290597 Jordan Crouse 2018-09-20 121 /* Get the next packet */
8167e6fa76c8f7 Jonathan Marek 2020-04-23 122 ret = a6xx_hfi_queue_read(gmu, queue, (u32 *) &resp,
df0dff13290597 Jordan Crouse 2018-09-20 123 sizeof(resp) >> 2);
df0dff13290597 Jordan Crouse 2018-09-20 124
df0dff13290597 Jordan Crouse 2018-09-20 125 /* If the queue is empty our response never made it */
df0dff13290597 Jordan Crouse 2018-09-20 126 if (!ret) {
6a41da17e87dee Mamta Shukla 2018-10-20 127 DRM_DEV_ERROR(gmu->dev,
df0dff13290597 Jordan Crouse 2018-09-20 128 "The HFI response queue is unexpectedly empty\n");
df0dff13290597 Jordan Crouse 2018-09-20 129
df0dff13290597 Jordan Crouse 2018-09-20 130 return -ENOENT;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 131 }
4b565ca5a2cbbb Jordan Crouse 2018-08-06 132
df0dff13290597 Jordan Crouse 2018-09-20 133 if (HFI_HEADER_ID(resp.header) == HFI_F2H_MSG_ERROR) {
df0dff13290597 Jordan Crouse 2018-09-20 134 struct a6xx_hfi_msg_error *error =
df0dff13290597 Jordan Crouse 2018-09-20 135 (struct a6xx_hfi_msg_error *) &resp;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 136
6a41da17e87dee Mamta Shukla 2018-10-20 137 DRM_DEV_ERROR(gmu->dev, "GMU firmware error %d\n",
df0dff13290597 Jordan Crouse 2018-09-20 138 error->code);
df0dff13290597 Jordan Crouse 2018-09-20 139 continue;
df0dff13290597 Jordan Crouse 2018-09-20 140 }
4b565ca5a2cbbb Jordan Crouse 2018-08-06 141
df0dff13290597 Jordan Crouse 2018-09-20 142 if (seqnum != HFI_HEADER_SEQNUM(resp.ret_header)) {
6a41da17e87dee Mamta Shukla 2018-10-20 143 DRM_DEV_ERROR(gmu->dev,
df0dff13290597 Jordan Crouse 2018-09-20 144 "Unexpected message id %d on the response queue\n",
df0dff13290597 Jordan Crouse 2018-09-20 145 HFI_HEADER_SEQNUM(resp.ret_header));
df0dff13290597 Jordan Crouse 2018-09-20 146 continue;
df0dff13290597 Jordan Crouse 2018-09-20 147 }
df0dff13290597 Jordan Crouse 2018-09-20 148
df0dff13290597 Jordan Crouse 2018-09-20 149 if (resp.error) {
6a41da17e87dee Mamta Shukla 2018-10-20 150 DRM_DEV_ERROR(gmu->dev,
df0dff13290597 Jordan Crouse 2018-09-20 151 "Message %s id %d returned error %d\n",
df0dff13290597 Jordan Crouse 2018-09-20 152 a6xx_hfi_msg_id[id], seqnum, resp.error);
df0dff13290597 Jordan Crouse 2018-09-20 153 return -EINVAL;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 154 }
4b565ca5a2cbbb Jordan Crouse 2018-08-06 155
df0dff13290597 Jordan Crouse 2018-09-20 156 /* All is well, copy over the buffer */
df0dff13290597 Jordan Crouse 2018-09-20 157 if (payload && payload_size)
df0dff13290597 Jordan Crouse 2018-09-20 158 memcpy(payload, resp.payload,
df0dff13290597 Jordan Crouse 2018-09-20 159 min_t(u32, payload_size, sizeof(resp.payload)));
4b565ca5a2cbbb Jordan Crouse 2018-08-06 160
df0dff13290597 Jordan Crouse 2018-09-20 161 return 0;
4b565ca5a2cbbb Jordan Crouse 2018-08-06 162 }
4b565ca5a2cbbb Jordan Crouse 2018-08-06 163 }
4b565ca5a2cbbb Jordan Crouse 2018-08-06 164
:::::: The code at line 104 was first introduced by commit
:::::: df0dff132905974697e2a19aa8bcc0ecc447c00e drm/msm/a6xx: Poll for HFI responses
:::::: TO: Jordan Crouse <jcrouse(a)codeaurora.org>
:::::: CC: Rob Clark <robdclark(a)gmail.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
Re: [RFC PATCH v3 9/9] power: supply: Add bd718(15/27/28/78) charger driver
by kernel test robot
Hi Matti,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on sre-power-supply/for-next]
[also build test WARNING on lee-mfd/for-mfd-next v5.16-rc1 next-20211117]
[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/Matti-Vaittinen/power-supply-Add...
base: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next
config: riscv-randconfig-s031-20211116 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/bcab8f5e195119b2d4e405451a1b54bb7...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Matti-Vaittinen/power-supply-Add-some-fuel-gauge-logic/20211116-203220
git checkout bcab8f5e195119b2d4e405451a1b54bb7edb82c5
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=riscv
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/power/supply/bd71827-power.c:476:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [addressable] [usertype] tmp_curr @@ got int @@
drivers/power/supply/bd71827-power.c:476:26: sparse: expected restricted __be16 [addressable] [usertype] tmp_curr
drivers/power/supply/bd71827-power.c:476:26: sparse: got int
>> drivers/power/supply/bd71827-power.c:478:36: sparse: sparse: cast from restricted __be16
>> drivers/power/supply/bd71827-power.c:645:37: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned short [usertype] *swap_lo @@ got restricted __be16 [usertype] * @@
drivers/power/supply/bd71827-power.c:645:37: sparse: expected unsigned short [usertype] *swap_lo
drivers/power/supply/bd71827-power.c:645:37: sparse: got restricted __be16 [usertype] *
vim +476 drivers/power/supply/bd71827-power.c
456
457 static int bd71827_get_current_ds_adc(struct bd71827_power *pwr, int *curr, int *curr_avg)
458 {
459 __be16 tmp_curr;
460 char *tmp = (char *)&tmp_curr;
461 int dir = 1;
462 int regs[] = { pwr->regs->ibat, pwr->regs->ibat_avg };
463 int *vals[] = { curr, curr_avg };
464 int ret, i;
465
466 for (dir = 1, i = 0; i < ARRAY_SIZE(regs); i++) {
467 ret = regmap_bulk_read(pwr->regmap, regs[i], &tmp_curr,
468 sizeof(tmp_curr));
469 if (ret)
470 break;
471
472 if (*tmp & BD7182x_MASK_CURDIR_DISCHG)
473 dir = -1;
474
475 *tmp &= BD7182x_MASK_IBAT_U;
> 476 tmp_curr = be16_to_cpu(tmp_curr);
477
> 478 *vals[i] = dir * ((int)tmp_curr) * pwr->curr_factor;
479 }
480
481 return ret;
482 }
483
484 static int bd71827_voltage_to_capacity(struct simple_gauge *sw, int ocv,
485 int temp __always_unused,
486 int *dsoc);
487
488 static int bd71827_voltage_to_capacity(struct simple_gauge *sw, int ocv, int temp,
489 int *dsoc)
490 {
491 int i = 0;
492 struct bd71827_power *pwr;
493
494 /* If ocv_table is not given try luck with batinfo */
495 if (!use_load_bat_params || !ocv_table[0]) {
496 if (!sw)
497 return -EINVAL;
498
499 pwr = simple_gauge_get_drvdata(sw);
500 *dsoc = power_supply_batinfo_ocv2dcap(&pwr->batinfo, ocv, 0);
501 if (*dsoc < 0)
502 return *dsoc;
503
504 return 0;
505 }
506
507 /* Default or module param OCV table. We have NUM_BAT_PARAMS */
508 if (ocv > ocv_table[0]) {
509 *dsoc = soc_table[0];
510 } else {
511 for (i = 0; i < NUM_BAT_PARAMS; i++) {
512 if ((ocv <= ocv_table[i]) && (ocv > ocv_table[i+1])) {
513 *dsoc = (soc_table[i] - soc_table[i+1]) *
514 (ocv - ocv_table[i+1]) /
515 (ocv_table[i] - ocv_table[i+1]);
516 *dsoc += soc_table[i+1];
517 break;
518 }
519 }
520 if (i == NUM_BAT_PARAMS)
521 *dsoc = soc_table[i - 1];
522 }
523
524 return 0;
525 }
526
527 /* Unit is tenths of degree C */
528 static int bd71827_get_temp(struct simple_gauge *sw, int *temp)
529 {
530 struct bd71827_power *pwr = simple_gauge_get_drvdata(sw);
531 struct regmap *regmap = pwr->regmap;
532 int ret;
533 int t;
534
535 ret = regmap_read(regmap, pwr->regs->btemp_vth, &t);
536 t = 200 - t;
537
538 if (ret || t > 200) {
539 dev_err(pwr->dev, "Failed to read battery temperature\n");
540 *temp = 2000;
541 } else {
542 *temp = t * 10;
543 }
544
545 return ret;
546 }
547
548 /* Unit is tenths of degree C */
549 static int bd71828_get_temp(struct simple_gauge *sw, int *temp)
550 {
551 struct bd71827_power *pwr = simple_gauge_get_drvdata(sw);
552 uint16_t t;
553 int ret;
554 int tmp = 200 * 10000;
555
556 ret = bd7182x_read16_himask(pwr, pwr->regs->btemp_vth,
557 BD71828_MASK_VM_BTMP_U, &t);
558 if (ret || t > 3200)
559 dev_err(pwr->dev,
560 "Failed to read system min average voltage\n");
561
562 tmp -= 625ULL * (unsigned int)t;
563 *temp = tmp / 1000;
564
565 return ret;
566 }
567
568 static int bd71827_charge_status(struct bd71827_power *pwr,
569 int *s, int *h)
570 {
571 unsigned int state;
572 int status, health;
573 int ret = 1;
574
575 ret = regmap_read(pwr->regmap, pwr->regs->chg_state, &state);
576 if (ret)
577 dev_err(pwr->dev, "charger status reading failed (%d)\n", ret);
578
579 state &= BD7182x_MASK_CHG_STATE;
580
581 dev_dbg(pwr->dev, "CHG_STATE %d\n", state);
582
583 switch (state) {
584 case 0x00:
585 ret = 0;
586 status = POWER_SUPPLY_STATUS_DISCHARGING;
587 health = POWER_SUPPLY_HEALTH_GOOD;
588 break;
589 case 0x01:
590 case 0x02:
591 case 0x03:
592 case 0x0E:
593 status = POWER_SUPPLY_STATUS_CHARGING;
594 health = POWER_SUPPLY_HEALTH_GOOD;
595 break;
596 case 0x0F:
597 ret = 0;
598 status = POWER_SUPPLY_STATUS_FULL;
599 health = POWER_SUPPLY_HEALTH_GOOD;
600 break;
601 case 0x10:
602 case 0x11:
603 case 0x12:
604 case 0x13:
605 case 0x14:
606 case 0x20:
607 case 0x21:
608 case 0x22:
609 case 0x23:
610 case 0x24:
611 ret = 0;
612 status = POWER_SUPPLY_STATUS_NOT_CHARGING;
613 health = POWER_SUPPLY_HEALTH_OVERHEAT;
614 break;
615 case 0x30:
616 case 0x31:
617 case 0x32:
618 case 0x40:
619 ret = 0;
620 status = POWER_SUPPLY_STATUS_DISCHARGING;
621 health = POWER_SUPPLY_HEALTH_GOOD;
622 break;
623 case 0x7f:
624 default:
625 ret = 0;
626 status = POWER_SUPPLY_STATUS_NOT_CHARGING;
627 health = POWER_SUPPLY_HEALTH_DEAD;
628 break;
629 }
630
631 if (s)
632 *s = status;
633 if (h)
634 *h = health;
635
636 return ret;
637 }
638
639 static int __write_cc(struct bd71827_power *pwr, uint16_t bcap,
640 unsigned int reg, uint32_t *new)
641 {
642 int ret;
643 __be32 tmp;
644 __be16 *swap_hi = (__be16 *)&tmp;
> 645 uint16_t *swap_lo = swap_hi + 1;
646
647 *swap_hi = cpu_to_be16(bcap & BD7182x_MASK_CC_CCNTD_HI);
648 *swap_lo = 0;
649
650 ret = regmap_bulk_write(pwr->regmap, reg, &tmp, sizeof(tmp));
651 if (ret) {
652 dev_err(pwr->dev, "Failed to write coulomb counter\n");
653 return ret;
654 }
655 if (new)
656 *new = be32_to_cpu(tmp);
657
658 return ret;
659 }
660
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
[luto:sched/lazymm 11/16] kernel/sched/idle.c:288: undefined reference to `unlazy_mm_irqs_off'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git sched/lazymm
head: c0d03d4f2778fd0a7c16e69cdfb3f111296129b5
commit: 23ef8314367945e2dd63230fb1c2ebb7e148fe48 [11/16] Rework "sched/core: Fix illegal RCU from offline CPUs"
config: i386-randconfig-c021-20211117 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git/commit/?id...
git remote add luto https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git
git fetch --no-tags luto sched/lazymm
git checkout 23ef8314367945e2dd63230fb1c2ebb7e148fe48
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
ld: kernel/sched/idle.o: in function `do_idle':
>> kernel/sched/idle.c:288: undefined reference to `unlazy_mm_irqs_off'
vim +288 kernel/sched/idle.c
255
256 /*
257 * Generic idle loop implementation
258 *
259 * Called with polling cleared.
260 */
261 static void do_idle(void)
262 {
263 int cpu = smp_processor_id();
264
265 /*
266 * Check if we need to update blocked load
267 */
268 nohz_run_idle_balance(cpu);
269
270 /*
271 * If the arch has a polling bit, we maintain an invariant:
272 *
273 * Our polling bit is clear if we're not scheduled (i.e. if rq->curr !=
274 * rq->idle). This means that, if rq->idle has the polling bit set,
275 * then setting need_resched is guaranteed to cause the CPU to
276 * reschedule.
277 */
278
279 __current_set_polling();
280 tick_nohz_idle_enter();
281
282 while (!need_resched()) {
283 rmb();
284
285 local_irq_disable();
286
287 if (cpu_is_offline(cpu)) {
> 288 unlazy_mm_irqs_off();
289 tick_nohz_idle_stop_tick();
290 cpuhp_report_idle_dead();
291 arch_cpu_idle_dead();
292 }
293
294 arch_cpu_idle_enter();
295 rcu_nocb_flush_deferred_wakeup();
296
297 /*
298 * In poll mode we reenable interrupts and spin. Also if we
299 * detected in the wakeup from idle path that the tick
300 * broadcast device expired for us, we don't want to go deep
301 * idle as we know that the IPI is going to arrive right away.
302 */
303 if (cpu_idle_force_poll || tick_check_broadcast_expired()) {
304 tick_nohz_idle_restart_tick();
305 cpu_idle_poll();
306 } else {
307 cpuidle_idle_call();
308 }
309 arch_cpu_idle_exit();
310 }
311
312 /*
313 * Since we fell out of the loop above, we know TIF_NEED_RESCHED must
314 * be set, propagate it into PREEMPT_NEED_RESCHED.
315 *
316 * This is required because for polling idle loops we will not have had
317 * an IPI to fold the state for us.
318 */
319 preempt_set_need_resched();
320 tick_nohz_idle_exit();
321 __current_clr_polling();
322
323 /*
324 * We promise to call sched_ttwu_pending() and reschedule if
325 * need_resched() is set while polling is set. That means that clearing
326 * polling needs to be visible before doing these things.
327 */
328 smp_mb__after_atomic();
329
330 /*
331 * RCU relies on this call to be done outside of an RCU read-side
332 * critical section.
333 */
334 flush_smp_call_function_from_idle();
335 schedule_idle();
336
337 if (unlikely(klp_patch_pending(current)))
338 klp_update_patch_state(current);
339 }
340
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
[intel-tdx:guest 129/144] arch/x86/kernel/acpi/boot.c:1134: undefined reference to `swiotlb_hint_cpus'
by kernel test robot
tree: https://github.com/intel/tdx.git guest
head: 41fe88a1b3c28543f49fa6ed9e0e9b6650ed7614
commit: 4529b5784c141782c72ec9bd9a92df2b68cb7d45 [129/144] swiotlb: Split up single swiotlb lock
config: i386-randconfig-a012-20211116 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/intel/tdx/commit/4529b5784c141782c72ec9bd9a92df2b68cb7d45
git remote add intel-tdx https://github.com/intel/tdx.git
git fetch --no-tags intel-tdx guest
git checkout 4529b5784c141782c72ec9bd9a92df2b68cb7d45
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
ld: arch/x86/kernel/acpi/boot.o: in function `acpi_parse_madt_lapic_entries':
>> arch/x86/kernel/acpi/boot.c:1134: undefined reference to `swiotlb_hint_cpus'
vim +1134 arch/x86/kernel/acpi/boot.c
1092
1093 static int __init acpi_parse_madt_lapic_entries(void)
1094 {
1095 int count;
1096 int x2count = 0;
1097 int ret;
1098 struct acpi_subtable_proc madt_proc[2];
1099
1100 if (!boot_cpu_has(X86_FEATURE_APIC))
1101 return -ENODEV;
1102
1103 count = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_SAPIC,
1104 acpi_parse_sapic, MAX_LOCAL_APIC);
1105
1106 if (!count) {
1107 memset(madt_proc, 0, sizeof(madt_proc));
1108 madt_proc[0].id = ACPI_MADT_TYPE_LOCAL_APIC;
1109 madt_proc[0].handler = acpi_parse_lapic;
1110 madt_proc[1].id = ACPI_MADT_TYPE_LOCAL_X2APIC;
1111 madt_proc[1].handler = acpi_parse_x2apic;
1112 ret = acpi_table_parse_entries_array(ACPI_SIG_MADT,
1113 sizeof(struct acpi_table_madt),
1114 madt_proc, ARRAY_SIZE(madt_proc), MAX_LOCAL_APIC);
1115 if (ret < 0) {
1116 pr_err("Error parsing LAPIC/X2APIC entries\n");
1117 return ret;
1118 }
1119
1120 count = madt_proc[0].count;
1121 x2count = madt_proc[1].count;
1122 }
1123 if (!count && !x2count) {
1124 pr_err("No LAPIC entries present\n");
1125 /* TBD: Cleanup to allow fallback to MPS */
1126 return -ENODEV;
1127 } else if (count < 0 || x2count < 0) {
1128 pr_err("Error parsing LAPIC entry\n");
1129 /* TBD: Cleanup to allow fallback to MPS */
1130 return count;
1131 }
1132
1133 /* This does not take overrides into consideration */
> 1134 swiotlb_hint_cpus(max(count, x2count));
1135
1136 x2count = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_X2APIC_NMI,
1137 acpi_parse_x2apic_nmi, 0);
1138 count = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_NMI,
1139 acpi_parse_lapic_nmi, 0);
1140 if (count < 0 || x2count < 0) {
1141 pr_err("Error parsing LAPIC NMI entry\n");
1142 /* TBD: Cleanup to allow fallback to MPS */
1143 return count;
1144 }
1145 return 0;
1146 }
1147
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
[mcgrof-next:20211116-sysctl-cleanups-v4 21/35] kernel/printk/sysctl.c:20:51: sparse: sparse: incorrect type in argument 3 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20211116-sysctl-cleanups-v4
head: 5347239461f25fc50aa761923245b9ec4a4aafec
commit: b8c066c91c9a2a236ca09ea16d967448bdbe7bb0 [21/35] printk: move printk sysctl to printk/sysctl.c
config: m68k-randconfig-s031-20211117 (attached as .config)
compiler: m68k-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/com...
git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
git fetch --no-tags mcgrof-next 20211116-sysctl-cleanups-v4
git checkout b8c066c91c9a2a236ca09ea16d967448bdbe7bb0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=m68k
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 >>)
>> kernel/printk/sysctl.c:20:51: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@
kernel/printk/sysctl.c:20:51: sparse: expected void *
kernel/printk/sysctl.c:20:51: sparse: got void [noderef] __user *buffer
>> kernel/printk/sysctl.c:66:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
kernel/printk/sysctl.c:66:35: sparse: expected int ( [usertype] *proc_handler )( ... )
kernel/printk/sysctl.c:66:35: sparse: got int ( * )( ... )
kernel/printk/sysctl.c:75:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
kernel/printk/sysctl.c:75:35: sparse: expected int ( [usertype] *proc_handler )( ... )
kernel/printk/sysctl.c:75:35: sparse: got int ( * )( ... )
vim +20 kernel/printk/sysctl.c
13
14 static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
15 void __user *buffer, size_t *lenp, loff_t *ppos)
16 {
17 if (write && !capable(CAP_SYS_ADMIN))
18 return -EPERM;
19
> 20 return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
21 }
22
23 static struct ctl_table printk_sysctls[] = {
24 {
25 .procname = "printk",
26 .data = &console_loglevel,
27 .maxlen = 4*sizeof(int),
28 .mode = 0644,
29 .proc_handler = proc_dointvec,
30 },
31 {
32 .procname = "printk_ratelimit",
33 .data = &printk_ratelimit_state.interval,
34 .maxlen = sizeof(int),
35 .mode = 0644,
36 .proc_handler = proc_dointvec_jiffies,
37 },
38 {
39 .procname = "printk_ratelimit_burst",
40 .data = &printk_ratelimit_state.burst,
41 .maxlen = sizeof(int),
42 .mode = 0644,
43 .proc_handler = proc_dointvec,
44 },
45 {
46 .procname = "printk_delay",
47 .data = &printk_delay_msec,
48 .maxlen = sizeof(int),
49 .mode = 0644,
50 .proc_handler = proc_dointvec_minmax,
51 .extra1 = SYSCTL_ZERO,
52 .extra2 = (void *)&ten_thousand,
53 },
54 {
55 .procname = "printk_devkmsg",
56 .data = devkmsg_log_str,
57 .maxlen = DEVKMSG_STR_MAX_SIZE,
58 .mode = 0644,
59 .proc_handler = devkmsg_sysctl_set_loglvl,
60 },
61 {
62 .procname = "dmesg_restrict",
63 .data = &dmesg_restrict,
64 .maxlen = sizeof(int),
65 .mode = 0644,
> 66 .proc_handler = proc_dointvec_minmax_sysadmin,
67 .extra1 = SYSCTL_ZERO,
68 .extra2 = SYSCTL_ONE,
69 },
70 {
71 .procname = "kptr_restrict",
72 .data = &kptr_restrict,
73 .maxlen = sizeof(int),
74 .mode = 0644,
75 .proc_handler = proc_dointvec_minmax_sysadmin,
76 .extra1 = SYSCTL_ZERO,
77 .extra2 = SYSCTL_TWO,
78 },
79 {}
80 };
81
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week
Re: [PATCH 2/2] misc: Add iop driver for Sunplus SP7021
by kernel test robot
Hi Tony,
I love your patch! Yet something to improve:
[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on robh/for-next linux/master linus/master v5.16-rc1 next-20211117]
[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/Tony-Huang/Add-iop-driver-for-Su...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb
config: nios2-randconfig-r024-20211117 (attached as .config)
compiler: nios2-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/0b52ba2fcf62ee9a39d385e15fd7fccac...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tony-Huang/Add-iop-driver-for-Sunplus-SP7021/20211117-145012
git checkout 0b52ba2fcf62ee9a39d385e15fd7fccacafb2895
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=nios2 SHELL=/bin/bash drivers/misc/iop/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
drivers/misc/iop/sunplus_iop.c: In function 'wakein_store':
>> drivers/misc/iop/sunplus_iop.c:227:46: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
227 | reg = readl((void __iomem *)(B_SYSTEM_BASE + 32*4*1 + 4*2));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/sunplus_iop.c:227:46: note: each undeclared identifier is reported only once for each function it appears in
drivers/misc/iop/sunplus_iop.c: In function 'setgpio_store':
>> drivers/misc/iop/sunplus_iop.c:313:22: warning: variable 'setnum' set but not used [-Wunused-but-set-variable]
313 | unsigned int setnum;
| ^~~~~~
>> drivers/misc/iop/sunplus_iop.c:312:23: warning: variable 'num' set but not used [-Wunused-but-set-variable]
312 | unsigned char num[1];
| ^~~
--
drivers/misc/iop/hal_iop.c: In function 'hal_iop_init':
>> drivers/misc/iop/hal_iop.c:42:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
42 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/hal_iop.c:42:45: note: each undeclared identifier is reported only once for each function it appears in
drivers/misc/iop/hal_iop.c: In function 'hal_iop_load_normal_code':
drivers/misc/iop/hal_iop.c:90:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
90 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/hal_iop.c: In function 'hal_iop_load_standby_code':
drivers/misc/iop/hal_iop.c:130:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
130 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/hal_iop.c: In function 'hal_iop_normalmode':
drivers/misc/iop/hal_iop.c:169:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
169 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/hal_iop.c: In function 'hal_iop_standbymode':
drivers/misc/iop/hal_iop.c:208:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
208 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/hal_iop.c: In function 'hal_iop_get_iop_data':
>> drivers/misc/iop/hal_iop.c:239:70: warning: variable 'value_11' set but not used [-Wunused-but-set-variable]
239 | unsigned short value_6, value_7, value_8, value_9, value_10, value_11;
| ^~~~~~~~
>> drivers/misc/iop/hal_iop.c:239:60: warning: variable 'value_10' set but not used [-Wunused-but-set-variable]
239 | unsigned short value_6, value_7, value_8, value_9, value_10, value_11;
| ^~~~~~~~
>> drivers/misc/iop/hal_iop.c:238:69: warning: variable 'value_5' set but not used [-Wunused-but-set-variable]
238 | unsigned short value_0, value_1, value_2, value_3, value_4, value_5;
| ^~~~~~~
>> drivers/misc/iop/hal_iop.c:238:60: warning: variable 'value_4' set but not used [-Wunused-but-set-variable]
238 | unsigned short value_0, value_1, value_2, value_3, value_4, value_5;
| ^~~~~~~
drivers/misc/iop/hal_iop.c: In function 'hal_iop_suspend':
drivers/misc/iop/hal_iop.c:327:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
327 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
drivers/misc/iop/hal_iop.c: In function 'hal_iop_shutdown':
drivers/misc/iop/hal_iop.c:406:45: error: 'B_SYSTEM_BASE' undeclared (first use in this function); did you mean 'SYSTEM_HALT'?
406 | writel(0x00100010, (void __iomem *)(B_SYSTEM_BASE + 32*4*0 + 4*1));
| ^~~~~~~~~~~~~
| SYSTEM_HALT
vim +227 drivers/misc/iop/sunplus_iop.c
218
219 static ssize_t wakein_store(struct device *dev, struct device_attribute *attr,
220 const char *buf, size_t count)
221 {
222 unsigned char ret = count;
223 unsigned int reg;
224
225 if (buf[0] == '0') {
226 DBG_INFO("Disable WAKE_IN\n");
> 227 reg = readl((void __iomem *)(B_SYSTEM_BASE + 32*4*1 + 4*2));
228 reg = 0x08000000;
229 writel(reg, (void __iomem *)(B_SYSTEM_BASE + 32*4*1 + 4*2));
230 iop_wake_in = 0;
231 } else if (buf[0] == '1') {
232 DBG_INFO("Enable WAKE_IN\n");
233 reg = readl((void __iomem *)(B_SYSTEM_BASE + 32*4*1 + 4*2));
234 reg |= 0x08000800;
235 writel(reg, (void __iomem *)(B_SYSTEM_BASE + 32*4*1 + 4*2));
236 iop_wake_in = 1;
237 } else {
238 DBG_INFO("echo 0 or 1 mode\n");
239 DBG_INFO("0:Disable WAKE_IN\n");
240 DBG_INFO("1:Enable WAKE_IN\n");
241 }
242 return ret;
243 }
244
245 static ssize_t getdata_show(struct device *dev, struct device_attribute *attr,
246 char *buf)
247 {
248 ssize_t len = 0;
249
250 DBG_INFO("iop_show_getdata\n");
251 hal_iop_get_iop_data(iop->iop_regs);
252 return len;
253 }
254
255 static ssize_t getdata_store(struct device *dev, struct device_attribute *attr,
256 const char *buf, size_t count)
257 {
258 int ret = count;
259
260 DBG_INFO("iop_store_getdata\n");
261 return ret;
262 }
263
264 static ssize_t setdata_show(struct device *dev, struct device_attribute *attr,
265 char *buf)
266 {
267 ssize_t len = 0;
268
269 DBG_INFO("iop_show_setdata\n");
270 return len;
271 }
272
273 static ssize_t setdata_store(struct device *dev, struct device_attribute *attr,
274 const char *buf, size_t count)
275 {
276 unsigned char num[1], value[4];
277 unsigned char ret = count;
278 unsigned int i, setnum, setvalue;
279 unsigned long val;
280 ssize_t status;
281
282 num[0] = buf[0];
283 for (i = 0; i < 4; i++)
284 value[i] = buf[2+i];
285
286 status = kstrtoul(value, 16, &val);
287 if (status)
288 return status;
289
290 setnum = (unsigned int)num[0];
291 setvalue = val;
292 DBG_INFO("setnum=%x\n", setnum);
293 DBG_INFO("setvalue=%x\n", setvalue);
294 hal_iop_set_iop_data(iop->iop_regs, setnum, setvalue);
295 hal_iop_get_iop_data(iop->iop_regs);
296 return ret;
297 }
298
299 static ssize_t setgpio_show(struct device *dev, struct device_attribute *attr,
300 char *buf)
301 {
302 ssize_t len = 0;
303
304 DBG_INFO("iop_store_setgpio\n");
305 return len;
306 }
307
308 static ssize_t setgpio_store(struct device *dev, struct device_attribute *attr,
309 const char *buf, size_t count)
310 {
311 int ret = count;
> 312 unsigned char num[1];
> 313 unsigned int setnum;
314 unsigned long val;
315 ssize_t status;
316
317 DBG_INFO("iop_store_setgpio\n");
318 num[0] = buf[0];
319 status = kstrtoul(buf, 16, &val);
320 if (status)
321 return status;
322 setnum = val;
323 DBG_INFO("set gpio number = %x\n", IOP_GPIO);
324 hal_gpio_init(iop->iop_regs, IOP_GPIO);
325 return ret;
326 }
327
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 1 week