mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
kernel@openeuler.org

  • 46 participants
  • 18686 discussions
[PATCH openEuler-1.0-LTS] KVM: Stop looking for coalesced MMIO zones if the bus is destroyed
by Zheng Yejian 04 Mar '24

04 Mar '24
From: Sean Christopherson <seanjc(a)google.com> mainline inclusion from mainline-v5.13-rc1 commit 5d3c4c79384af06e3c8e25b7770b6247496b4417 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I94VOT CVE: CVE-2021-47060 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… --------------------------- Abort the walk of coalesced MMIO zones if kvm_io_bus_unregister_dev() fails to allocate memory for the new instance of the bus. If it can't instantiate a new bus, unregister_dev() destroys all devices _except_ the target device. But, it doesn't tell the caller that it obliterated the bus and invoked the destructor for all devices that were on the bus. In the coalesced MMIO case, this can result in a deleted list entry dereference due to attempting to continue iterating on coalesced_zones after future entries (in the walk) have been deleted. Opportunistically add curly braces to the for-loop, which encompasses many lines but sneaks by without braces due to the guts being a single if statement. Fixes: f65886606c2d ("KVM: fix memory leak in kvm_io_bus_unregister_dev()") Cc: stable(a)vger.kernel.org Reported-by: Hao Sun <sunhao.th(a)gmail.com> Signed-off-by: Sean Christopherson <seanjc(a)google.com> Message-Id: <20210412222050.876100-3-seanjc(a)google.com> Signed-off-by: Paolo Bonzini <pbonzini(a)redhat.com> Signed-off-by: Zheng Yejian <zhengyejian1(a)huawei.com> --- include/linux/kvm_host.h | 4 ++-- virt/kvm/coalesced_mmio.c | 19 +++++++++++++++++-- virt/kvm/kvm_main.c | 10 +++++----- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index cac0fad2695f..6346d0123077 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -195,8 +195,8 @@ int kvm_io_bus_read(struct kvm_vcpu *vcpu, enum kvm_bus bus_idx, gpa_t addr, int len, void *val); int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, int len, struct kvm_io_device *dev); -void kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, - struct kvm_io_device *dev); +int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, + struct kvm_io_device *dev); struct kvm_io_device *kvm_io_bus_get_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr); diff --git a/virt/kvm/coalesced_mmio.c b/virt/kvm/coalesced_mmio.c index b9336693c87e..70bd2dbdfffe 100644 --- a/virt/kvm/coalesced_mmio.c +++ b/virt/kvm/coalesced_mmio.c @@ -172,16 +172,31 @@ int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, struct kvm_coalesced_mmio_zone *zone) { struct kvm_coalesced_mmio_dev *dev, *tmp; + int r; mutex_lock(&kvm->slots_lock); - list_for_each_entry_safe(dev, tmp, &kvm->coalesced_zones, list) + list_for_each_entry_safe(dev, tmp, &kvm->coalesced_zones, list) { if (coalesced_mmio_in_range(dev, zone->addr, zone->size)) { - kvm_io_bus_unregister_dev(kvm, KVM_MMIO_BUS, &dev->dev); + r = kvm_io_bus_unregister_dev(kvm, KVM_MMIO_BUS, &dev->dev); kvm_iodevice_destructor(&dev->dev); + + /* + * On failure, unregister destroys all devices on the + * bus _except_ the target device, i.e. coalesced_zones + * has been modified. No need to restart the walk as + * there aren't any zones left. + */ + if (r) + break; } + } mutex_unlock(&kvm->slots_lock); + /* + * Ignore the result of kvm_io_bus_unregister_dev(), from userspace's + * perspective, the coalesced MMIO is most definitely unregistered. + */ return 0; } diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 5f4f222c991f..62cd5624b715 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -3853,15 +3853,15 @@ int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, } /* Caller must hold slots_lock. */ -void kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, - struct kvm_io_device *dev) +int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, + struct kvm_io_device *dev) { int i, j; struct kvm_io_bus *new_bus, *bus; bus = kvm_get_bus(kvm, bus_idx); if (!bus) - return; + return 0; for (i = 0; i < bus->dev_count; i++) if (bus->range[i].dev == dev) { @@ -3869,7 +3869,7 @@ void kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, } if (i == bus->dev_count) - return; + return 0; new_bus = kmalloc(sizeof(*bus) + ((bus->dev_count - 1) * sizeof(struct kvm_io_range)), GFP_KERNEL); @@ -3890,7 +3890,7 @@ void kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, rcu_assign_pointer(kvm->buses[bus_idx], new_bus); synchronize_srcu_expedited(&kvm->srcu); kfree(bus); - return; + return new_bus ? 0 : -ENOMEM; } struct kvm_io_device *kvm_io_bus_get_dev(struct kvm *kvm, enum kvm_bus bus_idx, -- 2.25.1
2 1
0 0
[PATCH v1 OLK-6.6 0/4] kworker: Fix the problem of ipsan performance degradation on ARM architecture
by jiangdongxu 04 Mar '24

04 Mar '24
From: shaodenghui <shaodenghui(a)huawei.com> When the current downstream FS tests IPSAN, it is found that the performance on ARM is much worse than that on X86, and the test data of IPSAN fluctuates greatly. After analysis, the reason is that when iscsi issues IO, the task is sent to kworker for processing by iscsi_xmitworker. The workqueue created by iscsi can automatically identify the CPU of the soft interrupt currently processed by iscsi, and automatically schedule the workqueue to the corresponding NUMA node. shaodenghui (3): iscsi: add member for NUMA aware order workqueue workqueue: implement NUMA affinity for single thread workqueue iscsi: use dynamic single thread workqueue to improve performance drivers/scsi/iscsi_tcp.c | 9 +++++++++ drivers/scsi/libiscsi.c | 17 ++++++++++++----- include/linux/workqueue.h | 1 + include/scsi/libiscsi.h | 1 + kernel/workqueue.c | 15 ++++++++++----- 5 files changed, 33 insertions(+), 10 deletions(-) -- 2.33.0
2 5
0 0
[PATCH openEuler-1.0-LTS] i2c: Fix a potential use after free
by Liu Chuang 04 Mar '24

04 Mar '24
From: Xu Wang <vulab(a)iscas.ac.cn> stable inclusion from stable-v4.19.307 commit 23a191b132cd87f746c62f3dc27da33683d85829 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I946KM CVE: CVE-2019-25162 Reference: https://git.kernel.org/stable/c/23a191b132cd87f746c62f3dc27da33683d85829 --------------------------------------------------------------- [ Upstream commit e4c72c06c367758a14f227c847f9d623f1994ecf ] Free the adap structure only after we are done using it. This patch just moves the put_device() down a bit to avoid the use after free. Fixes: 611e12ea0f12 ("i2c: core: manage i2c bus device refcount in i2c_[get|put]_adapter") Signed-off-by: Xu Wang <vulab(a)iscas.ac.cn> [wsa: added comment to the code, added Fixes tag] Signed-off-by: Wolfram Sang <wsa(a)kernel.org> Signed-off-by: Sasha Levin <sashal(a)kernel.org> Signed-off-by: Liu Chuang <liuchuang40(a)huawei.com> --- drivers/i2c/i2c-core-base.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 2a43f4e46af0..9079be0d51d1 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -2273,8 +2273,9 @@ void i2c_put_adapter(struct i2c_adapter *adap) if (!adap) return; - put_device(&adap->dev); module_put(adap->owner); + /* Should be last, otherwise we risk use-after-free with 'adap' */ + put_device(&adap->dev); } EXPORT_SYMBOL(i2c_put_adapter); -- 2.34.1
2 1
0 0
[PATCH openEuler-1.0-LTS 0/1] backport patch to fix CVE-2021-47077
by Yuntao Liu 04 Mar '24

04 Mar '24
backport patch to fix CVE-2021-47077 Zhen Lei (1): [Backport] ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook arch/arm/kernel/hw_breakpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.34.1
2 2
0 0
[openeuler:openEuler-1.0-LTS 16561/21676] mm/pin_mem.c:844:63: error: lvalue required as unary '&' operand
by kernel test robot 04 Mar '24

04 Mar '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 415aa2f13fd4c4766b3b6deb471c6b909d39ac51 commit: 1a378b87531ea80e7847bf0105adedff28a73080 [16561/21676] mm: add pin memory method for checkpoint add restore config: arm64-randconfig-001-20240302 (https://download.01.org/0day-ci/archive/20240304/202403040641.1SwwRMg7-lkp@…) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240304/202403040641.1SwwRMg7-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/202403040641.1SwwRMg7-lkp@intel.com/ All errors (new ones prefixed by >>): mm/pin_mem.c:171:6: warning: no previous prototype for 'reserve_page_from_buddy' [-Wmissing-prototypes] 171 | void reserve_page_from_buddy(unsigned long nr_pages, struct page *page) | ^~~~~~~~~~~~~~~~~~~~~~~ mm/pin_mem.c:254:6: warning: no previous prototype for 'free_user_map_pages' [-Wmissing-prototypes] 254 | void free_user_map_pages(unsigned int pid_index, unsigned int entry_index, unsigned int page_index) | ^~~~~~~~~~~~~~~~~~~ mm/pin_mem.c:311:6: warning: no previous prototype for 'check_redirect_end_valid' [-Wmissing-prototypes] 311 | bool check_redirect_end_valid(struct redirect_info *redirect_start, | ^~~~~~~~~~~~~~~~~~~~~~~~ mm/pin_mem.c:392:5: warning: no previous prototype for 'calculate_pin_mem_digest' [-Wmissing-prototypes] 392 | int calculate_pin_mem_digest(struct pin_mem_dump_info *pmdi, char *digest) | ^~~~~~~~~~~~~~~~~~~~~~~~ mm/pin_mem.c:481:5: warning: no previous prototype for 'collect_pmd_huge_pages' [-Wmissing-prototypes] 481 | int collect_pmd_huge_pages(struct task_struct *task, | ^~~~~~~~~~~~~~~~~~~~~~ mm/pin_mem.c:544:5: warning: no previous prototype for 'collect_normal_pages' [-Wmissing-prototypes] 544 | int collect_normal_pages(struct task_struct *task, | ^~~~~~~~~~~~~~~~~~~~ mm/pin_mem.c: In function 'collect_normal_pages': mm/pin_mem.c:549:26: warning: variable 'nr_pages' set but not used [-Wunused-but-set-variable] 549 | unsigned long i, nr_pages; | ^~~~~~~~ mm/pin_mem.c: At top level: mm/pin_mem.c:610:6: warning: no previous prototype for 'free_pin_pages' [-Wmissing-prototypes] 610 | void free_pin_pages(struct page_map_entry *pme) | ^~~~~~~~~~~~~~ mm/pin_mem.c:770:12: warning: no previous prototype for 'remap_normal_pages' [-Wmissing-prototypes] 770 | vm_fault_t remap_normal_pages(struct mm_struct *mm, struct vm_area_struct *vma, | ^~~~~~~~~~~~~~~~~~ mm/pin_mem.c: In function 'get_hugepage_gfpmask': >> mm/pin_mem.c:844:63: error: lvalue required as unary '&' operand 844 | if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG, &transparent_hugepage_flags)) | ^ mm/pin_mem.c:846:63: error: lvalue required as unary '&' operand 846 | if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG, &transparent_hugepage_flags)) | ^ mm/pin_mem.c:848:71: error: lvalue required as unary '&' operand 848 | if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG, &transparent_hugepage_flags)) | ^ mm/pin_mem.c:851:65: error: lvalue required as unary '&' operand 851 | if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG, &transparent_hugepage_flags)) | ^ mm/pin_mem.c: At top level: mm/pin_mem.c:857:12: warning: no previous prototype for 'remap_huge_pmd_pages' [-Wmissing-prototypes] 857 | vm_fault_t remap_huge_pmd_pages(struct mm_struct *mm, struct vm_area_struct *vma, | ^~~~~~~~~~~~~~~~~~~~ vim +844 mm/pin_mem.c 839 840 static inline gfp_t get_hugepage_gfpmask(struct vm_area_struct *vma) 841 { 842 const bool vma_madvised = !!(vma->vm_flags & VM_HUGEPAGE); 843 > 844 if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG, &transparent_hugepage_flags)) 845 return GFP_TRANSHUGE | (vma_madvised ? 0 : __GFP_NORETRY); 846 if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG, &transparent_hugepage_flags)) 847 return GFP_TRANSHUGE_LIGHT | __GFP_KSWAPD_RECLAIM; 848 if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG, &transparent_hugepage_flags)) 849 return GFP_TRANSHUGE_LIGHT | (vma_madvised ? __GFP_DIRECT_RECLAIM : 850 __GFP_KSWAPD_RECLAIM); 851 if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG, &transparent_hugepage_flags)) 852 return GFP_TRANSHUGE_LIGHT | (vma_madvised ? __GFP_DIRECT_RECLAIM : 853 0); 854 return GFP_TRANSHUGE_LIGHT; 855 } 856 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 2176/3769] kernel/sched/fair.c:9005:51: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 04 Mar '24

04 Mar '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: fbcd4a3032a53350f6d182c9daeaa4c46e65d964 commit: c52c17a85f1fa9cde2bcb15359096634cfd9eb7c [2176/3769] sched: Add tracepoint for qos smt expeller config: arm64-randconfig-r111-20240227 (https://download.01.org/0day-ci/archive/20240304/202403040353.ycQkLqqd-lkp@…) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240304/202403040353.ycQkLqqd-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/202403040353.ycQkLqqd-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) kernel/sched/fair.c:151:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static? kernel/sched/fair.c:152:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static? kernel/sched/fair.c:1283:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@ kernel/sched/fair.c:1283:34: sparse: expected struct sched_entity const *se kernel/sched/fair.c:1283:34: sparse: got struct sched_entity [noderef] __rcu * kernel/sched/fair.c:13203:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:13203:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:13203:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:6012:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:6012:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:6012:22: sparse: struct task_struct * kernel/sched/fair.c:6754:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:6754:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:6754:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:8121:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:8121:20: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:8121:20: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:8436:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:8436:9: sparse: expected struct sched_domain *[assigned] tmp kernel/sched/fair.c:8436:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:8548:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:8548:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:8548:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:8774:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:8774:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:8774:22: sparse: struct task_struct * >> kernel/sched/fair.c:9005:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *sibling_p @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:9005:51: sparse: expected struct task_struct *sibling_p kernel/sched/fair.c:9005:51: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:9010:30: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:9010:30: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:9010:30: sparse: struct task_struct * kernel/sched/fair.c:9084:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:9332:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:10403:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/fair.c:11040:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:11040:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:11040:22: sparse: struct task_struct * kernel/sched/fair.c:12481:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12481:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12481:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:12138:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12138:44: sparse: expected struct sched_domain *sd_parent kernel/sched/fair.c:12138:44: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:12577:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12577:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12577:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true kernel/sched/fair.c: note: in included file: kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2174:25: sparse: struct task_struct * kernel/sched/sched.h:2338:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2338:9: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2338:9: sparse: struct task_struct * kernel/sched/sched.h:2338:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2338:9: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2338:9: sparse: struct task_struct * kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2174:25: sparse: struct task_struct * kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2174:25: sparse: struct task_struct * vim +9005 kernel/sched/fair.c 8984 8985 static bool _qos_smt_check_need_resched(int this_cpu, struct rq *rq) 8986 { 8987 int cpu; 8988 8989 if (!sched_smt_active()) 8990 return false; 8991 8992 for_each_cpu(cpu, cpu_smt_mask(this_cpu)) { 8993 if (cpu == this_cpu) 8994 continue; 8995 8996 /* 8997 * There are two cases rely on the set need_resched to drive away 8998 * offline task: 8999 * a) The qos_smt_status of siblings cpu is online, the task of curr cpu is offline; 9000 * b) The qos_smt_status of siblings cpu is offline, the task of curr cpu is idle, 9001 * and current cpu only has SCHED_IDLE tasks enqueued. 9002 */ 9003 if (per_cpu(qos_smt_status, cpu) == QOS_LEVEL_ONLINE && 9004 task_group(current)->qos_level < QOS_LEVEL_ONLINE) { > 9005 trace_sched_qos_smt_expel(cpu_curr(cpu), per_cpu(qos_smt_status, cpu)); 9006 return true; 9007 } 9008 9009 if (per_cpu(qos_smt_status, cpu) == QOS_LEVEL_OFFLINE && 9010 rq->curr == rq->idle && sched_idle_cpu(this_cpu)) { 9011 trace_sched_qos_smt_expel(cpu_curr(cpu), per_cpu(qos_smt_status, cpu)); 9012 return true; 9013 } 9014 } 9015 9016 return false; 9017 } 9018 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1683/3769] mm/memcontrol.c:3147:6: sparse: sparse: symbol 'hisi_oom_recover' was not declared. Should it be static?
by kernel test robot 03 Mar '24

03 Mar '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: fbcd4a3032a53350f6d182c9daeaa4c46e65d964 commit: b498d9f1bacd40d583c0970cab02ad522127a7e7 [1683/3769] arm64/ascend: Add new enable_oom_killer interface for oom contrl config: arm64-randconfig-r111-20240227 (https://download.01.org/0day-ci/archive/20240303/202403032008.Rzqq5udk-lkp@…) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240303/202403032008.Rzqq5udk-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/202403032008.Rzqq5udk-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> mm/memcontrol.c:3147:6: sparse: sparse: symbol 'hisi_oom_recover' was not declared. Should it be static? mm/memcontrol.c:4228:21: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4228:21: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4228:21: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4230:21: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4230:21: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4230:21: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4386:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4386:9: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4386:9: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4480:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4480:9: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4480:9: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:6198:23: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:6198:23: sparse: struct task_struct [noderef] __rcu * mm/memcontrol.c:6198:23: sparse: struct task_struct * mm/memcontrol.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true mm/memcontrol.c: note: in included file: include/linux/memcontrol.h:751:9: sparse: sparse: context imbalance in 'folio_lruvec_lock' - wrong count at exit include/linux/memcontrol.h:751:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irq' - wrong count at exit include/linux/memcontrol.h:751:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irqsave' - wrong count at exit mm/memcontrol.c:2111:6: sparse: sparse: context imbalance in 'folio_memcg_lock' - wrong count at exit mm/memcontrol.c:2158:17: sparse: sparse: context imbalance in '__folio_memcg_unlock' - unexpected unlock mm/memcontrol.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true mm/memcontrol.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/rcupdate.h:780:9: sparse: sparse: context imbalance in 'mem_cgroup_count_precharge_pte_range' - unexpected unlock include/linux/rcupdate.h:780:9: sparse: sparse: context imbalance in 'mem_cgroup_move_charge_pte_range' - unexpected unlock vim +/hisi_oom_recover +3147 mm/memcontrol.c 3145 3146 #ifdef CONFIG_ASCEND_OOM > 3147 void hisi_oom_recover(struct obj_cgroup *objcg) 3148 { 3149 struct mem_cgroup *memcg; 3150 3151 memcg = get_mem_cgroup_from_objcg(objcg); 3152 if (!mem_cgroup_is_root(memcg)) 3153 memcg_oom_recover(memcg); 3154 css_put(&memcg->css); 3155 } 3156 #else 3157 static inline void hisi_oom_recover(struct obj_cgroup *objcg) { } 3158 #endif 3159 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1624/3769] loongson3-acpi-cpufreq.c:undefined reference to `acpi_processor_unregister_performance'
by kernel test robot 03 Mar '24

03 Mar '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: fbcd4a3032a53350f6d182c9daeaa4c46e65d964 commit: 47a0b6f372d7f05822d021f86b21a34fd2142225 [1624/3769] cpufreq: Add cpufreq driver for LoongArch config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20240303/202403032032.n9rHviOs-lkp@…) compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240303/202403032032.n9rHviOs-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/202403032032.n9rHviOs-lkp@intel.com/ All errors (new ones prefixed by >>): loongarch64-linux-ld: drivers/cpufreq/loongson3-acpi-cpufreq.o: in function `loongson3_cpufreq_cpu_exit': >> loongson3-acpi-cpufreq.c:(.text+0x668): undefined reference to `acpi_processor_unregister_performance' loongarch64-linux-ld: drivers/cpufreq/loongson3-acpi-cpufreq.o: in function `.L342': >> loongson3-acpi-cpufreq.c:(.text+0x255c): undefined reference to `acpi_processor_register_performance' loongarch64-linux-ld: drivers/cpufreq/loongson3-acpi-cpufreq.o: in function `.L359': loongson3-acpi-cpufreq.c:(.text+0x2e80): undefined reference to `acpi_processor_unregister_performance' -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1373/3769] ld: vgettimeofday.c:undefined reference to `__tsan_read2'
by kernel test robot 03 Mar '24

03 Mar '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: fbcd4a3032a53350f6d182c9daeaa4c46e65d964 commit: 371d3f569b16c38afcf6abb24d620f9d768c95f9 [1373/3769] vdso: do cntvct workaround in the VDSO config: arm64-randconfig-r051-20240303 (https://download.01.org/0day-ci/archive/20240303/202403031930.ji3wANIx-lkp@…) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240303/202403031930.ji3wANIx-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/202403031930.ji3wANIx-lkp@intel.com/ All errors (new ones prefixed by >>): scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr] scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr] scripts/genksyms/parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples arch/arm64/kernel/vdso-ilp32/Makefile:87: FORCE prerequisite is missing arch/arm64/kernel/vdso-ilp32/Makefile:90: FORCE prerequisite is missing arch/arm64/kernel/vdso-ilp32/Makefile:93: FORCE prerequisite is missing arch/arm64/kernel/vdso-ilp32/Makefile:71: FORCE prerequisite is missing ld: arch/arm64/kernel/vdso-ilp32/vgettimeofday-ilp32.o: in function `__cvdso_gettimeofday_data.constprop.0': vgettimeofday.c:(.text+0x28): undefined reference to `__tsan_volatile_read4' ld: vgettimeofday.c:(.text+0x40): undefined reference to `__tsan_read4' >> ld: vgettimeofday.c:(.text+0x60): undefined reference to `__tsan_read2' ld: vgettimeofday.c:(.text+0x80): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x90): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x9c): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0xa8): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0xb4): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0xc4): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0xd4): undefined reference to `__tsan_volatile_read4' ld: vgettimeofday.c:(.text+0x130): undefined reference to `__tsan_write4' ld: vgettimeofday.c:(.text+0x13c): undefined reference to `__tsan_write4' ld: vgettimeofday.c:(.text+0x194): undefined reference to `__tsan_read2' ld: vgettimeofday.c:(.text+0x1b8): undefined reference to `__tsan_read2' ld: vgettimeofday.c:(.text+0x1e4): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0x1f0): undefined reference to `__tsan_write4' ld: vgettimeofday.c:(.text+0x1fc): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0x208): undefined reference to `__tsan_write4' ld: arch/arm64/kernel/vdso-ilp32/vgettimeofday-ilp32.o: in function `__cvdso_clock_gettime_data.constprop.0': vgettimeofday.c:(.text+0x28c): undefined reference to `__tsan_volatile_read4' ld: vgettimeofday.c:(.text+0x2a4): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0x2c0): undefined reference to `__tsan_read2' ld: vgettimeofday.c:(.text+0x2ec): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x2fc): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x308): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x318): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0x324): undefined reference to `__tsan_read4' ld: vgettimeofday.c:(.text+0x334): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x344): undefined reference to `__tsan_volatile_read4' ld: vgettimeofday.c:(.text+0x3a0): undefined reference to `__tsan_write8' ld: vgettimeofday.c:(.text+0x3ac): undefined reference to `__tsan_write8' ld: vgettimeofday.c:(.text+0x3f4): undefined reference to `__tsan_read2' ld: vgettimeofday.c:(.text+0x41c): undefined reference to `__tsan_read2' ld: vgettimeofday.c:(.text+0x4dc): undefined reference to `__tsan_volatile_read4' ld: vgettimeofday.c:(.text+0x4f0): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x4fc): undefined reference to `__tsan_write8' ld: vgettimeofday.c:(.text+0x508): undefined reference to `__tsan_read8' ld: vgettimeofday.c:(.text+0x514): undefined reference to `__tsan_write8' ld: vgettimeofday.c:(.text+0x524): undefined reference to `__tsan_volatile_read4' ld: arch/arm64/kernel/vdso-ilp32/vgettimeofday-ilp32.o: in function `__kernel_clock_getres': vgettimeofday.c:(.text+0x604): undefined reference to `__tsan_write8' ld: vgettimeofday.c:(.text+0x610): undefined reference to `__tsan_write8' ld: vgettimeofday.c:(.text+0x640): undefined reference to `__tsan_volatile_read4' ld: arch/arm64/kernel/vdso-ilp32/vgettimeofday-ilp32.o: in function `_sub_I_00099_0': vgettimeofday.c:(.text.startup+0x8): undefined reference to `__tsan_init' collect2: error: ld returned 1 exit status make[3]: *** [arch/arm64/kernel/vdso-ilp32/Makefile:71: arch/arm64/kernel/vdso-ilp32/vdso-ilp32.so.dbg] Error 1 make[3]: Target 'include/generated/vdso-ilp32-offsets.h' not remade because of errors. make[2]: *** [arch/arm64/Makefile:201: vdso_prepare] Error 2 make[2]: Target 'prepare' not remade because of errors. make[1]: *** [Makefile:234: __sub-make] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:234: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for ARM64_ERRATUM_845719 Depends on [n]: AARCH32_EL0 [=n] Selected by [y]: - ARCH_MXC [=y] && ARCH_NXP [=y] && COMPAT [=y] -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 2688/3769] drivers/acpi/pptt.c:309:5: sparse: sparse: symbol 'acpi_pptt_for_each_container' was not declared. Should it be static?
by kernel test robot 03 Mar '24

03 Mar '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: fbcd4a3032a53350f6d182c9daeaa4c46e65d964 commit: 1ab6383ee94e788fe424d7eac10dc8ec3bfa6828 [2688/3769] ACPI / PPTT: Provide a helper to walk processor containers config: loongarch-randconfig-r112-20240302 (https://download.01.org/0day-ci/archive/20240303/202403031641.WjM6vjTf-lkp@…) compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240303/202403031641.WjM6vjTf-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/202403031641.WjM6vjTf-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/acpi/pptt.c:309:5: sparse: sparse: symbol 'acpi_pptt_for_each_container' was not declared. Should it be static? vim +/acpi_pptt_for_each_container +309 drivers/acpi/pptt.c 297 298 /** 299 * acpi_pptt_for_each_container() - Iterate over all processor containers 300 * 301 * Not all 'Processor' entries in the PPTT are either a CPU or a Processor 302 * Container, they may exist purely to describe a Private resource. CPUs 303 * have to be leaves, so a Processor Container is a non-leaf that has the 304 * 'ACPI Processor ID valid' flag set. 305 * 306 * Return: 0 for a complete walk, or the first non-zero value from the callback 307 * that stopped the walk. 308 */ > 309 int acpi_pptt_for_each_container(acpi_pptt_cpu_callback_t callback, void *arg) 310 { 311 struct acpi_pptt_processor *cpu_node; 312 struct acpi_table_header *table_hdr; 313 struct acpi_subtable_header *entry; 314 bool leaf_flag, has_leaf_flag = false; 315 unsigned long table_end; 316 acpi_status status; 317 u32 proc_sz; 318 int ret = 0; 319 320 status = acpi_get_table(ACPI_SIG_PPTT, 0, &table_hdr); 321 if (ACPI_FAILURE(status)) 322 return 0; 323 324 if (table_hdr->revision > 1) 325 has_leaf_flag = true; 326 327 table_end = (unsigned long)table_hdr + table_hdr->length; 328 entry = ACPI_ADD_PTR(struct acpi_subtable_header, table_hdr, 329 sizeof(struct acpi_table_pptt)); 330 proc_sz = sizeof(struct acpi_pptt_processor); 331 while ((unsigned long)entry + proc_sz < table_end) { 332 cpu_node = (struct acpi_pptt_processor *)entry; 333 if (entry->type == ACPI_PPTT_TYPE_PROCESSOR && 334 cpu_node->flags & ACPI_PPTT_ACPI_PROCESSOR_ID_VALID) 335 { 336 leaf_flag = cpu_node->flags & ACPI_PPTT_ACPI_LEAF_NODE; 337 if ((has_leaf_flag && !leaf_flag) || 338 (!has_leaf_flag && !acpi_pptt_leaf_node(table_hdr, cpu_node))) 339 { 340 ret = callback(cpu_node, arg); 341 if (ret) 342 break; 343 } 344 } 345 entry = ACPI_ADD_PTR(struct acpi_subtable_header, entry, 346 entry->length); 347 } 348 349 acpi_put_table(table_hdr); 350 351 return ret; 352 } 353 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 1255
  • 1256
  • 1257
  • 1258
  • 1259
  • 1260
  • 1261
  • ...
  • 1869
  • Older →

HyperKitty Powered by HyperKitty