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

  • 20 participants
  • 18912 discussions
[openeuler:OLK-5.10 22575/30000] mm/memcontrol.c:5402:26: error: implicit declaration of function 'ksm_process_profit'
by kernel test robot 06 Feb '24

06 Feb '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: afe6e074c110cd23d846380b34eb75227af9e24a commit: 0f6fb3570be40b783d8c756d64297be1a8e3d2b3 [22575/30000] memcg: support ksm merge any mode per cgroup config: x86_64-buildonly-randconfig-002-20240206 (https://download.01.org/0day-ci/archive/20240206/202402061338.z4QXS13G-lkp@…) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240206/202402061338.z4QXS13G-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/202402061338.z4QXS13G-lkp@intel.com/ All errors (new ones prefixed by >>): >> mm/memcontrol.c:5402:26: error: implicit declaration of function 'ksm_process_profit' [-Werror,-Wimplicit-function-declaration] 5402 | ksm_process_profits += ksm_process_profit(mm); | ^ 1 error generated. vim +/ksm_process_profit +5402 mm/memcontrol.c 5379 5380 static int memory_ksm_show(struct seq_file *m, void *v) 5381 { 5382 unsigned long ksm_merging_pages = 0; 5383 unsigned long ksm_rmap_items = 0; 5384 long ksm_process_profits = 0; 5385 unsigned int tasks = 0; 5386 struct task_struct *task; 5387 struct mm_struct *mm; 5388 struct css_task_iter it; 5389 struct mem_cgroup *memcg = mem_cgroup_from_seq(m); 5390 5391 css_task_iter_start(&memcg->css, CSS_TASK_ITER_PROCS, &it); 5392 while ((task = css_task_iter_next(&it))) { 5393 mm = get_task_mm(task); 5394 if (!mm) 5395 continue; 5396 5397 if (test_bit(MMF_VM_MERGE_ANY, &mm->flags)) 5398 tasks++; 5399 5400 ksm_rmap_items += mm->ksm_rmap_items; 5401 ksm_merging_pages += mm->ksm_merging_pages; > 5402 ksm_process_profits += ksm_process_profit(mm); 5403 mmput(mm); 5404 } 5405 css_task_iter_end(&it); 5406 5407 seq_printf(m, "merge any state: %d\n", READ_ONCE(memcg->ksm_merge_any)); 5408 seq_printf(m, "merge any tasks: %u\n", tasks); 5409 seq_printf(m, "ksm_rmap_items %lu\n", ksm_rmap_items); 5410 seq_printf(m, "ksm_merging_pages %lu\n", ksm_merging_pages); 5411 seq_printf(m, "ksm_process_profits %ld\n", ksm_process_profits); 5412 return 0; 5413 } 5414 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 16749/21616] drivers/cpuidle/.tmp_cpuidle-haltpoll.o: warning: objtool: missing symbol for section .exit.text
by kernel test robot 06 Feb '24

06 Feb '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 3a28772f4b29bdda924e9a5d2e3ff1ff1b23fd14 commit: 8104395ba98a81c8cb1ddd245482baca0d57d163 [16749/21616] add cpuidle-haltpoll driver config: x86_64-buildonly-randconfig-006-20240203 (https://download.01.org/0day-ci/archive/20240206/202402061323.krZA8tkb-lkp@…) compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240206/202402061323.krZA8tkb-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/202402061323.krZA8tkb-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/cpuidle/.tmp_cpuidle-haltpoll.o: warning: objtool: missing symbol for section .exit.text -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 18194/21616] drivers/char/svm.c:249:20: sparse: sparse: symbol 'svm_find_mem_reg_node' was not declared. Should it be static?
by kernel test robot 06 Feb '24

06 Feb '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 3a28772f4b29bdda924e9a5d2e3ff1ff1b23fd14 commit: 9469d1759c2905dcef49df7e6240ad5c32b66296 [18194/21616] ascend: share_pool: enable svm to use share pool memory config: arm64-randconfig-r131-20240130 (https://download.01.org/0day-ci/archive/20240206/202402061249.86c5Hf3Q-lkp@…) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240206/202402061249.86c5Hf3Q-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/202402061249.86c5Hf3Q-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) drivers/char/svm.c:240:24: sparse: sparse: symbol 'va2pa_trunk' was not declared. Should it be static? >> drivers/char/svm.c:249:20: sparse: sparse: symbol 'svm_find_mem_reg_node' was not declared. Should it be static? >> drivers/char/svm.c:320:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct svm_va2pa_slot *slot @@ got void [noderef] __iomem * @@ drivers/char/svm.c:320:14: sparse: expected struct svm_va2pa_slot *slot drivers/char/svm.c:320:14: sparse: got void [noderef] __iomem * drivers/char/svm.c:338:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got struct svm_va2pa_slot *[addressable] [assigned] [toplevel] slots @@ drivers/char/svm.c:338:28: sparse: expected void volatile [noderef] __iomem *addr drivers/char/svm.c:338:28: sparse: got struct svm_va2pa_slot *[addressable] [assigned] [toplevel] slots drivers/char/svm.c:419:6: sparse: sparse: symbol 'sysrq_sched_debug_show_export' was not declared. Should it be static? drivers/char/svm.c:1242:35: sparse: sparse: Using plain integer as NULL pointer drivers/char/svm.c:1502:5: sparse: sparse: symbol '__svm_get_mpam' was not declared. Should it be static? drivers/char/svm.c:249:21: warning: no previous prototype for 'svm_find_mem_reg_node' [-Wmissing-prototypes] 249 | struct device_node *svm_find_mem_reg_node(struct device *dev, const char *compat) | ^~~~~~~~~~~~~~~~~~~~~ drivers/char/svm.c:419:6: warning: no previous prototype for 'sysrq_sched_debug_show_export' [-Wmissing-prototypes] 419 | void sysrq_sched_debug_show_export(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/char/svm.c:1429:5: warning: no previous prototype for 'svm_get_pasid' [-Wmissing-prototypes] 1429 | int svm_get_pasid(pid_t vpid, int dev_id __maybe_unused) | ^~~~~~~~~~~~~ drivers/char/svm.c:1502:5: warning: no previous prototype for '__svm_get_mpam' [-Wmissing-prototypes] 1502 | int __svm_get_mpam(struct svm_mpam *mpam) | ^~~~~~~~~~~~~~ drivers/char/svm.c:2437:36: warning: 'svm_acpi_match' defined but not used [-Wunused-const-variable=] 2437 | static const struct acpi_device_id svm_acpi_match[] = { | ^~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/atomic.h:34, from include/linux/atomic.h:7, from include/asm-generic/bitops/atomic.h:5, from arch/arm64/include/asm/bitops.h:37, from include/linux/bitops.h:19, from include/linux/kernel.h:11, from include/asm-generic/bug.h:18, from arch/arm64/include/asm/bug.h:37, from arch/arm64/include/asm/memory.h:27, from arch/arm64/include/asm/esr.h:21, from drivers/char/svm.c:10: In function '__cmpxchg_case_mb_4', inlined from '__cmpxchg_mb' at arch/arm64/include/asm/cmpxchg.h:143:1, inlined from 'svm_proc_load_flag' at drivers/char/svm.c:1967:12: arch/arm64/include/asm/atomic_lse.h:492:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'atomic_t[1]' [-Warray-bounds=] 492 | asm volatile( 44- | ^~~ arch/arm64/include/asm/atomic_lse.h:523:1: note: in expansion of macro '__CMPXCHG_CASE' 523 | __CMPXCHG_CASE(w, , mb_4, al, "memory") | ^~~~~~~~~~~~~~ drivers/char/svm.c: In function 'svm_proc_load_flag': drivers/char/svm.c:1958:25: note: object 'l2buf_load_flag' of size 4 1958 | static atomic_t l2buf_load_flag = ATOMIC_INIT(0); | ^~~~~~~~~~~~~~~ In function '__cmpxchg_case_mb_4', inlined from '__cmpxchg_mb' at arch/arm64/include/asm/cmpxchg.h:143:1, inlined from 'svm_proc_load_flag' at drivers/char/svm.c:1967:12: arch/arm64/include/asm/atomic_lse.h:492:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'atomic_t[1]' [-Warray-bounds=] 492 | asm volatile( 57- | ^~~ arch/arm64/include/asm/atomic_lse.h:523:1: note: in expansion of macro '__CMPXCHG_CASE' 523 | __CMPXCHG_CASE(w, , mb_4, al, "memory") | ^~~~~~~~~~~~~~ drivers/char/svm.c: In function 'svm_proc_load_flag': drivers/char/svm.c:1958:25: note: object 'l2buf_load_flag' of size 4 1958 | static atomic_t l2buf_load_flag = ATOMIC_INIT(0); | ^~~~~~~~~~~~~~~ vim +/svm_find_mem_reg_node +249 drivers/char/svm.c 248 > 249 struct device_node *svm_find_mem_reg_node(struct device *dev, const char *compat) 250 { 251 int index = 0; 252 struct device_node *tmp = NULL; 253 struct device_node *np = dev->of_node; 254 255 for (; ; index++) { 256 tmp = of_parse_phandle(np, "memory-region", index); 257 if (!tmp) 258 break; 259 260 if (of_device_is_compatible(tmp, compat)) 261 return tmp; 262 263 of_node_put(tmp); 264 } 265 266 return NULL; 267 } 268 269 static int svm_parse_trunk_memory(struct device *dev, phys_addr_t *base, unsigned long *size) 270 { 271 int err; 272 struct resource r; 273 struct device_node *trunk = NULL; 274 275 trunk = svm_find_mem_reg_node(dev, SVM_MEM_REG); 276 if (!trunk) { 277 dev_err(dev, "Didn't find reserved memory\n"); 278 return -EINVAL; 279 } 280 281 err = of_address_to_resource(trunk, 0, &r); 282 of_node_put(trunk); 283 if (err) { 284 dev_err(dev, "Couldn't address to resource for reserved memory\n"); 285 return -ENOMEM; 286 } 287 288 *base = r.start; 289 *size = resource_size(&r); 290 291 return 0; 292 } 293 294 static int svm_setup_trunk(struct device *dev, phys_addr_t base, unsigned long size) 295 { 296 int slot_total; 297 unsigned long *bitmap = NULL; 298 struct svm_va2pa_slot *slot = NULL; 299 300 if (!IS_ALIGNED(base, SVM_VA2PA_MEMORY_ALIGN)) { 301 dev_err(dev, "Didn't aligned to %u\n", SVM_VA2PA_MEMORY_ALIGN); 302 return -EINVAL; 303 } 304 305 if ((size == 0) || (size > SVM_VA2PA_TRUNK_SIZE_MAX)) { 306 dev_err(dev, "Size of reserved memory is not right\n"); 307 return -EINVAL; 308 } 309 310 slot_total = size / SVM_VA2PA_SLOT_SIZE; 311 if (slot_total < BITS_PER_LONG) 312 return -EINVAL; 313 314 bitmap = kvcalloc(slot_total / BITS_PER_LONG, sizeof(unsigned long), GFP_KERNEL); 315 if (!bitmap) { 316 dev_err(dev, "alloc memory failed\n"); 317 return -ENOMEM; 318 } 319 > 320 slot = ioremap(base, size); 321 if (!slot) { 322 kvfree(bitmap); 323 dev_err(dev, "Ioremap trunk failed\n"); 324 return -ENXIO; 325 } 326 327 va2pa_trunk.slots = slot; 328 va2pa_trunk.slot_used = 0; 329 va2pa_trunk.slot_total = slot_total; 330 va2pa_trunk.bitmap = bitmap; 331 mutex_init(&va2pa_trunk.mutex); 332 333 return 0; 334 } 335 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH openEuler-1.0-LTS] xen-netback: don't produce zero-size SKB frags
by Ziyang Xuan 06 Feb '24

06 Feb '24
From: Jan Beulich <jbeulich(a)suse.com> stable inclusion from stable-v5.10.209 commit 5bb8270789c88c0e4ad78c0de2f274f2275c7f6c category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8YCSC CVE: CVE-2023-46838 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id… -------------------------------- commit c7ec4f2d684e17d69bbdd7c4324db0ef5daac26a upstream. While frontends may submit zero-size requests (wasting a precious slot), core networking code as of at least 3ece782693c4b ("sock: skb_copy_ubufs support for compound pages") can't deal with SKBs when they have all zero-size fragments. Respond to empty requests right when populating fragments; all further processing is fragment based and hence won't encounter these empty requests anymore. In a way this should have been that way from the beginning: When no data is to be transferred for a particular request, there's not even a point in validating the respective grant ref. That's no different from e.g. passing NULL into memcpy() when at the same time the size is 0. This is XSA-448 / CVE-2023-46838. Cc: stable(a)vger.kernel.org Signed-off-by: Jan Beulich <jbeulich(a)suse.com> Reviewed-by: Juergen Gross <jgross(a)suse.com> Reviewed-by: Paul Durrant <paul(a)xen.org> Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org> Signed-off-by: Ziyang Xuan <william.xuanziyang(a)huawei.com> --- drivers/net/xen-netback/netback.c | 44 ++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 103f2c09d785..850e8fdef34d 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -440,12 +440,25 @@ static void xenvif_get_requests(struct xenvif_queue *queue, } for (shinfo->nr_frags = 0; nr_slots > 0 && shinfo->nr_frags < MAX_SKB_FRAGS; - shinfo->nr_frags++, gop++, nr_slots--) { + nr_slots--) { + if (unlikely(!txp->size)) { + unsigned long flags; + + spin_lock_irqsave(&queue->response_lock, flags); + make_tx_response(queue, txp, 0, XEN_NETIF_RSP_OKAY); + push_tx_responses(queue); + spin_unlock_irqrestore(&queue->response_lock, flags); + ++txp; + continue; + } + index = pending_index(queue->pending_cons++); pending_idx = queue->pending_ring[index]; xenvif_tx_create_map_op(queue, pending_idx, txp, txp == first ? extra_count : 0, gop); frag_set_pending_idx(&frags[shinfo->nr_frags], pending_idx); + ++shinfo->nr_frags; + ++gop; if (txp == first) txp = txfrags; @@ -458,20 +471,39 @@ static void xenvif_get_requests(struct xenvif_queue *queue, shinfo = skb_shinfo(nskb); frags = shinfo->frags; - for (shinfo->nr_frags = 0; shinfo->nr_frags < nr_slots; - shinfo->nr_frags++, txp++, gop++) { + for (shinfo->nr_frags = 0; shinfo->nr_frags < nr_slots; ++txp) { + if (unlikely(!txp->size)) { + unsigned long flags; + + spin_lock_irqsave(&queue->response_lock, flags); + make_tx_response(queue, txp, 0, + XEN_NETIF_RSP_OKAY); + push_tx_responses(queue); + spin_unlock_irqrestore(&queue->response_lock, + flags); + continue; + } + index = pending_index(queue->pending_cons++); pending_idx = queue->pending_ring[index]; xenvif_tx_create_map_op(queue, pending_idx, txp, 0, gop); frag_set_pending_idx(&frags[shinfo->nr_frags], pending_idx); + ++shinfo->nr_frags; + ++gop; } - skb_shinfo(skb)->frag_list = nskb; - } else if (nskb) { + if (shinfo->nr_frags) { + skb_shinfo(skb)->frag_list = nskb; + nskb = NULL; + } + } + + if (nskb) { /* A frag_list skb was allocated but it is no longer needed - * because enough slots were converted to copy ops above. + * because enough slots were converted to copy ops above or some + * were empty. */ kfree_skb(nskb); } -- 2.25.1
2 1
0 0
[PATCH OLK-5.10] xen-netback: don't produce zero-size SKB frags
by Ziyang Xuan 06 Feb '24

06 Feb '24
From: Jan Beulich <jbeulich(a)suse.com> stable inclusion from stable-v5.10.209 commit cce8ba6fa4ec43ad778d64823a2f8ca120d362c1 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8YCSC CVE: CVE-2023-46838 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id… -------------------------------- commit c7ec4f2d684e17d69bbdd7c4324db0ef5daac26a upstream. While frontends may submit zero-size requests (wasting a precious slot), core networking code as of at least 3ece782693c4b ("sock: skb_copy_ubufs support for compound pages") can't deal with SKBs when they have all zero-size fragments. Respond to empty requests right when populating fragments; all further processing is fragment based and hence won't encounter these empty requests anymore. In a way this should have been that way from the beginning: When no data is to be transferred for a particular request, there's not even a point in validating the respective grant ref. That's no different from e.g. passing NULL into memcpy() when at the same time the size is 0. This is XSA-448 / CVE-2023-46838. Cc: stable(a)vger.kernel.org Signed-off-by: Jan Beulich <jbeulich(a)suse.com> Reviewed-by: Juergen Gross <jgross(a)suse.com> Reviewed-by: Paul Durrant <paul(a)xen.org> Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org> Signed-off-by: Ziyang Xuan <william.xuanziyang(a)huawei.com> --- drivers/net/xen-netback/netback.c | 44 ++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 1c366ddf62bc..d25bb5b9a54c 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -463,12 +463,25 @@ static void xenvif_get_requests(struct xenvif_queue *queue, } for (shinfo->nr_frags = 0; nr_slots > 0 && shinfo->nr_frags < MAX_SKB_FRAGS; - shinfo->nr_frags++, gop++, nr_slots--) { + nr_slots--) { + if (unlikely(!txp->size)) { + unsigned long flags; + + spin_lock_irqsave(&queue->response_lock, flags); + make_tx_response(queue, txp, 0, XEN_NETIF_RSP_OKAY); + push_tx_responses(queue); + spin_unlock_irqrestore(&queue->response_lock, flags); + ++txp; + continue; + } + index = pending_index(queue->pending_cons++); pending_idx = queue->pending_ring[index]; xenvif_tx_create_map_op(queue, pending_idx, txp, txp == first ? extra_count : 0, gop); frag_set_pending_idx(&frags[shinfo->nr_frags], pending_idx); + ++shinfo->nr_frags; + ++gop; if (txp == first) txp = txfrags; @@ -481,20 +494,39 @@ static void xenvif_get_requests(struct xenvif_queue *queue, shinfo = skb_shinfo(nskb); frags = shinfo->frags; - for (shinfo->nr_frags = 0; shinfo->nr_frags < nr_slots; - shinfo->nr_frags++, txp++, gop++) { + for (shinfo->nr_frags = 0; shinfo->nr_frags < nr_slots; ++txp) { + if (unlikely(!txp->size)) { + unsigned long flags; + + spin_lock_irqsave(&queue->response_lock, flags); + make_tx_response(queue, txp, 0, + XEN_NETIF_RSP_OKAY); + push_tx_responses(queue); + spin_unlock_irqrestore(&queue->response_lock, + flags); + continue; + } + index = pending_index(queue->pending_cons++); pending_idx = queue->pending_ring[index]; xenvif_tx_create_map_op(queue, pending_idx, txp, 0, gop); frag_set_pending_idx(&frags[shinfo->nr_frags], pending_idx); + ++shinfo->nr_frags; + ++gop; } - skb_shinfo(skb)->frag_list = nskb; - } else if (nskb) { + if (shinfo->nr_frags) { + skb_shinfo(skb)->frag_list = nskb; + nskb = NULL; + } + } + + if (nskb) { /* A frag_list skb was allocated but it is no longer needed - * because enough slots were converted to copy ops above. + * because enough slots were converted to copy ops above or some + * were empty. */ kfree_skb(nskb); } -- 2.25.1
2 1
0 0
[PATCH OLK-6.6 v2] block: kabi: KABI reservation for blk-cgroup
by Li Nan 06 Feb '24

06 Feb '24
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I9110C ---------------------------------------------------------------------- Reserve KABI for file blk-cgroup.h. Signed-off-by: Li Nan <linan122(a)huawei.com> --- block/blk-cgroup.h | 30 ++++++++++++++++++++++++++++++ include/linux/blkdev.h | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h index a2eb8be26f45..9128046994df 100644 --- a/block/blk-cgroup.h +++ b/block/blk-cgroup.h @@ -33,6 +33,7 @@ enum blkg_iostat_type { BLKG_IOSTAT_READ, BLKG_IOSTAT_WRITE, BLKG_IOSTAT_DISCARD, + BLKG_IOSTAT_KABI_REVERSE, BLKG_IOSTAT_NR, }; @@ -49,6 +50,12 @@ struct blkg_iostat_set { int lqueued; /* queued in llist */ struct blkg_iostat cur; struct blkg_iostat last; + + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) + KABI_RESERVE(5) }; /* association between a blk cgroup and a request queue */ @@ -88,6 +95,12 @@ struct blkcg_gq { int last_use; struct rcu_head rcu_head; + + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) + KABI_RESERVE(5) }; struct blkcg { @@ -117,6 +130,12 @@ struct blkcg { #ifdef CONFIG_CGROUP_V1_WRITEBACK struct list_head memcg_list; #endif + + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) + KABI_RESERVE(5) }; static inline struct blkcg *css_to_blkcg(struct cgroup_subsys_state *css) @@ -140,6 +159,9 @@ struct blkg_policy_data { struct blkcg_gq *blkg; int plid; bool online; + + KABI_RESERVE(1) + KABI_RESERVE(2) }; /* @@ -153,6 +175,9 @@ struct blkcg_policy_data { /* the blkcg and policy id this per-policy data belongs to */ struct blkcg *blkcg; int plid; + + KABI_RESERVE(1) + KABI_RESERVE(2) }; typedef struct blkcg_policy_data *(blkcg_pol_alloc_cpd_fn)(gfp_t gfp); @@ -186,6 +211,11 @@ struct blkcg_policy { blkcg_pol_free_pd_fn *pd_free_fn; blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; blkcg_pol_stat_pd_fn *pd_stat_fn; + + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) }; extern struct blkcg blkcg_root; diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index d8a0ee46ba37..7478cf6c6d63 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -48,7 +48,7 @@ extern struct class block_class; * Maximum number of blkcg policies allowed to be registered concurrently. * Defined here to simplify include dependency. */ -#define BLKCG_MAX_POLS 6 +#define BLKCG_MAX_POLS 10 #define DISK_MAX_PARTS 256 #define DISK_NAME_LEN 32 -- 2.39.2
2 1
0 0
[PATCH OLK-6.6 0/1] sched: migtate user interface from smart grid to sched bpf
by Liao Chen 06 Feb '24

06 Feb '24
Migtating user interface from smart grid to sched bpf, which allows users to set SCHED_GRID_QOS_TASK_LEVEL through: /proc/${pid}/task/${pid}/tag interface. Although arbitrary integer value could be assigned to <tag>, currnetly we clamp the value of SCHED_GRID_QOS_TASK_LEVEL to 0-7, which maintains consistency. Liao Chen (1): sched: migtate user interface from smart grid to sched bpf fs/proc/base.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) -- 2.34.1
2 2
0 0
[PATCH OLK-6.6 0/2] Feature: smart halt poll & export vcpustat
by liangtian 06 Feb '24

06 Feb '24
sched/idle: introduce smart halt polling kvm: debugfs: Export vcpu stat via debugfs arch/arm64/Kconfig | 6 ++ arch/arm64/configs/openeuler_defconfig | 3 + arch/arm64/include/asm/kvm_host.h | 21 ++++ arch/arm64/include/asm/thread_info.h | 2 + arch/arm64/kernel/process.c | 4 + arch/arm64/kvm/arm.c | 32 +++++- arch/arm64/kvm/guest.c | 40 +++++++- arch/arm64/kvm/handle_exit.c | 8 ++ arch/arm64/kvm/hyp/include/hyp/switch.h | 2 + arch/arm64/kvm/mmu.c | 1 + arch/arm64/kvm/sys_regs.c | 9 ++ arch/x86/Kconfig | 3 + arch/x86/include/asm/kvm_host.h | 14 +++ arch/x86/kvm/vmx/vmx.c | 8 ++ arch/x86/kvm/x86.c | 86 +++++++++++++++- drivers/cpuidle/Kconfig | 4 +- drivers/cpuidle/cpuidle-haltpoll.c | 98 +++++++++++++++--- drivers/cpuidle/governors/haltpoll.c | 6 +- drivers/cpuidle/poll_state.c | 3 + include/asm-generic/kvm_para.h | 2 +- include/linux/kernel.h | 1 + include/linux/kvm_host.h | 44 ++++++++ include/uapi/linux/kvm.h | 1 + kernel/sched/idle.c | 30 +++++- kernel/sysctl.c | 7 ++ virt/kvm/kvm_main.c | 129 ++++++++++++++++++++++++ 26 files changed, 541 insertions(+), 23 deletions(-) -- 2.33.0
2 3
0 0
[openeuler:OLK-6.6 2519/3004] drivers/gpu/drm/phytium/phytium_plane.c:30:6: warning: no previous prototype for function 'phytium_plane_destroy'
by kernel test robot 06 Feb '24

06 Feb '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: fa30d756edd690da32744e72880e2ff10c01208f commit: b80df10f845813bb4fc2002b5386ecdfa8be5f6c [2519/3004] DRM: Phytium display DRM driver config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20240206/202402061009.wXmMpBHa-lkp@…) compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 7dd790db8b77c4a833c06632e903dc4f13877a64) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240206/202402061009.wXmMpBHa-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/202402061009.wXmMpBHa-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/gpu/drm/phytium/phytium_plane.c:30:6: warning: no previous prototype for function 'phytium_plane_destroy' [-Wmissing-prototypes] 30 | void phytium_plane_destroy(struct drm_plane *plane) | ^ drivers/gpu/drm/phytium/phytium_plane.c:30:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 30 | void phytium_plane_destroy(struct drm_plane *plane) | ^ | static >> drivers/gpu/drm/phytium/phytium_plane.c:72:1: warning: no previous prototype for function 'phytium_plane_atomic_set_property' [-Wmissing-prototypes] 72 | phytium_plane_atomic_set_property(struct drm_plane *plane, | ^ drivers/gpu/drm/phytium/phytium_plane.c:71:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 71 | int | ^ | static >> drivers/gpu/drm/phytium/phytium_plane.c:82:1: warning: no previous prototype for function 'phytium_plane_atomic_duplicate_state' [-Wmissing-prototypes] 82 | phytium_plane_atomic_duplicate_state(struct drm_plane *plane) | ^ drivers/gpu/drm/phytium/phytium_plane.c:81:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 81 | struct drm_plane_state * | ^ | static >> drivers/gpu/drm/phytium/phytium_plane.c:103:1: warning: no previous prototype for function 'phytium_plane_atomic_destroy_state' [-Wmissing-prototypes] 103 | phytium_plane_atomic_destroy_state(struct drm_plane *plane, struct drm_plane_state *state) | ^ drivers/gpu/drm/phytium/phytium_plane.c:102:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 102 | void | ^ | static drivers/gpu/drm/phytium/phytium_plane.c:362:20: warning: variable 'crtc_x' set but not used [-Wunused-but-set-variable] 362 | int src_x, src_y, crtc_x, crtc_y, crtc_w, crtc_h; | ^ drivers/gpu/drm/phytium/phytium_plane.c:362:28: warning: variable 'crtc_y' set but not used [-Wunused-but-set-variable] 362 | int src_x, src_y, crtc_x, crtc_y, crtc_w, crtc_h; | ^ 6 warnings generated. -- >> drivers/gpu/drm/phytium/phytium_crtc.c:380:1: warning: no previous prototype for function 'phytium_crtc_atomic_duplicate_state' [-Wmissing-prototypes] 380 | phytium_crtc_atomic_duplicate_state(struct drm_crtc *crtc) | ^ drivers/gpu/drm/phytium/phytium_crtc.c:379:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 379 | struct drm_crtc_state * | ^ | static >> drivers/gpu/drm/phytium/phytium_crtc.c:395:1: warning: no previous prototype for function 'phytium_crtc_atomic_destroy_state' [-Wmissing-prototypes] 395 | phytium_crtc_atomic_destroy_state(struct drm_crtc *crtc, | ^ drivers/gpu/drm/phytium/phytium_crtc.c:394:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 394 | void | ^ | static drivers/gpu/drm/phytium/phytium_crtc.c:607:29: warning: variable 'phytium_crtc_state' set but not used [-Wunused-but-set-variable] 607 | struct phytium_crtc_state *phytium_crtc_state = NULL; | ^ 3 warnings generated. -- >> drivers/gpu/drm/phytium/phytium_dp.c:506:6: warning: no previous prototype for function 'phytium_dp_coding_8b10b_need_enable' [-Wmissing-prototypes] 506 | bool phytium_dp_coding_8b10b_need_enable(unsigned char test_pattern) | ^ drivers/gpu/drm/phytium/phytium_dp.c:506:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 506 | bool phytium_dp_coding_8b10b_need_enable(unsigned char test_pattern) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:523:6: warning: no previous prototype for function 'phytium_dp_scrambled_need_enable' [-Wmissing-prototypes] 523 | bool phytium_dp_scrambled_need_enable(unsigned char test_pattern) | ^ drivers/gpu/drm/phytium/phytium_dp.c:523:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 523 | bool phytium_dp_scrambled_need_enable(unsigned char test_pattern) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:656:6: warning: no previous prototype for function 'phytium_dp_hw_enable_audio' [-Wmissing-prototypes] 656 | void phytium_dp_hw_enable_audio(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:656:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 656 | void phytium_dp_hw_enable_audio(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:825:6: warning: no previous prototype for function 'phytium_dp_hw_disable_video' [-Wmissing-prototypes] 825 | void phytium_dp_hw_disable_video(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:825:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 825 | void phytium_dp_hw_disable_video(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:836:6: warning: no previous prototype for function 'phytium_dp_hw_video_is_enable' [-Wmissing-prototypes] 836 | bool phytium_dp_hw_video_is_enable(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:836:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 836 | bool phytium_dp_hw_video_is_enable(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:847:6: warning: no previous prototype for function 'phytium_dp_hw_enable_video' [-Wmissing-prototypes] 847 | void phytium_dp_hw_enable_video(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:847:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 847 | void phytium_dp_hw_enable_video(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:859:6: warning: no previous prototype for function 'phytium_dp_hw_config_video' [-Wmissing-prototypes] 859 | void phytium_dp_hw_config_video(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:859:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 859 | void phytium_dp_hw_config_video(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:948:6: warning: no previous prototype for function 'phytium_dp_hw_disable_output' [-Wmissing-prototypes] 948 | void phytium_dp_hw_disable_output(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:948:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 948 | void phytium_dp_hw_disable_output(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:960:6: warning: no previous prototype for function 'phytium_dp_hw_enable_output' [-Wmissing-prototypes] 960 | void phytium_dp_hw_enable_output(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:960:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 960 | void phytium_dp_hw_enable_output(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:972:6: warning: no previous prototype for function 'phytium_dp_hw_enable_input_source' [-Wmissing-prototypes] 972 | void phytium_dp_hw_enable_input_source(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:972:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 972 | void phytium_dp_hw_enable_input_source(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:983:6: warning: no previous prototype for function 'phytium_dp_hw_disable_input_source' [-Wmissing-prototypes] 983 | void phytium_dp_hw_disable_input_source(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:983:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 983 | void phytium_dp_hw_disable_input_source(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:993:6: warning: no previous prototype for function 'phytium_dp_hw_output_is_enable' [-Wmissing-prototypes] 993 | bool phytium_dp_hw_output_is_enable(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:993:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 993 | bool phytium_dp_hw_output_is_enable(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1030:6: warning: no previous prototype for function 'phytium_dp_hw_hpd_irq_setup' [-Wmissing-prototypes] 1030 | void phytium_dp_hw_hpd_irq_setup(struct phytium_dp_device *phytium_dp, bool enable) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1030:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1030 | void phytium_dp_hw_hpd_irq_setup(struct phytium_dp_device *phytium_dp, bool enable) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1045:5: warning: no previous prototype for function 'phytium_dp_hw_init' [-Wmissing-prototypes] 1045 | int phytium_dp_hw_init(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1045:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1045 | int phytium_dp_hw_init(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1223:6: warning: no previous prototype for function 'phytium_dp_dpcd_sink_dpms' [-Wmissing-prototypes] 1223 | void phytium_dp_dpcd_sink_dpms(struct phytium_dp_device *phytium_dp, int mode) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1223:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1223 | void phytium_dp_dpcd_sink_dpms(struct phytium_dp_device *phytium_dp, int mode) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1448:5: warning: no previous prototype for function 'phytium_dp_get_link_train_fallback_values' [-Wmissing-prototypes] 1448 | int phytium_dp_get_link_train_fallback_values(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1448:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1448 | int phytium_dp_get_link_train_fallback_values(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1497:5: warning: no previous prototype for function 'phytium_dp_start_link_train' [-Wmissing-prototypes] 1497 | int phytium_dp_start_link_train(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1497:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1497 | int phytium_dp_start_link_train(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1802:6: warning: no previous prototype for function 'phytium_dp_hpd_poll_handler' [-Wmissing-prototypes] 1802 | void phytium_dp_hpd_poll_handler(struct phytium_display_private *priv) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1802:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1802 | void phytium_dp_hpd_poll_handler(struct phytium_display_private *priv) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:1949:6: warning: no previous prototype for function 'phytium_dp_fast_link_train' [-Wmissing-prototypes] 1949 | bool phytium_dp_fast_link_train(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:1949:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1949 | bool phytium_dp_fast_link_train(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/phytium_dp.c:2140:6: warning: no previous prototype for function 'phytium_dp_adjust_link_train_parameter' [-Wmissing-prototypes] 2140 | void phytium_dp_adjust_link_train_parameter(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/phytium_dp.c:2140:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 2140 | void phytium_dp_adjust_link_train_parameter(struct phytium_dp_device *phytium_dp) | ^ | static drivers/gpu/drm/phytium/phytium_dp.c:2200:1: warning: no previous prototype for function 'phytium_encoder_mode_valid' [-Wmissing-prototypes] 2200 | phytium_encoder_mode_valid(struct drm_encoder *encoder, const struct drm_display_mode *mode) | ^ drivers/gpu/drm/phytium/phytium_dp.c:2199:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 2199 | enum drm_mode_status | ^ | static drivers/gpu/drm/phytium/phytium_dp.c:2256:6: warning: no previous prototype for function 'phytium_dp_encoder_destroy' [-Wmissing-prototypes] 2256 | void phytium_dp_encoder_destroy(struct drm_encoder *encoder) | ^ drivers/gpu/drm/phytium/phytium_dp.c:2256:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 2256 | void phytium_dp_encoder_destroy(struct drm_encoder *encoder) | ^ | static drivers/gpu/drm/phytium/phytium_dp.c:2469:5: warning: no previous prototype for function 'phytium_get_encoder_crtc_mask' [-Wmissing-prototypes] 2469 | int phytium_get_encoder_crtc_mask(struct phytium_dp_device *phytium_dp, int port) | ^ drivers/gpu/drm/phytium/phytium_dp.c:2469:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 2469 | int phytium_get_encoder_crtc_mask(struct phytium_dp_device *phytium_dp, int port) | ^ | static 23 warnings generated. -- >> drivers/gpu/drm/phytium/phytium_gem.c:22:5: warning: no previous prototype for function 'phytium_memory_pool_alloc' [-Wmissing-prototypes] 22 | int phytium_memory_pool_alloc(struct phytium_display_private *priv, void **pvaddr, | ^ drivers/gpu/drm/phytium/phytium_gem.c:22:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 22 | int phytium_memory_pool_alloc(struct phytium_display_private *priv, void **pvaddr, | ^ | static >> drivers/gpu/drm/phytium/phytium_gem.c:37:6: warning: no previous prototype for function 'phytium_memory_pool_free' [-Wmissing-prototypes] 37 | void phytium_memory_pool_free(struct phytium_display_private *priv, void *vaddr, uint64_t size) | ^ drivers/gpu/drm/phytium/phytium_gem.c:37:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 37 | void phytium_memory_pool_free(struct phytium_display_private *priv, void *vaddr, uint64_t size) | ^ | static >> drivers/gpu/drm/phytium/phytium_gem.c:160:5: warning: no previous prototype for function 'phytium_gem_prime_vmap' [-Wmissing-prototypes] 160 | int phytium_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map) | ^ drivers/gpu/drm/phytium/phytium_gem.c:160:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 160 | int phytium_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map) | ^ | static >> drivers/gpu/drm/phytium/phytium_gem.c:169:6: warning: no previous prototype for function 'phytium_gem_prime_vunmap' [-Wmissing-prototypes] 169 | void phytium_gem_prime_vunmap(struct drm_gem_object *obj, struct iosys_map *map) | ^ drivers/gpu/drm/phytium/phytium_gem.c:169:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 169 | void phytium_gem_prime_vunmap(struct drm_gem_object *obj, struct iosys_map *map) | ^ | static >> drivers/gpu/drm/phytium/phytium_gem.c:181:5: warning: no previous prototype for function 'phytium_dma_transfer' [-Wmissing-prototypes] 181 | int phytium_dma_transfer(struct drm_device *drm_dev, int dev_to_mem, void *addr, | ^ drivers/gpu/drm/phytium/phytium_gem.c:181:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 181 | int phytium_dma_transfer(struct drm_device *drm_dev, int dev_to_mem, void *addr, | ^ | static 5 warnings generated. -- >> drivers/gpu/drm/phytium/phytium_fbdev.c:117:5: warning: no previous prototype for function 'phytium_drm_fbdev_init' [-Wmissing-prototypes] 117 | int phytium_drm_fbdev_init(struct drm_device *dev) | ^ drivers/gpu/drm/phytium/phytium_fbdev.c:117:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 117 | int phytium_drm_fbdev_init(struct drm_device *dev) | ^ | static >> drivers/gpu/drm/phytium/phytium_fbdev.c:139:6: warning: no previous prototype for function 'phytium_drm_fbdev_fini' [-Wmissing-prototypes] 139 | void phytium_drm_fbdev_fini(struct drm_device *dev) | ^ drivers/gpu/drm/phytium/phytium_fbdev.c:139:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 139 | void phytium_drm_fbdev_fini(struct drm_device *dev) | ^ | static 2 warnings generated. -- >> drivers/gpu/drm/phytium/phytium_debugfs.c:376:5: warning: no previous prototype for function 'phytium_debugfs_connector_add' [-Wmissing-prototypes] 376 | int phytium_debugfs_connector_add(struct drm_connector *connector) | ^ drivers/gpu/drm/phytium/phytium_debugfs.c:376:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 376 | int phytium_debugfs_connector_add(struct drm_connector *connector) | ^ | static >> drivers/gpu/drm/phytium/phytium_debugfs.c:438:5: warning: no previous prototype for function 'phytium_debugfs_display_register' [-Wmissing-prototypes] 438 | int phytium_debugfs_display_register(struct phytium_display_private *priv) | ^ drivers/gpu/drm/phytium/phytium_debugfs.c:438:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 438 | int phytium_debugfs_display_register(struct phytium_display_private *priv) | ^ | static 2 warnings generated. -- >> drivers/gpu/drm/phytium/px210_dp.c:852:6: warning: no previous prototype for function 'px210_dp_hw_spread_is_enable' [-Wmissing-prototypes] 852 | bool px210_dp_hw_spread_is_enable(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/px210_dp.c:852:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 852 | bool px210_dp_hw_spread_is_enable(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/px210_dp.c:864:5: warning: no previous prototype for function 'px210_dp_hw_reset' [-Wmissing-prototypes] 864 | int px210_dp_hw_reset(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/px210_dp.c:864:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 864 | int px210_dp_hw_reset(struct phytium_dp_device *phytium_dp) | ^ | static >> drivers/gpu/drm/phytium/px210_dp.c:897:9: warning: no previous prototype for function 'px210_dp_hw_get_source_lane_count' [-Wmissing-prototypes] 897 | uint8_t px210_dp_hw_get_source_lane_count(struct phytium_dp_device *phytium_dp) | ^ drivers/gpu/drm/phytium/px210_dp.c:897:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 897 | uint8_t px210_dp_hw_get_source_lane_count(struct phytium_dp_device *phytium_dp) | ^ | static 3 warnings generated. .. vim +/phytium_plane_destroy +30 drivers/gpu/drm/phytium/phytium_plane.c 29 > 30 void phytium_plane_destroy(struct drm_plane *plane) 31 { 32 struct phytium_plane *phytium_plane = to_phytium_plane(plane); 33 34 drm_plane_cleanup(plane); 35 kfree(phytium_plane); 36 } 37 38 /** 39 * phytium_plane_atomic_get_property - fetch plane property value 40 * @plane: plane to fetch property for 41 * @state: state containing the property value 42 * @property: property to look up 43 * @val: pointer to write property value into 44 * 45 * The DRM core does not store shadow copies of properties for 46 * atomic-capable drivers. This entrypoint is used to fetch 47 * the current value of a driver-specific plane property. 48 */ 49 static int 50 phytium_plane_atomic_get_property(struct drm_plane *plane, 51 const struct drm_plane_state *state, 52 struct drm_property *property, 53 uint64_t *val) 54 { 55 DRM_DEBUG_KMS("Unknown plane property [PROP:%d:%s]\n", property->base.id, property->name); 56 return -EINVAL; 57 } 58 59 /** 60 * phytium_plane_atomic_set_property - set plane property value 61 * @plane: plane to set property for 62 * @state: state to update property value in 63 * @property: property to set 64 * @val: value to set property to 65 * 66 * Writes the specified property value for a plane into the provided atomic 67 * state object. 68 * 69 * Returns 0 on success, -EINVAL on unrecognized properties 70 */ 71 int > 72 phytium_plane_atomic_set_property(struct drm_plane *plane, 73 struct drm_plane_state *state, 74 struct drm_property *property, 75 uint64_t val) 76 { 77 DRM_DEBUG_KMS("Unknown plane property [PROP:%d:%s]\n", property->base.id, property->name); 78 return -EINVAL; 79 } 80 81 struct drm_plane_state * > 82 phytium_plane_atomic_duplicate_state(struct drm_plane *plane) 83 { 84 struct drm_plane_state *state = NULL; 85 struct phytium_plane_state *phytium_state = NULL; 86 87 phytium_state = kmemdup(plane->state, sizeof(*phytium_state), GFP_KERNEL); 88 89 if (!phytium_state) 90 return NULL; 91 92 state = &phytium_state->base; 93 if (state->fb) 94 drm_framebuffer_get(state->fb); 95 96 state->fence = NULL; 97 state->commit = NULL; 98 99 return state; 100 } 101 102 void > 103 phytium_plane_atomic_destroy_state(struct drm_plane *plane, struct drm_plane_state *state) 104 { 105 struct phytium_plane_state *phytium_state = to_phytium_plane_state(state); 106 107 __drm_atomic_helper_plane_destroy_state(state); 108 kfree(phytium_state); 109 } 110 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH OLK-6.6 0/3] reserve kabi space for some structures
by Li Lingfeng 06 Feb '24

06 Feb '24
Reserve kabi space for some structures in elevator/libata/libnvdimm. Li Lingfeng (3): elevator: reserve space for structures in elevator ata: libata: reserve space for structures in libata libnvdimm: reserve space for structures in libnvdimm block/elevator.h | 15 +++++++++++++++ include/linux/libata.h | 31 +++++++++++++++++++++++++++++++ include/linux/libnvdimm.h | 7 +++++++ include/linux/nd.h | 13 +++++++++++++ 4 files changed, 66 insertions(+) -- 2.31.1
2 4
0 0
  • ← Newer
  • 1
  • ...
  • 1316
  • 1317
  • 1318
  • 1319
  • 1320
  • 1321
  • 1322
  • ...
  • 1892
  • Older →

HyperKitty Powered by HyperKitty