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

  • 38 participants
  • 18640 discussions
[PATCH v2 OLK-5.10] cpufreq/cppc: fix perf_to_khz/khz_to_perf conversion
by liwei 13 May '24

13 May '24
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I99VPY CVE: NA -------------------------------- When the nominal_freq recorded by the kernel is equal to the lowest_freq, and the frequency adjustment operation is triggered externally, there is a logic error in cppc_perf_to_khz()/cppc_khz_to_perf(), resulting in perf and khz conversion errors. Fix this by adding the branch processing logic when nominal_freq is equal to lowest_freq. Fixes: ec1c7ad47664 ("cpufreq: CPPC: Fix performance/frequency conversion") Signed-off-by: liwei <liwei728(a)huawei.com> --- drivers/cpufreq/cppc_cpufreq.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c index 156ef2c40464..5ceededf514c 100644 --- a/drivers/cpufreq/cppc_cpufreq.c +++ b/drivers/cpufreq/cppc_cpufreq.c @@ -98,7 +98,7 @@ static u64 cppc_get_dmi_max_khz(void) * use them to convert perf to freq and vice versa. The conversion is * extrapolated as an affine function passing by the 2 points: * - (Low perf, Low freq) - * - (Nominal perf, Nominal perf) + * - (Nominal perf, Nominal freq) */ static unsigned int cppc_cpufreq_perf_to_khz(struct cppc_cpudata *cpu_data, unsigned int perf) @@ -109,8 +109,14 @@ static unsigned int cppc_cpufreq_perf_to_khz(struct cppc_cpudata *cpu_data, u64 mul, div; if (caps->lowest_freq && caps->nominal_freq) { - mul = caps->nominal_freq - caps->lowest_freq; - div = caps->nominal_perf - caps->lowest_perf; + /* Avoid the special case when nominal_freq is equal to lowest_freq */ + if (caps->nominal_freq == caps->lowest_freq) { + mul = caps->nominal_freq; + div = caps->nominal_perf; + } else { + mul = caps->nominal_freq - caps->lowest_freq; + div = caps->nominal_perf - caps->lowest_perf; + } offset = caps->nominal_freq - div64_u64(caps->nominal_perf * mul, div); } else { if (!max_khz) @@ -134,8 +140,14 @@ static unsigned int cppc_cpufreq_khz_to_perf(struct cppc_cpudata *cpu_data, u64 mul, div; if (caps->lowest_freq && caps->nominal_freq) { - mul = caps->nominal_perf - caps->lowest_perf; - div = caps->nominal_freq - caps->lowest_freq; + /* Avoid special case when nominal_freq is equal to lowest_freq */ + if (caps->nominal_freq == caps->lowest_freq) { + mul = caps->nominal_perf; + div = caps->nominal_freq; + } else { + mul = caps->nominal_perf - caps->lowest_perf; + div = caps->nominal_freq - caps->lowest_freq; + } offset = caps->nominal_perf - div64_u64(caps->nominal_freq * mul, div); } else { if (!max_khz) -- 2.25.1
2 1
0 0
[openeuler:openEuler-1.0-LTS 5421/22422] drivers/infiniband/ulp/iser/iser_initiator.o: warning: objtool: missing symbol for section .text
by kernel test robot 13 May '24

13 May '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: a54e5de9c3b87415db1fe656918e1c6d50706b5f commit: 71e217e85c3dff8a9151707ed3afc7b4b054a2d4 [5421/22422] selinux: use kernel linux/socket.h for genheaders and mdp config: x86_64-buildonly-randconfig-006-20240513 (https://download.01.org/0day-ci/archive/20240513/202405131614.cwAhXvTF-lkp@…) compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240513/202405131614.cwAhXvTF-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/202405131614.cwAhXvTF-lkp@intel.com/ All warnings (new ones prefixed by >>): drivers/infiniband/ulp/iser/iser_initiator.c: In function 'iser_alloc_rx_descriptors': drivers/infiniband/ulp/iser/iser_initiator.c:277:25: warning: taking address of packed member of 'struct iser_rx_desc' may result in an unaligned pointer value [-Waddress-of-packed-member] 277 | rx_sg = &rx_desc->rx_sg; | ^~~~~~~~~~~~~~~ drivers/infiniband/ulp/iser/iser_initiator.c: In function 'iser_task_rsp': drivers/infiniband/ulp/iser/iser_initiator.c:661:15: warning: taking address of packed member of 'struct iser_rx_desc' may result in an unaligned pointer value [-Waddress-of-packed-member] 661 | hdr = &desc->iscsi_header; | ^~~~~~~~~~~~~~~~~~~ drivers/infiniband/ulp/iser/iser_initiator.c:364: warning: Function parameter or member 'conn' not described in 'iser_send_command' drivers/infiniband/ulp/iser/iser_initiator.c:364: warning: Function parameter or member 'task' not described in 'iser_send_command' drivers/infiniband/ulp/iser/iser_initiator.c:436: warning: Function parameter or member 'conn' not described in 'iser_send_data_out' drivers/infiniband/ulp/iser/iser_initiator.c:436: warning: Function parameter or member 'task' not described in 'iser_send_data_out' drivers/infiniband/ulp/iser/iser_initiator.c:436: warning: Function parameter or member 'hdr' not described in 'iser_send_data_out' >> drivers/infiniband/ulp/iser/iser_initiator.o: warning: objtool: missing symbol for section .text -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH OLK-6.6] sched/eevdf: Revert "Skip eligibility check for current entity during wakeup preemption"
by Zhang Qiao 13 May '24

13 May '24
hulk inclusion category: performance bugzilla: https://gitee.com/openeuler/kernel/issues/I9EHKI CVE: NA This reverts commit 0d46b757739655ce3f324fd25e67b667b928eb67. Signed-off-by: Zhang Qiao <zhangqiao22(a)huawei.com> --- kernel/sched/fair.c | 24 ++++-------------------- kernel/sched/features.h | 1 - 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8de28b182763..c19ba84af8e4 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1038,7 +1038,7 @@ struct sched_entity *__pick_first_entity(struct cfs_rq *cfs_rq) * * Which allows tree pruning through eligibility. */ -static struct sched_entity *pick_eevdf(struct cfs_rq *cfs_rq, bool wakeup_preempt) +static struct sched_entity *pick_eevdf(struct cfs_rq *cfs_rq) { struct rb_node *node = cfs_rq->tasks_timeline.rb_root.rb_node; struct sched_entity *se = __pick_first_entity(cfs_rq); @@ -1052,23 +1052,7 @@ static struct sched_entity *pick_eevdf(struct cfs_rq *cfs_rq, bool wakeup_preemp if (cfs_rq->nr_running == 1) return curr && curr->on_rq ? curr : se; - if (curr && !curr->on_rq) - curr = NULL; - - /* - * When an entity with positive lag wakes up, it pushes the - * avg_vruntime of the runqueue backwards. This may causes the - * current entity to be ineligible soon into its run leading to - * wakeup preemption. - * - * To prevent such aggressive preemption of the current running - * entity during task wakeups, skip the eligibility check if the - * slice promised to the entity since its selection has not yet - * elapsed. - */ - if (curr && - !(sched_feat(RUN_TO_PARITY_WAKEUP) && wakeup_preempt && curr->vlag == curr->deadline) && - !entity_eligible(cfs_rq, curr)) + if (curr && (!curr->on_rq || !entity_eligible(cfs_rq, curr))) curr = NULL; /* @@ -5598,7 +5582,7 @@ pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr) cfs_rq->next && entity_eligible(cfs_rq, cfs_rq->next)) return cfs_rq->next; - return pick_eevdf(cfs_rq, false); + return pick_eevdf(cfs_rq); } static bool check_cfs_rq_runtime(struct cfs_rq *cfs_rq); @@ -9267,7 +9251,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ /* * XXX pick_eevdf(cfs_rq) != se ? */ - if (pick_eevdf(cfs_rq, true) == pse) + if (pick_eevdf(cfs_rq) == pse) goto preempt; return; diff --git a/kernel/sched/features.h b/kernel/sched/features.h index 26b1a03bd3d2..e4789d09f58e 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -7,7 +7,6 @@ SCHED_FEAT(PLACE_LAG, true) SCHED_FEAT(PLACE_DEADLINE_INITIAL, true) SCHED_FEAT(RUN_TO_PARITY, true) -SCHED_FEAT(RUN_TO_PARITY_WAKEUP, true) /* * Prefer to schedule the task we woke last (assuming it failed -- 2.18.0.huawei.25
1 0
0 0
[PATCH OLK-5.10] cpufreq/cppc: fix perf_to_khz/khz_to_perf conversion
by liwei 13 May '24

13 May '24
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I99VPY CVE: NA -------------------------------- When the nominal_freq recorded by the kernel is equal to the lowest_freq, and the frequency adjustment operation is triggered externally, there is a logic error in cppc_perf_to_khz()/cppc_khz_to_perf(), resulting in perf and khz conversion errors. Fix this by adding the branch processing logic when nominal_freq is equal to lowest_freq. Signed-off-by: liwei <liwei728(a)huawei.com> --- drivers/cpufreq/cppc_cpufreq.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c index 156ef2c40464..5ceededf514c 100644 --- a/drivers/cpufreq/cppc_cpufreq.c +++ b/drivers/cpufreq/cppc_cpufreq.c @@ -98,7 +98,7 @@ static u64 cppc_get_dmi_max_khz(void) * use them to convert perf to freq and vice versa. The conversion is * extrapolated as an affine function passing by the 2 points: * - (Low perf, Low freq) - * - (Nominal perf, Nominal perf) + * - (Nominal perf, Nominal freq) */ static unsigned int cppc_cpufreq_perf_to_khz(struct cppc_cpudata *cpu_data, unsigned int perf) @@ -109,8 +109,14 @@ static unsigned int cppc_cpufreq_perf_to_khz(struct cppc_cpudata *cpu_data, u64 mul, div; if (caps->lowest_freq && caps->nominal_freq) { - mul = caps->nominal_freq - caps->lowest_freq; - div = caps->nominal_perf - caps->lowest_perf; + /* Avoid the special case when nominal_freq is equal to lowest_freq */ + if (caps->nominal_freq == caps->lowest_freq) { + mul = caps->nominal_freq; + div = caps->nominal_perf; + } else { + mul = caps->nominal_freq - caps->lowest_freq; + div = caps->nominal_perf - caps->lowest_perf; + } offset = caps->nominal_freq - div64_u64(caps->nominal_perf * mul, div); } else { if (!max_khz) @@ -134,8 +140,14 @@ static unsigned int cppc_cpufreq_khz_to_perf(struct cppc_cpudata *cpu_data, u64 mul, div; if (caps->lowest_freq && caps->nominal_freq) { - mul = caps->nominal_perf - caps->lowest_perf; - div = caps->nominal_freq - caps->lowest_freq; + /* Avoid special case when nominal_freq is equal to lowest_freq */ + if (caps->nominal_freq == caps->lowest_freq) { + mul = caps->nominal_perf; + div = caps->nominal_freq; + } else { + mul = caps->nominal_perf - caps->lowest_perf; + div = caps->nominal_freq - caps->lowest_freq; + } offset = caps->nominal_perf - div64_u64(caps->nominal_freq * mul, div); } else { if (!max_khz) -- 2.25.1
2 1
0 0
[PATCH OLK-6.6 v2] sched: programmable: Allow set tag for pid 1.
by Hui Tang 13 May '24

13 May '24
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I9NQM5 CVE: NA -------------------------------- There is no reason to prevent user from setting tag for pid 1, which should be up to the user to decide it. So removing the check for pid 1. Fixes: 34239429b125 ("sched: programmable: Add user interface of task tag") Signed-off-by: Hui Tang <tanghui20(a)huawei.com> --- v1 -> v2 - Add commit message --- fs/proc/base.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 78f41a207767..d6d3b9f55f46 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -3773,11 +3773,6 @@ static ssize_t pid_tag_write(struct file *file, const char __user *buf, if (!tsk) return -ESRCH; - if (unlikely(tsk->pid == 1)) { - err = -EPERM; - goto out; - } - err = kstrtol_from_user(buf, count, 0, &tag); if (err) goto out; -- 2.34.1
2 1
0 0
[PATCH OLK-5.10] mm: memcontrol: do not miss MEMCG_MAX events for enforced allocations
by Cai Xinchen 13 May '24

13 May '24
From: Roman Gushchin <roman.gushchin(a)linux.dev> mainline inclusion from mainline-v6.0-rc1 commit d6e103a757fa7876e7ded76128d5dffe12402ab9 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I9ORR4 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- Yafang Shao reported an issue related to the accounting of bpf memory: if a bpf map is charged indirectly for memory consumed from an interrupt context and allocations are enforced, MEMCG_MAX events are not raised. It's not/less of an issue in a generic case because consequent allocations from a process context will trigger the direct reclaim and MEMCG_MAX events will be raised. However a bpf map can belong to a dying/abandoned memory cgroup, so there will be no allocations from a process context and no MEMCG_MAX events will be triggered. Link: https://lkml.kernel.org/r/20220702033521.64630-1-roman.gushchin@linux.dev Signed-off-by: Roman Gushchin <roman.gushchin(a)linux.dev> Reported-by: Yafang Shao <laoar.shao(a)gmail.com> Acked-by: Shakeel Butt <shakeelb(a)google.com> Acked-by: Michal Hocko <mhocko(a)suse.com> Cc: Johannes Weiner <hannes(a)cmpxchg.org> Cc: Muchun Song <songmuchun(a)bytedance.com> Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org> Conflicts: mm/memcontrol.c [There are context conflicts bacause commit c5c8b16b596e1("mm: memcontrol: fix root_mem_cgroup charging") is not merged. And we merge commit 789303aecf270("mm: vmpressure: don't count proactive reclaim in vmpressure")] Signed-off-by: Cai Xinchen <caixinchen1(a)huawei.com> --- mm/memcontrol.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index db44ade93455..88656ed2ad5c 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2674,6 +2674,7 @@ static int try_charge(struct mem_cgroup *memcg, gfp_t gfp_mask, bool passed_oom = false; unsigned int reclaim_options = MEMCG_RECLAIM_MAY_SWAP; bool drained = false; + bool raised_max_event = false; unsigned long pflags; if (mem_cgroup_is_root(memcg)) @@ -2724,6 +2725,7 @@ static int try_charge(struct mem_cgroup *memcg, gfp_t gfp_mask, goto nomem; memcg_memory_event(mem_over_limit, MEMCG_MAX); + raised_max_event = true; #ifdef CONFIG_PSI_FINE_GRAINED pflags = PSI_MEMCG_RECLAIM; #endif @@ -2787,6 +2789,13 @@ static int try_charge(struct mem_cgroup *memcg, gfp_t gfp_mask, if (!(gfp_mask & __GFP_NOFAIL)) return -ENOMEM; force: + /* + * If the allocation has to be enforced, don't forget to raise + * a MEMCG_MAX event. + */ + if (!raised_max_event) + memcg_memory_event(mem_over_limit, MEMCG_MAX); + /* * The allocation either can't fail or will lead to more memory * being freed very soon. Allow memory usage go over the limit -- 2.34.1
2 1
0 0
[PATCH openEuler-1.0-LTS] NTB: fix possible name leak in ntb_register_device()
by Zeng Heng 13 May '24

13 May '24
From: Yang Yingliang <yangyingliang(a)huawei.com> mainline inclusion from mainline-v6.9-rc1 commit aebfdfe39b9327a3077d0df8db3beb3160c9bdd0 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9L9IV CVE: CVE-2023-52652 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id… -------------------------------- If device_register() fails in ntb_register_device(), the device name allocated by dev_set_name() should be freed. As per the comment in device_register(), callers should use put_device() to give up the reference in the error path. So fix this by calling put_device() in the error path so that the name can be freed in kobject_cleanup(). As a result of this, put_device() in the error path of ntb_register_device() is removed and the actual error is returned. Fixes: a1bd3baeb2f1 ("NTB: Add NTB hardware abstraction layer") Signed-off-by: Yang Yingliang <yangyingliang(a)huawei.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen(a)linux.intel.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam(a)linaro.org> Reviewed-by: Dave Jiang <dave.jiang(a)intel.com> Link: https://lore.kernel.org/r/20231201033057.1399131-1-yangyingliang@huaweiclou… [mani: reworded commit message] Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam(a)linaro.org> Conflicts: drivers/ntb/core.c drivers/pci/endpoint/functions/pci-epf-vntb.c [The version does not include the pci-epf-vntb.c source file, and ntb_register_device() function is located in drivers/ntb/ntb.c.] Signed-off-by: Zeng Heng <zengheng4(a)huawei.com> --- drivers/ntb/ntb.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/ntb/ntb.c b/drivers/ntb/ntb.c index 2581ab724c34..3305a2fbea4e 100644 --- a/drivers/ntb/ntb.c +++ b/drivers/ntb/ntb.c @@ -100,6 +100,8 @@ EXPORT_SYMBOL(ntb_unregister_client); int ntb_register_device(struct ntb_dev *ntb) { + int ret; + if (!ntb) return -EINVAL; if (!ntb->pdev) @@ -120,7 +122,11 @@ int ntb_register_device(struct ntb_dev *ntb) ntb->ctx_ops = NULL; spin_lock_init(&ntb->ctx_lock); - return device_register(&ntb->dev); + ret = device_register(&ntb->dev); + if (ret) + put_device(&ntb->dev); + + return ret; } EXPORT_SYMBOL(ntb_register_device); -- 2.25.1
2 1
0 0
[PATCH OLK-6.6 v2 0/3] erofs: fix WARNING in ida_free
by Baokun Li 13 May '24

13 May '24
V1->V2: Delete a patch that has been merged in. Baokun Li (1): erofs: get rid of erofs_fs_context Christian Brauner (1): erofs: reliably distinguish block based and fscache mode Gao Xiang (1): erofs: drop experimental warning for FSDAX fs/erofs/internal.h | 7 --- fs/erofs/super.c | 125 +++++++++++++++++++------------------------- 2 files changed, 55 insertions(+), 77 deletions(-) -- 2.31.1
2 4
0 0
[openeuler:OLK-6.6 9545/9601] include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 12 May '24

12 May '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 15bef328224e70041aba4aaa6b23977efba191a9 commit: d9ed39df777afd38fcbd4f4ca670cceb2f168124 [9545/9601] entry: Move exit to usermode functions to header file config: loongarch-randconfig-r111-20240512 (https://download.01.org/0day-ci/archive/20240512/202405122055.cg12BYVn-lkp@…) compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240512/202405122055.cg12BYVn-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/202405122055.cg12BYVn-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got unsigned int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got unsigned int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got unsigned int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got unsigned int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got int [noderef] __percpu * kernel/entry/common.c:380:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:380:9: sparse: expected void *ptr kernel/entry/common.c:380:9: sparse: got int [noderef] __percpu * kernel/entry/common.c:423:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:423:29: sparse: expected void *ptr kernel/entry/common.c:423:29: sparse: got int [noderef] __percpu * kernel/entry/common.c:423:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:423:29: sparse: expected void *ptr kernel/entry/common.c:423:29: sparse: got int [noderef] __percpu * kernel/entry/common.c:423:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:423:29: sparse: expected void *ptr kernel/entry/common.c:423:29: sparse: got int [noderef] __percpu * kernel/entry/common.c:423:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ kernel/entry/common.c:423:29: sparse: expected void *ptr kernel/entry/common.c:423:29: sparse: got int [noderef] __percpu * kernel/entry/common.c: note: in included file: >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got unsigned int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * >> include/linux/entry-common.h:285:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:285:9: sparse: expected void *ptr include/linux/entry-common.h:285:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got unsigned int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * include/linux/entry-common.h:298:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@ include/linux/entry-common.h:298:9: sparse: expected void *ptr include/linux/entry-common.h:298:9: sparse: got int [noderef] __percpu * vim +285 include/linux/entry-common.h 264 265 /** 266 * exit_to_user_mode_loop - do any pending work before leaving to user space 267 */ 268 unsigned long exit_to_user_mode_loop(struct pt_regs *regs, 269 unsigned long ti_work); 270 271 /** 272 * exit_to_user_mode_prepare - call exit_to_user_mode_loop() if required 273 * @regs: Pointer to pt_regs on entry stack 274 * 275 * 1) check that interrupts are disabled 276 * 2) call tick_nohz_user_enter_prepare() 277 * 3) call exit_to_user_mode_loop() if any flags from 278 * EXIT_TO_USER_MODE_WORK are set 279 * 4) check that interrupts are still disabled 280 */ 281 static __always_inline void exit_to_user_mode_prepare(struct pt_regs *regs) 282 { 283 unsigned long ti_work; 284 > 285 lockdep_assert_irqs_disabled(); 286 287 /* Flush pending rcuog wakeup before the last need_resched() check */ 288 tick_nohz_user_enter_prepare(); 289 290 ti_work = read_thread_flags(); 291 if (unlikely(ti_work & EXIT_TO_USER_MODE_WORK)) 292 ti_work = exit_to_user_mode_loop(regs, ti_work); 293 294 arch_exit_to_user_mode_prepare(regs, ti_work); 295 296 /* Ensure that kernel state is sane for a return to userspace */ 297 kmap_assert_nomap(); 298 lockdep_assert_irqs_disabled(); 299 lockdep_sys_exit(); 300 } 301 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 22374/22416] drivers/gpu/drm/nouveau/nvkm/core/object.c:37:19: warning: mixing declarations and code is a C99 extension
by kernel test robot 12 May '24

12 May '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 8d055501b2f0dc4e29197de45eabdd21f73fa507 commit: 901dbb48d8a4f60af427f1ec67ac1247ff219f39 [22374/22416] nouveau: lock the client object tree. config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20240512/202405121008.xQ4qtfYQ-lkp@…) compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240512/202405121008.xQ4qtfYQ-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/202405121008.xQ4qtfYQ-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/nouveau/nvkm/core/object.c:37:19: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] 37 | struct rb_node *node = client->objroot.rb_node; | ^ 1 warning generated. vim +37 drivers/gpu/drm/nouveau/nvkm/core/object.c 9274f4a9ba7e70 drivers/gpu/drm/nouveau/core/core/object.c Ben Skeggs 2012-07-06 27 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 28 struct nvkm_object * 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 29 nvkm_object_search(struct nvkm_client *client, u64 handle, 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 30 const struct nvkm_object_func *func) 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 31 { 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 32 struct nvkm_object *object; 901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 33 unsigned long flags; 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 34 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 35 if (handle) { 901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 36 spin_lock_irqsave(&client->obj_lock, flags); 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 @37 struct rb_node *node = client->objroot.rb_node; 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 38 while (node) { 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 39 object = rb_entry(node, typeof(*object), node); 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 40 if (handle < object->object) 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 41 node = node->rb_left; 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 42 else 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 43 if (handle > object->object) 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 44 node = node->rb_right; 901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 45 else { 901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 46 spin_unlock_irqrestore(&client->obj_lock, flags); 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 47 goto done; 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 48 } 901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 49 } 901dbb48d8a4f6 drivers/gpu/drm/nouveau/nvkm/core/object.c Dave Airlie 2024-05-09 50 spin_unlock_irqrestore(&client->obj_lock, flags); 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 51 return ERR_PTR(-ENOENT); 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 52 } else { 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 53 object = &client->object; 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 54 } 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 55 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 56 done: 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 57 if (unlikely(func && object->func != func)) 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 58 return ERR_PTR(-EINVAL); 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 59 return object; 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 60 } 110cccff955313 drivers/gpu/drm/nouveau/nvkm/core/object.c Ben Skeggs 2016-12-22 61 :::::: The code at line 37 was first introduced by commit :::::: 110cccff955313c66dccd2817f62368f106d9bf2 drm/nouveau/core/object: support lookup of specific object types :::::: TO: Ben Skeggs <bskeggs(a)redhat.com> :::::: CC: Ben Skeggs <bskeggs(a)redhat.com> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 1040
  • 1041
  • 1042
  • 1043
  • 1044
  • 1045
  • 1046
  • ...
  • 1864
  • Older →

HyperKitty Powered by HyperKitty