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 -----
  • July
  • 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

  • 59 participants
  • 19359 discussions
[PATCH OLK-5.10] mm: fix failure to unmap pte on highmem systems
by Wupeng Ma 14 Sep '24

14 Sep '24
From: Ryan Roberts <ryan.roberts(a)arm.com> mainline inclusion from mainline-v6.5-rc1 commit 3b65f437d9e8dd696a2b88e7afcd51385532ab35 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAQT9Q Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- The loser of a race to service a pte for a device private entry in the swap path previously unlocked the ptl, but failed to unmap the pte. This only affects highmem systems since unmapping a pte is a noop on non-highmem systems. Link: https://lkml.kernel.org/r/20230602092949.545577-5-ryan.roberts@arm.com Fixes: 16ce101db85d ("mm/memory.c: fix race when faulting a device private page") Signed-off-by: Ryan Roberts <ryan.roberts(a)arm.com> Reviewed-by: Zi Yan <ziy(a)nvidia.com> Reviewed-by: Mike Rapoport (IBM) <rppt(a)kernel.org> Cc: Christoph Hellwig <hch(a)lst.de> Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com> Cc: Lorenzo Stoakes <lstoakes(a)gmail.com> Cc: Matthew Wilcox (Oracle) <willy(a)infradead.org> Cc: SeongJae Park <sj(a)kernel.org> Cc: Uladzislau Rezki (Sony) <urezki(a)gmail.com> Cc: Yu Zhao <yuzhao(a)google.com> Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org> Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com> --- mm/memory.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 0c4da925e8ad..af9cb48630bd 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3424,10 +3424,8 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) vmf->page = device_private_entry_to_page(entry); vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl); - if (unlikely(!pte_same(*vmf->pte, vmf->orig_pte))) { - spin_unlock(vmf->ptl); - goto out; - } + if (unlikely(!pte_same(*vmf->pte, vmf->orig_pte))) + goto unlock; /* * Get a page reference while we know the page can't be -- 2.25.1
2 1
0 0
[PATCH OLK-5.10] mm/hugetlb: fix pgtable lock on pmd sharing
by Wupeng Ma 14 Sep '24

14 Sep '24
From: Peter Xu <peterx(a)redhat.com> mainline inclusion from mainline-v6.5-rc1 commit 349d1670008d3dab99a11b015bef51ad3f26fb4f category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAQT9Q Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- Huge pmd sharing operates on PUD not PMD, huge_pte_lock() is not suitable in this case because it should only work for last level pte changes, while pmd sharing is always one level higher. Meanwhile, here we're locking over the spte pgtable lock which is even not a lock for current mm but someone else's. It seems even racy on operating on the lock, as after put_page() of the spte pgtable page logically the page can be released, so at least the spin_unlock() needs to be done after the put_page(). No report I am aware, I'm not even sure whether it'll just work on taking the spte pmd lock, because while we're holding i_mmap read lock it probably means the vma interval tree is frozen, all pte allocators over this pud entry could always find the specific svma and spte page, so maybe they'll serialize on this spte page lock? Even so, doesn't seem to be expected. It just seems to be an accident of cb900f412154. Fix it with the proper pud lock (which is the mm's page_table_lock). Link: https://lkml.kernel.org/r/20230612160420.809818-1-peterx@redhat.com Fixes: cb900f412154 ("mm, hugetlb: convert hugetlbfs to use split pmd lock") Signed-off-by: Peter Xu <peterx(a)redhat.com> Reviewed-by: Mike Kravetz <mike.kravetz(a)oracle.com> Cc: Naoya Horiguchi <naoya.horiguchi(a)nec.com> Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org> Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com> --- mm/hugetlb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index e3746bcfc827..54e2eefdf0b4 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -5907,7 +5907,6 @@ pte_t *huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) unsigned long saddr; pte_t *spte = NULL; pte_t *pte; - spinlock_t *ptl; if (!vma_shareable(vma, addr)) return (pte_t *)pmd_alloc(mm, pud, addr); @@ -5931,7 +5930,7 @@ pte_t *huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) if (!spte) goto out; - ptl = huge_pte_lock(hstate_vma(vma), mm, spte); + spin_lock(&mm->page_table_lock); if (pud_none(*pud)) { pud_populate(mm, pud, (pmd_t *)((unsigned long)spte & PAGE_MASK)); @@ -5939,7 +5938,7 @@ pte_t *huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud) } else { put_page(virt_to_page(spte)); } - spin_unlock(ptl); + spin_unlock(&mm->page_table_lock); out: pte = (pte_t *)pmd_alloc(mm, pud, addr); return pte; -- 2.25.1
2 1
0 0
[PATCH OLK-6.6] mm/memory_hotplug: prevent accessing by index=-1
by Wupeng Ma 14 Sep '24

14 Sep '24
From: Anastasia Belova <abelova(a)astralinux.ru> mainline inclusion from mainline-v6.11-rc1 commit 5958d35917e1296f46dfc8b8c959732efd6d8d5d category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAQT9Q Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- nid may be equal to NUMA_NO_NODE=-1. Prevent accessing node_data array by invalid index with check for nid. Found by Linux Verification Center (linuxtesting.org) with SVACE. Link: https://lkml.kernel.org/r/20240606080659.18525-1-abelova@astralinux.ru Fixes: e83a437faa62 ("mm/memory_hotplug: introduce "auto-movable" online policy") Signed-off-by: Anastasia Belova <abelova(a)astralinux.ru> Acked-by: David Hildenbrand <david(a)redhat.com> Acked-by: Oscar Salvador <osalvador(a)suse.de> Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org> Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com> --- mm/memory_hotplug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index b6097e80d2b6..65218eb648d6 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -845,7 +845,6 @@ static bool auto_movable_can_online_movable(int nid, struct memory_group *group, unsigned long kernel_early_pages, movable_pages; struct auto_movable_group_stats group_stats = {}; struct auto_movable_stats stats = {}; - pg_data_t *pgdat = NODE_DATA(nid); struct zone *zone; int i; @@ -856,6 +855,8 @@ static bool auto_movable_can_online_movable(int nid, struct memory_group *group, auto_movable_stats_account_zone(&stats, zone); } else { for (i = 0; i < MAX_NR_ZONES; i++) { + pg_data_t *pgdat = NODE_DATA(nid); + zone = pgdat->node_zones + i; if (populated_zone(zone)) auto_movable_stats_account_zone(&stats, zone); -- 2.25.1
2 1
0 0
[openeuler:OLK-5.10 19206/30000] drivers/gpu/drm/inspur/inspur_drm_drv.c:30:13: warning: no previous prototype for 'inspur_drm_interrupt'
by kernel test robot 14 Sep '24

14 Sep '24
Hi Hongchen, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 5a1d9701155c6908c76c68951170f10279685143 commit: b9d65551a3adfa87a7c5d33391187ee60a1b501d [19206/30000] drm: add inspur drm driver support config: arm64-randconfig-002-20240914 (https://download.01.org/0day-ci/archive/20240914/202409140804.IiV0APec-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140804.IiV0APec-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/202409140804.IiV0APec-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/inspur/inspur_drm_drv.c:30:13: warning: no previous prototype for 'inspur_drm_interrupt' [-Wmissing-prototypes] 30 | irqreturn_t inspur_drm_interrupt(int irq, void *arg) | ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/inspur/inspur_drm_drv.c: In function 'inspur_pci_probe': drivers/gpu/drm/inspur/inspur_drm_drv.c:379:36: warning: unused variable 'priv' [-Wunused-variable] 379 | struct inspur_drm_private *priv; | ^~~~ vim +/inspur_drm_interrupt +30 drivers/gpu/drm/inspur/inspur_drm_drv.c 27 28 29 DEFINE_DRM_GEM_FOPS(inspur_fops); > 30 irqreturn_t inspur_drm_interrupt(int irq, void *arg) 31 { 32 struct drm_device *dev = (struct drm_device *)arg; 33 struct inspur_drm_private *priv = 34 (struct inspur_drm_private *)dev->dev_private; 35 u32 status; 36 37 status = readl(priv->mmio + INSPUR_RAW_INTERRUPT); 38 39 if (status & INSPUR_RAW_INTERRUPT_VBLANK(1)) { 40 writel(INSPUR_RAW_INTERRUPT_VBLANK(1), 41 priv->mmio + INSPUR_RAW_INTERRUPT); 42 drm_handle_vblank(dev, 0); 43 } 44 45 return IRQ_HANDLED; 46 } 47 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 2385/13930] kernel/cgroup/cgroup.c:3968:15: error: use of undeclared identifier 'cgroup_psi_stat_show'; did you mean 'cgroup_stat_show'?
by kernel test robot 14 Sep '24

14 Sep '24
Hi Lu, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 13706c950ff941dc015e16f76812077f9861e378 commit: 4a69b56540f40550585b9f93c35e415ac90bdecc [2385/13930] sched/psi: Introduce pressure.stat in psi config: arm64-randconfig-001-20240913 (https://download.01.org/0day-ci/archive/20240914/202409140727.bS0VY46J-lkp@…) compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140727.bS0VY46J-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/202409140727.bS0VY46J-lkp@intel.com/ All errors (new ones prefixed by >>): >> kernel/cgroup/cgroup.c:3968:15: error: use of undeclared identifier 'cgroup_psi_stat_show'; did you mean 'cgroup_stat_show'? .seq_show = cgroup_psi_stat_show, ^~~~~~~~~~~~~~~~~~~~ cgroup_stat_show kernel/cgroup/cgroup.c:3660:12: note: 'cgroup_stat_show' declared here static int cgroup_stat_show(struct seq_file *seq, void *v) ^ 1 error generated. vim +3968 kernel/cgroup/cgroup.c 3929 3930 struct cftype cgroup_v1_psi_files[] = { 3931 { 3932 .name = "io.pressure", 3933 .flags = CFTYPE_NO_PREFIX, 3934 .seq_show = cgroup_io_pressure_show, 3935 .write = cgroup_io_pressure_write, 3936 .poll = cgroup_pressure_poll, 3937 .release = cgroup_pressure_release, 3938 }, 3939 { 3940 .name = "memory.pressure", 3941 .flags = CFTYPE_NO_PREFIX, 3942 .seq_show = cgroup_memory_pressure_show, 3943 .write = cgroup_memory_pressure_write, 3944 .poll = cgroup_pressure_poll, 3945 .release = cgroup_pressure_release, 3946 }, 3947 { 3948 .name = "cpu.pressure", 3949 .flags = CFTYPE_NO_PREFIX, 3950 .seq_show = cgroup_cpu_pressure_show, 3951 .write = cgroup_cpu_pressure_write, 3952 .poll = cgroup_pressure_poll, 3953 .release = cgroup_pressure_release, 3954 }, 3955 #ifdef CONFIG_IRQ_TIME_ACCOUNTING 3956 { 3957 .name = "irq.pressure", 3958 .flags = CFTYPE_NO_PREFIX, 3959 .seq_show = cgroup_irq_pressure_show, 3960 .write = cgroup_irq_pressure_write, 3961 .poll = cgroup_pressure_poll, 3962 .release = cgroup_pressure_release, 3963 }, 3964 #endif 3965 { 3966 .name = "pressure.stat", 3967 .flags = CFTYPE_NO_PREFIX, > 3968 .seq_show = cgroup_psi_stat_show, 3969 }, 3970 { } /* terminate */ 3971 }; 3972 #endif 3973 #else /* CONFIG_PSI */ 3974 bool cgroup_psi_enabled(void) 3975 { 3976 return false; 3977 } 3978 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 777/13930] arch/loongarch/kernel/legacy_boot.c:39:19: sparse: sparse: symbol 'liointc_domain' was not declared. Should it be static?
by kernel test robot 14 Sep '24

14 Sep '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 13706c950ff941dc015e16f76812077f9861e378 commit: db5bb24abc8dd120fd81b7ce21819e96578d011e [777/13930] LoongArch: Old BPI compatibility config: loongarch-randconfig-r133-20240913 (https://download.01.org/0day-ci/archive/20240914/202409140536.RxJEdWyM-lkp@…) compiler: loongarch64-linux-gcc (GCC) 14.1.0 reproduce: (https://download.01.org/0day-ci/archive/20240914/202409140536.RxJEdWyM-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/202409140536.RxJEdWyM-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> arch/loongarch/kernel/legacy_boot.c:39:19: sparse: sparse: symbol 'liointc_domain' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:40:19: sparse: sparse: symbol 'pch_lpc_domain' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:41:19: sparse: sparse: symbol 'pch_msi_domain' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:42:19: sparse: sparse: symbol 'pch_pic_domain' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:45:5: sparse: sparse: symbol 'nr_io_pics' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:48:26: sparse: sparse: symbol 'liointc_default' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:55:26: sparse: sparse: symbol 'pchlpc_default' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:61:26: sparse: sparse: symbol 'eiointc_default' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:62:26: sparse: sparse: symbol 'pchmsi_default' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:63:26: sparse: sparse: symbol 'pchpic_default' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:94:6: sparse: sparse: symbol 'register_default_pic' was not declared. Should it be static? >> arch/loongarch/kernel/legacy_boot.c:341:14: sparse: sparse: symbol 'bpi_init' was not declared. Should it be static? vim +/liointc_domain +39 arch/loongarch/kernel/legacy_boot.c 37 38 struct irq_domain *cpu_domain; > 39 struct irq_domain *liointc_domain; > 40 struct irq_domain *pch_lpc_domain; > 41 struct irq_domain *pch_msi_domain[MAX_IO_PICS]; > 42 struct irq_domain *pch_pic_domain[MAX_IO_PICS]; 43 44 char arcs_cmdline[COMMAND_LINE_SIZE]; > 45 int nr_io_pics; 46 int bpi_version; 47 > 48 struct acpi_madt_lio_pic liointc_default = { 49 .address = LOONGSON_REG_BASE + 0x1400, 50 .size = 256, 51 .cascade = {2, 3}, 52 .cascade_map = {0x00FFFFFF, 0xff000000}, 53 }; 54 > 55 struct acpi_madt_lpc_pic pchlpc_default = { 56 .address = LS7A_LPC_REG_BASE, 57 .size = SZ_4K, 58 .cascade = 19, 59 }; 60 > 61 struct acpi_madt_eio_pic eiointc_default[MAX_IO_PICS]; > 62 struct acpi_madt_msi_pic pchmsi_default[MAX_IO_PICS]; > 63 struct acpi_madt_bio_pic pchpic_default[MAX_IO_PICS]; 64 65 static int 66 acpi_parse_lapic(union acpi_subtable_headers *header, const unsigned long end) 67 { 68 struct acpi_madt_local_apic *processor = NULL; 69 70 processor = (struct acpi_madt_local_apic *)header; 71 if (BAD_MADT_ENTRY(processor, end)) 72 return -EINVAL; 73 74 acpi_table_print_madt_entry(&header->common); 75 set_processor_mask(processor->id, processor->lapic_flags); 76 77 return 0; 78 } 79 80 static int bad_pch_pic(unsigned long address) 81 { 82 if (nr_io_pics >= MAX_IO_PICS) { 83 pr_warn("WARNING: Max # of I/O PCH_PICs (%d) exceeded (found %d), skipping\n", 84 MAX_IO_PICS, nr_io_pics); 85 return 1; 86 } 87 if (!address) { 88 pr_warn("WARNING: Bogus (zero) I/O PCH_PIC address found in table, skipping!\n"); 89 return 1; 90 } 91 return 0; 92 } 93 > 94 void register_default_pic(int id, u32 address, u32 irq_base) 95 { 96 int idx, entries; 97 unsigned long addr; 98 99 if (bad_pch_pic(address)) 100 return; 101 102 idx = nr_io_pics; 103 104 pchpic_default[idx].address = address; 105 if (idx) 106 pchpic_default[idx].address |= nid_to_addrbase(id) | HT1LO_OFFSET; 107 pchpic_default[idx].id = id; 108 pchpic_default[idx].version = 0; 109 pchpic_default[idx].size = 0x1000; 110 pchpic_default[idx].gsi_base = irq_base; 111 112 msi_group[nr_io_pics].pci_segment = nr_io_pics; 113 pch_group[nr_io_pics].node = msi_group[nr_io_pics].node = id; 114 115 addr = pchpic_default[idx].address; 116 /* Read INT_ID.int_num */ 117 entries = (((unsigned long)ls7a_readq(addr) >> 48) & 0xff) + 1; 118 pchmsi_default[idx].msg_address = MSI_MSG_ADDRESS; 119 pchmsi_default[idx].start = entries; 120 pchmsi_default[idx].count = MSI_MSG_DEFAULT_COUNT; 121 122 eiointc_default[idx].cascade = 3; 123 eiointc_default[idx].node = id; 124 eiointc_default[idx].node_map = 1; 125 126 if (idx) { 127 eiointc_default[idx].cascade = 0x4; 128 eiointc_default[0].node_map = 0x1DF; 129 eiointc_default[idx].node_map = 0xFE20; 130 } 131 132 acpi_pchpic[idx] = &pchpic_default[idx]; 133 acpi_pchmsi[idx] = &pchmsi_default[idx]; 134 acpi_eiointc[idx] = &eiointc_default[idx]; 135 136 nr_io_pics++; 137 } 138 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 14594/23707] arch/arm64/kvm/../../../virt/kvm/arm/arm.c:411:36: error: 'struct sched_info' has no member named 'run_delay'
by kernel test robot 14 Sep '24

14 Sep '24
Hi chenjiajun, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: c46f803e3465bd0ca66716804a4d3e20f586ac0d commit: b94fc31d4e16ff65dc2141f0a1a3af6a3aac5bb2 [14594/23707] kvm: debugfs: aarch64 export cpu time related items to debugfs config: arm64-randconfig-004-20240913 (https://download.01.org/0day-ci/archive/20240914/202409140415.hpdzSPWA-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140415.hpdzSPWA-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/202409140415.hpdzSPWA-lkp@intel.com/ All errors (new ones prefixed by >>): arch/arm64/kvm/../../../virt/kvm/arm/arm.c: In function 'update_steal_time': >> arch/arm64/kvm/../../../virt/kvm/arm/arm.c:411:36: error: 'struct sched_info' has no member named 'run_delay' 411 | delta = current->sched_info.run_delay - vcpu->stat.steal; | ^ arch/arm64/kvm/../../../virt/kvm/arm/arm.c:412:47: error: 'struct sched_info' has no member named 'run_delay' 412 | vcpu->stat.steal = current->sched_info.run_delay; | ^ vim +411 arch/arm64/kvm/../../../virt/kvm/arm/arm.c 406 407 static void update_steal_time(struct kvm_vcpu *vcpu) 408 { 409 u64 delta; 410 > 411 delta = current->sched_info.run_delay - vcpu->stat.steal; 412 vcpu->stat.steal = current->sched_info.run_delay; 413 vcpu->stat.st_max = max(vcpu->stat.st_max, delta); 414 } 415 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-5.10 19836/30000] drivers/gpu/drm/phytium/phytium_pci.c:237:23: error: implicit declaration of function 'pci_enable_msi'; did you mean 'pci_enable_sriov'?
by kernel test robot 14 Sep '24

14 Sep '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 5a1d9701155c6908c76c68951170f10279685143 commit: b2a83bcdafcaaaa60199147d04798d431cc800cc [19836/30000] DRM: Phytium display DRM driver config: arm64-randconfig-004-20240914 (https://download.01.org/0day-ci/archive/20240914/202409140348.idogTrbh-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140348.idogTrbh-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/202409140348.idogTrbh-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/gpu/drm/phytium/phytium_pci.c:23:6: warning: no previous prototype for 'phytium_pci_vram_hw_init' [-Wmissing-prototypes] 23 | void phytium_pci_vram_hw_init(struct phytium_display_private *priv) | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/phytium/phytium_pci.c:30:5: warning: no previous prototype for 'phytium_pci_vram_init' [-Wmissing-prototypes] 30 | int phytium_pci_vram_init(struct pci_dev *pdev, struct phytium_display_private *priv) | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/phytium/phytium_pci.c:68:6: warning: no previous prototype for 'phytium_pci_vram_fini' [-Wmissing-prototypes] 68 | void phytium_pci_vram_fini(struct pci_dev *pdev, struct phytium_display_private *priv) | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/phytium/phytium_pci.c:89:5: warning: no previous prototype for 'phytium_pci_dma_init' [-Wmissing-prototypes] 89 | int phytium_pci_dma_init(struct phytium_display_private *priv) | ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/phytium/phytium_pci.c:137:6: warning: no previous prototype for 'phytium_pci_dma_fini' [-Wmissing-prototypes] 137 | void phytium_pci_dma_fini(struct phytium_display_private *priv) | ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/phytium/phytium_pci.c: In function 'phytium_pci_probe': >> drivers/gpu/drm/phytium/phytium_pci.c:237:23: error: implicit declaration of function 'pci_enable_msi'; did you mean 'pci_enable_sriov'? [-Werror=implicit-function-declaration] 237 | ret = pci_enable_msi(pdev); | ^~~~~~~~~~~~~~ | pci_enable_sriov >> drivers/gpu/drm/phytium/phytium_pci.c:272:17: error: implicit declaration of function 'pci_disable_msi'; did you mean 'pci_disable_sriov'? [-Werror=implicit-function-declaration] 272 | pci_disable_msi(pdev); | ^~~~~~~~~~~~~~~ | pci_disable_sriov cc1: some warnings being treated as errors vim +237 drivers/gpu/drm/phytium/phytium_pci.c 88 > 89 int phytium_pci_dma_init(struct phytium_display_private *priv) 90 { 91 struct pci_dev *dma_dev, *gpu_dev; 92 struct drm_device *drm_dev = priv->dev; 93 dma_cap_mask_t mask; 94 struct phytium_dma_slave s; 95 int ret = 0; 96 u16 cmd; 97 98 /* check px210 gpu enable */ 99 gpu_dev = pci_get_device(PCI_VENDOR_ID_PHYTIUM, 0xdc20, NULL); 100 if (!gpu_dev) { 101 DRM_INFO("failed to get gpu_dev\n"); 102 ret = -ENODEV; 103 goto failed; 104 } 105 106 pci_read_config_word(gpu_dev, PCI_COMMAND, &cmd); 107 if (!(cmd & PCI_COMMAND_MASTER)) { 108 DRM_INFO("gpu_dev master is disabled\n"); 109 ret = -ENODEV; 110 goto failed; 111 } 112 113 dma_dev = pci_get_device(PCI_VENDOR_ID_PHYTIUM, 0xdc3c, NULL); 114 if (!dma_dev) { 115 DRM_INFO("failed to get dma_dev\n"); 116 ret = -ENODEV; 117 goto failed; 118 } 119 120 dma_cap_zero(mask); 121 dma_cap_set(DMA_SLAVE, mask); 122 123 s.dma_dev = &dma_dev->dev; 124 s.chan_id = 2; 125 priv->dma_chan = dma_request_channel(mask, phytium_pci_dma_chan_filter, &s); 126 if (!priv->dma_chan) { 127 DRM_DEV_ERROR(drm_dev->dev, "failed to request dma chan\n"); 128 ret = -EBUSY; 129 goto failed; 130 } 131 priv->dma_inited = 1; 132 133 failed: 134 return ret; 135 } 136 > 137 void phytium_pci_dma_fini(struct phytium_display_private *priv) 138 { 139 if (priv->dma_inited) 140 dma_release_channel(priv->dma_chan); 141 priv->dma_inited = 0; 142 priv->dma_chan = NULL; 143 } 144 145 static struct phytium_display_private* 146 phytium_pci_private_init(struct pci_dev *pdev, const struct pci_device_id *ent) 147 { 148 struct drm_device *dev = pci_get_drvdata(pdev); 149 struct phytium_display_private *priv = NULL; 150 struct phytium_pci_private *pci_priv = NULL; 151 struct phytium_device_info *phytium_info = (struct phytium_device_info *)ent->driver_data; 152 int i = 0; 153 resource_size_t io_addr, io_size; 154 155 pci_priv = devm_kzalloc(&pdev->dev, sizeof(*pci_priv), GFP_KERNEL); 156 if (!pci_priv) { 157 DRM_ERROR("no memory to allocate for drm_display_private\n"); 158 goto failed_malloc_priv; 159 } 160 161 memset(pci_priv, 0, sizeof(*pci_priv)); 162 priv = &pci_priv->base; 163 phytium_display_private_init(priv, dev); 164 165 memcpy(&(priv->info), phytium_info, sizeof(struct phytium_device_info)); 166 DRM_DEBUG_KMS("priv->info.num_pipes :%d\n", priv->info.num_pipes); 167 priv->info.pipe_mask = ((pdev->subsystem_device >> PIPE_MASK_SHIFT) & PIPE_MASK_MASK); 168 priv->info.edp_mask = ((pdev->subsystem_device >> EDP_MASK_SHIFT) & EDP_MASK_MASK); 169 priv->info.num_pipes = 0; 170 for_each_pipe_masked(priv, i) 171 priv->info.num_pipes++; 172 if (priv->info.num_pipes == 0) { 173 DRM_ERROR("num_pipes is zero, so exit init\n"); 174 goto failed_init_numpipe; 175 } 176 177 io_addr = pci_resource_start(pdev, 0); 178 io_size = pci_resource_len(pdev, 0); 179 priv->regs = ioremap(io_addr, io_size); 180 if (priv->regs == NULL) { 181 DRM_ERROR("pci bar0 ioremap fail, addr:0x%llx, size:0x%llx\n", io_addr, io_size); 182 goto failed_ioremap; 183 } 184 185 priv->irq = pdev->irq; 186 if (IS_PX210(priv)) { 187 pci_priv->dc_hw_vram_init = px210_dc_hw_vram_init; 188 priv->dc_hw_clear_msi_irq = px210_dc_hw_clear_msi_irq; 189 priv->dc_hw_fb_format_check = px210_dc_hw_fb_format_check; 190 } else if (IS_PE220X(priv)) { 191 pci_priv->dc_hw_vram_init = pe220x_dc_hw_vram_init; 192 priv->dc_hw_clear_msi_irq = NULL; 193 priv->dc_hw_fb_format_check = pe220x_dc_hw_fb_format_check; 194 } 195 196 return priv; 197 198 failed_ioremap: 199 failed_init_numpipe: 200 devm_kfree(&pdev->dev, pci_priv); 201 failed_malloc_priv: 202 return NULL; 203 } 204 205 static void 206 phytium_pci_private_fini(struct pci_dev *pdev, struct phytium_display_private *priv) 207 { 208 struct phytium_pci_private *pci_priv = to_pci_priv(priv); 209 210 if (priv->regs) 211 iounmap(priv->regs); 212 213 devm_kfree(&pdev->dev, pci_priv); 214 } 215 216 static int phytium_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 217 { 218 struct phytium_display_private *priv = NULL; 219 struct drm_device *dev = NULL; 220 int ret = 0; 221 222 dev = drm_dev_alloc(&phytium_display_drm_driver, &pdev->dev); 223 if (IS_ERR(dev)) { 224 DRM_ERROR("failed to allocate drm_device\n"); 225 return PTR_ERR(dev); 226 } 227 dev->pdev = pdev; 228 pci_set_drvdata(pdev, dev); 229 pci_set_master(pdev); 230 ret = pci_enable_device(pdev); 231 if (ret) { 232 DRM_ERROR("pci enable device fail\n"); 233 goto failed_enable_device; 234 } 235 236 if (dc_msi_enable) { > 237 ret = pci_enable_msi(pdev); 238 if (ret) 239 DRM_ERROR("pci enable msi fail\n"); 240 } 241 242 dma_set_mask(&pdev->dev, DMA_BIT_MASK(40)); 243 244 priv = phytium_pci_private_init(pdev, ent); 245 if (priv) 246 dev->dev_private = priv; 247 else 248 goto failed_pci_private_init; 249 250 ret = phytium_pci_vram_init(pdev, priv); 251 if (ret) { 252 DRM_ERROR("failed to init pci vram\n"); 253 goto failed_pci_vram_init; 254 } 255 256 ret = drm_dev_register(dev, 0); 257 if (ret) { 258 DRM_ERROR("failed to register drm dev\n"); 259 goto failed_register_drm; 260 } 261 262 phytium_dp_hpd_irq_setup(dev, true); 263 264 return 0; 265 266 failed_register_drm: 267 phytium_pci_vram_fini(pdev, priv); 268 failed_pci_vram_init: 269 phytium_pci_private_fini(pdev, priv); 270 failed_pci_private_init: 271 if (pdev->msi_enabled) > 272 pci_disable_msi(pdev); 273 pci_disable_device(pdev); 274 failed_enable_device: 275 pci_set_drvdata(pdev, NULL); 276 drm_dev_put(dev); 277 278 return -1; 279 } 280 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-5.10 11160/30000] drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:145:18: error: implicit declaration of function 'acpi_evaluate_integer'; did you mean 'acpi_evaluate_object'?
by kernel test robot 14 Sep '24

14 Sep '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 5a1d9701155c6908c76c68951170f10279685143 commit: 3bf501c87ffe1f045f86af89e8958fed62c02c94 [11160/30000] ascend agent smmu: an implementation of ARM SMMUv3 ATOS feature config: arm64-randconfig-002-20240914 (https://download.01.org/0day-ci/archive/20240914/202409140251.mPlaSy6Z-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140251.mPlaSy6Z-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/202409140251.mPlaSy6Z-lkp@intel.com/ All error/warnings (new ones prefixed by >>): >> drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:71:20: warning: no previous prototype for 'agent_smmu_unlocked_find' [-Wmissing-prototypes] 71 | struct agent_smmu *agent_smmu_unlocked_find(u64 device_id) | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c: In function 'agent_smmu_platform_probe': >> drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:145:18: error: implicit declaration of function 'acpi_evaluate_integer'; did you mean 'acpi_evaluate_object'? [-Werror=implicit-function-declaration] 145 | status = acpi_evaluate_integer(ACPI_HANDLE(&pdev->dev), METHOD_NAME__UID, | ^~~~~~~~~~~~~~~~~~~~~ | acpi_evaluate_object drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c: At top level: >> drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:420:36: warning: 'agent_smmu_acpi_match' defined but not used [-Wunused-const-variable=] 420 | static const struct acpi_device_id agent_smmu_acpi_match[] = { | ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +145 drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c 70 > 71 struct agent_smmu *agent_smmu_unlocked_find(u64 device_id) 72 { 73 struct agent_smmu *temp = NULL; 74 75 list_for_each_entry(temp, &agent_smmu_list, list) { 76 if (temp->device_id == device_id) { 77 return temp; 78 } 79 } 80 return NULL; 81 } 82 83 static int agent_smmu_register(struct agent_smmu *agent) 84 { 85 struct device *dev = agent->dev; 86 87 spin_lock(&agent_smmu_lock); 88 if (agent_smmu_unlocked_find(agent->device_id)) { 89 dev_err(dev, "already added for %lld.\n", agent->device_id); 90 spin_unlock(&agent_smmu_lock); 91 return -EFAULT; 92 } 93 list_add_tail(&agent->list, &agent_smmu_list); 94 spin_unlock(&agent_smmu_lock); 95 96 return 0; 97 } 98 99 static void agent_smmu_unregister(struct agent_smmu *agent) 100 { 101 spin_lock(&agent_smmu_lock); 102 list_del(&agent->list); 103 spin_unlock(&agent_smmu_lock); 104 } 105 106 static int agent_smmu_platform_probe(struct platform_device *pdev) 107 { 108 struct agent_smmu *agent = NULL; 109 struct device *dev = &pdev->dev; 110 struct resource *res = NULL; 111 u32 reg = 0; 112 int ret = 0; 113 acpi_status status = AE_OK; 114 115 agent = devm_kzalloc(dev, sizeof(*agent), GFP_KERNEL); 116 if (!agent) { 117 dev_err(dev, "failed to allocate agent smmu.\n"); 118 return -ENOMEM; 119 } 120 121 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 122 if (!res || resource_size(res) + 1 < ENHANCED_ATOS_UNIT_ADDR + 123 ENHANCED_ATOS_UNIT_SIZE * MAX_REGISTERS) { 124 dev_err(dev, "MMIO region is null or too small, check it.\n"); 125 ret = -EINVAL; 126 goto err_free; 127 } 128 129 // agent smmu may probe as smmu in device, so keep using ioreamp 130 agent->base = ioremap(res->start, resource_size(res)); 131 if (!agent->base) { 132 dev_err(dev, "unable to map agent smmu.\n"); 133 ret = -ENOMEM; 134 goto err_free; 135 } 136 137 /* check agent smmu is enabled */ 138 reg = readl_relaxed(agent->base + AGENT_SMMU_CR0); 139 if (!(reg & CR0_SMMUEN)) { 140 dev_err(dev, "agent smmu is not enabled, check it.\n"); 141 ret = -EPERM; 142 goto err_iounmap; 143 } 144 > 145 status = acpi_evaluate_integer(ACPI_HANDLE(&pdev->dev), METHOD_NAME__UID, 146 NULL, &agent->device_id); 147 if (ACPI_FAILURE(status)) { 148 dev_err(dev, "Unable to get agent smmu _UID.\n"); 149 ret = -ENODEV; 150 goto err_iounmap; 151 } 152 153 if (agent_smmu_register(agent)) { 154 ret = -EINVAL; 155 goto err_iounmap; 156 } 157 158 reg = readl_relaxed(agent->base + AGENT_SMMU_IDR1); 159 agent->max_sid = (1U << FIELD_GET(IDR1_SIDSIZE, reg)) - 1; 160 agent->max_ssid = (1U << FIELD_GET(IDR1_SSIDSIZE, reg)) - 1; 161 bitmap_zero(agent->regs, MAX_REGISTERS); 162 rwlock_init(&agent->rw_lock); 163 agent->dev = dev; 164 platform_set_drvdata(pdev, agent); 165 166 dev_info(dev, "agent smmu 0x%llx probed successfully.\n", agent->device_id); 167 return ret; 168 err_iounmap: 169 iounmap(agent->base); 170 agent->base = NULL; 171 err_free: 172 devm_kfree(dev, agent); 173 return ret; 174 } 175 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-5.10 27796/30000] mm/mem_sampling.c:164:35: error: 'sysctl_mem_sampling_enable' undeclared here (not in a function); did you mean 'sysctl_mem_sampling_mode'?
by kernel test robot 14 Sep '24

14 Sep '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 5a1d9701155c6908c76c68951170f10279685143 commit: 9878268b0b9f6144b3bf066fa54124ce9c401072 [27796/30000] mm/mem_sampling.c: Add controlling interface for mem_sampling config: arm64-randconfig-001-20240914 (https://download.01.org/0day-ci/archive/20240914/202409140253.h1BCVyaA-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240914/202409140253.h1BCVyaA-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/202409140253.h1BCVyaA-lkp@intel.com/ All errors (new ones prefixed by >>): >> mm/mem_sampling.c:164:35: error: 'sysctl_mem_sampling_enable' undeclared here (not in a function); did you mean 'sysctl_mem_sampling_mode'? 164 | .proc_handler = sysctl_mem_sampling_enable, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | sysctl_mem_sampling_mode vim +164 mm/mem_sampling.c 157 158 static struct ctl_table ctl_table[] = { 159 { 160 .procname = "mem_sampling_enable", 161 .data = NULL, /* filled in by handler */ 162 .maxlen = sizeof(unsigned int), 163 .mode = 0644, > 164 .proc_handler = sysctl_mem_sampling_enable, 165 .extra1 = SYSCTL_ZERO, 166 .extra2 = SYSCTL_ONE, 167 }, 168 {} 169 }; 170 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 677
  • 678
  • 679
  • 680
  • 681
  • 682
  • 683
  • ...
  • 1936
  • Older →

HyperKitty Powered by HyperKitty