tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 10e0ea7796b38b1d35a6969966016d7a42d77b7f
commit: c7fcbe1041758d0dedc32502609a73a22884d7b8 [13801/13880] mm: shmem: Merge shmem_alloc_hugefolio() with shmem_alloc_folio()
config: arm64-randconfig-001-20240907 (https://download.01.org/0day-ci/archive/20240907/202409071355.c5MmsI6J-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240907/202409071355.c5MmsI6J-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409071355.c5MmsI6J-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from <command-line>:
mm/shmem.c: In function 'shmem_alloc_folio.constprop.isra':
>> include/linux/compiler_types.h:451:45: error: call to '__compiletime_assert_465' declared with attribute error: BUILD_BUG failed
451 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:432:25: note: in definition of macro '__compiletime_assert'
432 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:451:9: note: in expansion of macro '_compiletime_assert'
451 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:59:21: note: in expansion of macro 'BUILD_BUG_ON_MSG'
59 | #define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
| ^~~~~~~~~~~~~~~~
include/linux/huge_mm.h:106:28: note: in expansion of macro 'BUILD_BUG'
106 | #define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
| ^~~~~~~~~
include/linux/huge_mm.h:110:26: note: in expansion of macro 'HPAGE_PMD_SHIFT'
110 | #define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT)
| ^~~~~~~~~~~~~~~
mm/shmem.c:1641:64: note: in expansion of macro 'HPAGE_PMD_ORDER'
1641 | folio = vma_alloc_folio(gfp, order, &pvma, 0, order == HPAGE_PMD_ORDER);
| ^~~~~~~~~~~~~~~
vim +/__compiletime_assert_465 +451 include/linux/compiler_types.h
eb5c2d4b45e3d2 Will Deacon 2020-07-21 437
eb5c2d4b45e3d2 Will Deacon 2020-07-21 438 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2 Will Deacon 2020-07-21 439 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2 Will Deacon 2020-07-21 440
eb5c2d4b45e3d2 Will Deacon 2020-07-21 441 /**
eb5c2d4b45e3d2 Will Deacon 2020-07-21 442 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2 Will Deacon 2020-07-21 443 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2 Will Deacon 2020-07-21 444 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2 Will Deacon 2020-07-21 445 *
eb5c2d4b45e3d2 Will Deacon 2020-07-21 446 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2 Will Deacon 2020-07-21 447 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2 Will Deacon 2020-07-21 448 * compiler has support to do so.
eb5c2d4b45e3d2 Will Deacon 2020-07-21 449 */
eb5c2d4b45e3d2 Will Deacon 2020-07-21 450 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2 Will Deacon 2020-07-21 @451 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2 Will Deacon 2020-07-21 452
:::::: The code at line 451 was first introduced by commit
:::::: eb5c2d4b45e3d2d5d052ea6b8f1463976b1020d5 compiler.h: Move compiletime_assert() macros into compiler_types.h
:::::: TO: Will Deacon <will(a)kernel.org>
:::::: CC: Will Deacon <will(a)kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 10e0ea7796b38b1d35a6969966016d7a42d77b7f
commit: ed007ade0cef81fb47328683b8a7eec5edfa8494 [13863/13880] virtcca feature: secure smmu init
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20240907/202409071200.Tf9aVoeY-lkp@…)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 05f5a91d00b02f4369f46d076411c700755ae041)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240907/202409071200.Tf9aVoeY-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409071200.Tf9aVoeY-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from arch/arm64/kernel/virtcca_cvm_host.c:6:
In file included from include/linux/mm.h:2242:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kernel/virtcca_cvm_host.c:37:6: warning: no previous prototype for function 'is_virtcca_cvm_enable' [-Wmissing-prototypes]
37 | bool is_virtcca_cvm_enable(void)
| ^
arch/arm64/kernel/virtcca_cvm_host.c:37:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
37 | bool is_virtcca_cvm_enable(void)
| ^
| static
6 warnings generated.
--
>> arch/arm64/kvm/tmi.c:142: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write command to command queue
arch/arm64/kvm/tmi.c:166: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Map mmio stage2 translation for device
arch/arm64/kvm/tmi.c:180: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Unmap mmio stage2 translation for device
arch/arm64/kvm/tmi.c:193: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write device mmio
arch/arm64/kvm/tmi.c:208: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Read device mmio
arch/arm64/kvm/tmi.c:233: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Attach device and configure L2 ste before activate CVM
arch/arm64/kvm/tmi.c:276: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write smmu secure register
arch/arm64/kvm/tmi.c:290: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Read smmu secure register
--
In file included from drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:6:
In file included from include/linux/pci.h:1669:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:2242:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:509:13: warning: no previous prototype for function 'virtcca_smmu_evtq_thread' [-Wmissing-prototypes]
509 | irqreturn_t virtcca_smmu_evtq_thread(int irq, void *dev)
| ^
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:509:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
509 | irqreturn_t virtcca_smmu_evtq_thread(int irq, void *dev)
| ^
| static
>> drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:527:13: warning: no previous prototype for function 'virtcca_smmu_gerror_handler' [-Wmissing-prototypes]
527 | irqreturn_t virtcca_smmu_gerror_handler(int irq, void *dev)
| ^
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:527:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
527 | irqreturn_t virtcca_smmu_gerror_handler(int irq, void *dev)
| ^
| static
7 warnings generated.
--
>> drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:58: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Traverse pcie topology to find the root <bus,device> number
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:80: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Traverse pcie topology to find child devices
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:118: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Get all devices which share the same root_bd as dev
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:146: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Add device obj to hash tablse
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:183: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Whether the root port is secure or not
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:204: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Whether the vm is confidential vm
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:225: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Whether the stream id of dev is confidential
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:246: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Whether the cmd queue need transfer to secure world
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:298: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write queue command to TMM
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:328: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write a batch of queue command to TMM, if need sync, will send additional cmd queue
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:383: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Initialize a queue of the corresponding type
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:424: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write values to secure smmu registers and wait for completion
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:449: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write values to glabal bypass register
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:485: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Disable the secure smmu
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:505: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* The secure evt queue thread
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:520: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* The secure gerror handler
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:590: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Disable secure smmu irq function
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:603: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Enable secure smmu irq function
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:617: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Get irq index from platform
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:636: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Complete the stage2 page table establishment for the security device
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:691: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Setting up the STE config content for the security device
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:729: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Add secure device to hash table
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:766: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Delegate device to secure state
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:815: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Enable the PCIe protection controller function of the security device
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:844: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write secure smmu msi msg
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:877: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Enable secure smmu msi
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:907: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Set secure irq handle
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:945: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Write value to smmu registers and wait for completion
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:965: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Initialize the smmu irq
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:1016: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* For SMMU, it has various uses. In virtCCA scenario,
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:1044: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Enable the smmu secure state
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:1079: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Whether the smmu support secure registers and secure stage2 translate
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:1113: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Implement security settings for corresponding devices targeting the secure smmu domain
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c:1171: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* Initialize the smmu security features
vim +/is_virtcca_cvm_enable +37 arch/arm64/kernel/virtcca_cvm_host.c
36
> 37 bool is_virtcca_cvm_enable(void)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 13b424f97ef548612c760cfd0892f96de96707e0
commit: 1c30433d9fa5c5b48039990ba214c0e8e199a22d [5435/23701] sc16is7xx: missing unregister/delete driver on error in sc16is7xx_init()
config: x86_64-randconfig-121-20240906 (https://download.01.org/0day-ci/archive/20240907/202409071206.ARybrxJe-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240907/202409071206.ARybrxJe-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409071206.ARybrxJe-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/tty/serial/sc16is7xx.c:1501:1: sparse: sparse: unused label 'err_i2c'
drivers/tty/serial/sc16is7xx.c: In function 'sc16is7xx_init':
>> drivers/tty/serial/sc16is7xx.c:1501:1: warning: label 'err_i2c' defined but not used [-Wunused-label]
1501 | err_i2c:
| ^~~~~~~
vim +/err_i2c +1501 drivers/tty/serial/sc16is7xx.c
1487
1488 #ifdef CONFIG_SERIAL_SC16IS7XX_SPI
1489 ret = spi_register_driver(&sc16is7xx_spi_uart_driver);
1490 if (ret < 0) {
1491 pr_err("failed to init sc16is7xx spi --> %d\n", ret);
1492 goto err_spi;
1493 }
1494 #endif
1495 return ret;
1496
1497 err_spi:
1498 #ifdef CONFIG_SERIAL_SC16IS7XX_I2C
1499 i2c_del_driver(&sc16is7xx_i2c_uart_driver);
1500 #endif
> 1501 err_i2c:
1502 uart_unregister_driver(&sc16is7xx_uart);
1503 return ret;
1504 }
1505 module_init(sc16is7xx_init);
1506
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAPAZ3
--------------------------------
Commit c77e22834ae9 ("NFSv4: Fix a potential sleep while atomic in
nfs4_do_reclaim()") separate out the freeing of the state owners from
nfs4_purge_state_owners() and finish it outside the rcu lock.
However, the error path is omitted. As a result, the state owners in
"freeme" will not be released.
Fix it by adding freeing in the error path.
Fixes: c77e22834ae9 ("NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim()")
Signed-off-by: Li Lingfeng <lilingfeng3(a)huawei.com>
---
fs/nfs/nfs4state.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 9a5d911a7edc..ae031c89251b 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1957,6 +1957,7 @@ static int nfs4_do_reclaim(struct nfs_client *clp, const struct nfs4_state_recov
set_bit(ops->owner_flag_bit, &sp->so_flags);
nfs4_put_state_owner(sp);
status = nfs4_recovery_handle_error(clp, status);
+ nfs4_free_state_owners(&freeme);
return (status != 0) ? status : -EAGAIN;
}
--
2.31.1
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAOYZS
--------------------------------
Commit c77e22834ae9 ("NFSv4: Fix a potential sleep while atomic in
nfs4_do_reclaim()") separate out the freeing of the state owners from
nfs4_purge_state_owners() and finish it outside the rcu lock.
However, the error path is omitted. As a result, the state owners in
"freeme" will not be released.
Fix it by adding freeing in the error path.
Fixes: c77e22834ae9 ("NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim()")
Signed-off-by: Li Lingfeng <lilingfeng3(a)huawei.com>
---
fs/nfs/nfs4state.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index afb617a4a7e4..f5ebb747ddf4 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1948,6 +1948,7 @@ static int nfs4_do_reclaim(struct nfs_client *clp, const struct nfs4_state_recov
set_bit(ops->owner_flag_bit, &sp->so_flags);
nfs4_put_state_owner(sp);
status = nfs4_recovery_handle_error(clp, status);
+ nfs4_free_state_owners(&freeme);
return (status != 0) ? status : -EAGAIN;
}
--
2.31.1
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 13b424f97ef548612c760cfd0892f96de96707e0
commit: 9baadf685a5618364776aed92067526bb40c137d [2828/23701] build_bug.h: remove most of dummy BUILD_BUG_ON stubs for Sparse
config: x86_64-randconfig-121-20240906 (https://download.01.org/0day-ci/archive/20240907/202409070807.ESq0nR8U-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240907/202409070807.ESq0nR8U-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409070807.ESq0nR8U-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.c:297:17: sparse: sparse: dubious: x & !y
drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.c:481:16: sparse: sparse: dubious: x & !y
--
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:166:16: sparse: sparse: incorrect type in return expression (different base types) @@ expected unsigned short @@ got restricted __le16 [usertype] @@
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:166:16: sparse: expected unsigned short
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:166:16: sparse: got restricted __le16 [usertype]
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:175:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] tx_rate @@ got unsigned short @@
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:175:23: sparse: expected restricted __le16 [usertype] tx_rate
drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:175:23: sparse: got unsigned short
>> drivers/net/wireless/mediatek/mt76/mt76x0/mac.c:409:16: sparse: sparse: dubious: x & !y
vim +297 drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.c
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 280
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 281 int mt76x2_mac_wcid_set_key(struct mt76x2_dev *dev, u8 idx,
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 282 struct ieee80211_key_conf *key)
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 283 {
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 284 enum mt76x2_cipher_type cipher;
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 285 u8 key_data[32];
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 286 u8 iv_data[8];
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 287
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 288 cipher = mt76x2_mac_get_key_info(key, key_data);
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 289 if (cipher == MT_CIPHER_NONE && key)
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 290 return -EOPNOTSUPP;
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 291
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 292 mt76_rmw_field(dev, MT_WCID_ATTR(idx), MT_WCID_ATTR_PKEY_MODE, cipher);
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 293 mt76_wr_copy(dev, MT_WCID_KEY(idx), key_data, sizeof(key_data));
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 294
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 295 memset(iv_data, 0, sizeof(iv_data));
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 296 if (key) {
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 @297 mt76_rmw_field(dev, MT_WCID_ATTR(idx), MT_WCID_ATTR_PAIRWISE,
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 298 !!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE));
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 299 iv_data[3] = key->keyidx << 6;
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 300 if (cipher >= MT_CIPHER_TKIP)
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 301 iv_data[3] |= 0x20;
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 302 }
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 303
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 304 mt76_wr_copy(dev, MT_WCID_IV(idx), iv_data, sizeof(iv_data));
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 305
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 306 return 0;
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 307 }
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 308 EXPORT_SYMBOL_GPL(mt76x2_mac_wcid_set_key);
b9c45e1c42b7d7 Lorenzo Bianconi 2018-07-31 309
:::::: The code at line 297 was first introduced by commit
:::::: b9c45e1c42b7d709ade99b6ae243065a832e87aa mt76: add mt76x2_mac_common to mt76x2-common module
:::::: TO: Lorenzo Bianconi <lorenzo.bianconi(a)redhat.com>
:::::: CC: Kalle Valo <kvalo(a)codeaurora.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 13b424f97ef548612c760cfd0892f96de96707e0
commit: ac91631e9ef7b530c02e40d10085072c08fb4a0a [23675/23701] blk-io-hierarchy: support new stage for bio lifetime
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20240906/202409062219.DDwu0HG6-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240906/202409062219.DDwu0HG6-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409062219.DDwu0HG6-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> block/blk-io-hierarchy/iodump.c:571:7: warning: no previous prototype for '__bio_stage_hierarchy_start' [-Wmissing-prototypes]
571 | void *__bio_stage_hierarchy_start(struct bio_stage_dump_data *bstage_ddata,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/preempt.h:5,
from ./arch/arm64/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:81,
from include/linux/spinlock.h:51,
from include/linux/wait.h:9,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:7,
from include/linux/seq_file.h:11,
from block/blk-io-hierarchy/iodump.c:14:
In function 'check_object_size',
inlined from 'check_copy_size' at include/linux/thread_info.h:90:2,
inlined from 'copy_from_user' at include/linux/uaccess.h:143:6,
inlined from 'threshold_store' at block/blk-io-hierarchy/iodump.c:273:6:
include/linux/thread_info.h:59:17: warning: 'b' may be used uninitialized [-Wmaybe-uninitialized]
59 | __check_object_size(ptr, n, to_user);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/thread_info.h: In function 'threshold_store':
include/linux/thread_info.h:52:13: note: by argument 1 of type 'const void *' to '__check_object_size' declared here
52 | extern void __check_object_size(const void *ptr, unsigned long n,
| ^~~~~~~~~~~~~~~~~~~
block/blk-io-hierarchy/iodump.c:267:14: note: 'b' declared here
267 | char b[MAX_BUF_LEN + 1];
| ^
vim +/__bio_stage_hierarchy_start +571 block/blk-io-hierarchy/iodump.c
570
> 571 void *__bio_stage_hierarchy_start(struct bio_stage_dump_data *bstage_ddata,
572 loff_t *pos)
573 {
574 struct pos_data *pdata = &bstage_ddata->pdata;
575 struct rq_dump_data *rq_ddata = &bstage_ddata->rq_ddata;
576
577 retry:
578 if (stage_is_bio(pdata->stage)) {
579 struct list_head *list;
580 struct bio_dump_data *bio_ddata =
581 get_bio_stage_ddata(rq_ddata->q, pdata->stage);
582
583 if (!bio_ddata) {
584 bio_stage_start_next_stage(bstage_ddata, pos);
585 goto retry;
586 }
587
588 spin_lock_irq(&bio_ddata->lock);
589 list = seq_list_start(&bio_ddata->head, pdata->count);
590 if (list)
591 return list;
592
593 spin_unlock_irq(&bio_ddata->lock);
594 bio_stage_start_next_stage(bstage_ddata, pos);
595 goto retry;
596 }
597
598 if (pdata->stage == STAGE_BIO &&
599 __rq_hierarchy_start(rq_ddata, pdata->count))
600 return bstage_ddata;
601
602 return NULL;
603 }
604
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki