[curro:for-edward 7/17] include/linux/acpi.h:1177:9: sparse: this was the original definition
by kernel test robot
CC: kbuild-all(a)lists.01.org
TO: Francisco Jerez <currojerez(a)riseup.net>
tree: https://github.com/curro/linux for-edward
head: 9ba143107276ffb71f116efd181424c070805213
commit: b17127f75521e43cafb06f5e7c4bbf4b89a7080f [7/17] cpufreq: intel_pstate: Implement VLP controller statistics and target range calculation.
:::::: branch date: 14 hours ago
:::::: commit date: 14 hours ago
config: i386-randconfig-s002-20200930 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-201-g24bdaac6-dirty
# https://github.com/curro/linux/commit/b17127f75521e43cafb06f5e7c4bbf4b89a...
git remote add curro https://github.com/curro/linux
git fetch --no-tags curro for-edward
git checkout b17127f75521e43cafb06f5e7c4bbf4b89a7080f
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
echo
echo "sparse warnings: (new ones prefixed by >>)"
echo
drivers/cpufreq/intel_pstate.c: note: in included file (through drivers/cpufreq/../../kernel/sched/sched.h):
include/asm-generic/vmlinux.lds.h:299:9: sparse: sparse: preprocessor token ACPI_PROBE_TABLE redefined
drivers/cpufreq/intel_pstate.c: note: in included file:
>> include/linux/acpi.h:1177:9: sparse: this was the original definition
vim +1177 include/linux/acpi.h
e647b532275bb35 Marc Zyngier 2015-09-28 1154
8ebf642f3d809b5 Oscar Carter 2020-05-30 1155 #define ACPI_DECLARE_PROBE_ENTRY(table, name, table_id, subtable, \
8ebf642f3d809b5 Oscar Carter 2020-05-30 1156 valid, data, fn) \
e647b532275bb35 Marc Zyngier 2015-09-28 1157 static const struct acpi_probe_entry __acpi_probe_##name \
8ebf642f3d809b5 Oscar Carter 2020-05-30 1158 __used __section(__##table##_acpi_probe_table) = { \
e647b532275bb35 Marc Zyngier 2015-09-28 1159 .id = table_id, \
e647b532275bb35 Marc Zyngier 2015-09-28 1160 .type = subtable, \
e647b532275bb35 Marc Zyngier 2015-09-28 1161 .subtable_valid = valid, \
8ebf642f3d809b5 Oscar Carter 2020-05-30 1162 .probe_table = fn, \
e647b532275bb35 Marc Zyngier 2015-09-28 1163 .driver_data = data, \
e647b532275bb35 Marc Zyngier 2015-09-28 1164 }
e647b532275bb35 Marc Zyngier 2015-09-28 1165
89778093d38d547 Oscar Carter 2020-05-30 1166 #define ACPI_DECLARE_SUBTABLE_PROBE_ENTRY(table, name, table_id, \
89778093d38d547 Oscar Carter 2020-05-30 1167 subtable, valid, data, fn) \
89778093d38d547 Oscar Carter 2020-05-30 1168 static const struct acpi_probe_entry __acpi_probe_##name \
89778093d38d547 Oscar Carter 2020-05-30 1169 __used __section(__##table##_acpi_probe_table) = { \
89778093d38d547 Oscar Carter 2020-05-30 1170 .id = table_id, \
89778093d38d547 Oscar Carter 2020-05-30 1171 .type = subtable, \
89778093d38d547 Oscar Carter 2020-05-30 1172 .subtable_valid = valid, \
89778093d38d547 Oscar Carter 2020-05-30 1173 .probe_subtbl = fn, \
e647b532275bb35 Marc Zyngier 2015-09-28 1174 .driver_data = data, \
e647b532275bb35 Marc Zyngier 2015-09-28 1175 }
e647b532275bb35 Marc Zyngier 2015-09-28 1176
e647b532275bb35 Marc Zyngier 2015-09-28 @1177 #define ACPI_PROBE_TABLE(name) __##name##_acpi_probe_table
e647b532275bb35 Marc Zyngier 2015-09-28 1178 #define ACPI_PROBE_TABLE_END(name) __##name##_acpi_probe_table_end
e647b532275bb35 Marc Zyngier 2015-09-28 1179
:::::: The code at line 1177 was first introduced by commit
:::::: e647b532275bb357e87272e052fccf5fcdb36a17 ACPI: Add early device probing infrastructure
:::::: TO: Marc Zyngier <Marc.Zyngier(a)arm.com>
:::::: CC: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
arch/m68k/include/asm/irqflags.h:35:9: sparse: sparse: context imbalance in 'adpt_i2o_post_wait' - unexpected unlock
by kernel test robot
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Luc Van Oostenryck <luc.vanoostenryck(a)gmail.com>
CC: Masahiro Yamada <yamada.masahiro(a)socionext.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 02de58b24d2e1b2cf947d57205bd2221d897193c
commit: 80591e61a0f7e88deaada69844e4a31280c4a38f kbuild: tell sparse about the $ARCH
date: 11 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 11 months ago
config: m68k-randconfig-s031-20200930 (attached as .config)
compiler: m68k-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-201-g24bdaac6-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 80591e61a0f7e88deaada69844e4a31280c4a38f
# 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=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
echo
echo "sparse warnings: (new ones prefixed by >>)"
echo
drivers/scsi/dpt_i2o.c:2116:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] <asn:2> *reply @@ got unsigned char [usertype] * @@
drivers/scsi/dpt_i2o.c:2116:31: sparse: expected void [noderef] <asn:2> *reply
drivers/scsi/dpt_i2o.c:2116:31: sparse: got unsigned char [usertype] *
drivers/scsi/dpt_i2o.c:2121:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] <asn:2> *reply @@ got unsigned char [usertype] * @@
drivers/scsi/dpt_i2o.c:2121:31: sparse: expected void [noderef] <asn:2> *reply
drivers/scsi/dpt_i2o.c:2121:31: sparse: got unsigned char [usertype] *
drivers/scsi/dpt_i2o.c:1676:12: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const *__gu_ptr @@ got unsigned int [noderef] [usertype] <asn:1> * @@
drivers/scsi/dpt_i2o.c:1676:12: sparse: expected void const *__gu_ptr
drivers/scsi/dpt_i2o.c:1676:12: sparse: got unsigned int [noderef] [usertype] <asn:1> *
drivers/scsi/dpt_i2o.c:1691:9: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const *__gu_ptr @@ got unsigned int [noderef] [usertype] <asn:1> * @@
drivers/scsi/dpt_i2o.c:1691:9: sparse: expected void const *__gu_ptr
drivers/scsi/dpt_i2o.c:1691:9: sparse: got unsigned int [noderef] [usertype] <asn:1> *
drivers/scsi/dpt_i2o.c:1790:20: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const *__gu_ptr @@ got unsigned int [noderef] [usertype] <asn:1> * @@
drivers/scsi/dpt_i2o.c:1790:20: sparse: expected void const *__gu_ptr
drivers/scsi/dpt_i2o.c:1790:20: sparse: got unsigned int [noderef] [usertype] <asn:1> *
drivers/scsi/dpt_i2o.c: note: in included file (through arch/m68k/include/asm/io.h, include/linux/io.h, include/linux/pci.h):
include/asm-generic/io.h:153:15: sparse: sparse: cast removes address space '<asn:2>' of expression
include/asm-generic/io.h:153:15: sparse: sparse: cast removes address space '<asn:2>' of expression
drivers/scsi/dpt_i2o.c:664:9: sparse: sparse: context imbalance in 'adpt_abort' - different lock contexts for basic block
drivers/scsi/dpt_i2o.c:709:9: sparse: sparse: context imbalance in 'adpt_device_reset' - different lock contexts for basic block
drivers/scsi/dpt_i2o.c:743:9: sparse: sparse: context imbalance in 'adpt_bus_reset' - different lock contexts for basic block
drivers/scsi/dpt_i2o.c: note: in included file (through include/linux/irqflags.h, include/linux/spinlock.h, include/linux/seqlock.h, ...):
>> arch/m68k/include/asm/irqflags.h:35:9: sparse: sparse: context imbalance in 'adpt_i2o_post_wait' - unexpected unlock
drivers/scsi/dpt_i2o.c: note: in included file (through arch/m68k/include/asm/io.h, include/linux/io.h, include/linux/pci.h):
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:94:17: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:94:17: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:96:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile @@ got restricted __le32 [usertype] @@
arch/m68k/include/asm/io_no.h:96:17: sparse: expected unsigned int volatile
arch/m68k/include/asm/io_no.h:96:17: sparse: got restricted __le32 [usertype]
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
drivers/scsi/dpt_i2o.c:1757:9: sparse: sparse: context imbalance in 'adpt_i2o_passthru' - different lock contexts for basic block
drivers/scsi/dpt_i2o.c:2033:9: sparse: sparse: context imbalance in 'adpt_ioctl' - different lock contexts for basic block
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32
arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '<asn:2>' of expression
arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: too many warnings
vim +/adpt_i2o_post_wait +35 arch/m68k/include/asm/irqflags.h
df9ee29270c11db David Howells 2010-10-07 31
df9ee29270c11db David Howells 2010-10-07 32 static inline void arch_local_irq_enable(void)
df9ee29270c11db David Howells 2010-10-07 33 {
df9ee29270c11db David Howells 2010-10-07 34 #if defined(CONFIG_COLDFIRE)
df9ee29270c11db David Howells 2010-10-07 @35 asm volatile (
df9ee29270c11db David Howells 2010-10-07 36 "move %/sr,%%d0 \n\t"
df9ee29270c11db David Howells 2010-10-07 37 "andi.l #0xf8ff,%%d0 \n\t"
df9ee29270c11db David Howells 2010-10-07 38 "move %%d0,%/sr \n"
df9ee29270c11db David Howells 2010-10-07 39 : /* no outputs */
df9ee29270c11db David Howells 2010-10-07 40 :
df9ee29270c11db David Howells 2010-10-07 41 : "cc", "%d0", "memory");
df9ee29270c11db David Howells 2010-10-07 42 #else
df9ee29270c11db David Howells 2010-10-07 43 # if defined(CONFIG_MMU)
df9ee29270c11db David Howells 2010-10-07 44 if (MACH_IS_Q40 || !hardirq_count())
df9ee29270c11db David Howells 2010-10-07 45 # endif
df9ee29270c11db David Howells 2010-10-07 46 asm volatile (
df9ee29270c11db David Howells 2010-10-07 47 "andiw %0,%%sr"
df9ee29270c11db David Howells 2010-10-07 48 :
df9ee29270c11db David Howells 2010-10-07 49 : "i" (ALLOWINT)
df9ee29270c11db David Howells 2010-10-07 50 : "memory");
df9ee29270c11db David Howells 2010-10-07 51 #endif
df9ee29270c11db David Howells 2010-10-07 52 }
df9ee29270c11db David Howells 2010-10-07 53
:::::: The code at line 35 was first introduced by commit
:::::: df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101 Fix IRQ flag handling naming
:::::: TO: David Howells <dhowells(a)redhat.com>
:::::: CC: David Howells <dhowells(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
drivers/dma/idxd/sysfs.c:391 engine_group_id_store() warn: potential spectre issue 'idxd->groups' (local cap)
by kernel test robot
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Dave Jiang <dave.jiang(a)intel.com>
CC: Vinod Koul <vkoul(a)kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 02de58b24d2e1b2cf947d57205bd2221d897193c
commit: c52ca478233c172b2d322b5241d6279a8661cbba dmaengine: idxd: add configuration component of driver
date: 8 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 8 months ago
config: x86_64-randconfig-m001-20200930 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/dma/idxd/sysfs.c:391 engine_group_id_store() warn: potential spectre issue 'idxd->groups' [r] (local cap)
drivers/dma/idxd/sysfs.c:800 wq_group_id_store() warn: potential spectre issue 'idxd->groups' [r] (local cap)
Old smatch warnings:
drivers/dma/idxd/sysfs.c:189 idxd_config_bus_probe() error: double unlocked 'idxd->dev_lock' (orig line 181)
vim +391 drivers/dma/idxd/sysfs.c
c52ca478233c17 Dave Jiang 2020-01-21 361
c52ca478233c17 Dave Jiang 2020-01-21 362 static ssize_t engine_group_id_store(struct device *dev,
c52ca478233c17 Dave Jiang 2020-01-21 363 struct device_attribute *attr,
c52ca478233c17 Dave Jiang 2020-01-21 364 const char *buf, size_t count)
c52ca478233c17 Dave Jiang 2020-01-21 365 {
c52ca478233c17 Dave Jiang 2020-01-21 366 struct idxd_engine *engine =
c52ca478233c17 Dave Jiang 2020-01-21 367 container_of(dev, struct idxd_engine, conf_dev);
c52ca478233c17 Dave Jiang 2020-01-21 368 struct idxd_device *idxd = engine->idxd;
c52ca478233c17 Dave Jiang 2020-01-21 369 long id;
c52ca478233c17 Dave Jiang 2020-01-21 370 int rc;
c52ca478233c17 Dave Jiang 2020-01-21 371 struct idxd_group *prevg, *group;
c52ca478233c17 Dave Jiang 2020-01-21 372
c52ca478233c17 Dave Jiang 2020-01-21 373 rc = kstrtol(buf, 10, &id);
c52ca478233c17 Dave Jiang 2020-01-21 374 if (rc < 0)
c52ca478233c17 Dave Jiang 2020-01-21 375 return -EINVAL;
c52ca478233c17 Dave Jiang 2020-01-21 376
c52ca478233c17 Dave Jiang 2020-01-21 377 if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags))
c52ca478233c17 Dave Jiang 2020-01-21 378 return -EPERM;
c52ca478233c17 Dave Jiang 2020-01-21 379
c52ca478233c17 Dave Jiang 2020-01-21 380 if (id > idxd->max_groups - 1 || id < -1)
c52ca478233c17 Dave Jiang 2020-01-21 381 return -EINVAL;
c52ca478233c17 Dave Jiang 2020-01-21 382
c52ca478233c17 Dave Jiang 2020-01-21 383 if (id == -1) {
c52ca478233c17 Dave Jiang 2020-01-21 384 if (engine->group) {
c52ca478233c17 Dave Jiang 2020-01-21 385 engine->group->num_engines--;
c52ca478233c17 Dave Jiang 2020-01-21 386 engine->group = NULL;
c52ca478233c17 Dave Jiang 2020-01-21 387 }
c52ca478233c17 Dave Jiang 2020-01-21 388 return count;
c52ca478233c17 Dave Jiang 2020-01-21 389 }
c52ca478233c17 Dave Jiang 2020-01-21 390
c52ca478233c17 Dave Jiang 2020-01-21 @391 group = &idxd->groups[id];
c52ca478233c17 Dave Jiang 2020-01-21 392 prevg = engine->group;
c52ca478233c17 Dave Jiang 2020-01-21 393
c52ca478233c17 Dave Jiang 2020-01-21 394 if (prevg)
c52ca478233c17 Dave Jiang 2020-01-21 395 prevg->num_engines--;
c52ca478233c17 Dave Jiang 2020-01-21 396 engine->group = &idxd->groups[id];
c52ca478233c17 Dave Jiang 2020-01-21 397 engine->group->num_engines++;
c52ca478233c17 Dave Jiang 2020-01-21 398
c52ca478233c17 Dave Jiang 2020-01-21 399 return count;
c52ca478233c17 Dave Jiang 2020-01-21 400 }
c52ca478233c17 Dave Jiang 2020-01-21 401
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[linux-next:master 6316/11956] arch/arm64/kvm/mmu.c:1642 user_mem_abort() error: uninitialized symbol 'ret'.
by Dan Carpenter
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 49e7e3e905e437a02782019570f70997e2da9101
commit: 6f745f1bb5bf2914be2344b0dd7781d0528b3e42 [6316/11956] KVM: arm64: Convert user_mem_abort() to generic page-table API
config: arm64-randconfig-m031-20200929 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
arch/arm64/kvm/mmu.c:1642 user_mem_abort() error: uninitialized symbol 'ret'.
vim +/ret +1642 arch/arm64/kvm/mmu.c
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1496 static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
98047888bb9fd5 arch/arm/kvm/mmu.c Christoffer Dall 2014-08-19 1497 struct kvm_memory_slot *memslot, unsigned long hva,
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1498 unsigned long fault_status)
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1499 {
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1500 int ret;
6396b852e46e56 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1501 bool write_fault, writable, force_pte = false;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1502 bool exec_fault;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1503 bool device = false;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1504 unsigned long mmu_seq;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1505 struct kvm *kvm = vcpu->kvm;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1506 struct kvm_mmu_memory_cache *memcache = &vcpu->arch.mmu_page_cache;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1507 struct vm_area_struct *vma;
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1508 short vma_shift;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1509 gfn_t gfn;
ba049e93aef7e8 arch/arm/kvm/mmu.c Dan Williams 2016-01-15 1510 kvm_pfn_t pfn;
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1511 bool logging_active = memslot_is_logging(memslot);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1512 unsigned long vma_pagesize;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1513 enum kvm_pgtable_prot prot = KVM_PGTABLE_PROT_R;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1514 struct kvm_pgtable *pgt;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1515
a7d079cea2dffb arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-09 1516 write_fault = kvm_is_write_fault(vcpu);
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1517 exec_fault = kvm_vcpu_trap_is_iabt(vcpu);
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1518 VM_BUG_ON(write_fault && exec_fault);
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1519
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1520 if (fault_status == FSC_PERM && !write_fault && !exec_fault) {
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1521 kvm_err("Unexpected L2 read permission error\n");
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1522 return -EFAULT;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1523 }
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1524
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1525 /* Let's check if we will get back a huge page backed by hugetlbfs */
89154dd5313f77 arch/arm64/kvm/mmu.c Michel Lespinasse 2020-06-08 1526 mmap_read_lock(current->mm);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1527 vma = find_vma_intersection(current->mm, hva, hva + 1);
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1528 if (unlikely(!vma)) {
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1529 kvm_err("Failed to find VMA for hva 0x%lx\n", hva);
89154dd5313f77 arch/arm64/kvm/mmu.c Michel Lespinasse 2020-06-08 1530 mmap_read_unlock(current->mm);
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1531 return -EFAULT;
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1532 }
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1533
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1534 if (is_vm_hugetlb_page(vma))
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1535 vma_shift = huge_page_shift(hstate_vma(vma));
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1536 else
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1537 vma_shift = PAGE_SHIFT;
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1538
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1539 vma_pagesize = 1ULL << vma_shift;
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1540 if (logging_active ||
6d674e28f642e3 virt/kvm/arm/mmu.c Marc Zyngier 2019-12-11 1541 (vma->vm_flags & VM_PFNMAP) ||
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1542 !fault_supports_stage2_huge_mapping(memslot, hva, vma_pagesize)) {
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1543 force_pte = true;
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1544 vma_pagesize = PAGE_SIZE;
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1545 }
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1546
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1547 if (vma_pagesize == PMD_SIZE || vma_pagesize == PUD_SIZE)
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1548 fault_ipa &= huge_page_mask(hstate_vma(vma));
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1549
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1550 gfn = fault_ipa >> PAGE_SHIFT;
89154dd5313f77 arch/arm64/kvm/mmu.c Michel Lespinasse 2020-06-08 1551 mmap_read_unlock(current->mm);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1552
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1553 /*
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1554 * Permission faults just need to update the existing leaf entry,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1555 * and so normally don't require allocations from the memcache. The
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1556 * only exception to this is when dirty logging is enabled at runtime
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1557 * and a write fault needs to collapse a block entry into a table.
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1558 */
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1559 if (fault_status != FSC_PERM || (logging_active && write_fault)) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1560 ret = kvm_mmu_topup_memory_cache(memcache,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1561 kvm_mmu_cache_min_pages(kvm));
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1562 if (ret)
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1563 return ret;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1564 }
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1565
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1566 mmu_seq = vcpu->kvm->mmu_notifier_seq;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1567 /*
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1568 * Ensure the read of mmu_notifier_seq happens before we call
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1569 * gfn_to_pfn_prot (which calls get_user_pages), so that we don't risk
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1570 * the page we just got a reference to gets unmapped before we have a
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1571 * chance to grab the mmu_lock, which ensure that if the page gets
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1572 * unmapped afterwards, the call to kvm_unmap_hva will take it away
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1573 * from us again properly. This smp_rmb() interacts with the smp_wmb()
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1574 * in kvm_mmu_notifier_invalidate_<page|range_end>.
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1575 */
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1576 smp_rmb();
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1577
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1578 pfn = gfn_to_pfn_prot(kvm, gfn, write_fault, &writable);
196f878a7ac2e7 virt/kvm/arm/mmu.c James Morse 2017-06-20 1579 if (pfn == KVM_PFN_ERR_HWPOISON) {
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1580 kvm_send_hwpoison_signal(hva, vma_shift);
196f878a7ac2e7 virt/kvm/arm/mmu.c James Morse 2017-06-20 1581 return 0;
196f878a7ac2e7 virt/kvm/arm/mmu.c James Morse 2017-06-20 1582 }
9ac715954682b2 arch/arm/kvm/mmu.c Christoffer Dall 2016-08-17 1583 if (is_error_noslot_pfn(pfn))
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1584 return -EFAULT;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1585
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1586 if (kvm_is_device_pfn(pfn)) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1587 device = true;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1588 } else if (logging_active && !write_fault) {
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1589 /*
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1590 * Only actually map the page as writable if this was a write
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1591 * fault.
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1592 */
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1593 writable = false;
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1594 }
b88657674d39fc arch/arm/kvm/mmu.c Kim Phillips 2014-06-26 1595
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1596 if (exec_fault && device)
6d674e28f642e3 virt/kvm/arm/mmu.c Marc Zyngier 2019-12-11 1597 return -ENOEXEC;
6d674e28f642e3 virt/kvm/arm/mmu.c Marc Zyngier 2019-12-11 1598
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1599 spin_lock(&kvm->mmu_lock);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1600 pgt = vcpu->arch.hw_mmu->pgt;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1601 if (mmu_notifier_retry(kvm, mmu_seq))
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1602 goto out_unlock;
Set the error code?
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1603
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1604 /*
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1605 * If we are not forced to use page mapping, check if we are
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1606 * backed by a THP and thus use block mapping if possible.
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1607 */
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1608 if (vma_pagesize == PAGE_SIZE && !force_pte)
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1609 vma_pagesize = transparent_hugepage_adjust(memslot, hva,
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1610 &pfn, &fault_ipa);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1611 if (writable) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1612 prot |= KVM_PGTABLE_PROT_W;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1613 kvm_set_pfn_dirty(pfn);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1614 mark_page_dirty(kvm, gfn);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1615 }
a9c0e12ebee56e virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1616
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1617 if (fault_status != FSC_PERM && !device)
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1618 clean_dcache_guest_page(pfn, vma_pagesize);
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1619
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1620 if (exec_fault) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1621 prot |= KVM_PGTABLE_PROT_X;
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1622 invalidate_icache_guest_page(pfn, vma_pagesize);
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1623 }
a9c0e12ebee56e virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1624
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1625 if (device)
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1626 prot |= KVM_PGTABLE_PROT_DEVICE;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1627 else if (cpus_have_const_cap(ARM64_HAS_CACHE_DIC))
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1628 prot |= KVM_PGTABLE_PROT_X;
a15f693935a9f1 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1629
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1630 if (fault_status == FSC_PERM && !(logging_active && writable)) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1631 ret = kvm_pgtable_stage2_relax_perms(pgt, fault_ipa, prot);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1632 } else {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1633 ret = kvm_pgtable_stage2_map(pgt, fault_ipa, vma_pagesize,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1634 __pfn_to_phys(pfn), prot,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1635 memcache);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1636 }
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1637
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1638 out_unlock:
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1639 spin_unlock(&kvm->mmu_lock);
35307b9a5f7ebc arch/arm/kvm/mmu.c Marc Zyngier 2015-03-12 1640 kvm_set_pfn_accessed(pfn);
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1641 kvm_release_pfn_clean(pfn);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 @1642 return ret;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1643 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[linux-next:master 9468/11956] drivers/pci/controller/pcie-brcmstb.c:1270 brcm_pcie_probe() warn: 'pcie->clk' not released on lines: 1237.
by Dan Carpenter
Hi Jim,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 49e7e3e905e437a02782019570f70997e2da9101
commit: 5d98ac4e2823dcfd5e8a2ac3c71ec1ed6cdd1f54 [9468/11956] PCI: brcmstb: Set additional internal memory DMA viewport sizes
config: arm64-randconfig-m031-20200929 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/pci/controller/pcie-brcmstb.c:1270 brcm_pcie_probe() warn: 'pcie->clk' not released on lines: 1237.
vim +1270 drivers/pci/controller/pcie-brcmstb.c
c0452137034bda8 Jim Quinlan 2019-12-16 1176 static int brcm_pcie_probe(struct platform_device *pdev)
c0452137034bda8 Jim Quinlan 2019-12-16 1177 {
40ca1bf580ef24d Jim Quinlan 2019-12-16 1178 struct device_node *np = pdev->dev.of_node, *msi_np;
c0452137034bda8 Jim Quinlan 2019-12-16 1179 struct pci_host_bridge *bridge;
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1180 struct device_node *fw_np;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1181 const struct pcie_cfg_data *data;
c0452137034bda8 Jim Quinlan 2019-12-16 1182 struct brcm_pcie *pcie;
c0452137034bda8 Jim Quinlan 2019-12-16 1183 int ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1184
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1185 /*
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1186 * We have to wait for Raspberry Pi's firmware interface to be up as a
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1187 * PCI fixup, rpi_firmware_init_vl805(), depends on it. This driver's
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1188 * probe can race with the firmware interface's (see
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1189 * drivers/firmware/raspberrypi.c) and potentially break the PCI fixup.
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1190 */
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1191 fw_np = of_find_compatible_node(NULL, NULL,
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1192 "raspberrypi,bcm2835-firmware");
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1193 if (fw_np && !rpi_firmware_get(fw_np)) {
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1194 of_node_put(fw_np);
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1195 return -EPROBE_DEFER;
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1196 }
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1197 of_node_put(fw_np);
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1198
c0452137034bda8 Jim Quinlan 2019-12-16 1199 bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie));
c0452137034bda8 Jim Quinlan 2019-12-16 1200 if (!bridge)
c0452137034bda8 Jim Quinlan 2019-12-16 1201 return -ENOMEM;
c0452137034bda8 Jim Quinlan 2019-12-16 1202
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1203 data = of_device_get_match_data(&pdev->dev);
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1204 if (!data) {
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1205 pr_err("failed to look up compatible string\n");
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1206 return -EINVAL;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1207 }
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1208
c0452137034bda8 Jim Quinlan 2019-12-16 1209 pcie = pci_host_bridge_priv(bridge);
c0452137034bda8 Jim Quinlan 2019-12-16 1210 pcie->dev = &pdev->dev;
c0452137034bda8 Jim Quinlan 2019-12-16 1211 pcie->np = np;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1212 pcie->reg_offsets = data->offsets;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1213 pcie->type = data->type;
04356ac30771091 Jim Quinlan 2020-09-11 1214 pcie->perst_set = data->perst_set;
04356ac30771091 Jim Quinlan 2020-09-11 1215 pcie->bridge_sw_init_set = data->bridge_sw_init_set;
c0452137034bda8 Jim Quinlan 2019-12-16 1216
3cf0eead9fb895d Dejin Zheng 2020-07-08 1217 pcie->base = devm_platform_ioremap_resource(pdev, 0);
c0452137034bda8 Jim Quinlan 2019-12-16 1218 if (IS_ERR(pcie->base))
c0452137034bda8 Jim Quinlan 2019-12-16 1219 return PTR_ERR(pcie->base);
c0452137034bda8 Jim Quinlan 2019-12-16 1220
c0452137034bda8 Jim Quinlan 2019-12-16 1221 pcie->clk = devm_clk_get_optional(&pdev->dev, "sw_pcie");
c0452137034bda8 Jim Quinlan 2019-12-16 1222 if (IS_ERR(pcie->clk))
c0452137034bda8 Jim Quinlan 2019-12-16 1223 return PTR_ERR(pcie->clk);
c0452137034bda8 Jim Quinlan 2019-12-16 1224
c0452137034bda8 Jim Quinlan 2019-12-16 1225 ret = of_pci_get_max_link_speed(np);
c0452137034bda8 Jim Quinlan 2019-12-16 1226 pcie->gen = (ret < 0) ? 0 : ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1227
c0452137034bda8 Jim Quinlan 2019-12-16 1228 pcie->ssc = of_property_read_bool(np, "brcm,enable-ssc");
c0452137034bda8 Jim Quinlan 2019-12-16 1229
c0452137034bda8 Jim Quinlan 2019-12-16 1230 ret = clk_prepare_enable(pcie->clk);
c0452137034bda8 Jim Quinlan 2019-12-16 1231 if (ret) {
c0452137034bda8 Jim Quinlan 2019-12-16 1232 dev_err(&pdev->dev, "could not enable clock\n");
c0452137034bda8 Jim Quinlan 2019-12-16 1233 return ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1234 }
b98f52bc6495110 Jim Quinlan 2020-09-11 1235 pcie->rescal = devm_reset_control_get_optional_shared(&pdev->dev, "rescal");
b98f52bc6495110 Jim Quinlan 2020-09-11 1236 if (IS_ERR(pcie->rescal))
b98f52bc6495110 Jim Quinlan 2020-09-11 1237 return PTR_ERR(pcie->rescal);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Smatch complains that some of these don't do a "goto fail;" should do
the clk_disable_unprepare(pcie->clk); from __brcm_pcie_remove(). The
clk is a devm_ clock. Do devm_ clocks need to be unprepared?
b98f52bc6495110 Jim Quinlan 2020-09-11 1238
b98f52bc6495110 Jim Quinlan 2020-09-11 1239 ret = reset_control_deassert(pcie->rescal);
b98f52bc6495110 Jim Quinlan 2020-09-11 1240 if (ret)
b98f52bc6495110 Jim Quinlan 2020-09-11 1241 dev_err(&pdev->dev, "failed to deassert 'rescal'\n");
b98f52bc6495110 Jim Quinlan 2020-09-11 1242
b98f52bc6495110 Jim Quinlan 2020-09-11 1243 ret = brcm_phy_start(pcie);
b98f52bc6495110 Jim Quinlan 2020-09-11 1244 if (ret) {
b98f52bc6495110 Jim Quinlan 2020-09-11 1245 reset_control_assert(pcie->rescal);
b98f52bc6495110 Jim Quinlan 2020-09-11 1246 return ret;
b98f52bc6495110 Jim Quinlan 2020-09-11 1247 }
c0452137034bda8 Jim Quinlan 2019-12-16 1248
c0452137034bda8 Jim Quinlan 2019-12-16 1249 ret = brcm_pcie_setup(pcie);
c0452137034bda8 Jim Quinlan 2019-12-16 1250 if (ret)
c0452137034bda8 Jim Quinlan 2019-12-16 1251 goto fail;
c0452137034bda8 Jim Quinlan 2019-12-16 1252
40ca1bf580ef24d Jim Quinlan 2019-12-16 1253 msi_np = of_parse_phandle(pcie->np, "msi-parent", 0);
40ca1bf580ef24d Jim Quinlan 2019-12-16 1254 if (pci_msi_enabled() && msi_np == pcie->np) {
40ca1bf580ef24d Jim Quinlan 2019-12-16 1255 ret = brcm_pcie_enable_msi(pcie);
40ca1bf580ef24d Jim Quinlan 2019-12-16 1256 if (ret) {
40ca1bf580ef24d Jim Quinlan 2019-12-16 1257 dev_err(pcie->dev, "probe of internal MSI failed");
40ca1bf580ef24d Jim Quinlan 2019-12-16 1258 goto fail;
40ca1bf580ef24d Jim Quinlan 2019-12-16 1259 }
40ca1bf580ef24d Jim Quinlan 2019-12-16 1260 }
40ca1bf580ef24d Jim Quinlan 2019-12-16 1261
c0452137034bda8 Jim Quinlan 2019-12-16 1262 bridge->ops = &brcm_pcie_ops;
c0452137034bda8 Jim Quinlan 2019-12-16 1263 bridge->sysdata = pcie;
c0452137034bda8 Jim Quinlan 2019-12-16 1264
c0452137034bda8 Jim Quinlan 2019-12-16 1265 platform_set_drvdata(pdev, pcie);
c0452137034bda8 Jim Quinlan 2019-12-16 1266
a37571fa9c04a9e Rob Herring 2020-05-22 1267 return pci_host_probe(bridge);
c0452137034bda8 Jim Quinlan 2019-12-16 1268 fail:
c0452137034bda8 Jim Quinlan 2019-12-16 1269 __brcm_pcie_remove(pcie);
c0452137034bda8 Jim Quinlan 2019-12-16 @1270 return ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1271 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[renesas-drivers:topic/renesas-debug 11/20] drivers/soc/renesas/renesas-mstp.c:294 renesas_test_mstp_clocks() warn: Function too hairy. No more merges.
by kernel test robot
CC: kbuild-all(a)lists.01.org
CC: linux-renesas-soc(a)vger.kernel.org
TO: Geert Uytterhoeven <geert+renesas(a)glider.be>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git topic/renesas-debug
head: 002d1fffbc137d7002a628d538e7cf317a18cdc0
commit: fb60a3bb44a34f347713f0d3dadb451d084fc641 [11/20] [DEBUG] soc: renesas: r8a77965: MSTP debug handling
:::::: branch date: 17 hours ago
:::::: commit date: 17 hours ago
config: arm64-randconfig-m031-20200929 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/soc/renesas/renesas-mstp.c:294 renesas_test_mstp_clocks() warn: Function too hairy. No more merges.
vim +294 drivers/soc/renesas/renesas-mstp.c
afd793967626698 Geert Uytterhoeven 2014-09-10 236
afd793967626698 Geert Uytterhoeven 2014-09-10 237
afd793967626698 Geert Uytterhoeven 2014-09-10 238 static void renesas_test_mstp_clocks(void)
afd793967626698 Geert Uytterhoeven 2014-09-10 239 {
afd793967626698 Geert Uytterhoeven 2014-09-10 240 unsigned int r, b;
afd793967626698 Geert Uytterhoeven 2014-09-10 241
afd793967626698 Geert Uytterhoeven 2014-09-10 242 if (!mstp)
afd793967626698 Geert Uytterhoeven 2014-09-10 243 return;
afd793967626698 Geert Uytterhoeven 2014-09-10 244
afd793967626698 Geert Uytterhoeven 2014-09-10 245 printk("STARTING TEST\n");
afd793967626698 Geert Uytterhoeven 2014-09-10 246 for (r = 0; r < mstp->num_regs; r++) {
afd793967626698 Geert Uytterhoeven 2014-09-10 247 u32 sr, save_sc, save_rc, save_mc, save_xc, save_ac;
afd793967626698 Geert Uytterhoeven 2014-09-10 248 unsigned int n = 0;
afd793967626698 Geert Uytterhoeven 2014-09-10 249 char buf[100];
afd793967626698 Geert Uytterhoeven 2014-09-10 250 buf[0] = 0;
afd793967626698 Geert Uytterhoeven 2014-09-10 251 /* Save MSTP registers */
afd793967626698 Geert Uytterhoeven 2014-09-10 252 sr = read_mstpsr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 253 save_sc = read_smstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 254 save_rc = read_rmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 255 save_mc = read_mmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 256 save_xc = read_scmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 257 save_ac = read_samstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 258 if (SMSTPCR)
afd793967626698 Geert Uytterhoeven 2014-09-10 259 n += sprintf(buf + n, " S 0x%08x", save_sc);
afd793967626698 Geert Uytterhoeven 2014-09-10 260 if (RMSTPCR)
afd793967626698 Geert Uytterhoeven 2014-09-10 261 n += sprintf(buf + n, " R 0x%08x", save_rc);
afd793967626698 Geert Uytterhoeven 2014-09-10 262 if (MMSTPCR)
afd793967626698 Geert Uytterhoeven 2014-09-10 263 n += sprintf(buf + n, " M 0x%08x", save_mc);
afd793967626698 Geert Uytterhoeven 2014-09-10 264 if (SCMSTPCR)
afd793967626698 Geert Uytterhoeven 2014-09-10 265 n += sprintf(buf + n, " X 0x%08x", save_xc);
afd793967626698 Geert Uytterhoeven 2014-09-10 266 if (SAMSTPCR)
afd793967626698 Geert Uytterhoeven 2014-09-10 267 n += sprintf(buf + n, " A 0x%08x", save_ac);
afd793967626698 Geert Uytterhoeven 2014-09-10 268 printk("MSTP%u: SR 0x%08x%s\n", r, sr, buf);
afd793967626698 Geert Uytterhoeven 2014-09-10 269 for (b = 31; b < 32; b--) {
afd793967626698 Geert Uytterhoeven 2014-09-10 270 u32 mask, rc0, sc0, mc0, xc0, ac0;
afd793967626698 Geert Uytterhoeven 2014-09-10 271 printk(" %u", b);
afd793967626698 Geert Uytterhoeven 2014-09-10 272 mask = BIT(b);
afd793967626698 Geert Uytterhoeven 2014-09-10 273
afd793967626698 Geert Uytterhoeven 2014-09-10 274 /* Read MSTP registers */
afd793967626698 Geert Uytterhoeven 2014-09-10 275 sc0 = read_smstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 276 rc0 = read_rmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 277 mc0 = read_mmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 278 xc0 = read_scmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 279 ac0 = read_scmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 280 udelay(1000);
afd793967626698 Geert Uytterhoeven 2014-09-10 281 CHECK_CONSISTENCY(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 282
afd793967626698 Geert Uytterhoeven 2014-09-10 283 /* Test if MSTP bits can be changed */
afd793967626698 Geert Uytterhoeven 2014-09-10 284 FLIP_RMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 285 FLIP_MMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 286 FLIP_SMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 287 FLIP_SCMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 288 FLIP_SAMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 289
afd793967626698 Geert Uytterhoeven 2014-09-10 290 FLIP_RMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 291 FLIP_MMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 292 FLIP_SMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 293 FLIP_SCMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 @294 FLIP_SAMSTP(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 295
afd793967626698 Geert Uytterhoeven 2014-09-10 296 /* Restore MSTP registers */
afd793967626698 Geert Uytterhoeven 2014-09-10 297 write_smstpcr(save_sc, r);
afd793967626698 Geert Uytterhoeven 2014-09-10 298 write_rmstpcr(save_rc, r);
afd793967626698 Geert Uytterhoeven 2014-09-10 299 write_mmstpcr(save_mc, r);
afd793967626698 Geert Uytterhoeven 2014-09-10 300 write_scmstpcr(save_xc, r);
afd793967626698 Geert Uytterhoeven 2014-09-10 301 write_scmstpcr(save_ac, r);
afd793967626698 Geert Uytterhoeven 2014-09-10 302 mdelay(10);
afd793967626698 Geert Uytterhoeven 2014-09-10 303 sc0 = read_smstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 304 if (sc0 != save_sc)
afd793967626698 Geert Uytterhoeven 2014-09-10 305 printk("\n%u: SMSTPCR%u 0x%08x != 0x%08x\n",
afd793967626698 Geert Uytterhoeven 2014-09-10 306 __LINE__, r, sc0, save_sc);
afd793967626698 Geert Uytterhoeven 2014-09-10 307 rc0 = read_rmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 308 if (rc0 != save_rc)
afd793967626698 Geert Uytterhoeven 2014-09-10 309 printk("\n%u: RMSTPCR%u 0x%08x != 0x%08x\n",
afd793967626698 Geert Uytterhoeven 2014-09-10 310 __LINE__, r, rc0, save_rc);
afd793967626698 Geert Uytterhoeven 2014-09-10 311 mc0 = read_mmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 312 if (mc0 != save_mc)
afd793967626698 Geert Uytterhoeven 2014-09-10 313 printk("\n%u: MMSTPCR%u 0x%08x != 0x%08x\n",
afd793967626698 Geert Uytterhoeven 2014-09-10 314 __LINE__, r, mc0, save_mc);
afd793967626698 Geert Uytterhoeven 2014-09-10 315 xc0 = read_scmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 316 if (xc0 != save_xc)
afd793967626698 Geert Uytterhoeven 2014-09-10 317 printk("\n%u: SCMSTPCR%u 0x%08x != 0x%08x\n",
afd793967626698 Geert Uytterhoeven 2014-09-10 318 __LINE__, r, xc0, save_xc);
afd793967626698 Geert Uytterhoeven 2014-09-10 319 ac0 = read_scmstpcr(r);
afd793967626698 Geert Uytterhoeven 2014-09-10 320 if (ac0 != save_ac)
afd793967626698 Geert Uytterhoeven 2014-09-10 321 printk("\n%u: SAMSTPCR%u 0x%08x != 0x%08x\n",
afd793967626698 Geert Uytterhoeven 2014-09-10 322 __LINE__, r, ac0, save_ac);
afd793967626698 Geert Uytterhoeven 2014-09-10 323 udelay(1000);
afd793967626698 Geert Uytterhoeven 2014-09-10 324 CHECK_CONSISTENCY(r, b, sc0, rc0, mc0, xc0, ac0);
afd793967626698 Geert Uytterhoeven 2014-09-10 325 }
afd793967626698 Geert Uytterhoeven 2014-09-10 326 printk("\n");
afd793967626698 Geert Uytterhoeven 2014-09-10 327 }
afd793967626698 Geert Uytterhoeven 2014-09-10 328 printk("TEST COMPLETED\n");
afd793967626698 Geert Uytterhoeven 2014-09-10 329 }
afd793967626698 Geert Uytterhoeven 2014-09-10 330
:::::: The code at line 294 was first introduced by commit
:::::: afd7939676266983d201d5c28f8075618509c6c6 [DEBUG] soc: renesas: Core MSTP debug handling
:::::: TO: Geert Uytterhoeven <geert+renesas(a)glider.be>
:::::: CC: Geert Uytterhoeven <geert+renesas(a)glider.be>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[linux-next:master 6316/11956] arch/arm64/kvm/mmu.c:1642 user_mem_abort() error: uninitialized symbol 'ret'.
by kernel test robot
CC: kbuild-all(a)lists.01.org
TO: Will Deacon <will(a)kernel.org>
CC: Marc Zyngier <maz(a)kernel.org>
CC: Gavin Shan <gshan(a)redhat.com>
CC: Alexandru Elisei <alexandru.elisei(a)arm.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 49e7e3e905e437a02782019570f70997e2da9101
commit: 6f745f1bb5bf2914be2344b0dd7781d0528b3e42 [6316/11956] KVM: arm64: Convert user_mem_abort() to generic page-table API
:::::: branch date: 15 hours ago
:::::: commit date: 3 weeks ago
config: arm64-randconfig-m031-20200929 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
arch/arm64/kvm/mmu.c:1642 user_mem_abort() error: uninitialized symbol 'ret'.
vim +/ret +1642 arch/arm64/kvm/mmu.c
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1495
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1496 static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
98047888bb9fd5 arch/arm/kvm/mmu.c Christoffer Dall 2014-08-19 1497 struct kvm_memory_slot *memslot, unsigned long hva,
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1498 unsigned long fault_status)
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1499 {
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1500 int ret;
6396b852e46e56 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1501 bool write_fault, writable, force_pte = false;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1502 bool exec_fault;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1503 bool device = false;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1504 unsigned long mmu_seq;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1505 struct kvm *kvm = vcpu->kvm;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1506 struct kvm_mmu_memory_cache *memcache = &vcpu->arch.mmu_page_cache;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1507 struct vm_area_struct *vma;
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1508 short vma_shift;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1509 gfn_t gfn;
ba049e93aef7e8 arch/arm/kvm/mmu.c Dan Williams 2016-01-15 1510 kvm_pfn_t pfn;
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1511 bool logging_active = memslot_is_logging(memslot);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1512 unsigned long vma_pagesize;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1513 enum kvm_pgtable_prot prot = KVM_PGTABLE_PROT_R;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1514 struct kvm_pgtable *pgt;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1515
a7d079cea2dffb arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-09 1516 write_fault = kvm_is_write_fault(vcpu);
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1517 exec_fault = kvm_vcpu_trap_is_iabt(vcpu);
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1518 VM_BUG_ON(write_fault && exec_fault);
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1519
d0e22b4ac3ba23 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1520 if (fault_status == FSC_PERM && !write_fault && !exec_fault) {
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1521 kvm_err("Unexpected L2 read permission error\n");
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1522 return -EFAULT;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1523 }
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1524
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1525 /* Let's check if we will get back a huge page backed by hugetlbfs */
89154dd5313f77 arch/arm64/kvm/mmu.c Michel Lespinasse 2020-06-08 1526 mmap_read_lock(current->mm);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1527 vma = find_vma_intersection(current->mm, hva, hva + 1);
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1528 if (unlikely(!vma)) {
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1529 kvm_err("Failed to find VMA for hva 0x%lx\n", hva);
89154dd5313f77 arch/arm64/kvm/mmu.c Michel Lespinasse 2020-06-08 1530 mmap_read_unlock(current->mm);
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1531 return -EFAULT;
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1532 }
37b544087ef3f6 arch/arm/kvm/mmu.c Ard Biesheuvel 2014-09-17 1533
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1534 if (is_vm_hugetlb_page(vma))
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1535 vma_shift = huge_page_shift(hstate_vma(vma));
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1536 else
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1537 vma_shift = PAGE_SHIFT;
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1538
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1539 vma_pagesize = 1ULL << vma_shift;
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1540 if (logging_active ||
6d674e28f642e3 virt/kvm/arm/mmu.c Marc Zyngier 2019-12-11 1541 (vma->vm_flags & VM_PFNMAP) ||
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1542 !fault_supports_stage2_huge_mapping(memslot, hva, vma_pagesize)) {
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1543 force_pte = true;
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1544 vma_pagesize = PAGE_SIZE;
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1545 }
a80868f3985548 virt/kvm/arm/mmu.c Suzuki K Poulose 2019-03-12 1546
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1547 if (vma_pagesize == PMD_SIZE || vma_pagesize == PUD_SIZE)
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1548 fault_ipa &= huge_page_mask(hstate_vma(vma));
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1549
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1550 gfn = fault_ipa >> PAGE_SHIFT;
89154dd5313f77 arch/arm64/kvm/mmu.c Michel Lespinasse 2020-06-08 1551 mmap_read_unlock(current->mm);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1552
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1553 /*
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1554 * Permission faults just need to update the existing leaf entry,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1555 * and so normally don't require allocations from the memcache. The
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1556 * only exception to this is when dirty logging is enabled at runtime
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1557 * and a write fault needs to collapse a block entry into a table.
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1558 */
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1559 if (fault_status != FSC_PERM || (logging_active && write_fault)) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1560 ret = kvm_mmu_topup_memory_cache(memcache,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1561 kvm_mmu_cache_min_pages(kvm));
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1562 if (ret)
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1563 return ret;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1564 }
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1565
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1566 mmu_seq = vcpu->kvm->mmu_notifier_seq;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1567 /*
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1568 * Ensure the read of mmu_notifier_seq happens before we call
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1569 * gfn_to_pfn_prot (which calls get_user_pages), so that we don't risk
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1570 * the page we just got a reference to gets unmapped before we have a
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1571 * chance to grab the mmu_lock, which ensure that if the page gets
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1572 * unmapped afterwards, the call to kvm_unmap_hva will take it away
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1573 * from us again properly. This smp_rmb() interacts with the smp_wmb()
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1574 * in kvm_mmu_notifier_invalidate_<page|range_end>.
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1575 */
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1576 smp_rmb();
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1577
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1578 pfn = gfn_to_pfn_prot(kvm, gfn, write_fault, &writable);
196f878a7ac2e7 virt/kvm/arm/mmu.c James Morse 2017-06-20 1579 if (pfn == KVM_PFN_ERR_HWPOISON) {
1559b7583ff6ed virt/kvm/arm/mmu.c James Morse 2019-12-17 1580 kvm_send_hwpoison_signal(hva, vma_shift);
196f878a7ac2e7 virt/kvm/arm/mmu.c James Morse 2017-06-20 1581 return 0;
196f878a7ac2e7 virt/kvm/arm/mmu.c James Morse 2017-06-20 1582 }
9ac715954682b2 arch/arm/kvm/mmu.c Christoffer Dall 2016-08-17 1583 if (is_error_noslot_pfn(pfn))
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1584 return -EFAULT;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1585
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1586 if (kvm_is_device_pfn(pfn)) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1587 device = true;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1588 } else if (logging_active && !write_fault) {
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1589 /*
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1590 * Only actually map the page as writable if this was a write
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1591 * fault.
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1592 */
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1593 writable = false;
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1594 }
b88657674d39fc arch/arm/kvm/mmu.c Kim Phillips 2014-06-26 1595
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1596 if (exec_fault && device)
6d674e28f642e3 virt/kvm/arm/mmu.c Marc Zyngier 2019-12-11 1597 return -ENOEXEC;
6d674e28f642e3 virt/kvm/arm/mmu.c Marc Zyngier 2019-12-11 1598
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1599 spin_lock(&kvm->mmu_lock);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1600 pgt = vcpu->arch.hw_mmu->pgt;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1601 if (mmu_notifier_retry(kvm, mmu_seq))
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1602 goto out_unlock;
15a49a44fc3620 arch/arm/kvm/mmu.c Mario Smarduch 2015-01-15 1603
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1604 /*
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1605 * If we are not forced to use page mapping, check if we are
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1606 * backed by a THP and thus use block mapping if possible.
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1607 */
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1608 if (vma_pagesize == PAGE_SIZE && !force_pte)
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1609 vma_pagesize = transparent_hugepage_adjust(memslot, hva,
0529c9021252a5 arch/arm64/kvm/mmu.c Suzuki K Poulose 2020-05-07 1610 &pfn, &fault_ipa);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1611 if (writable) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1612 prot |= KVM_PGTABLE_PROT_W;
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1613 kvm_set_pfn_dirty(pfn);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1614 mark_page_dirty(kvm, gfn);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1615 }
a9c0e12ebee56e virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1616
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1617 if (fault_status != FSC_PERM && !device)
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1618 clean_dcache_guest_page(pfn, vma_pagesize);
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1619
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1620 if (exec_fault) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1621 prot |= KVM_PGTABLE_PROT_X;
3f58bf63455588 virt/kvm/arm/mmu.c Punit Agrawal 2018-12-11 1622 invalidate_icache_guest_page(pfn, vma_pagesize);
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1623 }
a9c0e12ebee56e virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1624
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1625 if (device)
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1626 prot |= KVM_PGTABLE_PROT_DEVICE;
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1627 else if (cpus_have_const_cap(ARM64_HAS_CACHE_DIC))
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1628 prot |= KVM_PGTABLE_PROT_X;
a15f693935a9f1 virt/kvm/arm/mmu.c Marc Zyngier 2017-10-23 1629
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1630 if (fault_status == FSC_PERM && !(logging_active && writable)) {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1631 ret = kvm_pgtable_stage2_relax_perms(pgt, fault_ipa, prot);
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1632 } else {
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1633 ret = kvm_pgtable_stage2_map(pgt, fault_ipa, vma_pagesize,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1634 __pfn_to_phys(pfn), prot,
6f745f1bb5bf29 arch/arm64/kvm/mmu.c Will Deacon 2020-09-11 1635 memcache);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1636 }
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1637
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1638 out_unlock:
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 1639 spin_unlock(&kvm->mmu_lock);
35307b9a5f7ebc arch/arm/kvm/mmu.c Marc Zyngier 2015-03-12 1640 kvm_set_pfn_accessed(pfn);
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1641 kvm_release_pfn_clean(pfn);
ad361f093c1e31 arch/arm/kvm/mmu.c Christoffer Dall 2012-11-01 @1642 return ret;
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1643 }
94f8e6418d3915 arch/arm/kvm/mmu.c Christoffer Dall 2013-01-20 1644
:::::: The code at line 1642 was first introduced by commit
:::::: ad361f093c1e31d0b43946210a32ab4ff5c49850 KVM: ARM: Support hugetlbfs backed huge pages
:::::: TO: Christoffer Dall <christoffer.dall(a)linaro.org>
:::::: CC: Christoffer Dall <christoffer.dall(a)linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[linux-next:master 7844/11956] drivers/irqchip/irq-gic.c:822 gic_ipi_send_mask() error: uninitialized symbol 'flags'.
by kernel test robot
CC: kbuild-all(a)lists.01.org
TO: Marc Zyngier <maz(a)kernel.org>
CC: Valentin Schneider <valentin.schneider(a)arm.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 49e7e3e905e437a02782019570f70997e2da9101
commit: 64a267e9a41c5a91efdfa5bf55bd2509cb4f7170 [7844/11956] irqchip/gic: Configure SGIs as standard interrupts
:::::: branch date: 14 hours ago
:::::: commit date: 12 days ago
config: arm64-randconfig-m031-20200929 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/irqchip/irq-gic.c:822 gic_ipi_send_mask() error: uninitialized symbol 'flags'.
vim +/flags +822 drivers/irqchip/irq-gic.c
7ec46b519467852 drivers/irqchip/irq-gic.c Marc Zyngier 2020-04-25 809
64a267e9a41c5a9 drivers/irqchip/irq-gic.c Marc Zyngier 2020-04-25 810 static void gic_ipi_send_mask(struct irq_data *d, const struct cpumask *mask)
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 811 {
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 812 int cpu;
1a6b69b6548cd0d drivers/irqchip/irq-gic.c Nicolas Pitre 2012-04-12 813 unsigned long flags, map = 0;
1a6b69b6548cd0d drivers/irqchip/irq-gic.c Nicolas Pitre 2012-04-12 814
059e232089e45b0 drivers/irqchip/irq-gic.c Marc Zyngier 2016-08-09 815 if (unlikely(nr_cpu_ids == 1)) {
059e232089e45b0 drivers/irqchip/irq-gic.c Marc Zyngier 2016-08-09 816 /* Only one CPU? let's do a self-IPI... */
64a267e9a41c5a9 drivers/irqchip/irq-gic.c Marc Zyngier 2020-04-25 817 writel_relaxed(2 << 24 | d->hwirq,
059e232089e45b0 drivers/irqchip/irq-gic.c Marc Zyngier 2016-08-09 818 gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT);
059e232089e45b0 drivers/irqchip/irq-gic.c Marc Zyngier 2016-08-09 819 return;
059e232089e45b0 drivers/irqchip/irq-gic.c Marc Zyngier 2016-08-09 820 }
059e232089e45b0 drivers/irqchip/irq-gic.c Marc Zyngier 2016-08-09 821
04c8b0f82c7d5a9 drivers/irqchip/irq-gic.c Marc Zyngier 2016-06-27 @822 gic_lock_irqsave(flags);
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 823
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 824 /* Convert our logical CPU mask into a physical one. */
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 825 for_each_cpu(cpu, mask)
91bdf0d0c48c925 drivers/irqchip/irq-gic.c Javi Merino 2013-02-19 826 map |= gic_cpu_map[cpu];
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 827
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 828 /*
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 829 * Ensure that stores to Normal memory are visible to the
8adbf57fc429458 drivers/irqchip/irq-gic.c Will Deacon 2014-02-20 830 * other CPUs before they observe us issuing the IPI.
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 831 */
8adbf57fc429458 drivers/irqchip/irq-gic.c Will Deacon 2014-02-20 832 dmb(ishst);
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 833
b1cffebf1029c87 arch/arm/common/gic.c Rob Herring 2012-11-26 834 /* this always happens on GIC0 */
64a267e9a41c5a9 drivers/irqchip/irq-gic.c Marc Zyngier 2020-04-25 835 writel_relaxed(map << 16 | d->hwirq, gic_data_dist_base(&gic_data[0]) + GIC_DIST_SOFTINT);
1a6b69b6548cd0d drivers/irqchip/irq-gic.c Nicolas Pitre 2012-04-12 836
04c8b0f82c7d5a9 drivers/irqchip/irq-gic.c Marc Zyngier 2016-06-27 837 gic_unlock_irqrestore(flags);
1a6b69b6548cd0d drivers/irqchip/irq-gic.c Nicolas Pitre 2012-04-12 838 }
7ec46b519467852 drivers/irqchip/irq-gic.c Marc Zyngier 2020-04-25 839
:::::: The code at line 822 was first introduced by commit
:::::: 04c8b0f82c7d5a9a1c296eef914ae3bb820bcb85 irqchip/gic: Make locking a BL_SWITCHER only feature
:::::: TO: Marc Zyngier <marc.zyngier(a)arm.com>
:::::: CC: Marc Zyngier <marc.zyngier(a)arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
[linux-next:master 9468/11956] drivers/pci/controller/pcie-brcmstb.c:1270 brcm_pcie_probe() warn: 'pcie->clk' not released on lines: 1237.
by kernel test robot
CC: kbuild-all(a)lists.01.org
TO: Jim Quinlan <james.quinlan(a)broadcom.com>
CC: Lorenzo Pieralisi <lorenzo.pieralisi(a)arm.com>
CC: Rob Herring <robh(a)kernel.org>
Hi Jim,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 49e7e3e905e437a02782019570f70997e2da9101
commit: 5d98ac4e2823dcfd5e8a2ac3c71ec1ed6cdd1f54 [9468/11956] PCI: brcmstb: Set additional internal memory DMA viewport sizes
:::::: branch date: 12 hours ago
:::::: commit date: 7 days ago
config: arm64-randconfig-m031-20200929 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/pci/controller/pcie-brcmstb.c:1270 brcm_pcie_probe() warn: 'pcie->clk' not released on lines: 1237.
vim +1270 drivers/pci/controller/pcie-brcmstb.c
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1175
c0452137034bda8 Jim Quinlan 2019-12-16 1176 static int brcm_pcie_probe(struct platform_device *pdev)
c0452137034bda8 Jim Quinlan 2019-12-16 1177 {
40ca1bf580ef24d Jim Quinlan 2019-12-16 1178 struct device_node *np = pdev->dev.of_node, *msi_np;
c0452137034bda8 Jim Quinlan 2019-12-16 1179 struct pci_host_bridge *bridge;
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1180 struct device_node *fw_np;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1181 const struct pcie_cfg_data *data;
c0452137034bda8 Jim Quinlan 2019-12-16 1182 struct brcm_pcie *pcie;
c0452137034bda8 Jim Quinlan 2019-12-16 1183 int ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1184
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1185 /*
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1186 * We have to wait for Raspberry Pi's firmware interface to be up as a
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1187 * PCI fixup, rpi_firmware_init_vl805(), depends on it. This driver's
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1188 * probe can race with the firmware interface's (see
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1189 * drivers/firmware/raspberrypi.c) and potentially break the PCI fixup.
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1190 */
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1191 fw_np = of_find_compatible_node(NULL, NULL,
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1192 "raspberrypi,bcm2835-firmware");
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1193 if (fw_np && !rpi_firmware_get(fw_np)) {
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1194 of_node_put(fw_np);
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1195 return -EPROBE_DEFER;
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1196 }
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1197 of_node_put(fw_np);
44331189f9082c7 Nicolas Saenz Julienne 2020-05-05 1198
c0452137034bda8 Jim Quinlan 2019-12-16 1199 bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie));
c0452137034bda8 Jim Quinlan 2019-12-16 1200 if (!bridge)
c0452137034bda8 Jim Quinlan 2019-12-16 1201 return -ENOMEM;
c0452137034bda8 Jim Quinlan 2019-12-16 1202
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1203 data = of_device_get_match_data(&pdev->dev);
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1204 if (!data) {
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1205 pr_err("failed to look up compatible string\n");
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1206 return -EINVAL;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1207 }
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1208
c0452137034bda8 Jim Quinlan 2019-12-16 1209 pcie = pci_host_bridge_priv(bridge);
c0452137034bda8 Jim Quinlan 2019-12-16 1210 pcie->dev = &pdev->dev;
c0452137034bda8 Jim Quinlan 2019-12-16 1211 pcie->np = np;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1212 pcie->reg_offsets = data->offsets;
1cf1b0a6dd95250 Jim Quinlan 2020-09-11 1213 pcie->type = data->type;
04356ac30771091 Jim Quinlan 2020-09-11 1214 pcie->perst_set = data->perst_set;
04356ac30771091 Jim Quinlan 2020-09-11 1215 pcie->bridge_sw_init_set = data->bridge_sw_init_set;
c0452137034bda8 Jim Quinlan 2019-12-16 1216
3cf0eead9fb895d Dejin Zheng 2020-07-08 1217 pcie->base = devm_platform_ioremap_resource(pdev, 0);
c0452137034bda8 Jim Quinlan 2019-12-16 1218 if (IS_ERR(pcie->base))
c0452137034bda8 Jim Quinlan 2019-12-16 1219 return PTR_ERR(pcie->base);
c0452137034bda8 Jim Quinlan 2019-12-16 1220
c0452137034bda8 Jim Quinlan 2019-12-16 1221 pcie->clk = devm_clk_get_optional(&pdev->dev, "sw_pcie");
c0452137034bda8 Jim Quinlan 2019-12-16 1222 if (IS_ERR(pcie->clk))
c0452137034bda8 Jim Quinlan 2019-12-16 1223 return PTR_ERR(pcie->clk);
c0452137034bda8 Jim Quinlan 2019-12-16 1224
c0452137034bda8 Jim Quinlan 2019-12-16 1225 ret = of_pci_get_max_link_speed(np);
c0452137034bda8 Jim Quinlan 2019-12-16 1226 pcie->gen = (ret < 0) ? 0 : ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1227
c0452137034bda8 Jim Quinlan 2019-12-16 1228 pcie->ssc = of_property_read_bool(np, "brcm,enable-ssc");
c0452137034bda8 Jim Quinlan 2019-12-16 1229
c0452137034bda8 Jim Quinlan 2019-12-16 1230 ret = clk_prepare_enable(pcie->clk);
c0452137034bda8 Jim Quinlan 2019-12-16 1231 if (ret) {
c0452137034bda8 Jim Quinlan 2019-12-16 1232 dev_err(&pdev->dev, "could not enable clock\n");
c0452137034bda8 Jim Quinlan 2019-12-16 1233 return ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1234 }
b98f52bc6495110 Jim Quinlan 2020-09-11 1235 pcie->rescal = devm_reset_control_get_optional_shared(&pdev->dev, "rescal");
b98f52bc6495110 Jim Quinlan 2020-09-11 1236 if (IS_ERR(pcie->rescal))
b98f52bc6495110 Jim Quinlan 2020-09-11 1237 return PTR_ERR(pcie->rescal);
b98f52bc6495110 Jim Quinlan 2020-09-11 1238
b98f52bc6495110 Jim Quinlan 2020-09-11 1239 ret = reset_control_deassert(pcie->rescal);
b98f52bc6495110 Jim Quinlan 2020-09-11 1240 if (ret)
b98f52bc6495110 Jim Quinlan 2020-09-11 1241 dev_err(&pdev->dev, "failed to deassert 'rescal'\n");
b98f52bc6495110 Jim Quinlan 2020-09-11 1242
b98f52bc6495110 Jim Quinlan 2020-09-11 1243 ret = brcm_phy_start(pcie);
b98f52bc6495110 Jim Quinlan 2020-09-11 1244 if (ret) {
b98f52bc6495110 Jim Quinlan 2020-09-11 1245 reset_control_assert(pcie->rescal);
b98f52bc6495110 Jim Quinlan 2020-09-11 1246 return ret;
b98f52bc6495110 Jim Quinlan 2020-09-11 1247 }
c0452137034bda8 Jim Quinlan 2019-12-16 1248
c0452137034bda8 Jim Quinlan 2019-12-16 1249 ret = brcm_pcie_setup(pcie);
c0452137034bda8 Jim Quinlan 2019-12-16 1250 if (ret)
c0452137034bda8 Jim Quinlan 2019-12-16 1251 goto fail;
c0452137034bda8 Jim Quinlan 2019-12-16 1252
40ca1bf580ef24d Jim Quinlan 2019-12-16 1253 msi_np = of_parse_phandle(pcie->np, "msi-parent", 0);
40ca1bf580ef24d Jim Quinlan 2019-12-16 1254 if (pci_msi_enabled() && msi_np == pcie->np) {
40ca1bf580ef24d Jim Quinlan 2019-12-16 1255 ret = brcm_pcie_enable_msi(pcie);
40ca1bf580ef24d Jim Quinlan 2019-12-16 1256 if (ret) {
40ca1bf580ef24d Jim Quinlan 2019-12-16 1257 dev_err(pcie->dev, "probe of internal MSI failed");
40ca1bf580ef24d Jim Quinlan 2019-12-16 1258 goto fail;
40ca1bf580ef24d Jim Quinlan 2019-12-16 1259 }
40ca1bf580ef24d Jim Quinlan 2019-12-16 1260 }
40ca1bf580ef24d Jim Quinlan 2019-12-16 1261
c0452137034bda8 Jim Quinlan 2019-12-16 1262 bridge->ops = &brcm_pcie_ops;
c0452137034bda8 Jim Quinlan 2019-12-16 1263 bridge->sysdata = pcie;
c0452137034bda8 Jim Quinlan 2019-12-16 1264
c0452137034bda8 Jim Quinlan 2019-12-16 1265 platform_set_drvdata(pdev, pcie);
c0452137034bda8 Jim Quinlan 2019-12-16 1266
a37571fa9c04a9e Rob Herring 2020-05-22 1267 return pci_host_probe(bridge);
c0452137034bda8 Jim Quinlan 2019-12-16 1268 fail:
c0452137034bda8 Jim Quinlan 2019-12-16 1269 __brcm_pcie_remove(pcie);
c0452137034bda8 Jim Quinlan 2019-12-16 @1270 return ret;
c0452137034bda8 Jim Quinlan 2019-12-16 1271 }
c0452137034bda8 Jim Quinlan 2019-12-16 1272
:::::: The code at line 1270 was first introduced by commit
:::::: c0452137034bda8f686dd9a2e167949bfffd6776 PCI: brcmstb: Add Broadcom STB PCIe host controller driver
:::::: TO: Jim Quinlan <james.quinlan(a)broadcom.com>
:::::: CC: Lorenzo Pieralisi <lorenzo.pieralisi(a)arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months
drivers/usb/usbip/stub_dev.c:33:8-16: WARNING: use scnprintf or sprintf
by kernel test robot
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Denis Efremov <efremov(a)linux.com>
CC: Julia Lawall <Julia.Lawall(a)lip6.fr>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ccc1d052eff9f3cfe59d201263903fe1d46c79a5
commit: abfc19ff202d287742483e15fd478ddd6ada2187 coccinelle: api: add device_attr_show script
date: 8 weeks ago
:::::: branch date: 3 hours ago
:::::: commit date: 8 weeks ago
config: openrisc-randconfig-c004-20200929 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Julia Lawall <julia.lawall(a)lip6.fr>
echo
echo "coccinelle warnings: (new ones prefixed by >>)"
echo
>> drivers/usb/usbip/stub_dev.c:33:8-16: WARNING: use scnprintf or sprintf
Please review and possibly fold the followup patch.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 7 months