Kernel
Threads by month
- ----- 2026 -----
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- 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
- 34 participants
- 22810 discussions
[openeuler:OLK-6.6 10/10] mm/share_pool.c:1468:7: warning: variable 'is_hugepage' set but not used
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Wang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 52a3b0aa13aa2325ca2caf528fbcaba06ad3bab5
commit: eaafc4a2a3fd023a99c44286895074dd5712706f [10/10] mm/sharepool: Implement mg_sp_unshare_kva
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251225/202512252023.HaBIKQLH-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512252023.HaBIKQLH-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/202512252023.HaBIKQLH-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from mm/share_pool.c:21:
In file included from include/linux/share_pool.h:5:
In file included from include/linux/mman.h:5:
In file included from include/linux/mm.h:2174:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> mm/share_pool.c:1468:7: warning: variable 'is_hugepage' set but not used [-Wunused-but-set-variable]
1468 | bool is_hugepage = true;
| ^
mm/share_pool.c:73:12: warning: unused variable 'system_group_count' [-Wunused-variable]
73 | static int system_group_count;
| ^~~~~~~~~~~~~~~~~~
mm/share_pool.c:76:19: warning: unused variable 'sp_group_idr' [-Wunused-variable]
76 | static DEFINE_IDR(sp_group_idr);
| ^~~~~~~~~~~~
include/linux/idr.h:56:37: note: expanded from macro 'DEFINE_IDR'
56 | #define DEFINE_IDR(name) struct idr name = IDR_INIT(name)
| ^~~~
mm/share_pool.c:223:20: warning: unused function 'sp_add_group_master' [-Wunused-function]
223 | static inline void sp_add_group_master(struct sp_group_master *master)
| ^~~~~~~~~~~~~~~~~~~
mm/share_pool.c:230:20: warning: unused function 'sp_del_group_master' [-Wunused-function]
230 | static inline void sp_del_group_master(struct sp_group_master *master)
| ^~~~~~~~~~~~~~~~~~~
mm/share_pool.c:237:13: warning: unused function 'meminfo_init' [-Wunused-function]
237 | static void meminfo_init(struct sp_meminfo *meminfo)
| ^~~~~~~~~~~~
mm/share_pool.c:274:20: warning: unused function 'meminfo_alloc_sum_byKB' [-Wunused-function]
274 | static inline long meminfo_alloc_sum_byKB(struct sp_meminfo *meminfo)
| ^~~~~~~~~~~~~~~~~~~~~~
mm/share_pool.c:279:20: warning: unused function 'meminfo_k2u_size' [-Wunused-function]
279 | static inline long meminfo_k2u_size(struct sp_meminfo *meminfo)
| ^~~~~~~~~~~~~~~~
mm/share_pool.c:284:25: warning: unused function 'meminfo_total_size' [-Wunused-function]
284 | static inline long long meminfo_total_size(struct sp_meminfo *meminfo)
| ^~~~~~~~~~~~~~~~~~
mm/share_pool.c:380:13: warning: unused function 'sp_mapping_detach' [-Wunused-function]
380 | static void sp_mapping_detach(struct sp_group *spg, struct sp_mapping *spm)
| ^~~~~~~~~~~~~~~~~
mm/share_pool.c:438:12: warning: unused function 'sp_group_setup_mapping_normal' [-Wunused-function]
438 | static int sp_group_setup_mapping_normal(struct mm_struct *mm, struct sp_group *spg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/share_pool.c:485:13: warning: unused function 'update_mem_usage_alloc' [-Wunused-function]
485 | static void update_mem_usage_alloc(unsigned long size, bool inc,
| ^~~~~~~~~~~~~~~~~~~~~~
mm/share_pool.c:497:13: warning: unused function 'update_mem_usage_k2u' [-Wunused-function]
497 | static void update_mem_usage_k2u(unsigned long size, bool inc,
| ^~~~~~~~~~~~~~~~~~~~
mm/share_pool.c:582:22: warning: unused function 'spa_size' [-Wunused-function]
582 | static unsigned long spa_size(struct sp_area *spa)
| ^~~~~~~~
mm/share_pool.c:587:21: warning: unused function 'spa_file' [-Wunused-function]
587 | static struct file *spa_file(struct sp_area *spa)
| ^~~~~~~~
mm/share_pool.c:791:24: warning: unused function 'sp_area_alloc' [-Wunused-function]
791 | static struct sp_area *sp_area_alloc(unsigned long size, unsigned long flags,
| ^~~~~~~~~~~~~
mm/share_pool.c:944:24: warning: unused function 'sp_area_get' [-Wunused-function]
944 | static struct sp_area *sp_area_get(struct sp_group *spg,
| ^~~~~~~~~~~
mm/share_pool.c:1005:13: warning: unused function 'sp_area_put_locked' [-Wunused-function]
1005 | static void sp_area_put_locked(struct sp_area *spa)
| ^~~~~~~~~~~~~~~~~~
23 warnings generated.
vim +/is_hugepage +1468 mm/share_pool.c
1460
1461 /* No possible concurrent protection, take care when use */
1462 static int sp_unshare_kva(unsigned long kva, unsigned long size)
1463 {
1464 unsigned long addr, kva_aligned;
1465 struct page *page;
1466 unsigned long size_aligned;
1467 unsigned long step;
> 1468 bool is_hugepage = true;
1469 int ret;
1470
1471 ret = is_vmap_hugepage(kva);
1472 if (ret > 0) {
1473 kva_aligned = ALIGN_DOWN(kva, PMD_SIZE);
1474 size_aligned = ALIGN(kva + size, PMD_SIZE) - kva_aligned;
1475 step = PMD_SIZE;
1476 } else if (ret == 0) {
1477 kva_aligned = ALIGN_DOWN(kva, PAGE_SIZE);
1478 size_aligned = ALIGN(kva + size, PAGE_SIZE) - kva_aligned;
1479 step = PAGE_SIZE;
1480 is_hugepage = false;
1481 } else {
1482 pr_err_ratelimited("check vmap hugepage failed %d\n", ret);
1483 return -EINVAL;
1484 }
1485
1486 if (kva_aligned + size_aligned < kva_aligned) {
1487 pr_err_ratelimited("overflow happened in unshare kva\n");
1488 return -EINVAL;
1489 }
1490
1491 for (addr = kva_aligned; addr < (kva_aligned + size_aligned); addr += step) {
1492 page = vmalloc_to_page((void *)addr);
1493 if (page)
1494 put_page(page);
1495 else
1496 WARN(1, "vmalloc %pK to page/hugepage failed\n",
1497 (void *)addr);
1498 }
1499
1500 vunmap((void *)kva_aligned);
1501
1502 return 0;
1503 }
1504
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[PATCH openEuler-1.0-LTS] RDMA/rxe: Fix "kernel NULL pointer dereference" error
by Ziming Du 25 Dec '25
by Ziming Du 25 Dec '25
25 Dec '25
From: Zhu Yanjun <yanjun.zhu(a)linux.dev>
stable inclusion
from stable-v4.19.262
commit 9c5dd6993c794703e74c6ba17ac78ca0211ef940
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11468
CVE: CVE-2022-50671
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit a625ca30eff806395175ebad3ac1399014bdb280 ]
When rxe_queue_init in the function rxe_qp_init_req fails,
both qp->req.task.func and qp->req.task.arg are not initialized.
Because of creation of qp fails, the function rxe_create_qp will
call rxe_qp_do_cleanup to handle allocated resource.
Before calling __rxe_do_task, both qp->req.task.func and
qp->req.task.arg should be checked.
Fixes: 8700e3e7c485 ("Soft RoCE driver")
Link: https://lore.kernel.org/r/20220822011615.805603-2-yanjun.zhu@linux.dev
Reported-by: syzbot+ab99dc4c6e961eed8b8e(a)syzkaller.appspotmail.com
Signed-off-by: Zhu Yanjun <yanjun.zhu(a)linux.dev>
Reviewed-by: Li Zhijian <lizhijian(a)fujitsu.com>
Reviewed-by: Bob Pearson <rpearsonhpe(a)gmail.com>
Signed-off-by: Leon Romanovsky <leon(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/infiniband/sw/rxe/rxe_qp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/infiniband/sw/rxe/rxe_qp.c b/drivers/infiniband/sw/rxe/rxe_qp.c
index 21c28317fc8f..5d289a5df261 100644
--- a/drivers/infiniband/sw/rxe/rxe_qp.c
+++ b/drivers/infiniband/sw/rxe/rxe_qp.c
@@ -798,7 +798,9 @@ void rxe_qp_destroy(struct rxe_qp *qp)
rxe_cleanup_task(&qp->comp.task);
/* flush out any receive wr's or pending requests */
- __rxe_do_task(&qp->req.task);
+ if (qp->req.task.func)
+ __rxe_do_task(&qp->req.task);
+
if (qp->sq.queue) {
__rxe_do_task(&qp->comp.task);
__rxe_do_task(&qp->req.task);
--
2.43.0
2
1
From: Lizhi Xu <lizhi.xu(a)windriver.com>
stable inclusion
from stable-v6.6.117
commit 9a579d6a39513069d298eee70770bbac8a148565
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11499
CVE: CVE-2025-68312
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 420c84c330d1688b8c764479e5738bbdbf0a33de ]
The root cause of this issue are:
1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0);
put the kevent work in global workqueue. However, the kevent has not yet
been scheduled when the usbnet device is unregistered. Therefore, executing
free_netdev() results in the "free active object (kevent)" error reported
here.
2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(),
if the usbnet device is up, ndo_stop() is executed to cancel the kevent.
However, because the device is not up, ndo_stop() is not executed.
The solution to this problem is to cancel the kevent before executing
free_netdev().
Fixes: a69e617e533e ("usbnet: Fix linkwatch use-after-free on disconnect")
Reported-by: Sam Sun <samsun1006219(a)gmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=8bfd7bcc98f7300afb84
Signed-off-by: Lizhi Xu <lizhi.xu(a)windriver.com>
Link: https://patch.msgid.link/20251022024007.1831898-1-lizhi.xu@windriver.com
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Ziming Du <duziming2(a)huawei.com>
---
drivers/net/usb/usbnet.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index c4134303d395..5f8606a55dbe 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1649,6 +1649,8 @@ void usbnet_disconnect (struct usb_interface *intf)
net = dev->net;
unregister_netdev (net);
+ cancel_work_sync(&dev->kevent);
+
while ((urb = usb_get_from_anchor(&dev->deferred))) {
dev_kfree_skb(urb->context);
kfree(urb->sg);
--
2.43.0
2
1
[openeuler:OLK-6.6 10/10] mm/share_pool.c:787: warning: Function parameter or member 'node_id' not described in 'sp_area_alloc'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Wang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 610575a82bdf3c3be06ce9559609d5bfa65472e8
commit: b39fcd51ad1b62c99ed0932ad0d2f89dfdc17aaa [10/10] mm/sharepool: Add sp_area management code
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251225/202512251841.ZhY8a5Eu-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512251841.ZhY8a5Eu-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/202512251841.ZhY8a5Eu-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/share_pool.c:685: warning: expecting prototype for mp_sp_group_id_by_pid(). Prototype was for mg_sp_group_id_by_pid() instead
>> mm/share_pool.c:787: warning: Function parameter or member 'node_id' not described in 'sp_area_alloc'
mm/share_pool.c:1110: warning: duplicate section name 'Return'
mm/share_pool.c:1145: warning: Function parameter or member 'spg_id' not described in 'mg_sp_unshare'
vim +787 mm/share_pool.c
773
774 /**
775 * sp_area_alloc() - Allocate a region of VA from the share pool.
776 * @size: the size of VA to allocate.
777 * @flags: how to allocate the memory.
778 * @spg: the share group that the memory is allocated to.
779 * @type: the type of the region.
780 * @applier: the tgid of the task which allocates the region.
781 *
782 * Return: a valid pointer for success, NULL on failure.
783 */
784 static struct sp_area *sp_area_alloc(unsigned long size, unsigned long flags,
785 struct sp_group *spg, enum spa_type type,
786 pid_t applier, int node_id)
> 787 {
788 int device_id;
789 struct sp_area *spa, *first, *err;
790 struct rb_node *n;
791 unsigned long vstart;
792 unsigned long vend;
793 unsigned long addr;
794 unsigned long size_align = ALIGN(size, PMD_SIZE); /* va aligned to 2M */
795 struct sp_mapping *mapping;
796
797 device_id = sp_flags_device_id(flags);
798 if (device_id < 0 || device_id >= MAX_DEVID) {
799 pr_err("invalid device id %d\n", device_id);
800 return ERR_PTR(-EINVAL);
801 }
802
803 if (flags & SP_PROT_FOCUS) {
804 if ((flags & (SP_DVPP | SP_PROT_RO)) != SP_PROT_RO) {
805 pr_err("invalid sp_flags [%lx]\n", flags);
806 return ERR_PTR(-EINVAL);
807 }
808 mapping = spg->mapping[SP_MAPPING_RO];
809 } else if (flags & SP_DVPP) {
810 mapping = spg->mapping[SP_MAPPING_DVPP];
811 } else {
812 mapping = spg->mapping[SP_MAPPING_NORMAL];
813 }
814
815 if (!mapping) {
816 pr_err_ratelimited("non DVPP spg, id %d\n", spg->id);
817 return ERR_PTR(-EINVAL);
818 }
819
820 vstart = mapping->start[device_id];
821 vend = mapping->end[device_id];
822 spa = kmalloc(sizeof(struct sp_area), GFP_KERNEL);
823 if (unlikely(!spa))
824 return ERR_PTR(-ENOMEM);
825
826 spin_lock(&mapping->sp_mapping_lock);
827
828 /*
829 * Invalidate cache if we have more permissive parameters.
830 * cached_hole_size notes the largest hole noticed _below_
831 * the sp_area cached in free_area_cache: if size fits
832 * into that hole, we want to scan from vstart to reuse
833 * the hole instead of allocating above free_area_cache.
834 * Note that sp_area_free may update free_area_cache
835 * without updating cached_hole_size.
836 */
837 if (!mapping->free_area_cache || size_align < mapping->cached_hole_size ||
838 vstart != mapping->cached_vstart) {
839 mapping->cached_hole_size = 0;
840 mapping->free_area_cache = NULL;
841 }
842
843 /* record if we encounter less permissive parameters */
844 mapping->cached_vstart = vstart;
845
846 /* find starting point for our search */
847 if (mapping->free_area_cache) {
848 first = rb_entry(mapping->free_area_cache, struct sp_area, rb_node);
849 addr = first->va_end;
850 if (addr + size_align < addr) {
851 err = ERR_PTR(-EOVERFLOW);
852 goto error;
853 }
854 } else {
855 addr = vstart;
856 if (addr + size_align < addr) {
857 err = ERR_PTR(-EOVERFLOW);
858 goto error;
859 }
860
861 n = mapping->area_root.rb_node;
862 first = NULL;
863
864 while (n) {
865 struct sp_area *tmp;
866
867 tmp = rb_entry(n, struct sp_area, rb_node);
868 if (tmp->va_end >= addr) {
869 first = tmp;
870 if (tmp->va_start <= addr)
871 break;
872 n = n->rb_left;
873 } else
874 n = n->rb_right;
875 }
876
877 if (!first)
878 goto found;
879 }
880
881 /* from the starting point, traverse areas until a suitable hole is found */
882 while (addr + size_align > first->va_start && addr + size_align <= vend) {
883 if (addr + mapping->cached_hole_size < first->va_start)
884 mapping->cached_hole_size = first->va_start - addr;
885 addr = first->va_end;
886 if (addr + size_align < addr) {
887 err = ERR_PTR(-EOVERFLOW);
888 goto error;
889 }
890
891 n = rb_next(&first->rb_node);
892 if (n)
893 first = rb_entry(n, struct sp_area, rb_node);
894 else
895 goto found;
896 }
897
898 found:
899 if (addr + size_align > vend) {
900 err = ERR_PTR(-EOVERFLOW);
901 goto error;
902 }
903
904 spa->va_start = addr;
905 spa->va_end = addr + size_align;
906 spa->real_size = size;
907 spa->region_vstart = vstart;
908 spa->flags = flags;
909 spa->is_hugepage = (flags & SP_HUGEPAGE);
910 spa->spg = spg;
911 spa->spm = mapping;
912 spa->type = type;
913 spa->kva = 0; /* NULL pointer */
914 spa->applier = applier;
915 spa->preferred_node_id = node_id;
916 atomic_set(&spa->use_count, 1);
917
918 /* the link location could be saved before, to be optimized */
919 spm_insert_area(mapping, spa);
920 mapping->free_area_cache = &spa->rb_node;
921
922 spin_unlock(&mapping->sp_mapping_lock);
923 sp_group_insert_area(spg, spa);
924
925 return spa;
926
927 error:
928 spin_unlock(&mapping->sp_mapping_lock);
929 kfree(spa);
930 return err;
931 }
932
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 10/10] mm/page_cache_limit.c:94:5: warning: no previous prototype for function 'cache_limit_mbytes_sysctl_handler'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Ze,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 610575a82bdf3c3be06ce9559609d5bfa65472e8
commit: 7d1031b36ebd6c273d9aad316fd9e3e2daa01a85 [10/10] mm: support pagecache limit
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20251225/202512251734.Tln5GDz4-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512251734.Tln5GDz4-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/202512251734.Tln5GDz4-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from mm/page_cache_limit.c:6:
In file included from include/linux/mm.h:2181:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
mm/page_cache_limit.c:61:5: warning: no previous prototype for function 'cache_reclaim_enable_handler' [-Wmissing-prototypes]
61 | int cache_reclaim_enable_handler(struct ctl_table *table, int write,
| ^
mm/page_cache_limit.c:61:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
61 | int cache_reclaim_enable_handler(struct ctl_table *table, int write,
| ^
| static
mm/page_cache_limit.c:77:5: warning: no previous prototype for function 'cache_reclaim_sysctl_handler' [-Wmissing-prototypes]
77 | int cache_reclaim_sysctl_handler(struct ctl_table *table, int write,
| ^
mm/page_cache_limit.c:77:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
77 | int cache_reclaim_sysctl_handler(struct ctl_table *table, int write,
| ^
| static
>> mm/page_cache_limit.c:94:5: warning: no previous prototype for function 'cache_limit_mbytes_sysctl_handler' [-Wmissing-prototypes]
94 | int cache_limit_mbytes_sysctl_handler(struct ctl_table *table, int write,
| ^
mm/page_cache_limit.c:94:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
94 | int cache_limit_mbytes_sysctl_handler(struct ctl_table *table, int write,
| ^
| static
8 warnings generated.
vim +/cache_limit_mbytes_sysctl_handler +94 mm/page_cache_limit.c
93
> 94 int cache_limit_mbytes_sysctl_handler(struct ctl_table *table, int write,
95 void __user *buffer, size_t *length, loff_t *ppos)
96 {
97 int ret;
98 unsigned long vm_cache_limit_mbytes_max;
99 unsigned long origin_mbytes = vm_cache_limit_mbytes;
100 int nr_retries = MAX_RECLAIM_RETRIES;
101
102 vm_cache_limit_mbytes_max = totalram_pages() >> (20 - PAGE_SHIFT);
103 ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
104 if (ret || !write)
105 return ret;
106
107 if (vm_cache_limit_mbytes > vm_cache_limit_mbytes_max) {
108 vm_cache_limit_mbytes = origin_mbytes;
109 return -EINVAL;
110 }
111
112 if (write) {
113 while (should_reclaim_page_cache() && page_cache_over_limit() &&
114 nr_retries--) {
115 if (signal_pending(current))
116 return -EINTR;
117
118 shrink_memory(node_reclaim_num(), false);
119 }
120 }
121
122 return 0;
123 }
124
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/scsi/huawei/hifc/hifc_hba.c:762:37: warning: default initialization of an object of type 'struct unf_low_level_function_op_s' with const member leaves the object uninitialized
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: 7fc993d55d1b54ae40e29dfac825a18d04d644c6 [1942/1942] scsi/hifc: add hifc driver FC service module
config: x86_64-randconfig-071-20251213 (https://download.01.org/0day-ci/archive/20251225/202512251713.lhlEoibn-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512251713.lhlEoibn-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/202512251713.lhlEoibn-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:353:9: note: previous definition is here
353 | #define __SANITIZE_ADDRESS__ 1
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:343:6: warning: no previous prototype for function 'hifc_flush_root_ctx' [-Wmissing-prototypes]
343 | void hifc_flush_root_ctx(struct hifc_hba_s *v_hba)
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:343:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
343 | void hifc_flush_root_ctx(struct hifc_hba_s *v_hba)
| ^
| static
drivers/scsi/huawei/hifc/hifc_hba.c:406:6: warning: no previous prototype for function 'hifc_flush_srq_ctx' [-Wmissing-prototypes]
406 | void hifc_flush_srq_ctx(struct hifc_hba_s *v_hba)
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:406:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
406 | void hifc_flush_srq_ctx(struct hifc_hba_s *v_hba)
| ^
| static
>> drivers/scsi/huawei/hifc/hifc_hba.c:762:37: warning: default initialization of an object of type 'struct unf_low_level_function_op_s' with const member leaves the object uninitialized [-Wdefault-const-init-field-unsafe]
762 | struct unf_low_level_function_op_s low_level_fun;
| ^
drivers/scsi/huawei/hifc/unf_common.h:1779:21: note: member 'xchg_mgr_type' declared 'const' here
1779 | const unsigned int xchg_mgr_type;
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:786:6: warning: no previous prototype for function 'hifc_release_probe_index' [-Wmissing-prototypes]
786 | void hifc_release_probe_index(unsigned int probe_index)
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:786:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
786 | void hifc_release_probe_index(unsigned int probe_index)
| ^
| static
drivers/scsi/huawei/hifc/hifc_hba.c:1016:14: warning: no previous prototype for function 'hifc_assign_probe_index' [-Wmissing-prototypes]
1016 | unsigned int hifc_assign_probe_index(unsigned int *v_probe_index)
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:1016:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
1016 | unsigned int hifc_assign_probe_index(unsigned int *v_probe_index)
| ^
| static
drivers/scsi/huawei/hifc/hifc_hba.c:1038:5: warning: no previous prototype for function 'hifc_probe' [-Wmissing-prototypes]
1038 | int hifc_probe(struct hifc_lld_dev *lld_dev, void **uld_dev, char *uld_dev_name)
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:1038:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
1038 | int hifc_probe(struct hifc_lld_dev *lld_dev, void **uld_dev, char *uld_dev_name)
| ^
| static
drivers/scsi/huawei/hifc/hifc_hba.c:1497:6: warning: no previous prototype for function 'hifc_remove' [-Wmissing-prototypes]
1497 | void hifc_remove(struct hifc_lld_dev *lld_dev, void *uld_dev)
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:1497:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
1497 | void hifc_remove(struct hifc_lld_dev *lld_dev, void *uld_dev)
| ^
| static
drivers/scsi/huawei/hifc/hifc_hba.c:1570:6: warning: no previous prototype for function 'hifc_event' [-Wmissing-prototypes]
1570 | void hifc_event(struct hifc_lld_dev *lld_dev, void *uld_dev,
| ^
drivers/scsi/huawei/hifc/hifc_hba.c:1570:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
1570 | void hifc_event(struct hifc_lld_dev *lld_dev, void *uld_dev,
| ^
| static
9 warnings generated.
vim +762 drivers/scsi/huawei/hifc/hifc_hba.c
31015b9ad992c4 Chenguangli 2020-11-16 758
31015b9ad992c4 Chenguangli 2020-11-16 759 static unsigned int hifc_create_lport(struct hifc_hba_s *v_hba)
31015b9ad992c4 Chenguangli 2020-11-16 760 {
31015b9ad992c4 Chenguangli 2020-11-16 761 void *lport = NULL;
31015b9ad992c4 Chenguangli 2020-11-16 @762 struct unf_low_level_function_op_s low_level_fun;
31015b9ad992c4 Chenguangli 2020-11-16 763
31015b9ad992c4 Chenguangli 2020-11-16 764 HIFC_CHECK(INVALID_VALUE32, v_hba, return UNF_RETURN_ERROR);
31015b9ad992c4 Chenguangli 2020-11-16 765 hifc_fun_op.dev = v_hba->pci_dev;
31015b9ad992c4 Chenguangli 2020-11-16 766 memcpy(&low_level_fun, &hifc_fun_op,
31015b9ad992c4 Chenguangli 2020-11-16 767 sizeof(struct unf_low_level_function_op_s));
31015b9ad992c4 Chenguangli 2020-11-16 768
31015b9ad992c4 Chenguangli 2020-11-16 769 /* Update port configuration table */
31015b9ad992c4 Chenguangli 2020-11-16 770 hifc_update_lport_config(v_hba, &low_level_fun);
31015b9ad992c4 Chenguangli 2020-11-16 771
31015b9ad992c4 Chenguangli 2020-11-16 772 /* Apply for lport resources */
31015b9ad992c4 Chenguangli 2020-11-16 773 UNF_LOWLEVEL_ALLOC_LPORT(lport, v_hba, &low_level_fun);
31015b9ad992c4 Chenguangli 2020-11-16 774 if (!lport) {
31015b9ad992c4 Chenguangli 2020-11-16 775 HIFC_TRACE(UNF_EVTLOG_DRIVER_ERR, UNF_LOG_REG_ATT, UNF_ERR,
31015b9ad992c4 Chenguangli 2020-11-16 776 "[err]Port(0x%x) can't allocate Lport",
31015b9ad992c4 Chenguangli 2020-11-16 777 v_hba->port_cfg.port_id);
31015b9ad992c4 Chenguangli 2020-11-16 778
31015b9ad992c4 Chenguangli 2020-11-16 779 return UNF_RETURN_ERROR;
31015b9ad992c4 Chenguangli 2020-11-16 780 }
31015b9ad992c4 Chenguangli 2020-11-16 781 v_hba->lport = lport;
31015b9ad992c4 Chenguangli 2020-11-16 782
31015b9ad992c4 Chenguangli 2020-11-16 783 return RETURN_OK;
31015b9ad992c4 Chenguangli 2020-11-16 784 }
31015b9ad992c4 Chenguangli 2020-11-16 785
:::::: The code at line 762 was first introduced by commit
:::::: 31015b9ad992c40fc0db81055932bbabe74f2533 scsi/hifc: add hifc driver port resource module
:::::: TO: Chenguangli <chenguangli2(a)huawei.com>
:::::: CC: Yang Yingliang <yangyingliang(a)huawei.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 10/10] mm/share_pool.c:68: warning: expecting prototype for mp_sp_group_id_by_pid(). Prototype was for mg_sp_group_id_by_pid() instead
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Wang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 610575a82bdf3c3be06ce9559609d5bfa65472e8
commit: fb31808921b891789a2f6cbfc7e277fd0918144a [10/10] mm/sharepool: Add base framework for share_pool
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251225/202512251747.a9usmhG0-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512251747.a9usmhG0-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/202512251747.a9usmhG0-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> mm/share_pool.c:68: warning: expecting prototype for mp_sp_group_id_by_pid(). Prototype was for mg_sp_group_id_by_pid() instead
>> mm/share_pool.c:176: warning: duplicate section name 'Return'
>> mm/share_pool.c:211: warning: Function parameter or member 'spg_id' not described in 'mg_sp_unshare'
vim +68 mm/share_pool.c
54
55 /**
56 * mp_sp_group_id_by_pid() - Get the sp_group ID array of a process.
57 * @tgid: tgid of target process.
58 * @spg_ids: point to an array to save the group ids the process belongs to
59 * @num: input the spg_ids array size; output the spg number of the process
60 *
61 * Return:
62 * >0 - the sp_group ID.
63 * -ENODEV - target process doesn't belong to any sp_group.
64 * -EINVAL - spg_ids or num is NULL.
65 * -E2BIG - the num of groups process belongs to is larger than *num
66 */
67 int mg_sp_group_id_by_pid(int tgid, int *spg_ids, int *num)
> 68 {
69 return -EOPNOTSUPP;
70 }
71 EXPORT_SYMBOL_GPL(mg_sp_group_id_by_pid);
72
73 /**
74 * mg_sp_group_add_task() - Add a process to an share group (sp_group).
75 * @tgid: the tgid of the task to be added.
76 * @prot: the prot of task for this spg.
77 * @spg_id: the ID of the sp_group.
78 *
79 * Return: A postive group number for success, -errno on failure.
80 *
81 * Valid @spg_id:
82 * [SPG_ID_MIN, SPG_ID_MAX]:
83 * the task would be added to the group with @spg_id, if the
84 * group doesn't exist, just create it.
85 * [SPG_ID_AUTO_MIN, SPG_ID_AUTO_MAX]:
86 * the task would be added to the group with @spg_id, if it
87 * doesn't exist ,return failed.
88 * SPG_ID_AUTO:
89 * the task would be added into a new group with a new id in range
90 * [SPG_ID_AUTO_MIN, SPG_ID_AUTO_MAX].
91 *
92 * This function can be taken into four parts:
93 * 1. Check and initlize the task specified by @tgid properly.
94 * 2. Create or get the spg specified by @spg_id.
95 * 3. Check the spg and task together and link the task into the spg if
96 * everything looks good.
97 * 4. Map the existing sp_area from the spg into the new task.
98 */
99 int mg_sp_group_add_task(int tgid, unsigned long prot, int spg_id)
100 {
101 return -EOPNOTSUPP;
102 }
103 EXPORT_SYMBOL_GPL(mg_sp_group_add_task);
104
105 int mg_sp_id_of_current(void)
106 {
107 return -EOPNOTSUPP;
108 }
109 EXPORT_SYMBOL_GPL(mg_sp_id_of_current);
110
111 /**
112 * mg_sp_free() - Free the memory allocated by mg_sp_alloc() or
113 * mg_sp_alloc_nodemask().
114 *
115 * @addr: the starting VA of the memory.
116 * @id: Address space identifier, which is used to distinguish the addr.
117 *
118 * Return:
119 * * 0 - success.
120 * * -EINVAL - the memory can't be found or was not allocated by share pool.
121 * * -EPERM - the caller has no permision to free the memory.
122 */
123 int mg_sp_free(unsigned long addr, int id)
124 {
125 return -EOPNOTSUPP;
126 }
127 EXPORT_SYMBOL_GPL(mg_sp_free);
128
129 static void __init proc_sharepool_init(void)
130 {
131 if (!proc_mkdir("sharepool", NULL))
132 return;
133 }
134
135 void *mg_sp_alloc_nodemask(unsigned long size, unsigned long sp_flags, int spg_id,
136 nodemask_t nodemask)
137 {
138 return ERR_PTR(-EOPNOTSUPP);
139 }
140 EXPORT_SYMBOL_GPL(mg_sp_alloc_nodemask);
141
142 /**
143 * mg_sp_alloc() - Allocate shared memory for all the processes in a sp_group.
144 * @size: the size of memory to allocate.
145 * @sp_flags: how to allocate the memory.
146 * @spg_id: the share group that the memory is allocated to.
147 *
148 * Use pass through allocation if spg_id == SPG_ID_DEFAULT in multi-group mode.
149 *
150 * Return:
151 * * if succeed, return the starting address of the shared memory.
152 * * if fail, return the pointer of -errno.
153 */
154 void *mg_sp_alloc(unsigned long size, unsigned long sp_flags, int spg_id)
155 {
156 return ERR_PTR(-EOPNOTSUPP);
157 }
158 EXPORT_SYMBOL_GPL(mg_sp_alloc);
159
160 /**
161 * mg_sp_make_share_k2u() - Share kernel memory to current process or an sp_group.
162 * @kva: the VA of shared kernel memory.
163 * @size: the size of shared kernel memory.
164 * @sp_flags: how to allocate the memory. We only support SP_DVPP.
165 * @tgid: the tgid of the specified process (Not currently in use).
166 * @spg_id: the share group that the memory is shared to.
167 *
168 * Return: the shared target user address to start at
169 *
170 * Share kernel memory to current task if spg_id == SPG_ID_NONE
171 * or SPG_ID_DEFAULT in multi-group mode.
172 *
173 * Return:
174 * * if succeed, return the shared user address to start at.
175 * * if fail, return the pointer of -errno.
> 176 */
177 void *mg_sp_make_share_k2u(unsigned long kva, unsigned long size,
178 unsigned long sp_flags, int tgid, int spg_id)
179 {
180 return ERR_PTR(-EOPNOTSUPP);
181 }
182 EXPORT_SYMBOL_GPL(mg_sp_make_share_k2u);
183
184 /**
185 * mg_sp_make_share_u2k() - Share user memory of a specified process to kernel.
186 * @uva: the VA of shared user memory
187 * @size: the size of shared user memory
188 * @tgid: the tgid of the specified process(Not currently in use)
189 *
190 * Return:
191 * * if success, return the starting kernel address of the shared memory.
192 * * if failed, return the pointer of -errno.
193 */
194 void *mg_sp_make_share_u2k(unsigned long uva, unsigned long size, int tgid)
195 {
196 return ERR_PTR(-EOPNOTSUPP);
197 }
198 EXPORT_SYMBOL_GPL(mg_sp_make_share_u2k);
199
200 /**
201 * mg_sp_unshare() - Unshare the kernel or user memory which shared by calling
202 * sp_make_share_{k2u,u2k}().
203 * @va: the specified virtual address of memory
204 * @size: the size of unshared memory
205 *
206 * Use spg_id of current thread if spg_id == SPG_ID_DEFAULT.
207 *
208 * Return: 0 for success, -errno on failure.
209 */
210 int mg_sp_unshare(unsigned long va, unsigned long size, int spg_id)
> 211 {
212 return -EOPNOTSUPP;
213 }
214 EXPORT_SYMBOL_GPL(mg_sp_unshare);
215
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 10/10] mm/page_cache_limit.c:35:5: warning: no previous prototype for function 'cache_reclaim_enable_handler'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Ze,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 610575a82bdf3c3be06ce9559609d5bfa65472e8
commit: 621647ce254f1d347ae9bc3d328c09cbb2732487 [10/10] mm: support periodical memory reclaim
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20251225/202512251637.3XaOXOTN-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512251637.3XaOXOTN-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/202512251637.3XaOXOTN-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from mm/page_cache_limit.c:6:
In file included from include/linux/mm.h:2181:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> mm/page_cache_limit.c:35:5: warning: no previous prototype for function 'cache_reclaim_enable_handler' [-Wmissing-prototypes]
35 | int cache_reclaim_enable_handler(struct ctl_table *table, int write,
| ^
mm/page_cache_limit.c:35:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
35 | int cache_reclaim_enable_handler(struct ctl_table *table, int write,
| ^
| static
>> mm/page_cache_limit.c:51:5: warning: no previous prototype for function 'cache_reclaim_sysctl_handler' [-Wmissing-prototypes]
51 | int cache_reclaim_sysctl_handler(struct ctl_table *table, int write,
| ^
mm/page_cache_limit.c:51:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
51 | int cache_reclaim_sysctl_handler(struct ctl_table *table, int write,
| ^
| static
7 warnings generated.
vim +/cache_reclaim_enable_handler +35 mm/page_cache_limit.c
34
> 35 int cache_reclaim_enable_handler(struct ctl_table *table, int write,
36 void *buffer, size_t *length, loff_t *ppos)
37 {
38 int ret;
39
40 ret = proc_dointvec_minmax(table, write, buffer, length, ppos);
41 if (ret || !write)
42 return ret;
43
44 if (should_periodical_reclaim())
45 schedule_delayed_work(&shepherd, round_jiffies_relative(
46 (unsigned long)vm_cache_reclaim_s * HZ));
47
48 return 0;
49 }
50
> 51 int cache_reclaim_sysctl_handler(struct ctl_table *table, int write,
52 void *buffer, size_t *length, loff_t *ppos)
53 {
54 int ret;
55
56 ret = proc_dointvec_minmax(table, write, buffer, length, ppos);
57 if (ret || !write)
58 return ret;
59
60 if (should_periodical_reclaim())
61 mod_delayed_work(system_unbound_wq, &shepherd,
62 round_jiffies_relative(
63 (unsigned long)vm_cache_reclaim_s * HZ));
64
65 return ret;
66 }
67
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
25 Dec '25
From: Bart Van Assche <bvanassche(a)acm.org>
mainline inclusion
from mainline-v6.18-rc7
commit 90449f2d1e1f020835cba5417234636937dd657e
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11214
CVE: CVE-2025-40259
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
------------------
sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may
sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead
of disabled.
Reported-by: syzbot+c01f8e6e73f20459912e(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-scsi/691560c4.a70a0220.3124cb.001a.GAE@google…
Cc: Hannes Reinecke <hare(a)suse.de>
Cc: stable(a)vger.kernel.org
Fixes: 97d27b0dd015 ("scsi: sg: close race condition in sg_remove_sfp_usercontext()")
Signed-off-by: Bart Van Assche <bvanassche(a)acm.org>
Link: https://patch.msgid.link/20251113181643.1108973-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/scsi/sg.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 7c9c63be214d..4698b79a62ff 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -2208,9 +2208,17 @@ sg_remove_sfp_usercontext(struct work_struct *work)
write_lock_irqsave(&sfp->rq_list_lock, iflags);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
- sg_finish_rem_req(srp);
list_del(&srp->entry);
+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
+
+ sg_finish_rem_req(srp);
+ /*
+ * sg_rq_end_io() uses srp->parentfp. Hence, only clear
+ * srp->parentfp after blk_mq_free_request() has been called.
+ */
srp->parentfp = NULL;
+
+ write_lock_irqsave(&sfp->rq_list_lock, iflags);
}
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
--
2.39.2
2
1
From: Bart Van Assche <bvanassche(a)acm.org>
stable inclusion
from stable-v5.10.247
commit db6ac8703ab2b473e1ec845f57f6dd961a388d9f
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11214
CVE: CVE-2025-40259
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
commit 90449f2d1e1f020835cba5417234636937dd657e upstream.
sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may
sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead
of disabled.
Reported-by: syzbot+c01f8e6e73f20459912e(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-scsi/691560c4.a70a0220.3124cb.001a.GAE@google…
Cc: Hannes Reinecke <hare(a)suse.de>
Cc: stable(a)vger.kernel.org
Fixes: 97d27b0dd015 ("scsi: sg: close race condition in sg_remove_sfp_usercontext()")
Signed-off-by: Bart Van Assche <bvanassche(a)acm.org>
Link: https://patch.msgid.link/20251113181643.1108973-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/scsi/sg.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index fbd973b184bb..98baa9cd46bf 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -2235,9 +2235,17 @@ sg_remove_sfp_usercontext(struct work_struct *work)
write_lock_irqsave(&sfp->rq_list_lock, iflags);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
- sg_finish_rem_req(srp);
list_del(&srp->entry);
+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
+
+ sg_finish_rem_req(srp);
+ /*
+ * sg_rq_end_io() uses srp->parentfp. Hence, only clear
+ * srp->parentfp after blk_mq_free_request() has been called.
+ */
srp->parentfp = NULL;
+
+ write_lock_irqsave(&sfp->rq_list_lock, iflags);
}
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
--
2.39.2
2
1
From: Bart Van Assche <bvanassche(a)acm.org>
stable inclusion
from stable-v6.6.118
commit b343cee5df7e750d9033fba33e96fc4399fa88a5
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11214
CVE: CVE-2025-40259
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
commit 90449f2d1e1f020835cba5417234636937dd657e upstream.
sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may
sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead
of disabled.
Reported-by: syzbot+c01f8e6e73f20459912e(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-scsi/691560c4.a70a0220.3124cb.001a.GAE@google…
Cc: Hannes Reinecke <hare(a)suse.de>
Cc: stable(a)vger.kernel.org
Fixes: 97d27b0dd015 ("scsi: sg: close race condition in sg_remove_sfp_usercontext()")
Signed-off-by: Bart Van Assche <bvanassche(a)acm.org>
Link: https://patch.msgid.link/20251113181643.1108973-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/scsi/sg.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 62574886a911..9258a1a8c23c 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -2212,9 +2212,17 @@ sg_remove_sfp_usercontext(struct work_struct *work)
write_lock_irqsave(&sfp->rq_list_lock, iflags);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
- sg_finish_rem_req(srp);
list_del(&srp->entry);
+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
+
+ sg_finish_rem_req(srp);
+ /*
+ * sg_rq_end_io() uses srp->parentfp. Hence, only clear
+ * srp->parentfp after blk_mq_free_request() has been called.
+ */
srp->parentfp = NULL;
+
+ write_lock_irqsave(&sfp->rq_list_lock, iflags);
}
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
--
2.39.2
2
1
[PATCH openEuler-1.0-LTS] md/raid10: fix null-ptr-deref in raid10_sync_request
by Zheng Qixing 25 Dec '25
by Zheng Qixing 25 Dec '25
25 Dec '25
From: Li Nan <linan122(a)huawei.com>
stable inclusion
from stable-v4.19.283
commit 38d33593260536840b49fd1dcac9aedfd14a9d42
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11456
CVE: CVE-2023-53832
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
commit a405c6f0229526160aa3f177f65e20c86fce84c5 upstream.
init_resync() inits mempool and sets conf->have_replacemnt at the beginning
of sync, close_sync() frees the mempool when sync is completed.
After [1] recovery might be skipped and init_resync() is called but
close_sync() is not. null-ptr-deref occurs with r10bio->dev[i].repl_bio.
The following is one way to reproduce the issue.
1) create a array, wait for resync to complete, mddev->recovery_cp is set
to MaxSector.
2) recovery is woken and it is skipped. conf->have_replacement is set to
0 in init_resync(). close_sync() not called.
3) some io errors and rdev A is set to WantReplacement.
4) a new device is added and set to A's replacement.
5) recovery is woken, A have replacement, but conf->have_replacemnt is
0. r10bio->dev[i].repl_bio will not be alloced and null-ptr-deref
occurs.
Fix it by not calling init_resync() if recovery skipped.
[1] commit 7e83ccbecd60 ("md/raid10: Allow skipping recovery when clean arrays are assembled")
Fixes: 7e83ccbecd60 ("md/raid10: Allow skipping recovery when clean arrays are assembled")
Cc: stable(a)vger.kernel.org
Signed-off-by: Li Nan <linan122(a)huawei.com>
Signed-off-by: Song Liu <song(a)kernel.org>
Link: https://lore.kernel.org/r/20230222041000.3341651-3-linan666@huaweicloud.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/md/raid10.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 5f0a20174979..67493be59f7f 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -2989,10 +2989,6 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
sector_t chunk_mask = conf->geo.chunk_mask;
int page_idx = 0;
- if (!mempool_initialized(&conf->r10buf_pool))
- if (init_resync(conf))
- return 0;
-
/*
* Allow skipping a full rebuild for incremental assembly
* of a clean array, like RAID1 does.
@@ -3008,6 +3004,10 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
return mddev->dev_sectors - sector_nr;
}
+ if (!mempool_initialized(&conf->r10buf_pool))
+ if (init_resync(conf))
+ return 0;
+
skipped:
max_sector = mddev->dev_sectors;
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ||
--
2.39.2
2
1
[openeuler:openEuler-1.0-LTS 1942/1942] arch/x86/kernel/cpu/hygon.c:439:14: warning: no previous prototype for function 'get_nt_block_copy_mini_len'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi qiuzhiteng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: 1e3cb18ebe2976b3294e85c3d162736cc3c7c92b [1942/1942] x86: Enhanced copy capabilities for Hygon processor
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20251225/202512251003.lVv73hTo-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512251003.lVv73hTo-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/202512251003.lVv73hTo-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:353:9: note: previous definition is here
353 | #define __SANITIZE_ADDRESS__ 1
| ^
arch/x86/kernel/cpu/hygon.c:434:6: warning: no previous prototype for function 'set_c86_features_para_invalid' [-Wmissing-prototypes]
434 | void set_c86_features_para_invalid(void)
| ^
arch/x86/kernel/cpu/hygon.c:434:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
434 | void set_c86_features_para_invalid(void)
| ^
| static
>> arch/x86/kernel/cpu/hygon.c:439:14: warning: no previous prototype for function 'get_nt_block_copy_mini_len' [-Wmissing-prototypes]
439 | unsigned int get_nt_block_copy_mini_len(void)
| ^
arch/x86/kernel/cpu/hygon.c:439:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
439 | unsigned int get_nt_block_copy_mini_len(void)
| ^
| static
3 warnings generated.
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:353:9: note: previous definition is here
353 | #define __SANITIZE_ADDRESS__ 1
| ^
1 warning generated.
--
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:353:9: note: previous definition is here
353 | #define __SANITIZE_ADDRESS__ 1
| ^
>> arch/x86/kernel/fpu/core.c:149:14: warning: no previous prototype for function 'get_fpustate_free_space' [-Wmissing-prototypes]
149 | unsigned int get_fpustate_free_space(struct fpu *fpu)
| ^
arch/x86/kernel/fpu/core.c:149:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
149 | unsigned int get_fpustate_free_space(struct fpu *fpu)
| ^
| static
>> arch/x86/kernel/fpu/core.c:175:14: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
175 | struct fpu *fpu = ¤t->thread.fpu;
| ^
3 warnings generated.
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:59:
include/linux/compiler-clang.h:20:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
20 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:353:9: note: previous definition is here
353 | #define __SANITIZE_ADDRESS__ 1
| ^
1 warning generated.
vim +/get_nt_block_copy_mini_len +439 arch/x86/kernel/cpu/hygon.c
438
> 439 unsigned int get_nt_block_copy_mini_len(void)
440 {
441 unsigned int mini_len = hygon_c86_data.nt_cpy_mini_len;
442
443 return mini_len;
444 }
445 EXPORT_SYMBOL_GPL(get_nt_block_copy_mini_len);
446
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
25 Dec '25
From: Dapeng Mi <dapeng1.mi(a)linux.intel.com>
mainline inclusion
from mainline-v6.18-rc4
commit 0ba6502ce167fc3d598c08c2cc3b4ed7ca5aa251
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11639
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
When running "perf mem record" command on CWF, the below KASAN
global-out-of-bounds warning is seen.
==================================================================
BUG: KASAN: global-out-of-bounds in cmt_latency_data+0x176/0x1b0
Read of size 4 at addr ffffffffb721d000 by task dtlb/9850
Call Trace:
kasan_report+0xb8/0xf0
cmt_latency_data+0x176/0x1b0
setup_arch_pebs_sample_data+0xf49/0x2560
intel_pmu_drain_arch_pebs+0x577/0xb00
handle_pmi_common+0x6c4/0xc80
The issue is caused by below code in __grt_latency_data(). The code
tries to access x86_hybrid_pmu structure which doesn't exist on
non-hybrid platform like CWF.
WARN_ON_ONCE(hybrid_pmu(event->pmu)->pmu_type == hybrid_big)
So add is_hybrid() check before calling this WARN_ON_ONCE to fix the
global-out-of-bounds access issue.
Fixes: 090262439f66 ("perf/x86/intel: Rename model-specific pebs_latency_data functions")
Reported-by: Xudong Hao <xudong.hao(a)intel.com>
Signed-off-by: Dapeng Mi <dapeng1.mi(a)linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz(a)infradead.org>
Reviewed-by: Zide Chen <zide.chen(a)intel.com>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20251028064214.1451968-1-dapeng1.mi@linux.intel.com
Signed-off-by: Luo Gengkun <luogengkun2(a)huawei.com>
---
arch/x86/events/intel/ds.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/events/intel/ds.c b/arch/x86/events/intel/ds.c
index 3010a90a339a..c313aee99d9a 100644
--- a/arch/x86/events/intel/ds.c
+++ b/arch/x86/events/intel/ds.c
@@ -304,7 +304,8 @@ static u64 __grt_latency_data(struct perf_event *event, u64 status,
{
u64 val;
- WARN_ON_ONCE(hybrid_pmu(event->pmu)->pmu_type == hybrid_big);
+ WARN_ON_ONCE(is_hybrid() &&
+ hybrid_pmu(event->pmu)->pmu_type == hybrid_big);
dse &= PERF_PEBS_DATA_SOURCE_GRT_MASK;
val = hybrid_var(event->pmu, pebs_data_source)[dse];
--
2.34.1
2
1
From: Tong Tiangen <tongtiangen(a)huawei.com>
hulk inclusion
category: feature
bugzilla: https://atomgit.com/openeuler/kernel/issues/7837
-------------------------------
Large memory migration imposes significant overhead on the CPU. This patch
introduces enhancements to the page migration by offloading the copy to
UDMA hardware which based on the DMA engine framework, and a new migration
mode has been introduced, If DMA migration fails, it will fall back to CPU
migration.
DMA migration supports both asynchronous and synchronous modes for
subsequent debugging purposes.
Signed-off-by: Tong Tiangen <tongtiangen(a)huawei.com>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
arch/arm64/configs/openeuler_defconfig | 1 +
arch/x86/configs/openeuler_defconfig | 1 +
include/linux/migrate_mode.h | 7 ++
include/linux/mm.h | 8 ++
mm/Kconfig | 12 +++
mm/Makefile | 1 +
mm/migrate.c | 9 ++
mm/migrate_dma.c | 143 +++++++++++++++++++++++++
8 files changed, 182 insertions(+)
create mode 100644 mm/migrate_dma.c
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index c25ac4ff6c2f..08af29cf2776 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -1186,6 +1186,7 @@ CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
+CONFIG_MIGRATE_PAGES_DMA_OFFLOADING=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
diff --git a/arch/x86/configs/openeuler_defconfig b/arch/x86/configs/openeuler_defconfig
index 612ef34a6c73..7d9ce1496e18 100644
--- a/arch/x86/configs/openeuler_defconfig
+++ b/arch/x86/configs/openeuler_defconfig
@@ -1147,6 +1147,7 @@ CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
+# CONFIG_MIGRATE_PAGES_DMA_OFFLOADING is not set
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
diff --git a/include/linux/migrate_mode.h b/include/linux/migrate_mode.h
index 0f577f932bb4..5283e62b7d1b 100644
--- a/include/linux/migrate_mode.h
+++ b/include/linux/migrate_mode.h
@@ -19,6 +19,13 @@ enum migrate_mode {
MIGRATE_SYNC_NO_COPY,
};
+/*
+ * Actually the macro MIGRATE_ASYNC_DMA_OFFLOADING definition should be
+ * placed within enum migrate_mode, but for KABI compatibility, it is
+ * defined here alone.
+ */
+#define MIGRATE_ASYNC_DMA_OFFLOADING (10)
+
enum migrate_reason {
MR_COMPACTION,
MR_MEMORY_FAILURE,
diff --git a/include/linux/mm.h b/include/linux/mm.h
index c0040a2014c4..036822cb1b9d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1330,6 +1330,14 @@ void put_pages_list(struct list_head *pages);
void split_page(struct page *page, unsigned int order);
void folio_copy(struct folio *dst, struct folio *src);
int folio_mc_copy(struct folio *dst, struct folio *src);
+#ifdef CONFIG_MIGRATE_PAGES_DMA_OFFLOADING
+int folio_dma_copy(struct folio *dst, struct folio *src);
+#else
+static inline int folio_dma_copy(struct folio *dst, struct folio *src)
+{
+ return -ENODEV;
+}
+#endif
unsigned long nr_free_buffer_pages(void);
diff --git a/mm/Kconfig b/mm/Kconfig
index 4eb0642b71e5..12438e8dff88 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -696,6 +696,18 @@ config MIGRATION
pages as migration can relocate pages to satisfy a huge page
allocation instead of reclaiming.
+config MIGRATE_PAGES_DMA_OFFLOADING
+ bool "Support to use DMA channels for page migration"
+ depends on DMA_ENGINE
+ depends on MIGRATION
+ default y
+ help
+ This config enhances page migration by introducing a new mode
+ that offloads copy operations to UB-DMA hardware based on the
+ DMA engine framework, with automatic fallback to CPU migration
+ if DMA migration fails. DMA migration supports both asynchronous
+ and synchronous modes to facilitate debugging.
+
config DEVICE_MIGRATION
def_bool MIGRATION && ZONE_DEVICE
diff --git a/mm/Makefile b/mm/Makefile
index e45cdeda47b7..dd81f8c33e03 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -92,6 +92,7 @@ obj-$(CONFIG_FAILSLAB) += failslab.o
obj-$(CONFIG_FAIL_PAGE_ALLOC) += fail_page_alloc.o
obj-$(CONFIG_MEMTEST) += memtest.o
obj-$(CONFIG_MIGRATION) += migrate.o
+obj-$(CONFIG_MIGRATE_PAGES_DMA_OFFLOADING) += migrate_dma.o
obj-$(CONFIG_NUMA) += memory-tiers.o
obj-$(CONFIG_DEVICE_MIGRATION) += migrate_device.o
obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o khugepaged.o
diff --git a/mm/migrate.c b/mm/migrate.c
index 148e55fab012..216f45c9570f 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -583,6 +583,15 @@ static int folio_migrate_mc_copy(struct folio *dst, struct folio *src,
if (mode == MIGRATE_SYNC_NO_COPY)
return 0;
+ if (mode == MIGRATE_ASYNC_DMA_OFFLOADING) {
+ if (folio_test_hugetlb(src) ||
+ folio_test_pmd_mappable(src)) {
+ /* if dma offloading fail, fallback */
+ if (!folio_dma_copy(dst, src))
+ return 0;
+ }
+ }
+
return folio_mc_copy(dst, src);
}
diff --git a/mm/migrate_dma.c b/mm/migrate_dma.c
new file mode 100644
index 000000000000..796cd9a5477e
--- /dev/null
+++ b/mm/migrate_dma.c
@@ -0,0 +1,143 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Support to use DMA channels for page migration.
+ *
+ * Copyright (C) 2025 Huawei Limited
+ */
+
+#define pr_fmt(fmt) "migrate_dma: " fmt
+
+#include <linux/dmaengine.h>
+#include <linux/dma-mapping.h>
+
+/* DMA channel track its transfers done */
+struct dma_channel_work {
+ struct dma_chan *chan;
+ enum dma_status status;
+ struct completion done;
+};
+
+static void folios_dma_copy_completion_callback(void *param,
+ const struct dmaengine_result *result)
+{
+ struct dma_channel_work *chan_work = param;
+
+ if (result) {
+ enum dmaengine_tx_result dma_res = result->result;
+
+ if (dma_res == DMA_TRANS_NOERROR)
+ chan_work->status = DMA_COMPLETE;
+ else
+ chan_work->status = DMA_ERROR;
+ }
+
+ complete(&chan_work->done);
+}
+
+static int process_folio_dma_transfer(struct dma_channel_work *chan_work,
+ struct folio *src, struct folio *dst)
+{
+ struct dma_chan *chan = chan_work->chan;
+ struct device *dev = dmaengine_get_dma_device(chan);
+ enum dma_ctrl_flags flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
+ struct dma_async_tx_descriptor *tx;
+ dma_addr_t src_handle, dst_handle;
+ size_t size = folio_size(src);
+ int ret;
+
+ src_handle = dma_map_page(dev, &src->page, 0, size, DMA_TO_DEVICE);
+ if (dma_mapping_error(dev, src_handle)) {
+ dev_err(dev, "map dma src page error.\n");
+ return -ENOMEM;
+ }
+
+ dst_handle = dma_map_page(dev, &dst->page, 0, size, DMA_FROM_DEVICE);
+ if (dma_mapping_error(dev, dst_handle)) {
+ dev_err(dev, "map dma dst page error.\n");
+ ret = -ENOMEM;
+ goto out_unmap;
+ }
+
+ tx = dmaengine_prep_dma_memcpy(chan, dst_handle, src_handle,
+ size, flags);
+ if (unlikely(!tx)) {
+ dev_err(dev, "prep dma memcpy error.\n");
+ ret = -EBUSY;
+ goto out_unmap_all;
+ }
+
+ tx->callback_result = folios_dma_copy_completion_callback;
+ tx->callback_param = chan_work;
+ init_completion(&chan_work->done);
+ chan_work->status = DMA_ERROR;
+
+ if (dma_submit_error(dmaengine_submit(tx))) {
+ dev_err(dev, "dma submit error.\n");
+ ret = -EINVAL;
+ goto out_unmap_all;
+ }
+
+ dma_async_issue_pending(chan);
+ if (!wait_for_completion_timeout(&chan_work->done,
+ msecs_to_jiffies(1000))) {
+ ret = -ETIMEDOUT;
+ goto out_unmap_all;
+ }
+
+ ret = (chan_work->status == DMA_COMPLETE) ? 0 : -EPROTO;
+
+out_unmap_all:
+ dma_unmap_page(dev, dst_handle, size, DMA_FROM_DEVICE);
+out_unmap:
+ dma_unmap_page(dev, src_handle, size, DMA_TO_DEVICE);
+
+ return ret;
+}
+
+static bool folio_dma_chan_filter(struct dma_chan *chan, void *param)
+{
+ return !strcmp(dev_name(chan->device->dev), "ub_dma_device");
+}
+
+int folio_dma_copy(struct folio *dst, struct folio *src)
+{
+ struct dma_channel_work *chan_work;
+ struct dma_slave_config dma_cfg;
+ struct dma_chan *chan;
+ dma_cap_mask_t mask;
+ int ret = -ENODEV;
+
+ dma_cap_zero(mask);
+ dma_cap_set(DMA_MEMCPY, mask);
+ chan = dma_request_channel(mask, folio_dma_chan_filter, NULL);
+ if (!chan) {
+ pr_err("failed to allocate dma channel.\n");
+ return ret;
+ }
+
+ memset(&dma_cfg, 0, sizeof(dma_cfg));
+ dma_cfg.direction = DMA_MEM_TO_MEM;
+ ret = dmaengine_slave_config(chan, &dma_cfg);
+ if (ret) {
+ pr_err("failed to config dma channel.\n");
+ goto out_release;
+ }
+
+ chan_work = kmalloc(sizeof(*chan_work), GFP_KERNEL);
+ if (unlikely(!chan_work)) {
+ pr_err("failed to allocate memory for chan work.\n");
+ goto out_release;
+ }
+
+ chan_work->chan = chan;
+ ret = process_folio_dma_transfer(chan_work, src, dst);
+ if (unlikely(ret))
+ pr_err("failed to process folio dma transfer.\n");
+
+ kfree(chan_work);
+out_release:
+ dma_release_channel(chan);
+
+ return ret;
+}
+EXPORT_SYMBOL(folio_dma_copy);
--
2.25.1
2
1
[PATCH OLK-6.6] bpf: Free special fields when update [lru_,]percpu_hash maps
by Luo Gengkun 25 Dec '25
by Luo Gengkun 25 Dec '25
25 Dec '25
From: Leon Hwang <leon.hwang(a)linux.dev>
mainline inclusion
from mainline-v6.19-rc1
commit 6af6e49a76c9af7d42eb923703e7648cb2bf401a
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/12705
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
As [lru_,]percpu_hash maps support BPF_KPTR_{REF,PERCPU}, missing
calls to 'bpf_obj_free_fields()' in 'pcpu_copy_value()' could cause the
memory referenced by BPF_KPTR_{REF,PERCPU} fields to be held until the
map gets freed.
Fix this by calling 'bpf_obj_free_fields()' after
'copy_map_value[,_long]()' in 'pcpu_copy_value()'.
Fixes: 65334e64a493 ("bpf: Support kptrs in percpu hashmap and percpu LRU hashmap")
Signed-off-by: Leon Hwang <leon.hwang(a)linux.dev>
Acked-by: Yonghong Song <yonghong.song(a)linux.dev>
Link: https://lore.kernel.org/r/20251105151407.12723-2-leon.hwang@linux.dev
Signed-off-by: Alexei Starovoitov <ast(a)kernel.org>
Signed-off-by: Luo Gengkun <luogengkun2(a)huawei.com>
---
kernel/bpf/hashtab.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/kernel/bpf/hashtab.c b/kernel/bpf/hashtab.c
index fdc74aeaa164..46e833e5666b 100644
--- a/kernel/bpf/hashtab.c
+++ b/kernel/bpf/hashtab.c
@@ -957,15 +957,21 @@ static void free_htab_elem(struct bpf_htab *htab, struct htab_elem *l)
static void pcpu_copy_value(struct bpf_htab *htab, void __percpu *pptr,
void *value, bool onallcpus)
{
+ void *ptr;
+
if (!onallcpus) {
/* copy true value_size bytes */
- copy_map_value(&htab->map, this_cpu_ptr(pptr), value);
+ ptr = this_cpu_ptr(pptr);
+ copy_map_value(&htab->map, ptr, value);
+ bpf_obj_free_fields(htab->map.record, ptr);
} else {
u32 size = round_up(htab->map.value_size, 8);
int off = 0, cpu;
for_each_possible_cpu(cpu) {
- copy_map_value_long(&htab->map, per_cpu_ptr(pptr, cpu), value + off);
+ ptr = per_cpu_ptr(pptr, cpu);
+ copy_map_value_long(&htab->map, ptr, value + off);
+ bpf_obj_free_fields(htab->map.record, ptr);
off += size;
}
}
--
2.34.1
2
1
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/net/ethernet/microchip/lan743x_ptp.c:985:6: warning: no previous prototype for function 'lan743x_ptp_set_sync_ts_insert'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Bryan,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: 07624df1c9efd4b7f2f6762581587c590b03c7a2 [1942/1942] lan743x: lan743x: Add PTP support
config: x86_64-randconfig-071-20251213 (https://download.01.org/0day-ci/archive/20251225/202512250737.MecjkLdA-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512250737.MecjkLdA-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/202512250737.MecjkLdA-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:78:
include/linux/compiler-clang.h:25:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
25 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:353:9: note: previous definition is here
353 | #define __SANITIZE_ADDRESS__ 1
| ^
drivers/net/ethernet/microchip/lan743x_ptp.c:781:28: error: no member named 'ptp_clock' in 'struct lan743x_ptp'
781 | ptp_schedule_worker(ptp->ptp_clock, 0);
| ~~~ ^
drivers/net/ethernet/microchip/lan743x_ptp.c:879:6: warning: unused variable 'ret' [-Wunused-variable]
879 | int ret = -ENODEV;
| ^~~
>> drivers/net/ethernet/microchip/lan743x_ptp.c:985:6: warning: no previous prototype for function 'lan743x_ptp_set_sync_ts_insert' [-Wmissing-prototypes]
985 | void lan743x_ptp_set_sync_ts_insert(struct lan743x_adapter *adapter,
| ^
drivers/net/ethernet/microchip/lan743x_ptp.c:985:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
985 | void lan743x_ptp_set_sync_ts_insert(struct lan743x_adapter *adapter,
| ^
| static
3 warnings and 1 error generated.
vim +/lan743x_ptp_set_sync_ts_insert +985 drivers/net/ethernet/microchip/lan743x_ptp.c
984
> 985 void lan743x_ptp_set_sync_ts_insert(struct lan743x_adapter *adapter,
986 bool ts_insert_enable)
987 {
988 u32 ptp_tx_mod = lan743x_csr_read(adapter, PTP_TX_MOD);
989
990 if (ts_insert_enable)
991 ptp_tx_mod |= PTP_TX_MOD_TX_PTP_SYNC_TS_INSERT_;
992 else
993 ptp_tx_mod &= ~PTP_TX_MOD_TX_PTP_SYNC_TS_INSERT_;
994
995 lan743x_csr_write(adapter, PTP_TX_MOD, ptp_tx_mod);
996 }
997
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3406/3406] kernel/cgroup/cgroup.c:6734: warning: Function parameter or member 'fd' not described in 'cgroup_get_from_fd_v2'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Liu,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 56fee14453059f894b018d08071826d47e634800 [3406/3406] cgroup: make cgroup_bpf_prog_attach work when cgroup2 is not mounted
config: arm64-randconfig-003-20251211 (https://download.01.org/0day-ci/archive/20251225/202512250139.hi51ZBjo-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512250139.hi51ZBjo-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/202512250139.hi51ZBjo-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/cgroup/cgroup.c:6217: warning: Function parameter or member 'f' not described in 'cgroup_get_from_file'
kernel/cgroup/cgroup.c:6369: warning: Function parameter or member 'kargs' not described in 'cgroup_can_fork'
kernel/cgroup/cgroup.c:6430: warning: Function parameter or member 'kargs' not described in 'cgroup_post_fork'
kernel/cgroup/cgroup.c:6716: warning: Function parameter or member 'fd' not described in 'cgroup_get_from_fd'
>> kernel/cgroup/cgroup.c:6734: warning: Function parameter or member 'fd' not described in 'cgroup_get_from_fd_v2'
vim +6734 kernel/cgroup/cgroup.c
6729
6730 /**
6731 * same with cgroup_get_from_fd, only add cgrp_dfl_visible check
6732 */
6733 struct cgroup *cgroup_get_from_fd_v2(int fd)
> 6734 {
6735 struct cgroup *cgrp = cgroup_v1v2_get_from_fd(fd);
6736
6737 if (IS_ERR(cgrp))
6738 return ERR_CAST(cgrp);
6739
6740 if (!cgroup_on_dfl(cgrp)) {
6741 cgroup_put(cgrp);
6742 if (cgrp_dfl_visible)
6743 return ERR_PTR(-EBADF);
6744
6745 cgrp = &cgrp_dfl_root.cgrp;
6746 cgroup_get(cgrp);
6747 }
6748 return cgrp;
6749 }
6750 EXPORT_SYMBOL_GPL(cgroup_get_from_fd_v2);
6751
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3406/3406] kernel/task_work.c:84: warning: Function parameter or member 'data' not described in 'task_work_cancel_match'
by kernel test robot 25 Dec '25
by kernel test robot 25 Dec '25
25 Dec '25
Hi Jens,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 8802b2dc61376ea4727dba6630f81697da540e85 [3406/3406] task_work: add helper for more targeted task_work canceling
config: arm64-randconfig-003-20251211 (https://download.01.org/0day-ci/archive/20251225/202512250050.7RnKXs39-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251225/202512250050.7RnKXs39-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/202512250050.7RnKXs39-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/task_work.c:84: warning: Function parameter or member 'data' not described in 'task_work_cancel_match'
vim +84 kernel/task_work.c
e73f8959af0439 Oleg Nesterov 2012-05-11 71
892f6668f3a708 Oleg Nesterov 2013-09-11 72 /**
8802b2dc61376e Jens Axboe 2023-02-28 73 * task_work_cancel_match - cancel a pending work added by task_work_add()
892f6668f3a708 Oleg Nesterov 2013-09-11 74 * @task: the task which should execute the work
8802b2dc61376e Jens Axboe 2023-02-28 75 * @match: match function to call
892f6668f3a708 Oleg Nesterov 2013-09-11 76 *
892f6668f3a708 Oleg Nesterov 2013-09-11 77 * RETURNS:
892f6668f3a708 Oleg Nesterov 2013-09-11 78 * The found work or NULL if not found.
892f6668f3a708 Oleg Nesterov 2013-09-11 79 */
67d1214551e800 Al Viro 2012-06-27 80 struct callback_head *
8802b2dc61376e Jens Axboe 2023-02-28 81 task_work_cancel_match(struct task_struct *task,
8802b2dc61376e Jens Axboe 2023-02-28 82 bool (*match)(struct callback_head *, void *data),
8802b2dc61376e Jens Axboe 2023-02-28 83 void *data)
e73f8959af0439 Oleg Nesterov 2012-05-11 @84 {
ac3d0da8f3290b Oleg Nesterov 2012-08-26 85 struct callback_head **pprev = &task->task_works;
205e550a0fb469 Oleg Nesterov 2013-09-11 86 struct callback_head *work;
e73f8959af0439 Oleg Nesterov 2012-05-11 87 unsigned long flags;
61e96496d3c949 Oleg Nesterov 2016-08-02 88
61e96496d3c949 Oleg Nesterov 2016-08-02 89 if (likely(!task->task_works))
61e96496d3c949 Oleg Nesterov 2016-08-02 90 return NULL;
ac3d0da8f3290b Oleg Nesterov 2012-08-26 91 /*
ac3d0da8f3290b Oleg Nesterov 2012-08-26 92 * If cmpxchg() fails we continue without updating pprev.
ac3d0da8f3290b Oleg Nesterov 2012-08-26 93 * Either we raced with task_work_add() which added the
ac3d0da8f3290b Oleg Nesterov 2012-08-26 94 * new entry before this work, we will find it again. Or
9da33de62431c7 Oleg Nesterov 2012-08-26 95 * we raced with task_work_run(), *pprev == NULL/exited.
ac3d0da8f3290b Oleg Nesterov 2012-08-26 96 */
e73f8959af0439 Oleg Nesterov 2012-05-11 97 raw_spin_lock_irqsave(&task->pi_lock, flags);
506458efaf153c Will Deacon 2017-10-24 98 while ((work = READ_ONCE(*pprev))) {
8802b2dc61376e Jens Axboe 2023-02-28 99 if (!match(work, data))
ac3d0da8f3290b Oleg Nesterov 2012-08-26 100 pprev = &work->next;
ac3d0da8f3290b Oleg Nesterov 2012-08-26 101 else if (cmpxchg(pprev, work, work->next) == work)
158e1645e07f3e Al Viro 2012-06-27 102 break;
158e1645e07f3e Al Viro 2012-06-27 103 }
e73f8959af0439 Oleg Nesterov 2012-05-11 104 raw_spin_unlock_irqrestore(&task->pi_lock, flags);
ac3d0da8f3290b Oleg Nesterov 2012-08-26 105
ac3d0da8f3290b Oleg Nesterov 2012-08-26 106 return work;
e73f8959af0439 Oleg Nesterov 2012-05-11 107 }
e73f8959af0439 Oleg Nesterov 2012-05-11 108
:::::: The code at line 84 was first introduced by commit
:::::: e73f8959af0439d114847eab5a8a5ce48f1217c4 task_work_add: generic process-context callbacks
:::::: TO: Oleg Nesterov <oleg(a)redhat.com>
:::::: CC: Al Viro <viro(a)zeniv.linux.org.uk>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[PATCH OLK-6.6] [Backport] nvmet-fc: avoid scheduling association deletion twice
by Chen Jinghuang 24 Dec '25
by Chen Jinghuang 24 Dec '25
24 Dec '25
From: Daniel Wagner <wagi(a)kernel.org>
stable inclusion
from stable-v6.6.117
commit 601ed47b2363c24d948d7bac0c23abc8bd459570
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11412
CVE: CVE-2025-40343
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
[ Upstream commit f2537be4f8421f6495edfa0bc284d722f253841d ]
When forcefully shutting down a port via the configfs interface,
nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and
then nvmet_disable_port(). Both functions will eventually schedule all
remaining associations for deletion.
The current implementation checks whether an association is about to be
removed, but only after the work item has already been scheduled. As a
result, it is possible for the first scheduled work item to free all
resources, and then for the same work item to be scheduled again for
deletion.
Because the association list is an RCU list, it is not possible to take
a lock and remove the list entry directly, so it cannot be looked up
again. Instead, a flag (terminating) must be used to determine whether
the association is already in the process of being deleted.
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki(a)wdc.com>
Closes: https://lore.kernel.org/all/rsdinhafrtlguauhesmrrzkybpnvwantwmyfq2ih5areggh…
Reviewed-by: Hannes Reinecke <hare(a)suse.de>
Signed-off-by: Daniel Wagner <wagi(a)kernel.org>
Signed-off-by: Keith Busch <kbusch(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Chen Jinghuang <chenjinghuang2(a)huawei.com>
---
drivers/nvme/target/fc.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index a15e764bae35..188b9f1bdaca 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1090,6 +1090,14 @@ nvmet_fc_delete_assoc_work(struct work_struct *work)
static void
nvmet_fc_schedule_delete_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
+ int terminating;
+
+ terminating = atomic_xchg(&assoc->terminating, 1);
+
+ /* if already terminating, do nothing */
+ if (terminating)
+ return;
+
nvmet_fc_tgtport_get(assoc->tgtport);
if (!queue_work(nvmet_wq, &assoc->del_work))
nvmet_fc_tgtport_put(assoc->tgtport);
@@ -1209,13 +1217,7 @@ nvmet_fc_delete_target_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
struct nvmet_fc_tgtport *tgtport = assoc->tgtport;
unsigned long flags;
- int i, terminating;
-
- terminating = atomic_xchg(&assoc->terminating, 1);
-
- /* if already terminating, do nothing */
- if (terminating)
- return;
+ int i;
spin_lock_irqsave(&tgtport->lock, flags);
list_del_rcu(&assoc->a_list);
--
2.34.1
2
1
[PATCH openEuler-1.0-LTS] md/raid10: fix null-ptr-deref in raid10_sync_request
by Zheng Qixing 24 Dec '25
by Zheng Qixing 24 Dec '25
24 Dec '25
From: Li Nan <linan122(a)huawei.com>
stable inclusion
from stable-v4.19.283
commit 38d33593260536840b49fd1dcac9aedfd14a9d42
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDBOQL
CVE: CVE-2023-53832
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
commit a405c6f0229526160aa3f177f65e20c86fce84c5 upstream.
init_resync() inits mempool and sets conf->have_replacemnt at the beginning
of sync, close_sync() frees the mempool when sync is completed.
After [1] recovery might be skipped and init_resync() is called but
close_sync() is not. null-ptr-deref occurs with r10bio->dev[i].repl_bio.
The following is one way to reproduce the issue.
1) create a array, wait for resync to complete, mddev->recovery_cp is set
to MaxSector.
2) recovery is woken and it is skipped. conf->have_replacement is set to
0 in init_resync(). close_sync() not called.
3) some io errors and rdev A is set to WantReplacement.
4) a new device is added and set to A's replacement.
5) recovery is woken, A have replacement, but conf->have_replacemnt is
0. r10bio->dev[i].repl_bio will not be alloced and null-ptr-deref
occurs.
Fix it by not calling init_resync() if recovery skipped.
[1] commit 7e83ccbecd60 ("md/raid10: Allow skipping recovery when clean arrays are assembled")
Fixes: 7e83ccbecd60 ("md/raid10: Allow skipping recovery when clean arrays are assembled")
Cc: stable(a)vger.kernel.org
Signed-off-by: Li Nan <linan122(a)huawei.com>
Signed-off-by: Song Liu <song(a)kernel.org>
Link: https://lore.kernel.org/r/20230222041000.3341651-3-linan666@huaweicloud.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/md/raid10.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 5f0a20174979..67493be59f7f 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -2989,10 +2989,6 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
sector_t chunk_mask = conf->geo.chunk_mask;
int page_idx = 0;
- if (!mempool_initialized(&conf->r10buf_pool))
- if (init_resync(conf))
- return 0;
-
/*
* Allow skipping a full rebuild for incremental assembly
* of a clean array, like RAID1 does.
@@ -3008,6 +3004,10 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
return mddev->dev_sectors - sector_nr;
}
+ if (!mempool_initialized(&conf->r10buf_pool))
+ if (init_resync(conf))
+ return 0;
+
skipped:
max_sector = mddev->dev_sectors;
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ||
--
2.39.2
2
1
24 Dec '25
From: Bart Van Assche <bvanassche(a)acm.org>
mainline inclusion
from mainline-v6.18-rc7
commit 90449f2d1e1f020835cba5417234636937dd657e
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDATPD
CVE: CVE-2025-40259
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
------------------
sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may
sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead
of disabled.
Reported-by: syzbot+c01f8e6e73f20459912e(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-scsi/691560c4.a70a0220.3124cb.001a.GAE@google…
Cc: Hannes Reinecke <hare(a)suse.de>
Cc: stable(a)vger.kernel.org
Fixes: 97d27b0dd015 ("scsi: sg: close race condition in sg_remove_sfp_usercontext()")
Signed-off-by: Bart Van Assche <bvanassche(a)acm.org>
Link: https://patch.msgid.link/20251113181643.1108973-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/scsi/sg.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 7c9c63be214d..4698b79a62ff 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -2208,9 +2208,17 @@ sg_remove_sfp_usercontext(struct work_struct *work)
write_lock_irqsave(&sfp->rq_list_lock, iflags);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
- sg_finish_rem_req(srp);
list_del(&srp->entry);
+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
+
+ sg_finish_rem_req(srp);
+ /*
+ * sg_rq_end_io() uses srp->parentfp. Hence, only clear
+ * srp->parentfp after blk_mq_free_request() has been called.
+ */
srp->parentfp = NULL;
+
+ write_lock_irqsave(&sfp->rq_list_lock, iflags);
}
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
--
2.39.2
2
1
From: Bart Van Assche <bvanassche(a)acm.org>
stable inclusion
from stable-v5.10.247
commit db6ac8703ab2b473e1ec845f57f6dd961a388d9f
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDATPD
CVE: CVE-2025-40259
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
commit 90449f2d1e1f020835cba5417234636937dd657e upstream.
sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may
sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead
of disabled.
Reported-by: syzbot+c01f8e6e73f20459912e(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-scsi/691560c4.a70a0220.3124cb.001a.GAE@google…
Cc: Hannes Reinecke <hare(a)suse.de>
Cc: stable(a)vger.kernel.org
Fixes: 97d27b0dd015 ("scsi: sg: close race condition in sg_remove_sfp_usercontext()")
Signed-off-by: Bart Van Assche <bvanassche(a)acm.org>
Link: https://patch.msgid.link/20251113181643.1108973-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/scsi/sg.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index fbd973b184bb..98baa9cd46bf 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -2235,9 +2235,17 @@ sg_remove_sfp_usercontext(struct work_struct *work)
write_lock_irqsave(&sfp->rq_list_lock, iflags);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
- sg_finish_rem_req(srp);
list_del(&srp->entry);
+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
+
+ sg_finish_rem_req(srp);
+ /*
+ * sg_rq_end_io() uses srp->parentfp. Hence, only clear
+ * srp->parentfp after blk_mq_free_request() has been called.
+ */
srp->parentfp = NULL;
+
+ write_lock_irqsave(&sfp->rq_list_lock, iflags);
}
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
--
2.39.2
2
1
From: Bart Van Assche <bvanassche(a)acm.org>
stable inclusion
from stable-v6.6.118
commit b343cee5df7e750d9033fba33e96fc4399fa88a5
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDATPD
CVE: CVE-2025-40259
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
commit 90449f2d1e1f020835cba5417234636937dd657e upstream.
sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may
sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead
of disabled.
Reported-by: syzbot+c01f8e6e73f20459912e(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-scsi/691560c4.a70a0220.3124cb.001a.GAE@google…
Cc: Hannes Reinecke <hare(a)suse.de>
Cc: stable(a)vger.kernel.org
Fixes: 97d27b0dd015 ("scsi: sg: close race condition in sg_remove_sfp_usercontext()")
Signed-off-by: Bart Van Assche <bvanassche(a)acm.org>
Link: https://patch.msgid.link/20251113181643.1108973-1-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
drivers/scsi/sg.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 62574886a911..9258a1a8c23c 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -2212,9 +2212,17 @@ sg_remove_sfp_usercontext(struct work_struct *work)
write_lock_irqsave(&sfp->rq_list_lock, iflags);
while (!list_empty(&sfp->rq_list)) {
srp = list_first_entry(&sfp->rq_list, Sg_request, entry);
- sg_finish_rem_req(srp);
list_del(&srp->entry);
+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
+
+ sg_finish_rem_req(srp);
+ /*
+ * sg_rq_end_io() uses srp->parentfp. Hence, only clear
+ * srp->parentfp after blk_mq_free_request() has been called.
+ */
srp->parentfp = NULL;
+
+ write_lock_irqsave(&sfp->rq_list_lock, iflags);
}
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
--
2.39.2
2
1
[PATCH] [Backport] nvmet-fc: avoid scheduling association deletion twice
by Chen Jinghuang 24 Dec '25
by Chen Jinghuang 24 Dec '25
24 Dec '25
From: Daniel Wagner <wagi(a)kernel.org>
stable inclusion
from stable-v6.6.117
commit 601ed47b2363c24d948d7bac0c23abc8bd459570
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11412
CVE: CVE-2025-40343
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
[ Upstream commit f2537be4f8421f6495edfa0bc284d722f253841d ]
When forcefully shutting down a port via the configfs interface,
nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and
then nvmet_disable_port(). Both functions will eventually schedule all
remaining associations for deletion.
The current implementation checks whether an association is about to be
removed, but only after the work item has already been scheduled. As a
result, it is possible for the first scheduled work item to free all
resources, and then for the same work item to be scheduled again for
deletion.
Because the association list is an RCU list, it is not possible to take
a lock and remove the list entry directly, so it cannot be looked up
again. Instead, a flag (terminating) must be used to determine whether
the association is already in the process of being deleted.
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki(a)wdc.com>
Closes: https://lore.kernel.org/all/rsdinhafrtlguauhesmrrzkybpnvwantwmyfq2ih5areggh…
Reviewed-by: Hannes Reinecke <hare(a)suse.de>
Signed-off-by: Daniel Wagner <wagi(a)kernel.org>
Signed-off-by: Keith Busch <kbusch(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Chen Jinghuang <chenjinghuang2(a)huawei.com>
---
drivers/nvme/target/fc.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index a15e764bae35..188b9f1bdaca 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1090,6 +1090,14 @@ nvmet_fc_delete_assoc_work(struct work_struct *work)
static void
nvmet_fc_schedule_delete_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
+ int terminating;
+
+ terminating = atomic_xchg(&assoc->terminating, 1);
+
+ /* if already terminating, do nothing */
+ if (terminating)
+ return;
+
nvmet_fc_tgtport_get(assoc->tgtport);
if (!queue_work(nvmet_wq, &assoc->del_work))
nvmet_fc_tgtport_put(assoc->tgtport);
@@ -1209,13 +1217,7 @@ nvmet_fc_delete_target_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
struct nvmet_fc_tgtport *tgtport = assoc->tgtport;
unsigned long flags;
- int i, terminating;
-
- terminating = atomic_xchg(&assoc->terminating, 1);
-
- /* if already terminating, do nothing */
- if (terminating)
- return;
+ int i;
spin_lock_irqsave(&tgtport->lock, flags);
list_del_rcu(&assoc->a_list);
--
2.34.1
1
0
[PATCH OLK-6.6] bpf: Fix invalid prog->stats access when update_effective_progs fails
by Pu Lehui 24 Dec '25
by Pu Lehui 24 Dec '25
24 Dec '25
mainline inclusion
from mainline-v6.19-rc1
commit 7dc211c1159d991db609bdf4b0fb9033c04adcbc
category: bugfix
bugzilla: https://atomgit.com/openeuler/kernel/issues/8294
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Syzkaller triggers an invalid memory access issue following fault
injection in update_effective_progs. The issue can be described as
follows:
__cgroup_bpf_detach
update_effective_progs
compute_effective_progs
bpf_prog_array_alloc <-- fault inject
purge_effective_progs
/* change to dummy_bpf_prog */
array->items[index] = &dummy_bpf_prog.prog
---softirq start---
__do_softirq
...
__cgroup_bpf_run_filter_skb
__bpf_prog_run_save_cb
bpf_prog_run
stats = this_cpu_ptr(prog->stats)
/* invalid memory access */
flags = u64_stats_update_begin_irqsave(&stats->syncp)
---softirq end---
static_branch_dec(&cgroup_bpf_enabled_key[atype])
The reason is that fault injection caused update_effective_progs to fail
and then changed the original prog into dummy_bpf_prog.prog in
purge_effective_progs. Then a softirq came, and accessing the members of
dummy_bpf_prog.prog in the softirq triggers invalid mem access.
To fix it, skip updating stats when stats is NULL.
Fixes: 492ecee892c2 ("bpf: enable program stats")
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
Link: https://lore.kernel.org/r/20251115102343.2200727-1-pulehui@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast(a)kernel.org>
Conflicts:
include/linux/filter.h
[The conflicts were due to not merge ce09cbdd9888]
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
include/linux/filter.h | 12 +++++++-----
kernel/bpf/syscall.c | 3 +++
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/include/linux/filter.h b/include/linux/filter.h
index a7c0caa8b7ad..b324f264fc14 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -603,11 +603,13 @@ static __always_inline u32 __bpf_prog_run(const struct bpf_prog *prog,
unsigned long flags;
ret = dfunc(ctx, prog->insnsi, prog->bpf_func);
- stats = this_cpu_ptr(prog->stats);
- flags = u64_stats_update_begin_irqsave(&stats->syncp);
- u64_stats_inc(&stats->cnt);
- u64_stats_add(&stats->nsecs, sched_clock() - start);
- u64_stats_update_end_irqrestore(&stats->syncp, flags);
+ if (likely(prog->stats)) {
+ stats = this_cpu_ptr(prog->stats);
+ flags = u64_stats_update_begin_irqsave(&stats->syncp);
+ u64_stats_inc(&stats->cnt);
+ u64_stats_add(&stats->nsecs, sched_clock() - start);
+ u64_stats_update_end_irqrestore(&stats->syncp, flags);
+ }
} else {
ret = dfunc(ctx, prog->insnsi, prog->bpf_func);
}
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index 091234d93d2b..2c8a655db26a 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -2226,6 +2226,9 @@ void notrace bpf_prog_inc_misses_counter(struct bpf_prog *prog)
struct bpf_prog_stats *stats;
unsigned int flags;
+ if (unlikely(!prog->stats))
+ return;
+
stats = this_cpu_ptr(prog->stats);
flags = u64_stats_update_begin_irqsave(&stats->syncp);
u64_stats_inc(&stats->misses);
--
2.34.1
2
1
[PATCH] [Backport] nvmet-fc: avoid scheduling association deletion twice
by Chen Jinghuang 24 Dec '25
by Chen Jinghuang 24 Dec '25
24 Dec '25
From: Daniel Wagner <wagi(a)kernel.org>
stable inclusion
from stable-v6.6.117
commit 601ed47b2363c24d948d7bac0c23abc8bd459570
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11412
CVE: CVE-2025-40343
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
[ Upstream commit f2537be4f8421f6495edfa0bc284d722f253841d ]
When forcefully shutting down a port via the configfs interface,
nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and
then nvmet_disable_port(). Both functions will eventually schedule all
remaining associations for deletion.
The current implementation checks whether an association is about to be
removed, but only after the work item has already been scheduled. As a
result, it is possible for the first scheduled work item to free all
resources, and then for the same work item to be scheduled again for
deletion.
Because the association list is an RCU list, it is not possible to take
a lock and remove the list entry directly, so it cannot be looked up
again. Instead, a flag (terminating) must be used to determine whether
the association is already in the process of being deleted.
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki(a)wdc.com>
Closes: https://lore.kernel.org/all/rsdinhafrtlguauhesmrrzkybpnvwantwmyfq2ih5areggh…
Reviewed-by: Hannes Reinecke <hare(a)suse.de>
Signed-off-by: Daniel Wagner <wagi(a)kernel.org>
Signed-off-by: Keith Busch <kbusch(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Chen Jinghuang <chenjinghuang2(a)huawei.com>
---
drivers/nvme/target/fc.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index a15e764bae35..188b9f1bdaca 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1090,6 +1090,14 @@ nvmet_fc_delete_assoc_work(struct work_struct *work)
static void
nvmet_fc_schedule_delete_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
+ int terminating;
+
+ terminating = atomic_xchg(&assoc->terminating, 1);
+
+ /* if already terminating, do nothing */
+ if (terminating)
+ return;
+
nvmet_fc_tgtport_get(assoc->tgtport);
if (!queue_work(nvmet_wq, &assoc->del_work))
nvmet_fc_tgtport_put(assoc->tgtport);
@@ -1209,13 +1217,7 @@ nvmet_fc_delete_target_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
struct nvmet_fc_tgtport *tgtport = assoc->tgtport;
unsigned long flags;
- int i, terminating;
-
- terminating = atomic_xchg(&assoc->terminating, 1);
-
- /* if already terminating, do nothing */
- if (terminating)
- return;
+ int i;
spin_lock_irqsave(&tgtport->lock, flags);
list_del_rcu(&assoc->a_list);
--
2.34.1
1
0
[openeuler:OLK-6.6 3544/3544] drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c:411:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
by kernel test robot 24 Dec '25
by kernel test robot 24 Dec '25
24 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: d0888acfac5d4aca4538e40f027e80d9230c5002 [3544/3544] drivers: update Yunsilicon drivers to version rel_2412_std_card
config: x86_64-randconfig-r121-20251215 (https://download.01.org/0day-ci/archive/20251224/202512240606.03jP75lH-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251224/202512240606.03jP75lH-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/202512240606.03jP75lH-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c: note: in included file:
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1277:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1278:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1279:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1280:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1282:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1283:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1284:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1285:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1286:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1287:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1288:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1299:33: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1300:30: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1301:32: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1302:33: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1303:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1304:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1305:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1357:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1358:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1359:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1360:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1361:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1362:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1363:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1364:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1365:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1366:33: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1367:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1368:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1369:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1370:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1371:33: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1372:30: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1373:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1378:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1379:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1380:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c: note: in included file:
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:195:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:205:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:210:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c:411:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c:421:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c:426:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
--
drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_next_impl.c: note: in included file:
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1277:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1278:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1279:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1280:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1282:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1283:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1284:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1285:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1286:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1287:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1288:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1299:33: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1300:30: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1301:32: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1302:33: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1303:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1304:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1305:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1357:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1358:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1359:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1360:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1361:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1362:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1363:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1364:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1365:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1366:33: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1367:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1368:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1369:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1370:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1371:33: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1372:30: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1373:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1378:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1379:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1380:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_next_impl.c: note: in included file:
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:195:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:205:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:210:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_next_impl.c:405:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_next_impl.c:415:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_next_impl.c:420:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
--
drivers/net/ethernet/yunsilicon/xsc/pci/hal/andes_impl.c: note: in included file:
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1277:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1278:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1279:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1280:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1282:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1283:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1284:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1285:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1286:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1287:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1288:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1299:33: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1300:30: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1301:32: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1302:33: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1303:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1304:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1305:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1357:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1358:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1359:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1360:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1361:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1362:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1363:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1364:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1365:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1366:33: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1367:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1368:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1369:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1370:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1371:33: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1372:30: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1373:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1378:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1379:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1380:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/hal/andes_impl.c: note: in included file:
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:195:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:205:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:210:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/andes_impl.c:508:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/andes_impl.c:518:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/pci/hal/andes_impl.c:521:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
vim +411 drivers/net/ethernet/yunsilicon/xsc/pci/hal/diamond_impl.c
408
409 struct diamond_cqe {
410 u8 error_code;
> 411 __le32 qp_id:15;
412 u8 raw_is_cut:1;
413 u8 se:1;
414 u8 has_pph:1;
415 u8 type:1;
416 u8 with_immdt:1;
417 u8 csum_err:4;
418 __le32 imm_data;
419 __le32 msg_len;
420 __le32 vni;
> 421 __le64 ts:48;
422 __le16 wqe_id;
423 u8 msg_opcode;
424 u8 rsv;
425 __le16 rsv1[2];
> 426 __le16 rsv2:15;
427 u8 owner:1;
428 };
429
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
by kernel test robot 24 Dec '25
by kernel test robot 24 Dec '25
24 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 601fb01dc16f747534b866610743d95830b6655e [3544/3544] drivers: support for xsc drivers from Yunsilicon Technology
config: x86_64-randconfig-r121-20251215 (https://download.01.org/0day-ci/archive/20251224/202512240507.scMsfP6J-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251224/202512240507.scMsfP6J-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/202512240507.scMsfP6J-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/yunsilicon/xsc/pci/intf.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/intf.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/fw/xsc_mem.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/fw/xsc_mem.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/port.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/port.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/cq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/cq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/mr.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/mr.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/fw/xsc_res.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/pci/fw/osdep.h, ...):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/fw/xsc_res.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, ...):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/wq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/wq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/wq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/pci/wq.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:25:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:26:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:27:32: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:28:36: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:29:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:36:53: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:42:52: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:43:50: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:46:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:47:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:48:15: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:53:40: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:55:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:56:48: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:61:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:62:44: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/eq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/eq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/eq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/pci/wq.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:25:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:26:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:27:32: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:28:36: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:29:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:36:53: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:42:52: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:43:50: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:46:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:47:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:48:15: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:53:40: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:55:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:56:48: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:61:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:62:44: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/devlink.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/devlink.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/fw/osdep.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/fw/osdep.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/pd.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/pd.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/mad.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/mad.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/alloc.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/alloc.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/fw/cmd.c: note: in included file:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/fw/cmd.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/qpts.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/qpts.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/sriov.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/sriov.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/pci_irq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/pci_irq.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/qp.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/qp.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/qp.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h, ...):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/qp.c: note: in included file:
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:25:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:26:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:27:32: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:28:36: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:29:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:36:53: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:42:52: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:43:50: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:46:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:47:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:48:15: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:53:40: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:55:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:56:48: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:61:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:62:44: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/eswitch.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/vport.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/eswitch.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, ...):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/res_obj.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/res_obj.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/res_obj.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, ...):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/fw.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/fw.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/fw/xsc_flow.c: note: in included file:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/fw/xsc_flow.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/main.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/main.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/main.c: note: in included file:
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:25:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:26:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:27:32: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:28:36: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:29:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:36:53: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:42:52: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:43:50: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:46:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:47:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:48:15: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:53:40: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:55:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:56:48: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:61:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:62:44: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/debugfs.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/debugfs.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/pci/debugfs.c: note: in included file:
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:25:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:26:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:27:32: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:28:36: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:29:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/qp.h:36:53: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:42:52: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:43:50: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:46:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:47:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:48:15: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:53:40: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:55:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:56:48: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:61:31: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/qp.h:62:44: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/sriov_sysfs.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/sriov_sysfs.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/vport.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/vport.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/xsc_port_ctrl.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/xsc_port_ctrl.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/xsc_pci_ctrl.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/xsc_pci_ctrl.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/xsc_lag.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/xsc_lag.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h, drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
--
drivers/net/ethernet/yunsilicon/xsc/pci/cmd2.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h, drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:913:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:914:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:915:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:916:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:918:41: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:919:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:920:48: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:921:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:922:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:923:51: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:924:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:935:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:936:35: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:937:36: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:938:37: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:939:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:940:42: sparse: sparse: invalid bitfield specifier for type restricted __be16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:988:36: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:989:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:990:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:991:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:992:34: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:993:35: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:994:28: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:995:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:996:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:997:42: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:998:40: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:999:39: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1000:32: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1001:29: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1006:44: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1007:45: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h:1008:37: sparse: sparse: invalid bitfield specifier for type restricted __be32.
drivers/net/ethernet/yunsilicon/xsc/pci/cmd2.c: note: in included file (through drivers/net/ethernet/yunsilicon/xsc/common/driver.h):
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:208:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:218:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:221:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:233:30: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:243:27: sparse: sparse: invalid bitfield specifier for type restricted __le64.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:246:29: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:264:24: sparse: sparse: invalid bitfield specifier for type restricted __le16.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:359:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:360:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:361:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:364:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:365:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:366:23: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:369:35: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:370:27: sparse: sparse: invalid bitfield specifier for type restricted __le32.
drivers/net/ethernet/yunsilicon/xsc/common/xsc_hsi.h:371:33: sparse: sparse: invalid bitfield specifier for type restricted __le32.
vim +913 drivers/net/ethernet/yunsilicon/xsc/common/xsc_cmd.h
910
911 /* vport mbox */
912 struct xsc_nic_vport_context {
> 913 __be32 min_wqe_inline_mode:3;
914 __be32 disable_mc_local_lb:1;
> 915 __be32 disable_uc_local_lb:1;
916 __be32 roce_en:1;
917
918 __be32 arm_change_event:1;
919 __be32 event_on_mtu:1;
920 __be32 event_on_promisc_change:1;
921 __be32 event_on_vlan_change:1;
922 __be32 event_on_mc_address_change:1;
923 __be32 event_on_uc_address_change:1;
924 __be32 affiliation_criteria:4;
925 __be32 affiliated_vhca_id;
926
927 __be16 mtu;
928
929 __be64 system_image_guid;
930 __be64 port_guid;
931 __be64 node_guid;
932
933 __be32 qkey_violation_counter;
934
> 935 __be16 promisc_uc:1;
936 __be16 promisc_mc:1;
937 __be16 promisc_all:1;
938 __be16 vlan_allowed:1;
939 __be16 allowed_list_type:3;
940 __be16 allowed_list_size:10;
941
942 u8 permanent_address[6];
943 u8 current_address[6];
944 u8 current_uc_mac_address[0][2];
945 };
946
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] drivers/bluetooth/.tmp_btmtkuart.o: warning: objtool: missing symbol for section .init.text
by kernel test robot 24 Dec '25
by kernel test robot 24 Dec '25
24 Dec '25
Hi Sean,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: 7237c4c9ec92e1a4f6ef1f712bf9105d7b392c6a [1942/1942] Bluetooth: mediatek: Add protocol support for MediaTek serial devices
config: x86_64-buildonly-randconfig-004-20251213 (https://download.01.org/0day-ci/archive/20251224/202512240426.paSRxhEJ-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251224/202512240426.paSRxhEJ-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/202512240426.paSRxhEJ-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/bluetooth/.tmp_btmtkuart.o: warning: objtool: missing symbol for section .init.text
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] drivers/cpuinspect/sysfs.c:98:9: sparse: sparse: symbol 'cpu_utility_show' was not declared. Should it be static?
by kernel test robot 24 Dec '25
by kernel test robot 24 Dec '25
24 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: d91c6db8ca896824da23aab69dde9ce289222299 [3544/3544] cpuinspect: add CPU-inspect infrastructure
config: x86_64-randconfig-r121-20251215 (https://download.01.org/0day-ci/archive/20251224/202512240309.Ohc8FBKV-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251224/202512240309.Ohc8FBKV-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/202512240309.Ohc8FBKV-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/cpuinspect/sysfs.c:92:9: sparse: sparse: symbol 'patrol_complete_show' was not declared. Should it be static?
>> drivers/cpuinspect/sysfs.c:98:9: sparse: sparse: symbol 'cpu_utility_show' was not declared. Should it be static?
drivers/cpuinspect/sysfs.c:104:9: sparse: sparse: symbol 'cpu_utility_store' was not declared. Should it be static?
drivers/cpuinspect/sysfs.c:117:9: sparse: sparse: symbol 'patrol_times_show' was not declared. Should it be static?
drivers/cpuinspect/sysfs.c:123:9: sparse: sparse: symbol 'patrol_times_store' was not declared. Should it be static?
>> drivers/cpuinspect/sysfs.c:139:9: sparse: sparse: symbol 'start_patrol_store' was not declared. Should it be static?
vim +/cpu_utility_show +98 drivers/cpuinspect/sysfs.c
91
> 92 ssize_t patrol_complete_show(struct device *dev, struct device_attribute *attr,
93 char *buf)
94 {
95 return sprintf(buf, "%d\n", !ci_core.inspect_on);
96 }
97
> 98 ssize_t cpu_utility_show(struct device *dev, struct device_attribute *attr,
99 char *buf)
100 {
101 return sprintf(buf, "%u\n", ci_core.cpu_utility);
102 }
103
104 ssize_t cpu_utility_store(struct device *dev, struct device_attribute *attr,
105 const char *buf, size_t size)
106 {
107 unsigned int cpu_util;
108
109 if (kstrtouint(buf, 10, &cpu_util) || cpu_util < 1 || cpu_util > 100)
110 return -EINVAL;
111
112 ci_core.cpu_utility = cpu_util;
113
114 return size;
115 }
116
117 ssize_t patrol_times_show(struct device *dev, struct device_attribute *attr,
118 char *buf)
119 {
120 return sprintf(buf, "%lu\n", ci_core.inspect_times);
121 }
122
123 ssize_t patrol_times_store(struct device *dev, struct device_attribute *attr,
124 const char *buf, size_t size)
125 {
126 /*
127 * It is not allowed to modify patrol times during the CPU
128 * inspection operation.
129 */
130 if (ci_core.inspect_on)
131 return -EBUSY;
132
133 if (kstrtoul(buf, 10, &ci_core.inspect_times))
134 return -EINVAL;
135
136 return size;
137 }
138
> 139 ssize_t start_patrol_store(struct device *dev, struct device_attribute *attr,
140 const char *buf, size_t size)
141 {
142 bool start_patrol = false;
143
144 if (strtobool(buf, &start_patrol) < 0)
145 return -EINVAL;
146
147 if (!mutex_trylock(&cpuinspect_lock))
148 return -EBUSY;
149
150 /*
151 * It is not allowed to start the inspection again during the
152 * inspection process.
153 */
154 if (start_patrol && (int) start_patrol == ci_core.inspect_on) {
155 mutex_unlock(&cpuinspect_lock);
156 return -EBUSY;
157 }
158
159 if (start_patrol == 0)
160 stop_inspect_threads();
161 else if (curr_cpu_inspector)
162 start_inspect_threads();
163
164 mutex_unlock(&cpuinspect_lock);
165 return size;
166 }
167
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot 24 Dec '25
by kernel test robot 24 Dec '25
24 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 8248d42b7c5f4338a54f26d8efebec8614b43466 [3544/3544] fbdev: add ls2k500sfb driver for ls2k500 bmc.
config: x86_64-randconfig-r121-20251215 (https://download.01.org/0day-ci/archive/20251224/202512240049.8n7uFL15-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251224/202512240049.8n7uFL15-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/202512240049.8n7uFL15-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *static p @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: expected void *static p
drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *static p @@
drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: expected void const volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: got void *static p
>> drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *static p @@
drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: expected void volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: got void *static p
>> drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: expected void const volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: got void *
>> drivers/video/fbdev/ls2k500sfb.c:254:13: sparse: sparse: symbol 'ls2k500sfb_interrupt' was not declared. Should it be static?
>> drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got char *preg @@
drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: expected void const volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: got char *preg
>> drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got char *preg @@
drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: got char *preg
>> drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *penv @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: expected char *penv
drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *preg @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: expected char *preg
drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: got void [noderef] __iomem *
drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *penv @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: expected char *penv
drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: got void [noderef] __iomem *
vim +143 drivers/video/fbdev/ls2k500sfb.c
113
114 static void ls2k500sfb_events_fn(struct work_struct *work)
115 {
116 struct ls2k500sfb_struct *priv = container_of(work, struct ls2k500sfb_struct, work);
117 struct pci_dev *pdev = priv->dev;
118 struct pci_dev *ppdev = pdev->bus->self;
119 uint32_t i, d, timeout, retry = 0;
120 static const uint32_t index[] = {
121 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x30, 0x3c, 0x54, 0x58, 0x78, 0x7c, 0x80, 4
122 };
123
124 static uint32_t data[sizeof(index) / 4];
125 static const uint32_t cindex[] = { 0x10, 0x3c, 4 };
126
127 static uint32_t cdata[sizeof(cindex) / 4];
128 static uint32_t d80c, d71c, ctrl;
129 static void *p;
130
131 if (!priv->running) {
132 for (i = 0; i < ARRAY_SIZE(index); i++)
133 pci_read_config_dword(ppdev, index[i], &data[i]);
134 for (i = 0; i < ARRAY_SIZE(cindex); i++)
135 pci_read_config_dword(pdev, cindex[i], &cdata[i]);
136 if (ppdev->vendor == 0x14) {
137 pci_read_config_dword(ppdev, 0x80c, &d80c);
138 d80c = (d80c & ~(3 << 17)) | (1 << 17);
139
140 pci_read_config_dword(ppdev, 0x71c, &d71c);
141 d71c |= 1 << 26;
142
> 143 p = pci_iomap(ppdev, 0, 0x100);
144 }
> 145 ctrl = readl(p);
146 return;
147 }
148 local_bh_disable();
149 pciebreak_smp_send_stop(100);
150 wmb(); /* flush all write before we disable pcie window */
151 pci_write_config_dword(ppdev, 0x18, 0);
152 pci_write_config_dword(ppdev, 0x1c, 0);
153 pci_write_config_dword(ppdev, 0x20, 0);
154 atomic_set(&waiting_for_pciebreak_ipi, 0);
155 wmb(); /* flush all write after change pcie window */
156 local_bh_enable();
157 if (ppdev->vendor == 0x14) {
158 timeout = 10000;
159 while (timeout) {
160 pci_read_config_dword(ppdev, 0x10, &d);
161 d &= ~0xf;
162 if (!d)
163 break;
164 mdelay(1);
165 timeout--;
166 };
167 if (!timeout)
168 pr_info("bar not clear 0\n");
169
170 pci_read_config_dword(ppdev, 0x0, &d);
171 pr_info("pcie port deviceid=0x%x recover begin\n", d);
172 retrain:
173 while (1) {
174 pci_write_config_dword(ppdev, index[0], data[0]);
175 pci_read_config_dword(ppdev, index[0], &d);
176 d &= ~0xf;
177 if (d)
178 break;
179 mdelay(1);
180 }
181
182 while (1) {
183 for (i = 0; i < ARRAY_SIZE(index); i++) {
184 if (index[i] != 0x18 && index[i] != 0x1c && index[i] != 0x20)
185 pci_write_config_dword(ppdev, index[i], data[i]);
186 }
187 pci_write_config_dword(ppdev, 0x80c, d80c);
188 pci_write_config_dword(ppdev, 0x71c, d71c);
189
190 pci_read_config_dword(ppdev, 0x10, &d);
191 d &= ~0xf;
192 if (d)
193 break;
194 mdelay(1);
195 }
196
197 timeout = 10000;
198
> 199 writel(ctrl | 0x8, p);
200 while (1) {
> 201 d = readl(p + 0xc);
202 if ((d & 0x11) == 0x11) {
203 break;
204 } else if (!timeout) {
205 pr_info("pcie train failed status=0x%x\n", d);
206 goto out;
207 }
208 mdelay(1);
209 timeout--;
210 }
211
212
213 pr_info("pcie recovered done\n");
214
215 if (!retry) {
216 /*wait u-boot ddr config */
217 set_current_state(TASK_UNINTERRUPTIBLE);
218 schedule_timeout(HZ*resetbootwait);
219 set_current_state(TASK_RUNNING);
220 pci_read_config_dword(ppdev, 0x10, &d);
221 d &= ~0xf;
222 if (!d) {
223 retry = 1;
224 goto retrain;
225 }
226 }
227 } else {
228 set_current_state(TASK_UNINTERRUPTIBLE);
229 schedule_timeout(HZ*resetbootwait);
230 set_current_state(TASK_RUNNING);
231 }
232 local_bh_disable();
233 pciebreak_smp_send_stop(10000);
234 wmb(); /* flush all write before we update pcie window */
235 for (i = 0; i < ARRAY_SIZE(index); i++)
236 pci_write_config_dword(ppdev, index[i], data[i]);
237
238 for (i = 0; i < ARRAY_SIZE(cindex); i++)
239 pci_write_config_dword(pdev, cindex[i], cdata[i]);
240 atomic_set(&waiting_for_pciebreak_ipi, 0);
241 wmb(); /* flush all write after we update pcie window */
242 local_bh_enable();
243
244
245 pr_info("redraw console\n");
246
247 saved_console = fg_console;
248 switch_console(fg_console > 0?fg_console - 1 : fg_console + 1);
249 queue_delayed_work(priv->wq, &priv->redraw_work, HZ);
250 out:
251 priv->running = 0;
252 }
253
> 254 irqreturn_t ls2k500sfb_interrupt(int irq, void *arg)
255 {
256 struct ls2k500sfb_struct *priv = arg;
257 struct pci_dev *pdev = priv->dev;
258
259 if (irq == pdev->irq)
260 pr_info("ls2k500sfb pcie interrupt\n");
261 else
262 pr_info("ls2k500sfb gpio interrupt\n");
263 if (system_state != SYSTEM_RUNNING)
264 return IRQ_HANDLED;
265
266 if (!priv->running) {
267 if (!resetdelay || time_after(jiffies, priv->reset_time + resetdelay * HZ)) {
268 priv->running = 1;
269 queue_work(priv->wq, &priv->work);
270 }
271 priv->reset_time = jiffies;
272 }
273 return IRQ_HANDLED;
274 }
275
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 2/2] drivers/crypto/ccp/hygon/hct.c:2175:30: sparse: sparse: symbol 'hct_noiommu_fops' was not declared. Should it be static?
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 6e2db6d2859f5c41ff51b696235dc3971f4bcd22 [2/2] hct: supporting memory encryption in host and wb set in vm
config: x86_64-randconfig-123-20251223 (https://download.01.org/0day-ci/archive/20251223/202512232326.ySrpmNr0-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512232326.ySrpmNr0-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/202512232326.ySrpmNr0-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/crypto/ccp/hygon/hct.c:246:18: sparse: sparse: symbol 'hct_mdev_type' was not declared. Should it be static?
drivers/crypto/ccp/hygon/hct.c:250:18: sparse: sparse: symbol 'hct_mdev_types' was not declared. Should it be static?
drivers/crypto/ccp/hygon/hct.c:472:23: sparse: sparse: cast to restricted __le32
drivers/crypto/ccp/hygon/hct.c:1217:20: sparse: sparse: symbol 'hct_mdev_driver' was not declared. Should it be static?
drivers/crypto/ccp/hygon/hct.c:1346:13: sparse: sparse: symbol 'hct_pin_memory' was not declared. Should it be static?
drivers/crypto/ccp/hygon/hct.c:2080:6: sparse: sparse: symbol 'hct_noiommu_set_memory_wb' was not declared. Should it be static?
>> drivers/crypto/ccp/hygon/hct.c:2175:30: sparse: sparse: symbol 'hct_noiommu_fops' was not declared. Should it be static?
>> drivers/crypto/ccp/hygon/hct.c:2180:19: sparse: sparse: symbol 'hct_noiommu_misc' was not declared. Should it be static?
vim +/hct_noiommu_fops +2175 drivers/crypto/ccp/hygon/hct.c
2174
> 2175 const struct file_operations hct_noiommu_fops = {
2176 .owner = THIS_MODULE,
2177 .unlocked_ioctl = hct_noiommu_ioctl,
2178 };
2179
> 2180 struct miscdevice hct_noiommu_misc = {
2181 .minor = MISC_DYNAMIC_MINOR,
2182 .name = "hct_noiommu",
2183 .fops = &hct_noiommu_fops,
2184 };
2185
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 2/2] drivers/crypto/ccp/hygon/hct.c:233:18: sparse: sparse: symbol 'hct_mdev_type' was not declared. Should it be static?
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: c74ae2c5da57becf3f41c596d79b3dd30fa1baa6 [2/2] hct: add mediated ccp driver support for hygon crypto technology.
config: x86_64-randconfig-123-20251223 (https://download.01.org/0day-ci/archive/20251223/202512232143.LPloCdRW-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512232143.LPloCdRW-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/202512232143.LPloCdRW-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/crypto/ccp/hygon/hct.c:233:18: sparse: sparse: symbol 'hct_mdev_type' was not declared. Should it be static?
>> drivers/crypto/ccp/hygon/hct.c:237:18: sparse: sparse: symbol 'hct_mdev_types' was not declared. Should it be static?
>> drivers/crypto/ccp/hygon/hct.c:459:23: sparse: sparse: cast to restricted __le32
>> drivers/crypto/ccp/hygon/hct.c:1204:20: sparse: sparse: symbol 'hct_mdev_driver' was not declared. Should it be static?
>> drivers/crypto/ccp/hygon/hct.c:1333:13: sparse: sparse: symbol 'hct_pin_memory' was not declared. Should it be static?
vim +/hct_mdev_type +233 drivers/crypto/ccp/hygon/hct.c
232
> 233 struct mdev_type hct_mdev_type = {
234 .sysfs_name = "1",
235 .pretty_name = "hct mdev type"
236 };
> 237 struct mdev_type *hct_mdev_types[] = {
238 &hct_mdev_type
239 };
240
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
From: Vladimir Riabchun <ferr.lambarginio(a)gmail.com>
stable inclusion
from stable-v6.6.119
commit e81e6d6d99b16dae11adbeda5c996317942a940c
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11609
CVE: CVE-2025-68173
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 4099b98203d6b33d990586542fa5beee408032a3 ]
A soft lockup was observed when loading amdgpu module.
If a module has a lot of tracable functions, multiple calls
to kallsyms_lookup can spend too much time in RCU critical
section and with disabled preemption, causing kernel panic.
This is the same issue that was fixed in
commit d0b24b4e91fc ("ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY
kernels") and commit 42ea22e754ba ("ftrace: Add cond_resched() to
ftrace_graph_set_hash()").
Fix it the same way by adding cond_resched() in ftrace_module_enable.
Link: https://lore.kernel.org/aMQD9_lxYmphT-up@vova-pc
Signed-off-by: Vladimir Riabchun <ferr.lambarginio(a)gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt(a)goodmis.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Tengda Wu <wutengda2(a)huawei.com>
---
kernel/trace/ftrace.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 15785a729a0c..398992597685 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -6873,6 +6873,8 @@ void ftrace_module_enable(struct module *mod)
if (!within_module(rec->ip, mod))
break;
+ cond_resched();
+
/* Weak functions should still be ignored */
if (!test_for_valid_rec(rec)) {
/* Clear all other flags. Should not be enabled anyway */
--
2.34.1
2
1
[PATCH] [Backport] nvmet-fc: avoid scheduling association deletion twice
by Chen Jinghuang 23 Dec '25
by Chen Jinghuang 23 Dec '25
23 Dec '25
From: Daniel Wagner <wagi(a)kernel.org>
stable inclusion
from stable-v6.6.117
commit 601ed47b2363c24d948d7bac0c23abc8bd459570
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11412
CVE: CVE-2025-40343
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
[ Upstream commit f2537be4f8421f6495edfa0bc284d722f253841d ]
When forcefully shutting down a port via the configfs interface,
nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and
then nvmet_disable_port(). Both functions will eventually schedule all
remaining associations for deletion.
The current implementation checks whether an association is about to be
removed, but only after the work item has already been scheduled. As a
result, it is possible for the first scheduled work item to free all
resources, and then for the same work item to be scheduled again for
deletion.
Because the association list is an RCU list, it is not possible to take
a lock and remove the list entry directly, so it cannot be looked up
again. Instead, a flag (terminating) must be used to determine whether
the association is already in the process of being deleted.
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki(a)wdc.com>
Closes: https://lore.kernel.org/all/rsdinhafrtlguauhesmrrzkybpnvwantwmyfq2ih5areggh…
Reviewed-by: Hannes Reinecke <hare(a)suse.de>
Signed-off-by: Daniel Wagner <wagi(a)kernel.org>
Signed-off-by: Keith Busch <kbusch(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Chen Jinghuang <chenjinghuang2(a)huawei.com>
---
drivers/nvme/target/fc.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index a15e764bae35..188b9f1bdaca 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1090,6 +1090,14 @@ nvmet_fc_delete_assoc_work(struct work_struct *work)
static void
nvmet_fc_schedule_delete_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
+ int terminating;
+
+ terminating = atomic_xchg(&assoc->terminating, 1);
+
+ /* if already terminating, do nothing */
+ if (terminating)
+ return;
+
nvmet_fc_tgtport_get(assoc->tgtport);
if (!queue_work(nvmet_wq, &assoc->del_work))
nvmet_fc_tgtport_put(assoc->tgtport);
@@ -1209,13 +1217,7 @@ nvmet_fc_delete_target_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
struct nvmet_fc_tgtport *tgtport = assoc->tgtport;
unsigned long flags;
- int i, terminating;
-
- terminating = atomic_xchg(&assoc->terminating, 1);
-
- /* if already terminating, do nothing */
- if (terminating)
- return;
+ int i;
spin_lock_irqsave(&tgtport->lock, flags);
list_del_rcu(&assoc->a_list);
--
2.34.1
1
0
[PATCH OLK-6.6 v2] bpf: account for current allocated stack depth in widen_imprecise_scalars()
by Pu Lehui 23 Dec '25
by Pu Lehui 23 Dec '25
23 Dec '25
From: Eduard Zingerman <eddyz87(a)gmail.com>
stable inclusion
from stable-v6.6.117
commit 64b12dca2b0abcb5fc0542887d18b926ea5cf711
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11581
CVE: CVE-2025-68208
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit b0c8e6d3d866b6a7f73877f71968dbffd27b7785 ]
The usage pattern for widen_imprecise_scalars() looks as follows:
prev_st = find_prev_entry(env, ...);
queued_st = push_stack(...);
widen_imprecise_scalars(env, prev_st, queued_st);
Where prev_st is an ancestor of the queued_st in the explored states
tree. This ancestor is not guaranteed to have same allocated stack
depth as queued_st. E.g. in the following case:
def main():
for i in 1..2:
foo(i) // same callsite, differnt param
def foo(i):
if i == 1:
use 128 bytes of stack
iterator based loop
Here, for a second 'foo' call prev_st->allocated_stack is 128,
while queued_st->allocated_stack is much smaller.
widen_imprecise_scalars() needs to take this into account and avoid
accessing bpf_verifier_state->frame[*]->stack out of bounds.
Fixes: 2793a8b015f7 ("bpf: exact states comparison for iterator convergence checks")
Reported-by: Emil Tsalapatis <emil(a)etsalapatis.com>
Signed-off-by: Eduard Zingerman <eddyz87(a)gmail.com>
Link: https://lore.kernel.org/r/20251114025730.772723-1-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
kernel/bpf/verifier.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 26086c893dfb..ce1f5a9bdd9a 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -7918,7 +7918,7 @@ static int widen_imprecise_scalars(struct bpf_verifier_env *env,
struct bpf_verifier_state *cur)
{
struct bpf_func_state *fold, *fcur;
- int i, fr;
+ int i, fr, num_slots;
reset_idmap_scratch(env);
for (fr = old->curframe; fr >= 0; fr--) {
@@ -7931,7 +7931,9 @@ static int widen_imprecise_scalars(struct bpf_verifier_env *env,
&fcur->regs[i],
&env->idmap_scratch);
- for (i = 0; i < fold->allocated_stack / BPF_REG_SIZE; i++) {
+ num_slots = min(fold->allocated_stack / BPF_REG_SIZE,
+ fcur->allocated_stack / BPF_REG_SIZE);
+ for (i = 0; i < num_slots; i++) {
if (!is_spilled_reg(&fold->stack[i]) ||
!is_spilled_reg(&fcur->stack[i]))
continue;
--
2.34.1
2
1
From: Eric Dumazet <edumazet(a)google.com>
stable inclusion
from stable-v6.6.117
commit baa61dcaa50b7141048c8d2aede7fe9ed8f21d11
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/11594
CVE: CVE-2025-68200
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 4ef92743625818932b9c320152b58274c05e5053 ]
syzbot found that cls_bpf_classify() is able to change
tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().
WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline]
WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214
struct tc_skb_cb has been added in commit ec624fe740b4 ("net/sched:
Extend qdisc control block with tc control block"), which added a wrong
interaction with db58ba459202 ("bpf: wire in data and data_end for
cls_act_bpf").
drop_reason was added later.
Add bpf_prog_run_data_pointers() helper to save/restore the net_sched
storage colliding with BPF data_meta/data_end.
Fixes: ec624fe740b4 ("net/sched: Extend qdisc control block with tc control block")
Reported-by: syzbot <syzkaller(a)googlegroups.com>
Closes: https://lore.kernel.org/netdev/6913437c.a70a0220.22f260.013b.GAE@google.com/
Signed-off-by: Eric Dumazet <edumazet(a)google.com>
Signed-off-by: Martin KaFai Lau <martin.lau(a)kernel.org>
Reviewed-by: Victor Nogueira <victor(a)mojatatu.com>
Acked-by: Jamal Hadi Salim <jhs(a)mojatatu.com>
Link: https://patch.msgid.link/20251112125516.1563021-1-edumazet@google.com
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Conflicts:
net/sched/act_bpf.c
net/sched/cls_bpf.c
[ctx conflicts]
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
include/linux/filter.h | 20 ++++++++++++++++++++
net/sched/act_bpf.c | 6 ++----
net/sched/cls_bpf.c | 6 ++----
3 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/include/linux/filter.h b/include/linux/filter.h
index a7c0caa8b7ad..4ae423d8533f 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -685,6 +685,26 @@ static inline void bpf_compute_data_pointers(struct sk_buff *skb)
cb->data_end = skb->data + skb_headlen(skb);
}
+static inline int bpf_prog_run_data_pointers(
+ const struct bpf_prog *prog,
+ struct sk_buff *skb)
+{
+ struct bpf_skb_data_end *cb = (struct bpf_skb_data_end *)skb->cb;
+ void *save_data_meta, *save_data_end;
+ int res;
+
+ save_data_meta = cb->data_meta;
+ save_data_end = cb->data_end;
+
+ bpf_compute_data_pointers(skb);
+ res = bpf_prog_run(prog, skb);
+
+ cb->data_meta = save_data_meta;
+ cb->data_end = save_data_end;
+
+ return res;
+}
+
/* Similar to bpf_compute_data_pointers(), except that save orginal
* data in cb->data and cb->meta_data for restore.
*/
diff --git a/net/sched/act_bpf.c b/net/sched/act_bpf.c
index b0455fda7d0b..223cc157312a 100644
--- a/net/sched/act_bpf.c
+++ b/net/sched/act_bpf.c
@@ -47,12 +47,10 @@ TC_INDIRECT_SCOPE int tcf_bpf_act(struct sk_buff *skb,
filter = rcu_dereference(prog->filter);
if (at_ingress) {
__skb_push(skb, skb->mac_len);
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(filter, skb);
+ filter_res = bpf_prog_run_data_pointers(filter, skb);
__skb_pull(skb, skb->mac_len);
} else {
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(filter, skb);
+ filter_res = bpf_prog_run_data_pointers(filter, skb);
}
if (unlikely(!skb->tstamp && skb->mono_delivery_time))
skb->mono_delivery_time = 0;
diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
index 382c7a71f81f..05f718dd09a6 100644
--- a/net/sched/cls_bpf.c
+++ b/net/sched/cls_bpf.c
@@ -97,12 +97,10 @@ TC_INDIRECT_SCOPE int cls_bpf_classify(struct sk_buff *skb,
} else if (at_ingress) {
/* It is safe to push/pull even if skb_shared() */
__skb_push(skb, skb->mac_len);
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(prog->filter, skb);
+ filter_res = bpf_prog_run_data_pointers(prog->filter, skb);
__skb_pull(skb, skb->mac_len);
} else {
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(prog->filter, skb);
+ filter_res = bpf_prog_run_data_pointers(prog->filter, skb);
}
if (unlikely(!skb->tstamp && skb->mono_delivery_time))
skb->mono_delivery_time = 0;
--
2.34.1
2
1
[PATCH OLK-6.6] [Backport] nvmet-fc: avoid scheduling association deletion twice
by Chen Jinghuang 23 Dec '25
by Chen Jinghuang 23 Dec '25
23 Dec '25
From: Daniel Wagner <wagi(a)kernel.org>
stable inclusion
from stable-v6.6.117
commit 601ed47b2363c24d948d7bac0c23abc8bd459570
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDBQL1
CVE: CVE-2025-40343
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
----------------------------------------------------------------------
[ Upstream commit f2537be4f8421f6495edfa0bc284d722f253841d ]
When forcefully shutting down a port via the configfs interface,
nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and
then nvmet_disable_port(). Both functions will eventually schedule all
remaining associations for deletion.
The current implementation checks whether an association is about to be
removed, but only after the work item has already been scheduled. As a
result, it is possible for the first scheduled work item to free all
resources, and then for the same work item to be scheduled again for
deletion.
Because the association list is an RCU list, it is not possible to take
a lock and remove the list entry directly, so it cannot be looked up
again. Instead, a flag (terminating) must be used to determine whether
the association is already in the process of being deleted.
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki(a)wdc.com>
Closes: https://lore.kernel.org/all/rsdinhafrtlguauhesmrrzkybpnvwantwmyfq2ih5areggh…
Reviewed-by: Hannes Reinecke <hare(a)suse.de>
Signed-off-by: Daniel Wagner <wagi(a)kernel.org>
Signed-off-by: Keith Busch <kbusch(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Chen Jinghuang <chenjinghuang2(a)huawei.com>
---
drivers/nvme/target/fc.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index a15e764bae35..188b9f1bdaca 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -1090,6 +1090,14 @@ nvmet_fc_delete_assoc_work(struct work_struct *work)
static void
nvmet_fc_schedule_delete_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
+ int terminating;
+
+ terminating = atomic_xchg(&assoc->terminating, 1);
+
+ /* if already terminating, do nothing */
+ if (terminating)
+ return;
+
nvmet_fc_tgtport_get(assoc->tgtport);
if (!queue_work(nvmet_wq, &assoc->del_work))
nvmet_fc_tgtport_put(assoc->tgtport);
@@ -1209,13 +1217,7 @@ nvmet_fc_delete_target_assoc(struct nvmet_fc_tgt_assoc *assoc)
{
struct nvmet_fc_tgtport *tgtport = assoc->tgtport;
unsigned long flags;
- int i, terminating;
-
- terminating = atomic_xchg(&assoc->terminating, 1);
-
- /* if already terminating, do nothing */
- if (terminating)
- return;
+ int i;
spin_lock_irqsave(&tgtport->lock, flags);
list_del_rcu(&assoc->a_list);
--
2.34.1
2
1
From: 岳智超 <yuezhichao1(a)h-partners.com>
driver inclusion
category: feature
bugzilla: https://atomgit.com/openeuler/kernel/issues/8290
CVE: NA
--------------------------------
Add thread irq for io queue
Signed-off-by: 岳智超 <yuezhichao1(a)h-partners.com>
---
drivers/scsi/hisi_raid/hiraid.h | 1 +
drivers/scsi/hisi_raid/hiraid_main.c | 60 ++++++++++++++++++++++++++--
2 files changed, 58 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/hisi_raid/hiraid.h b/drivers/scsi/hisi_raid/hiraid.h
index 04b2e25..b786066 100644
--- a/drivers/scsi/hisi_raid/hiraid.h
+++ b/drivers/scsi/hisi_raid/hiraid.h
@@ -686,6 +686,7 @@ struct hiraid_queue {
atomic_t inflight;
void *sense_buffer_virt;
dma_addr_t sense_buffer_phy;
+ s32 pci_irq;
struct dma_pool *prp_small_pool;
};
diff --git a/drivers/scsi/hisi_raid/hiraid_main.c b/drivers/scsi/hisi_raid/hiraid_main.c
index 2f33339..ee5cb10 100644
--- a/drivers/scsi/hisi_raid/hiraid_main.c
+++ b/drivers/scsi/hisi_raid/hiraid_main.c
@@ -107,6 +107,13 @@ static u32 log_debug_switch;
module_param(log_debug_switch, uint, 0644);
MODULE_PARM_DESC(log_debug_switch, "set log state, default zero for switch off");
+static bool threaded_irq = true;
+module_param(threaded_irq, bool, 0444);
+MODULE_PARM_DESC(threaded_irq, "use threaded irq for io queue, default on");
+
+static u32 poll_delay_min = 9;
+static u32 poll_delay_max = 19;
+
static int extra_pool_num_set(const char *val, const struct kernel_param *kp)
{
u8 n = 0;
@@ -152,7 +159,7 @@ static struct workqueue_struct *work_queue;
__func__, ##__VA_ARGS__); \
} while (0)
-#define HIRAID_DRV_VERSION "1.1.0.1"
+#define HIRAID_DRV_VERSION "1.1.0.2"
#define ADMIN_TIMEOUT (admin_tmout * HZ)
#define USRCMD_TIMEOUT (180 * HZ)
@@ -1305,6 +1312,7 @@ static int hiraid_alloc_queue(struct hiraid_dev *hdev, u16 qid, u16 depth)
hiraidq->q_depth = depth;
hiraidq->qid = qid;
hiraidq->cq_vector = -1;
+ hiraidq->pci_irq = -1;
hdev->queue_count++;
return 0;
@@ -1631,6 +1639,39 @@ static irqreturn_t hiraid_handle_irq(int irq, void *data)
return ret;
}
+static irqreturn_t hiraid_io_poll(int irq, void *data)
+{
+ struct hiraid_queue *hiraidq = data;
+ irqreturn_t ret = IRQ_NONE;
+ u16 start, end;
+
+ do {
+ spin_lock(&hiraidq->cq_lock);
+ hiraid_process_cq(hiraidq, &start, &end, -1);
+ hiraidq->last_cq_head = hiraidq->cq_head;
+ spin_unlock(&hiraidq->cq_lock);
+
+ if (start != end) {
+ hiraid_complete_cqes(hiraidq, start, end);
+ ret = IRQ_HANDLED;
+ }
+ usleep_range(poll_delay_min, poll_delay_max);
+ } while (start != end);
+ enable_irq(hiraidq->pci_irq);
+ return ret;
+}
+
+static irqreturn_t hiraid_io_irq(int irq, void *data)
+{
+ struct hiraid_queue *q = data;
+
+ if (hiraid_cqe_pending(q)) {
+ disable_irq_nosync(q->pci_irq);
+ return IRQ_WAKE_THREAD;
+ }
+ return IRQ_NONE;
+}
+
static int hiraid_setup_admin_queue(struct hiraid_dev *hdev)
{
struct hiraid_queue *adminq = &hdev->queues[0];
@@ -1666,9 +1707,11 @@ static int hiraid_setup_admin_queue(struct hiraid_dev *hdev)
adminq, "hiraid%d_q%d", hdev->instance, adminq->qid);
if (ret) {
adminq->cq_vector = -1;
+ adminq->pci_irq = -1;
return ret;
}
+ adminq->pci_irq = pci_irq_vector(hdev->pdev, adminq->cq_vector);
hiraid_init_queue(adminq, 0);
dev_info(hdev->dev, "setup admin queue success, queuecount[%d] online[%d] pagesize[%d]\n",
@@ -1937,14 +1980,23 @@ static int hiraid_create_queue(struct hiraid_queue *hiraidq, u16 qid)
goto delete_cq;
hiraidq->cq_vector = cq_vector;
- ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_handle_irq, NULL,
- hiraidq, "hiraid%d_q%d", hdev->instance, qid);
+
+ if (threaded_irq)
+ ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_io_irq,
+ hiraid_io_poll, hiraidq, "hiraid%d_q%d",
+ hdev->instance, qid);
+ else
+ ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_handle_irq,
+ NULL, hiraidq, "hiraid%d_q%d",
+ hdev->instance, qid);
if (ret) {
hiraidq->cq_vector = -1;
+ hiraidq->pci_irq = -1;
dev_err(hdev->dev, "request queue[%d] irq failed\n", qid);
goto delete_sq;
}
+ hiraidq->pci_irq = pci_irq_vector(hdev->pdev, hiraidq->cq_vector);
hiraid_init_queue(hiraidq, qid);
return 0;
@@ -2094,10 +2146,12 @@ static int hiraid_setup_io_queues(struct hiraid_dev *hdev)
adminq, "hiraid%d_q%d", hdev->instance, adminq->qid);
if (ret) {
dev_err(hdev->dev, "request admin irq failed\n");
+ adminq->pci_irq = -1;
adminq->cq_vector = -1;
return ret;
}
+ adminq->pci_irq = pci_irq_vector(hdev->pdev, adminq->cq_vector);
hdev->online_queues++;
for (i = hdev->queue_count; i <= hdev->max_qid; i++) {
--
2.45.1.windows.1
2
1
23 Dec '25
driver inclusion
category: feature
bugzilla: https://atomgit.com/openeuler/kernel/issues/8292
----------------------------------------------------------------------
The non-strict smmu mode has significant performance gains and can
resolve the nvme soft lockup problem. We enable it by default.
Currently, many peripherals are faster than before. For example, the top
speed of the older netcard is 10Gb/s, and now it's more than 25Gb/s. But
when iommu page-table mapping enabled, it's hard to reach the top speed
in strict mode, because of frequently map and unmap operations. In order
to keep abreast of the times, I think it's better to set non-strict as
default.
Below it's our iperf performance data of 25Gb netcard:
strict mode: 18-20 Gb/s
non-strict mode: 23.5 Gb/s
Qinxin Xia (1):
iommu: set the default iommu-dma mode as non-strict
Documentation/admin-guide/kernel-parameters.txt | 2 +-
arch/arm64/configs/openeuler_defconfig | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
--
2.33.0
2
2
From: 岳智超 <yuezhichao1(a)h-partners.com>
driver inclusion
category: feature
bugzilla: https://atomgit.com/openeuler/kernel/issues/8291
CVE: NA
--------------------------------
Add thread irq for io queue
Signed-off-by: 岳智超 <yuezhichao1(a)h-partners.com>
---
drivers/scsi/hisi_raid/hiraid.h | 1 +
drivers/scsi/hisi_raid/hiraid_main.c | 61 ++++++++++++++++++++++++++--
2 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/hisi_raid/hiraid.h b/drivers/scsi/hisi_raid/hiraid.h
index 1ebc3dd..bc4e05a 100644
--- a/drivers/scsi/hisi_raid/hiraid.h
+++ b/drivers/scsi/hisi_raid/hiraid.h
@@ -683,6 +683,7 @@ struct hiraid_queue {
atomic_t inflight;
void *sense_buffer_virt;
dma_addr_t sense_buffer_phy;
+ s32 pci_irq;
struct dma_pool *prp_small_pool;
};
diff --git a/drivers/scsi/hisi_raid/hiraid_main.c b/drivers/scsi/hisi_raid/hiraid_main.c
index f84182f..ee25893 100644
--- a/drivers/scsi/hisi_raid/hiraid_main.c
+++ b/drivers/scsi/hisi_raid/hiraid_main.c
@@ -107,6 +107,13 @@ static u32 log_debug_switch;
module_param(log_debug_switch, uint, 0644);
MODULE_PARM_DESC(log_debug_switch, "set log state, default zero for switch off");
+static bool threaded_irq = true;
+module_param(threaded_irq, bool, 0444);
+MODULE_PARM_DESC(threaded_irq, "use threaded irq for io queue, default on");
+
+static u32 poll_delay_min = 9;
+static u32 poll_delay_max = 19;
+
static int extra_pool_num_set(const char *val, const struct kernel_param *kp)
{
u8 n = 0;
@@ -153,7 +160,7 @@ static struct workqueue_struct *work_queue;
__func__, ##__VA_ARGS__); \
} while (0)
-#define HIRAID_DRV_VERSION "1.1.0.0"
+#define HIRAID_DRV_VERSION "1.1.0.1"
#define ADMIN_TIMEOUT (admin_tmout * HZ)
#define USRCMD_TIMEOUT (180 * HZ)
@@ -1305,6 +1312,7 @@ static int hiraid_alloc_queue(struct hiraid_dev *hdev, u16 qid, u16 depth)
hiraidq->q_depth = depth;
hiraidq->qid = qid;
hiraidq->cq_vector = -1;
+ hiraidq->pci_irq = -1;
hdev->queue_count++;
return 0;
@@ -1646,6 +1654,39 @@ static irqreturn_t hiraid_handle_irq(int irq, void *data)
return ret;
}
+static irqreturn_t hiraid_io_poll(int irq, void *data)
+{
+ struct hiraid_queue *hiraidq = data;
+ irqreturn_t ret = IRQ_NONE;
+ u16 start, end;
+
+ do {
+ spin_lock(&hiraidq->cq_lock);
+ hiraid_process_cq(hiraidq, &start, &end, -1);
+ hiraidq->last_cq_head = hiraidq->cq_head;
+ spin_unlock(&hiraidq->cq_lock);
+
+ if (start != end) {
+ hiraid_complete_cqes(hiraidq, start, end);
+ ret = IRQ_HANDLED;
+ }
+ usleep_range(poll_delay_min, poll_delay_max);
+ } while (start != end);
+ enable_irq(hiraidq->pci_irq);
+ return ret;
+}
+
+static irqreturn_t hiraid_io_irq(int irq, void *data)
+{
+ struct hiraid_queue *q = data;
+
+ if (hiraid_cqe_pending(q)) {
+ disable_irq_nosync(q->pci_irq);
+ return IRQ_WAKE_THREAD;
+ }
+ return IRQ_NONE;
+}
+
static int hiraid_setup_admin_queue(struct hiraid_dev *hdev)
{
struct hiraid_queue *adminq = &hdev->queues[0];
@@ -1681,9 +1722,11 @@ static int hiraid_setup_admin_queue(struct hiraid_dev *hdev)
NULL, adminq, "hiraid%d_q%d", hdev->instance, adminq->qid);
if (ret) {
adminq->cq_vector = -1;
+ adminq->pci_irq = -1;
return ret;
}
+ adminq->pci_irq = pci_irq_vector(hdev->pdev, adminq->cq_vector);
hiraid_init_queue(adminq, 0);
dev_info(hdev->dev, "setup admin queue success, queuecount[%d] online[%d] pagesize[%d]\n",
@@ -1958,14 +2001,23 @@ static int hiraid_create_queue(struct hiraid_queue *hiraidq, u16 qid)
goto delete_cq;
hiraidq->cq_vector = cq_vector;
- ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_handle_irq, NULL,
- hiraidq, "hiraid%d_q%d", hdev->instance, qid);
+ if (threaded_irq)
+ ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_io_irq,
+ hiraid_io_poll, hiraidq, "hiraid%d_q%d",
+ hdev->instance, qid);
+ else
+ ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_handle_irq,
+ NULL, hiraidq, "hiraid%d_q%d",
+ hdev->instance, qid);
+
if (ret) {
hiraidq->cq_vector = -1;
+ hiraidq->pci_irq = -1;
dev_err(hdev->dev, "request queue[%d] irq failed\n", qid);
goto delete_sq;
}
+ hiraidq->pci_irq = pci_irq_vector(hdev->pdev, hiraidq->cq_vector);
hiraid_init_queue(hiraidq, qid);
return 0;
@@ -2122,10 +2174,11 @@ static int hiraid_setup_io_queues(struct hiraid_dev *hdev)
adminq, "hiraid%d_q%d", hdev->instance, adminq->qid);
if (ret) {
dev_err(hdev->dev, "request admin irq failed\n");
+ adminq->pci_irq = -1;
adminq->cq_vector = -1;
return ret;
}
-
+ adminq->pci_irq = pci_irq_vector(hdev->pdev, adminq->cq_vector);
hdev->online_queues++;
for (i = hdev->queue_count; i <= hdev->max_qid; i++) {
--
2.45.1.windows.1
2
1
[openeuler:OLK-6.6 2/2] drivers/platform/mpam/mpam_devices.c:247:11: error: implicit declaration of function '__acpi_get_mem_attribute'
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi James,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 3e9e723f3bf92a19e5e15dda89bbb136ce463294 [2/2] arm_mpam: Add probe/remove for mpam msc driver and kbuild boiler plate
config: arm64-randconfig-004-20251223 (https://download.01.org/0day-ci/archive/20251223/202512231755.XRc0hf4e-lkp@…)
compiler: aarch64-linux-gcc (GCC) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512231755.XRc0hf4e-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/202512231755.XRc0hf4e-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/mmzone.h:8,
from include/linux/gfp.h:7,
from include/linux/slab.h:16,
from include/linux/resource_ext.h:11,
from include/linux/acpi.h:13,
from drivers/platform/mpam/mpam_devices.c:6:
drivers/platform/mpam/mpam_devices.c: In function 'mpam_msc_drv_probe':
drivers/platform/mpam/mpam_devices.c:212:24: error: 'struct mpam_msc' has no member named 'mon_sel_lock'; did you mean 'part_sel_lock'?
212 | spin_lock_init(&msc->mon_sel_lock);
| ^~~~~~~~~~~~
include/linux/spinlock.h:335:38: note: in definition of macro 'spin_lock_init'
335 | __raw_spin_lock_init(spinlock_check(lock), \
| ^~~~
>> drivers/platform/mpam/mpam_devices.c:247:11: error: implicit declaration of function '__acpi_get_mem_attribute' [-Werror=implicit-function-declaration]
247 | prot = __acpi_get_mem_attribute(msc->pcc_chan->shmem_base_addr);
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/platform/mpam/mpam_devices.c:247:11: error: incompatible types when assigning to type 'pgprot_t' {aka 'struct <anonymous>'} from type 'int'
cc1: some warnings being treated as errors
vim +/__acpi_get_mem_attribute +247 drivers/platform/mpam/mpam_devices.c
170
171 static int mpam_msc_drv_probe(struct platform_device *pdev)
172 {
173 int err;
174 pgprot_t prot;
175 void * __iomem io;
176 struct mpam_msc *msc;
177 struct resource *msc_res;
178 void *plat_data = pdev->dev.platform_data;
179
180 mutex_lock(&mpam_list_lock);
181 do {
182 msc = devm_kzalloc(&pdev->dev, sizeof(*msc), GFP_KERNEL);
183 if (!msc) {
184 err = -ENOMEM;
185 break;
186 }
187
188 INIT_LIST_HEAD_RCU(&msc->glbl_list);
189 msc->pdev = pdev;
190
191 err = device_property_read_u32(&pdev->dev, "arm,not-ready-us",
192 &msc->nrdy_usec);
193 if (err) {
194 /* This will prevent CSU monitors being usable */
195 msc->nrdy_usec = 0;
196 }
197
198 err = get_msc_affinity(msc);
199 if (err)
200 break;
201 if (cpumask_empty(&msc->accessibility)) {
202 pr_err_once("msc:%u is not accessible from any CPU!",
203 msc->id);
204 err = -EINVAL;
205 break;
206 }
207
208 mutex_init(&msc->lock);
209 msc->id = mpam_num_msc++;
210 INIT_LIST_HEAD_RCU(&msc->ris);
211 spin_lock_init(&msc->part_sel_lock);
212 spin_lock_init(&msc->mon_sel_lock);
213
214 if (device_property_read_u32(&pdev->dev, "pcc-channel",
215 &msc->pcc_subspace_id))
216 msc->iface = MPAM_IFACE_MMIO;
217 else
218 msc->iface = MPAM_IFACE_PCC;
219
220 if (msc->iface == MPAM_IFACE_MMIO) {
221 io = devm_platform_get_and_ioremap_resource(pdev, 0,
222 &msc_res);
223 if (IS_ERR(io)) {
224 pr_err("Failed to map MSC base address\n");
225 devm_kfree(&pdev->dev, msc);
226 err = PTR_ERR(io);
227 break;
228 }
229 msc->mapped_hwpage_sz = msc_res->end - msc_res->start;
230 msc->mapped_hwpage = io;
231 } else if (msc->iface == MPAM_IFACE_PCC) {
232 msc->pcc_cl.dev = &pdev->dev;
233 msc->pcc_cl.rx_callback = mpam_pcc_rx_callback;
234 msc->pcc_cl.tx_block = false;
235 msc->pcc_cl.tx_tout = 1000; /* 1s */
236 msc->pcc_cl.knows_txdone = false;
237
238 msc->pcc_chan = pcc_mbox_request_channel(&msc->pcc_cl,
239 msc->pcc_subspace_id);
240 if (IS_ERR(msc->pcc_chan)) {
241 pr_err("Failed to request MSC PCC channel\n");
242 devm_kfree(&pdev->dev, msc);
243 err = PTR_ERR(msc->pcc_chan);
244 break;
245 }
246
> 247 prot = __acpi_get_mem_attribute(msc->pcc_chan->shmem_base_addr);
248 io = ioremap_prot(msc->pcc_chan->shmem_base_addr,
249 msc->pcc_chan->shmem_size, pgprot_val(prot));
250 if (IS_ERR(io)) {
251 pr_err("Failed to map MSC base address\n");
252 pcc_mbox_free_channel(msc->pcc_chan);
253 devm_kfree(&pdev->dev, msc);
254 err = PTR_ERR(io);
255 break;
256 }
257
258 /* TODO: issue a read to update the registers */
259
260 msc->mapped_hwpage_sz = msc->pcc_chan->shmem_size;
261 msc->mapped_hwpage = io + sizeof(struct acpi_pcct_shared_memory);
262 }
263
264 list_add_rcu(&msc->glbl_list, &mpam_all_msc);
265 platform_set_drvdata(pdev, msc);
266 } while (0);
267 mutex_unlock(&mpam_list_lock);
268
269 if (!err) {
270 /* Create RIS entries described by firmware */
271 if (!acpi_disabled)
272 err = acpi_mpam_parse_resources(msc, plat_data);
273 else
274 err = mpam_dt_parse_resources(msc, plat_data);
275 }
276
277 if (!err && fw_num_msc == mpam_num_msc)
278 mpam_discovery_complete();
279
280 return err;
281 }
282
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
23 Dec '25
driver inclusion
category: feature
bugzilla: https://atomgit.com/openeuler/kernel/issues/8292
----------------------------------------------------------------------
The non-strict smmu mode has significant performance gains and can
resolve the nvme soft lockup problem. We enable it by default.
Currently, many peripherals are faster than before. For example, the top
speed of the older netcard is 10Gb/s, and now it's more than 25Gb/s. But
when iommu page-table mapping enabled, it's hard to reach the top speed
in strict mode, because of frequently map and unmap operations. In order
to keep abreast of the times, I think it's better to set non-strict as
default.
Below it's our iperf performance data of 25Gb netcard:
strict mode: 18-20 Gb/s
non-strict mode: 23.5 Gb/s
Qinxin Xia (1):
iommu: set the default iommu-dma mode as non-strict
Documentation/admin-guide/kernel-parameters.txt | 2 +-
arch/arm64/configs/openeuler_defconfig | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
--
2.33.0
2
2
From: Vladimir Riabchun <ferr.lambarginio(a)gmail.com>
stable inclusion
from stable-v6.6.119
commit e81e6d6d99b16dae11adbeda5c996317942a940c
category: bugfix
bugzilla: http://atomgit.com/src-openeuler/kernel/issues/11609
CVE: CVE-2025-68173
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 4099b98203d6b33d990586542fa5beee408032a3 ]
A soft lockup was observed when loading amdgpu module.
If a module has a lot of tracable functions, multiple calls
to kallsyms_lookup can spend too much time in RCU critical
section and with disabled preemption, causing kernel panic.
This is the same issue that was fixed in
commit d0b24b4e91fc ("ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY
kernels") and commit 42ea22e754ba ("ftrace: Add cond_resched() to
ftrace_graph_set_hash()").
Fix it the same way by adding cond_resched() in ftrace_module_enable.
Link: https://lore.kernel.org/aMQD9_lxYmphT-up@vova-pc
Signed-off-by: Vladimir Riabchun <ferr.lambarginio(a)gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt(a)goodmis.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Tengda Wu <wutengda2(a)huawei.com>
---
kernel/trace/ftrace.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 15785a729a0c..398992597685 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -6873,6 +6873,8 @@ void ftrace_module_enable(struct module *mod)
if (!within_module(rec->ip, mod))
break;
+ cond_resched();
+
/* Weak functions should still be ignored */
if (!test_for_valid_rec(rec)) {
/* Clear all other flags. Should not be enabled anyway */
--
2.34.1
2
1
[PATCH openEuler-26.09 0/2] memcg: enable asynchronous reclaim for cgroup-v2
by Chen Ridong 23 Dec '25
by Chen Ridong 23 Dec '25
23 Dec '25
memcg: enable asynchronous reclaim for cgroup-v2
Chen Ridong (2):
memcg: change CONFIG_MEMCG_V1_RECLAIM to CONFIG_MEMCG_QOS
memcg: enable asynchronous reclaim for cgroup-v2
arch/arm64/configs/openeuler_defconfig | 2 +-
arch/riscv/configs/openeuler_defconfig | 2 +-
arch/x86/configs/openeuler_defconfig | 2 +-
include/linux/memcontrol.h | 4 ++--
init/Kconfig | 10 +++++++--
mm/memcontrol.c | 30 ++++++++++++++++----------
6 files changed, 32 insertions(+), 18 deletions(-)
--
2.34.1
2
3
[PATCH OLK-5.10] [Backport] ima: Handle error code returned by ima_filter_rule_match()
by Zhao Yipeng 23 Dec '25
by Zhao Yipeng 23 Dec '25
23 Dec '25
mainline inclusion
from mainline-v6.19-rc1
commit 738c9738e690f5cea24a3ad6fd2d9a323cf614f6
category: bugfix
bugzilla: https://atomgit.com/openeuler/kernel/issues/7810
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to
the rule being NULL, the function incorrectly skips the 'if (!rc)' check
and sets 'result = true'. The LSM rule is considered a match, causing
extra files to be measured by IMA.
This issue can be reproduced in the following scenario:
After unloading the SELinux policy module via 'semodule -d', if an IMA
measurement is triggered before ima_lsm_rules is updated,
in ima_match_rules(), the first call to ima_filter_rule_match() returns
-ESTALE. This causes the code to enter the 'if (rc == -ESTALE &&
!rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In
ima_lsm_copy_rule(), since the SELinux module has been removed, the rule
becomes NULL, and the second call to ima_filter_rule_match() returns
-ENOENT. This bypasses the 'if (!rc)' check and results in a false match.
Call trace:
selinux_audit_rule_match+0x310/0x3b8
security_audit_rule_match+0x60/0xa0
ima_match_rules+0x2e4/0x4a0
ima_match_policy+0x9c/0x1e8
ima_get_action+0x48/0x60
process_measurement+0xf8/0xa98
ima_bprm_check+0x98/0xd8
security_bprm_check+0x5c/0x78
search_binary_handler+0x6c/0x318
exec_binprm+0x58/0x1b8
bprm_execve+0xb8/0x130
do_execveat_common.isra.0+0x1a8/0x258
__arm64_sys_execve+0x48/0x68
invoke_syscall+0x50/0x128
el0_svc_common.constprop.0+0xc8/0xf0
do_el0_svc+0x24/0x38
el0_svc+0x44/0x200
el0t_64_sync_handler+0x100/0x130
el0t_64_sync+0x3c8/0x3d0
Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error
codes like -ENOENT do not bypass the check and accidentally result in a
successful match.
Fixes: 4af4662fa4a9d ("integrity: IMA policy")
Signed-off-by: Zhao Yipeng <zhaoyipeng5(a)huawei.com>
Reviewed-by: Roberto Sassu <roberto.sassu(a)huawei.com>
Signed-off-by: Mimi Zohar <zohar(a)linux.ibm.com>
Signed-off-by: Zhao Yipeng <zhaoyipeng5(a)huawei.com>
---
security/integrity/ima/ima_policy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index fa9942e126b1..e2c617a824a5 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -640,7 +640,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule, struct inode *inode,
goto retry;
}
}
- if (!rc) {
+ if (rc <= 0) {
result = false;
goto out;
}
--
2.34.1
2
1
[PATCH OLK-6.6] [Backport] ima: Handle error code returned by ima_filter_rule_match()
by Zhao Yipeng 23 Dec '25
by Zhao Yipeng 23 Dec '25
23 Dec '25
mainline inclusion
from mainline-v6.19-rc1
commit 738c9738e690f5cea24a3ad6fd2d9a323cf614f6
category: bugfix
bugzilla: https://atomgit.com/openeuler/kernel/issues/7810
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to
the rule being NULL, the function incorrectly skips the 'if (!rc)' check
and sets 'result = true'. The LSM rule is considered a match, causing
extra files to be measured by IMA.
This issue can be reproduced in the following scenario:
After unloading the SELinux policy module via 'semodule -d', if an IMA
measurement is triggered before ima_lsm_rules is updated,
in ima_match_rules(), the first call to ima_filter_rule_match() returns
-ESTALE. This causes the code to enter the 'if (rc == -ESTALE &&
!rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In
ima_lsm_copy_rule(), since the SELinux module has been removed, the rule
becomes NULL, and the second call to ima_filter_rule_match() returns
-ENOENT. This bypasses the 'if (!rc)' check and results in a false match.
Call trace:
selinux_audit_rule_match+0x310/0x3b8
security_audit_rule_match+0x60/0xa0
ima_match_rules+0x2e4/0x4a0
ima_match_policy+0x9c/0x1e8
ima_get_action+0x48/0x60
process_measurement+0xf8/0xa98
ima_bprm_check+0x98/0xd8
security_bprm_check+0x5c/0x78
search_binary_handler+0x6c/0x318
exec_binprm+0x58/0x1b8
bprm_execve+0xb8/0x130
do_execveat_common.isra.0+0x1a8/0x258
__arm64_sys_execve+0x48/0x68
invoke_syscall+0x50/0x128
el0_svc_common.constprop.0+0xc8/0xf0
do_el0_svc+0x24/0x38
el0_svc+0x44/0x200
el0t_64_sync_handler+0x100/0x130
el0t_64_sync+0x3c8/0x3d0
Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error
codes like -ENOENT do not bypass the check and accidentally result in a
successful match.
Fixes: 4af4662fa4a9d ("integrity: IMA policy")
Signed-off-by: Zhao Yipeng <zhaoyipeng5(a)huawei.com>
Reviewed-by: Roberto Sassu <roberto.sassu(a)huawei.com>
Signed-off-by: Mimi Zohar <zohar(a)linux.ibm.com>
Signed-off-by: Zhao Yipeng <zhaoyipeng5(a)huawei.com>
---
security/integrity/ima/ima_policy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index a01f30d2d8cc..ba4f617366a5 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -729,7 +729,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule,
goto retry;
}
}
- if (!rc) {
+ if (rc <= 0) {
result = false;
goto out;
}
--
2.34.1
2
1
Patch #1 is the prerequisite patch, and Patch #2 fixes CVE-2025-39810.
Michael Chan (1):
[Backport] bnxt_en: Fix possible crash after creating sw mqprio TCs
Sreekanth Reddy (1):
[Backport] bnxt_en: Fix memory corruption when FW resources change
during ifdown
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 34 ++++++++++++++-----
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 +
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 2 +-
.../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 +--
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 2 +-
5 files changed, 30 insertions(+), 13 deletions(-)
--
2.34.1
2
3
23 Dec '25
driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IDAPXZ
----------------------------------------------------------------------
The non-strict smmu mode has significant performance gains and can
resolve the nvme soft lockup problem. We enable it by default.
Currently, many peripherals are faster than before. For example, the top
speed of the older netcard is 10Gb/s, and now it's more than 25Gb/s. But
when iommu page-table mapping enabled, it's hard to reach the top speed
in strict mode, because of frequently map and unmap operations. In order
to keep abreast of the times, I think it's better to set non-strict as
default.
Below it's our iperf performance data of 25Gb netcard:
strict mode: 18-20 Gb/s
non-strict mode: 23.5 Gb/s
Qinxin Xia (1):
iommu: set the default iommu-dma mode as non-strict
Documentation/admin-guide/kernel-parameters.txt | 2 +-
arch/arm64/configs/openeuler_defconfig | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
--
2.33.0
2
3
[openeuler:OLK-6.6] BUILD REGRESSION c098fa18c07cc52100a52db8fd0c2900461888c9
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: c098fa18c07cc52100a52db8fd0c2900461888c9 删除文件 .本项目已经正式迁移至AtomGit平台/README.md
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202511241700.GqFsj3QM-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512051112.JRlvwQmR-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512051233.eoZixxMi-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512090002.kbElJ2I7-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512091138.u8NXXfZk-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512091141.r06Y9a5w-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512091204.Q8mSD8MC-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512110543.30EinXFl-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512110706.bkOqQiMM-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512111016.FVDarhlL-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512111142.MddOammZ-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512111243.5gbg71Im-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512111810.cbJGbotT-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512111912.9dS3N6D9-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512112035.fGJa8Hzw-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512121402.K1KWDJc7-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512121829.l6WBMb9f-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512122024.MnPMvwJ8-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512122109.Sy1IvzI5-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512130131.7HrtXRUl-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512131040.ErvjOWkV-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512151347.pYQgm67P-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512151453.z27gHP7d-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512202109.DOPKqwQT-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512210031.v4yKIJFE-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512210038.6F02IwRo-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512210228.QnsbClZ7-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512210422.Gfg4tcZV-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512211025.4cSwOTdS-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512221648.01it8GuK-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230232.mDLII3OZ-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230505.cMBSrJNZ-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230528.roqd2yzx-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230715.3UJUkD3z-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230734.tlvqbdf4-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230823.urp3AnL9-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512230928.obIRItp9-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202512231020.T3d5Cq3i-lkp@intel.com
arch/arm64/kernel/cpufeature.c:2137:13: warning: unused variable 'enable_pseudo_nmi' [-Wunused-variable]
arch/arm64/kvm/arm.c:569:5: warning: no previous prototype for function 'kvm_arch_rec_init' [-Wmissing-prototypes]
arch/loongarch/kernel/asm-offsets.c:173:6: warning: no previous prototype for 'output_thread_lbt_defines' [-Wmissing-prototypes]
arch/x86/kernel/cpu/proc.c:63:5: warning: no previous prototype for 'show_cpuinfo' [-Wmissing-prototypes]
arch/x86/kernel/cpu/proc.c:63:5: warning: no previous prototype for function 'show_cpuinfo' [-Wmissing-prototypes]
arch/x86/kernel/early-quirks.c:722:6: warning: no previous prototype for function 'is_zhaoxin_kh40000' [-Wmissing-prototypes]
arch/x86/kernel/early-quirks.c:727:34: warning: no previous prototype for function 'kh40000_get_direct_dma_ops' [-Wmissing-prototypes]
block/genhd.c:100:6: warning: no previous prototype for 'part_stat_read_all' [-Wmissing-prototypes]
block/genhd.c:100:6: warning: no previous prototype for function 'part_stat_read_all' [-Wmissing-prototypes]
drivers/ata/libahci.c:210:5: warning: no previous prototype for function 'get_ahci_em_messages' [-Wmissing-prototypes]
drivers/block/drbd/drbd_bitmap.c:1232: warning: Function parameter or member 'peer_device' not described in 'drbd_bm_write'
drivers/clocksource/arm_arch_timer.c:371:33: warning: unused variable 'hisi_165010801_oem_info' [-Wunused-variable]
drivers/crypto/ccp/hygon/ccp-mdev.c:1144:15: warning: no previous prototype for function 'ccp_pin_memory' [-Wmissing-prototypes]
drivers/dax/super.c:45: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'dax_device'
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c:1450:52: warning: '%s' directive output may be truncated writing between 1 and 2 bytes into a region of size between 0 and 29 [-Wformat-truncation=]
drivers/i2c/busses/i2c-zhaoxin.c:176:5: warning: no previous prototype for function 'zxi2c_fifo_irq_xfer' [-Wmissing-prototypes]
drivers/i2c/busses/i2c-zhaoxin.c:314:5: warning: no previous prototype for function 'zxi2c_xfer' [-Wmissing-prototypes]
drivers/irqchip/irq-gic-v3.c:561:6: warning: no previous prototype for 'gic_irq_set_prio' [-Wmissing-prototypes]
drivers/irqchip/irq-gic-v3.c:561:6: warning: no previous prototype for function 'gic_irq_set_prio' [-Wmissing-prototypes]
drivers/irqchip/irq-mbigen.c:129: warning: Function parameter or member 'vtimer_mbigen_chip' not described in 'mbigen_device'
drivers/irqchip/irq-mbigen.c:138: warning: expecting prototype for Due to the existence of hyper(). Prototype was for GICR_LENGTH() instead
drivers/media/platform/cadence/cdns-csi2tx.c:485:63: warning: '%u' directive output may be truncated writing between 1 and 10 bytes into a region of size 8 [-Wformat-truncation=]
drivers/net/ethernet/linkdata/sxe/base/log/sxe_log.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/base/trace/sxe_trace.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_csum.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_dcb.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:432:6: error: no previous prototype for 'sxe_debugfs_entries_init' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:459:6: error: no previous prototype for 'sxe_debugfs_entries_exit' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:465:6: error: no previous prototype for 'sxe_debugfs_init' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:470:6: error: no previous prototype for 'sxe_debugfs_exit' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2022:5: error: no previous prototype for 'sxe_reg_test' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2644:5: error: no previous prototype for 'sxe_phys_id_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2736:47: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_filter.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1033:6: error: no previous prototype for 'sxe_hw_is_link_state_up' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1064:5: error: no previous prototype for 'sxe_hw_fc_enable' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1135:6: error: no previous prototype for 'sxe_fc_autoneg_localcap_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1256:6: error: no previous prototype for 'sxe_hw_crc_configure' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1330:6: error: no previous prototype for 'sxe_hw_fc_tc_high_water_mark_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1335:6: error: no previous prototype for 'sxe_hw_fc_tc_low_water_mark_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1340:6: error: no previous prototype for 'sxe_hw_is_fc_autoneg_disabled' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1345:6: error: no previous prototype for 'sxe_hw_fc_autoneg_disable_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1360:6: error: no previous prototype for 'sxe_hw_fc_requested_mode_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:1437:6: error: no previous prototype for 'sxe_hw_fc_mac_addr_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2147:6: error: no previous prototype for 'sxe_hw_fnav_enable' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2204:5: error: no previous prototype for 'sxe_hw_fnav_port_mask_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2310:5: error: no previous prototype for 'sxe_hw_fnav_specific_rule_mask_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2445:5: error: no previous prototype for 'sxe_hw_fnav_specific_rule_add' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2469:5: error: no previous prototype for 'sxe_hw_fnav_specific_rule_del' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2500:6: error: no previous prototype for 'sxe_hw_fnav_sample_rule_configure' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:2587:5: error: no previous prototype for 'sxe_hw_fnav_sample_rules_table_reinit' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3147:6: error: no previous prototype for 'sxe_hw_all_ring_disable' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3295:6: error: no previous prototype for 'sxe_hw_dcb_rx_bw_alloc_configure' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3330:6: error: no previous prototype for 'sxe_hw_dcb_tx_desc_bw_alloc_configure' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3360:6: error: no previous prototype for 'sxe_hw_dcb_tx_data_bw_alloc_configure' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3397:6: error: no previous prototype for 'sxe_hw_dcb_pfc_configure' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3565:6: error: no previous prototype for 'sxe_hw_dcb_max_mem_window_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3570:6: error: no previous prototype for 'sxe_hw_dcb_tx_ring_rate_factor_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:3674:6: error: no previous prototype for 'sxe_hw_dcb_rate_limiter_clear' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4497:5: error: no previous prototype for 'sxe_hw_hdc_lock_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4536:6: error: no previous prototype for 'sxe_hw_hdc_lock_release' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4552:6: error: no previous prototype for 'sxe_hw_hdc_fw_ov_clear' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4557:6: error: no previous prototype for 'sxe_hw_hdc_is_fw_over_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4567:6: error: no previous prototype for 'sxe_hw_hdc_packet_send_done' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4573:6: error: no previous prototype for 'sxe_hw_hdc_packet_header_send' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4578:6: error: no previous prototype for 'sxe_hw_hdc_packet_data_dword_send' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4584:5: error: no previous prototype for 'sxe_hw_hdc_fw_ack_header_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4589:5: error: no previous prototype for 'sxe_hw_hdc_packet_data_dword_rcv' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4594:5: error: no previous prototype for 'sxe_hw_hdc_fw_status_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4604:6: error: no previous prototype for 'sxe_hw_hdc_drv_status_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:4609:5: error: no previous prototype for 'sxe_hw_hdc_channel_state_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:5: error: no previous prototype for 'sxe_hw_irq_cause_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:6: error: no previous prototype for 'sxe_hw_irq_general_reg_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:5: error: no previous prototype for 'sxe_hw_irq_general_reg_get' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:6: error: no previous prototype for 'sxe_hw_event_irq_map' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:6: error: no previous prototype for 'sxe_hw_event_irq_auto_clear_set' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for 'sxe_hw_all_irq_disable' [-Werror=missing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:994:5: error: no previous prototype for function 'sxe_hw_link_speed_get' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ipsec.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ptp.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_tx_proc.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxevf/base/log/sxe_log.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_csum.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:640:6: error: no previous prototype for function 'sxevf_rx_rcv_ctl_configure' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_main.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_monitor.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_netdev.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_ring.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/nebula-matrix/nbl/nbl_common/nbl_common.c:171: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/nebula-matrix/nbl/nbl_common/nbl_common.c:674:6: warning: variable 'node_num' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_common/nbl_common.c:798:13: warning: variable 'node_size' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_common/nbl_common.c:798:6: warning: variable 'node_size' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:756:16: warning: variable 'vfn' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:756:23: warning: variable 'vfn' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:3554:38: warning: variable 'param' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:3554:45: warning: variable 'param' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:7888:26: warning: variable 'chan_ops' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:7888:33: warning: variable 'chan_ops' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:3025:28: warning: variable 'ring_mgt' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:3025:35: warning: variable 'ring_mgt' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:1823:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:1823:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:644:55: warning: '%08x' directive output may be truncated writing 8 bytes into a region of size between 2 and 11 [-Wformat-truncation=]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_flow_leonis.c:893:22: warning: variable 'phy_ops' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_flow_leonis.c:893:29: warning: variable 'phy_ops' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_interrupt.c:12:17: warning: variable 'dev' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_interrupt.c:12:24: warning: variable 'dev' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c:1196: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c:76:24: warning: variable 'queue_mgt' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c:76:31: warning: variable 'queue_mgt' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c:96:22: warning: variable 'vsi_mgt' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c:96:29: warning: variable 'vsi_mgt' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c:97:22: warning: variable 'phy_ops' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_vsi.c:97:29: warning: variable 'phy_ops' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/nebula-matrix/nbl/nbl_main.c:434: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
drivers/pinctrl/zhaoxin/pinctrl-zhaoxin.c:123:13: warning: variable 'value_back' set but not used [-Wunused-but-set-variable]
drivers/pinctrl/zhaoxin/pinctrl-zhaoxin.c:123:6: warning: variable 'value_back' set but not used [-Wunused-but-set-variable]
drivers/pinctrl/zhaoxin/pinctrl-zhaoxin.c:487:13: warning: variable 'test_mask' set but not used [-Wunused-but-set-variable]
drivers/pinctrl/zhaoxin/pinctrl-zhaoxin.c:487:6: warning: variable 'test_mask' set but not used [-Wunused-but-set-variable]
drivers/scsi/linkdata/ps3stor/./linux/ps3_driver_log.c:41:19: error: unused function 'time_for_log' [-Werror,-Wunused-function]
drivers/scsi/linkdata/ps3stor/./linux/ps3_driver_log.c:65:19: error: unused function 'time_for_file_name' [-Werror,-Wunused-function]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:21:27: error: unused variable 'PS3_INTERRUPT_CMD_DISABLE_ALL_MASK' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:22:27: error: unused variable 'PS3_INTERRUPT_CMD_ENABLE_MSIX' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:23:27: error: unused variable 'PS3_INTERRUPT_MASK_DISABLE' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:24:27: error: unused variable 'PS3_INTERRUPT_STATUS_EXIST_IRQ' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:25:27: error: unused variable 'PS3_INTERRUPT_CLEAR_IRQ' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:27:27: error: unused variable 'PS3_SSD_IOPS_MSIX_VECTORS' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:28:27: error: unused variable 'PS3_HDD_IOPS_MSIX_VECTORS' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3023:6: error: no previous prototype for function 'ps3_hba_qos_waitq_poll' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3279:15: error: no previous prototype for function 'ps3_raid_qos_decision' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3334:6: error: no previous prototype for function 'ps3_qos_mgrq_resend' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3478:6: error: no previous prototype for function 'ps3_raid_qos_waitq_notify' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3821:15: error: no previous prototype for function 'ps3_raid_qos_waitq_abort' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1958:1: error: unused function 'ps3_scsih_dev_id_get' [-Werror,-Wunused-function]
drivers/spi/spi-axi-spi-engine.c:101: warning: Function parameter or member 'p' not described in 'spi_engine_message_state'
drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: sparse: incorrect type in argument 1 (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: sparse: incorrect type in argument 2 (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: sparse: incorrect type in argument 1 (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:254:13: sparse: sparse: symbol 'ls2k500sfb_interrupt' was not declared. Should it be static?
drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: sparse: incorrect type in argument 1 (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: sparse: incorrect type in argument 2 (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: sparse: incorrect type in assignment (different address spaces)
drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: sparse: incorrect type in assignment (different address spaces)
fs/nfs/dir.c:1500:6: warning: no previous prototype for 'nfs_check_have_lookup_cache_flag' [-Wmissing-prototypes]
fs/nfs/dir.c:1500:6: warning: no previous prototype for function 'nfs_check_have_lookup_cache_flag' [-Wmissing-prototypes]
fs/resctrl/monitor.c:51: warning: Cannot understand * @closid_num_dirty_rmid The number of dirty RMID each CLOSID has.
fs/xfs/libxfs/xfs_alloc.c:103:1: warning: no previous prototype for function 'xfs_ag_fixup_aside' [-Wmissing-prototypes]
include/linux/fortify-string.h:507:4: warning: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning]
include/linux/mmzone.h:1834:2: error: #error Allocator MAX_ORDER exceeds SECTION_SIZE
include/linux/mmzone.h:1834:2: error: Allocator MAX_ORDER exceeds SECTION_SIZE
kernel/bpf/mprog.c:420:13: warning: default initialization of an object of type 'typeof ((attr->query.prog_ids))' (aka 'const unsigned long long') leaves the object uninitialized [-Wdefault-const-init-var-unsafe]
kernel/bpf/mprog.c:421:16: warning: default initialization of an object of type 'typeof ((attr->query.prog_attach_flags))' (aka 'const unsigned long long') leaves the object uninitialized [-Wdefault-const-init-var-unsafe]
kernel/bpf/mprog.c:422:13: warning: default initialization of an object of type 'typeof ((attr->query.link_ids))' (aka 'const unsigned long long') leaves the object uninitialized [-Wdefault-const-init-var-unsafe]
kernel/bpf/mprog.c:423:16: warning: default initialization of an object of type 'typeof ((attr->query.link_attach_flags))' (aka 'const unsigned long long') leaves the object uninitialized [-Wdefault-const-init-var-unsafe]
kernel/cpu.c:2684: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
kernel/dma/contiguous.c:212:13: warning: no previous prototype for 'is_zhaoxin_kh40000' [-Wmissing-prototypes]
kernel/dma/contiguous.c:212:13: warning: no previous prototype for function 'is_zhaoxin_kh40000' [-Wmissing-prototypes]
kernel/fork.c:2233: warning: Excess function parameter 'pidfd' description in '__pidfd_prepare'
kernel/fork.c:2233: warning: Function parameter or member 'ret' not described in '__pidfd_prepare'
kernel/fork.c:2282: warning: Excess function parameter 'pidfd' description in 'pidfd_prepare'
kernel/fork.c:2282: warning: Function parameter or member 'ret' not described in 'pidfd_prepare'
kernel/irq/proc.c:338:13: warning: no previous prototype for function 'register_irqchip_proc' [-Wmissing-prototypes]
kernel/irq/proc.c:339:13: warning: no previous prototype for function 'unregister_irqchip_proc' [-Wmissing-prototypes]
kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
kernel/power/swap.c:1572: warning: Excess function parameter 'exclusive' description in 'swsusp_close'
kernel/sched/debug.c:102:12: warning: no previous prototype for 'is_prefer_numa' [-Wmissing-prototypes]
lib/iov_iter.c:330:38: sparse: sparse: incorrect type in argument 1 (different address spaces)
lib/kunit/test.c:862:38: warning: cast from 'void (*)(const void *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
lib/overflow_kunit.c:998:9: sparse: sparse: cast truncates bits from constant value (ffffff01 becomes 1)
lib/percpu_counter.c:178:33: sparse: sparse: incorrect type in assignment (different address spaces)
lib/percpu_counter.c:178:36: sparse: sparse: cast removes address space '__percpu' of expression
mm/gmem.c:383:13: warning: unused variable 'nid' [-Wunused-variable]
mm/gmem.c:383:6: warning: unused variable 'nid' [-Wunused-variable]
mm/madvise.c:285:6: warning: no previous prototype for 'force_swapin_vma' [-Wmissing-prototypes]
mm/madvise.c:285:6: warning: no previous prototype for function 'force_swapin_vma' [-Wmissing-prototypes]
mm/memblock.c:1444:20: warning: no previous prototype for 'memblock_alloc_range_nid_flags' [-Wmissing-prototypes]
mm/memblock.c:1444:20: warning: no previous prototype for function 'memblock_alloc_range_nid_flags' [-Wmissing-prototypes]
mm/memblock.c:1611: warning: expecting prototype for memblock_alloc_internal(). Prototype was for __memblock_alloc_internal() instead
mm/mempolicy.c:1145:25: warning: variable 'vma' set but not used [-Wunused-but-set-variable]
mm/mempolicy.c:1145:32: warning: variable 'vma' set but not used [-Wunused-but-set-variable]
mm/vmalloc.c:4443: warning: Function parameter or member 'pgoff' not described in 'remap_vmalloc_hugepage_range_partial'
mm/vmalloc.c:4976: warning: Function parameter or member 'pgoff' not described in 'remap_vmalloc_hugepage_range_partial'
net/ipv4/tcp_output.c:1371:12: warning: variable 'tcp_hdr_rsrvd_4b' set but not used [-Wunused-but-set-variable]
net/ipv4/tcp_output.c:1371:5: warning: variable 'tcp_hdr_rsrvd_4b' set but not used [-Wunused-but-set-variable]
Unverified Error/Warning (likely false positive, kindly check if interested):
arch/arm64/mm/fixmap.c:190:10: warning: variable 'bm_pudp' set but not used [-Wunused-but-set-variable]
arch/x86/kvm/../../../virt/kvm/eventfd.c:1098: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
arch/x86/kvm/../../../virt/kvm/eventfd.c:718: warning: cannot understand function prototype: 'struct eventfd_shadow '
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allnoconfig
| |-- block-genhd.c:warning:no-previous-prototype-for-part_stat_read_all
| |-- drivers-irqchip-irq-gic-v3.c:warning:no-previous-prototype-for-gic_irq_set_prio
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-001-20251215
| `-- arch-arm64-kvm-arm.c:warning:no-previous-prototype-for-function-kvm_arch_rec_init
|-- arm64-randconfig-001-20251223
| |-- block-genhd.c:warning:no-previous-prototype-for-function-part_stat_read_all
| |-- drivers-clocksource-arm_arch_timer.c:warning:unused-variable-hisi_165010801_oem_info
| |-- drivers-crypto-ccp-hygon-ccp-mdev.c:warning:no-previous-prototype-for-function-ccp_pin_memory
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-spmi-spmi-pmic-arb.c:warning:Function-parameter-or-member-core-not-described-in-spmi_pmic_arb
| |-- fs-resctrl-monitor.c:warning:Cannot-understand-closid_num_dirty_rmid-The-number-of-dirty-RMID-each-CLOSID-has.
| |-- fs-xfs-libxfs-xfs_alloc.c:warning:no-previous-prototype-for-function-xfs_ag_fixup_aside
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-function-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- lib-crypto-mpi-mpi-inv.c:warning:variable-k-set-but-not-used
| |-- lib-kunit-test.c:warning:cast-from-void-(-)(const-void-)-to-kunit_action_t-(aka-void-(-)(void-)-)-converts-to-incompatible-function-type
| |-- mm-gmem.c:warning:unused-variable-nid
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| `-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
|-- arm64-randconfig-002-20251223
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-irqchip-irq-gic-v3.c:warning:no-previous-prototype-for-function-gic_irq_set_prio
| |-- fs-resctrl-monitor.c:warning:Cannot-understand-closid_num_dirty_rmid-The-number-of-dirty-RMID-each-CLOSID-has.
| |-- kernel-bpf-mprog.c:warning:default-initialization-of-an-object-of-type-typeof-((attr-query.link_attach_flags))-(aka-const-unsigned-long-long-)-leaves-the-object-uninitialized
| |-- kernel-bpf-mprog.c:warning:default-initialization-of-an-object-of-type-typeof-((attr-query.link_ids))-(aka-const-unsigned-long-long-)-leaves-the-object-uninitialized
| |-- kernel-bpf-mprog.c:warning:default-initialization-of-an-object-of-type-typeof-((attr-query.prog_attach_flags))-(aka-const-unsigned-long-long-)-leaves-the-object-uninitialized
| |-- kernel-bpf-mprog.c:warning:default-initialization-of-an-object-of-type-typeof-((attr-query.prog_ids))-(aka-const-unsigned-long-long-)-leaves-the-object-uninitialized
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- lib-crypto-mpi-mpi-inv.c:warning:variable-k-set-but-not-used
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| `-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
|-- arm64-randconfig-003-20251223
| |-- arch-arm64-kernel-cpufeature.c:warning:unused-variable-enable_pseudo_nmi
| |-- drivers-crypto-ccp-hygon-ccp-mdev.c:warning:no-previous-prototype-for-function-ccp_pin_memory
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-spmi-spmi-pmic-arb.c:warning:Function-parameter-or-member-core-not-described-in-spmi_pmic_arb
| |-- fs-resctrl-monitor.c:warning:Cannot-understand-closid_num_dirty_rmid-The-number-of-dirty-RMID-each-CLOSID-has.
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-function-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- lib-crypto-mpi-mpi-inv.c:warning:variable-k-set-but-not-used
| |-- lib-kunit-test.c:warning:cast-from-void-(-)(const-void-)-to-kunit_action_t-(aka-void-(-)(void-)-)-converts-to-incompatible-function-type
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| `-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
|-- arm64-randconfig-004-20251223
| |-- arch-arm64-mm-fixmap.c:warning:variable-bm_pudp-set-but-not-used
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-gpu-drm-amd-amdgpu-amdgpu_mes.c:warning:s-directive-output-may-be-truncated-writing-between-and-bytes-into-a-region-of-size-between-and
| |-- drivers-irqchip-irq-mbigen.c:warning:Function-parameter-or-member-vtimer_mbigen_chip-not-described-in-mbigen_device
| |-- drivers-irqchip-irq-mbigen.c:warning:expecting-prototype-for-Due-to-the-existence-of-hyper().-Prototype-was-for-GICR_LENGTH()-instead
| |-- fs-resctrl-monitor.c:warning:Cannot-understand-closid_num_dirty_rmid-The-number-of-dirty-RMID-each-CLOSID-has.
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-sched-debug.c:warning:no-previous-prototype-for-is_prefer_numa
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-mempolicy.c:warning:variable-vma-set-but-not-used
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-r113-20251213
| |-- kernel-sched-fair.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-struct-task_struct-sibling_p-got-struct-task_struct-noderef-__rcu-curr
| |-- kernel-sched-fair.c:sparse:sparse:symbol-sysctl_sched_prio_load_balance_enabled-was-not-declared.-Should-it-be-static
| |-- kernel-sched-fair.c:sparse:sparse:symbol-sysctl_sched_util_low_pct-was-not-declared.-Should-it-be-static
| |-- kernel-sched-topology.c:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-restricted-gfp_t-usertype-flags-got-int-flags
| `-- kernel-sched-topology.c:sparse:sparse:incorrect-type-in-initializer-(different-base-types)-expected-int-flags-got-restricted-gfp_t
|-- arm64-randconfig-r132-20251218
| |-- security-integrity-ima-ima_digest_list.c:sparse:sparse:cast-to-restricted-__le16
| |-- security-integrity-ima-ima_digest_list.c:sparse:sparse:cast-to-restricted-__le32
| `-- security-integrity-ima-ima_digest_list.c:sparse:sparse:symbol-parser_task-was-not-declared.-Should-it-be-static
|-- loongarch-allnoconfig
| |-- block-genhd.c:warning:no-previous-prototype-for-function-part_stat_read_all
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-001-20251223
| |-- arch-loongarch-kernel-asm-offsets.c:warning:no-previous-prototype-for-output_thread_lbt_defines
| `-- include-linux-mmzone.h:error:error-Allocator-MAX_ORDER-exceeds-SECTION_SIZE
|-- loongarch-randconfig-002-20251223
| `-- include-linux-mmzone.h:error:Allocator-MAX_ORDER-exceeds-SECTION_SIZE
|-- loongarch-randconfig-r061-20251223
| |-- arch-loongarch-kernel-asm-offsets.c:warning:no-previous-prototype-for-output_thread_lbt_defines
| `-- include-linux-mmzone.h:error:error-Allocator-MAX_ORDER-exceeds-SECTION_SIZE
|-- x86_64-allnoconfig
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-function-show_cpuinfo
| |-- block-genhd.c:warning:no-previous-prototype-for-function-part_stat_read_all
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-allyesconfig
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_driver_log.c:error:unused-function-time_for_file_name-Werror-Wunused-function
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_driver_log.c:error:unused-function-time_for_log-Werror-Wunused-function
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_HDD_IOPS_MSIX_VECTORS-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_CLEAR_IRQ-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_CMD_DISABLE_ALL_MASK-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_CMD_ENABLE_MSIX-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_MASK_DISABLE-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_STATUS_EXIST_IRQ-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_SSD_IOPS_MSIX_VECTORS-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_mgrq_resend-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_raid_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_raid_qos_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_raid_qos_waitq_notify-Werror-Wmissing-prototypes
| `-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
|-- x86_64-buildonly-randconfig-006-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-function-show_cpuinfo
| |-- block-genhd.c:warning:no-previous-prototype-for-function-part_stat_read_all
| |-- drivers-ata-libahci.c:warning:no-previous-prototype-for-function-get_ahci_em_messages
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- fs-xfs-libxfs-xfs_alloc.c:warning:no-previous-prototype-for-function-xfs_ag_fixup_aside
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-function-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- lib-crypto-mpi-mpi-inv.c:warning:variable-k-set-but-not-used
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-defconfig
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-show_cpuinfo
| |-- block-genhd.c:warning:no-previous-prototype-for-part_stat_read_all
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_phys_id_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_reg_test
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_fc_autoneg_localcap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_ring_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_crc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_max_mem_window_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_pfc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rate_limiter_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rx_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_data_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_desc_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_ring_rate_factor_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_auto_clear_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_autoneg_disable_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_mac_addr_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_requested_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_high_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_low_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_port_mask_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rule_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rules_table_reinit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_mask_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_channel_state_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_drv_status_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ack_header_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ov_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_status_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_is_fw_over_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_release
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_rcv
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_header_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_send_done
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_cause_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_fc_autoneg_disabled
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_link_state_up
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_pad_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_txrx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_mem_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_nic_reset
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_no_snoop_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pcie_vt_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_read_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_write_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pf_rst_done_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pfc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_mac_anti_spoof_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_ring_drop_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_is_rx_timestamp_valid
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_tx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rcv_msg_from_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_auto_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_key_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_reg_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_off
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_on
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_ctrl_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_lro_ctrl_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_drop_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ack_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_multi_ring_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_nfs_filter_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pkt_buf_size_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_queue_desc_reg_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_udp_frag_checksum_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_send_msg_to_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_spoof_count_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_regs_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_seq_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_size_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_thresh_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_head_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_info_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_tail_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_insert_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_tag_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_ack_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_req_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_rst_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_pool_filter_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_tag_strip_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlvf_slot_find
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_ctrl_cfg
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_pool_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_dcb
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_rss
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_lsc_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_mailbox_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_msi_irq_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-sxe_allow_inval_mac
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-sxe_multispeed_sfp_link_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_headers_cleanup
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_rx_buffer_page_offset_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-sxe_set_vf_link_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_32bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_36bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_reset
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_stop
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_disable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_link_state_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_packet_stats_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_ack_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_req_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_stats_init_value_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-sxevf_rx_ring_buffers_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_free
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-else-statement
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- fs-nfs-dir.c:warning:no-previous-prototype-for-nfs_check_have_lookup_cache_flag
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-power-swap.c:warning:Excess-function-parameter-exclusive-description-in-swsusp_close
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-mempolicy.c:warning:variable-vma-set-but-not-used
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-001-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-show_cpuinfo
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-kh40000_get_direct_dma_ops
| |-- block-genhd.c:warning:no-previous-prototype-for-part_stat_read_all
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_phys_id_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_reg_test
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_fc_autoneg_localcap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_ring_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_crc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_max_mem_window_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_pfc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rate_limiter_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rx_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_data_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_desc_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_ring_rate_factor_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_auto_clear_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_autoneg_disable_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_mac_addr_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_requested_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_high_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_low_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_port_mask_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rule_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rules_table_reinit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_mask_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_channel_state_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_drv_status_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ack_header_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ov_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_status_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_is_fw_over_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_release
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_rcv
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_header_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_send_done
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_cause_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_fc_autoneg_disabled
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_link_state_up
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_pad_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_txrx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_mem_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_nic_reset
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_no_snoop_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pcie_vt_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_read_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_write_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pf_rst_done_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pfc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_mac_anti_spoof_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_ring_drop_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_is_rx_timestamp_valid
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_tx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rcv_msg_from_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_auto_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_key_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_reg_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_off
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_on
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_ctrl_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_lro_ctrl_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_drop_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ack_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_multi_ring_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_nfs_filter_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pkt_buf_size_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_queue_desc_reg_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_udp_frag_checksum_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_send_msg_to_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_spoof_count_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_regs_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_seq_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_size_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_thresh_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_head_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_info_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_tail_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_insert_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_tag_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_ack_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_req_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_rst_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_pool_filter_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_tag_strip_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlvf_slot_find
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_ctrl_cfg
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_pool_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_dcb
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_rss
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_lsc_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_mailbox_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_msi_irq_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-sxe_allow_inval_mac
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-sxe_multispeed_sfp_link_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_headers_cleanup
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_rx_buffer_page_offset_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-sxe_set_vf_link_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_32bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_36bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_reset
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_stop
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_disable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_link_state_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_packet_stats_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_ack_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_req_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_stats_init_value_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-sxevf_rx_ring_buffers_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_free
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-else-statement
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_size-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-chan_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-param-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_service.c:warning:variable-ring_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:08x-directive-output-may-be-truncated-writing-bytes-into-a-region-of-size-between-and
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_flow_leonis.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_interrupt.c:warning:variable-dev-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_txrx.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-vsi_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- drivers-spi-spi-axi-spi-engine.c:warning:Function-parameter-or-member-p-not-described-in-spi_engine_message_state
| |-- fs-nfs-dir.c:warning:no-previous-prototype-for-nfs_check_have_lookup_cache_flag
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-power-swap.c:warning:Excess-function-parameter-exclusive-description-in-swsusp_close
| |-- kernel-sched-debug.c:warning:no-previous-prototype-for-is_prefer_numa
| |-- lib-test_kmod.c:warning:Function-parameter-or-member-task_sync-not-described-in-kmod_test_device_info
| |-- lib-test_kmod.c:warning:Function-parameter-or-member-thread_mutex-not-described-in-kmod_test_device
| |-- mm-gmem.c:warning:unused-variable-nid
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-002-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-function-show_cpuinfo
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-function-is_zhaoxin_kh40000
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-function-kh40000_get_direct_dma_ops
| |-- block-genhd.c:warning:no-previous-prototype-for-function-part_stat_read_all
| |-- drivers-ata-libahci.c:warning:no-previous-prototype-for-function-get_ahci_em_messages
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_entries_exit-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_entries_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_exit-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-function-sxe_phys_id_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-function-sxe_reg_test-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_event_irq_auto_clear_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_event_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_cause_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_general_reg_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_general_reg_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_link_speed_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_nic_reset-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_no_snoop_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pending_irq_read_clear-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pending_irq_write_clear-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pf_rst_done_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_ring_irq_auto_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_ring_irq_interval_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_ring_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_uc_addr_pool_del-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_uc_addr_pool_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_disable_dcb-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_disable_rss-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_lsc_irq_handler-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_mailbox_irq_handler-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_msi_irq_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-function-sxe_allow_inval_mac-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-function-sxe_multispeed_sfp_link_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-function-sxe_headers_cleanup-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-function-sxe_rx_buffer_page_offset_update-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-function-sxe_set_vf_link_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used-Werror-Wunused-but-set-variable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_event_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_hw_reset-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_hw_ring_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_hw_stop-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_irq_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_link_state_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_mailbox_read-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_mailbox_write-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_msg_read-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_msg_write-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_pf_ack_irq_trigger-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_pf_req_irq_trigger-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_ring_irq_interval_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_rcv_ctl_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_specific_irq_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-function-sxevf_rx_ring_buffers_alloc-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-function-sxevf_tx_ring_alloc-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-function-sxevf_tx_ring_free-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_num-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_size-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-chan_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-param-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_service.c:warning:variable-ring_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_flow_leonis.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_interrupt.c:warning:variable-dev-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_txrx.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-vsi_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- drivers-spi-spi-axi-spi-engine.c:warning:Function-parameter-or-member-p-not-described-in-spi_engine_message_state
| |-- fs-nfs-dir.c:warning:no-previous-prototype-for-function-nfs_check_have_lookup_cache_flag
| |-- fs-xfs-libxfs-xfs_alloc.c:warning:no-previous-prototype-for-function-xfs_ag_fixup_aside
| |-- include-linux-fortify-string.h:warning:call-to-__write_overflow_field-declared-with-warning-attribute:detected-write-beyond-size-of-field-(1st-parameter)-maybe-use-struct_group()
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-livepatch-core.c:warning:bad-line:
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- kernel-power-swap.c:warning:Excess-function-parameter-exclusive-description-in-swsusp_close
| |-- lib-crypto-mpi-mpi-inv.c:warning:variable-k-set-but-not-used
| |-- lib-kunit-test.c:warning:cast-from-void-(-)(const-void-)-to-kunit_action_t-(aka-void-(-)(void-)-)-converts-to-incompatible-function-type
| |-- lib-test_kmod.c:warning:Function-parameter-or-member-task_sync-not-described-in-kmod_test_device_info
| |-- lib-test_kmod.c:warning:Function-parameter-or-member-thread_mutex-not-described-in-kmod_test_device
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-003-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-show_cpuinfo
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-kh40000_get_direct_dma_ops
| |-- block-genhd.c:warning:no-previous-prototype-for-part_stat_read_all
| |-- drivers-block-drbd-drbd_bitmap.c:warning:Function-parameter-or-member-peer_device-not-described-in-drbd_bm_write
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_phys_id_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_reg_test
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_fc_autoneg_localcap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_ring_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_crc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_max_mem_window_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_pfc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rate_limiter_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rx_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_data_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_desc_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_ring_rate_factor_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_auto_clear_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_autoneg_disable_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_mac_addr_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_requested_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_high_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_low_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_port_mask_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rule_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rules_table_reinit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_mask_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_channel_state_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_drv_status_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ack_header_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ov_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_status_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_is_fw_over_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_release
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_rcv
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_header_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_send_done
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_cause_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_fc_autoneg_disabled
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_link_state_up
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_pad_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_txrx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_mem_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_nic_reset
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_no_snoop_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pcie_vt_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_read_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_write_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pf_rst_done_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pfc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_mac_anti_spoof_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_ring_drop_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_is_rx_timestamp_valid
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_tx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rcv_msg_from_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_auto_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_key_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_reg_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_off
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_on
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_ctrl_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_lro_ctrl_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_drop_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ack_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_multi_ring_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_nfs_filter_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pkt_buf_size_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_queue_desc_reg_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_udp_frag_checksum_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_send_msg_to_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_spoof_count_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_regs_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_seq_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_size_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_thresh_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_head_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_info_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_tail_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_insert_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_tag_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_ack_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_req_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_rst_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_pool_filter_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_tag_strip_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlvf_slot_find
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_ctrl_cfg
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_pool_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_dcb
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_rss
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_lsc_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_mailbox_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_msi_irq_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-sxe_allow_inval_mac
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-sxe_multispeed_sfp_link_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_headers_cleanup
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_rx_buffer_page_offset_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-sxe_set_vf_link_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_32bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_36bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_reset
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_stop
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_disable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_link_state_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_packet_stats_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_ack_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_req_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_stats_init_value_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-sxevf_rx_ring_buffers_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_free
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-else-statement
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_size-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-chan_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-param-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_service.c:warning:variable-ring_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:08x-directive-output-may-be-truncated-writing-bytes-into-a-region-of-size-between-and
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_flow_leonis.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_interrupt.c:warning:variable-dev-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_txrx.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-vsi_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- fs-nfs-dir.c:warning:no-previous-prototype-for-nfs_check_have_lookup_cache_flag
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-livepatch-core.c:warning:bad-line:
| |-- kernel-sched-debug.c:warning:no-previous-prototype-for-is_prefer_numa
| |-- mm-gmem.c:warning:unused-variable-nid
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-004-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-function-show_cpuinfo
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-function-is_zhaoxin_kh40000
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-function-kh40000_get_direct_dma_ops
| |-- block-genhd.c:warning:no-previous-prototype-for-function-part_stat_read_all
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-i2c-busses-i2c-zhaoxin.c:warning:no-previous-prototype-for-function-zxi2c_fifo_irq_xfer
| |-- drivers-i2c-busses-i2c-zhaoxin.c:warning:no-previous-prototype-for-function-zxi2c_xfer
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_entries_exit-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_entries_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_exit-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-function-sxe_phys_id_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-function-sxe_reg_test-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_event_irq_auto_clear_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_event_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_cause_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_general_reg_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_general_reg_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_link_speed_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_nic_reset-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_no_snoop_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pending_irq_read_clear-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pending_irq_write_clear-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pf_rst_done_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_ring_irq_auto_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_ring_irq_interval_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_ring_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_uc_addr_pool_del-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_uc_addr_pool_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_disable_dcb-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_disable_rss-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_lsc_irq_handler-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_mailbox_irq_handler-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_msi_irq_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-function-sxe_allow_inval_mac-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-function-sxe_multispeed_sfp_link_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-function-sxe_headers_cleanup-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-function-sxe_rx_buffer_page_offset_update-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-function-sxe_set_vf_link_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used-Werror-Wunused-but-set-variable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_event_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_hw_reset-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_hw_ring_irq_map-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_hw_stop-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_irq_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_link_state_get-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_mailbox_read-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_mailbox_write-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_msg_read-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_msg_write-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_pf_ack_irq_trigger-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_pf_req_irq_trigger-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_ring_irq_interval_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_rcv_ctl_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_specific_irq_enable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-function-sxevf_rx_ring_buffers_alloc-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-function-sxevf_tx_ring_alloc-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-function-sxevf_tx_ring_free-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_num-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_size-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-chan_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-param-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_service.c:warning:variable-ring_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_flow_leonis.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_interrupt.c:warning:variable-dev-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_txrx.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-vsi_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- fs-xfs-libxfs-xfs_alloc.c:warning:no-previous-prototype-for-function-xfs_ag_fixup_aside
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-function-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-register_irqchip_proc
| |-- kernel-irq-proc.c:warning:no-previous-prototype-for-function-unregister_irqchip_proc
| |-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
| |-- lib-crypto-mpi-mpi-inv.c:warning:variable-k-set-but-not-used
| |-- lib-kunit-test.c:warning:cast-from-void-(-)(const-void-)-to-kunit_action_t-(aka-void-(-)(void-)-)-converts-to-incompatible-function-type
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-005-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-show_cpuinfo
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-kh40000_get_direct_dma_ops
| |-- arch-x86-kvm-..-..-..-virt-kvm-eventfd.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- arch-x86-kvm-..-..-..-virt-kvm-eventfd.c:warning:cannot-understand-function-prototype:struct-eventfd_shadow
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-media-platform-cadence-cdns-csi2tx.c:warning:u-directive-output-may-be-truncated-writing-between-and-bytes-into-a-region-of-size
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_phys_id_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_reg_test
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_fc_autoneg_localcap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_ring_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_crc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_max_mem_window_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_pfc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rate_limiter_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rx_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_data_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_desc_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_ring_rate_factor_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_auto_clear_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_autoneg_disable_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_mac_addr_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_requested_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_high_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_low_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_port_mask_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rule_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rules_table_reinit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_mask_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_channel_state_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_drv_status_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ack_header_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ov_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_status_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_is_fw_over_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_release
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_rcv
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_header_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_send_done
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_cause_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_fc_autoneg_disabled
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_link_state_up
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_pad_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_txrx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_mem_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_nic_reset
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_no_snoop_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pcie_vt_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_read_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_write_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pf_rst_done_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pfc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_mac_anti_spoof_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_ring_drop_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_is_rx_timestamp_valid
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_tx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rcv_msg_from_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_auto_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_key_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_reg_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_off
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_on
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_ctrl_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_lro_ctrl_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_drop_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ack_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_multi_ring_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_nfs_filter_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pkt_buf_size_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_queue_desc_reg_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_udp_frag_checksum_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_send_msg_to_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_spoof_count_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_regs_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_seq_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_size_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_thresh_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_head_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_info_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_tail_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_insert_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_tag_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_ack_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_req_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_rst_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_pool_filter_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_tag_strip_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlvf_slot_find
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_ctrl_cfg
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_pool_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_dcb
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_rss
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_lsc_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_mailbox_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_msi_irq_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-sxe_allow_inval_mac
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-sxe_multispeed_sfp_link_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_headers_cleanup
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_rx_buffer_page_offset_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-sxe_set_vf_link_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_32bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_36bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_reset
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_stop
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_disable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_link_state_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_packet_stats_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_ack_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_req_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_stats_init_value_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-sxevf_rx_ring_buffers_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_free
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-else-statement
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_size-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-chan_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-param-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_service.c:warning:variable-ring_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:08x-directive-output-may-be-truncated-writing-bytes-into-a-region-of-size-between-and
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_flow_leonis.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_interrupt.c:warning:variable-dev-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_txrx.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-vsi_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-sched-debug.c:warning:no-previous-prototype-for-is_prefer_numa
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-016-20251223
| |-- arch-x86-kernel-cpu-proc.c:warning:no-previous-prototype-for-show_cpuinfo
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- arch-x86-kernel-early-quirks.c:warning:no-previous-prototype-for-kh40000_get_direct_dma_ops
| |-- block-genhd.c:warning:no-previous-prototype-for-part_stat_read_all
| |-- drivers-dax-super.c:warning:Function-parameter-or-member-KABI_RESERVE(-not-described-in-dax_device
| |-- drivers-net-ethernet-linkdata-sxe-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-base-trace-sxe_trace.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_dcb.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_entries_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_exit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-sxe_debugfs_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_phys_id_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:no-previous-prototype-for-sxe_reg_test
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ethtool.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_filter.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_fc_autoneg_localcap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_all_ring_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_crc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_max_mem_window_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_pfc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rate_limiter_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_rx_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_data_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_desc_bw_alloc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_dcb_tx_ring_rate_factor_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_auto_clear_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_autoneg_disable_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_mac_addr_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_requested_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_high_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fc_tc_low_water_mark_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_port_mask_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rule_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_sample_rules_table_reinit
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_fnav_specific_rule_mask_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_channel_state_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_drv_status_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ack_header_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_ov_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_fw_status_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_is_fw_over_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_lock_release
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_rcv
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_data_dword_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_header_send
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_hdc_packet_send_done
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_cause_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_irq_general_reg_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_fc_autoneg_disabled
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_is_link_state_up
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_link_speed_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_max_frame_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_pad_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mac_txrx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mbx_mem_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mc_filter_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_mta_hash_table_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_nic_reset
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_no_snoop_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pcie_vt_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_read_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pending_irq_write_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pf_rst_done_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pfc_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_mac_anti_spoof_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_pool_rx_ring_drop_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_is_rx_timestamp_valid
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_rx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_systime_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_timestamp_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ptp_tx_timestamp_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rcv_msg_from_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_auto_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_key_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_reg_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rss_redir_tbl_set_all
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_off
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_cap_switch_on
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_ctrl_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_dma_lro_ctrl_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_drop_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ack_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_lro_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_mode_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_multi_ring_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_nfs_filter_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pkt_buf_size_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_queue_desc_reg_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_rx_udp_frag_checksum_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_send_msg_to_vf
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_spoof_count_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_regs_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_stats_seq_clean
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_desc_thresh_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_size_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pkt_buf_thresh_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_pool_bitmap_set
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_head_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_info_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_switch_not_polling
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_ring_tail_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_insert_get
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_tx_vlan_tag_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_add
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_del
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_uc_addr_pool_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_ack_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_req_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vf_rst_check
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_clear
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_array_write
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_filter_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_pool_filter_read
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlan_tag_strip_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vlvf_slot_find
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_ctrl_cfg
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_disable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-sxe_hw_vt_pool_loopback_switch
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ipsec.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_dcb
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_disable_rss
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_lsc_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_mailbox_irq_handler
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-sxe_msi_irq_init
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_main.c:error:no-previous-prototype-for-sxe_allow_inval_mac
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_phy.c:error:no-previous-prototype-for-sxe_multispeed_sfp_link_configure
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_ptp.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_headers_cleanup
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_rx_proc.c:error:no-previous-prototype-for-sxe_rx_buffer_page_offset_update
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:no-previous-prototype-for-sxe_set_vf_link_enable
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_sriov.c:error:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_tx_proc.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- drivers-net-ethernet-linkdata-sxevf-base-log-sxe_log.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_csum.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_32bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_36bit_counter_update
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_event_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_reset
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_ring_irq_map
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_hw_stop
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_disable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_link_state_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_mailbox_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_read
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_msg_write
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_packet_stats_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_ack_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_pf_req_irq_trigger
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_ring_irq_interval_set
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_rcv_ctl_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_desc_configure
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_rx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_specific_irq_enable
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_stats_init_value_get
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-sxevf_tx_ring_switch
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_monitor.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_netdev.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_ring.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_rx_proc.c:error:no-previous-prototype-for-sxevf_rx_ring_buffers_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_alloc
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:no-previous-prototype-for-sxevf_tx_ring_free
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-else-statement
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_tx_proc.c:error:suggest-braces-around-empty-body-in-an-if-statement
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_common-nbl_common.c:warning:variable-node_size-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-chan_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dispatch.c:warning:variable-param-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_service.c:warning:variable-ring_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:08x-directive-output-may-be-truncated-writing-bytes-into-a-region-of-size-between-and
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_adminq.c:warning:variable-ret-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_flow_leonis.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_interrupt.c:warning:variable-dev-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_txrx.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-phy_ops-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-vsi_mgt-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_main.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-test_mask-set-but-not-used
| |-- drivers-pinctrl-zhaoxin-pinctrl-zhaoxin.c:warning:variable-value_back-set-but-not-used
| |-- fs-nfs-dir.c:warning:no-previous-prototype-for-nfs_check_have_lookup_cache_flag
| |-- kernel-cpu.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
| |-- kernel-dma-contiguous.c:warning:no-previous-prototype-for-is_zhaoxin_kh40000
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Excess-function-parameter-pidfd-description-in-pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-__pidfd_prepare
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- kernel-sched-debug.c:warning:no-previous-prototype-for-is_prefer_numa
| |-- mm-gmem.c:warning:unused-variable-nid
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-076-20251223
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_debugfs.c:error:no-previous-prototype-for-function-sxe_debugfs_exit-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_irq_general_reg_set-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_nic_reset-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_pending_irq_read_clear-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_disable_dcb-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_irq.c:error:no-previous-prototype-for-function-sxe_msi_irq_init-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core-nbl_dev_user.c:warning:variable-vfn-set-but-not-used
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_vsi.c:warning:variable-queue_mgt-set-but-not-used
| |-- kernel-fork.c:warning:Function-parameter-or-member-ret-not-described-in-pidfd_prepare
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| `-- net-ipv4-tcp_output.c:warning:variable-tcp_hdr_rsrvd_4b-set-but-not-used
|-- x86_64-randconfig-121-20251215
| |-- lib-iov_iter.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-__user-to-got-void
| |-- lib-overflow_kunit.c:sparse:sparse:cast-truncates-bits-from-constant-value-(ffffff01-becomes-)
| |-- lib-percpu_counter.c:sparse:sparse:cast-removes-address-space-__percpu-of-expression
| `-- lib-percpu_counter.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-signed-int-noderef-usertype-__percpu-counters-got-void
`-- x86_64-randconfig-r121-20251215
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-__iomem-addr-got-char-preg
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-__iomem-addr-got-void
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-__iomem-addr-got-void-static-p
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-__iomem-addr-got-char-preg
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-__iomem-addr-got-void-static-p
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-char-penv-got-void-noderef-__iomem
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-char-preg-got-void-noderef-__iomem
|-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-static-p-got-void-noderef-__iomem
`-- drivers-video-fbdev-ls2k500sfb.c:sparse:sparse:symbol-ls2k500sfb_interrupt-was-not-declared.-Should-it-be-static
elapsed time: 765m
configs tested: 41
configs skipped: 61
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20251223 clang-17
arm64 randconfig-002-20251223 clang-22
arm64 randconfig-003-20251223 clang-18
arm64 randconfig-004-20251223 gcc-9.5.0
loongarch allmodconfig clang-19
loongarch allnoconfig clang-22
loongarch defconfig clang-19
loongarch randconfig-001-20251223 gcc-15.1.0
loongarch randconfig-002-20251223 clang-22
x86_64 allmodconfig clang-20
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20251223 clang-20
x86_64 buildonly-randconfig-002-20251223 clang-20
x86_64 buildonly-randconfig-003-20251223 gcc-14
x86_64 buildonly-randconfig-004-20251223 gcc-14
x86_64 buildonly-randconfig-005-20251223 clang-20
x86_64 buildonly-randconfig-006-20251223 clang-20
x86_64 defconfig gcc-14
x86_64 randconfig-001-20251223 gcc-14
x86_64 randconfig-002-20251223 clang-20
x86_64 randconfig-003-20251223 gcc-14
x86_64 randconfig-004-20251223 clang-20
x86_64 randconfig-005-20251223 gcc-14
x86_64 randconfig-006-20251223 clang-20
x86_64 randconfig-011-20251223 gcc-14
x86_64 randconfig-012-20251223 clang-20
x86_64 randconfig-013-20251223 clang-20
x86_64 randconfig-014-20251223 clang-20
x86_64 randconfig-015-20251223 gcc-14
x86_64 randconfig-016-20251223 gcc-14
x86_64 randconfig-071-20251223 gcc-14
x86_64 randconfig-072-20251223 clang-20
x86_64 randconfig-073-20251223 clang-20
x86_64 randconfig-074-20251223 gcc-14
x86_64 randconfig-075-20251223 gcc-14
x86_64 randconfig-076-20251223 clang-20
x86_64 rhel-9.4-rust clang-20
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
From: 岳智超 <yuezhichao1(a)h-partners.com>
driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IDDE4S?from=project-issue
CVE: NA
--------------------------------
Add thread irq for io queue
Signed-off-by: 岳智超 <yuezhichao1(a)h-partners.com>
---
drivers/scsi/hisi_raid/hiraid.h | 1 +
drivers/scsi/hisi_raid/hiraid_main.c | 61 ++++++++++++++++++++++++++--
2 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/hisi_raid/hiraid.h b/drivers/scsi/hisi_raid/hiraid.h
index 1ebc3dd..bc4e05a 100644
--- a/drivers/scsi/hisi_raid/hiraid.h
+++ b/drivers/scsi/hisi_raid/hiraid.h
@@ -683,6 +683,7 @@ struct hiraid_queue {
atomic_t inflight;
void *sense_buffer_virt;
dma_addr_t sense_buffer_phy;
+ s32 pci_irq;
struct dma_pool *prp_small_pool;
};
diff --git a/drivers/scsi/hisi_raid/hiraid_main.c b/drivers/scsi/hisi_raid/hiraid_main.c
index f84182f..ee25893 100644
--- a/drivers/scsi/hisi_raid/hiraid_main.c
+++ b/drivers/scsi/hisi_raid/hiraid_main.c
@@ -107,6 +107,13 @@ static u32 log_debug_switch;
module_param(log_debug_switch, uint, 0644);
MODULE_PARM_DESC(log_debug_switch, "set log state, default zero for switch off");
+static bool threaded_irq = true;
+module_param(threaded_irq, bool, 0444);
+MODULE_PARM_DESC(threaded_irq, "use threaded irq for io queue, default on");
+
+static u32 poll_delay_min = 9;
+static u32 poll_delay_max = 19;
+
static int extra_pool_num_set(const char *val, const struct kernel_param *kp)
{
u8 n = 0;
@@ -153,7 +160,7 @@ static struct workqueue_struct *work_queue;
__func__, ##__VA_ARGS__); \
} while (0)
-#define HIRAID_DRV_VERSION "1.1.0.0"
+#define HIRAID_DRV_VERSION "1.1.0.1"
#define ADMIN_TIMEOUT (admin_tmout * HZ)
#define USRCMD_TIMEOUT (180 * HZ)
@@ -1305,6 +1312,7 @@ static int hiraid_alloc_queue(struct hiraid_dev *hdev, u16 qid, u16 depth)
hiraidq->q_depth = depth;
hiraidq->qid = qid;
hiraidq->cq_vector = -1;
+ hiraidq->pci_irq = -1;
hdev->queue_count++;
return 0;
@@ -1646,6 +1654,39 @@ static irqreturn_t hiraid_handle_irq(int irq, void *data)
return ret;
}
+static irqreturn_t hiraid_io_poll(int irq, void *data)
+{
+ struct hiraid_queue *hiraidq = data;
+ irqreturn_t ret = IRQ_NONE;
+ u16 start, end;
+
+ do {
+ spin_lock(&hiraidq->cq_lock);
+ hiraid_process_cq(hiraidq, &start, &end, -1);
+ hiraidq->last_cq_head = hiraidq->cq_head;
+ spin_unlock(&hiraidq->cq_lock);
+
+ if (start != end) {
+ hiraid_complete_cqes(hiraidq, start, end);
+ ret = IRQ_HANDLED;
+ }
+ usleep_range(poll_delay_min, poll_delay_max);
+ } while (start != end);
+ enable_irq(hiraidq->pci_irq);
+ return ret;
+}
+
+static irqreturn_t hiraid_io_irq(int irq, void *data)
+{
+ struct hiraid_queue *q = data;
+
+ if (hiraid_cqe_pending(q)) {
+ disable_irq_nosync(q->pci_irq);
+ return IRQ_WAKE_THREAD;
+ }
+ return IRQ_NONE;
+}
+
static int hiraid_setup_admin_queue(struct hiraid_dev *hdev)
{
struct hiraid_queue *adminq = &hdev->queues[0];
@@ -1681,9 +1722,11 @@ static int hiraid_setup_admin_queue(struct hiraid_dev *hdev)
NULL, adminq, "hiraid%d_q%d", hdev->instance, adminq->qid);
if (ret) {
adminq->cq_vector = -1;
+ adminq->pci_irq = -1;
return ret;
}
+ adminq->pci_irq = pci_irq_vector(hdev->pdev, adminq->cq_vector);
hiraid_init_queue(adminq, 0);
dev_info(hdev->dev, "setup admin queue success, queuecount[%d] online[%d] pagesize[%d]\n",
@@ -1958,14 +2001,23 @@ static int hiraid_create_queue(struct hiraid_queue *hiraidq, u16 qid)
goto delete_cq;
hiraidq->cq_vector = cq_vector;
- ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_handle_irq, NULL,
- hiraidq, "hiraid%d_q%d", hdev->instance, qid);
+ if (threaded_irq)
+ ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_io_irq,
+ hiraid_io_poll, hiraidq, "hiraid%d_q%d",
+ hdev->instance, qid);
+ else
+ ret = pci_request_irq(hdev->pdev, cq_vector, hiraid_handle_irq,
+ NULL, hiraidq, "hiraid%d_q%d",
+ hdev->instance, qid);
+
if (ret) {
hiraidq->cq_vector = -1;
+ hiraidq->pci_irq = -1;
dev_err(hdev->dev, "request queue[%d] irq failed\n", qid);
goto delete_sq;
}
+ hiraidq->pci_irq = pci_irq_vector(hdev->pdev, hiraidq->cq_vector);
hiraid_init_queue(hiraidq, qid);
return 0;
@@ -2122,10 +2174,11 @@ static int hiraid_setup_io_queues(struct hiraid_dev *hdev)
adminq, "hiraid%d_q%d", hdev->instance, adminq->qid);
if (ret) {
dev_err(hdev->dev, "request admin irq failed\n");
+ adminq->pci_irq = -1;
adminq->cq_vector = -1;
return ret;
}
-
+ adminq->pci_irq = pci_irq_vector(hdev->pdev, adminq->cq_vector);
hdev->online_queues++;
for (i = hdev->queue_count; i <= hdev->max_qid; i++) {
--
2.45.1.windows.1
2
2
From: Eric Dumazet <edumazet(a)google.com>
stable inclusion
from stable-v6.6.117
commit baa61dcaa50b7141048c8d2aede7fe9ed8f21d11
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDDEYF
CVE: CVE-2025-68200
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 4ef92743625818932b9c320152b58274c05e5053 ]
syzbot found that cls_bpf_classify() is able to change
tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().
WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline]
WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214
struct tc_skb_cb has been added in commit ec624fe740b4 ("net/sched:
Extend qdisc control block with tc control block"), which added a wrong
interaction with db58ba459202 ("bpf: wire in data and data_end for
cls_act_bpf").
drop_reason was added later.
Add bpf_prog_run_data_pointers() helper to save/restore the net_sched
storage colliding with BPF data_meta/data_end.
Fixes: ec624fe740b4 ("net/sched: Extend qdisc control block with tc control block")
Reported-by: syzbot <syzkaller(a)googlegroups.com>
Closes: https://lore.kernel.org/netdev/6913437c.a70a0220.22f260.013b.GAE@google.com/
Signed-off-by: Eric Dumazet <edumazet(a)google.com>
Signed-off-by: Martin KaFai Lau <martin.lau(a)kernel.org>
Reviewed-by: Victor Nogueira <victor(a)mojatatu.com>
Acked-by: Jamal Hadi Salim <jhs(a)mojatatu.com>
Link: https://patch.msgid.link/20251112125516.1563021-1-edumazet@google.com
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Conflicts:
net/sched/act_bpf.c
net/sched/cls_bpf.c
[ctx conflicts]
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
include/linux/filter.h | 20 ++++++++++++++++++++
net/sched/act_bpf.c | 6 ++----
net/sched/cls_bpf.c | 6 ++----
3 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/include/linux/filter.h b/include/linux/filter.h
index a7c0caa8b7ad..4ae423d8533f 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -685,6 +685,26 @@ static inline void bpf_compute_data_pointers(struct sk_buff *skb)
cb->data_end = skb->data + skb_headlen(skb);
}
+static inline int bpf_prog_run_data_pointers(
+ const struct bpf_prog *prog,
+ struct sk_buff *skb)
+{
+ struct bpf_skb_data_end *cb = (struct bpf_skb_data_end *)skb->cb;
+ void *save_data_meta, *save_data_end;
+ int res;
+
+ save_data_meta = cb->data_meta;
+ save_data_end = cb->data_end;
+
+ bpf_compute_data_pointers(skb);
+ res = bpf_prog_run(prog, skb);
+
+ cb->data_meta = save_data_meta;
+ cb->data_end = save_data_end;
+
+ return res;
+}
+
/* Similar to bpf_compute_data_pointers(), except that save orginal
* data in cb->data and cb->meta_data for restore.
*/
diff --git a/net/sched/act_bpf.c b/net/sched/act_bpf.c
index b0455fda7d0b..223cc157312a 100644
--- a/net/sched/act_bpf.c
+++ b/net/sched/act_bpf.c
@@ -47,12 +47,10 @@ TC_INDIRECT_SCOPE int tcf_bpf_act(struct sk_buff *skb,
filter = rcu_dereference(prog->filter);
if (at_ingress) {
__skb_push(skb, skb->mac_len);
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(filter, skb);
+ filter_res = bpf_prog_run_data_pointers(filter, skb);
__skb_pull(skb, skb->mac_len);
} else {
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(filter, skb);
+ filter_res = bpf_prog_run_data_pointers(filter, skb);
}
if (unlikely(!skb->tstamp && skb->mono_delivery_time))
skb->mono_delivery_time = 0;
diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
index 382c7a71f81f..05f718dd09a6 100644
--- a/net/sched/cls_bpf.c
+++ b/net/sched/cls_bpf.c
@@ -97,12 +97,10 @@ TC_INDIRECT_SCOPE int cls_bpf_classify(struct sk_buff *skb,
} else if (at_ingress) {
/* It is safe to push/pull even if skb_shared() */
__skb_push(skb, skb->mac_len);
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(prog->filter, skb);
+ filter_res = bpf_prog_run_data_pointers(prog->filter, skb);
__skb_pull(skb, skb->mac_len);
} else {
- bpf_compute_data_pointers(skb);
- filter_res = bpf_prog_run(prog->filter, skb);
+ filter_res = bpf_prog_run_data_pointers(prog->filter, skb);
}
if (unlikely(!skb->tstamp && skb->mono_delivery_time))
skb->mono_delivery_time = 0;
--
2.34.1
2
1
[PATCH OLK-6.6] bpf: account for current allocated stack depth in widen_imprecise_scalars()
by Pu Lehui 23 Dec '25
by Pu Lehui 23 Dec '25
23 Dec '25
From: Eduard Zingerman <eddyz87(a)gmail.com>
stable inclusion
from stable-v6.6.117
commit 64b12dca2b0abcb5fc0542887d18b926ea5cf711
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDDEYR
CVE: CVE-2025-68208
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit b0c8e6d3d866b6a7f73877f71968dbffd27b7785 ]
The usage pattern for widen_imprecise_scalars() looks as follows:
prev_st = find_prev_entry(env, ...);
queued_st = push_stack(...);
widen_imprecise_scalars(env, prev_st, queued_st);
Where prev_st is an ancestor of the queued_st in the explored states
tree. This ancestor is not guaranteed to have same allocated stack
depth as queued_st. E.g. in the following case:
def main():
for i in 1..2:
foo(i) // same callsite, differnt param
def foo(i):
if i == 1:
use 128 bytes of stack
iterator based loop
Here, for a second 'foo' call prev_st->allocated_stack is 128,
while queued_st->allocated_stack is much smaller.
widen_imprecise_scalars() needs to take this into account and avoid
accessing bpf_verifier_state->frame[*]->stack out of bounds.
Fixes: 2793a8b015f7 ("bpf: exact states comparison for iterator convergence checks")
Reported-by: Emil Tsalapatis <emil(a)etsalapatis.com>
Signed-off-by: Eduard Zingerman <eddyz87(a)gmail.com>
Link: https://lore.kernel.org/r/20251114025730.772723-1-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
kernel/bpf/verifier.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 26086c893dfb..ce1f5a9bdd9a 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -7918,7 +7918,7 @@ static int widen_imprecise_scalars(struct bpf_verifier_env *env,
struct bpf_verifier_state *cur)
{
struct bpf_func_state *fold, *fcur;
- int i, fr;
+ int i, fr, num_slots;
reset_idmap_scratch(env);
for (fr = old->curframe; fr >= 0; fr--) {
@@ -7931,7 +7931,9 @@ static int widen_imprecise_scalars(struct bpf_verifier_env *env,
&fcur->regs[i],
&env->idmap_scratch);
- for (i = 0; i < fold->allocated_stack / BPF_REG_SIZE; i++) {
+ num_slots = min(fold->allocated_stack / BPF_REG_SIZE,
+ fcur->allocated_stack / BPF_REG_SIZE);
+ for (i = 0; i < num_slots; i++) {
if (!is_spilled_reg(&fold->stack[i]) ||
!is_spilled_reg(&fcur->stack[i]))
continue;
--
2.34.1
2
1
[openeuler:OLK-6.6 2/2] mm/oom_kill.c:316: warning: Function parameter or member 'task' not described in 'oom_next_task'
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi Jing,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: be8d95530886b0aaa5a59b5c43a285667c9eebc6 [2/2] memcg: support priority for oom
config: arm64-randconfig-004-20251223 (https://download.01.org/0day-ci/archive/20251223/202512231015.AeGVhu0Q-lkp@…)
compiler: aarch64-linux-gcc (GCC) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512231015.AeGVhu0Q-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/202512231015.AeGVhu0Q-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> mm/oom_kill.c:316: warning: Function parameter or member 'task' not described in 'oom_next_task'
>> mm/oom_kill.c:316: warning: Function parameter or member 'oc' not described in 'oom_next_task'
>> mm/oom_kill.c:316: warning: Function parameter or member 'points' not described in 'oom_next_task'
>> mm/oom_kill.c:316: warning: expecting prototype for We choose the task in low(). Prototype was for oom_next_task() instead
vim +316 mm/oom_kill.c
308
309 #ifdef CONFIG_MEMCG_OOM_PRIORITY
310 /**
311 * We choose the task in low-priority memcg firstly. For the same state, we
312 * choose the task with the highest number of 'points'.
313 */
314 static bool oom_next_task(struct task_struct *task, struct oom_control *oc,
315 long points)
> 316 {
317 struct mem_cgroup *cur_memcg;
318 struct mem_cgroup *oc_memcg;
319 int cur_memcg_prio, oc_memcg_prio;
320
321 if (points == LONG_MIN)
322 return true;
323
324 if (!oc->chosen)
325 return false;
326
327 rcu_read_lock();
328 oc_memcg = mem_cgroup_from_task(oc->chosen);
329 cur_memcg = mem_cgroup_from_task(task);
330 oc_memcg_prio = READ_ONCE(oc_memcg->oom_prio);
331 cur_memcg_prio = READ_ONCE(cur_memcg->oom_prio);
332 rcu_read_unlock();
333
334 if (cur_memcg_prio == oc_memcg_prio)
335 return points < oc->chosen_points;
336
337 /* if oc is low-priority, so skip the task */
338 if (oc_memcg_prio == MEMCG_LOW_OOM_PRIORITY)
339 return true;
340
341 return false;
342 }
343 #else
344 static inline bool oom_next_task(struct task_struct *task,
345 struct oom_control *oc, long points)
346 {
347 return points == LONG_MIN || points < oc->chosen_points;
348 }
349 #endif
350
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3541/3541] kernel/sched/fair.c:9005:51: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: c52c17a85f1fa9cde2bcb15359096634cfd9eb7c [3541/3541] sched: Add tracepoint for qos smt expeller
config: arm64-randconfig-r113-20251213 (https://download.01.org/0day-ci/archive/20251223/202512231020.T3d5Cq3i-lkp@…)
compiler: aarch64-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512231020.T3d5Cq3i-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/202512231020.T3d5Cq3i-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:151:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static?
kernel/sched/fair.c:152:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static?
kernel/sched/fair.c:163:14: sparse: sparse: symbol 'sysctl_sched_prio_load_balance_enabled' was not declared. Should it be static?
kernel/sched/fair.c:191:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
kernel/sched/fair.c:1283:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1283:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1283:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:3066:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu * @@
kernel/sched/fair.c:3066:13: sparse: expected struct task_struct *tsk
kernel/sched/fair.c:3066:13: sparse: got struct task_struct [noderef] __rcu *
kernel/sched/fair.c:13203:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:13203:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:13203:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5161:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5161:25: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/fair.c:5161:25: sparse: struct sparsemask *
kernel/sched/fair.c:5178:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5178:25: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/fair.c:5178:25: sparse: struct sparsemask *
kernel/sched/fair.c:13559:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:13559:25: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/fair.c:13559:25: sparse: struct sparsemask *
kernel/sched/fair.c:6012:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:6012:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:6012:22: sparse: struct task_struct *
kernel/sched/fair.c:8121:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8121:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:8121:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8436:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8436:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8436:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8548:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8548:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8548:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8774:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8774:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8774:22: sparse: struct task_struct *
>> kernel/sched/fair.c:9005:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *sibling_p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:9005:51: sparse: expected struct task_struct *sibling_p
kernel/sched/fair.c:9005:51: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:9010:30: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:9010:30: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:9010:30: sparse: struct task_struct *
kernel/sched/fair.c:9084:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:9332:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:10403:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:11040:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:11040:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:11040:22: sparse: struct task_struct *
kernel/sched/fair.c:12481:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12481:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12481:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12138:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12138:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:12138:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12577:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12577:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12577:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:3012:9: sparse: sparse: context imbalance in 'task_numa_placement' - different lock contexts for basic block
kernel/sched/fair.c:7307:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7307:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7307:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7313:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7313:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7313:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7320:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7320:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7320:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7328:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7328:17: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:7328:17: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2338:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2338:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2338:9: sparse: struct task_struct *
kernel/sched/sched.h:2338:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2338:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2338:9: sparse: struct task_struct *
kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2174:25: sparse: struct task_struct *
kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2174:25: sparse: struct task_struct *
vim +9005 kernel/sched/fair.c
8984
8985 static bool _qos_smt_check_need_resched(int this_cpu, struct rq *rq)
8986 {
8987 int cpu;
8988
8989 if (!sched_smt_active())
8990 return false;
8991
8992 for_each_cpu(cpu, cpu_smt_mask(this_cpu)) {
8993 if (cpu == this_cpu)
8994 continue;
8995
8996 /*
8997 * There are two cases rely on the set need_resched to drive away
8998 * offline task:
8999 * a) The qos_smt_status of siblings cpu is online, the task of curr cpu is offline;
9000 * b) The qos_smt_status of siblings cpu is offline, the task of curr cpu is idle,
9001 * and current cpu only has SCHED_IDLE tasks enqueued.
9002 */
9003 if (per_cpu(qos_smt_status, cpu) == QOS_LEVEL_ONLINE &&
9004 task_group(current)->qos_level < QOS_LEVEL_ONLINE) {
> 9005 trace_sched_qos_smt_expel(cpu_curr(cpu), per_cpu(qos_smt_status, cpu));
9006 return true;
9007 }
9008
9009 if (per_cpu(qos_smt_status, cpu) == QOS_LEVEL_OFFLINE &&
9010 rq->curr == rq->idle && sched_idle_cpu(this_cpu)) {
9011 trace_sched_qos_smt_expel(cpu_curr(cpu), per_cpu(qos_smt_status, cpu));
9012 return true;
9013 }
9014 }
9015
9016 return false;
9017 }
9018
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 2/2] mm/vmalloc.c:4443: warning: Function parameter or member 'pgoff' not described in 'remap_vmalloc_hugepage_range_partial'
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi Wang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 9b1283f2bec2134030e1e099b900579f1f03840e [2/2] mm/vmalloc: Extend vmalloc usage about hugepage
config: arm64-randconfig-004-20251223 (https://download.01.org/0day-ci/archive/20251223/202512230928.obIRItp9-lkp@…)
compiler: aarch64-linux-gcc (GCC) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230928.obIRItp9-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/202512230928.obIRItp9-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> mm/vmalloc.c:4443: warning: Function parameter or member 'pgoff' not described in 'remap_vmalloc_hugepage_range_partial'
vim +4443 mm/vmalloc.c
4423
4424 /**
4425 * remap_vmalloc_hugepage_range_partial - map vmalloc hugepages
4426 * to userspace
4427 * @vma: vma to cover
4428 * @uaddr: target user address to start at
4429 * @kaddr: virtual address of vmalloc hugepage kernel memory
4430 * @size: size of map area
4431 *
4432 * Returns: 0 for success, -Exxx on failure
4433 *
4434 * This function checks that @kaddr is a valid vmalloc'ed area,
4435 * and that it is big enough to cover the range starting at
4436 * @uaddr in @vma. Will return failure if that criteria isn't
4437 * met.
4438 *
4439 * Similar to remap_pfn_range() (see mm/memory.c)
4440 */
4441 int remap_vmalloc_hugepage_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
4442 void *kaddr, unsigned long pgoff, unsigned long size)
> 4443 {
4444 struct vm_struct *area;
4445 unsigned long off;
4446 unsigned long end_index;
4447
4448 if (check_shl_overflow(pgoff, PMD_SHIFT, &off))
4449 return -EINVAL;
4450
4451 size = ALIGN(size, PMD_SIZE);
4452
4453 if (!IS_ALIGNED(uaddr, PMD_SIZE) || !IS_ALIGNED((unsigned long)kaddr, PMD_SIZE))
4454 return -EINVAL;
4455
4456 area = find_vm_area(kaddr);
4457 if (!area)
4458 return -EINVAL;
4459
4460 if (!(area->flags & VM_USERMAP))
4461 return -EINVAL;
4462
4463 if (check_add_overflow(size, off, &end_index) ||
4464 end_index > get_vm_area_size(area))
4465 return -EINVAL;
4466 kaddr += off;
4467
4468 do {
4469 struct page *page = vmalloc_to_page(kaddr);
4470 int ret;
4471
4472 ret = hugetlb_insert_hugepage_pte_by_pa(vma->vm_mm, uaddr,
4473 vma->vm_page_prot, page_to_phys(page));
4474 if (ret)
4475 return ret;
4476
4477 uaddr += PMD_SIZE;
4478 kaddr += PMD_SIZE;
4479 size -= PMD_SIZE;
4480 } while (size > 0);
4481
4482 vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP);
4483
4484 return 0;
4485 }
4486 EXPORT_SYMBOL(remap_vmalloc_hugepage_range_partial);
4487
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] lib/iov_iter.c:330:38: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 19e163fcb526efb8bf229887f399ddf4847ceecb [3544/3544] iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()
config: x86_64-randconfig-121-20251215 (https://download.01.org/0day-ci/archive/20251223/202512230823.urp3AnL9-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230823.urp3AnL9-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/202512230823.urp3AnL9-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> lib/iov_iter.c:330:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got void * @@
lib/iov_iter.c:330:38: sparse: expected void [noderef] __user *to
lib/iov_iter.c:330:38: sparse: got void *
lib/iov_iter.c: note: in included file (through arch/x86/include/asm/uaccess.h, include/linux/uaccess.h, include/linux/sched/task.h, ...):
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
lib/iov_iter.c: note: in included file:
include/net/checksum.h:33:39: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@
include/net/checksum.h:33:39: sparse: expected restricted __wsum [usertype] sum
include/net/checksum.h:33:39: sparse: got unsigned int
include/net/checksum.h:33:39: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@
include/net/checksum.h:33:39: sparse: expected restricted __wsum [usertype] sum
include/net/checksum.h:33:39: sparse: got unsigned int
include/net/checksum.h:41:45: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@
include/net/checksum.h:41:45: sparse: expected restricted __wsum [usertype] sum
include/net/checksum.h:41:45: sparse: got unsigned int
include/net/checksum.h:41:45: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@
include/net/checksum.h:41:45: sparse: expected restricted __wsum [usertype] sum
include/net/checksum.h:41:45: sparse: got unsigned int
lib/iov_iter.c: note: in included file (through arch/x86/include/asm/uaccess.h, include/linux/uaccess.h, include/linux/sched/task.h, ...):
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
vim +330 lib/iov_iter.c
c35e02480014f7 mm/iov_iter.c Matthew Wilcox 2014-08-01 324
ec6347bb43395c lib/iov_iter.c Dan Williams 2020-10-05 325 #ifdef CONFIG_ARCH_HAS_COPY_MC
ec6347bb43395c lib/iov_iter.c Dan Williams 2020-10-05 326 static int copyout_mc(void __user *to, const void *from, size_t n)
8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 327 {
96d4f267e40f95 lib/iov_iter.c Linus Torvalds 2019-01-03 328 if (access_ok(to, n)) {
d0ef4c360f7ea3 lib/iov_iter.c Marco Elver 2020-01-21 329 instrument_copy_to_user(to, from, n);
ec6347bb43395c lib/iov_iter.c Dan Williams 2020-10-05 @330 n = copy_mc_to_user((__force void *) to, from, n);
8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 331 }
8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 332 return n;
8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 333 }
8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 334
:::::: The code at line 330 was first introduced by commit
:::::: ec6347bb43395cb92126788a1a5b25302543f815 x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}()
:::::: TO: Dan Williams <dan.j.williams(a)intel.com>
:::::: CC: Borislav Petkov <bp(a)suse.de>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3541/3541] kernel/sched/fair.c:151:14: sparse: sparse: symbol 'sysctl_sched_prio_load_balance_enabled' was not declared. Should it be static?
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 89bf80a4d6d5ba852b9042480e0be23c2c4a628c [3541/3541] sched: Introduce priority load balance for qos scheduler
config: arm64-randconfig-r113-20251213 (https://download.01.org/0day-ci/archive/20251223/202512230734.tlvqbdf4-lkp@…)
compiler: aarch64-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230734.tlvqbdf4-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/202512230734.tlvqbdf4-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:143:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static?
kernel/sched/fair.c:144:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static?
>> kernel/sched/fair.c:151:14: sparse: sparse: symbol 'sysctl_sched_prio_load_balance_enabled' was not declared. Should it be static?
kernel/sched/fair.c:179:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
kernel/sched/fair.c:1271:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1271:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1271:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:3054:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu * @@
kernel/sched/fair.c:3054:13: sparse: expected struct task_struct *tsk
kernel/sched/fair.c:3054:13: sparse: got struct task_struct [noderef] __rcu *
kernel/sched/fair.c:12846:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12846:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12846:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5925:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5925:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:5925:22: sparse: struct task_struct *
kernel/sched/fair.c:7998:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7998:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:7998:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8310:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8310:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8310:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8421:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8421:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8421:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8641:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8641:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8641:22: sparse: struct task_struct *
kernel/sched/fair.c:8999:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8999:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8999:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:10040:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:10040:40: sparse: expected struct sched_domain *child
kernel/sched/fair.c:10040:40: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:10677:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:10677:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:10677:22: sparse: struct task_struct *
kernel/sched/fair.c:12118:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12118:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12118:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:11775:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:11775:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:11775:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12214:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12214:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12214:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:3000:9: sparse: sparse: context imbalance in 'task_numa_placement' - different lock contexts for basic block
kernel/sched/fair.c:7214:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7214:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7214:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7220:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7220:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7220:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7227:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7227:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7227:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7235:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7235:17: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:7235:17: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2312:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2312:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2312:9: sparse: struct task_struct *
kernel/sched/sched.h:2148:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2148:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2148:25: sparse: struct task_struct *
kernel/sched/sched.h:2148:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2148:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2148:25: sparse: struct task_struct *
vim +/sysctl_sched_prio_load_balance_enabled +151 kernel/sched/fair.c
149
150 #ifdef CONFIG_QOS_SCHED_PRIO_LB
> 151 unsigned int sysctl_sched_prio_load_balance_enabled;
152 #endif
153
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3557/3557] security/integrity/ima/ima_digest_list.c:164:37: sparse: sparse: cast to restricted __le16
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 5fbe16a682d5af0c2f7145096851e31e3c921d64 [3557/3557] ima: Execute parser to upload digest lists not recognizable by the kernel
config: arm64-randconfig-r132-20251218 (https://download.01.org/0day-ci/archive/20251223/202512230715.3UJUkD3z-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230715.3UJUkD3z-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/202512230715.3UJUkD3z-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> security/integrity/ima/ima_digest_list.c:164:37: sparse: sparse: cast to restricted __le16
security/integrity/ima/ima_digest_list.c:165:42: sparse: sparse: cast to restricted __le16
security/integrity/ima/ima_digest_list.c:166:37: sparse: sparse: cast to restricted __le16
>> security/integrity/ima/ima_digest_list.c:167:38: sparse: sparse: cast to restricted __le32
security/integrity/ima/ima_digest_list.c:168:40: sparse: sparse: cast to restricted __le32
>> security/integrity/ima/ima_digest_list.c:416:20: sparse: sparse: symbol 'parser_task' was not declared. Should it be static?
vim +164 security/integrity/ima/ima_digest_list.c
b3fef06570ef2b Roberto Sassu 2023-09-12 138
b3fef06570ef2b Roberto Sassu 2023-09-12 139 int ima_parse_compact_list(loff_t size, void *buf, int op)
b3fef06570ef2b Roberto Sassu 2023-09-12 140 {
b3fef06570ef2b Roberto Sassu 2023-09-12 141 u8 *digest;
b3fef06570ef2b Roberto Sassu 2023-09-12 142 void *bufp = buf, *bufendp = buf + size;
b3fef06570ef2b Roberto Sassu 2023-09-12 143 struct compact_list_hdr *hdr;
b3fef06570ef2b Roberto Sassu 2023-09-12 144 size_t digest_len;
b3fef06570ef2b Roberto Sassu 2023-09-12 145 int ret = 0, i;
b3fef06570ef2b Roberto Sassu 2023-09-12 146
80701e75d21f48 Roberto Sassu 2023-09-12 147 if (!(ima_digest_list_actions & ima_policy_flag))
80701e75d21f48 Roberto Sassu 2023-09-12 148 return -EACCES;
80701e75d21f48 Roberto Sassu 2023-09-12 149
b3fef06570ef2b Roberto Sassu 2023-09-12 150 while (bufp < bufendp) {
b3fef06570ef2b Roberto Sassu 2023-09-12 151 if (bufp + sizeof(*hdr) > bufendp) {
b3fef06570ef2b Roberto Sassu 2023-09-12 152 pr_err("compact list, invalid data\n");
b3fef06570ef2b Roberto Sassu 2023-09-12 153 return -EINVAL;
b3fef06570ef2b Roberto Sassu 2023-09-12 154 }
b3fef06570ef2b Roberto Sassu 2023-09-12 155
b3fef06570ef2b Roberto Sassu 2023-09-12 156 hdr = bufp;
b3fef06570ef2b Roberto Sassu 2023-09-12 157
b3fef06570ef2b Roberto Sassu 2023-09-12 158 if (hdr->version != 1) {
b3fef06570ef2b Roberto Sassu 2023-09-12 159 pr_err("compact list, unsupported version\n");
b3fef06570ef2b Roberto Sassu 2023-09-12 160 return -EINVAL;
b3fef06570ef2b Roberto Sassu 2023-09-12 161 }
b3fef06570ef2b Roberto Sassu 2023-09-12 162
b3fef06570ef2b Roberto Sassu 2023-09-12 163 if (ima_canonical_fmt) {
b3fef06570ef2b Roberto Sassu 2023-09-12 @164 hdr->type = le16_to_cpu(hdr->type);
b3fef06570ef2b Roberto Sassu 2023-09-12 165 hdr->modifiers = le16_to_cpu(hdr->modifiers);
b3fef06570ef2b Roberto Sassu 2023-09-12 166 hdr->algo = le16_to_cpu(hdr->algo);
b3fef06570ef2b Roberto Sassu 2023-09-12 @167 hdr->count = le32_to_cpu(hdr->count);
b3fef06570ef2b Roberto Sassu 2023-09-12 168 hdr->datalen = le32_to_cpu(hdr->datalen);
b3fef06570ef2b Roberto Sassu 2023-09-12 169 }
b3fef06570ef2b Roberto Sassu 2023-09-12 170
b3fef06570ef2b Roberto Sassu 2023-09-12 171 if (hdr->algo >= HASH_ALGO__LAST)
b3fef06570ef2b Roberto Sassu 2023-09-12 172 return -EINVAL;
b3fef06570ef2b Roberto Sassu 2023-09-12 173
b3fef06570ef2b Roberto Sassu 2023-09-12 174 digest_len = hash_digest_size[hdr->algo];
b3fef06570ef2b Roberto Sassu 2023-09-12 175
b3fef06570ef2b Roberto Sassu 2023-09-12 176 if (hdr->type >= COMPACT__LAST) {
b3fef06570ef2b Roberto Sassu 2023-09-12 177 pr_err("compact list, invalid type %d\n", hdr->type);
b3fef06570ef2b Roberto Sassu 2023-09-12 178 return -EINVAL;
b3fef06570ef2b Roberto Sassu 2023-09-12 179 }
b3fef06570ef2b Roberto Sassu 2023-09-12 180
b3fef06570ef2b Roberto Sassu 2023-09-12 181 bufp += sizeof(*hdr);
b3fef06570ef2b Roberto Sassu 2023-09-12 182
b3fef06570ef2b Roberto Sassu 2023-09-12 183 for (i = 0; i < hdr->count; i++) {
b3fef06570ef2b Roberto Sassu 2023-09-12 184 if (bufp + digest_len > bufendp) {
b3fef06570ef2b Roberto Sassu 2023-09-12 185 pr_err("compact list, invalid data\n");
b3fef06570ef2b Roberto Sassu 2023-09-12 186 return -EINVAL;
b3fef06570ef2b Roberto Sassu 2023-09-12 187 }
b3fef06570ef2b Roberto Sassu 2023-09-12 188
b3fef06570ef2b Roberto Sassu 2023-09-12 189 digest = bufp;
b3fef06570ef2b Roberto Sassu 2023-09-12 190 bufp += digest_len;
b3fef06570ef2b Roberto Sassu 2023-09-12 191
b3fef06570ef2b Roberto Sassu 2023-09-12 192 if (op == DIGEST_LIST_OP_ADD)
b3fef06570ef2b Roberto Sassu 2023-09-12 193 ret = ima_add_digest_data_entry(digest,
b3fef06570ef2b Roberto Sassu 2023-09-12 194 hdr->algo, hdr->type, hdr->modifiers);
b3fef06570ef2b Roberto Sassu 2023-09-12 195 else if (op == DIGEST_LIST_OP_DEL)
b3fef06570ef2b Roberto Sassu 2023-09-12 196 ima_del_digest_data_entry(digest, hdr->algo,
b3fef06570ef2b Roberto Sassu 2023-09-12 197 hdr->type);
b3fef06570ef2b Roberto Sassu 2023-09-12 198 if (ret < 0 && ret != -EEXIST)
b3fef06570ef2b Roberto Sassu 2023-09-12 199 return ret;
b3fef06570ef2b Roberto Sassu 2023-09-12 200 }
b3fef06570ef2b Roberto Sassu 2023-09-12 201
b3fef06570ef2b Roberto Sassu 2023-09-12 202 if (i != hdr->count ||
b3fef06570ef2b Roberto Sassu 2023-09-12 203 bufp != (void *)hdr + sizeof(*hdr) + hdr->datalen) {
b3fef06570ef2b Roberto Sassu 2023-09-12 204 pr_err("compact list, invalid data\n");
b3fef06570ef2b Roberto Sassu 2023-09-12 205 return -EINVAL;
b3fef06570ef2b Roberto Sassu 2023-09-12 206 }
b3fef06570ef2b Roberto Sassu 2023-09-12 207 }
b3fef06570ef2b Roberto Sassu 2023-09-12 208
b3fef06570ef2b Roberto Sassu 2023-09-12 209 return bufp - buf;
b3fef06570ef2b Roberto Sassu 2023-09-12 210 }
80701e75d21f48 Roberto Sassu 2023-09-12 211
:::::: The code at line 164 was first introduced by commit
:::::: b3fef06570ef2b61dd7181e5c1d128bfcbf6b2ef ima: Add parser of compact digest list
:::::: TO: Roberto Sassu <roberto.sassu(a)huawei.com>
:::::: CC: zgzxx <zhangguangzhi3(a)huawei.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 8248d42b7c5f4338a54f26d8efebec8614b43466 [3544/3544] fbdev: add ls2k500sfb driver for ls2k500 bmc.
config: x86_64-randconfig-r121-20251215 (https://download.01.org/0day-ci/archive/20251223/202512230505.cMBSrJNZ-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230505.cMBSrJNZ-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/202512230505.cMBSrJNZ-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *static p @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: expected void *static p
drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *static p @@
drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: expected void const volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: got void *static p
>> drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *static p @@
drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: expected void volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: got void *static p
>> drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: expected void const volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: got void *
>> drivers/video/fbdev/ls2k500sfb.c:254:13: sparse: sparse: symbol 'ls2k500sfb_interrupt' was not declared. Should it be static?
>> drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got char *preg @@
drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: expected void const volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: got char *preg
>> drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got char *preg @@
drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: got char *preg
>> drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *penv @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: expected char *penv
drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *preg @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: expected char *preg
drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: got void [noderef] __iomem *
drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *penv @@ got void [noderef] __iomem * @@
drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: expected char *penv
drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: got void [noderef] __iomem *
vim +143 drivers/video/fbdev/ls2k500sfb.c
113
114 static void ls2k500sfb_events_fn(struct work_struct *work)
115 {
116 struct ls2k500sfb_struct *priv = container_of(work, struct ls2k500sfb_struct, work);
117 struct pci_dev *pdev = priv->dev;
118 struct pci_dev *ppdev = pdev->bus->self;
119 uint32_t i, d, timeout, retry = 0;
120 static const uint32_t index[] = {
121 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x30, 0x3c, 0x54, 0x58, 0x78, 0x7c, 0x80, 4
122 };
123
124 static uint32_t data[sizeof(index) / 4];
125 static const uint32_t cindex[] = { 0x10, 0x3c, 4 };
126
127 static uint32_t cdata[sizeof(cindex) / 4];
128 static uint32_t d80c, d71c, ctrl;
129 static void *p;
130
131 if (!priv->running) {
132 for (i = 0; i < ARRAY_SIZE(index); i++)
133 pci_read_config_dword(ppdev, index[i], &data[i]);
134 for (i = 0; i < ARRAY_SIZE(cindex); i++)
135 pci_read_config_dword(pdev, cindex[i], &cdata[i]);
136 if (ppdev->vendor == 0x14) {
137 pci_read_config_dword(ppdev, 0x80c, &d80c);
138 d80c = (d80c & ~(3 << 17)) | (1 << 17);
139
140 pci_read_config_dword(ppdev, 0x71c, &d71c);
141 d71c |= 1 << 26;
142
> 143 p = pci_iomap(ppdev, 0, 0x100);
144 }
> 145 ctrl = readl(p);
146 return;
147 }
148 local_bh_disable();
149 pciebreak_smp_send_stop(100);
150 wmb(); /* flush all write before we disable pcie window */
151 pci_write_config_dword(ppdev, 0x18, 0);
152 pci_write_config_dword(ppdev, 0x1c, 0);
153 pci_write_config_dword(ppdev, 0x20, 0);
154 atomic_set(&waiting_for_pciebreak_ipi, 0);
155 wmb(); /* flush all write after change pcie window */
156 local_bh_enable();
157 if (ppdev->vendor == 0x14) {
158 timeout = 10000;
159 while (timeout) {
160 pci_read_config_dword(ppdev, 0x10, &d);
161 d &= ~0xf;
162 if (!d)
163 break;
164 mdelay(1);
165 timeout--;
166 };
167 if (!timeout)
168 pr_info("bar not clear 0\n");
169
170 pci_read_config_dword(ppdev, 0x0, &d);
171 pr_info("pcie port deviceid=0x%x recover begin\n", d);
172 retrain:
173 while (1) {
174 pci_write_config_dword(ppdev, index[0], data[0]);
175 pci_read_config_dword(ppdev, index[0], &d);
176 d &= ~0xf;
177 if (d)
178 break;
179 mdelay(1);
180 }
181
182 while (1) {
183 for (i = 0; i < ARRAY_SIZE(index); i++) {
184 if (index[i] != 0x18 && index[i] != 0x1c && index[i] != 0x20)
185 pci_write_config_dword(ppdev, index[i], data[i]);
186 }
187 pci_write_config_dword(ppdev, 0x80c, d80c);
188 pci_write_config_dword(ppdev, 0x71c, d71c);
189
190 pci_read_config_dword(ppdev, 0x10, &d);
191 d &= ~0xf;
192 if (d)
193 break;
194 mdelay(1);
195 }
196
197 timeout = 10000;
198
> 199 writel(ctrl | 0x8, p);
200 while (1) {
> 201 d = readl(p + 0xc);
202 if ((d & 0x11) == 0x11) {
203 break;
204 } else if (!timeout) {
205 pr_info("pcie train failed status=0x%x\n", d);
206 goto out;
207 }
208 mdelay(1);
209 timeout--;
210 }
211
212
213 pr_info("pcie recovered done\n");
214
215 if (!retry) {
216 /*wait u-boot ddr config */
217 set_current_state(TASK_UNINTERRUPTIBLE);
218 schedule_timeout(HZ*resetbootwait);
219 set_current_state(TASK_RUNNING);
220 pci_read_config_dword(ppdev, 0x10, &d);
221 d &= ~0xf;
222 if (!d) {
223 retry = 1;
224 goto retrain;
225 }
226 }
227 } else {
228 set_current_state(TASK_UNINTERRUPTIBLE);
229 schedule_timeout(HZ*resetbootwait);
230 set_current_state(TASK_RUNNING);
231 }
232 local_bh_disable();
233 pciebreak_smp_send_stop(10000);
234 wmb(); /* flush all write before we update pcie window */
235 for (i = 0; i < ARRAY_SIZE(index); i++)
236 pci_write_config_dword(ppdev, index[i], data[i]);
237
238 for (i = 0; i < ARRAY_SIZE(cindex); i++)
239 pci_write_config_dword(pdev, cindex[i], cdata[i]);
240 atomic_set(&waiting_for_pciebreak_ipi, 0);
241 wmb(); /* flush all write after we update pcie window */
242 local_bh_enable();
243
244
245 pr_info("redraw console\n");
246
247 saved_console = fg_console;
248 switch_console(fg_console > 0?fg_console - 1 : fg_console + 1);
249 queue_delayed_work(priv->wq, &priv->redraw_work, HZ);
250 out:
251 priv->running = 0;
252 }
253
> 254 irqreturn_t ls2k500sfb_interrupt(int irq, void *arg)
255 {
256 struct ls2k500sfb_struct *priv = arg;
257 struct pci_dev *pdev = priv->dev;
258
259 if (irq == pdev->irq)
260 pr_info("ls2k500sfb pcie interrupt\n");
261 else
262 pr_info("ls2k500sfb gpio interrupt\n");
263 if (system_state != SYSTEM_RUNNING)
264 return IRQ_HANDLED;
265
266 if (!priv->running) {
267 if (!resetdelay || time_after(jiffies, priv->reset_time + resetdelay * HZ)) {
268 priv->running = 1;
269 queue_work(priv->wq, &priv->work);
270 }
271 priv->reset_time = jiffies;
272 }
273 return IRQ_HANDLED;
274 }
275
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3407/3407] kernel/cgroup/cgroup.c:6217: warning: Function parameter or member 'f' not described in 'cgroup_get_from_file'
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi Yosry,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 590ef7039097222551e104343ae4ba74e4ed2f87 [3407/3407] cgroup: add cgroup_v1v2_get_from_[fd/file]()
config: arm64-randconfig-r071-20251212 (https://download.01.org/0day-ci/archive/20251223/202512230521.c3DzuiJA-lkp@…)
compiler: aarch64-linux-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230521.c3DzuiJA-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/202512230521.c3DzuiJA-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/cgroup/cgroup.c:6217: warning: Function parameter or member 'f' not described in 'cgroup_get_from_file'
kernel/cgroup/cgroup.c:6369: warning: Function parameter or member 'kargs' not described in 'cgroup_can_fork'
kernel/cgroup/cgroup.c:6430: warning: Function parameter or member 'kargs' not described in 'cgroup_post_fork'
>> kernel/cgroup/cgroup.c:6716: warning: Function parameter or member 'fd' not described in 'cgroup_get_from_fd'
vim +6217 kernel/cgroup/cgroup.c
6211
6212 /**
6213 * cgroup_get_from_file - same as cgroup_v1v2_get_from_file, but only supports
6214 * cgroup2.
6215 */
6216 static struct cgroup *cgroup_get_from_file(struct file *f)
> 6217 {
6218 struct cgroup *cgrp = cgroup_v1v2_get_from_file(f);
6219
6220 if (IS_ERR(cgrp))
6221 return ERR_CAST(cgrp);
6222
6223 if (!cgroup_on_dfl(cgrp)) {
6224 cgroup_put(cgrp);
6225 return ERR_PTR(-EBADF);
6226 }
6227
6228 return cgrp;
6229 }
6230
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3541/3541] kernel/sched/topology.c:2310:32: sparse: sparse: incorrect type in initializer (different base types)
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 0ccb3f810722de634beed0dc6fe5c59d963b4c50 [3541/3541] sched/topology: Provide cfs_overload_cpus bitmap
config: arm64-randconfig-r113-20251213 (https://download.01.org/0day-ci/archive/20251223/202512230528.roqd2yzx-lkp@…)
compiler: aarch64-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230528.roqd2yzx-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/202512230528.roqd2yzx-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/build_utility.c: note: in included file:
kernel/sched/stop_task.c:73:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/stop_task.c:73:38: sparse: expected struct task_struct *curr
kernel/sched/stop_task.c:73:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/build_utility.c: note: in included file:
>> kernel/sched/topology.c:2310:32: sparse: sparse: incorrect type in initializer (different base types) @@ expected int flags @@ got restricted gfp_t @@
kernel/sched/topology.c:2310:32: sparse: expected int flags
kernel/sched/topology.c:2310:32: sparse: got restricted gfp_t
>> kernel/sched/topology.c:2318:61: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted gfp_t [usertype] flags @@ got int flags @@
kernel/sched/topology.c:2318:61: sparse: expected restricted gfp_t [usertype] flags
kernel/sched/topology.c:2318:61: sparse: got int flags
kernel/sched/topology.c:2346:58: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:2346:58: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/topology.c:2346:58: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:491:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct perf_domain *pd @@ got struct perf_domain [noderef] __rcu *pd @@
kernel/sched/topology.c:491:19: sparse: expected struct perf_domain *pd
kernel/sched/topology.c:491:19: sparse: got struct perf_domain [noderef] __rcu *pd
kernel/sched/topology.c:655:49: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:655:49: sparse: expected struct sched_domain *parent
kernel/sched/topology.c:655:49: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:702:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:702:9: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/topology.c:702:9: sparse: struct sparsemask *
kernel/sched/topology.c:730:50: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:730:50: sparse: expected struct sched_domain *parent
kernel/sched/topology.c:730:50: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:738:55: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain [noderef] __rcu *[noderef] __rcu child @@ got struct sched_domain *[assigned] tmp @@
kernel/sched/topology.c:738:55: sparse: expected struct sched_domain [noderef] __rcu *[noderef] __rcu child
kernel/sched/topology.c:738:55: sparse: got struct sched_domain *[assigned] tmp
kernel/sched/topology.c:751:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:751:29: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/topology.c:751:29: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:756:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:756:20: sparse: expected struct sched_domain *sd
kernel/sched/topology.c:756:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:777:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *sd @@
kernel/sched/topology.c:777:13: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/topology.c:777:13: sparse: got struct sched_domain [noderef] __rcu *sd
kernel/sched/topology.c:939:70: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:939:70: sparse: expected struct sched_domain *sd
kernel/sched/topology.c:939:70: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:968:59: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:968:59: sparse: expected struct sched_domain *sd
kernel/sched/topology.c:968:59: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1014:57: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:1014:57: sparse: expected struct sched_domain *sd
kernel/sched/topology.c:1014:57: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1016:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sibling @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:1016:25: sparse: expected struct sched_domain *sibling
kernel/sched/topology.c:1016:25: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1024:55: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:1024:55: sparse: expected struct sched_domain *sd
kernel/sched/topology.c:1024:55: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1026:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sibling @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:1026:25: sparse: expected struct sched_domain *sibling
kernel/sched/topology.c:1026:25: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1096:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:1096:62: sparse: expected struct sched_domain *sd
kernel/sched/topology.c:1096:62: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1200:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:1200:40: sparse: expected struct sched_domain *child
kernel/sched/topology.c:1200:40: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1620:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain [noderef] __rcu *child @@ got struct sched_domain *child @@
kernel/sched/topology.c:1620:43: sparse: expected struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:1620:43: sparse: got struct sched_domain *child
kernel/sched/topology.c:1758:21: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:1758:21: sparse: int [noderef] __rcu *
kernel/sched/topology.c:1758:21: sparse: int *
kernel/sched/topology.c:1884:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:1884:9: sparse: int [noderef] __rcu *
kernel/sched/topology.c:1884:9: sparse: int *
kernel/sched/topology.c:1939:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:1939:9: sparse: struct cpumask **[noderef] __rcu *
kernel/sched/topology.c:1939:9: sparse: struct cpumask ***
kernel/sched/topology.c:1997:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:1997:9: sparse: int [noderef] __rcu *
kernel/sched/topology.c:1997:9: sparse: int *
kernel/sched/topology.c:1999:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:1999:9: sparse: struct cpumask **[noderef] __rcu *
kernel/sched/topology.c:1999:9: sparse: struct cpumask ***
kernel/sched/topology.c:2083:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:2083:17: sparse: struct cpumask **[noderef] __rcu *
kernel/sched/topology.c:2083:17: sparse: struct cpumask ***
kernel/sched/topology.c:2150:19: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:2150:19: sparse: struct cpumask **[noderef] __rcu *
kernel/sched/topology.c:2150:19: sparse: struct cpumask ***
kernel/sched/topology.c:2190:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/topology.c:2190:17: sparse: struct cpumask **[noderef] __rcu *
kernel/sched/topology.c:2190:17: sparse: struct cpumask ***
kernel/sched/topology.c:2386:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain [noderef] __rcu *parent @@ got struct sched_domain *sd @@
kernel/sched/topology.c:2386:31: sparse: expected struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:2386:31: sparse: got struct sched_domain *sd
kernel/sched/topology.c:2489:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:2489:57: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/topology.c:2489:57: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:2510:56: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/topology.c:2510:56: sparse: expected struct sched_domain *child
kernel/sched/topology.c:2510:56: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/topology.c:2509:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:2509:57: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/topology.c:2509:57: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/topology.c:2564:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/topology.c:2564:57: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/topology.c:2564:57: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/build_utility.c: note: in included file:
kernel/sched/build_utility.c: note: in included file:
kernel/sched/sched.h:1853:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/sched.h:1853:9: sparse: expected struct sched_domain *[assigned] sd
vim +2310 kernel/sched/topology.c
2304
2305 static int sd_llc_alloc(struct sched_domain *sd)
2306 {
2307 struct sched_domain_shared *sds = sd->shared;
2308 struct cpumask *span = sched_domain_span(sd);
2309 int nid = cpu_to_node(cpumask_first(span));
> 2310 int flags = __GFP_ZERO | GFP_KERNEL;
2311 struct sparsemask *mask;
2312
2313 /*
2314 * Allocate the bitmap if not already allocated. This is called for
2315 * every CPU in the LLC but only allocates once per sd_llc_shared.
2316 */
2317 if (!sds->cfs_overload_cpus) {
> 2318 mask = sparsemask_alloc_node(nr_cpu_ids, 3, flags, nid);
2319 if (!mask)
2320 return 1;
2321 sds->cfs_overload_cpus = mask;
2322 }
2323
2324 return 0;
2325 }
2326
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3418/3418] drivers/net/dsa/mv88e6xxx/chip.c:2320:25: error: implicit declaration of function 'mv88e6xxx_g2_eeprom_wait'; did you mean 'mv88e6xxx_g2_pvt_write'?
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi Fabio,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 02956abc74ede6549249eb21e5b319b92dd147f3 [3418/3418] net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
config: x86_64-randconfig-012-20251217 (https://download.01.org/0day-ci/archive/20251223/202512230339.KxFb5dKg-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230339.KxFb5dKg-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/202512230339.KxFb5dKg-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/dsa/mv88e6xxx/chip.c: In function 'mv88e6xxx_hardware_reset':
>> drivers/net/dsa/mv88e6xxx/chip.c:2320:25: error: implicit declaration of function 'mv88e6xxx_g2_eeprom_wait'; did you mean 'mv88e6xxx_g2_pvt_write'? [-Werror=implicit-function-declaration]
2320 | mv88e6xxx_g2_eeprom_wait(chip);
| ^~~~~~~~~~~~~~~~~~~~~~~~
| mv88e6xxx_g2_pvt_write
cc1: some warnings being treated as errors
vim +2320 drivers/net/dsa/mv88e6xxx/chip.c
2306
2307 static void mv88e6xxx_hardware_reset(struct mv88e6xxx_chip *chip)
2308 {
2309 struct gpio_desc *gpiod = chip->reset;
2310
2311 /* If there is a GPIO connected to the reset pin, toggle it */
2312 if (gpiod) {
2313 /* If the switch has just been reset and not yet completed
2314 * loading EEPROM, the reset may interrupt the I2C transaction
2315 * mid-byte, causing the first EEPROM read after the reset
2316 * from the wrong location resulting in the switch booting
2317 * to wrong mode and inoperable.
2318 */
2319 if (chip->info->ops->get_eeprom)
> 2320 mv88e6xxx_g2_eeprom_wait(chip);
2321
2322 gpiod_set_value_cansleep(gpiod, 1);
2323 usleep_range(10000, 20000);
2324 gpiod_set_value_cansleep(gpiod, 0);
2325 usleep_range(10000, 20000);
2326
2327 if (chip->info->ops->get_eeprom)
2328 mv88e6xxx_g2_eeprom_wait(chip);
2329 }
2330 }
2331
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3541/3541] kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: c098fa18c07cc52100a52db8fd0c2900461888c9
commit: 2e1dfc02d115143587ccfee1815ad295763050f2 [3541/3541] sched: Adjust wakeup cpu range according CPU util dynamicly
config: arm64-randconfig-r113-20251213 (https://download.01.org/0day-ci/archive/20251223/202512230232.mDLII3OZ-lkp@…)
compiler: aarch64-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230232.mDLII3OZ-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/202512230232.mDLII3OZ-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:143:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static?
kernel/sched/fair.c:144:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static?
>> kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
kernel/sched/fair.c:1256:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1256:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1256:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:3039:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu * @@
kernel/sched/fair.c:3039:13: sparse: expected struct task_struct *tsk
kernel/sched/fair.c:3039:13: sparse: got struct task_struct [noderef] __rcu *
kernel/sched/fair.c:12740:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12740:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12740:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5891:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5891:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:5891:22: sparse: struct task_struct *
kernel/sched/fair.c:7964:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7964:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:7964:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8258:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8258:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8258:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8367:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8367:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8367:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8587:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8587:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8587:22: sparse: struct task_struct *
kernel/sched/fair.c:8941:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8941:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8941:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:9934:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:9934:40: sparse: expected struct sched_domain *child
kernel/sched/fair.c:9934:40: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:10571:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:10571:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:10571:22: sparse: struct task_struct *
kernel/sched/fair.c:12012:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12012:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12012:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:11669:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:11669:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:11669:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12108:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12108:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12108:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:2985:9: sparse: sparse: context imbalance in 'task_numa_placement' - different lock contexts for basic block
kernel/sched/fair.c:7180:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7180:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7180:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7186:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7186:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7186:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7193:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:7193:28: sparse: expected struct sched_domain *sd
kernel/sched/fair.c:7193:28: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:7201:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7201:17: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:7201:17: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2309:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2309:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2309:9: sparse: struct task_struct *
kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2145:25: sparse: struct task_struct *
kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2145:25: sparse: struct task_struct *
vim +/sysctl_sched_util_low_pct +175 kernel/sched/fair.c
168
169 #ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
170 /*
171 * Low utilization threshold for CPU
172 *
173 * (default: 85%), units: percentage of CPU utilization)
174 */
> 175 int sysctl_sched_util_low_pct = 85;
176 #endif
177
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1942/1942] arch/arm64/kernel/cpu_errata.c:1323:13: warning: no previous prototype for 'spectre_bhb_patch_loop_iter'
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi James,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: cb917077efa4fecd975ab17d6aececdd90abe82e [1942/1942] arm64: Mitigate spectre style branch history side channels
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20251223/202512230214.GrBXN1xm-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230214.GrBXN1xm-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/202512230214.GrBXN1xm-lkp@intel.com/
All warnings (new ones prefixed by >>):
arch/arm64/kernel/cpu_errata.c:335:13: warning: no previous prototype for 'arm64_update_smccc_conduit' [-Wmissing-prototypes]
335 | void __init arm64_update_smccc_conduit(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/cpu_errata.c:357:13: warning: no previous prototype for 'arm64_enable_wa2_handling' [-Wmissing-prototypes]
357 | void __init arm64_enable_wa2_handling(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kernel/cpu_errata.c:1323:13: warning: no previous prototype for 'spectre_bhb_patch_loop_iter' [-Wmissing-prototypes]
1323 | void __init spectre_bhb_patch_loop_iter(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm64/include/asm/atomic.h:36,
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/linux/list.h:9,
from include/linux/kobject.h:20,
from include/linux/device.h:17,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from arch/arm64/kernel/cpu_errata.c:22:
In function '__cmpxchg_case_4',
inlined from '__cmpxchg' at arch/arm64/include/asm/cmpxchg.h:140:1,
inlined from 'update_mitigation_state' at arch/arm64/kernel/cpu_errata.c:1044:11,
inlined from 'spectre_bhb_enable_mitigation' at arch/arm64/kernel/cpu_errata.c:1319:2,
inlined from 'spectre_bhb_enable_mitigation' at arch/arm64/kernel/cpu_errata.c:1271:6:
>> arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'enum mitigation_state[1]' [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:279:1: note: in expansion of macro '__CMPXCHG_CASE'
279 | __CMPXCHG_CASE(w, , 4, , , , )
| ^~~~~~~~~~~~~~
arch/arm64/kernel/cpu_errata.c: In function 'spectre_bhb_enable_mitigation':
arch/arm64/kernel/cpu_errata.c:1058:30: note: object 'spectre_bhb_state' of size 4
1058 | static enum mitigation_state spectre_bhb_state;
| ^~~~~~~~~~~~~~~~~
In function '__cmpxchg_case_4',
inlined from '__cmpxchg' at arch/arm64/include/asm/cmpxchg.h:140:1,
inlined from 'update_mitigation_state' at arch/arm64/kernel/cpu_errata.c:1044:11,
inlined from 'spectre_bhb_enable_mitigation' at arch/arm64/kernel/cpu_errata.c:1319:2,
inlined from 'spectre_bhb_enable_mitigation' at arch/arm64/kernel/cpu_errata.c:1271:6:
>> arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'enum mitigation_state[1]' [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:279:1: note: in expansion of macro '__CMPXCHG_CASE'
279 | __CMPXCHG_CASE(w, , 4, , , , )
| ^~~~~~~~~~~~~~
arch/arm64/kernel/cpu_errata.c: In function 'spectre_bhb_enable_mitigation':
arch/arm64/kernel/cpu_errata.c:1058:30: note: object 'spectre_bhb_state' of size 4
1058 | static enum mitigation_state spectre_bhb_state;
| ^~~~~~~~~~~~~~~~~
vim +/spectre_bhb_patch_loop_iter +1323 arch/arm64/kernel/cpu_errata.c
1321
1322 /* Patched to correct the immediate */
> 1323 void __init spectre_bhb_patch_loop_iter(struct alt_instr *alt,
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3557/3557] drivers/irqchip/irq-gic-phytium-2500.c:1216:78: sparse: sparse: dubious: !x | !y
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 792b82446538ed840a6e23b89673ce21564702bd [3557/3557] Fix gic support for Phytium S2500
config: arm64-randconfig-r132-20251218 (https://download.01.org/0day-ci/archive/20251223/202512230028.LM8FWjL7-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230028.LM8FWjL7-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/202512230028.LM8FWjL7-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/irqchip/irq-gic-phytium-2500.c:1216:78: sparse: sparse: dubious: !x | !y
>> drivers/irqchip/irq-gic-phytium-2500.c:302:29: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:327:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:454:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:479:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:266:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:767:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1155:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1156:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1157:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1409:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:266:24: sparse: sparse: dereference of noderef expression
--
>> drivers/irqchip/irq-gic-phytium-2500-its.c:1479:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:1479:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:1479:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:1485:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:1485:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:1485:9: sparse: got struct raw_spinlock [noderef] __percpu *
>> drivers/irqchip/irq-gic-phytium-2500-its.c:2934:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct cpumask [usertype] **mask @@ got struct cpumask [usertype] *[noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:2934:45: sparse: expected struct cpumask [usertype] **mask
drivers/irqchip/irq-gic-phytium-2500-its.c:2934:45: sparse: got struct cpumask [usertype] *[noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4281:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4281:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4281:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4286:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4286:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4286:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4421:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4421:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4421:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4439:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4439:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4439:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c: note: in included file (through include/linux/spinlock.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
include/linux/spinlock_api_smp.h:111:9: sparse: sparse: context imbalance in 'vpe_to_cpuid_lock' - wrong count at exit
drivers/irqchip/irq-gic-phytium-2500-its.c:284:13: sparse: sparse: context imbalance in 'vpe_to_cpuid_unlock' - unexpected unlock
>> drivers/irqchip/irq-gic-phytium-2500-its.c:1481:18: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2337:23: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2337:23: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2751:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2751:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2772:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2806:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2806:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2810:38: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2828:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2828:49: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2829:25: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2839:30: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2882:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2909:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2938:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2939:14: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3009:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3021:45: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3021:45: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3023:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3078:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3078:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3093:29: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3093:29: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3118:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3156:31: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3161:13: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3180:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3185:21: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3244:43: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3279:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3280:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3318:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3321:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3321:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3919:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3968:13: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3969:36: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3969:36: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3984:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3998:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4030:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4140:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4220:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4235:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4282:18: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4422:16: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5309:19: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5309:19: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5314:31: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5334:14: sparse: sparse: dereference of noderef expression
vim +1216 drivers/irqchip/irq-gic-phytium-2500.c
ade50f9f855e6a Li Yuting 2024-01-17 1181
ade50f9f855e6a Li Yuting 2024-01-17 1182 static int __gic_update_rdist_properties(struct redist_region *region,
ade50f9f855e6a Li Yuting 2024-01-17 1183 void __iomem *ptr)
ade50f9f855e6a Li Yuting 2024-01-17 1184 {
ade50f9f855e6a Li Yuting 2024-01-17 1185 u64 typer = gic_read_typer(ptr + GICR_TYPER);
ade50f9f855e6a Li Yuting 2024-01-17 1186 u32 ctlr = readl_relaxed(ptr + GICR_CTLR);
ade50f9f855e6a Li Yuting 2024-01-17 1187
ade50f9f855e6a Li Yuting 2024-01-17 1188 /* Boot-time cleanup */
ade50f9f855e6a Li Yuting 2024-01-17 1189 if ((typer & GICR_TYPER_VLPIS) && (typer & GICR_TYPER_RVPEID)) {
ade50f9f855e6a Li Yuting 2024-01-17 1190 u64 val;
ade50f9f855e6a Li Yuting 2024-01-17 1191
ade50f9f855e6a Li Yuting 2024-01-17 1192 /* Deactivate any present vPE */
ade50f9f855e6a Li Yuting 2024-01-17 1193 val = gicr_read_vpendbaser(ptr + SZ_128K + GICR_VPENDBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1194 if (val & GICR_VPENDBASER_Valid)
ade50f9f855e6a Li Yuting 2024-01-17 1195 gicr_write_vpendbaser(GICR_VPENDBASER_PendingLast,
ade50f9f855e6a Li Yuting 2024-01-17 1196 ptr + SZ_128K + GICR_VPENDBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1197
ade50f9f855e6a Li Yuting 2024-01-17 1198 /* Mark the VPE table as invalid */
ade50f9f855e6a Li Yuting 2024-01-17 1199 val = gicr_read_vpropbaser(ptr + SZ_128K + GICR_VPROPBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1200 val &= ~GICR_VPROPBASER_4_1_VALID;
ade50f9f855e6a Li Yuting 2024-01-17 1201 gicr_write_vpropbaser(val, ptr + SZ_128K + GICR_VPROPBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1202 }
ade50f9f855e6a Li Yuting 2024-01-17 1203
ade50f9f855e6a Li Yuting 2024-01-17 1204 gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS);
ade50f9f855e6a Li Yuting 2024-01-17 1205
ade50f9f855e6a Li Yuting 2024-01-17 1206 /*
ade50f9f855e6a Li Yuting 2024-01-17 1207 * TYPER.RVPEID implies some form of DirectLPI, no matter what the
ade50f9f855e6a Li Yuting 2024-01-17 1208 * doc says... :-/ And CTLR.IR implies another subset of DirectLPI
ade50f9f855e6a Li Yuting 2024-01-17 1209 * that the ITS driver can make use of for LPIs (and not VLPIs).
ade50f9f855e6a Li Yuting 2024-01-17 1210 *
ade50f9f855e6a Li Yuting 2024-01-17 1211 * These are 3 different ways to express the same thing, depending
ade50f9f855e6a Li Yuting 2024-01-17 1212 * on the revision of the architecture and its relaxations over
ade50f9f855e6a Li Yuting 2024-01-17 1213 * time. Just group them under the 'direct_lpi' banner.
ade50f9f855e6a Li Yuting 2024-01-17 1214 */
ade50f9f855e6a Li Yuting 2024-01-17 1215 gic_data.rdists.has_rvpeid &= !!(typer & GICR_TYPER_RVPEID);
ade50f9f855e6a Li Yuting 2024-01-17 @1216 gic_data.rdists.has_direct_lpi &= (!!(typer & GICR_TYPER_DirectLPIS) |
ade50f9f855e6a Li Yuting 2024-01-17 1217 !!(ctlr & GICR_CTLR_IR) |
ade50f9f855e6a Li Yuting 2024-01-17 1218 gic_data.rdists.has_rvpeid);
ade50f9f855e6a Li Yuting 2024-01-17 1219 gic_data.rdists.has_vpend_valid_dirty &= !!(typer & GICR_TYPER_DIRTY);
ade50f9f855e6a Li Yuting 2024-01-17 1220
ade50f9f855e6a Li Yuting 2024-01-17 1221 /* Detect non-sensical configurations */
ade50f9f855e6a Li Yuting 2024-01-17 1222 if (WARN_ON_ONCE(gic_data.rdists.has_rvpeid && !gic_data.rdists.has_vlpis)) {
ade50f9f855e6a Li Yuting 2024-01-17 1223 gic_data.rdists.has_direct_lpi = false;
ade50f9f855e6a Li Yuting 2024-01-17 1224 gic_data.rdists.has_vlpis = false;
ade50f9f855e6a Li Yuting 2024-01-17 1225 gic_data.rdists.has_rvpeid = false;
ade50f9f855e6a Li Yuting 2024-01-17 1226 }
ade50f9f855e6a Li Yuting 2024-01-17 1227
ade50f9f855e6a Li Yuting 2024-01-17 1228 gic_data.ppi_nr = min(GICR_TYPER_NR_PPIS(typer), gic_data.ppi_nr);
ade50f9f855e6a Li Yuting 2024-01-17 1229
ade50f9f855e6a Li Yuting 2024-01-17 1230 return 1;
ade50f9f855e6a Li Yuting 2024-01-17 1231 }
ade50f9f855e6a Li Yuting 2024-01-17 1232
:::::: The code at line 1216 was first introduced by commit
:::::: ade50f9f855e6afd85e65b6b036a1bb948d4dfff Add gic support for Phytium S2500
:::::: TO: Li Yuting <liyuting2071(a)phytium.com.cn>
:::::: CC: Li Yuting <liyuting2071(a)phytium.com.cn>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3418/3418] arch/x86/kernel/alternative.c:78:21: sparse: sparse: symbol 'x86nops' was not declared. Should it be static?
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 8243b036681b074fab34e18024d1ee24c656b432 [3418/3418] x86: Remove dynamic NOP selection
config: x86_64-randconfig-121-20251217 (https://download.01.org/0day-ci/archive/20251223/202512230026.G2nO9RjO-lkp@…)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230026.G2nO9RjO-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/202512230026.G2nO9RjO-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> arch/x86/kernel/alternative.c:78:21: sparse: sparse: symbol 'x86nops' was not declared. Should it be static?
vim +/x86nops +78 arch/x86/kernel/alternative.c
77
> 78 const unsigned char x86nops[] =
79 {
80 BYTES_NOP1,
81 BYTES_NOP2,
82 BYTES_NOP3,
83 BYTES_NOP4,
84 BYTES_NOP5,
85 BYTES_NOP6,
86 BYTES_NOP7,
87 BYTES_NOP8,
88 };
89
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1941/1941] drivers/tee/optee/core.c:618:10: warning: return makes integer from pointer without a cast
by kernel test robot 23 Dec '25
by kernel test robot 23 Dec '25
23 Dec '25
Hi Ard,
First bad commit (maybe != root cause):
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: 595311cf7e49c781dd26782e4b45fd54bbfb3e40 [1941/1941] optee: model OP-TEE as a platform device/driver
config: arm64-randconfig-003-20251212 (https://download.01.org/0day-ci/archive/20251223/202512230051.P5z9Xtje-lkp@…)
compiler: aarch64-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230051.P5z9Xtje-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/202512230051.P5z9Xtje-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/tee/optee/core.c: In function 'optee_probe':
>> drivers/tee/optee/core.c:618:10: warning: return makes integer from pointer without a cast [-Wint-conversion]
return ERR_PTR(-EINVAL);
^~~~~~~~~~~~~~~~
vim +618 drivers/tee/optee/core.c
595311cf7e49c7 Ard Biesheuvel 2019-12-09 581
595311cf7e49c7 Ard Biesheuvel 2019-12-09 582 static int optee_probe(struct platform_device *pdev)
4fb0a5eb364d23 Jens Wiklander 2015-04-14 583 {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 584 optee_invoke_fn *invoke_fn;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 585 struct tee_shm_pool *pool;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 586 struct optee *optee = NULL;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 587 void *memremaped_shm = NULL;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 588 struct tee_device *teedev;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 589 u32 sec_caps;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 590 int rc;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 591
595311cf7e49c7 Ard Biesheuvel 2019-12-09 592 invoke_fn = get_invoke_func(&pdev->dev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 593 if (IS_ERR(invoke_fn))
595311cf7e49c7 Ard Biesheuvel 2019-12-09 594 return PTR_ERR(invoke_fn);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 595
4fb0a5eb364d23 Jens Wiklander 2015-04-14 596 if (!optee_msg_api_uid_is_optee_api(invoke_fn)) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 597 pr_warn("api uid mismatch\n");
595311cf7e49c7 Ard Biesheuvel 2019-12-09 598 return -EINVAL;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 599 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 600
5c5f80307ab27c Jérôme Forissier 2017-11-24 601 optee_msg_get_os_revision(invoke_fn);
5c5f80307ab27c Jérôme Forissier 2017-11-24 602
4fb0a5eb364d23 Jens Wiklander 2015-04-14 603 if (!optee_msg_api_revision_is_compatible(invoke_fn)) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 604 pr_warn("api revision mismatch\n");
595311cf7e49c7 Ard Biesheuvel 2019-12-09 605 return -EINVAL;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 606 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 607
4fb0a5eb364d23 Jens Wiklander 2015-04-14 608 if (!optee_msg_exchange_capabilities(invoke_fn, &sec_caps)) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 609 pr_warn("capabilities mismatch\n");
595311cf7e49c7 Ard Biesheuvel 2019-12-09 610 return -EINVAL;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 611 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 612
4fb0a5eb364d23 Jens Wiklander 2015-04-14 613 /*
4fb0a5eb364d23 Jens Wiklander 2015-04-14 614 * We have no other option for shared memory, if secure world
4fb0a5eb364d23 Jens Wiklander 2015-04-14 615 * doesn't have any reserved memory we can use we can't continue.
4fb0a5eb364d23 Jens Wiklander 2015-04-14 616 */
4fb0a5eb364d23 Jens Wiklander 2015-04-14 617 if (!(sec_caps & OPTEE_SMC_SEC_CAP_HAVE_RESERVED_SHM))
4fb0a5eb364d23 Jens Wiklander 2015-04-14 @618 return ERR_PTR(-EINVAL);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 619
f58e236c9d665a Volodymyr Babchuk 2017-11-29 620 pool = optee_config_shm_memremap(invoke_fn, &memremaped_shm, sec_caps);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 621 if (IS_ERR(pool))
595311cf7e49c7 Ard Biesheuvel 2019-12-09 622 return PTR_ERR(pool);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 623
4fb0a5eb364d23 Jens Wiklander 2015-04-14 624 optee = kzalloc(sizeof(*optee), GFP_KERNEL);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 625 if (!optee) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 626 rc = -ENOMEM;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 627 goto err;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 628 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 629
4fb0a5eb364d23 Jens Wiklander 2015-04-14 630 optee->invoke_fn = invoke_fn;
d885cc5e0759fc Volodymyr Babchuk 2017-11-29 631 optee->sec_caps = sec_caps;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 632
4fb0a5eb364d23 Jens Wiklander 2015-04-14 633 teedev = tee_device_alloc(&optee_desc, NULL, pool, optee);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 634 if (IS_ERR(teedev)) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 635 rc = PTR_ERR(teedev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 636 goto err;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 637 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 638 optee->teedev = teedev;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 639
4fb0a5eb364d23 Jens Wiklander 2015-04-14 640 teedev = tee_device_alloc(&optee_supp_desc, NULL, pool, optee);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 641 if (IS_ERR(teedev)) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 642 rc = PTR_ERR(teedev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 643 goto err;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 644 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 645 optee->supp_teedev = teedev;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 646
4fb0a5eb364d23 Jens Wiklander 2015-04-14 647 rc = tee_device_register(optee->teedev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 648 if (rc)
4fb0a5eb364d23 Jens Wiklander 2015-04-14 649 goto err;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 650
4fb0a5eb364d23 Jens Wiklander 2015-04-14 651 rc = tee_device_register(optee->supp_teedev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 652 if (rc)
4fb0a5eb364d23 Jens Wiklander 2015-04-14 653 goto err;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 654
4fb0a5eb364d23 Jens Wiklander 2015-04-14 655 mutex_init(&optee->call_queue.mutex);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 656 INIT_LIST_HEAD(&optee->call_queue.waiters);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 657 optee_wait_queue_init(&optee->wait_queue);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 658 optee_supp_init(&optee->supp);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 659 optee->memremaped_shm = memremaped_shm;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 660 optee->pool = pool;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 661
4fb0a5eb364d23 Jens Wiklander 2015-04-14 662 optee_enable_shm_cache(optee);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 663
595311cf7e49c7 Ard Biesheuvel 2019-12-09 664 platform_set_drvdata(pdev, optee);
595311cf7e49c7 Ard Biesheuvel 2019-12-09 665
4fb0a5eb364d23 Jens Wiklander 2015-04-14 666 pr_info("initialized driver\n");
595311cf7e49c7 Ard Biesheuvel 2019-12-09 667 return 0;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 668 err:
4fb0a5eb364d23 Jens Wiklander 2015-04-14 669 if (optee) {
4fb0a5eb364d23 Jens Wiklander 2015-04-14 670 /*
4fb0a5eb364d23 Jens Wiklander 2015-04-14 671 * tee_device_unregister() is safe to call even if the
4fb0a5eb364d23 Jens Wiklander 2015-04-14 672 * devices hasn't been registered with
4fb0a5eb364d23 Jens Wiklander 2015-04-14 673 * tee_device_register() yet.
4fb0a5eb364d23 Jens Wiklander 2015-04-14 674 */
4fb0a5eb364d23 Jens Wiklander 2015-04-14 675 tee_device_unregister(optee->supp_teedev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 676 tee_device_unregister(optee->teedev);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 677 kfree(optee);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 678 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 679 if (pool)
4fb0a5eb364d23 Jens Wiklander 2015-04-14 680 tee_shm_pool_free(pool);
4fb0a5eb364d23 Jens Wiklander 2015-04-14 681 if (memremaped_shm)
4fb0a5eb364d23 Jens Wiklander 2015-04-14 682 memunmap(memremaped_shm);
595311cf7e49c7 Ard Biesheuvel 2019-12-09 683 return rc;
4fb0a5eb364d23 Jens Wiklander 2015-04-14 684 }
4fb0a5eb364d23 Jens Wiklander 2015-04-14 685
:::::: The code at line 618 was first introduced by commit
:::::: 4fb0a5eb364d239722e745c02aef0dbd4e0f1ad2 tee: add OP-TEE driver
:::::: TO: Jens Wiklander <jens.wiklander(a)linaro.org>
:::::: CC: Jens Wiklander <jens.wiklander(a)linaro.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3418/3418] drivers/acpi/numa/hmat.c:726:6: warning: no previous prototype for 'hmat_restore_target'
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
Hi Zhang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 2e1b00fcf1e3152a1e73846f5f9ec37cef088a65 [3418/3418] ACPI/HMAT: Add missing locality information for hot-added device
config: x86_64-randconfig-122-20251217 (https://download.01.org/0day-ci/archive/20251222/202512222339.MPuLnpUs-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512222339.MPuLnpUs-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/202512222339.MPuLnpUs-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/acpi/numa/hmat.c:726:6: warning: no previous prototype for 'hmat_restore_target' [-Wmissing-prototypes]
726 | void hmat_restore_target(int nid)
| ^~~~~~~~~~~~~~~~~~~
vim +/hmat_restore_target +726 drivers/acpi/numa/hmat.c
725
> 726 void hmat_restore_target(int nid)
727 {
728 struct memory_target *target;
729 int pxm;
730
731 pxm = node_to_pxm(nid);
732 target = find_mem_target(pxm);
733 if (!target)
734 return;
735
736 mutex_lock(&target_lock);
737 hmat_register_target_cache(target);
738 hmat_register_target_perf(target, 0);
739 hmat_register_target_perf(target, 1);
740 mutex_unlock(&target_lock);
741 }
742
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3541/3541] mm/memcontrol.c:3147:6: warning: no previous prototype for 'hisi_oom_recover'
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
Hi Weilong,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: b498d9f1bacd40d583c0970cab02ad522127a7e7 [3541/3541] arm64/ascend: Add new enable_oom_killer interface for oom contrl
config: arm64-randconfig-r113-20251213 (https://download.01.org/0day-ci/archive/20251222/202512222346.eorgTDJ9-lkp@…)
compiler: aarch64-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512222346.eorgTDJ9-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/202512222346.eorgTDJ9-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> mm/memcontrol.c:3147:6: warning: no previous prototype for 'hisi_oom_recover' [-Wmissing-prototypes]
3147 | void hisi_oom_recover(struct obj_cgroup *objcg)
| ^~~~~~~~~~~~~~~~
vim +/hisi_oom_recover +3147 mm/memcontrol.c
3145
3146 #ifdef CONFIG_ASCEND_OOM
> 3147 void hisi_oom_recover(struct obj_cgroup *objcg)
3148 {
3149 struct mem_cgroup *memcg;
3150
3151 memcg = get_mem_cgroup_from_objcg(objcg);
3152 if (!mem_cgroup_is_root(memcg))
3153 memcg_oom_recover(memcg);
3154 css_put(&memcg->css);
3155 }
3156 #else
3157 static inline void hisi_oom_recover(struct obj_cgroup *objcg) { }
3158 #endif
3159
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3542/3542] arch/arm64/kvm/rme.c:740:6: warning: variable 'tmp_page' is used uninitialized whenever 'if' condition is true
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
Hi Steven,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: a74f93b7e7c0d8a2114055ed0c652cc735a7a07b [3542/3542] [backport]rme: populate guest memory region without guest_memfd
config: arm64-randconfig-001-20251215 (https://download.01.org/0day-ci/archive/20251222/202512222225.THn80kvi-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512222225.THn80kvi-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/202512222225.THn80kvi-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/rme.c:740:6: warning: variable 'tmp_page' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
740 | if (memslot->base_gfn + memslot->npages < end_gfn) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/rme.c:789:14: note: uninitialized use occurs here
789 | __free_page(tmp_page);
| ^~~~~~~~
arch/arm64/kvm/rme.c:740:2: note: remove the 'if' if its condition is always false
740 | if (memslot->base_gfn + memslot->npages < end_gfn) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
741 | ret = -EINVAL;
| ~~~~~~~~~~~~~~
742 | goto out;
| ~~~~~~~~~
743 | }
| ~
arch/arm64/kvm/rme.c:734:6: warning: variable 'tmp_page' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
734 | if (!memslot) {
| ^~~~~~~~
arch/arm64/kvm/rme.c:789:14: note: uninitialized use occurs here
789 | __free_page(tmp_page);
| ^~~~~~~~
arch/arm64/kvm/rme.c:734:2: note: remove the 'if' if its condition is always false
734 | if (!memslot) {
| ^~~~~~~~~~~~~~~
735 | ret = -EFAULT;
| ~~~~~~~~~~~~~~
736 | goto out;
| ~~~~~~~~~
737 | }
| ~
arch/arm64/kvm/rme.c:726:23: note: initialize the variable 'tmp_page' to silence this warning
726 | struct page *tmp_page;
| ^
| = NULL
arch/arm64/kvm/rme.c:798:16: warning: variable 'data_flags' set but not used [-Wunused-but-set-variable]
798 | unsigned long data_flags = 0;
| ^
3 warnings generated.
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for RESCTRL_FS
Depends on [n]: MISC_FILESYSTEMS [=n] && ARCH_HAS_CPU_RESCTRL [=y]
Selected by [y]:
- ARM64_MPAM [=y]
vim +740 arch/arm64/kvm/rme.c
e216f77846eeb7 Steven Price 2025-06-14 715
e216f77846eeb7 Steven Price 2025-06-14 716 static int populate_region(struct kvm *kvm,
e216f77846eeb7 Steven Price 2025-06-14 717 phys_addr_t ipa_base,
e216f77846eeb7 Steven Price 2025-06-14 718 phys_addr_t ipa_end,
e216f77846eeb7 Steven Price 2025-06-14 719 unsigned long data_flags)
e216f77846eeb7 Steven Price 2025-06-14 720 {
e216f77846eeb7 Steven Price 2025-06-14 721 struct realm *realm = &kvm->arch.realm;
e216f77846eeb7 Steven Price 2025-06-14 722 struct kvm_memory_slot *memslot;
e216f77846eeb7 Steven Price 2025-06-14 723 gfn_t base_gfn, end_gfn;
e216f77846eeb7 Steven Price 2025-06-14 724 int idx;
e216f77846eeb7 Steven Price 2025-06-14 725 phys_addr_t ipa = ipa_base;
a74f93b7e7c0d8 Steven Price 2025-06-14 726 struct page *tmp_page;
e216f77846eeb7 Steven Price 2025-06-14 727 int ret = 0;
e216f77846eeb7 Steven Price 2025-06-14 728
e216f77846eeb7 Steven Price 2025-06-14 729 base_gfn = gpa_to_gfn(ipa_base);
e216f77846eeb7 Steven Price 2025-06-14 730 end_gfn = gpa_to_gfn(ipa_end);
e216f77846eeb7 Steven Price 2025-06-14 731
e216f77846eeb7 Steven Price 2025-06-14 732 idx = srcu_read_lock(&kvm->srcu);
e216f77846eeb7 Steven Price 2025-06-14 733 memslot = gfn_to_memslot(kvm, base_gfn);
e216f77846eeb7 Steven Price 2025-06-14 734 if (!memslot) {
e216f77846eeb7 Steven Price 2025-06-14 735 ret = -EFAULT;
e216f77846eeb7 Steven Price 2025-06-14 736 goto out;
e216f77846eeb7 Steven Price 2025-06-14 737 }
e216f77846eeb7 Steven Price 2025-06-14 738
e216f77846eeb7 Steven Price 2025-06-14 739 /* We require the region to be contained within a single memslot */
e216f77846eeb7 Steven Price 2025-06-14 @740 if (memslot->base_gfn + memslot->npages < end_gfn) {
e216f77846eeb7 Steven Price 2025-06-14 741 ret = -EINVAL;
e216f77846eeb7 Steven Price 2025-06-14 742 goto out;
e216f77846eeb7 Steven Price 2025-06-14 743 }
e216f77846eeb7 Steven Price 2025-06-14 744
a74f93b7e7c0d8 Steven Price 2025-06-14 745 tmp_page = alloc_page(GFP_KERNEL);
a74f93b7e7c0d8 Steven Price 2025-06-14 746 if (!tmp_page) {
a74f93b7e7c0d8 Steven Price 2025-06-14 747 ret = -ENOMEM;
e216f77846eeb7 Steven Price 2025-06-14 748 goto out;
e216f77846eeb7 Steven Price 2025-06-14 749 }
e216f77846eeb7 Steven Price 2025-06-14 750
a74f93b7e7c0d8 Steven Price 2025-06-14 751 mmap_read_lock(current->mm);
a74f93b7e7c0d8 Steven Price 2025-06-14 752
e216f77846eeb7 Steven Price 2025-06-14 753 while (ipa < ipa_end) {
e216f77846eeb7 Steven Price 2025-06-14 754 struct vm_area_struct *vma;
e216f77846eeb7 Steven Price 2025-06-14 755 unsigned long hva;
e216f77846eeb7 Steven Price 2025-06-14 756 struct page *page;
e216f77846eeb7 Steven Price 2025-06-14 757 kvm_pfn_t pfn;
e216f77846eeb7 Steven Price 2025-06-14 758
e216f77846eeb7 Steven Price 2025-06-14 759 hva = gfn_to_hva_memslot(memslot, gpa_to_gfn(ipa));
e216f77846eeb7 Steven Price 2025-06-14 760 vma = vma_lookup(current->mm, hva);
e216f77846eeb7 Steven Price 2025-06-14 761 if (!vma) {
e216f77846eeb7 Steven Price 2025-06-14 762 ret = -EFAULT;
e216f77846eeb7 Steven Price 2025-06-14 763 break;
e216f77846eeb7 Steven Price 2025-06-14 764 }
e216f77846eeb7 Steven Price 2025-06-14 765
a74f93b7e7c0d8 Steven Price 2025-06-14 766 pfn = gfn_to_pfn_memslot(memslot, gpa_to_gfn(ipa));
e216f77846eeb7 Steven Price 2025-06-14 767
e216f77846eeb7 Steven Price 2025-06-14 768 if (is_error_pfn(pfn)) {
e216f77846eeb7 Steven Price 2025-06-14 769 ret = -EFAULT;
e216f77846eeb7 Steven Price 2025-06-14 770 break;
e216f77846eeb7 Steven Price 2025-06-14 771 }
e216f77846eeb7 Steven Price 2025-06-14 772
a74f93b7e7c0d8 Steven Price 2025-06-14 773 page = pfn_to_page(pfn);
e216f77846eeb7 Steven Price 2025-06-14 774
e216f77846eeb7 Steven Price 2025-06-14 775 ret = realm_create_protected_data_page(realm, ipa,
a74f93b7e7c0d8 Steven Price 2025-06-14 776 page,
a74f93b7e7c0d8 Steven Price 2025-06-14 777 tmp_page,
e216f77846eeb7 Steven Price 2025-06-14 778 data_flags);
a74f93b7e7c0d8 Steven Price 2025-06-14 779 if (ret) {
e216f77846eeb7 Steven Price 2025-06-14 780 kvm_release_page_clean(page);
e216f77846eeb7 Steven Price 2025-06-14 781 break;
a74f93b7e7c0d8 Steven Price 2025-06-14 782 }
e216f77846eeb7 Steven Price 2025-06-14 783
e216f77846eeb7 Steven Price 2025-06-14 784 ipa += PAGE_SIZE;
a74f93b7e7c0d8 Steven Price 2025-06-14 785 kvm_release_pfn_dirty(pfn);
e216f77846eeb7 Steven Price 2025-06-14 786 }
e216f77846eeb7 Steven Price 2025-06-14 787 out:
a74f93b7e7c0d8 Steven Price 2025-06-14 788 mmap_read_unlock(current->mm);
a74f93b7e7c0d8 Steven Price 2025-06-14 789 __free_page(tmp_page);
e216f77846eeb7 Steven Price 2025-06-14 790 srcu_read_unlock(&kvm->srcu, idx);
e216f77846eeb7 Steven Price 2025-06-14 791 return ret;
e216f77846eeb7 Steven Price 2025-06-14 792 }
e216f77846eeb7 Steven Price 2025-06-14 793
:::::: The code at line 740 was first introduced by commit
:::::: e216f77846eeb7062baa345cea2be0978dea94cc [v8-19-43]arm64: RME: Allow populating initial contents
:::::: TO: Steven Price <steven.price(a)arm.com>
:::::: CC: Xu Raoqing <xuraoqing(a)huawei.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3418/3418] arch/x86/kernel/cpu/common.c:92:16: sparse: sparse: incorrect type in initializer (different address spaces)
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: f4128ae8e6ff03b4c805707fe75d0345797f7f53 [3418/3418] sched: Add cluster scheduler level for x86
config: x86_64-randconfig-121-20251217 (https://download.01.org/0day-ci/archive/20251222/202512222106.0whCMuCB-lkp@…)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512222106.0whCMuCB-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/202512222106.0whCMuCB-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> arch/x86/kernel/cpu/common.c:92:16: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got unsigned short * @@
arch/x86/kernel/cpu/common.c:92:16: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/kernel/cpu/common.c:92:16: sparse: got unsigned short *
arch/x86/kernel/cpu/common.c:1901:1: sparse: sparse: symbol 'fixed_percpu_data' redeclared with different type (different address spaces):
arch/x86/kernel/cpu/common.c:1901:1: sparse: struct fixed_percpu_data [addressable] [noderef] [toplevel] __percpu fixed_percpu_data
arch/x86/kernel/cpu/common.c: note: in included file (through arch/x86/include/asm/cpufeature.h, arch/x86/include/asm/thread_info.h, include/linux/thread_bits.h, ...):
arch/x86/include/asm/processor.h:470:1: sparse: note: previously declared as:
arch/x86/include/asm/processor.h:470:1: sparse: struct fixed_percpu_data extern [addressable] [toplevel] fixed_percpu_data
arch/x86/kernel/cpu/common.c:144:43: sparse: sparse: cast truncates bits from constant value (fffff becomes ffff)
arch/x86/kernel/cpu/common.c:145:43: sparse: sparse: cast truncates bits from constant value (fffff becomes ffff)
arch/x86/kernel/cpu/common.c:146:43: sparse: sparse: cast truncates bits from constant value (fffff becomes ffff)
arch/x86/kernel/cpu/common.c:147:43: sparse: sparse: cast truncates bits from constant value (fffff becomes ffff)
arch/x86/kernel/cpu/common.c:148:43: sparse: sparse: cast truncates bits from constant value (fffff becomes ffff)
arch/x86/kernel/cpu/common.c:149:43: sparse: sparse: cast truncates bits from constant value (fffff becomes ffff)
arch/x86/include/asm/processor.h:474:31: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got char ( * )[40] @@
arch/x86/include/asm/processor.h:474:31: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/include/asm/processor.h:474:31: sparse: got char ( * )[40]
vim +92 arch/x86/kernel/cpu/common.c
f8b64d08dde271 Borislav Petkov 2018-04-27 89
6f01df96c462b7 Kim Phillips 2021-08-17 90 u16 get_llc_id(unsigned int cpu)
6f01df96c462b7 Kim Phillips 2021-08-17 91 {
6f01df96c462b7 Kim Phillips 2021-08-17 @92 return per_cpu(cpu_llc_id, cpu);
6f01df96c462b7 Kim Phillips 2021-08-17 93 }
6f01df96c462b7 Kim Phillips 2021-08-17 94 EXPORT_SYMBOL_GPL(get_llc_id);
6f01df96c462b7 Kim Phillips 2021-08-17 95
:::::: The code at line 92 was first introduced by commit
:::::: 6f01df96c462b77915b27d404152c47e75e879cf x86/cpu: Add get_llc_id() helper function
:::::: TO: Kim Phillips <kim.phillips(a)amd.com>
:::::: CC: Xie Haocheng <haocheng.xie(a)amd.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3542/3542] arch/arm64/kvm/rme.c:799:16: warning: variable 'data_flags' set but not used
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
Hi Steven,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: e216f77846eeb7062baa345cea2be0978dea94cc [3542/3542] [v8-19-43]arm64: RME: Allow populating initial contents
config: arm64-randconfig-001-20251215 (https://download.01.org/0day-ci/archive/20251222/202512222100.DZ0g6W61-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512222100.DZ0g6W61-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/202512222100.DZ0g6W61-lkp@intel.com/
All warnings (new ones prefixed by >>):
arch/arm64/kvm/rme.c:742:7: error: call to undeclared function 'kvm_slot_can_be_private'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
742 | if (!kvm_slot_can_be_private(memslot)) {
| ^
arch/arm64/kvm/rme.c:763:9: error: call to undeclared function '__kvm_faultin_pfn'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
763 | pfn = __kvm_faultin_pfn(memslot, gpa_to_gfn(ipa), FOLL_WRITE,
| ^
arch/arm64/kvm/rme.c:771:9: error: call to undeclared function 'kvm_gmem_get_pfn'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
771 | ret = kvm_gmem_get_pfn(kvm, memslot,
| ^
>> arch/arm64/kvm/rme.c:799:16: warning: variable 'data_flags' set but not used [-Wunused-but-set-variable]
799 | unsigned long data_flags = 0;
| ^
1 warning and 3 errors generated.
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for RESCTRL_FS
Depends on [n]: MISC_FILESYSTEMS [=n] && ARCH_HAS_CPU_RESCTRL [=y]
Selected by [y]:
- ARM64_MPAM [=y]
vim +/data_flags +799 arch/arm64/kvm/rme.c
794
795 static int kvm_populate_realm(struct kvm *kvm,
796 struct arm_rme_populate_realm *args)
797 {
798 phys_addr_t ipa_base, ipa_end;
> 799 unsigned long data_flags = 0;
800
801 if (kvm_realm_state(kvm) != REALM_STATE_NEW)
802 return -EPERM;
803
804 if (!IS_ALIGNED(args->base, PAGE_SIZE) ||
805 !IS_ALIGNED(args->size, PAGE_SIZE) ||
806 (args->flags & ~RMI_MEASURE_CONTENT))
807 return -EINVAL;
808
809 ipa_base = args->base;
810 ipa_end = ipa_base + args->size;
811
812 if (ipa_end < ipa_base)
813 return -EINVAL;
814
815 if (args->flags & RMI_MEASURE_CONTENT)
816 data_flags |= RMI_MEASURE_CONTENT;
817
818 /*
819 * Perform the population in parts to ensure locks are not held for too
820 * long
821 */
822 while (ipa_base < ipa_end) {
823 phys_addr_t end = min(ipa_end, ipa_base + SZ_2M);
824
825 int ret = populate_region(kvm, ipa_base, end,
826 args->flags);
827
828 if (ret)
829 return ret;
830
831 ipa_base = end;
832
833 cond_resched();
834 }
835
836 return 0;
837 }
838
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3418/3418] drivers/usb/cdns3/drd.c:44:38: sparse: sparse: incorrect type in assignment (different base types)
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: fe4466c05ba70c2e354965de9548eb4ab5db783b [3418/3418] usb: cdns3: Add support for DRD CDNSP
config: x86_64-randconfig-122-20251217 (https://download.01.org/0day-ci/archive/20251222/202512222111.1LJ3T3qn-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512222111.1LJ3T3qn-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/202512222111.1LJ3T3qn-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/usb/cdns3/drd.c:44:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *override_reg @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:44:38: sparse: expected unsigned int [noderef] [usertype] __iomem *override_reg
drivers/usb/cdns3/drd.c:44:38: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:46:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *override_reg @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:46:38: sparse: expected unsigned int [noderef] [usertype] __iomem *override_reg
drivers/usb/cdns3/drd.c:46:38: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:48:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [noderef] [usertype] __iomem *override_reg @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:48:38: sparse: expected unsigned int [noderef] [usertype] __iomem *override_reg
drivers/usb/cdns3/drd.c:48:38: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:67:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:67:50: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:67:50: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:69:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:69:50: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:69:50: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:92:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:92:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:92:25: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:102:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:102:30: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:102:30: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:135:24: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:135:24: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:135:24: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:145:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:145:48: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:145:48: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:161:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:161:21: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:161:21: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:169:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:169:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:169:15: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:169:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:169:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:169:15: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:189:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:189:21: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:189:21: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:192:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:192:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:192:9: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:192:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:192:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:192:9: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:211:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:211:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:211:47: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:220:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:220:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:220:15: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:220:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:220:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:220:15: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:246:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:246:21: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:246:21: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:248:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:248:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:248:9: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:248:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:248:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:248:9: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:266:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:266:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:266:25: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:335:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:335:26: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:335:26: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:354:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:354:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:354:25: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:377:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdns3_otg_legacy_regs *otg_v0_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:377:27: sparse: expected struct cdns3_otg_legacy_regs *otg_v0_regs
drivers/usb/cdns3/drd.c:377:27: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:378:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:378:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:378:25: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:382:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdns3_otg_common_regs *otg_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:382:32: sparse: expected struct cdns3_otg_common_regs *otg_regs
drivers/usb/cdns3/drd.c:382:32: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:385:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:385:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:385:32: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:386:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:386:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:386:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:390:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdns3_otg_regs *otg_v1_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:390:35: sparse: expected struct cdns3_otg_regs *otg_v1_regs
drivers/usb/cdns3/drd.c:390:35: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:391:38: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdnsp_otg_regs *otg_cdnsp_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:391:38: sparse: expected struct cdnsp_otg_regs *otg_cdnsp_regs
drivers/usb/cdns3/drd.c:391:38: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:395:41: sparse: sparse: restricted __le32 degrades to integer
drivers/usb/cdns3/drd.c:402:40: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:402:40: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:402:40: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:406:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:406:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:406:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:406:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
vim +44 drivers/usb/cdns3/drd.c
22
23 /**
24 * cdns3_set_mode - change mode of OTG Core
25 * @cdns: pointer to context structure
26 * @mode: selected mode from cdns_role
27 *
28 * Returns 0 on success otherwise negative errno
29 */
30 static int cdns3_set_mode(struct cdns3 *cdns, enum usb_dr_mode mode)
31 {
32 u32 __iomem *override_reg;
33 u32 reg;
34
35 switch (mode) {
36 case USB_DR_MODE_PERIPHERAL:
37 break;
38 case USB_DR_MODE_HOST:
39 break;
40 case USB_DR_MODE_OTG:
41 dev_dbg(cdns->dev, "Set controller to OTG mode\n");
42
43 if (cdns->version == CDNSP_CONTROLLER_V2)
> 44 override_reg = &cdns->otg_cdnsp_regs->override;
45 else if (cdns->version == CDNS3_CONTROLLER_V1)
46 override_reg = &cdns->otg_v1_regs->override;
47 else
48 override_reg = &cdns->otg_v0_regs->ctrl1;
49
50 reg = readl(override_reg);
51
52 if (cdns->version != CDNS3_CONTROLLER_V0)
53 reg |= OVERRIDE_IDPULLUP;
54 else
55 reg |= OVERRIDE_IDPULLUP_V0;
56
57 writel(reg, override_reg);
58
59 if (cdns->version == CDNS3_CONTROLLER_V1) {
60 /*
61 * Enable work around feature built into the
62 * controller to address issue with RX Sensitivity
63 * est (EL_17) for USB2 PHY. The issue only occures
64 * for 0x0002450D controller version.
65 */
66 if (cdns->phyrst_a_enable) {
67 reg = readl(&cdns->otg_v1_regs->phyrst_cfg);
68 reg |= PHYRST_CFG_PHYRST_A_ENABLE;
69 writel(reg, &cdns->otg_v1_regs->phyrst_cfg);
70 }
71 }
72
73 /*
74 * Hardware specification says: "ID_VALUE must be valid within
75 * 50ms after idpullup is set to '1" so driver must wait
76 * 50ms before reading this pin.
77 */
78 usleep_range(50000, 60000);
79 break;
80 default:
81 dev_err(cdns->dev, "Unsupported mode of operation %d\n", mode);
82 return -EINVAL;
83 }
84
85 return 0;
86 }
87
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
From: Tong Tiangen <tongtiangen(a)huawei.com>
hulk inclusion
category: feature
bugzilla: https://gitcode.com/openeuler/kernel/issues/7837
-------------------------------
Large memory migration imposes significant overhead on the CPU. This patch
introduces enhancements to the page migration by offloading the copy to
UDMA hardware which based on the DMA engine framework, and a new migration
mode has been introduced, If DMA migration fails, it will fall back to CPU
migration.
DMA migration supports both asynchronous and synchronous modes for
subsequent debugging purposes.
Signed-off-by: Tong Tiangen <tongtiangen(a)huawei.com>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
arch/arm64/configs/openeuler_defconfig | 1 +
include/linux/migrate_mode.h | 7 ++
include/linux/mm.h | 8 ++
mm/Kconfig | 12 +++
mm/Makefile | 1 +
mm/migrate.c | 9 ++
mm/migrate_dma.c | 143 +++++++++++++++++++++++++
7 files changed, 181 insertions(+)
create mode 100644 mm/migrate_dma.c
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index c25ac4ff6c2f..08af29cf2776 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -1186,6 +1186,7 @@ CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
+CONFIG_MIGRATE_PAGES_DMA_OFFLOADING=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
diff --git a/include/linux/migrate_mode.h b/include/linux/migrate_mode.h
index 0f577f932bb4..5283e62b7d1b 100644
--- a/include/linux/migrate_mode.h
+++ b/include/linux/migrate_mode.h
@@ -19,6 +19,13 @@ enum migrate_mode {
MIGRATE_SYNC_NO_COPY,
};
+/*
+ * Actually the macro MIGRATE_ASYNC_DMA_OFFLOADING definition should be
+ * placed within enum migrate_mode, but for KABI compatibility, it is
+ * defined here alone.
+ */
+#define MIGRATE_ASYNC_DMA_OFFLOADING (10)
+
enum migrate_reason {
MR_COMPACTION,
MR_MEMORY_FAILURE,
diff --git a/include/linux/mm.h b/include/linux/mm.h
index c0040a2014c4..036822cb1b9d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1330,6 +1330,14 @@ void put_pages_list(struct list_head *pages);
void split_page(struct page *page, unsigned int order);
void folio_copy(struct folio *dst, struct folio *src);
int folio_mc_copy(struct folio *dst, struct folio *src);
+#ifdef CONFIG_MIGRATE_PAGES_DMA_OFFLOADING
+int folio_dma_copy(struct folio *dst, struct folio *src);
+#else
+static inline int folio_dma_copy(struct folio *dst, struct folio *src)
+{
+ return -ENODEV;
+}
+#endif
unsigned long nr_free_buffer_pages(void);
diff --git a/mm/Kconfig b/mm/Kconfig
index 4eb0642b71e5..12438e8dff88 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -696,6 +696,18 @@ config MIGRATION
pages as migration can relocate pages to satisfy a huge page
allocation instead of reclaiming.
+config MIGRATE_PAGES_DMA_OFFLOADING
+ bool "Support to use DMA channels for page migration"
+ depends on DMA_ENGINE
+ depends on MIGRATION
+ default y
+ help
+ This config enhances page migration by introducing a new mode
+ that offloads copy operations to UB-DMA hardware based on the
+ DMA engine framework, with automatic fallback to CPU migration
+ if DMA migration fails. DMA migration supports both asynchronous
+ and synchronous modes to facilitate debugging.
+
config DEVICE_MIGRATION
def_bool MIGRATION && ZONE_DEVICE
diff --git a/mm/Makefile b/mm/Makefile
index e45cdeda47b7..dd81f8c33e03 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -92,6 +92,7 @@ obj-$(CONFIG_FAILSLAB) += failslab.o
obj-$(CONFIG_FAIL_PAGE_ALLOC) += fail_page_alloc.o
obj-$(CONFIG_MEMTEST) += memtest.o
obj-$(CONFIG_MIGRATION) += migrate.o
+obj-$(CONFIG_MIGRATE_PAGES_DMA_OFFLOADING) += migrate_dma.o
obj-$(CONFIG_NUMA) += memory-tiers.o
obj-$(CONFIG_DEVICE_MIGRATION) += migrate_device.o
obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o khugepaged.o
diff --git a/mm/migrate.c b/mm/migrate.c
index 148e55fab012..216f45c9570f 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -583,6 +583,15 @@ static int folio_migrate_mc_copy(struct folio *dst, struct folio *src,
if (mode == MIGRATE_SYNC_NO_COPY)
return 0;
+ if (mode == MIGRATE_ASYNC_DMA_OFFLOADING) {
+ if (folio_test_hugetlb(src) ||
+ folio_test_pmd_mappable(src)) {
+ /* if dma offloading fail, fallback */
+ if (!folio_dma_copy(dst, src))
+ return 0;
+ }
+ }
+
return folio_mc_copy(dst, src);
}
diff --git a/mm/migrate_dma.c b/mm/migrate_dma.c
new file mode 100644
index 000000000000..796cd9a5477e
--- /dev/null
+++ b/mm/migrate_dma.c
@@ -0,0 +1,143 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Support to use DMA channels for page migration.
+ *
+ * Copyright (C) 2025 Huawei Limited
+ */
+
+#define pr_fmt(fmt) "migrate_dma: " fmt
+
+#include <linux/dmaengine.h>
+#include <linux/dma-mapping.h>
+
+/* DMA channel track its transfers done */
+struct dma_channel_work {
+ struct dma_chan *chan;
+ enum dma_status status;
+ struct completion done;
+};
+
+static void folios_dma_copy_completion_callback(void *param,
+ const struct dmaengine_result *result)
+{
+ struct dma_channel_work *chan_work = param;
+
+ if (result) {
+ enum dmaengine_tx_result dma_res = result->result;
+
+ if (dma_res == DMA_TRANS_NOERROR)
+ chan_work->status = DMA_COMPLETE;
+ else
+ chan_work->status = DMA_ERROR;
+ }
+
+ complete(&chan_work->done);
+}
+
+static int process_folio_dma_transfer(struct dma_channel_work *chan_work,
+ struct folio *src, struct folio *dst)
+{
+ struct dma_chan *chan = chan_work->chan;
+ struct device *dev = dmaengine_get_dma_device(chan);
+ enum dma_ctrl_flags flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
+ struct dma_async_tx_descriptor *tx;
+ dma_addr_t src_handle, dst_handle;
+ size_t size = folio_size(src);
+ int ret;
+
+ src_handle = dma_map_page(dev, &src->page, 0, size, DMA_TO_DEVICE);
+ if (dma_mapping_error(dev, src_handle)) {
+ dev_err(dev, "map dma src page error.\n");
+ return -ENOMEM;
+ }
+
+ dst_handle = dma_map_page(dev, &dst->page, 0, size, DMA_FROM_DEVICE);
+ if (dma_mapping_error(dev, dst_handle)) {
+ dev_err(dev, "map dma dst page error.\n");
+ ret = -ENOMEM;
+ goto out_unmap;
+ }
+
+ tx = dmaengine_prep_dma_memcpy(chan, dst_handle, src_handle,
+ size, flags);
+ if (unlikely(!tx)) {
+ dev_err(dev, "prep dma memcpy error.\n");
+ ret = -EBUSY;
+ goto out_unmap_all;
+ }
+
+ tx->callback_result = folios_dma_copy_completion_callback;
+ tx->callback_param = chan_work;
+ init_completion(&chan_work->done);
+ chan_work->status = DMA_ERROR;
+
+ if (dma_submit_error(dmaengine_submit(tx))) {
+ dev_err(dev, "dma submit error.\n");
+ ret = -EINVAL;
+ goto out_unmap_all;
+ }
+
+ dma_async_issue_pending(chan);
+ if (!wait_for_completion_timeout(&chan_work->done,
+ msecs_to_jiffies(1000))) {
+ ret = -ETIMEDOUT;
+ goto out_unmap_all;
+ }
+
+ ret = (chan_work->status == DMA_COMPLETE) ? 0 : -EPROTO;
+
+out_unmap_all:
+ dma_unmap_page(dev, dst_handle, size, DMA_FROM_DEVICE);
+out_unmap:
+ dma_unmap_page(dev, src_handle, size, DMA_TO_DEVICE);
+
+ return ret;
+}
+
+static bool folio_dma_chan_filter(struct dma_chan *chan, void *param)
+{
+ return !strcmp(dev_name(chan->device->dev), "ub_dma_device");
+}
+
+int folio_dma_copy(struct folio *dst, struct folio *src)
+{
+ struct dma_channel_work *chan_work;
+ struct dma_slave_config dma_cfg;
+ struct dma_chan *chan;
+ dma_cap_mask_t mask;
+ int ret = -ENODEV;
+
+ dma_cap_zero(mask);
+ dma_cap_set(DMA_MEMCPY, mask);
+ chan = dma_request_channel(mask, folio_dma_chan_filter, NULL);
+ if (!chan) {
+ pr_err("failed to allocate dma channel.\n");
+ return ret;
+ }
+
+ memset(&dma_cfg, 0, sizeof(dma_cfg));
+ dma_cfg.direction = DMA_MEM_TO_MEM;
+ ret = dmaengine_slave_config(chan, &dma_cfg);
+ if (ret) {
+ pr_err("failed to config dma channel.\n");
+ goto out_release;
+ }
+
+ chan_work = kmalloc(sizeof(*chan_work), GFP_KERNEL);
+ if (unlikely(!chan_work)) {
+ pr_err("failed to allocate memory for chan work.\n");
+ goto out_release;
+ }
+
+ chan_work->chan = chan;
+ ret = process_folio_dma_transfer(chan_work, src, dst);
+ if (unlikely(ret))
+ pr_err("failed to process folio dma transfer.\n");
+
+ kfree(chan_work);
+out_release:
+ dma_release_channel(chan);
+
+ return ret;
+}
+EXPORT_SYMBOL(folio_dma_copy);
--
2.25.1
2
1
[openeuler:OLK-6.6 3557/3557] drivers/platform/mpam/mpam_resctrl.c:25:1: sparse: sparse: symbol 'resctrl_mon_ctx_waiters' was not declared. Should it be static?
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 9119da1439390ea4f29a0635652248aa3c2040f0 [3557/3557] arm_mpam: resctrl: Allow resctrl to allocate monitors
config: arm64-randconfig-r132-20251218 (https://download.01.org/0day-ci/archive/20251222/202512221945.aSbuNpcr-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512221945.aSbuNpcr-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/202512221945.aSbuNpcr-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/platform/mpam/mpam_resctrl.c:25:1: sparse: sparse: symbol 'resctrl_mon_ctx_waiters' was not declared. Should it be static?
>> drivers/platform/mpam/mpam_resctrl.c:45:5: sparse: sparse: symbol '__mon_is_rmid_idx' was not declared. Should it be static?
drivers/platform/mpam/mpam_resctrl.c:46:6: sparse: sparse: symbol 'mon_is_rmid_idx' was not declared. Should it be static?
vim +/resctrl_mon_ctx_waiters +25 drivers/platform/mpam/mpam_resctrl.c
24
> 25 DECLARE_WAIT_QUEUE_HEAD(resctrl_mon_ctx_waiters);
26
27 /*
28 * The classes we've picked to map to resctrl resources.
29 * Class pointer may be NULL.
30 */
31 static struct mpam_resctrl_res mpam_resctrl_exports[RDT_NUM_RESOURCES];
32
33 static bool exposed_alloc_capable;
34 static bool exposed_mon_capable;
35 static struct mpam_class *mbm_local_class;
36 static struct mpam_class *mbm_total_class;
37
38 /*
39 * MPAM emulates CDP by setting different PARTID in the I/D fields of MPAM1_EL1.
40 * This applies globally to all traffic the CPU generates.
41 */
42 static bool cdp_enabled;
43
44 /* A dummy mon context to use when the monitors were allocated up front */
> 45 u32 __mon_is_rmid_idx = USE_RMID_IDX;
46 void *mon_is_rmid_idx = &__mon_is_rmid_idx;
47
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[PATCH OLK-6.6] PCI/IOV: Add PCI rescan-remove locking when enabling/disabling SR-IOV
by Ziming Du 22 Dec '25
by Ziming Du 22 Dec '25
22 Dec '25
From: Niklas Schnelle <schnelle(a)linux.ibm.com>
stable inclusion
from stable-v6.6.113
commit 36039348bca77828bf06eae41b8f76e38cd15847
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDATN0
CVE: CVE-2025-40219
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 05703271c3cdcc0f2a8cf6ebdc45892b8ca83520 upstream.
Before disabling SR-IOV via config space accesses to the parent PF,
sriov_disable() first removes the PCI devices representing the VFs.
Since commit 9d16947b7583 ("PCI: Add global pci_lock_rescan_remove()")
such removal operations are serialized against concurrent remove and
rescan using the pci_rescan_remove_lock. No such locking was ever added
in sriov_disable() however. In particular when commit 18f9e9d150fc
("PCI/IOV: Factor out sriov_add_vfs()") factored out the PCI device
removal into sriov_del_vfs() there was still no locking around the
pci_iov_remove_virtfn() calls.
On s390 the lack of serialization in sriov_disable() may cause double
remove and list corruption with the below (amended) trace being observed:
PSW: 0704c00180000000 0000000c914e4b38 (klist_put+56)
GPRS: 000003800313fb48 0000000000000000 0000000100000001 0000000000000001
00000000f9b520a8 0000000000000000 0000000000002fbd 00000000f4cc9480
0000000000000001 0000000000000000 0000000000000000 0000000180692828
00000000818e8000 000003800313fe2c 000003800313fb20 000003800313fad8
#0 [3800313fb20] device_del at c9158ad5c
#1 [3800313fb88] pci_remove_bus_device at c915105ba
#2 [3800313fbd0] pci_iov_remove_virtfn at c9152f198
#3 [3800313fc28] zpci_iov_remove_virtfn at c90fb67c0
#4 [3800313fc60] zpci_bus_remove_device at c90fb6104
#5 [3800313fca0] __zpci_event_availability at c90fb3dca
#6 [3800313fd08] chsc_process_sei_nt0 at c918fe4a2
#7 [3800313fd60] crw_collect_info at c91905822
#8 [3800313fe10] kthread at c90feb390
#9 [3800313fe68] __ret_from_fork at c90f6aa64
#10 [3800313fe98] ret_from_fork at c9194f3f2.
This is because in addition to sriov_disable() removing the VFs, the
platform also generates hot-unplug events for the VFs. This being the
reverse operation to the hotplug events generated by sriov_enable() and
handled via pdev->no_vf_scan. And while the event processing takes
pci_rescan_remove_lock and checks whether the struct pci_dev still exists,
the lack of synchronization makes this checking racy.
Other races may also be possible of course though given that this lack of
locking persisted so long observable races seem very rare. Even on s390 the
list corruption was only observed with certain devices since the platform
events are only triggered by config accesses after the removal, so as long
as the removal finished synchronously they would not race. Either way the
locking is missing so fix this by adding it to the sriov_del_vfs() helper.
Just like PCI rescan-remove, locking is also missing in sriov_add_vfs()
including for the error case where pci_stop_and_remove_bus_device() is
called without the PCI rescan-remove lock being held. Even in the non-error
case, adding new PCI devices and buses should be serialized via the PCI
rescan-remove lock. Add the necessary locking.
Fixes: 18f9e9d150fc ("PCI/IOV: Factor out sriov_add_vfs()")
Signed-off-by: Niklas Schnelle <schnelle(a)linux.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas(a)google.com>
Reviewed-by: Benjamin Block <bblock(a)linux.ibm.com>
Reviewed-by: Farhan Ali <alifm(a)linux.ibm.com>
Reviewed-by: Julian Ruess <julianr(a)linux.ibm.com>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20250826-pci_fix_sriov_disable-v1-1-2d0bc938f2a3@l…
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Ziming Du <duziming2(a)huawei.com>
---
drivers/pci/iov.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index 54ec841e3e18..2cb477fd8e3b 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -590,15 +590,18 @@ static int sriov_add_vfs(struct pci_dev *dev, u16 num_vfs)
if (dev->no_vf_scan)
return 0;
+ pci_lock_rescan_remove();
for (i = 0; i < num_vfs; i++) {
rc = pci_iov_add_virtfn(dev, i);
if (rc)
goto failed;
}
+ pci_unlock_rescan_remove();
return 0;
failed:
while (i--)
pci_iov_remove_virtfn(dev, i);
+ pci_unlock_rescan_remove();
return rc;
}
@@ -718,8 +721,10 @@ static void sriov_del_vfs(struct pci_dev *dev)
struct pci_sriov *iov = dev->sriov;
int i;
+ pci_lock_rescan_remove();
for (i = 0; i < iov->num_VFs; i++)
pci_iov_remove_virtfn(dev, i);
+ pci_unlock_rescan_remove();
}
static void sriov_disable(struct pci_dev *dev)
--
2.43.0
2
1
hulk inclusion
category: bugfix
bugzilla: https://atomgit.com/openeuler/kernel/issues/8282
--------------------------------
L3t is only work with specific cpus, now add checker during init
to make sure this is enabled with specific cpus.
Fixes: c40d971092ff ("hisi: l3t: Add L3 cache driver for hisi")
Signed-off-by: Wupeng Ma <mawupeng1(a)huawei.com>
---
arch/arm64/include/asm/cputype.h | 2 ++
drivers/soc/hisilicon/l3t.c | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
index b3b1977e9980..ca90d0e13ad6 100644
--- a/arch/arm64/include/asm/cputype.h
+++ b/arch/arm64/include/asm/cputype.h
@@ -113,6 +113,7 @@
#define HISI_CPU_PART_TSV110 0xD01
#define HISI_CPU_PART_TSV200 0xD02
#define HISI_CPU_PART_LINXICORE9100 0xD02
+#define HISI_CPU_PART_HIP10 0xD03
#define PHYTIUM_CPU_PART_1500A 0X660
#define PHYTIUM_CPU_PART_2000AHK 0X661
@@ -165,6 +166,7 @@
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
#define MIDR_HISI_TSV200 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV200)
+#define MIDR_HISI_HIP10 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP10)
#define MIDR_HISI_LINXICORE9100 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_LINXICORE9100)
#define MIDR_FT_1500A MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_1500A)
#define MIDR_FT_2000AHK MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_2000AHK)
diff --git a/drivers/soc/hisilicon/l3t.c b/drivers/soc/hisilicon/l3t.c
index 35106e091098..69e65d659a35 100644
--- a/drivers/soc/hisilicon/l3t.c
+++ b/drivers/soc/hisilicon/l3t.c
@@ -264,6 +264,14 @@ static struct platform_driver hisi_l3t_driver = {
static int __init hisi_l3t_init(void)
{
+ static const struct midr_range l3t_support_list[] = {
+ MIDR_ALL_VERSIONS(MIDR_HISI_TSV200),
+ MIDR_ALL_VERSIONS(MIDR_HISI_HIP10),
+ {}
+ };
+ if (!is_midr_in_range_list(read_cpuid_id(), l3t_support_list))
+ return -ENODEV;
+
mutex_init(&l3t_mutex);
xa_init(&l3t_mapping);
--
2.43.0
2
1
[openeuler:OLK-6.6 3542/3542] arch/arm64/kvm/vgic/vgic-v4.c:260: warning: Function parameter or member 'vcpu' not described in 'kvm_vgic_get_vcpu_vpeid'
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 78feb450c1fbd0f2a1a542882ed62a0993c86c5a [3542/3542] KVM: arm64: GICv4.1: Add support for MBIGEN save/restore
config: arm64-randconfig-001-20251215 (https://download.01.org/0day-ci/archive/20251222/202512221812.bA9JN365-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512221812.bA9JN365-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/202512221812.bA9JN365-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/vgic/vgic-v4.c:260: warning: Function parameter or member 'vcpu' not described in 'kvm_vgic_get_vcpu_vpeid'
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for RESCTRL_FS
Depends on [n]: MISC_FILESYSTEMS [=n] && ARCH_HAS_CPU_RESCTRL [=y]
Selected by [y]:
- ARM64_MPAM [=y]
vim +260 arch/arm64/kvm/vgic/vgic-v4.c
253
254 /**
255 * kvm_vgic_get_vcpu_vpeid - Get the VCPU's vpeid
256 *
257 * The vtimer mbigen needs the vcpu vpeid info which will resident.
258 */
259 u16 kvm_vgic_get_vcpu_vpeid(struct kvm_vcpu *vcpu)
> 260 {
261 return vcpu->arch.vgic_cpu.vgic_v3.its_vpe.vpe_id;
262 }
263 #endif
264
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:openEuler-1.0-LTS 1944/1944] drivers/gpio/gpio-phytium-platform.c:111:2-3: Unneeded semicolon
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4e9c55920995d70b3e88b60c69753df54b03fdf4
commit: 00711bad7e372a30c4975ba43811ffa666aff0e1 [1944/1944] gpio: add phytium gpio driver
config: arm64-randconfig-r052-20251217 (https://download.01.org/0day-ci/archive/20251222/202512221720.DJfxv97T-lkp@…)
compiler: aarch64-linux-gcc (GCC) 9.5.0
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/202512221720.DJfxv97T-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/gpio/gpio-phytium-platform.c:111:2-3: Unneeded semicolon
vim +111 drivers/gpio/gpio-phytium-platform.c
35
36 static int phytium_gpio_probe(struct platform_device *pdev)
37 {
38 struct device *dev = &pdev->dev;
39 struct resource *res;
40 struct phytium_gpio *gpio;
41 struct gpio_irq_chip *girq;
42 struct fwnode_handle *fwnode;
43 int err, irq_count;
44
45 gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL);
46 if (!gpio)
47 return -ENOMEM;
48
49 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
50 gpio->regs = devm_ioremap_resource(&pdev->dev, res);
51 if (IS_ERR(gpio->regs))
52 return PTR_ERR(gpio->regs);
53
54 if (!device_get_child_node_count(dev))
55 return -ENODEV;
56
57 device_for_each_child_node(dev, fwnode) {
58 int idx;
59
60 if (fwnode_property_read_u32(fwnode, "reg", &idx) ||
61 idx >= MAX_NPORTS) {
62 dev_err(dev, "missing/invalid port index\n");
63 fwnode_handle_put(fwnode);
64 return -EINVAL;
65 }
66
67 if (fwnode_property_read_u32(fwnode, "nr-gpios",
68 &gpio->ngpio[idx])) {
69 dev_info(dev,
70 "failed to get number of gpios for Port%c\n",
71 idx ? 'B' : 'A');
72 gpio->ngpio[idx] = NGPIO_DEFAULT;
73 }
74 }
75
76 /* irq_chip support */
77 gpio->irq_chip.name = dev_name(dev);
78 gpio->irq_chip.irq_ack = phytium_gpio_irq_ack;
79 gpio->irq_chip.irq_mask = phytium_gpio_irq_mask;
80 gpio->irq_chip.irq_unmask = phytium_gpio_irq_unmask;
81 gpio->irq_chip.irq_set_type = phytium_gpio_irq_set_type;
82 gpio->irq_chip.irq_enable = phytium_gpio_irq_enable;
83 gpio->irq_chip.irq_disable = phytium_gpio_irq_disable;
84 #ifdef CONFIG_SMP
85 gpio->irq_chip.irq_set_affinity = phytium_gpio_irq_set_affinity;
86 #endif
87 raw_spin_lock_init(&gpio->lock);
88
89 gpio->gc.base = -1;
90 gpio->gc.get_direction = phytium_gpio_get_direction;
91 gpio->gc.direction_input = phytium_gpio_direction_input;
92 gpio->gc.direction_output = phytium_gpio_direction_output;
93 gpio->gc.get = phytium_gpio_get;
94 gpio->gc.set = phytium_gpio_set;
95 gpio->gc.ngpio = gpio->ngpio[0] + gpio->ngpio[1];
96 gpio->gc.label = dev_name(dev);
97 gpio->gc.parent = dev;
98 gpio->gc.owner = THIS_MODULE;
99
100 girq = &gpio->gc.irq;
101 girq->handler = handle_bad_irq;
102 girq->default_type = IRQ_TYPE_NONE;
103
104 for (irq_count = 0; irq_count < gpio->ngpio[0]; irq_count++) {
105 gpio->irq[irq_count] = -ENXIO;
106 gpio->irq[irq_count] = platform_get_irq(pdev, irq_count);
107 if (gpio->irq[irq_count] < 0) {
108 dev_warn(dev, "no irq is found.\n");
109 break;
110 }
> 111 };
112
113 girq->num_parents = irq_count;
114 girq->parents = gpio->irq;
115 girq->parent_handler = phytium_gpio_irq_handler;
116
117 girq->chip = &gpio->irq_chip;
118
119 err = devm_gpiochip_add_data(dev, &gpio->gc, gpio);
120 if (err)
121 return err;
122
123 platform_set_drvdata(pdev, gpio);
124 dev_info(dev, "Phytium GPIO controller @%pa registered\n",
125 &res->start);
126
127 return 0;
128 }
129
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
Currently, x86, Riscv, Loongarch use the Generic Entry which makes
maintainers' work easier and codes more elegant. arm64 has already
successfully switched to the Generic IRQ Entry in commit
b3cf07851b6c ("arm64: entry: Switch to generic IRQ entry"), it is
time to completely convert arm64 to Generic Entry.
The goal is to bring arm64 in line with other architectures that already
use the generic entry infrastructure, reducing duplicated code and
making it easier to share future changes in entry/exit paths, such as
"Syscall User Dispatch".
This patch set is rebased on v6.19-rc1. And the performance was measured
on Kunpeng 920 using "perf bench basic syscall" with "arm64.nopauth
selinux=0 audit=1".
After switch to Generic Entry, the performance are below:
| Metric | W/O Generic Framework | With Generic Framework | Change |
| ---------- | --------------------- | ---------------------- | ------ |
| Total time | 2.487 [sec] | 2.393[sec] | ↓3.8% |
| usecs/op | 0.248780 | 0.239361 | ↓3.8% |
| ops/sec | 4,019,620 | 4,177,789 | ↑3.9% |
Compared to earlier with arch specific handling, the performance improved
by approximately 3.9%.
On the basis of optimizing syscall_get_arguments()[1], el0_svc_common()
and syscall_exit_work(), the performance are below:
| Metric | W/O Generic Entry | With Generic Entry opt| Change |
| ---------- | ----------------- | ------------------ | ------ |
| Total time | 2.487 [sec] | 2.264 [sec] | ↓9.0% |
| usecs/op | 0.248780 | 0.226481 | ↓9.0% |
| ops/sec | 4,019,620 | 4,415,383 | ↑9.8% |
Therefore, after the optimization, ARM64 System Call performance improved
by approximately 9%.
It was tested ok with following test cases on kunpeng920 and QEMU
virt platform:
- Perf tests.
- Different `dynamic preempt` mode switch.
- Pseudo NMI tests.
- Stress-ng CPU stress test.
- Hackbench stress test.
- MTE test case in Documentation/arch/arm64/memory-tagging-extension.rst
and all test cases in tools/testing/selftests/arm64/mte/*.
- "sud" selftest testcase.
- get_set_sud, get_syscall_info, set_syscall_info, peeksiginfo
in tools/testing/selftests/ptrace.
- breakpoint_test_arm64 in selftests/breakpoints.
- syscall-abi and ptrace in tools/testing/selftests/arm64/abi
- fp-ptrace, sve-ptrace, za-ptrace in selftests/arm64/fp.
- vdso_test_getrandom in tools/testing/selftests/vDSO
- Strace tests.
The test QEMU configuration is as follows:
qemu-system-aarch64 \
-M virt,gic-version=3,virtualization=on,mte=on \
-cpu max,pauth-impdef=on \
-kernel Image \
-smp 8,sockets=1,cores=4,threads=2 \
-m 512m \
-nographic \
-no-reboot \
-device virtio-rng-pci \
-append "root=/dev/vda rw console=ttyAMA0 kgdboc=ttyAMA0,115200 \
earlycon preempt=voluntary irqchip.gicv3_pseudo_nmi=1" \
-drive if=none,file=images/rootfs.ext4,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0 \
[1]: https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm/+/89bf683c…
Changes in v10:
- Rebased on v6.19-rc1, rename syscall_exit_to_user_mode_prepare() to
syscall_exit_to_user_mode_work_prepare() to avoid conflict.
- Also inline syscall_trace_enter().
- Support aarch64 for sud_benchmark.
- Update and correct the commit message.
- Add Reviewed-by.
- Link to v9: https://lore.kernel.org/all/20251204082123.2792067-1-ruanjinjie@huawei.com/
Changes in v9:
- Move "Return early for ptrace_report_syscall_entry() error" patch ahead
to make it not introduce a regression.
- Not check _TIF_SECCOMP/SYSCALL_EMU for syscall_exit_work() in
a separate patch.
- Do not report_syscall_exit() for PTRACE_SYSEMU_SINGLESTEP in a separate
patch.
- Add two performance patch to improve the arm64 performance.
- Add Reviewed-by.
- Link to v8: https://lore.kernel.org/all/20251126071446.3234218-1-ruanjinjie@huawei.com/
Changes in v8:
- Rename "report_syscall_enter()" to "report_syscall_entry()".
- Add ptrace_save_reg() to avoid duplication.
- Remove unused _TIF_WORK_MASK in a standalone patch.
- Align syscall_trace_enter() return value with the generic version.
- Use "scno" instead of regs->syscallno in el0_svc_common().
- Move rseq_syscall() ahead in a standalone patch to clarify it clearly.
- Rename "syscall_trace_exit()" to "syscall_exit_work()".
- Keep the goto in el0_svc_common().
- No argument was passed to __secure_computing() and check -1 not -1L.
- Remove "Add has_syscall_work() helper" patch.
- Move "Add syscall_exit_to_user_mode_prepare() helper" patch later.
- Add miss header for asm/entry-common.h.
- Update the implementation of arch_syscall_is_vdso_sigreturn().
- Add "ARCH_SYSCALL_WORK_EXIT" to be defined as "SECCOMP | SYSCALL_EMU"
to keep the behaviour unchanged.
- Add more testcases test.
- Add Reviewed-by.
- Update the commit message.
- Link to v7: https://lore.kernel.org/all/20251117133048.53182-1-ruanjinjie@huawei.com/
Chanegs in v7:
- Support "Syscall User Dispatch" by implementing
arch_syscall_is_vdso_sigreturn() as kemal suggested.
- Add aarch64 support for "sud" selftest testcase, which tested ok with
the patch series.
- Fix the kernel test robot warning for arch_ptrace_report_syscall_entry()
and arch_ptrace_report_syscall_exit() in asm/entry-common.h.
- Add perf syscall performance test.
- Link to v6: https://lore.kernel.org/all/20250916082611.2972008-1-ruanjinjie@huawei.com/
Changes in v6:
- Rebased on v6.17-rc5-next as arm64 generic irq entry has merged.
- Update the commit message.
- Link to v5: https://lore.kernel.org/all/20241206101744.4161990-1-ruanjinjie@huawei.com/
Changes in v5:
- Not change arm32 and keep inerrupts_enabled() macro for gicv3 driver.
- Move irqentry_state definition into arch/arm64/kernel/entry-common.c.
- Avoid removing the __enter_from_*() and __exit_to_*() wrappers.
- Update "irqentry_state_t ret/irq_state" to "state"
to keep it consistently.
- Use generic irq entry header for PREEMPT_DYNAMIC after split
the generic entry.
- Also refactor the ARM64 syscall code.
- Introduce arch_ptrace_report_syscall_entry/exit(), instead of
arch_pre/post_report_syscall_entry/exit() to simplify code.
- Make the syscall patches clear separation.
- Update the commit message.
- Link to v4: https://lore.kernel.org/all/20241025100700.3714552-1-ruanjinjie@huawei.com/
Changes in v4:
- Rework/cleanup split into a few patches as Mark suggested.
- Replace interrupts_enabled() macro with regs_irqs_disabled(), instead
of left it here.
- Remove rcu and lockdep state in pt_regs by using temporary
irqentry_state_t as Mark suggested.
- Remove some unnecessary intermediate functions to make it clear.
- Rework preempt irq and PREEMPT_DYNAMIC code
to make the switch more clear.
- arch_prepare_*_entry/exit() -> arch_pre_*_entry/exit().
- Expand the arch functions comment.
- Make arch functions closer to its caller.
- Declare saved_reg in for block.
- Remove arch_exit_to_kernel_mode_prepare(), arch_enter_from_kernel_mode().
- Adjust "Add few arch functions to use generic entry" patch to be
the penultimate.
- Update the commit message.
- Add suggested-by.
- Link to v3: https://lore.kernel.org/all/20240629085601.470241-1-ruanjinjie@huawei.com/
Changes in v3:
- Test the MTE test cases.
- Handle forget_syscall() in arch_post_report_syscall_entry()
- Make the arch funcs not use __weak as Thomas suggested, so move
the arch funcs to entry-common.h, and make arch_forget_syscall() folded
in arch_post_report_syscall_entry() as suggested.
- Move report_single_step() to thread_info.h for arm64
- Change __always_inline() to inline, add inline for the other arch funcs.
- Remove unused signal.h for entry-common.h.
- Add Suggested-by.
- Update the commit message.
Changes in v2:
- Add tested-by.
- Fix a bug that not call arch_post_report_syscall_entry() in
syscall_trace_enter() if ptrace_report_syscall_entry() return not zero.
- Refactor report_syscall().
- Add comment for arch_prepare_report_syscall_exit().
- Adjust entry-common.h header file inclusion to alphabetical order.
- Update the commit message.
Jinjie Ruan (15):
arm64: Remove unused _TIF_WORK_MASK
arm64/ptrace: Split report_syscall()
arm64/ptrace: Return early for ptrace_report_syscall_entry() error
arm64/ptrace: Refactor syscall_trace_enter/exit()
arm64: ptrace: Move rseq_syscall() before audit_syscall_exit()
arm64: syscall: Rework el0_svc_common()
arm64/ptrace: Not check _TIF_SECCOMP/SYSCALL_EMU for
syscall_exit_work()
arm64/ptrace: Do not report_syscall_exit() for
PTRACE_SYSEMU_SINGLESTEP
arm64/ptrace: Expand secure_computing() in place
arm64/ptrace: Use syscall_get_arguments() helper
entry: Split syscall_exit_to_user_mode_work() for arch reuse
entry: Add arch_ptrace_report_syscall_entry/exit()
arm64: entry: Convert to generic entry
arm64: Inline el0_svc_common()
entry: Inline syscall_exit_work() and syscall_trace_enter()
kemal (1):
selftests: sud_test: Support aarch64
arch/arm64/Kconfig | 2 +-
arch/arm64/include/asm/entry-common.h | 76 ++++++++
arch/arm64/include/asm/syscall.h | 19 +-
arch/arm64/include/asm/thread_info.h | 22 +--
arch/arm64/kernel/debug-monitors.c | 7 +
arch/arm64/kernel/ptrace.c | 94 ----------
arch/arm64/kernel/signal.c | 2 +-
arch/arm64/kernel/syscall.c | 29 +--
include/linux/entry-common.h | 176 ++++++++++++++++--
kernel/entry/common.h | 7 -
kernel/entry/syscall-common.c | 96 +---------
kernel/entry/syscall_user_dispatch.c | 4 +-
.../syscall_user_dispatch/sud_benchmark.c | 2 +-
.../syscall_user_dispatch/sud_test.c | 4 +
14 files changed, 282 insertions(+), 258 deletions(-)
delete mode 100644 kernel/entry/common.h
--
2.34.1
1
16
From: Tong Tiangen <tongtiangen(a)huawei.com>
hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IDBGTZ
-------------------------------
Large memory migration imposes significant overhead on the CPU. This patch
introduces enhancements to the page migration by offloading the copy to
UDMA hardware which based on the DMA engine framework, and a new migration
mode has been introduced, If DMA migration fails, it will fall back to CPU
migration.
DMA migration supports both asynchronous and synchronous modes for
subsequent debugging purposes.
Signed-off-by: Tong Tiangen <tongtiangen(a)huawei.com>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
arch/arm64/configs/openeuler_defconfig | 1 +
include/linux/migrate_mode.h | 7 ++
include/linux/mm.h | 8 ++
mm/Kconfig | 12 +++
mm/Makefile | 1 +
mm/migrate.c | 9 ++
mm/migrate_dma.c | 143 +++++++++++++++++++++++++
7 files changed, 181 insertions(+)
create mode 100644 mm/migrate_dma.c
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index c25ac4ff6c2f..08af29cf2776 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -1186,6 +1186,7 @@ CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
+CONFIG_MIGRATE_PAGES_DMA_OFFLOADING=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
diff --git a/include/linux/migrate_mode.h b/include/linux/migrate_mode.h
index 0f577f932bb4..5283e62b7d1b 100644
--- a/include/linux/migrate_mode.h
+++ b/include/linux/migrate_mode.h
@@ -19,6 +19,13 @@ enum migrate_mode {
MIGRATE_SYNC_NO_COPY,
};
+/*
+ * Actually the macro MIGRATE_ASYNC_DMA_OFFLOADING definition should be
+ * placed within enum migrate_mode, but for KABI compatibility, it is
+ * defined here alone.
+ */
+#define MIGRATE_ASYNC_DMA_OFFLOADING (10)
+
enum migrate_reason {
MR_COMPACTION,
MR_MEMORY_FAILURE,
diff --git a/include/linux/mm.h b/include/linux/mm.h
index c0040a2014c4..036822cb1b9d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1330,6 +1330,14 @@ void put_pages_list(struct list_head *pages);
void split_page(struct page *page, unsigned int order);
void folio_copy(struct folio *dst, struct folio *src);
int folio_mc_copy(struct folio *dst, struct folio *src);
+#ifdef CONFIG_MIGRATE_PAGES_DMA_OFFLOADING
+int folio_dma_copy(struct folio *dst, struct folio *src);
+#else
+static inline int folio_dma_copy(struct folio *dst, struct folio *src)
+{
+ return -ENODEV;
+}
+#endif
unsigned long nr_free_buffer_pages(void);
diff --git a/mm/Kconfig b/mm/Kconfig
index 4eb0642b71e5..12438e8dff88 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -696,6 +696,18 @@ config MIGRATION
pages as migration can relocate pages to satisfy a huge page
allocation instead of reclaiming.
+config MIGRATE_PAGES_DMA_OFFLOADING
+ bool "Support to use DMA channels for page migration"
+ depends on DMA_ENGINE
+ depends on MIGRATION
+ default y
+ help
+ This config enhances page migration by introducing a new mode
+ that offloads copy operations to UB-DMA hardware based on the
+ DMA engine framework, with automatic fallback to CPU migration
+ if DMA migration fails. DMA migration supports both asynchronous
+ and synchronous modes to facilitate debugging.
+
config DEVICE_MIGRATION
def_bool MIGRATION && ZONE_DEVICE
diff --git a/mm/Makefile b/mm/Makefile
index e45cdeda47b7..dd81f8c33e03 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -92,6 +92,7 @@ obj-$(CONFIG_FAILSLAB) += failslab.o
obj-$(CONFIG_FAIL_PAGE_ALLOC) += fail_page_alloc.o
obj-$(CONFIG_MEMTEST) += memtest.o
obj-$(CONFIG_MIGRATION) += migrate.o
+obj-$(CONFIG_MIGRATE_PAGES_DMA_OFFLOADING) += migrate_dma.o
obj-$(CONFIG_NUMA) += memory-tiers.o
obj-$(CONFIG_DEVICE_MIGRATION) += migrate_device.o
obj-$(CONFIG_TRANSPARENT_HUGEPAGE) += huge_memory.o khugepaged.o
diff --git a/mm/migrate.c b/mm/migrate.c
index 148e55fab012..216f45c9570f 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -583,6 +583,15 @@ static int folio_migrate_mc_copy(struct folio *dst, struct folio *src,
if (mode == MIGRATE_SYNC_NO_COPY)
return 0;
+ if (mode == MIGRATE_ASYNC_DMA_OFFLOADING) {
+ if (folio_test_hugetlb(src) ||
+ folio_test_pmd_mappable(src)) {
+ /* if dma offloading fail, fallback */
+ if (!folio_dma_copy(dst, src))
+ return 0;
+ }
+ }
+
return folio_mc_copy(dst, src);
}
diff --git a/mm/migrate_dma.c b/mm/migrate_dma.c
new file mode 100644
index 000000000000..796cd9a5477e
--- /dev/null
+++ b/mm/migrate_dma.c
@@ -0,0 +1,143 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Support to use DMA channels for page migration.
+ *
+ * Copyright (C) 2025 Huawei Limited
+ */
+
+#define pr_fmt(fmt) "migrate_dma: " fmt
+
+#include <linux/dmaengine.h>
+#include <linux/dma-mapping.h>
+
+/* DMA channel track its transfers done */
+struct dma_channel_work {
+ struct dma_chan *chan;
+ enum dma_status status;
+ struct completion done;
+};
+
+static void folios_dma_copy_completion_callback(void *param,
+ const struct dmaengine_result *result)
+{
+ struct dma_channel_work *chan_work = param;
+
+ if (result) {
+ enum dmaengine_tx_result dma_res = result->result;
+
+ if (dma_res == DMA_TRANS_NOERROR)
+ chan_work->status = DMA_COMPLETE;
+ else
+ chan_work->status = DMA_ERROR;
+ }
+
+ complete(&chan_work->done);
+}
+
+static int process_folio_dma_transfer(struct dma_channel_work *chan_work,
+ struct folio *src, struct folio *dst)
+{
+ struct dma_chan *chan = chan_work->chan;
+ struct device *dev = dmaengine_get_dma_device(chan);
+ enum dma_ctrl_flags flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
+ struct dma_async_tx_descriptor *tx;
+ dma_addr_t src_handle, dst_handle;
+ size_t size = folio_size(src);
+ int ret;
+
+ src_handle = dma_map_page(dev, &src->page, 0, size, DMA_TO_DEVICE);
+ if (dma_mapping_error(dev, src_handle)) {
+ dev_err(dev, "map dma src page error.\n");
+ return -ENOMEM;
+ }
+
+ dst_handle = dma_map_page(dev, &dst->page, 0, size, DMA_FROM_DEVICE);
+ if (dma_mapping_error(dev, dst_handle)) {
+ dev_err(dev, "map dma dst page error.\n");
+ ret = -ENOMEM;
+ goto out_unmap;
+ }
+
+ tx = dmaengine_prep_dma_memcpy(chan, dst_handle, src_handle,
+ size, flags);
+ if (unlikely(!tx)) {
+ dev_err(dev, "prep dma memcpy error.\n");
+ ret = -EBUSY;
+ goto out_unmap_all;
+ }
+
+ tx->callback_result = folios_dma_copy_completion_callback;
+ tx->callback_param = chan_work;
+ init_completion(&chan_work->done);
+ chan_work->status = DMA_ERROR;
+
+ if (dma_submit_error(dmaengine_submit(tx))) {
+ dev_err(dev, "dma submit error.\n");
+ ret = -EINVAL;
+ goto out_unmap_all;
+ }
+
+ dma_async_issue_pending(chan);
+ if (!wait_for_completion_timeout(&chan_work->done,
+ msecs_to_jiffies(1000))) {
+ ret = -ETIMEDOUT;
+ goto out_unmap_all;
+ }
+
+ ret = (chan_work->status == DMA_COMPLETE) ? 0 : -EPROTO;
+
+out_unmap_all:
+ dma_unmap_page(dev, dst_handle, size, DMA_FROM_DEVICE);
+out_unmap:
+ dma_unmap_page(dev, src_handle, size, DMA_TO_DEVICE);
+
+ return ret;
+}
+
+static bool folio_dma_chan_filter(struct dma_chan *chan, void *param)
+{
+ return !strcmp(dev_name(chan->device->dev), "ub_dma_device");
+}
+
+int folio_dma_copy(struct folio *dst, struct folio *src)
+{
+ struct dma_channel_work *chan_work;
+ struct dma_slave_config dma_cfg;
+ struct dma_chan *chan;
+ dma_cap_mask_t mask;
+ int ret = -ENODEV;
+
+ dma_cap_zero(mask);
+ dma_cap_set(DMA_MEMCPY, mask);
+ chan = dma_request_channel(mask, folio_dma_chan_filter, NULL);
+ if (!chan) {
+ pr_err("failed to allocate dma channel.\n");
+ return ret;
+ }
+
+ memset(&dma_cfg, 0, sizeof(dma_cfg));
+ dma_cfg.direction = DMA_MEM_TO_MEM;
+ ret = dmaengine_slave_config(chan, &dma_cfg);
+ if (ret) {
+ pr_err("failed to config dma channel.\n");
+ goto out_release;
+ }
+
+ chan_work = kmalloc(sizeof(*chan_work), GFP_KERNEL);
+ if (unlikely(!chan_work)) {
+ pr_err("failed to allocate memory for chan work.\n");
+ goto out_release;
+ }
+
+ chan_work->chan = chan;
+ ret = process_folio_dma_transfer(chan_work, src, dst);
+ if (unlikely(ret))
+ pr_err("failed to process folio dma transfer.\n");
+
+ kfree(chan_work);
+out_release:
+ dma_release_channel(chan);
+
+ return ret;
+}
+EXPORT_SYMBOL(folio_dma_copy);
--
2.25.1
2
1
[openeuler:OLK-5.10 3415/3415] drivers/mfd/atmel-flexcom.c:108:32: warning: unused variable 'atmel_flexcom_pm_ops'
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 1308eef0cd1cb33d5a64a3540b7e73873d9be0f3 [3415/3415] mfd: atmel-flexcom: Use .resume_noirq
config: x86_64-randconfig-072-20251215 (https://download.01.org/0day-ci/archive/20251222/202512221707.MaznwzGq-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512221707.MaznwzGq-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/202512221707.MaznwzGq-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from <built-in>:2:
In file included from include/linux/compiler_types.h:69:
include/linux/compiler-clang.h:34:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
34 | #define __SANITIZE_ADDRESS__
| ^
<built-in>:352:9: note: previous definition is here
352 | #define __SANITIZE_ADDRESS__ 1
| ^
>> drivers/mfd/atmel-flexcom.c:108:32: warning: unused variable 'atmel_flexcom_pm_ops' [-Wunused-const-variable]
108 | static const struct dev_pm_ops atmel_flexcom_pm_ops = {
| ^~~~~~~~~~~~~~~~~~~~
2 warnings generated.
vim +/atmel_flexcom_pm_ops +108 drivers/mfd/atmel-flexcom.c
107
> 108 static const struct dev_pm_ops atmel_flexcom_pm_ops = {
109 .resume_noirq = atmel_flexcom_resume_noirq,
110 };
111
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3542/3542] drivers/irqchip/irq-mbigen.c:127: warning: Function parameter or member 'vtimer_mbigen_chip' not described in 'mbigen_device'
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 3ce0ad7d0b4cb6538fe25fb20ca838c06e3cc516 [3542/3542] mbigen: vtimer mbigen driver support
config: arm64-randconfig-001-20251215 (https://download.01.org/0day-ci/archive/20251222/202512221648.01it8GuK-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512221648.01it8GuK-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/202512221648.01it8GuK-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/irqchip/irq-mbigen.c:77: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
* MBIX config register
>> drivers/irqchip/irq-mbigen.c:127: warning: Function parameter or member 'vtimer_mbigen_chip' not described in 'mbigen_device'
>> drivers/irqchip/irq-mbigen.c:136: warning: expecting prototype for Due to the existence of hyper(). Prototype was for GICR_LENGTH() instead
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for RESCTRL_FS
Depends on [n]: MISC_FILESYSTEMS [=n] && ARCH_HAS_CPU_RESCTRL [=y]
Selected by [y]:
- ARM64_MPAM [=y]
vim +127 drivers/irqchip/irq-mbigen.c
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 114
717c3dbc118ecbb Ma Jun 2015-12-17 115 /**
717c3dbc118ecbb Ma Jun 2015-12-17 116 * struct mbigen_device - holds the information of mbigen device.
717c3dbc118ecbb Ma Jun 2015-12-17 117 *
717c3dbc118ecbb Ma Jun 2015-12-17 118 * @pdev: pointer to the platform device structure of mbigen chip.
717c3dbc118ecbb Ma Jun 2015-12-17 119 * @base: mapped address of this mbigen chip.
717c3dbc118ecbb Ma Jun 2015-12-17 120 */
717c3dbc118ecbb Ma Jun 2015-12-17 121 struct mbigen_device {
717c3dbc118ecbb Ma Jun 2015-12-17 122 struct platform_device *pdev;
717c3dbc118ecbb Ma Jun 2015-12-17 123 void __iomem *base;
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 124 #ifdef CONFIG_VIRT_VTIMER_IRQ_BYPASS
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 125 struct vtimer_mbigen_device *vtimer_mbigen_chip;
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 126 #endif
717c3dbc118ecbb Ma Jun 2015-12-17 @127 };
717c3dbc118ecbb Ma Jun 2015-12-17 128
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 129 #ifdef CONFIG_VIRT_VTIMER_IRQ_BYPASS
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 130 static LIST_HEAD(vtimer_mgn_list);
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 131
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 132 /**
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 133 * Due to the existence of hyper-threading technology, We need to get the
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 134 * absolute offset of a cpu relative to the base cpu.
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 135 */
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 @136 #define GICR_LENGTH 0x40000
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 137 static inline int get_abs_offset(int cpu, int cpu_base)
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 138 {
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 139 return ((get_gicr_paddr(cpu) - get_gicr_paddr(cpu_base)) / GICR_LENGTH);
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 140 }
3ce0ad7d0b4cb65 Kunkun Jiang 2024-01-11 141
:::::: The code at line 127 was first introduced by commit
:::::: 717c3dbc118ecbbd5dab06c7e02dac68d3f62e1d irqchip/mgigen: Add platform device driver for mbigen device
:::::: TO: Ma Jun <majun258(a)huawei.com>
:::::: CC: Marc Zyngier <marc.zyngier(a)arm.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
hulk inclusion
category: feature
bugzilla: NA
CVE: NA
--------------------------------------------------------
The cache of dm-thin is common used for first level btree and the
second level btree, however the first level btree has less dm-buffer
than the second level btree, which might cause extra look up steps for
the first level btree when accessing the cache of the dm pool. Thus,
add support for spliting the first level btree and the second level
btree' cache, which might speed up the look up process of the first
level btree routine.
Signed-off-by: Zhang Zekun <zhangzekun11(a)huawei.com>
---
drivers/md/dm-bufio.c | 72 +++++++++++++------
drivers/md/dm-thin-metadata.c | 4 ++
drivers/md/dm.h | 18 ++++-
drivers/md/persistent-data/dm-block-manager.c | 11 +++
drivers/md/persistent-data/dm-block-manager.h | 2 +
include/linux/dm-bufio.h | 4 ++
6 files changed, 87 insertions(+), 24 deletions(-)
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c
index 8ce77aec0..b83b8f5fe 100644
--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -254,9 +254,9 @@ enum evict_result {
ER_STOP, /* stop looking for something to evict */
};
-typedef enum evict_result (*le_predicate)(struct lru_entry *le, void *context);
+typedef enum evict_result (*le_predicate)(struct lru_entry *le, void *context, void *bc);
-static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *context, bool no_sleep)
+static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *context, bool no_sleep, void *bc)
{
unsigned long tested = 0;
struct list_head *h = lru->cursor;
@@ -276,7 +276,7 @@ static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *con
atomic_set(&le->referenced, 0);
} else {
tested++;
- switch (pred(le, context)) {
+ switch (pred(le, context, bc)) {
case ER_EVICT:
/*
* Adjust the cursor, so we start the next
@@ -362,6 +362,7 @@ struct dm_buffer {
unsigned int stack_len;
unsigned long stack_entries[MAX_STACK];
#endif
+ bool special;
};
/*--------------------------------------------------------------*/
@@ -399,12 +400,18 @@ struct dm_buffer_cache {
* on the locks.
*/
unsigned int num_locks;
+ unsigned long special;
bool no_sleep;
struct buffer_tree trees[];
};
static DEFINE_STATIC_KEY_FALSE(no_sleep_enabled);
+static inline unsigned int cache_index_special(sector_t block, unsigned int num_locks, unsigned long special)
+{
+ return dm_hash_locks_index_special(block, num_locks, special);
+}
+
static inline unsigned int cache_index(sector_t block, unsigned int num_locks)
{
return dm_hash_locks_index(block, num_locks);
@@ -413,33 +420,33 @@ static inline unsigned int cache_index(sector_t block, unsigned int num_locks)
static inline void cache_read_lock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- read_lock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ read_lock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- down_read(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ down_read(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
static inline void cache_read_unlock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- read_unlock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ read_unlock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- up_read(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ up_read(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
static inline void cache_write_lock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- write_lock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ write_lock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- down_write(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ down_write(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
static inline void cache_write_unlock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- write_unlock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ write_unlock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- up_write(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ up_write(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
/*
@@ -506,9 +513,9 @@ static void lh_exit(struct lock_history *lh)
* Named 'next' because there is no corresponding
* 'up/unlock' call since it's done automatically.
*/
-static void lh_next(struct lock_history *lh, sector_t b)
+static void lh_next(struct lock_history *lh, sector_t b, unsigned long special)
{
- unsigned int index = cache_index(b, lh->no_previous); /* no_previous is num_locks */
+ unsigned int index = cache_index_special(b, lh->no_previous, special); /* no_previous is num_locks */
if (lh->previous != lh->no_previous) {
if (lh->previous != index) {
@@ -619,7 +626,7 @@ static struct dm_buffer *cache_get(struct dm_buffer_cache *bc, sector_t block)
struct dm_buffer *b;
cache_read_lock(bc, block);
- b = __cache_get(&bc->trees[cache_index(block, bc->num_locks)].root, block);
+ b = __cache_get(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].root, block);
if (b) {
lru_reference(&b->lru);
__cache_inc_buffer(b);
@@ -666,12 +673,13 @@ struct evict_wrapper {
* Wraps the buffer predicate turning it into an lru predicate. Adds
* extra test for hold_count.
*/
-static enum evict_result __evict_pred(struct lru_entry *le, void *context)
+static enum evict_result __evict_pred(struct lru_entry *le, void *context, void *bc)
{
struct evict_wrapper *w = context;
struct dm_buffer *b = le_to_buffer(le);
+ struct dm_buffer_cache *bcc = (struct dm_buffer_cache *)bc;
- lh_next(w->lh, b->block);
+ lh_next(w->lh, b->block, b->special ? b->block : bcc->special);
if (atomic_read(&b->hold_count))
return ER_DONT_EVICT;
@@ -687,13 +695,13 @@ static struct dm_buffer *__cache_evict(struct dm_buffer_cache *bc, int list_mode
struct lru_entry *le;
struct dm_buffer *b;
- le = lru_evict(&bc->lru[list_mode], __evict_pred, &w, bc->no_sleep);
+ le = lru_evict(&bc->lru[list_mode], __evict_pred, &w, bc->no_sleep, (void *) bc);
if (!le)
return NULL;
b = le_to_buffer(le);
/* __evict_pred will have locked the appropriate tree. */
- rb_erase(&b->node, &bc->trees[cache_index(b->block, bc->num_locks)].root);
+ rb_erase(&b->node, &bc->trees[cache_index_special(b->block, bc->num_locks, b->special ? b->block : bc->special)].root);
return b;
}
@@ -741,7 +749,7 @@ static void __cache_mark_many(struct dm_buffer_cache *bc, int old_mode, int new_
struct evict_wrapper w = {.lh = lh, .pred = pred, .context = context};
while (true) {
- le = lru_evict(&bc->lru[old_mode], __evict_pred, &w, bc->no_sleep);
+ le = lru_evict(&bc->lru[old_mode], __evict_pred, &w, bc->no_sleep, (void *)bc);
if (!le)
break;
@@ -792,7 +800,7 @@ static void __cache_iterate(struct dm_buffer_cache *bc, int list_mode,
do {
struct dm_buffer *b = le_to_buffer(le);
- lh_next(lh, b->block);
+ lh_next(lh, b->block, bc->special);
switch (fn(b, context)) {
case IT_NEXT:
@@ -858,8 +866,8 @@ static bool cache_insert(struct dm_buffer_cache *bc, struct dm_buffer *b)
return false;
cache_write_lock(bc, b->block);
- BUG_ON(atomic_read(&b->hold_count) != 1);
- r = __cache_insert(&bc->trees[cache_index(b->block, bc->num_locks)].root, b);
+ //BUG_ON(atomic_read(&b->hold_count) != 1);
+ r = __cache_insert(&bc->trees[cache_index_special(b->block, bc->num_locks, bc->special)].root, b);
if (r)
lru_insert(&bc->lru[b->list_mode], &b->lru);
cache_write_unlock(bc, b->block);
@@ -885,7 +893,7 @@ static bool cache_remove(struct dm_buffer_cache *bc, struct dm_buffer *b)
r = false;
} else {
r = true;
- rb_erase(&b->node, &bc->trees[cache_index(b->block, bc->num_locks)].root);
+ rb_erase(&b->node, &bc->trees[cache_index_special(b->block, bc->num_locks, bc->special)].root);
lru_remove(&bc->lru[b->list_mode], &b->lru);
}
@@ -1019,6 +1027,12 @@ struct dm_bufio_client {
struct dm_buffer_cache cache; /* must be last member */
};
+void dm_setup_buffer_cache(struct dm_bufio_client *bc, unsigned long block)
+{
+ bc->cache.special = block;
+}
+EXPORT_SYMBOL_GPL(dm_setup_buffer_cache);
+
/*----------------------------------------------------------------*/
#define dm_bufio_in_request() (!!current->bio_list)
@@ -1792,6 +1806,7 @@ static struct dm_buffer *__bufio_new(struct dm_bufio_client *c, sector_t block,
b->read_error = 0;
b->write_error = 0;
b->list_mode = LIST_CLEAN;
+ b->special = (block == c->cache.special);
if (nf == NF_FRESH)
b->state = 0;
@@ -2642,6 +2657,17 @@ void dm_bufio_set_sector_offset(struct dm_bufio_client *c, sector_t start)
}
EXPORT_SYMBOL_GPL(dm_bufio_set_sector_offset);
+void dm_move_cache(struct dm_bufio_client *bc, unsigned long block)
+{
+ struct dm_buffer *b;
+
+ b = cache_get(&bc->cache, block);
+ cache_remove(&bc->cache, b);
+ bc->cache.special = block;
+ cache_insert(&bc->cache, b);
+}
+EXPORT_SYMBOL_GPL(dm_move_cache);
+
/*--------------------------------------------------------------*/
static unsigned int get_max_age_hz(void)
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
index 6022189c1..f485504d4 100644
--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -747,6 +747,7 @@ static int __open_metadata(struct dm_pool_metadata *pmd)
* root to avoid accessing broken btree.
*/
pmd->root = le64_to_cpu(disk_super->data_mapping_root);
+ dm_setup_bm_cache(pmd->bm, pmd->root);
pmd->details_root = le64_to_cpu(disk_super->device_details_root);
__setup_btree_details(pmd);
@@ -837,6 +838,7 @@ static int __begin_transaction(struct dm_pool_metadata *pmd)
disk_super = dm_block_data(sblock);
pmd->time = le32_to_cpu(disk_super->time);
pmd->root = le64_to_cpu(disk_super->data_mapping_root);
+ dm_setup_bm_cache(pmd->bm, pmd->root);
pmd->details_root = le64_to_cpu(disk_super->device_details_root);
pmd->trans_id = le64_to_cpu(disk_super->trans_id);
pmd->flags = le32_to_cpu(disk_super->flags);
@@ -1678,6 +1680,8 @@ static int __insert(struct dm_thin_device *td, dm_block_t block,
if (r)
return r;
+ dm_move_bm_cache(pmd->bm, pmd->root);
+
td->changed = true;
if (inserted)
td->mapped_blocks++;
diff --git a/drivers/md/dm.h b/drivers/md/dm.h
index f682295af..3d0c9f860 100644
--- a/drivers/md/dm.h
+++ b/drivers/md/dm.h
@@ -232,12 +232,28 @@ static inline unsigned int dm_num_hash_locks(void)
{
unsigned int num_locks = roundup_pow_of_two(num_online_cpus()) << 1;
- return min_t(unsigned int, num_locks, DM_HASH_LOCKS_MAX);
+ return min_t(unsigned int, num_locks, DM_HASH_LOCKS_MAX) + 32;
}
#define DM_HASH_LOCKS_MULT 4294967291ULL
#define DM_HASH_LOCKS_SHIFT 6
+static inline unsigned int dm_hash_locks_index_special(sector_t block,
+ unsigned int num_locks,
+ unsigned long special)
+{
+
+
+ sector_t h1 = (block * DM_HASH_LOCKS_MULT) >> DM_HASH_LOCKS_SHIFT;
+ sector_t h2 = h1 >> DM_HASH_LOCKS_SHIFT;
+
+ if (block == special)
+ return ((h1 ^ h2) & 31) + num_locks - 32;
+
+ return (h1 ^ h2) & (num_locks - 33);
+}
+
+
static inline unsigned int dm_hash_locks_index(sector_t block,
unsigned int num_locks)
{
diff --git a/drivers/md/persistent-data/dm-block-manager.c b/drivers/md/persistent-data/dm-block-manager.c
index 0e010e120..da560f825 100644
--- a/drivers/md/persistent-data/dm-block-manager.c
+++ b/drivers/md/persistent-data/dm-block-manager.c
@@ -414,6 +414,17 @@ struct dm_block_manager *dm_block_manager_create(struct block_device *bdev,
}
EXPORT_SYMBOL_GPL(dm_block_manager_create);
+void dm_setup_bm_cache(struct dm_block_manager *bm, unsigned long block)
+{
+ dm_setup_buffer_cache(bm->bufio, block);
+}
+EXPORT_SYMBOL_GPL(dm_setup_bm_cache);
+
+void dm_move_bm_cache(struct dm_block_manager *bm, unsigned long block)
+{
+ dm_move_cache(bm->bufio, block);
+}
+
void dm_block_manager_destroy(struct dm_block_manager *bm)
{
dm_bufio_client_destroy(bm->bufio);
diff --git a/drivers/md/persistent-data/dm-block-manager.h b/drivers/md/persistent-data/dm-block-manager.h
index f706d3de8..25121bbc5 100644
--- a/drivers/md/persistent-data/dm-block-manager.h
+++ b/drivers/md/persistent-data/dm-block-manager.h
@@ -35,7 +35,9 @@ struct dm_block_manager;
struct dm_block_manager *dm_block_manager_create(
struct block_device *bdev, unsigned int block_size,
unsigned int max_held_per_thread);
+void dm_move_bm_cache(struct dm_block_manager *bm, unsigned long block);
void dm_block_manager_destroy(struct dm_block_manager *bm);
+void dm_setup_bm_cache(struct dm_block_manager *bm, unsigned long block);
void dm_block_manager_reset(struct dm_block_manager *bm);
unsigned int dm_bm_block_size(struct dm_block_manager *bm);
diff --git a/include/linux/dm-bufio.h b/include/linux/dm-bufio.h
index 75e7d8cbb..d7d7a33cc 100644
--- a/include/linux/dm-bufio.h
+++ b/include/linux/dm-bufio.h
@@ -71,6 +71,8 @@ void *dm_bufio_read(struct dm_bufio_client *c, sector_t block,
void *dm_bufio_get(struct dm_bufio_client *c, sector_t block,
struct dm_buffer **bp);
+void dm_setup_buffer_cache(struct dm_bufio_client *bc, unsigned long block);
+
/*
* Like dm_bufio_read, but don't read anything from the disk. It is
* expected that the caller initializes the buffer and marks it dirty.
@@ -139,6 +141,8 @@ int dm_bufio_issue_discard(struct dm_bufio_client *c, sector_t block, sector_t c
*/
void dm_bufio_forget(struct dm_bufio_client *c, sector_t block);
+void dm_move_cache(struct dm_bufio_client *bc, unsigned long block);
+
/*
* Free the given range of buffers.
* This is just a hint, if the buffer is in use or dirty, this function
--
2.43.0
2
1
22 Dec '25
From: Ondrej Mosnacek <omosnace(a)redhat.com>
mainline inclusion
from mainline-v6.19-rc2
commit 189e5deb944a6f9c7992355d60bffd8ec2e54a9c
category: bugfix
bugzilla: https://atomgit.com/src-openeuler/kernel/issues/12686
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Analogically to the x86 commit 881a9c9cb785 ("bpf: Do not audit
capability check in do_jit()"), change the capable() call to
ns_capable_noaudit() in order to avoid spurious SELinux denials in audit
log.
The commit log from that commit applies here as well:
"""
The failure of this check only results in a security mitigation being
applied, slightly affecting performance of the compiled BPF program. It
doesn't result in a failed syscall, an thus auditing a failed LSM
permission check for it is unwanted. For example with SELinux, it causes
a denial to be reported for confined processes running as root, which
tends to be flagged as a problem to be fixed in the policy. Yet
dontauditing or allowing CAP_SYS_ADMIN to the domain may not be
desirable, as it would allow/silence also other checks - either going
against the principle of least privilege or making debugging potentially
harder.
Fix it by changing it from capable() to ns_capable_noaudit(), which
instructs the LSMs to not audit the resulting denials.
"""
Fixes: f300769ead03 ("arm64: bpf: Only mitigate cBPF programs loaded by unprivileged users")
Signed-off-by: Ondrej Mosnacek <omosnace(a)redhat.com>
Link: https://lore.kernel.org/r/20251204125916.441021-1-omosnace@redhat.com
Signed-off-by: Alexei Starovoitov <ast(a)kernel.org>
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
arch/arm64/net/bpf_jit_comp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index 8b957d2f60eb..f98ae8bf4e19 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -666,7 +666,7 @@ static void __maybe_unused build_bhb_mitigation(struct jit_ctx *ctx)
arm64_get_spectre_v2_state() == SPECTRE_VULNERABLE)
return;
- if (capable(CAP_SYS_ADMIN))
+ if (ns_capable_noaudit(&init_user_ns, CAP_SYS_ADMIN))
return;
if (supports_clearbhb(SCOPE_SYSTEM)) {
--
2.34.1
2
1
hulk inclusion
category: feature
bugzilla: NA
CVE: NA
--------------------------------------------------------
The cache of dm-thin is common used for first level btree and the
second level btree, however the first level btree has less dm-buffer
than the second level btree, which might cause extra look up steps for
the first level btree when accessing the cache of the dm pool. Thus,
add support for spliting the first level btree and the second level
btree' cache, which might speed up the look up process of the first
level btree routine.
Signed-off-by: Zhang Zekun <zhangzekun11(a)huawei.com>
---
drivers/md/dm-bufio.c | 72 +++++++++++++------
drivers/md/dm-thin-metadata.c | 4 ++
drivers/md/dm.h | 18 ++++-
drivers/md/persistent-data/dm-block-manager.c | 11 +++
drivers/md/persistent-data/dm-block-manager.h | 2 +
include/linux/dm-bufio.h | 4 ++
6 files changed, 87 insertions(+), 24 deletions(-)
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c
index 8ce77aec0..b83b8f5fe 100644
--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -254,9 +254,9 @@ enum evict_result {
ER_STOP, /* stop looking for something to evict */
};
-typedef enum evict_result (*le_predicate)(struct lru_entry *le, void *context);
+typedef enum evict_result (*le_predicate)(struct lru_entry *le, void *context, void *bc);
-static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *context, bool no_sleep)
+static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *context, bool no_sleep, void *bc)
{
unsigned long tested = 0;
struct list_head *h = lru->cursor;
@@ -276,7 +276,7 @@ static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *con
atomic_set(&le->referenced, 0);
} else {
tested++;
- switch (pred(le, context)) {
+ switch (pred(le, context, bc)) {
case ER_EVICT:
/*
* Adjust the cursor, so we start the next
@@ -362,6 +362,7 @@ struct dm_buffer {
unsigned int stack_len;
unsigned long stack_entries[MAX_STACK];
#endif
+ bool special;
};
/*--------------------------------------------------------------*/
@@ -399,12 +400,18 @@ struct dm_buffer_cache {
* on the locks.
*/
unsigned int num_locks;
+ unsigned long special;
bool no_sleep;
struct buffer_tree trees[];
};
static DEFINE_STATIC_KEY_FALSE(no_sleep_enabled);
+static inline unsigned int cache_index_special(sector_t block, unsigned int num_locks, unsigned long special)
+{
+ return dm_hash_locks_index_special(block, num_locks, special);
+}
+
static inline unsigned int cache_index(sector_t block, unsigned int num_locks)
{
return dm_hash_locks_index(block, num_locks);
@@ -413,33 +420,33 @@ static inline unsigned int cache_index(sector_t block, unsigned int num_locks)
static inline void cache_read_lock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- read_lock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ read_lock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- down_read(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ down_read(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
static inline void cache_read_unlock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- read_unlock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ read_unlock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- up_read(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ up_read(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
static inline void cache_write_lock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- write_lock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ write_lock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- down_write(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ down_write(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
static inline void cache_write_unlock(struct dm_buffer_cache *bc, sector_t block)
{
if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep)
- write_unlock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock);
+ write_unlock_bh(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.spinlock);
else
- up_write(&bc->trees[cache_index(block, bc->num_locks)].u.lock);
+ up_write(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].u.lock);
}
/*
@@ -506,9 +513,9 @@ static void lh_exit(struct lock_history *lh)
* Named 'next' because there is no corresponding
* 'up/unlock' call since it's done automatically.
*/
-static void lh_next(struct lock_history *lh, sector_t b)
+static void lh_next(struct lock_history *lh, sector_t b, unsigned long special)
{
- unsigned int index = cache_index(b, lh->no_previous); /* no_previous is num_locks */
+ unsigned int index = cache_index_special(b, lh->no_previous, special); /* no_previous is num_locks */
if (lh->previous != lh->no_previous) {
if (lh->previous != index) {
@@ -619,7 +626,7 @@ static struct dm_buffer *cache_get(struct dm_buffer_cache *bc, sector_t block)
struct dm_buffer *b;
cache_read_lock(bc, block);
- b = __cache_get(&bc->trees[cache_index(block, bc->num_locks)].root, block);
+ b = __cache_get(&bc->trees[cache_index_special(block, bc->num_locks, bc->special)].root, block);
if (b) {
lru_reference(&b->lru);
__cache_inc_buffer(b);
@@ -666,12 +673,13 @@ struct evict_wrapper {
* Wraps the buffer predicate turning it into an lru predicate. Adds
* extra test for hold_count.
*/
-static enum evict_result __evict_pred(struct lru_entry *le, void *context)
+static enum evict_result __evict_pred(struct lru_entry *le, void *context, void *bc)
{
struct evict_wrapper *w = context;
struct dm_buffer *b = le_to_buffer(le);
+ struct dm_buffer_cache *bcc = (struct dm_buffer_cache *)bc;
- lh_next(w->lh, b->block);
+ lh_next(w->lh, b->block, b->special ? b->block : bcc->special);
if (atomic_read(&b->hold_count))
return ER_DONT_EVICT;
@@ -687,13 +695,13 @@ static struct dm_buffer *__cache_evict(struct dm_buffer_cache *bc, int list_mode
struct lru_entry *le;
struct dm_buffer *b;
- le = lru_evict(&bc->lru[list_mode], __evict_pred, &w, bc->no_sleep);
+ le = lru_evict(&bc->lru[list_mode], __evict_pred, &w, bc->no_sleep, (void *) bc);
if (!le)
return NULL;
b = le_to_buffer(le);
/* __evict_pred will have locked the appropriate tree. */
- rb_erase(&b->node, &bc->trees[cache_index(b->block, bc->num_locks)].root);
+ rb_erase(&b->node, &bc->trees[cache_index_special(b->block, bc->num_locks, b->special ? b->block : bc->special)].root);
return b;
}
@@ -741,7 +749,7 @@ static void __cache_mark_many(struct dm_buffer_cache *bc, int old_mode, int new_
struct evict_wrapper w = {.lh = lh, .pred = pred, .context = context};
while (true) {
- le = lru_evict(&bc->lru[old_mode], __evict_pred, &w, bc->no_sleep);
+ le = lru_evict(&bc->lru[old_mode], __evict_pred, &w, bc->no_sleep, (void *)bc);
if (!le)
break;
@@ -792,7 +800,7 @@ static void __cache_iterate(struct dm_buffer_cache *bc, int list_mode,
do {
struct dm_buffer *b = le_to_buffer(le);
- lh_next(lh, b->block);
+ lh_next(lh, b->block, bc->special);
switch (fn(b, context)) {
case IT_NEXT:
@@ -858,8 +866,8 @@ static bool cache_insert(struct dm_buffer_cache *bc, struct dm_buffer *b)
return false;
cache_write_lock(bc, b->block);
- BUG_ON(atomic_read(&b->hold_count) != 1);
- r = __cache_insert(&bc->trees[cache_index(b->block, bc->num_locks)].root, b);
+ //BUG_ON(atomic_read(&b->hold_count) != 1);
+ r = __cache_insert(&bc->trees[cache_index_special(b->block, bc->num_locks, bc->special)].root, b);
if (r)
lru_insert(&bc->lru[b->list_mode], &b->lru);
cache_write_unlock(bc, b->block);
@@ -885,7 +893,7 @@ static bool cache_remove(struct dm_buffer_cache *bc, struct dm_buffer *b)
r = false;
} else {
r = true;
- rb_erase(&b->node, &bc->trees[cache_index(b->block, bc->num_locks)].root);
+ rb_erase(&b->node, &bc->trees[cache_index_special(b->block, bc->num_locks, bc->special)].root);
lru_remove(&bc->lru[b->list_mode], &b->lru);
}
@@ -1019,6 +1027,12 @@ struct dm_bufio_client {
struct dm_buffer_cache cache; /* must be last member */
};
+void dm_setup_buffer_cache(struct dm_bufio_client *bc, unsigned long block)
+{
+ bc->cache.special = block;
+}
+EXPORT_SYMBOL_GPL(dm_setup_buffer_cache);
+
/*----------------------------------------------------------------*/
#define dm_bufio_in_request() (!!current->bio_list)
@@ -1792,6 +1806,7 @@ static struct dm_buffer *__bufio_new(struct dm_bufio_client *c, sector_t block,
b->read_error = 0;
b->write_error = 0;
b->list_mode = LIST_CLEAN;
+ b->special = (block == c->cache.special);
if (nf == NF_FRESH)
b->state = 0;
@@ -2642,6 +2657,17 @@ void dm_bufio_set_sector_offset(struct dm_bufio_client *c, sector_t start)
}
EXPORT_SYMBOL_GPL(dm_bufio_set_sector_offset);
+void dm_move_cache(struct dm_bufio_client *bc, unsigned long block)
+{
+ struct dm_buffer *b;
+
+ b = cache_get(&bc->cache, block);
+ cache_remove(&bc->cache, b);
+ bc->cache.special = block;
+ cache_insert(&bc->cache, b);
+}
+EXPORT_SYMBOL_GPL(dm_move_cache);
+
/*--------------------------------------------------------------*/
static unsigned int get_max_age_hz(void)
diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
index 6022189c1..f485504d4 100644
--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -747,6 +747,7 @@ static int __open_metadata(struct dm_pool_metadata *pmd)
* root to avoid accessing broken btree.
*/
pmd->root = le64_to_cpu(disk_super->data_mapping_root);
+ dm_setup_bm_cache(pmd->bm, pmd->root);
pmd->details_root = le64_to_cpu(disk_super->device_details_root);
__setup_btree_details(pmd);
@@ -837,6 +838,7 @@ static int __begin_transaction(struct dm_pool_metadata *pmd)
disk_super = dm_block_data(sblock);
pmd->time = le32_to_cpu(disk_super->time);
pmd->root = le64_to_cpu(disk_super->data_mapping_root);
+ dm_setup_bm_cache(pmd->bm, pmd->root);
pmd->details_root = le64_to_cpu(disk_super->device_details_root);
pmd->trans_id = le64_to_cpu(disk_super->trans_id);
pmd->flags = le32_to_cpu(disk_super->flags);
@@ -1678,6 +1680,8 @@ static int __insert(struct dm_thin_device *td, dm_block_t block,
if (r)
return r;
+ dm_move_bm_cache(pmd->bm, pmd->root);
+
td->changed = true;
if (inserted)
td->mapped_blocks++;
diff --git a/drivers/md/dm.h b/drivers/md/dm.h
index f682295af..3d0c9f860 100644
--- a/drivers/md/dm.h
+++ b/drivers/md/dm.h
@@ -232,12 +232,28 @@ static inline unsigned int dm_num_hash_locks(void)
{
unsigned int num_locks = roundup_pow_of_two(num_online_cpus()) << 1;
- return min_t(unsigned int, num_locks, DM_HASH_LOCKS_MAX);
+ return min_t(unsigned int, num_locks, DM_HASH_LOCKS_MAX) + 32;
}
#define DM_HASH_LOCKS_MULT 4294967291ULL
#define DM_HASH_LOCKS_SHIFT 6
+static inline unsigned int dm_hash_locks_index_special(sector_t block,
+ unsigned int num_locks,
+ unsigned long special)
+{
+
+
+ sector_t h1 = (block * DM_HASH_LOCKS_MULT) >> DM_HASH_LOCKS_SHIFT;
+ sector_t h2 = h1 >> DM_HASH_LOCKS_SHIFT;
+
+ if (block == special)
+ return ((h1 ^ h2) & 31) + num_locks - 32;
+
+ return (h1 ^ h2) & (num_locks - 33);
+}
+
+
static inline unsigned int dm_hash_locks_index(sector_t block,
unsigned int num_locks)
{
diff --git a/drivers/md/persistent-data/dm-block-manager.c b/drivers/md/persistent-data/dm-block-manager.c
index 0e010e120..da560f825 100644
--- a/drivers/md/persistent-data/dm-block-manager.c
+++ b/drivers/md/persistent-data/dm-block-manager.c
@@ -414,6 +414,17 @@ struct dm_block_manager *dm_block_manager_create(struct block_device *bdev,
}
EXPORT_SYMBOL_GPL(dm_block_manager_create);
+void dm_setup_bm_cache(struct dm_block_manager *bm, unsigned long block)
+{
+ dm_setup_buffer_cache(bm->bufio, block);
+}
+EXPORT_SYMBOL_GPL(dm_setup_bm_cache);
+
+void dm_move_bm_cache(struct dm_block_manager *bm, unsigned long block)
+{
+ dm_move_cache(bm->bufio, block);
+}
+
void dm_block_manager_destroy(struct dm_block_manager *bm)
{
dm_bufio_client_destroy(bm->bufio);
diff --git a/drivers/md/persistent-data/dm-block-manager.h b/drivers/md/persistent-data/dm-block-manager.h
index f706d3de8..25121bbc5 100644
--- a/drivers/md/persistent-data/dm-block-manager.h
+++ b/drivers/md/persistent-data/dm-block-manager.h
@@ -35,7 +35,9 @@ struct dm_block_manager;
struct dm_block_manager *dm_block_manager_create(
struct block_device *bdev, unsigned int block_size,
unsigned int max_held_per_thread);
+void dm_move_bm_cache(struct dm_block_manager *bm, unsigned long block);
void dm_block_manager_destroy(struct dm_block_manager *bm);
+void dm_setup_bm_cache(struct dm_block_manager *bm, unsigned long block);
void dm_block_manager_reset(struct dm_block_manager *bm);
unsigned int dm_bm_block_size(struct dm_block_manager *bm);
diff --git a/include/linux/dm-bufio.h b/include/linux/dm-bufio.h
index 75e7d8cbb..d7d7a33cc 100644
--- a/include/linux/dm-bufio.h
+++ b/include/linux/dm-bufio.h
@@ -71,6 +71,8 @@ void *dm_bufio_read(struct dm_bufio_client *c, sector_t block,
void *dm_bufio_get(struct dm_bufio_client *c, sector_t block,
struct dm_buffer **bp);
+void dm_setup_buffer_cache(struct dm_bufio_client *bc, unsigned long block);
+
/*
* Like dm_bufio_read, but don't read anything from the disk. It is
* expected that the caller initializes the buffer and marks it dirty.
@@ -139,6 +141,8 @@ int dm_bufio_issue_discard(struct dm_bufio_client *c, sector_t block, sector_t c
*/
void dm_bufio_forget(struct dm_bufio_client *c, sector_t block);
+void dm_move_cache(struct dm_bufio_client *bc, unsigned long block);
+
/*
* Free the given range of buffers.
* This is just a hint, if the buffer is in use or dirty, this function
--
2.43.0
2
1
[PATCH OLK-6.6] ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()
by Yongjian Sun 22 Dec '25
by Yongjian Sun 22 Dec '25
22 Dec '25
From: Alexey Nepomnyashih <sdl(a)nppct.ru>
mainline inclusion
from mainline-v6.19-rc1
commit 0cd8feea8777f8d9b9a862b89c688b049a5c8475
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDDF1F
CVE: CVE-2025-68261
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Fix a race between inline data destruction and block mapping.
The function ext4_destroy_inline_data_nolock() changes the inode data
layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS.
At the same time, another thread may execute ext4_map_blocks(), which
tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks()
or ext4_ind_map_blocks().
Without i_data_sem protection, ext4_ind_map_blocks() may receive inode
with EXT4_INODE_EXTENTS flag and triggering assert.
kernel BUG at fs/ext4/indirect.c:546!
EXT4-fs (loop2): unmounting filesystem.
invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546
Call Trace:
<TASK>
ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681
_ext4_get_block+0x242/0x590 fs/ext4/inode.c:822
ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124
ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255
ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000
generic_perform_write+0x259/0x5d0 mm/filemap.c:3846
ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285
ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679
call_write_iter include/linux/fs.h:2271 [inline]
do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735
do_iter_write+0x186/0x710 fs/read_write.c:861
vfs_iter_write+0x70/0xa0 fs/read_write.c:902
iter_file_splice_write+0x73b/0xc90 fs/splice.c:685
do_splice_from fs/splice.c:763 [inline]
direct_splice_actor+0x10f/0x170 fs/splice.c:950
splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896
do_splice_direct+0x1a9/0x280 fs/splice.c:1002
do_sendfile+0xb13/0x12c0 fs/read_write.c:1255
__do_sys_sendfile64 fs/read_write.c:1323 [inline]
__se_sys_sendfile64 fs/read_write.c:1309 [inline]
__x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x6e/0xd8
Fixes: c755e251357a ("ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea()")
Cc: stable(a)vger.kernel.org # v4.11+
Signed-off-by: Alexey Nepomnyashih <sdl(a)nppct.ru>
Message-ID: <20251104093326.697381-1-sdl(a)nppct.ru>
Signed-off-by: Theodore Ts'o <tytso(a)mit.edu>
Signed-off-by: Yongjian Sun <sunyongjian1(a)huawei.com>
---
fs/ext4/inline.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index 5fa1dd58ac42..bc6960c30a03 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -441,9 +441,13 @@ static int ext4_destroy_inline_data_nolock(handle_t *handle,
if (!ei->i_inline_off)
return 0;
+ down_write(&ei->i_data_sem);
+
error = ext4_get_inode_loc(inode, &is.iloc);
- if (error)
+ if (error) {
+ up_write(&ei->i_data_sem);
return error;
+ }
error = ext4_xattr_ibody_find(inode, &i, &is);
if (error)
@@ -482,6 +486,7 @@ static int ext4_destroy_inline_data_nolock(handle_t *handle,
brelse(is.iloc.bh);
if (error == -ENODATA)
error = 0;
+ up_write(&ei->i_data_sem);
return error;
}
--
2.39.2
2
1
22 Dec '25
From: Deepanshu Kartikey <kartikey406(a)gmail.com>
mainline inclusion
from mainline-v6.19-rc1
commit 892e1cf17555735e9d021ab036c36bc7b58b0e3b
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDDF27
CVE: CVE-2025-68264
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
The cached ei->i_inline_size can become stale between the initial size
check and when ext4_update_inline_data()/ext4_create_inline_data() use
it. Although ext4_get_max_inline_size() reads the correct value at the
time of the check, concurrent xattr operations can modify i_inline_size
before ext4_write_lock_xattr() is acquired.
This causes ext4_update_inline_data() and ext4_create_inline_data() to
work with stale capacity values, leading to a BUG_ON() crash in
ext4_write_inline_data():
kernel BUG at fs/ext4/inline.c:1331!
BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);
The race window:
1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct)
2. Size check passes for 50-byte write
3. [Another thread adds xattr, i_inline_size changes to 40]
4. ext4_write_lock_xattr() acquires lock
5. ext4_update_inline_data() uses stale i_inline_size = 60
6. Attempts to write 50 bytes but only 40 bytes actually available
7. BUG_ON() triggers
Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock()
immediately after acquiring xattr_sem. This ensures ext4_update_inline_data()
and ext4_create_inline_data() work with current values that are protected
from concurrent modifications.
This is similar to commit a54c4613dac1 ("ext4: fix race writing to an
inline_data file while its xattrs are changing") which fixed i_inline_off
staleness. This patch addresses the related i_inline_size staleness issue.
Reported-by: syzbot+f3185be57d7e8dda32b8(a)syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?extid=f3185be57d7e8dda32b8
Cc: stable(a)kernel.org
Signed-off-by: Deepanshu Kartikey <kartikey406(a)gmail.com>
Message-ID: <20251020060936.474314-1-kartikey406(a)gmail.com>
Signed-off-by: Theodore Ts'o <tytso(a)mit.edu>
Signed-off-by: Yongjian Sun <sunyongjian1(a)huawei.com>
---
fs/ext4/inline.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index bc6960c30a03..0cb175a1abe0 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -413,7 +413,12 @@ static int ext4_prepare_inline_data(handle_t *handle, struct inode *inode,
return -ENOSPC;
ext4_write_lock_xattr(inode, &no_expand);
-
+ /*
+ * ei->i_inline_size may have changed since the initial check
+ * if other xattrs were added. Recalculate to ensure
+ * ext4_update_inline_data() validates against current capacity.
+ */
+ (void) ext4_find_inline_data_nolock(inode);
if (ei->i_inline_off)
ret = ext4_update_inline_data(handle, inode, len);
else
--
2.39.2
2
1
[PATCH OLK-6.6] fs: ext4: change GFP_KERNEL to GFP_NOFS to avoid deadlock
by Yongjian Sun 22 Dec '25
by Yongjian Sun 22 Dec '25
22 Dec '25
From: chuguangqing <chuguangqing(a)inspur.com>
mainline inclusion
from mainline-v6.18-rc1
commit 1534f72dc2a11ded38b0e0268fbcc0ca24e9fd4a
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDDEUI
CVE: CVE-2025-40361
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
The parent function ext4_xattr_inode_lookup_create already uses GFP_NOFS for memory alloction, so the function ext4_xattr_inode_cache_find should use same gfp_flag.
Signed-off-by: chuguangqing <chuguangqing(a)inspur.com>
Signed-off-by: Theodore Ts'o <tytso(a)mit.edu>
Signed-off-by: Yongjian Sun <sunyongjian1(a)huawei.com>
---
fs/ext4/xattr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 5009fdcfe150..cd906aa08afa 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1549,7 +1549,7 @@ ext4_xattr_inode_cache_find(struct inode *inode, const void *value,
WARN_ON_ONCE(ext4_handle_valid(journal_current_handle()) &&
!(current->flags & PF_MEMALLOC_NOFS));
- ea_data = kvmalloc(value_len, GFP_KERNEL);
+ ea_data = kvmalloc(value_len, GFP_NOFS);
if (!ea_data) {
mb_cache_entry_put(ea_inode_cache, ce);
return NULL;
--
2.39.2
2
1
[PATCH OLK-6.6] hfsplus: fix KMSAN uninit-value issue in hfsplus_delete_cat()
by Yongjian Sun 22 Dec '25
by Yongjian Sun 22 Dec '25
22 Dec '25
From: Viacheslav Dubeyko <slava(a)dubeyko.com>
mainline inclusion
from mainline-v6.18-rc1
commit 9b3d15a758910bb98ba8feb4109d99cc67450ee4
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IDDEVH
CVE: CVE-2025-40351
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
The syzbot reported issue in hfsplus_delete_cat():
[ 70.682285][ T9333] =====================================================
[ 70.682943][ T9333] BUG: KMSAN: uninit-value in hfsplus_subfolders_dec+0x1d7/0x220
[ 70.683640][ T9333] hfsplus_subfolders_dec+0x1d7/0x220
[ 70.684141][ T9333] hfsplus_delete_cat+0x105d/0x12b0
[ 70.684621][ T9333] hfsplus_rmdir+0x13d/0x310
[ 70.685048][ T9333] vfs_rmdir+0x5ba/0x810
[ 70.685447][ T9333] do_rmdir+0x964/0xea0
[ 70.685833][ T9333] __x64_sys_rmdir+0x71/0xb0
[ 70.686260][ T9333] x64_sys_call+0xcd8/0x3cf0
[ 70.686695][ T9333] do_syscall_64+0xd9/0x1d0
[ 70.687119][ T9333] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 70.687646][ T9333]
[ 70.687856][ T9333] Uninit was stored to memory at:
[ 70.688311][ T9333] hfsplus_subfolders_inc+0x1c2/0x1d0
[ 70.688779][ T9333] hfsplus_create_cat+0x148e/0x1800
[ 70.689231][ T9333] hfsplus_mknod+0x27f/0x600
[ 70.689730][ T9333] hfsplus_mkdir+0x5a/0x70
[ 70.690146][ T9333] vfs_mkdir+0x483/0x7a0
[ 70.690545][ T9333] do_mkdirat+0x3f2/0xd30
[ 70.690944][ T9333] __x64_sys_mkdir+0x9a/0xf0
[ 70.691380][ T9333] x64_sys_call+0x2f89/0x3cf0
[ 70.691816][ T9333] do_syscall_64+0xd9/0x1d0
[ 70.692229][ T9333] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 70.692773][ T9333]
[ 70.692990][ T9333] Uninit was stored to memory at:
[ 70.693469][ T9333] hfsplus_subfolders_inc+0x1c2/0x1d0
[ 70.693960][ T9333] hfsplus_create_cat+0x148e/0x1800
[ 70.694438][ T9333] hfsplus_fill_super+0x21c1/0x2700
[ 70.694911][ T9333] mount_bdev+0x37b/0x530
[ 70.695320][ T9333] hfsplus_mount+0x4d/0x60
[ 70.695729][ T9333] legacy_get_tree+0x113/0x2c0
[ 70.696167][ T9333] vfs_get_tree+0xb3/0x5c0
[ 70.696588][ T9333] do_new_mount+0x73e/0x1630
[ 70.697013][ T9333] path_mount+0x6e3/0x1eb0
[ 70.697425][ T9333] __se_sys_mount+0x733/0x830
[ 70.697857][ T9333] __x64_sys_mount+0xe4/0x150
[ 70.698269][ T9333] x64_sys_call+0x2691/0x3cf0
[ 70.698704][ T9333] do_syscall_64+0xd9/0x1d0
[ 70.699117][ T9333] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 70.699730][ T9333]
[ 70.699946][ T9333] Uninit was created at:
[ 70.700378][ T9333] __alloc_pages_noprof+0x714/0xe60
[ 70.700843][ T9333] alloc_pages_mpol_noprof+0x2a2/0x9b0
[ 70.701331][ T9333] alloc_pages_noprof+0xf8/0x1f0
[ 70.701774][ T9333] allocate_slab+0x30e/0x1390
[ 70.702194][ T9333] ___slab_alloc+0x1049/0x33a0
[ 70.702635][ T9333] kmem_cache_alloc_lru_noprof+0x5ce/0xb20
[ 70.703153][ T9333] hfsplus_alloc_inode+0x5a/0xd0
[ 70.703598][ T9333] alloc_inode+0x82/0x490
[ 70.703984][ T9333] iget_locked+0x22e/0x1320
[ 70.704428][ T9333] hfsplus_iget+0x5c/0xba0
[ 70.704827][ T9333] hfsplus_btree_open+0x135/0x1dd0
[ 70.705291][ T9333] hfsplus_fill_super+0x1132/0x2700
[ 70.705776][ T9333] mount_bdev+0x37b/0x530
[ 70.706171][ T9333] hfsplus_mount+0x4d/0x60
[ 70.706579][ T9333] legacy_get_tree+0x113/0x2c0
[ 70.707019][ T9333] vfs_get_tree+0xb3/0x5c0
[ 70.707444][ T9333] do_new_mount+0x73e/0x1630
[ 70.707865][ T9333] path_mount+0x6e3/0x1eb0
[ 70.708270][ T9333] __se_sys_mount+0x733/0x830
[ 70.708711][ T9333] __x64_sys_mount+0xe4/0x150
[ 70.709158][ T9333] x64_sys_call+0x2691/0x3cf0
[ 70.709630][ T9333] do_syscall_64+0xd9/0x1d0
[ 70.710053][ T9333] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 70.710611][ T9333]
[ 70.710842][ T9333] CPU: 3 UID: 0 PID: 9333 Comm: repro Not tainted 6.12.0-rc6-dirty #17
[ 70.711568][ T9333] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[ 70.712490][ T9333] =====================================================
[ 70.713085][ T9333] Disabling lock debugging due to kernel taint
[ 70.713618][ T9333] Kernel panic - not syncing: kmsan.panic set ...
[ 70.714159][ T9333] CPU: 3 UID: 0 PID: 9333 Comm: repro Tainted: G B 6.12.0-rc6-dirty #17
[ 70.715007][ T9333] Tainted: [B]=BAD_PAGE
[ 70.715365][ T9333] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[ 70.716311][ T9333] Call Trace:
[ 70.716621][ T9333] <TASK>
[ 70.716899][ T9333] dump_stack_lvl+0x1fd/0x2b0
[ 70.717350][ T9333] dump_stack+0x1e/0x30
[ 70.717743][ T9333] panic+0x502/0xca0
[ 70.718116][ T9333] ? kmsan_get_metadata+0x13e/0x1c0
[ 70.718611][ T9333] kmsan_report+0x296/0x2a0
[ 70.719038][ T9333] ? __msan_metadata_ptr_for_load_4+0x24/0x40
[ 70.719859][ T9333] ? __msan_warning+0x96/0x120
[ 70.720345][ T9333] ? hfsplus_subfolders_dec+0x1d7/0x220
[ 70.720881][ T9333] ? hfsplus_delete_cat+0x105d/0x12b0
[ 70.721412][ T9333] ? hfsplus_rmdir+0x13d/0x310
[ 70.721880][ T9333] ? vfs_rmdir+0x5ba/0x810
[ 70.722458][ T9333] ? do_rmdir+0x964/0xea0
[ 70.722883][ T9333] ? __x64_sys_rmdir+0x71/0xb0
[ 70.723397][ T9333] ? x64_sys_call+0xcd8/0x3cf0
[ 70.723915][ T9333] ? do_syscall_64+0xd9/0x1d0
[ 70.724454][ T9333] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 70.725110][ T9333] ? vprintk_emit+0xd1f/0xe60
[ 70.725616][ T9333] ? vprintk_default+0x3f/0x50
[ 70.726175][ T9333] ? vprintk+0xce/0xd0
[ 70.726628][ T9333] ? _printk+0x17e/0x1b0
[ 70.727129][ T9333] ? __msan_metadata_ptr_for_load_4+0x24/0x40
[ 70.727739][ T9333] ? kmsan_get_metadata+0x13e/0x1c0
[ 70.728324][ T9333] __msan_warning+0x96/0x120
[ 70.728854][ T9333] hfsplus_subfolders_dec+0x1d7/0x220
[ 70.729479][ T9333] hfsplus_delete_cat+0x105d/0x12b0
[ 70.729984][ T9333] ? kmsan_get_shadow_origin_ptr+0x4a/0xb0
[ 70.730646][ T9333] ? __msan_metadata_ptr_for_load_4+0x24/0x40
[ 70.731296][ T9333] ? kmsan_get_metadata+0x13e/0x1c0
[ 70.731863][ T9333] hfsplus_rmdir+0x13d/0x310
[ 70.732390][ T9333] ? __pfx_hfsplus_rmdir+0x10/0x10
[ 70.732919][ T9333] vfs_rmdir+0x5ba/0x810
[ 70.733416][ T9333] ? kmsan_get_shadow_origin_ptr+0x4a/0xb0
[ 70.734044][ T9333] do_rmdir+0x964/0xea0
[ 70.734537][ T9333] __x64_sys_rmdir+0x71/0xb0
[ 70.735032][ T9333] x64_sys_call+0xcd8/0x3cf0
[ 70.735579][ T9333] do_syscall_64+0xd9/0x1d0
[ 70.736092][ T9333] ? irqentry_exit+0x16/0x60
[ 70.736637][ T9333] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 70.737269][ T9333] RIP: 0033:0x7fa9424eafc9
[ 70.737775][ T9333] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 48
[ 70.739844][ T9333] RSP: 002b:00007fff099cd8d8 EFLAGS: 00000202 ORIG_RAX: 0000000000000054
[ 70.740760][ T9333] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fa9424eafc9
[ 70.741642][ T9333] RDX: 006c6f72746e6f63 RSI: 000000000000000a RDI: 0000000020000100
[ 70.742543][ T9333] RBP: 00007fff099cd8e0 R08: 00007fff099cd910 R09: 00007fff099cd910
[ 70.743376][ T9333] R10: 0000000000000000 R11: 0000000000000202 R12: 0000565430642260
[ 70.744247][ T9333] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 70.745082][ T9333] </TASK>
The main reason of the issue that struct hfsplus_inode_info
has not been properly initialized for the case of root folder.
In the case of root folder, hfsplus_fill_super() calls
the hfsplus_iget() that implements only partial initialization of
struct hfsplus_inode_info and subfolders field is not
initialized by hfsplus_iget() logic.
This patch implements complete initialization of
struct hfsplus_inode_info in the hfsplus_iget() logic with
the goal to prevent likewise issues for the case of
root folder.
Reported-by: syzbot <syzbot+fdedff847a0e5e84c39f(a)syzkaller.appspotmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=fdedff847a0e5e84c39f
Signed-off-by: Viacheslav Dubeyko <slava(a)dubeyko.com>
cc: John Paul Adrian Glaubitz <glaubitz(a)physik.fu-berlin.de>
cc: Yangtao Li <frank.li(a)vivo.com>
cc: linux-fsdevel(a)vger.kernel.org
Link: https://lore.kernel.org/r/20250825225103.326401-1-slava@dubeyko.com
Signed-off-by: Viacheslav Dubeyko <slava(a)dubeyko.com>
Signed-off-by: Yongjian Sun <sunyongjian1(a)huawei.com>
---
fs/hfsplus/super.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index 1986b4f18a90..8c086f16dd58 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -67,13 +67,26 @@ struct inode *hfsplus_iget(struct super_block *sb, unsigned long ino)
if (!(inode->i_state & I_NEW))
return inode;
- INIT_LIST_HEAD(&HFSPLUS_I(inode)->open_dir_list);
- spin_lock_init(&HFSPLUS_I(inode)->open_dir_lock);
- mutex_init(&HFSPLUS_I(inode)->extents_lock);
- HFSPLUS_I(inode)->flags = 0;
+ atomic_set(&HFSPLUS_I(inode)->opencnt, 0);
+ HFSPLUS_I(inode)->first_blocks = 0;
+ HFSPLUS_I(inode)->clump_blocks = 0;
+ HFSPLUS_I(inode)->alloc_blocks = 0;
+ HFSPLUS_I(inode)->cached_start = U32_MAX;
+ HFSPLUS_I(inode)->cached_blocks = 0;
+ memset(HFSPLUS_I(inode)->first_extents, 0, sizeof(hfsplus_extent_rec));
+ memset(HFSPLUS_I(inode)->cached_extents, 0, sizeof(hfsplus_extent_rec));
HFSPLUS_I(inode)->extent_state = 0;
+ mutex_init(&HFSPLUS_I(inode)->extents_lock);
HFSPLUS_I(inode)->rsrc_inode = NULL;
- atomic_set(&HFSPLUS_I(inode)->opencnt, 0);
+ HFSPLUS_I(inode)->create_date = 0;
+ HFSPLUS_I(inode)->linkid = 0;
+ HFSPLUS_I(inode)->flags = 0;
+ HFSPLUS_I(inode)->fs_blocks = 0;
+ HFSPLUS_I(inode)->userflags = 0;
+ HFSPLUS_I(inode)->subfolders = 0;
+ INIT_LIST_HEAD(&HFSPLUS_I(inode)->open_dir_list);
+ spin_lock_init(&HFSPLUS_I(inode)->open_dir_lock);
+ HFSPLUS_I(inode)->phys_size = 0;
if (inode->i_ino >= HFSPLUS_FIRSTUSER_CNID ||
inode->i_ino == HFSPLUS_ROOT_CNID) {
--
2.39.2
2
1
[openeuler:OLK-6.6 3544/3544] fs/userfaultfd.c:1809:23: sparse: sparse: invalid assignment: |=
by kernel test robot 22 Dec '25
by kernel test robot 22 Dec '25
22 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 0214feb8f616acf62f9a6a2a131f0a1479b2b8af [3544/3544] mm/userswap: introduce UFFDIO_COPY_MODE_DIRECT_MAP
config: x86_64-randconfig-122-20251215 (https://download.01.org/0day-ci/archive/20251222/202512221517.71VoHBnY-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251222/202512221517.71VoHBnY-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/202512221517.71VoHBnY-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> fs/userfaultfd.c:1809:23: sparse: sparse: invalid assignment: |=
fs/userfaultfd.c:1809:23: sparse: left side has type restricted uffd_flags_t
fs/userfaultfd.c:1809:23: sparse: right side has type int
fs/userfaultfd.c: note: in included file (through arch/x86/include/asm/tlbflush.h, arch/x86/include/asm/uaccess.h, include/linux/uaccess.h, ...):
arch/x86/include/asm/pgtable.h:178:44: sparse: sparse: context imbalance in 'handle_userfault' - unexpected unlock
vim +1809 fs/userfaultfd.c
1769
1770 static int userfaultfd_copy(struct userfaultfd_ctx *ctx,
1771 unsigned long arg)
1772 {
1773 __s64 ret;
1774 struct uffdio_copy uffdio_copy;
1775 struct uffdio_copy __user *user_uffdio_copy;
1776 struct userfaultfd_wake_range range;
1777 uffd_flags_t flags = 0;
1778
1779 user_uffdio_copy = (struct uffdio_copy __user *) arg;
1780
1781 ret = -EAGAIN;
1782 if (atomic_read(&ctx->mmap_changing))
1783 goto out;
1784
1785 ret = -EFAULT;
1786 if (copy_from_user(&uffdio_copy, user_uffdio_copy,
1787 /* don't copy "copy" last field */
1788 sizeof(uffdio_copy)-sizeof(__s64)))
1789 goto out;
1790
1791 ret = validate_unaligned_range(ctx->mm, uffdio_copy.src,
1792 uffdio_copy.len);
1793 if (ret)
1794 goto out;
1795 ret = validate_range(ctx->mm, uffdio_copy.dst, uffdio_copy.len);
1796 if (ret)
1797 goto out;
1798
1799 ret = -EINVAL;
1800 if (uffdio_copy.mode & ~(UFFDIO_COPY_MODE_DONTWAKE |
1801 UFFDIO_COPY_MODE_WP |
1802 IS_ENABLED(CONFIG_USERSWAP) ?
1803 UFFDIO_COPY_MODE_DIRECT_MAP : 0))
1804 goto out;
1805 if (uffdio_copy.mode & UFFDIO_COPY_MODE_WP)
1806 flags |= MFILL_ATOMIC_WP;
1807 if (IS_ENABLED(CONFIG_USERSWAP) &&
1808 (uffdio_copy.mode & UFFDIO_COPY_MODE_DIRECT_MAP))
> 1809 flags |= MFILL_ATOMIC_DIRECT_MAP;
1810 if (mmget_not_zero(ctx->mm)) {
1811 ret = mfill_atomic_copy(ctx->mm, uffdio_copy.dst, uffdio_copy.src,
1812 uffdio_copy.len, &ctx->mmap_changing,
1813 flags);
1814 mmput(ctx->mm);
1815 } else {
1816 return -ESRCH;
1817 }
1818 if (unlikely(put_user(ret, &user_uffdio_copy->copy)))
1819 return -EFAULT;
1820 if (ret < 0)
1821 goto out;
1822 BUG_ON(!ret);
1823 /* len == 0 would wake all */
1824 range.len = ret;
1825 if (!(uffdio_copy.mode & UFFDIO_COPY_MODE_DONTWAKE)) {
1826 range.start = uffdio_copy.dst;
1827 wake_userfault(ctx, &range);
1828 }
1829 ret = range.len == uffdio_copy.len ? 0 : -EAGAIN;
1830 out:
1831 return ret;
1832 }
1833
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
From: Vladimir Riabchun <ferr.lambarginio(a)gmail.com>
stable inclusion
from stable-v6.6.119
commit e81e6d6d99b16dae11adbeda5c996317942a940c
category: bugfix
bugzilla: http://atomgit.com/src-openeuler/kernel/issues/11609
CVE: CVE-2025-68173
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 4099b98203d6b33d990586542fa5beee408032a3 ]
A soft lockup was observed when loading amdgpu module.
If a module has a lot of tracable functions, multiple calls
to kallsyms_lookup can spend too much time in RCU critical
section and with disabled preemption, causing kernel panic.
This is the same issue that was fixed in
commit d0b24b4e91fc ("ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY
kernels") and commit 42ea22e754ba ("ftrace: Add cond_resched() to
ftrace_graph_set_hash()").
Fix it the same way by adding cond_resched() in ftrace_module_enable.
Link: https://lore.kernel.org/aMQD9_lxYmphT-up@vova-pc
Signed-off-by: Vladimir Riabchun <ferr.lambarginio(a)gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt(a)goodmis.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Tengda Wu <wutengda2(a)huawei.com>
---
kernel/trace/ftrace.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 15785a729a0c..398992597685 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -6873,6 +6873,8 @@ void ftrace_module_enable(struct module *mod)
if (!within_module(rec->ip, mod))
break;
+ cond_resched();
+
/* Weak functions should still be ignored */
if (!test_for_valid_rec(rec)) {
/* Clear all other flags. Should not be enabled anyway */
--
2.34.1
2
1
Patch #1 is the prerequisite patch, and Patch #2 fixes CVE-2025-39810.
Michael Chan (1):
[Backport] bnxt_en: Fix possible crash after creating sw mqprio TCs
Sreekanth Reddy (1):
[Backport] bnxt_en: Fix memory corruption when FW resources change
during ifdown
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 34 ++++++++++++++-----
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 +
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c | 2 +-
.../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 +--
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 2 +-
5 files changed, 30 insertions(+), 13 deletions(-)
--
2.34.1
2
3
hulk inclusion
category: bugfix
bugzilla: https://atomgit.com/openeuler/kernel/issues/8282
--------------------------------
L3t is only work with specific cpus, now add checker during init
to make sure this is enabled with specific cpus.
Fixes: c40d971092ff ("hisi: l3t: Add L3 cache driver for hisi")
Signed-off-by: Wupeng Ma <mawupeng1(a)huawei.com>
---
arch/arm64/include/asm/cputype.h | 2 ++
drivers/soc/hisilicon/l3t.c | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
index b3b1977e9980..ca90d0e13ad6 100644
--- a/arch/arm64/include/asm/cputype.h
+++ b/arch/arm64/include/asm/cputype.h
@@ -113,6 +113,7 @@
#define HISI_CPU_PART_TSV110 0xD01
#define HISI_CPU_PART_TSV200 0xD02
#define HISI_CPU_PART_LINXICORE9100 0xD02
+#define HISI_CPU_PART_HIP10 0xD03
#define PHYTIUM_CPU_PART_1500A 0X660
#define PHYTIUM_CPU_PART_2000AHK 0X661
@@ -165,6 +166,7 @@
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
#define MIDR_HISI_TSV200 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV200)
+#define MIDR_HISI_HIP10 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP10)
#define MIDR_HISI_LINXICORE9100 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_LINXICORE9100)
#define MIDR_FT_1500A MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_1500A)
#define MIDR_FT_2000AHK MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_2000AHK)
diff --git a/drivers/soc/hisilicon/l3t.c b/drivers/soc/hisilicon/l3t.c
index 35106e091098..69e65d659a35 100644
--- a/drivers/soc/hisilicon/l3t.c
+++ b/drivers/soc/hisilicon/l3t.c
@@ -264,6 +264,14 @@ static struct platform_driver hisi_l3t_driver = {
static int __init hisi_l3t_init(void)
{
+ static const struct midr_range l3t_support_list[] = {
+ MIDR_ALL_VERSIONS(MIDR_HISI_TSV200),
+ MIDR_ALL_VERSIONS(MIDR_HISI_HIP10),
+ {}
+ };
+ if (!is_midr_in_range_list(read_cpuid_id(), l3t_support_list))
+ return -ENODEV;
+
mutex_init(&l3t_mutex);
xa_init(&l3t_mapping);
--
2.43.0
2
1
[PATCH OLK-6.6] timers: Fix NULL function pointer race in timer_shutdown_sync()
by Jinjie Ruan 22 Dec '25
by Jinjie Ruan 22 Dec '25
22 Dec '25
From: Yipeng Zou <zouyipeng(a)huawei.com>
stable inclusion
from stable-v6.6.118
commit 6665fbd7730b26d770c232b20d1b907e6a67a914
category: bugfix
bugzilla: https://gitcode.com/src-openeuler/kernel/issues/11566
CVE: CVE-2025-68214
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 20739af07383e6eb1ec59dcd70b72ebfa9ac362c upstream.
There is a race condition between timer_shutdown_sync() and timer
expiration that can lead to hitting a WARN_ON in expire_timers().
The issue occurs when timer_shutdown_sync() clears the timer function
to NULL while the timer is still running on another CPU. The race
scenario looks like this:
CPU0 CPU1
<SOFTIRQ>
lock_timer_base()
expire_timers()
base->running_timer = timer;
unlock_timer_base()
[call_timer_fn enter]
mod_timer()
...
timer_shutdown_sync()
lock_timer_base()
// For now, will not detach the timer but only clear its function to NULL
if (base->running_timer != timer)
ret = detach_if_pending(timer, base, true);
if (shutdown)
timer->function = NULL;
unlock_timer_base()
[call_timer_fn exit]
lock_timer_base()
base->running_timer = NULL;
unlock_timer_base()
...
// Now timer is pending while its function set to NULL.
// next timer trigger
<SOFTIRQ>
expire_timers()
WARN_ON_ONCE(!fn) // hit
...
lock_timer_base()
// Now timer will detach
if (base->running_timer != timer)
ret = detach_if_pending(timer, base, true);
if (shutdown)
timer->function = NULL;
unlock_timer_base()
The problem is that timer_shutdown_sync() clears the timer function
regardless of whether the timer is currently running. This can leave a
pending timer with a NULL function pointer, which triggers the
WARN_ON_ONCE(!fn) check in expire_timers().
Fix this by only clearing the timer function when actually detaching the
timer. If the timer is running, leave the function pointer intact, which is
safe because the timer will be properly detached when it finishes running.
Fixes: 0cc04e80458a ("timers: Add shutdown mechanism to the internal functions")
Signed-off-by: Yipeng Zou <zouyipeng(a)huawei.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20251122093942.301559-1-zouyipeng@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Jinjie Ruan <ruanjinjie(a)huawei.com>
---
kernel/time/timer.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 63a8ce7177dd..4a2aeaa85af3 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1413,10 +1413,11 @@ static int __try_to_del_timer_sync(struct timer_list *timer, bool shutdown)
base = lock_timer_base(timer, &flags);
- if (base->running_timer != timer)
+ if (base->running_timer != timer) {
ret = detach_if_pending(timer, base, true);
- if (shutdown)
- timer->function = NULL;
+ if (shutdown)
+ timer->function = NULL;
+ }
raw_spin_unlock_irqrestore(&base->lock, flags);
--
2.34.1
2
1
hulk inclusion
category: bugfix
bugzilla: https://gitcode.com/openeuler/kernel/issues/8282
--------------------------------
L3t is only work with specific cpus, now add checker during init
to make sure this is enabled with specific cpus.
Fixes: c40d971092ff ("hisi: l3t: Add L3 cache driver for hisi")
Signed-off-by: Wupeng Ma <mawupeng1(a)huawei.com>
---
arch/arm64/include/asm/cputype.h | 2 ++
drivers/soc/hisilicon/l3t.c | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/arch/arm64/include/asm/cputype.h b/arch/arm64/include/asm/cputype.h
index b3b1977e9980..ca90d0e13ad6 100644
--- a/arch/arm64/include/asm/cputype.h
+++ b/arch/arm64/include/asm/cputype.h
@@ -113,6 +113,7 @@
#define HISI_CPU_PART_TSV110 0xD01
#define HISI_CPU_PART_TSV200 0xD02
#define HISI_CPU_PART_LINXICORE9100 0xD02
+#define HISI_CPU_PART_HIP10 0xD03
#define PHYTIUM_CPU_PART_1500A 0X660
#define PHYTIUM_CPU_PART_2000AHK 0X661
@@ -165,6 +166,7 @@
#define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
#define MIDR_HISI_TSV200 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV200)
+#define MIDR_HISI_HIP10 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP10)
#define MIDR_HISI_LINXICORE9100 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_LINXICORE9100)
#define MIDR_FT_1500A MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_1500A)
#define MIDR_FT_2000AHK MIDR_CPU_MODEL(ARM_CPU_IMP_PHYTIUM, PHYTIUM_CPU_PART_2000AHK)
diff --git a/drivers/soc/hisilicon/l3t.c b/drivers/soc/hisilicon/l3t.c
index 35106e091098..69e65d659a35 100644
--- a/drivers/soc/hisilicon/l3t.c
+++ b/drivers/soc/hisilicon/l3t.c
@@ -264,6 +264,14 @@ static struct platform_driver hisi_l3t_driver = {
static int __init hisi_l3t_init(void)
{
+ static const struct midr_range l3t_support_list[] = {
+ MIDR_ALL_VERSIONS(MIDR_HISI_TSV200),
+ MIDR_ALL_VERSIONS(MIDR_HISI_HIP10),
+ {}
+ };
+ if (!is_midr_in_range_list(read_cpuid_id(), l3t_support_list))
+ return -ENODEV;
+
mutex_init(&l3t_mutex);
xa_init(&l3t_mapping);
--
2.43.0
2
1
From: "Chang S. Bae" <chang.seok.bae(a)intel.com>
stable inclusion
from stable-v6.6.117
commit 1811c610653c0cd21cc9add14595b7cffaeca511
category: bugfix
bugzilla: https://gitcode.com/src-openeuler/kernel/issues/11604
CVE: CVE-2025-68171
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 388eff894d6bc5f921e9bfff0e4b0ab2684a96e9 upstream.
Sean reported [1] the following splat when running KVM tests:
WARNING: CPU: 232 PID: 15391 at xfd_validate_state+0x65/0x70
Call Trace:
<TASK>
fpu__clear_user_states+0x9c/0x100
arch_do_signal_or_restart+0x142/0x210
exit_to_user_mode_loop+0x55/0x100
do_syscall_64+0x205/0x2c0
entry_SYSCALL_64_after_hwframe+0x4b/0x53
Chao further identified [2] a reproducible scenario involving signal
delivery: a non-AMX task is preempted by an AMX-enabled task which
modifies the XFD MSR.
When the non-AMX task resumes and reloads XSTATE with init values,
a warning is triggered due to a mismatch between fpstate::xfd and the
CPU's current XFD state. fpu__clear_user_states() does not currently
re-synchronize the XFD state after such preemption.
Invoke xfd_update_state() which detects and corrects the mismatch if
there is a dynamic feature.
This also benefits the sigreturn path, as fpu__restore_sig() may call
fpu__clear_user_states() when the sigframe is inaccessible.
[ dhansen: minor changelog munging ]
Closes: https://lore.kernel.org/lkml/aDCo_SczQOUaB2rS@google.com [1]
Fixes: 672365477ae8a ("x86/fpu: Update XFD state where required")
Reported-by: Sean Christopherson <seanjc(a)google.com>
Signed-off-by: Chang S. Bae <chang.seok.bae(a)intel.com>
Signed-off-by: Dave Hansen <dave.hansen(a)linux.intel.com>
Reviewed-by: Chao Gao <chao.gao(a)intel.com>
Tested-by: Chao Gao <chao.gao(a)intel.com>
Link: https://lore.kernel.org/all/aDWbctO%2FRfTGiCg3@intel.com [2]
Cc:stable@vger.kernel.org
Link: https://patch.msgid.link/20250610001700.4097-1-chang.seok.bae%40intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zhang Kunbo <zhangkunbo(a)huawei.com>
---
arch/x86/kernel/fpu/core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index 9a31f3db713c..1f0871be9d53 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -865,6 +865,9 @@ void fpu__clear_user_states(struct fpu *fpu)
!fpregs_state_valid(fpu, smp_processor_id()))
os_xrstor_supervisor(fpu->fpstate);
+ /* Ensure XFD state is in sync before reloading XSTATE */
+ xfd_update_state(fpu->fpstate);
+
/* Reset user states in registers. */
restore_fpregs_from_init_fpstate(XFEATURE_MASK_USER_RESTORE);
--
2.34.1
2
1
From: "Chang S. Bae" <chang.seok.bae(a)intel.com>
stable inclusion
from stable-v6.6.117
commit 1811c610653c0cd21cc9add14595b7cffaeca511
category: bugfix
bugzilla: https://gitcode.com/src-openeuler/kernel/issues/11604
CVE: CVE-2025-68171
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 388eff894d6bc5f921e9bfff0e4b0ab2684a96e9 upstream.
Sean reported [1] the following splat when running KVM tests:
WARNING: CPU: 232 PID: 15391 at xfd_validate_state+0x65/0x70
Call Trace:
<TASK>
fpu__clear_user_states+0x9c/0x100
arch_do_signal_or_restart+0x142/0x210
exit_to_user_mode_loop+0x55/0x100
do_syscall_64+0x205/0x2c0
entry_SYSCALL_64_after_hwframe+0x4b/0x53
Chao further identified [2] a reproducible scenario involving signal
delivery: a non-AMX task is preempted by an AMX-enabled task which
modifies the XFD MSR.
When the non-AMX task resumes and reloads XSTATE with init values,
a warning is triggered due to a mismatch between fpstate::xfd and the
CPU's current XFD state. fpu__clear_user_states() does not currently
re-synchronize the XFD state after such preemption.
Invoke xfd_update_state() which detects and corrects the mismatch if
there is a dynamic feature.
This also benefits the sigreturn path, as fpu__restore_sig() may call
fpu__clear_user_states() when the sigframe is inaccessible.
[ dhansen: minor changelog munging ]
Closes: https://lore.kernel.org/lkml/aDCo_SczQOUaB2rS@google.com [1]
Fixes: 672365477ae8a ("x86/fpu: Update XFD state where required")
Reported-by: Sean Christopherson <seanjc(a)google.com>
Signed-off-by: Chang S. Bae <chang.seok.bae(a)intel.com>
Signed-off-by: Dave Hansen <dave.hansen(a)linux.intel.com>
Reviewed-by: Chao Gao <chao.gao(a)intel.com>
Tested-by: Chao Gao <chao.gao(a)intel.com>
Link: https://lore.kernel.org/all/aDWbctO%2FRfTGiCg3@intel.com [2]
Cc:stable@vger.kernel.org
Link: https://patch.msgid.link/20250610001700.4097-1-chang.seok.bae%40intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zhang Kunbo <zhangkunbo(a)huawei.com>
---
arch/x86/kernel/fpu/core.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
index e0aa2dfb89d1..1885c45fa6eb 100644
--- a/arch/x86/kernel/fpu/core.c
+++ b/arch/x86/kernel/fpu/core.c
@@ -809,6 +809,9 @@ void fpu__clear_user_states(struct fpu *fpu)
!fpregs_state_valid(fpu, smp_processor_id()))
os_xrstor_supervisor(fpu->fpstate);
+ /* Ensure XFD state is in sync before reloading XSTATE */
+ xfd_update_state(fpu->fpstate);
+
/* Reset user states in registers. */
restore_fpregs_from_init_fpstate(XFEATURE_MASK_USER_RESTORE);
--
2.34.1
2
1