Kernel
Threads by month
- ----- 2025 -----
- 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
- 43 participants
- 20350 discussions
Shin'ichiro Kawasaki (1):
RDMA/iwcm: Fix use-after-free of work objects after cm_id destruction
drivers/infiniband/core/iwcm.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
--
2.43.0
1
1
Bui Quang Minh (1):
virtio-net: ensure the received length does not exceed allocated size
drivers/net/virtio_net.c | 38 ++++++++++++++++++++++++++++++++++----
1 file changed, 34 insertions(+), 4 deletions(-)
--
2.43.0
1
1
Kuniyuki Iwashima (1):
Bluetooth: Fix null-ptr-deref in l2cap_sock_resume_cb()
net/bluetooth/l2cap_sock.c | 3 +++
1 file changed, 3 insertions(+)
--
2.43.0
1
1
Eric Dumazet (1):
atm: clip: prevent NULL deref in clip_push()
net/atm/clip.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
--
2.34.1
2
2

12 Aug '25
From: Nathan Lynch <nathanl(a)linux.ibm.com>
mainline inclusion
from mainline-v5.19-rc5
commit 19fc5bb93c6bbdce8292b4d7eed04e2fa118d2fe
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP6KY
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
------------------
kasan detects access beyond the end of the xibm->bitmap allocation:
BUG: KASAN: slab-out-of-bounds in _find_first_zero_bit+0x40/0x140
Read of size 8 at addr c00000001d1d0118 by task swapper/0/1
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0-rc2-00001-g90df023b36dd #28
Call Trace:
[c00000001d98f770] [c0000000012baab8] dump_stack_lvl+0xac/0x108 (unreliable)
[c00000001d98f7b0] [c00000000068faac] print_report+0x37c/0x710
[c00000001d98f880] [c0000000006902c0] kasan_report+0x110/0x354
[c00000001d98f950] [c000000000692324] __asan_load8+0xa4/0xe0
[c00000001d98f970] [c0000000011c6ed0] _find_first_zero_bit+0x40/0x140
[c00000001d98f9b0] [c0000000000dbfbc] xive_spapr_get_ipi+0xcc/0x260
[c00000001d98fa70] [c0000000000d6d28] xive_setup_cpu_ipi+0x1e8/0x450
[c00000001d98fb30] [c000000004032a20] pSeries_smp_probe+0x5c/0x118
[c00000001d98fb60] [c000000004018b44] smp_prepare_cpus+0x944/0x9ac
[c00000001d98fc90] [c000000004009f9c] kernel_init_freeable+0x2d4/0x640
[c00000001d98fd90] [c0000000000131e8] kernel_init+0x28/0x1d0
[c00000001d98fe10] [c00000000000cd54] ret_from_kernel_thread+0x5c/0x64
Allocated by task 0:
kasan_save_stack+0x34/0x70
__kasan_kmalloc+0xb4/0xf0
__kmalloc+0x268/0x540
xive_spapr_init+0x4d0/0x77c
pseries_init_irq+0x40/0x27c
init_IRQ+0x44/0x84
start_kernel+0x2a4/0x538
start_here_common+0x1c/0x20
The buggy address belongs to the object at c00000001d1d0118
which belongs to the cache kmalloc-8 of size 8
The buggy address is located 0 bytes inside of
8-byte region [c00000001d1d0118, c00000001d1d0120)
The buggy address belongs to the physical page:
page:c00c000000074740 refcount:1 mapcount:0 mapping:0000000000000000 index:0xc00000001d1d0558 pfn:0x1d1d
flags: 0x7ffff000000200(slab|node=0|zone=0|lastcpupid=0x7ffff)
raw: 007ffff000000200 c00000001d0003c8 c00000001d0003c8 c00000001d010480
raw: c00000001d1d0558 0000000001e1000a 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
Memory state around the buggy address:
c00000001d1d0000: fc 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc
c00000001d1d0080: fc fc 00 fc fc fc fc fc fc fc fc fc fc fc fc fc
>c00000001d1d0100: fc fc fc 02 fc fc fc fc fc fc fc fc fc fc fc fc
^
c00000001d1d0180: fc fc fc fc 04 fc fc fc fc fc fc fc fc fc fc fc
c00000001d1d0200: fc fc fc fc fc 04 fc fc fc fc fc fc fc fc fc fc
This happens because the allocation uses the wrong unit (bits) when it
should pass (BITS_TO_LONGS(count) * sizeof(long)) or equivalent. With small
numbers of bits, the allocated object can be smaller than sizeof(long),
which results in invalid accesses.
Use bitmap_zalloc() to allocate and initialize the irq bitmap, paired with
bitmap_free() for consistency.
Signed-off-by: Nathan Lynch <nathanl(a)linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg(a)kaod.org>
Signed-off-by: Michael Ellerman <mpe(a)ellerman.id.au>
Link: https://lore.kernel.org/r/20220623182509.3985625-1-nathanl@linux.ibm.com
Conflicts:
arch/powerpc/sysdev/xive/spapr.c
[context conflict, xive_irq_bitmap_remove_all function not merged.]
Signed-off-by: Bowen You <youbowen2(a)huawei.com>
---
arch/powerpc/sysdev/xive/spapr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index 53cf14349d5e..4c95bfe8813b 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -55,7 +55,7 @@ static int xive_irq_bitmap_add(int base, int count)
spin_lock_init(&xibm->lock);
xibm->base = base;
xibm->count = count;
- xibm->bitmap = kzalloc(xibm->count, GFP_KERNEL);
+ xibm->bitmap = bitmap_zalloc(xibm->count, GFP_KERNEL);
if (!xibm->bitmap) {
kfree(xibm);
return -ENOMEM;
--
2.34.1
2
1

[openeuler:OLK-6.6 2669/2669] drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c:330:5: warning: no previous prototype for function 'wait_done_dma_queue'
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 68ac72c2610cc9a280d47c6f733db0eff92efc15
commit: 85502a982830072aff2efa8b65f75c240b4d6181 [2669/2669] Huawei iBMA: Added support for Hi1712 Chip
config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20250812/202508121628.Gr4EiznB-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/20250812/202508121628.Gr4EiznB-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/202508121628.Gr4EiznB-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c:330:5: warning: no previous prototype for function 'wait_done_dma_queue' [-Wmissing-prototypes]
330 | s32 wait_done_dma_queue(unsigned long timeout)
| ^
drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c:330:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
330 | s32 wait_done_dma_queue(unsigned long timeout)
| ^
| static
1 warning generated.
vim +/wait_done_dma_queue +330 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
329
> 330 s32 wait_done_dma_queue(unsigned long timeout)
331 {
332 struct dma_ch_cq_s *p_cur_last_cq;
333 struct dma_ch_cq_s *p_dma_cq;
334 unsigned long end;
335 u32 sq_tail;
336 u32 sq_valid;
337 u32 cq_tail;
338 u32 cq_valid;
339
340 p_dma_cq = (struct dma_ch_cq_s *)((&get_bma_dev()->edma_host)->edma_cq_addr);
341 end = jiffies + timeout;
342
343 while (time_before(jiffies, end)) {
344 (void)get_dma_queue_sq_tail(&sq_tail);
345 (void)get_dma_queue_cq_tail(&cq_tail);
346
347 cq_valid = (cq_tail + CQ_DEPTH - 1) % (CQ_DEPTH);
348 p_cur_last_cq = &p_dma_cq[cq_valid];
349 sq_valid = (sq_tail + SQ_DEPTH - 1) % (SQ_DEPTH);
350 BMA_LOG(DLOG_DEBUG,
351 "sq_tail %d, cq_tail %d, cq_valid %d, sq_valid %d, p_cur_last_cq->sqhd %d\n",
352 sq_tail, cq_tail, cq_valid, sq_valid, p_cur_last_cq->sqhd);
353 if (p_cur_last_cq->sqhd == sq_valid) {
354 set_dma_queue_cq_head(cq_valid);
355 return 0;
356 }
357 }
358
359 return -ETIMEDOUT;
360 }
361
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 2669/2669] kernel/sched/debug.c:102:12: warning: no previous prototype for function 'is_prefer_numa'
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 263cf8eeb5316aeebd9d692e9966df029f65889f
commit: 0f22304e62d360fce47988586d599e33895ccb01 [2669/2669] sched: Support NUMA parallel scheduling for multiple processes
config: x86_64-buildonly-randconfig-001-20250812 (https://download.01.org/0day-ci/archive/20250812/202508121611.xU3A9CdS-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/20250812/202508121611.xU3A9CdS-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/202508121611.xU3A9CdS-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from kernel/sched/build_utility.c:73:
>> kernel/sched/debug.c:102:12: warning: no previous prototype for function 'is_prefer_numa' [-Wmissing-prototypes]
102 | int __weak is_prefer_numa(void)
| ^
kernel/sched/debug.c:102:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
102 | int __weak is_prefer_numa(void)
| ^
| static
In file included from kernel/sched/build_utility.c:105:
kernel/sched/isolation.c:134:46: error: use of undeclared identifier 'setup_max_cpus'
134 | if (first_cpu >= nr_cpu_ids || first_cpu >= setup_max_cpus) {
| ^
1 warning and 1 error generated.
vim +/is_prefer_numa +102 kernel/sched/debug.c
101
> 102 int __weak is_prefer_numa(void)
103 {
104 return 0;
105 }
106
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

12 Aug '25
From: Nathan Lynch <nathanl(a)linux.ibm.com>
mainline inclusion
from mainline-v5.19-rc5
commit 19fc5bb93c6bbdce8292b4d7eed04e2fa118d2fe
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP6KY
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
------------------
kasan detects access beyond the end of the xibm->bitmap allocation:
BUG: KASAN: slab-out-of-bounds in _find_first_zero_bit+0x40/0x140
Read of size 8 at addr c00000001d1d0118 by task swapper/0/1
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0-rc2-00001-g90df023b36dd #28
Call Trace:
[c00000001d98f770] [c0000000012baab8] dump_stack_lvl+0xac/0x108 (unreliable)
[c00000001d98f7b0] [c00000000068faac] print_report+0x37c/0x710
[c00000001d98f880] [c0000000006902c0] kasan_report+0x110/0x354
[c00000001d98f950] [c000000000692324] __asan_load8+0xa4/0xe0
[c00000001d98f970] [c0000000011c6ed0] _find_first_zero_bit+0x40/0x140
[c00000001d98f9b0] [c0000000000dbfbc] xive_spapr_get_ipi+0xcc/0x260
[c00000001d98fa70] [c0000000000d6d28] xive_setup_cpu_ipi+0x1e8/0x450
[c00000001d98fb30] [c000000004032a20] pSeries_smp_probe+0x5c/0x118
[c00000001d98fb60] [c000000004018b44] smp_prepare_cpus+0x944/0x9ac
[c00000001d98fc90] [c000000004009f9c] kernel_init_freeable+0x2d4/0x640
[c00000001d98fd90] [c0000000000131e8] kernel_init+0x28/0x1d0
[c00000001d98fe10] [c00000000000cd54] ret_from_kernel_thread+0x5c/0x64
Allocated by task 0:
kasan_save_stack+0x34/0x70
__kasan_kmalloc+0xb4/0xf0
__kmalloc+0x268/0x540
xive_spapr_init+0x4d0/0x77c
pseries_init_irq+0x40/0x27c
init_IRQ+0x44/0x84
start_kernel+0x2a4/0x538
start_here_common+0x1c/0x20
The buggy address belongs to the object at c00000001d1d0118
which belongs to the cache kmalloc-8 of size 8
The buggy address is located 0 bytes inside of
8-byte region [c00000001d1d0118, c00000001d1d0120)
The buggy address belongs to the physical page:
page:c00c000000074740 refcount:1 mapcount:0 mapping:0000000000000000 index:0xc00000001d1d0558 pfn:0x1d1d
flags: 0x7ffff000000200(slab|node=0|zone=0|lastcpupid=0x7ffff)
raw: 007ffff000000200 c00000001d0003c8 c00000001d0003c8 c00000001d010480
raw: c00000001d1d0558 0000000001e1000a 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
Memory state around the buggy address:
c00000001d1d0000: fc 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc
c00000001d1d0080: fc fc 00 fc fc fc fc fc fc fc fc fc fc fc fc fc
>c00000001d1d0100: fc fc fc 02 fc fc fc fc fc fc fc fc fc fc fc fc
^
c00000001d1d0180: fc fc fc fc 04 fc fc fc fc fc fc fc fc fc fc fc
c00000001d1d0200: fc fc fc fc fc 04 fc fc fc fc fc fc fc fc fc fc
This happens because the allocation uses the wrong unit (bits) when it
should pass (BITS_TO_LONGS(count) * sizeof(long)) or equivalent. With small
numbers of bits, the allocated object can be smaller than sizeof(long),
which results in invalid accesses.
Use bitmap_zalloc() to allocate and initialize the irq bitmap, paired with
bitmap_free() for consistency.
Signed-off-by: Nathan Lynch <nathanl(a)linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg(a)kaod.org>
Signed-off-by: Michael Ellerman <mpe(a)ellerman.id.au>
Link: https://lore.kernel.org/r/20220623182509.3985625-1-nathanl@linux.ibm.com
Conflicts:
arch/powerpc/sysdev/xive/spapr.c
[context conflict, xive_irq_bitmap_remove_all function not merged.]
Signed-off-by: Bowen You <youbowen2(a)huawei.com>
---
arch/powerpc/sysdev/xive/spapr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index 53cf14349d5e..4c95bfe8813b 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -55,7 +55,7 @@ static int xive_irq_bitmap_add(int base, int count)
spin_lock_init(&xibm->lock);
xibm->base = base;
xibm->count = count;
- xibm->bitmap = kzalloc(xibm->count, GFP_KERNEL);
+ xibm->bitmap = bitmap_zalloc(xibm->count, GFP_KERNEL);
if (!xibm->bitmap) {
kfree(xibm);
return -ENOMEM;
--
2.34.1
2
1

[openeuler:openEuler-1.0-LTS 1755/1755] drivers/regulator/qcom-rpmh-regulator.c:33: warning: Enum value 'VRM' not described in enum 'rpmh_regulator_type'
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 46fc033eba42f5a4fb583b2ab53f0a9918468452 [1755/1755] regulator: add QCOM RPMh regulator driver
config: x86_64-buildonly-randconfig-2002-20250811 (https://download.01.org/0day-ci/archive/20250812/202508121032.93R4tKQv-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/20250812/202508121032.93R4tKQv-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/202508121032.93R4tKQv-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/regulator/qcom-rpmh-regulator.c:33: warning: Enum value 'VRM' not described in enum 'rpmh_regulator_type'
>> drivers/regulator/qcom-rpmh-regulator.c:33: warning: Enum value 'XOB' not described in enum 'rpmh_regulator_type'
>> drivers/regulator/qcom-rpmh-regulator.c:402: warning: Function parameter or member 'vreg' not described in 'rpmh_regulator_init_vreg'
>> drivers/regulator/qcom-rpmh-regulator.c:402: warning: Function parameter or member 'dev' not described in 'rpmh_regulator_init_vreg'
>> drivers/regulator/qcom-rpmh-regulator.c:402: warning: Function parameter or member 'node' not described in 'rpmh_regulator_init_vreg'
>> drivers/regulator/qcom-rpmh-regulator.c:402: warning: Function parameter or member 'pmic_id' not described in 'rpmh_regulator_init_vreg'
>> drivers/regulator/qcom-rpmh-regulator.c:402: warning: Function parameter or member 'pmic_rpmh_data' not described in 'rpmh_regulator_init_vreg'
vim +33 drivers/regulator/qcom-rpmh-regulator.c
22
23 /**
24 * enum rpmh_regulator_type - supported RPMh accelerator types
25 * %VRM: RPMh VRM accelerator which supports voting on enable, voltage,
26 * and mode of LDO, SMPS, and BOB type PMIC regulators.
27 * %XOB: RPMh XOB accelerator which supports voting on the enable state
28 * of PMIC regulators.
29 */
30 enum rpmh_regulator_type {
31 VRM,
32 XOB,
> 33 };
34
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1750/1750] drivers/i2c/busses/.tmp_i2c-zhaoxin.o: warning: objtool: missing symbol for section .init.text
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 735c81b4d33c46ea097f6437f63ea624ccf6dee1 [1750/1750] i2c: Add Zhaoxin I2C driver
config: x86_64-buildonly-randconfig-2004-20250805 (https://download.01.org/0day-ci/archive/20250812/202508121006.nLfkti1W-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/20250812/202508121006.nLfkti1W-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/202508121006.nLfkti1W-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/i2c/busses/.tmp_i2c-zhaoxin.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:openEuler-1.0-LTS 1755/1755] drivers/mailbox/mtk-cmdq-mailbox.o: warning: objtool: missing symbol for section .init.text
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 623a6143a845bd485b00ba684f0ccef11835edab [1755/1755] mailbox: mediatek: Add Mediatek CMDQ driver
config: x86_64-buildonly-randconfig-2004-20250811 (https://download.01.org/0day-ci/archive/20250812/202508121002.xxDFTqIT-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/20250812/202508121002.xxDFTqIT-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/202508121002.xxDFTqIT-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/mailbox/mtk-cmdq-mailbox.o: warning: objtool: missing symbol for section .init.text
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
sched-ebpf-add-for-exec-init
Cheng Yu (3):
sched/ebpf: Add bpf_sched_cfs_exec_set_cpumask hook
sched/ebpf: Add kfunc to set the preferred NUMA node for the task
sched/bpf: Fix kabi breakage for including sched bpf header file
fs/exec.c | 9 +++++++++
include/linux/sched_hook_defs.h | 1 +
kernel/sched/bpf_sched.c | 34 ++++++++++++++++++++++-----------
3 files changed, 33 insertions(+), 11 deletions(-)
--
2.25.1
2
4

[openeuler:OLK-6.6 2665/2665] arch/arm64/kvm/rme.c:740:6: warning: variable 'tmp_page' is used uninitialized whenever 'if' condition is true
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 263cf8eeb5316aeebd9d692e9966df029f65889f
commit: a74f93b7e7c0d8a2114055ed0c652cc735a7a07b [2665/2665] [backport]rme: populate guest memory region without guest_memfd
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20250812/202508121448.yD6lHdJT-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/20250812/202508121448.yD6lHdJT-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/202508121448.yD6lHdJT-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);
| ^~~~~~~~
include/linux/gfp.h:333:41: note: expanded from macro '__free_page'
333 | #define __free_page(page) __free_pages((page), 0)
| ^~~~
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);
| ^~~~~~~~
include/linux/gfp.h:333:41: note: expanded from macro '__free_page'
333 | #define __free_page(page) __free_pages((page), 0)
| ^~~~
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.
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:openEuler-1.0-LTS 1750/1750] arch/x86/mm/.tmp_maccess.o: warning: objtool: missing symbol for section .text
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 22058d2bdaf6b0526395ceec2736c72c3b5f435a [1750/1750] uaccess: Add strict non-pagefault kernel-space read function
config: x86_64-buildonly-randconfig-2004-20250805 (https://download.01.org/0day-ci/archive/20250812/202508120725.n4YJFfFe-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/20250812/202508120725.n4YJFfFe-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/202508120725.n4YJFfFe-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/x86/mm/.tmp_maccess.o: warning: objtool: missing symbol for section .text
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1750/1750] drivers/pci/pcie/.tmp_aer.o: warning: objtool: missing symbol for section .init.text
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 58d584102f06f870f118644f1022c751e015e7bb [1750/1750] PCI: portdrv: Initialize service drivers directly
config: x86_64-buildonly-randconfig-2004-20250805 (https://download.01.org/0day-ci/archive/20250812/202508120412.Xa7JUmZ1-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/20250812/202508120412.Xa7JUmZ1-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/202508120412.Xa7JUmZ1-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/pci/pcie/aer.c:217: warning: Function parameter or member 'str' not described in 'pcie_ecrc_get_policy'
>> drivers/pci/pcie/.tmp_aer.o: warning: objtool: missing symbol for section .init.text
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
Michael Kelley (1):
hv_netvsc: Preserve contiguous PFN grouping in the page buffer array
Paolo Abeni (1):
net: allow small head cache usage with large MAX_SKB_FRAGS values
Wang Liang (1):
net: use __GENKSYMS__ to revert the kabi change
drivers/net/hyperv/hyperv_net.h | 12 ++++++
drivers/net/hyperv/netvsc_drv.c | 63 ++++++++-----------------------
drivers/net/hyperv/rndis_filter.c | 24 +++---------
include/net/gro.h | 3 ++
net/core/gro.c | 3 --
net/core/skbuff.c | 12 ++++--
6 files changed, 44 insertions(+), 73 deletions(-)
--
2.33.0
2
4
sched-ebpf-add-for-exec-init
Cheng Yu (2):
sched/ebpf: Add bpf_sched_cfs_exec_set_cpumask hook
sched/ebpf: Add kfunc to set the preferred NUMA node for the task
fs/exec.c | 7 +++++++
include/linux/sched_hook_defs.h | 1 +
kernel/sched/bpf_sched.c | 34 ++++++++++++++++++++++-----------
3 files changed, 31 insertions(+), 11 deletions(-)
--
2.25.1
2
3

[openeuler:OLK-5.10] BUILD REGRESSION f72620ec28d8c7f46541d0097fe847481b18603c
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-5.10
branch HEAD: f72620ec28d8c7f46541d0097fe847481b18603c !17506 ROH: fix variable type inconsistency issue
Error/Warning (recently discovered and may have been fixed):
block/bfq-cgroup.c:1459:6: warning: no previous prototype for function 'bfqg_and_blkg_get' [-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:432:6: error: no previous prototype for function 'sxe_debugfs_entries_init' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:459:6: error: no previous prototype for function 'sxe_debugfs_entries_exit' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:465:6: error: no previous prototype for function 'sxe_debugfs_init' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:470:6: error: no previous prototype for function 'sxe_debugfs_exit' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2022:5: error: no previous prototype for function 'sxe_reg_test' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2644:5: error: no previous prototype for function 'sxe_phys_id_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:230:6: error: no previous prototype for function 'sxe_hw_no_snoop_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:6: error: no previous prototype for function 'sxe_hw_uc_addr_pool_del' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:5: error: no previous prototype for function 'sxe_hw_uc_addr_pool_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:5: error: no previous prototype for function 'sxe_hw_nic_reset' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:6: error: no previous prototype for function 'sxe_hw_pf_rst_done_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:5: error: no previous prototype for function 'sxe_hw_pending_irq_read_clear' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:6: error: no previous prototype for function 'sxe_hw_pending_irq_write_clear' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:5: error: no previous prototype for function 'sxe_hw_irq_cause_get' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:6: error: no previous prototype for function 'sxe_hw_ring_irq_auto_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:6: error: no previous prototype for function 'sxe_hw_irq_general_reg_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:5: error: no previous prototype for function 'sxe_hw_irq_general_reg_get' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:6: error: no previous prototype for function 'sxe_hw_event_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:6: error: no previous prototype for function 'sxe_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:6: error: no previous prototype for function 'sxe_hw_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:6: 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:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:6: error: no previous prototype for function 'sxe_hw_specific_irq_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for function 'sxe_hw_all_irq_disable' [-Werror,-Wmissing-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_irq.c:136:5: error: no previous prototype for function 'sxe_msi_irq_init' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:182:6: error: no previous prototype for function 'sxe_disable_dcb' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:212:6: error: no previous prototype for function 'sxe_disable_rss' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:729:6: error: no previous prototype for function 'sxe_lsc_irq_handler' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:745:6: error: no previous prototype for function 'sxe_mailbox_irq_handler' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c:70:6: error: no previous prototype for function 'sxe_allow_inval_mac' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_phy.c:733:5: error: no previous prototype for function 'sxe_multispeed_sfp_link_configure' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_rx_proc.c:1431:6: error: no previous prototype for function 'sxe_headers_cleanup' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_rx_proc.c:1569:6: error: no previous prototype for function 'sxe_rx_buffer_page_offset_update' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_sriov.c:1552:6: error: no previous prototype for function 'sxe_set_vf_link_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_sriov.c:766:6: error: variable 'ret' set but not used [-Werror,-Wunused-but-set-variable]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_xdp.c:403:6: error: no previous prototype for function 'sxe_txrx_ring_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:160:6: error: no previous prototype for function 'sxevf_hw_stop' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:187:6: error: no previous prototype for function 'sxevf_msg_write' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:196:5: error: no previous prototype for function 'sxevf_msg_read' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:206:5: error: no previous prototype for function 'sxevf_mailbox_read' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:211:6: error: no previous prototype for function 'sxevf_mailbox_write' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:216:6: error: no previous prototype for function 'sxevf_pf_req_irq_trigger' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:221:6: error: no previous prototype for function 'sxevf_pf_ack_irq_trigger' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:226:6: error: no previous prototype for function 'sxevf_event_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:245:6: error: no previous prototype for function 'sxevf_irq_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:251:6: error: no previous prototype for function 'sxevf_irq_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:259:6: error: no previous prototype for function 'sxevf_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:313:6: error: no previous prototype for function 'sxevf_hw_reset' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:324:5: error: no previous prototype for function 'sxevf_link_state_get' [-Werror,-Wmissing-prototypes]
Unverified Error/Warning (likely false positive, kindly check if interested):
drivers/gpu/drm/vmwgfx/ttm_object.c:60: error: Cannot parse struct or union!
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-defconfig
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- 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_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_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_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_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- 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_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
|-- x86_64-allnoconfig
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-allyesconfig
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- drivers-gpu-drm-vmwgfx-ttm_object.c:error:Cannot-parse-struct-or-union
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
|-- x86_64-buildonly-randconfig-001-20250811
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:no-previous-prototype-for-bfqg_and_blkg_get
|-- x86_64-buildonly-randconfig-002-20250811
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-003-20250811
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-004-20250811
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:no-previous-prototype-for-function-bfqg_and_blkg_get
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-005-20250811
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-006-20250811
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:no-previous-prototype-for-function-bfqg_and_blkg_get
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-defconfig
| |-- 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_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_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_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_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- 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_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
|-- x86_64-randconfig-161-20250811
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:no-previous-prototype-for-function-bfqg_and_blkg_get
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
`-- x86_64-rhel-9.4-rust
|-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
|-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
|-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
|-- drivers-gpu-drm-vmwgfx-ttm_object.c:error:Cannot-parse-struct-or-union
|-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
|-- 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_specific_irq_disable-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
|-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
|-- 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
`-- include-net-ip6_fib.h:error:default-initialization-of-an-object-of-type-typeof-(f6i-expires)-(aka-const-unsigned-long-)-leaves-the-object-uninitialized-Werror-Wdefault-const-init-var-unsafe
elapsed time: 739m
configs tested: 17
configs skipped: 120
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250811 clang-22
arm64 randconfig-002-20250811 clang-19
arm64 randconfig-003-20250811 clang-20
arm64 randconfig-004-20250811 clang-22
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250811 gcc-12
x86_64 buildonly-randconfig-002-20250811 clang-20
x86_64 buildonly-randconfig-003-20250811 clang-20
x86_64 buildonly-randconfig-004-20250811 clang-20
x86_64 buildonly-randconfig-005-20250811 clang-20
x86_64 buildonly-randconfig-006-20250811 clang-20
x86_64 defconfig gcc-11
x86_64 rhel-9.4-rust clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1750/1750] drivers/pci/controller/hisi-pcie-customer/.tmp_hisi_pcie_cae.o: warning: objtool: missing symbol for section .init.text
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 2208b0283616863f166ef470fb9286223ba8f9ba [1750/1750] pcie: hisi pcie dfx driver
config: x86_64-buildonly-randconfig-2004-20250805 (https://download.01.org/0day-ci/archive/20250812/202508120135.Ifnnu0GS-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/20250812/202508120135.Ifnnu0GS-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/202508120135.Ifnnu0GS-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/pci/controller/hisi-pcie-customer/.tmp_hisi_pcie_cae.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 2667/2667] arch/arm64/kvm/arm.c:569:5: warning: no previous prototype for 'kvm_arch_rec_init'
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: a5185c1b0fd7a9b3ea9b6923d5bcedc7392c59b7
commit: fa36fa3469d2461c1887e823371059401941ae8a [2667/2667] CCA: Fix cca kabi conflict
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20250812/202508120550.HjIMCdCV-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250812/202508120550.HjIMCdCV-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/202508120550.HjIMCdCV-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/arm.c:569:5: warning: no previous prototype for 'kvm_arch_rec_init' [-Wmissing-prototypes]
569 | int kvm_arch_rec_init(struct kvm_vcpu_arch *vcpu_arch)
| ^~~~~~~~~~~~~~~~~
In file included from arch/arm64/kvm/arm.c:52:
arch/arm64/kvm/hisilicon/hisi_virt.h:116:13: warning: 'hisi_ipiv_enable_per_vm' defined but not used [-Wunused-function]
116 | static void hisi_ipiv_enable_per_vm(struct kvm_vcpu *vcpu) {}
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hisilicon/hisi_virt.h:112:13: warning: 'hisi_ipiv_supported_per_vm' defined but not used [-Wunused-function]
112 | static bool hisi_ipiv_supported_per_vm(struct kvm_vcpu *vcpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/kvm_arch_rec_init +569 arch/arm64/kvm/arm.c
568
> 569 int kvm_arch_rec_init(struct kvm_vcpu_arch *vcpu_arch)
570 {
571 struct realm_rec *rec;
572
573 rec = kzalloc(sizeof(struct realm_rec), GFP_KERNEL_ACCOUNT);
574 if (!rec)
575 return -ENOMEM;
576 rec->mpidr = INVALID_HWID;
577 vcpu_arch->rec = rec;
578 return 0;
579 }
580
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1750/1750] fs/ext4/.tmp_block_validity.o: warning: objtool: missing symbol for section .init.text
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 026f041867fa55cd19074713fb1756dc5b67e18c [1750/1750] ext4: fix potential use after free in system zone via remount with noblock_validity
config: x86_64-buildonly-randconfig-2004-20250805 (https://download.01.org/0day-ci/archive/20250811/202508112211.dkvzG8yP-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/20250811/202508112211.dkvzG8yP-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/202508112211.dkvzG8yP-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/ext4/.tmp_block_validity.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 2665/2665] arch/arm64/kvm/rme.c:799:16: warning: variable 'data_flags' set but not used
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: a5185c1b0fd7a9b3ea9b6923d5bcedc7392c59b7
commit: e216f77846eeb7062baa345cea2be0978dea94cc [2665/2665] [v8-19-43]arm64: RME: Allow populating initial contents
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20250812/202508120456.fFlvJz72-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/20250812/202508120456.fFlvJz72-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/202508120456.fFlvJz72-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.
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-6.6 2667/2667] arch/arm64/kvm/cca_base.c:52:6: warning: no previous prototype for 'set_cca_cvm_type'
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: a5185c1b0fd7a9b3ea9b6923d5bcedc7392c59b7
commit: 419da4d196ffa97d1430d017d1b36348fea395e5 [2667/2667] VirtCCA: Add CCA base operations.
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20250812/202508120416.G0o0Cpl1-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250812/202508120416.G0o0Cpl1-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/202508120416.G0o0Cpl1-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/cca_base.c:52:6: warning: no previous prototype for 'set_cca_cvm_type' [-Wmissing-prototypes]
52 | void set_cca_cvm_type(int type)
| ^~~~~~~~~~~~~~~~
vim +/set_cca_cvm_type +52 arch/arm64/kvm/cca_base.c
51
> 52 void set_cca_cvm_type(int type)
53 {
54 cca_cvm_type = type;
55 }
56 EXPORT_SYMBOL_GPL(set_cca_cvm_type);
57
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6] BUILD REGRESSION a5185c1b0fd7a9b3ea9b6923d5bcedc7392c59b7
by kernel test robot 12 Aug '25
by kernel test robot 12 Aug '25
12 Aug '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: a5185c1b0fd7a9b3ea9b6923d5bcedc7392c59b7 !17501 net: hibmcge: fix rtnl deadlock issue
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202507150723.SAa7Ty5b-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507161941.gk9sOp8j-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507162216.3Q6gsro5-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507212015.E4IEaBTY-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507220023.Kuq6r4En-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508022134.uLbgotjO-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508081825.fqBn1XgA-lkp@intel.com
crypto/asymmetric_keys/pgp_library.c:189: warning: Excess function parameter '_data' description in 'pgp_parse_packets'
crypto/asymmetric_keys/pgp_library.c:189: warning: Excess function parameter '_datalen' description in 'pgp_parse_packets'
crypto/asymmetric_keys/pgp_library.c:189: warning: Function parameter or member 'data' not described in 'pgp_parse_packets'
crypto/asymmetric_keys/pgp_library.c:189: warning: Function parameter or member 'datalen' not described in 'pgp_parse_packets'
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:6: error: no previous prototype for function 'sxe_hw_specific_irq_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for function 'sxe_hw_all_irq_disable' [-Werror,-Wmissing-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/sxevf/sxevf/sxevf_hw.c:539:6: error: no previous prototype for function 'sxevf_tx_ring_switch' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:594:6: error: no previous prototype for function 'sxevf_rx_ring_switch' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:626:6: error: no previous prototype for function 'sxevf_rx_ring_desc_configure' [-Werror,-Wmissing-prototypes]
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/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:1260:7: warning: variable 'mdev' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
fs/nfs/enfs/shard_route.c:249: warning: Function parameter or member '__list_name' not described in 'DEFINE_CLEAR_LIST_FUNC'
fs/nfs/enfs/shard_route.c:249: warning: Function parameter or member '__struct_name' not described in 'DEFINE_CLEAR_LIST_FUNC'
fs/nfs/enfs/shard_route.c:249: warning: expecting prototype for enfs_clear_ ## __struct_name()(). Prototype was for DEFINE_CLEAR_LIST_FUNC() instead
include/linux/fortify-string.h:606:4: error: call to '__read_overflow2_field' declared with 'warning' attribute: detected read beyond size of field (2nd parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
kernel/cgroup/ifs.c:400:6: warning: variable 'start' set but not used [-Wunused-but-set-variable]
kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
kismet: WARNING: unmet direct dependencies detected for CRYPTO_DRBG_CTR when selected by CRYPTO_DEV_HISI_TRNG
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__list_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__struct_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:expecting-prototype-for-enfs_clear_-__struct_name()().-Prototype-was-for-DEFINE_CLEAR_LIST_FUNC()-instead
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-allnoconfig
| `-- kismet:WARNING:unmet-direct-dependencies-detected-for-CRYPTO_DRBG_CTR-when-selected-by-CRYPTO_DEV_HISI_TRNG
|-- arm64-randconfig-001-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-randconfig-002-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-randconfig-003-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-randconfig-004-20250811
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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_core-nbl_dev_user.c:warning:variable-mdev-is-used-uninitialized-whenever-if-condition-is-true
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-allmodconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-allnoconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-allyesconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-defconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-loongson3_defconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-randconfig-r121-20250812
| |-- include-linux-userfaultfd_k.h:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-restricted-uffd_flags_t-usertype-flags-got-unsigned-int-enum-mfill_atomic_mode-mode
| `-- include-linux-userfaultfd_k.h:sparse:sparse:restricted-uffd_flags_t-degrades-to-integer
|-- x86_64-allnoconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-allyesconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__list_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__struct_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:expecting-prototype-for-enfs_clear_-__struct_name()().-Prototype-was-for-DEFINE_CLEAR_LIST_FUNC()-instead
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-002-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-003-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-004-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-005-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-006-20250811
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
`-- x86_64-randconfig-161-20250811
|-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
|-- 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_specific_irq_disable-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
|-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
|-- 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
|-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
`-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
elapsed time: 722m
configs tested: 23
configs skipped: 116
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250811 clang-22
arm64 randconfig-002-20250811 clang-19
arm64 randconfig-003-20250811 clang-20
arm64 randconfig-004-20250811 clang-22
loongarch allmodconfig clang-19
loongarch allnoconfig clang-22
loongarch defconfig clang-19
loongarch loongson3_defconfig clang-22
loongarch randconfig-001-20250811 gcc-15.1.0
loongarch randconfig-002-20250811 gcc-12.5.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250811 gcc-12
x86_64 buildonly-randconfig-002-20250811 clang-20
x86_64 buildonly-randconfig-003-20250811 clang-20
x86_64 buildonly-randconfig-004-20250811 clang-20
x86_64 buildonly-randconfig-005-20250811 clang-20
x86_64 buildonly-randconfig-006-20250811 clang-20
x86_64 defconfig gcc-11
x86_64 rhel-9.4-rust clang-20
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS] BUILD REGRESSION a7892155ca524e224cb2da85c85cc1bd4303179d
by kernel test robot 11 Aug '25
by kernel test robot 11 Aug '25
11 Aug '25
tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: a7892155ca524e224cb2da85c85cc1bd4303179d !17482 mm: Fix possible deadlock in console_trylock_spinning
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202507150036.2TFl4VP9-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508070154.VYnxHXi4-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508070349.2ODYAkPf-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508070424.1zkCZb3G-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508111715.dtfREBaW-lkp@intel.com
block/bio-integrity.c:41:6: warning: no previous prototype for function '__bio_integrity_free' [-Wmissing-prototypes]
block/blk-cgroup.c:1843: warning: Function parameter or member 'q' not described in 'blkcg_schedule_throttle'
block/blk-cgroup.c:1843: warning: Function parameter or member 'use_memdelay' not described in 'blkcg_schedule_throttle'
block/blk-cgroup.c:1868: warning: Function parameter or member 'blkg' not described in 'blkcg_add_delay'
block/blk-cgroup.c:1868: warning: Function parameter or member 'delta' not described in 'blkcg_add_delay'
block/blk-cgroup.c:1868: warning: Function parameter or member 'now' not described in 'blkcg_add_delay'
block/blk-mq-sched.c:220:5: warning: no previous prototype for function '__blk_mq_sched_dispatch_requests' [-Wmissing-prototypes]
block/genhd.c:642:5: warning: no previous prototype for function 'disk_scan_partitions' [-Wmissing-prototypes]
crypto/sm4_generic.o: warning: objtool: missing symbol for section .text
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:184:13: error: variable 'fault_level' set but not used [-Werror=unused-but-set-variable]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:185:13: error: variable 'pcie_src' set but not used [-Werror=unused-but-set-variable]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:384:5: error: no previous prototype for 'sss_init_hwdev' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:487:6: error: no previous prototype for 'sss_deinit_hwdev' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:518:6: error: no previous prototype for 'sss_hwdev_stop' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:531:6: error: no previous prototype for 'sss_hwdev_detach' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:539:6: error: no previous prototype for 'sss_hwdev_shutdown' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_io_flush.c:91:5: error: no previous prototype for 'sss_hwdev_flush_io' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_mgmt_info.c:54:5: error: no previous prototype for 'sss_init_mgmt_info' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_mgmt_info.c:90:6: error: no previous prototype for 'sss_deinit_mgmt_info' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm.c:682:5: error: no previous prototype for 'sss_sync_send_adm_msg' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm_init.c:689:5: error: no previous prototype for 'sss_hwif_init_adm' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm_init.c:738:6: error: no previous prototype for 'sss_hwif_deinit_adm' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm_init.c:752:6: error: no previous prototype for 'sss_complete_adm_event' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ceq.c:130:13: error: no previous prototype for 'sss_ceq_intr_handle' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ceq.c:95:6: error: no previous prototype for 'sss_init_ceqe_desc' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:277:5: error: no previous prototype for 'sss_reinit_ctrlq_ctx' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:367:6: error: no previous prototype for 'sss_deinit_ctrlq' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:501:5: error: no previous prototype for 'sss_init_ctrlq_channel' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:538:6: error: no previous prototype for 'sss_deinit_ctrlq_channel' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:547:6: error: no previous prototype for 'sss_ctrlq_flush_sync_cmd' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:573:5: error: no previous prototype for 'sss_wait_ctrlq_stop' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:104:4: error: no previous prototype for 'sss_get_pcie_itf_id' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:113:20: error: no previous prototype for 'sss_get_func_type' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:131:5: error: no previous prototype for 'sss_get_glb_pf_vf_offset' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:140:4: error: no previous prototype for 'sss_get_ppf_id' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:15:5: error: no previous prototype for 'sss_alloc_db_addr' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:37:6: error: no previous prototype for 'sss_free_db_addr' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:52:6: error: no previous prototype for 'sss_chip_set_msix_auto_mask' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:70:6: error: no previous prototype for 'sss_chip_set_msix_state' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:86:5: error: no previous prototype for 'sss_get_global_func_id' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:95:4: error: no previous prototype for 'sss_get_pf_id_of_vf' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_irq.c:111:6: error: no previous prototype for 'sss_deinit_irq_info' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_irq.c:54:5: error: no previous prototype for 'sss_init_irq_info' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:252:5: error: no previous prototype for 'sss_init_func_mbx_msg' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:401:5: error: no previous prototype for 'sss_hwif_init_mbx' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:449:6: error: no previous prototype for 'sss_hwif_deinit_mbx' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:872:6: error: no previous prototype for 'sss_recv_mbx_aeq_handler' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mgmt_init.c:248:6: error: no previous prototype for 'sss_mgmt_msg_aeqe_handler' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mgmt_init.c:271:6: error: no previous prototype for 'sss_force_complete_all' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mgmt_init.c:290:6: error: no previous prototype for 'sss_flush_mgmt_workq' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_error.c:34:18: error: no previous prototype for 'sss_detect_pci_error' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:37:6: error: no previous prototype for 'sss_init_uld_lock' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:42:6: error: no previous prototype for 'sss_lock_uld' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:47:6: error: no previous prototype for 'sss_unlock_uld' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:52:14: error: no previous prototype for 'sss_get_uld_names' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:57:22: error: no previous prototype for 'sss_get_uld_info' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:62:6: error: no previous prototype for 'sss_attach_is_enable' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_probe.c:276:5: error: no previous prototype for 'sss_attach_uld_driver' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_probe.c:548:5: error: no previous prototype for 'sss_pci_probe' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:120:6: error: no previous prototype for 'sss_detach_all_uld_driver' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:138:6: error: no previous prototype for 'sss_dettach_uld_dev' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:179:6: error: no previous prototype for 'sss_deinit_function' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:200:6: error: no previous prototype for 'sss_unmap_pci_bar' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:211:5: error: no previous prototype for 'sss_deinit_adapter' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:237:6: error: no previous prototype for 'sss_deinit_pci_dev' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:249:6: error: no previous prototype for 'sss_pci_remove' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:90:6: error: no previous prototype for 'sss_detach_uld_driver' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/hw/sss_pci_shutdown.c:28:6: error: no previous prototype for 'sss_pci_shutdown' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool.c:467:6: error: no previous prototype for 'sss_nic_set_ethtool_ops' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_api.c:644:5: error: no previous prototype for 'sss_nic_finish_loop_test' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:120:5: error: no previous prototype for 'sss_nic_set_link_ksettings' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:44:5: error: no previous prototype for 'sss_nic_get_sset_count' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:62:6: error: no previous prototype for 'sss_nic_get_ethtool_stats' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:78:6: error: no previous prototype for 'sss_nic_get_strings' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:98:5: error: no previous prototype for 'sss_nic_get_link_ksettings' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_filter.c:468:6: error: no previous prototype for 'sss_nic_set_rx_mode_work' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_filter.c:67:6: error: no previous prototype for 'sss_nic_clean_mac_list_filter' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_irq.c:266:5: error: no previous prototype for 'sss_nic_request_qp_irq' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_irq.c:311:6: error: no previous prototype for 'sss_nic_release_qp_irq' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:1029:22: error: no previous prototype for 'get_nic_uld_info' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:878:6: error: no previous prototype for 'sss_nic_port_module_cable_plug' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:884:6: error: no previous prototype for 'sss_nic_port_module_cable_unplug' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:890:6: error: no previous prototype for 'sss_nic_port_module_link_err' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:297:5: error: no previous prototype for 'sss_nic_ndo_vlan_rx_add_vid' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:318:5: error: no previous prototype for 'sss_nic_ndo_vlan_rx_kill_vid' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:506:5: error: no previous prototype for 'sss_nic_ndo_set_vf_link_state' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:787:6: error: no previous prototype for 'sss_nic_set_netdev_ops' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:795:6: error: no previous prototype for 'sss_nic_is_netdev_ops_match' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:350:6: error: no previous prototype for 'sss_nic_flush_tcam_list' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:366:6: error: no previous prototype for 'sss_nic_flush_tcam_node_list' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:382:6: error: no previous prototype for 'sss_nic_flush_rx_flow_rule' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:397:6: error: no previous prototype for 'sss_nic_flush_tcam' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:797:5: error: no previous prototype for 'sss_nic_ethtool_update_flow' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:842:5: error: no previous prototype for 'sss_nic_ethtool_delete_flow' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:864:5: error: no previous prototype for 'sss_nic_ethtool_get_flow' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:887:5: error: no previous prototype for 'sss_nic_ethtool_get_all_flows' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:905:6: error: no previous prototype for 'sss_nic_validate_channel_setting_in_ntuple' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:136:6: error: no previous prototype for 'sss_nic_free_rq_res_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:208:5: error: no previous prototype for 'sss_nic_init_rq_desc_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:235:6: error: no previous prototype for 'sss_nic_free_rq_desc_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:241:5: error: no previous prototype for 'sss_nic_alloc_rq_desc_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:267:5: error: no previous prototype for 'sss_nic_update_rx_rss' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:282:6: error: no previous prototype for 'sss_nic_reset_rx_rss' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:80:5: error: no previous prototype for 'sss_nic_alloc_rq_res_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_reset.c:179:6: error: no previous prototype for 'sss_nic_rq_watchdog_handler' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:104:6: error: no previous prototype for 'sss_nic_init_all_sq' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:128:5: error: no previous prototype for 'sss_nic_alloc_sq_desc_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:153:6: error: no previous prototype for 'sss_nic_free_sq_desc_group' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:200:6: error: no previous prototype for 'sss_nic_flush_all_sq' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:42:5: error: no previous prototype for 'sss_nic_alloc_sq_resource' [-Werror=missing-prototypes]
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:87:6: error: no previous prototype for 'sss_nic_free_sq_resource' [-Werror=missing-prototypes]
include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
samples/vfio-mdev/.tmp_mdpy-fb.o: warning: objtool: missing symbol for section .text
Unverified Error/Warning (likely false positive, kindly check if interested):
include/linux/list.h:63:20: warning: storing the address of local variable 'wait' in '((struct list_head *)x)[1].prev' [-Wdangling-pointer=]
include/linux/list.h:63:20: warning: storing the address of local variable 'waiter' in '*(struct list_head *)((char *)sem + 8).prev' [-Wdangling-pointer=]
include/linux/printk.h:346:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
include/linux/signal.h:180:29: warning: this statement may fall through [-Wimplicit-fallthrough=]
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-io-hierarchy-iodump.c:warning:no-previous-prototype-for-__bio_stage_hierarchy_start
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_deinit_hwdev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_detach
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_shutdown
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_stop
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_init_hwdev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-fault_level-set-but-not-used
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-pcie_src-set-but-not-used
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_io_flush.c:error:no-previous-prototype-for-sss_hwdev_flush_io
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_deinit_mgmt_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_init_mgmt_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm.c:error:no-previous-prototype-for-sss_sync_send_adm_msg
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_complete_adm_event
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_deinit_adm
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_init_adm
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_ceq_intr_handle
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_init_ceqe_desc
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_ctrlq_flush_sync_cmd
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq_channel
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_init_ctrlq_channel
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_reinit_ctrlq_ctx
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_wait_ctrlq_stop
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_alloc_db_addr
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_auto_mask
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_state
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_free_db_addr
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_func_type
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_glb_pf_vf_offset
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_global_func_id
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pcie_itf_id
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pf_id_of_vf
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_ppf_id
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_deinit_irq_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_init_irq_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_deinit_mbx
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_init_mbx
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_init_func_mbx_msg
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_recv_mbx_aeq_handler
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_flush_mgmt_workq
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_force_complete_all
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_mgmt_msg_aeqe_handler
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_error.c:error:no-previous-prototype-for-sss_detect_pci_error
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_attach_is_enable
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_names
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_init_uld_lock
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_lock_uld
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_unlock_uld
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_attach_uld_driver
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_pci_probe
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_adapter
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_function
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_pci_dev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_all_uld_driver
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_uld_driver
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_dettach_uld_dev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_pci_remove
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_unmap_pci_bar
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_shutdown.c:error:no-previous-prototype-for-sss_pci_shutdown
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool.c:error:no-previous-prototype-for-sss_nic_set_ethtool_ops
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_api.c:error:no-previous-prototype-for-sss_nic_finish_loop_test
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_ethtool_stats
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_link_ksettings
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_sset_count
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_strings
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_set_link_ksettings
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_clean_mac_list_filter
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_set_rx_mode_work
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_release_qp_irq
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_request_qp_irq
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-get_nic_uld_info
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_plug
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_unplug
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_link_err
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_is_netdev_ops_match
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_set_vf_link_state
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_add_vid
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_kill_vid
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_set_netdev_ops
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_delete_flow
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_all_flows
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_flow
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_update_flow
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_rx_flow_rule
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_list
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_node_list
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_validate_channel_setting_in_ntuple
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_res_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_res_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_init_rq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_reset_rx_rss
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_update_rx_rss
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_reset.c:error:no-previous-prototype-for-sss_nic_rq_watchdog_handler
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_resource
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_flush_all_sq
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_resource
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_init_all_sq
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| `-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|-- arm64-allnoconfig
| |-- include-linux-list.h:warning:storing-the-address-of-local-variable-wait-in-((struct-list_head-)x)-.prev
| |-- include-linux-list.h:warning:storing-the-address-of-local-variable-waiter-in-(struct-list_head-)((char-)sem-).prev
| |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
| |-- include-linux-printk.h:warning:this-statement-may-fall-through
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
| |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-defconfig
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- include-linux-list.h:warning:storing-the-address-of-local-variable-waiter-in-(struct-list_head-)((char-)sem-).prev
| |-- include-linux-printk.h:warning:this-statement-may-fall-through
| `-- include-linux-signal.h:warning:this-statement-may-fall-through
|-- arm64-randconfig-001-20250811
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
| |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
| `-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|-- arm64-randconfig-004-20250811
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- x86_64-allnoconfig
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-allyesconfig
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- x86_64-buildonly-randconfig-002-20250811
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-003-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| |-- crypto-sm4_generic.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- kernel-sched-core.c:error:use-of-undeclared-identifier-root_task_group
| |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-004-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
| |-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
| `-- samples-vfio-mdev-.tmp_mdpy-fb.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-005-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- x86_64-buildonly-randconfig-006-20250811
| |-- block-bfq-cgroup.o:warning:objtool:missing-symbol-for-section-.text
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-rdma.o:warning:objtool:missing-symbol-for-section-.text
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- x86_64-defconfig
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| `-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|-- x86_64-randconfig-102-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-randconfig-103-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-throttle.c:preceding-lock-on-line
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-randconfig-122-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- kernel-sched-core.c:error:use-of-undeclared-identifier-root_task_group
| `-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|-- x86_64-randconfig-123-20250811
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| `-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
|-- x86_64-randconfig-161-20250811
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| `-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
`-- x86_64-rhel-9.4-rust
|-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
|-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
|-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
|-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
|-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
|-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
|-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
|-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
|-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
`-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
elapsed time: 732m
configs tested: 17
configs skipped: 122
tested configs:
arm64 allmodconfig gcc-15.1.0
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250811 gcc-8.5.0
arm64 randconfig-002-20250811 gcc-5.5.0
arm64 randconfig-003-20250811 gcc-5.5.0
arm64 randconfig-004-20250811 gcc-11.5.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250811 gcc-12
x86_64 buildonly-randconfig-002-20250811 clang-20
x86_64 buildonly-randconfig-003-20250811 clang-20
x86_64 buildonly-randconfig-004-20250811 clang-20
x86_64 buildonly-randconfig-005-20250811 clang-20
x86_64 buildonly-randconfig-006-20250811 clang-20
x86_64 defconfig gcc-11
x86_64 rhel-9.4-rust clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[PATCH openEuler-1.0-LTS v2] ext4: add bounds checking in get_max_inline_xattr_value_size()
by Yang Erkun 11 Aug '25
by Yang Erkun 11 Aug '25
11 Aug '25
From: Theodore Ts'o <tytso(a)mit.edu>
stable inclusion
from stable-4.19.283
commit 3d7b8fbcd2273e2b9f4c6de5ce2f4c0cd3cb1205
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/ICSDLQ
CVE: N/A
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 2220eaf90992c11d888fe771055d4de330385f01 upstream.
Normally the extended attributes in the inode body would have been
checked when the inode is first opened, but if someone is writing to
the block device while the file system is mounted, it's possible for
the inode table to get corrupted. Add bounds checking to avoid
reading beyond the end of allocated memory if this happens.
Reported-by: syzbot+1966db24521e5f6e23f7(a)syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?extid=1966db24521e5f6e23f7
Cc: stable(a)kernel.org
Signed-off-by: Theodore Ts'o <tytso(a)mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Yang Erkun <yangerkun(a)huawei.com>
---
fs/ext4/inline.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index bb7839bcae35..4e4d4291e0e1 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -32,6 +32,7 @@ static int get_max_inline_xattr_value_size(struct inode *inode,
struct ext4_xattr_ibody_header *header;
struct ext4_xattr_entry *entry;
struct ext4_inode *raw_inode;
+ void *end;
int free, min_offs;
if (!EXT4_INODE_HAS_XATTR_SPACE(inode))
@@ -55,14 +56,23 @@ static int get_max_inline_xattr_value_size(struct inode *inode,
raw_inode = ext4_raw_inode(iloc);
header = IHDR(inode, raw_inode);
entry = IFIRST(header);
+ end = (void *)raw_inode + EXT4_SB(inode->i_sb)->s_inode_size;
/* Compute min_offs. */
- for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
+ while (!IS_LAST_ENTRY(entry)) {
+ void *next = EXT4_XATTR_NEXT(entry);
+
+ if (next >= end) {
+ EXT4_ERROR_INODE(inode,
+ "corrupt xattr in inline inode");
+ return 0;
+ }
if (!entry->e_value_inum && entry->e_value_size) {
size_t offs = le16_to_cpu(entry->e_value_offs);
if (offs < min_offs)
min_offs = offs;
}
+ entry = next;
}
free = min_offs -
((void *)entry - (void *)IFIRST(header)) - sizeof(__u32);
--
2.39.2
2
1

11 Aug '25
From: Huangjunhua <huangjunhua14(a)huawei.com>
driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/ICB3EN
CVE: NA
-----------------------------------------
To meet the competitive evolution requirements ("5+1+1") for the
new-generation Kunpeng ARM platform, Tianchi architecture, and
BMC management system. The products, BMC, and HiSilicon collaboratively
planned the next-generation BMC evolution chip Hi1712.
Building upon Hi1711, the Hi1712 chip enhances interfaces, computing power,
and security. The Huawei iBMA driver requires adaptation to support Hi1712
for in-band and out-of-band communication.
Signed-off-by: Huangjunhua <huangjunhua14(a)huawei.com>
---
MAINTAINERS | 6 +
.../ethernet/huawei/bma/cdev_drv/bma_cdev.c | 2 +-
.../bma/cdev_veth_drv/virtual_cdev_eth_net.c | 18 +-
.../bma/cdev_veth_drv/virtual_cdev_eth_net.h | 1 -
.../net/ethernet/huawei/bma/edma_drv/Makefile | 2 +-
.../huawei/bma/edma_drv/bma_devintf.c | 118 ++++-
.../ethernet/huawei/bma/edma_drv/bma_pci.c | 284 +++++++++--
.../ethernet/huawei/bma/edma_drv/bma_pci.h | 33 +-
.../ethernet/huawei/bma/edma_drv/edma_drv.h | 340 +++++++++++++
.../ethernet/huawei/bma/edma_drv/edma_host.c | 160 +++++-
.../ethernet/huawei/bma/edma_drv/edma_host.h | 14 +-
.../ethernet/huawei/bma/edma_drv/edma_queue.c | 470 ++++++++++++++++++
.../ethernet/huawei/bma/edma_drv/edma_queue.h | 29 ++
.../ethernet/huawei/bma/edma_drv/edma_reg.h | 127 +++++
.../huawei/bma/include/bma_ker_intf.h | 46 ++
.../huawei/bma/kbox_drv/kbox_include.h | 2 +-
.../ethernet/huawei/bma/veth_drv/veth_hb.c | 25 +-
.../ethernet/huawei/bma/veth_drv/veth_hb.h | 12 +-
18 files changed, 1589 insertions(+), 100 deletions(-)
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 61baf2cfc4e1..446f2f49fd14 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9707,6 +9707,12 @@ F: drivers/net/ethernet/huawei/hinic3/cqm/
F: drivers/net/ethernet/huawei/hinic3/hw/
F: drivers/net/ethernet/huawei/hinic3/include/
+HUAWEI ETHERNET DRIVER
+M: Huangjunhua <huangjunhua14(a)huawei.com>
+L: netdev(a)vger.kernel.org
+S: Maintained
+F: drivers/net/ethernet/huawei/bma/
+
HUAWEI BIFUR DRIVER
M: Xiaoping zheng <zhengxiaoping5(a)huawei.com>
L: netdev(a)vger.kernel.org
diff --git a/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c b/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
index 275c2cdfe5db..59181c829a68 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
+++ b/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
@@ -28,7 +28,7 @@
#ifdef DRV_VERSION
#define CDEV_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define CDEV_VERSION "0.3.10"
+#define CDEV_VERSION "0.4.0"
#endif
#define CDEV_DEFAULT_NUM 4
diff --git a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
index e6dbec7073e4..adb6dd6972f5 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
+++ b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
@@ -151,6 +151,12 @@ int edma_veth_setup_all_tx_resources(struct edma_eth_dev_s *edma_eth)
u8 *shmq_head = NULL;
u8 *shmq_head_p = NULL;
struct edma_rxtx_q_s *tx_queue = NULL;
+ int ret = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return -EFAULT;
tx_queue = (struct edma_rxtx_q_s *)
kmalloc(sizeof(struct edma_rxtx_q_s), GFP_KERNEL);
@@ -173,7 +179,7 @@ int edma_veth_setup_all_tx_resources(struct edma_eth_dev_s *edma_eth)
tx_queue->pdmalbase_v = (struct edma_dmal_s *)
(shmq_head + SHMDMAL_OFFSET);
- tx_queue->pdmalbase_p = (u8 *)(VETH_SHAREPOOL_BASE_INBMC +
+ tx_queue->pdmalbase_p = (u8 *)(veth_address +
(MAX_SHAREQUEUE_SIZE * 0) + SHMDMAL_OFFSET);
memset(tx_queue->pdmalbase_v, 0, MAX_SHMDMAL_SIZE);
@@ -219,6 +225,12 @@ int edma_veth_setup_all_rx_resources(struct edma_eth_dev_s *edma_eth)
u8 *shmq_head = NULL;
u8 *shmq_head_p = NULL;
struct edma_rxtx_q_s *rx_queue = NULL;
+ int ret = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return -EFAULT;
rx_queue = (struct edma_rxtx_q_s *)
kmalloc(sizeof(struct edma_rxtx_q_s), GFP_KERNEL);
@@ -241,7 +253,7 @@ int edma_veth_setup_all_rx_resources(struct edma_eth_dev_s *edma_eth)
/* DMA address list (only used in host). */
rx_queue->pdmalbase_v = (struct edma_dmal_s *)
(shmq_head + SHMDMAL_OFFSET);
- rx_queue->pdmalbase_p = (u8 *)(VETH_SHAREPOOL_BASE_INBMC +
+ rx_queue->pdmalbase_p = (u8 *)(veth_address +
MAX_SHAREQUEUE_SIZE + SHMDMAL_OFFSET);
memset(rx_queue->pdmalbase_v, 0, MAX_SHMDMAL_SIZE);
@@ -1304,6 +1316,8 @@ int __start_dmalist_H_2(struct edma_rxtx_q_s *prxtx_queue, u32 type, u32 cnt)
dma_transfer.type = DMA_LIST;
dma_transfer.transfer.list.dma_addr =
(dma_addr_t)prxtx_queue->pdmalbase_p;
+ dma_transfer.pdmalbase_v = (struct bspveth_dmal *)prxtx_queue->pdmalbase_v;
+ dma_transfer.dmal_cnt = prxtx_queue->dmal_cnt;
ret = bma_intf_start_dma(g_eth_edmaprivate.edma_priv, &dma_transfer);
LOG(DLOG_DEBUG, "after -> %u/%u/%u/%u, ret: %d",
diff --git a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
index cb7c28cb5ddd..bc4b2147272b 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
+++ b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
@@ -56,7 +56,6 @@
#define BSP_ERR_AGAIN (BSP_ETH_ERR_BASE + 18)
#define BSP_ERR_NOT_TO_HANDLE (BSP_ETH_ERR_BASE + 19)
-#define VETH_SHAREPOOL_BASE_INBMC (0x84820000)
#define VETH_SHAREPOOL_SIZE (0xdf000)
#define VETH_SHAREPOOL_OFFSET (0x10000)
#define MAX_SHAREQUEUE_SIZE (0x20000)
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/Makefile b/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
index 46cc51275a71..048bcb9e2bbe 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
@@ -1,2 +1,2 @@
obj-$(CONFIG_BMA) += host_edma_drv.o
-host_edma_drv-y := bma_pci.o bma_devintf.o edma_host.o
+host_edma_drv-y := bma_pci.o bma_devintf.o edma_host.o edma_queue.o
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c b/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
index 3b5eb39d6da6..45815fdc18eb 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
@@ -31,6 +31,18 @@ static struct bma_dev_s *g_bma_dev;
static ATOMIC_NOTIFIER_HEAD(bma_int_notify_list);
+static enum pci_type_e g_pci_type = PCI_TYPE_UNKNOWN;
+
+enum pci_type_e get_pci_type(void)
+{
+ return g_pci_type;
+}
+
+void set_pci_type(enum pci_type_e type)
+{
+ g_pci_type = type;
+}
+
static int bma_priv_insert_priv_list(struct bma_priv_data_s *priv, u32 type,
u32 sub_type)
{
@@ -342,6 +354,82 @@ int bma_intf_unregister_type(void **handle)
}
EXPORT_SYMBOL(bma_intf_unregister_type);
+int bma_intf_get_host_number(unsigned int *host_number)
+{
+ unsigned int devfn = 0;
+
+ if (!host_number)
+ return -EFAULT;
+
+ if (!g_bma_dev) {
+ BMA_LOG(DLOG_ERROR, "g_bma_dev is NULL\n");
+ return -ENXIO;
+ }
+
+ devfn = g_bma_dev->bma_pci_dev->pdev->devfn;
+ BMA_LOG(DLOG_DEBUG, "devfn is %u\n", devfn);
+ if (devfn == PF7 || devfn == PF10) {
+ *host_number = HOST_NUMBER_0;
+ } else if (devfn == PF4) {
+ *host_number = HOST_NUMBER_1;
+ } else {
+ BMA_LOG(DLOG_DEBUG, "Treat as host0 because of unknown PF %u\n", devfn);
+ *host_number = HOST_NUMBER_0;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(bma_intf_get_host_number);
+
+int bma_intf_get_map_address(enum addr_type type, phys_addr_t *addr)
+{
+ u32 host_number = 0;
+ u32 devfn = 0;
+ u32 i = 0;
+ enum pci_type_e pci_type = get_pci_type();
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ static struct bma_map_addr_s addr_info[] = {
+ {PCI_TYPE_UNKNOWN, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1711_HOST0_ADDR},
+ {PCI_TYPE_UNKNOWN, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1711_HOST0_ADDR},
+ {PCI_TYPE_171x, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1711_HOST0_ADDR},
+ {PCI_TYPE_171x, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1711_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1712_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1712_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_1, TYPE_EDMA_ADDR, EDMA_1712_HOST1_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_1, TYPE_VETH_ADDR, VETH_1712_HOST1_ADDR},
+ };
+
+ if (!bma_pci_dev) {
+ BMA_LOG(DLOG_ERROR, "bma_pci_dev is null\n");
+ return -EFAULT;
+ }
+
+ devfn = bma_pci_dev->pdev->devfn;
+ if (devfn == PF7 || devfn == PF10) {
+ host_number = HOST_NUMBER_0;
+ } else if (devfn == PF4) {
+ host_number = HOST_NUMBER_1;
+ } else {
+ BMA_LOG(DLOG_DEBUG, "Treat as host0 because of unknown PF %u\n", devfn);
+ host_number = HOST_NUMBER_0;
+ }
+
+ for (i = 0; i < ARRAY_SIZE(addr_info); i++) {
+ if (pci_type == addr_info[i].pci_type &&
+ host_number == addr_info[i].host_number && type == addr_info[i].addr_type) {
+ *addr = addr_info[i].addr;
+ return 0;
+ }
+ }
+
+ BMA_LOG(DLOG_DEBUG,
+ "Cannot find proper map address! pci_type: %u, host_number: %u, addr_type: %u\n",
+ pci_type, host_number, type);
+ return -EFAULT;
+}
+EXPORT_SYMBOL(bma_intf_get_map_address);
+
int bma_intf_check_edma_supported(void)
{
return !(!g_bma_dev);
@@ -350,13 +438,30 @@ EXPORT_SYMBOL(bma_intf_check_edma_supported);
int bma_intf_check_dma_status(enum dma_direction_e dir)
{
- return edma_host_check_dma_status(dir);
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return -EFAULT;
+ }
+
+ return get_bma_pci_dev_handler_s()[pci_type].check_dma(dir);
}
EXPORT_SYMBOL(bma_intf_check_dma_status);
void bma_intf_reset_dma(enum dma_direction_e dir)
{
- edma_host_reset_dma(&g_bma_dev->edma_host, dir);
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (!g_bma_dev)
+ return;
+
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return;
+ }
+
+ get_bma_pci_dev_handler_s()[pci_type].reset_dma(&g_bma_dev->edma_host, dir);
}
EXPORT_SYMBOL(bma_intf_reset_dma);
@@ -375,10 +480,16 @@ int bma_intf_start_dma(void *handle, struct bma_dma_transfer_s *dma_transfer)
{
int ret = 0;
struct bma_priv_data_s *priv = (struct bma_priv_data_s *)handle;
+ enum pci_type_e pci_type = get_pci_type();
if (!handle || !dma_transfer)
return -EFAULT;
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return -EFAULT;
+ }
+
ret = edma_host_dma_start(&g_bma_dev->edma_host, priv);
if (ret) {
BMA_LOG(DLOG_ERROR,
@@ -386,7 +497,8 @@ int bma_intf_start_dma(void *handle, struct bma_dma_transfer_s *dma_transfer)
return ret;
}
- ret = edma_host_dma_transfer(&g_bma_dev->edma_host, priv, dma_transfer);
+ ret = get_bma_pci_dev_handler_s()[pci_type].transfer_edma_host(&g_bma_dev->edma_host, priv,
+ dma_transfer);
if (ret)
BMA_LOG(DLOG_ERROR,
"edma_host_dma_transfer failed! ret = %d\n", ret);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
index 577acaedb0e2..c9daf7195cfd 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
@@ -27,13 +27,20 @@
#define PCI_VENDOR_ID_HUAWEI_PME 0x19e5
#define PCI_DEVICE_ID_KBOX_0_PME 0x1710
+#define PCI_DEVICE_ID_EDMA_0 0x1712
#define PCI_PME_USEABLE_SPACE (4 * 1024 * 1024)
+
+#define HOSTRTC_OFFSET 0x10000
+#define EDMA_OFFSET 0x20000
+#define VETH_OFFSET 0x30000
+
#define PME_DEV_CHECK(device, vendor) ((device) == PCI_DEVICE_ID_KBOX_0_PME && \
(vendor) == PCI_VENDOR_ID_HUAWEI_PME)
#define PCI_BAR0_PME_1710 0x85800000
#define PCI_BAR0 0
#define PCI_BAR1 1
+#define PCI_BAR2 2
#define PCI_USING_DAC_DEFAULT 0
#define GET_HIGH_ADDR(address) ((sizeof(unsigned long) == 8) ? \
@@ -51,15 +58,57 @@ int debug = DLOG_ERROR;
MODULE_PARM_DESC(debug, "Debug switch (0=close debug, 1=open debug)");
static struct bma_pci_dev_s *g_bma_pci_dev;
+struct bma_pci_dev_s *get_bma_pci_dev(void)
+{
+ return g_bma_pci_dev;
+}
+
+void set_bma_pci_dev(struct bma_pci_dev_s *bma_pci_dev)
+{
+ g_bma_pci_dev = bma_pci_dev;
+}
static int bma_pci_suspend(struct pci_dev *pdev, pm_message_t state);
static int bma_pci_resume(struct pci_dev *pdev);
static int bma_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
static void bma_pci_remove(struct pci_dev *pdev);
+static struct bma_pci_dev_handler_s g_bma_pci_dev_handler_s[] = {
+ // for placeholder
+ {
+ .ioremap_bar_mem = NULL,
+ .iounmap_bar_mem = NULL,
+ .check_dma = NULL,
+ .transfer_edma_host = NULL,
+ .reset_dma = NULL,
+ },
+ // for 1710/1711
+ {
+ .ioremap_bar_mem = ioremap_pme_bar_mem_v1,
+ .iounmap_bar_mem = iounmap_bar_mem_v1,
+ .check_dma = edma_host_check_dma_status_v1,
+ .transfer_edma_host = edma_host_dma_transfer_v1,
+ .reset_dma = edma_host_reset_dma_v1,
+ },
+ // for 1712
+ {
+ .ioremap_bar_mem = ioremap_pme_bar_mem_v2,
+ .iounmap_bar_mem = iounmap_bar_mem_v2,
+ .check_dma = edma_host_check_dma_status_v2,
+ .transfer_edma_host = edma_host_dma_transfer_v2,
+ .reset_dma = edma_host_reset_dma_v2,
+ }
+};
+
+struct bma_pci_dev_handler_s *get_bma_pci_dev_handler_s(void)
+{
+ return g_bma_pci_dev_handler_s;
+}
+
static const struct pci_device_id bma_pci_tbl[] = {
{PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_FPGA, PCI_DEVICE_ID_KBOX_0)},
{PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_PME, PCI_DEVICE_ID_KBOX_0_PME)},
+ { PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_PME, PCI_DEVICE_ID_EDMA_0) },
{}
};
MODULE_DEVICE_TABLE(pci, bma_pci_tbl);
@@ -73,7 +122,7 @@ int edma_param_get_statics(char *buf, const struct kernel_param *kp)
}
module_param_call(statistics, NULL, edma_param_get_statics, &debug, 0444);
-MODULE_PARM_DESC(statistics, "Statistics info of edma driver,readonly");
+MODULE_PARM_DESC(statistics, "Statistics info of edma driver, readonly");
int edma_param_set_debug(const char *buf, const struct kernel_param *kp)
{
@@ -99,34 +148,40 @@ module_param_call(debug, &edma_param_set_debug, ¶m_get_int, &debug, 0644);
void __iomem *kbox_get_base_addr(void)
{
- if (!g_bma_pci_dev || (!(g_bma_pci_dev->kbox_base_addr))) {
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev || (!(bma_pci_dev->kbox_base_addr))) {
BMA_LOG(DLOG_ERROR, "kbox_base_addr NULL point\n");
return NULL;
}
- return g_bma_pci_dev->kbox_base_addr;
+ return bma_pci_dev->kbox_base_addr;
}
EXPORT_SYMBOL_GPL(kbox_get_base_addr);
unsigned long kbox_get_io_len(void)
{
- if (!g_bma_pci_dev) {
- BMA_LOG(DLOG_ERROR, "kbox_io_len is error,can not get it\n");
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev) {
+ BMA_LOG(DLOG_ERROR, "kbox_io_len is error, can not get it\n");
return 0;
}
- return g_bma_pci_dev->kbox_base_len;
+ return bma_pci_dev->kbox_base_len;
}
EXPORT_SYMBOL_GPL(kbox_get_io_len);
unsigned long kbox_get_base_phy_addr(void)
{
- if (!g_bma_pci_dev || !g_bma_pci_dev->kbox_base_phy_addr) {
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev || bma_pci_dev->kbox_base_phy_addr == 0) {
BMA_LOG(DLOG_ERROR, "kbox_base_phy_addr NULL point\n");
return 0;
}
- return g_bma_pci_dev->kbox_base_phy_addr;
+ return bma_pci_dev->kbox_base_phy_addr;
}
EXPORT_SYMBOL_GPL(kbox_get_base_phy_addr);
@@ -160,7 +215,7 @@ s32 __atu_config_H(struct pci_dev *pdev, unsigned int region,
return 0;
}
-static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
+void iounmap_bar_mem_v1(struct bma_pci_dev_s *bma_pci_dev)
{
if (bma_pci_dev->kbox_base_addr) {
iounmap(bma_pci_dev->kbox_base_addr);
@@ -171,15 +226,84 @@ static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
iounmap(bma_pci_dev->bma_base_addr);
bma_pci_dev->bma_base_addr = NULL;
bma_pci_dev->edma_swap_addr = NULL;
+ bma_pci_dev->veth_swap_addr = NULL;
bma_pci_dev->hostrtc_viraddr = NULL;
}
}
-static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
- struct bma_pci_dev_s *bma_pci_dev)
+void iounmap_bar_mem_v2(struct bma_pci_dev_s *bma_pci_dev)
+{
+ if (bma_pci_dev->kbox_base_addr) {
+ iounmap(bma_pci_dev->kbox_base_addr);
+ bma_pci_dev->kbox_base_addr = NULL;
+ }
+
+ if (bma_pci_dev->bma_base_addr) {
+ iounmap(bma_pci_dev->bma_base_addr);
+ bma_pci_dev->bma_base_addr = NULL;
+ }
+
+ if (bma_pci_dev->hostrtc_viraddr) {
+ iounmap(bma_pci_dev->hostrtc_viraddr);
+ bma_pci_dev->hostrtc_viraddr = NULL;
+ bma_pci_dev->edma_swap_addr = NULL;
+ bma_pci_dev->veth_swap_addr = NULL;
+ }
+}
+
+static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
+{
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (pci_type == PCI_TYPE_UNKNOWN)
+ return;
+
+ g_bma_pci_dev_handler_s[pci_type].iounmap_bar_mem(bma_pci_dev);
+}
+
+static int config_atu(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
+{
+ int ret = 0;
+ phys_addr_t edma_address = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_EDMA_ADDR, &edma_address);
+ if (ret != 0)
+ return ret;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return ret;
+
+ __atu_config_H(pdev, 0,
+ GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr),
+ (bma_pci_dev->kbox_base_phy_addr & 0xffffffff),
+ 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE);
+
+ __atu_config_H(pdev, 1,
+ GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr),
+ (bma_pci_dev->hostrtc_phyaddr & 0xffffffff),
+ 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE);
+
+ __atu_config_H(pdev, 2,
+ GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr),
+ (bma_pci_dev->edma_swap_phy_addr & 0xffffffff),
+ 0, edma_address, EDMA_SWAP_DATA_SIZE);
+
+ __atu_config_H(pdev, 3,
+ GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr),
+ (bma_pci_dev->veth_swap_phy_addr & 0xffffffff),
+ 0, veth_address, VETH_SWAP_DATA_SIZE);
+
+ return ret;
+}
+
+// for 1710 1711
+int ioremap_pme_bar_mem_v1(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
{
unsigned long bar1_resource_flag = 0;
u32 data = 0;
+ int ret;
bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE;
BMA_LOG(DLOG_DEBUG, "1710\n");
@@ -217,25 +341,11 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
bma_pci_dev->edma_swap_phy_addr,
bma_pci_dev->veth_swap_phy_addr);
- __atu_config_H(pdev, 0,
- GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr),
- (bma_pci_dev->kbox_base_phy_addr & 0xffffffff),
- 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE);
-
- __atu_config_H(pdev, 1,
- GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr),
- (bma_pci_dev->hostrtc_phyaddr & 0xffffffff),
- 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE);
-
- __atu_config_H(pdev, 2,
- GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr),
- (bma_pci_dev->edma_swap_phy_addr & 0xffffffff),
- 0, EDMA_SWAP_DATA_BASE, EDMA_SWAP_DATA_SIZE);
-
- __atu_config_H(pdev, 3,
- GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr),
- (bma_pci_dev->veth_swap_phy_addr & 0xffffffff),
- 0, VETH_SWAP_DATA_BASE, VETH_SWAP_DATA_SIZE);
+ ret = config_atu(pdev, bma_pci_dev);
+ if (ret != 0) {
+ BMA_LOG(DLOG_DEBUG, "config atu failed.\n");
+ return ret;
+ }
if (bar1_resource_flag & IORESOURCE_CACHEABLE) {
bma_pci_dev->bma_base_addr =
@@ -250,7 +360,6 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
if (!bma_pci_dev->bma_base_addr) {
BMA_LOG(DLOG_ERROR,
"Cannot map device registers, aborting\n");
-
return -ENODEV;
}
@@ -270,11 +379,80 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
return 0;
}
+// for 1712
+int ioremap_pme_bar_mem_v2(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
+{
+ unsigned long bar2_resource_flag = 0;
+
+ bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE;
+ BMA_LOG(DLOG_DEBUG, "1712\n");
+
+ bma_pci_dev->bma_base_phy_addr = (unsigned long)pci_resource_start(pdev, PCI_BAR2);
+ bar2_resource_flag = (unsigned long)pci_resource_flags(pdev, PCI_BAR2);
+ if (!(bar2_resource_flag & IORESOURCE_MEM)) {
+ BMA_LOG(DLOG_ERROR, "Cannot find proper PCI device base address, aborting\n");
+ return -ENODEV;
+ }
+
+ bma_pci_dev->bma_base_len = (unsigned long)pci_resource_len(pdev, PCI_BAR2);
+ bma_pci_dev->edma_swap_len = EDMA_SWAP_DATA_SIZE;
+ bma_pci_dev->veth_swap_len = VETH_SWAP_DATA_SIZE;
+
+ BMA_LOG(DLOG_DEBUG,
+ "bar2: bma_base_len = 0x%lx, edma_swap_len = %ld, veth_swap_len = %ld(0x%lx)\n",
+ bma_pci_dev->bma_base_len, bma_pci_dev->edma_swap_len, bma_pci_dev->veth_swap_len,
+ bma_pci_dev->veth_swap_len);
+
+ bma_pci_dev->hostrtc_phyaddr = bma_pci_dev->bma_base_phy_addr + HOSTRTC_OFFSET;
+ /* edma */
+ bma_pci_dev->edma_swap_phy_addr = bma_pci_dev->bma_base_phy_addr + EDMA_OFFSET;
+ /* veth */
+ bma_pci_dev->veth_swap_phy_addr = bma_pci_dev->bma_base_phy_addr + VETH_OFFSET;
+
+ BMA_LOG(DLOG_DEBUG,
+ "bar2: bma_base_phy_addr = 0x%lx, bma_base_len = %zu , hostrtc_phyaddr = 0x%lx, edma_swap_phy_addr = 0x%lx, veth_swap_phy_addr = 0x%lx\n",
+ bma_pci_dev->bma_base_phy_addr, bma_pci_dev->bma_base_len,
+ bma_pci_dev->hostrtc_phyaddr, bma_pci_dev->edma_swap_phy_addr,
+ bma_pci_dev->veth_swap_phy_addr);
+
+ bma_pci_dev->bma_base_addr = ioremap(bma_pci_dev->bma_base_phy_addr,
+ bma_pci_dev->bma_base_len);
+ if (!bma_pci_dev->bma_base_addr) {
+ BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
+ return -ENODEV;
+ }
+
+ if (bar2_resource_flag & IORESOURCE_CACHEABLE) {
+ BMA_LOG(DLOG_DEBUG, "ioremap with cache, %d\n", IORESOURCE_CACHEABLE);
+ bma_pci_dev->hostrtc_viraddr = ioremap(bma_pci_dev->hostrtc_phyaddr,
+ bma_pci_dev->bma_base_len - HOSTRTC_OFFSET);
+ } else {
+ BMA_LOG(DLOG_DEBUG, "ioremap without cache\n");
+ bma_pci_dev->hostrtc_viraddr = IOREMAP(bma_pci_dev->hostrtc_phyaddr,
+ bma_pci_dev->bma_base_len - HOSTRTC_OFFSET);
+ }
+
+ if (!bma_pci_dev->hostrtc_viraddr) {
+ BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
+ iounmap(bma_pci_dev->bma_base_addr);
+ bma_pci_dev->bma_base_addr = NULL;
+ return -ENODEV;
+ }
+
+ bma_pci_dev->edma_swap_addr = (unsigned char *)bma_pci_dev->hostrtc_viraddr
+ - HOSTRTC_OFFSET + EDMA_OFFSET;
+ bma_pci_dev->veth_swap_addr = (unsigned char *)bma_pci_dev->hostrtc_viraddr
+ - HOSTRTC_OFFSET + VETH_OFFSET;
+
+ return 0;
+}
+
static int ioremap_bar_mem(struct pci_dev *pdev,
struct bma_pci_dev_s *bma_pci_dev)
{
int err = 0;
unsigned long bar0_resource_flag = 0;
+ enum pci_type_e pci_type = get_pci_type();
bar0_resource_flag = pci_resource_flags(pdev, PCI_BAR0);
@@ -294,8 +472,8 @@ static int ioremap_bar_mem(struct pci_dev *pdev,
bma_pci_dev->kbox_base_phy_addr, bma_pci_dev->kbox_base_len,
bma_pci_dev->kbox_base_len);
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
- err = ioremap_pme_bar1_mem(pdev, bma_pci_dev);
+ if (pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME && pci_type != PCI_TYPE_UNKNOWN) {
+ err = g_bma_pci_dev_handler_s[pci_type].ioremap_bar_mem(pdev, bma_pci_dev);
if (err != 0)
return err;
}
@@ -314,11 +492,7 @@ static int ioremap_bar_mem(struct pci_dev *pdev,
if (!bma_pci_dev->kbox_base_addr) {
BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
-
- iounmap(bma_pci_dev->bma_base_addr);
- bma_pci_dev->bma_base_addr = NULL;
- bma_pci_dev->edma_swap_addr = NULL;
- bma_pci_dev->hostrtc_viraddr = NULL;
+ iounmap_bar_mem(bma_pci_dev);
return -ENOMEM;
}
@@ -355,13 +529,14 @@ int pci_device_init(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
{
int err = 0;
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
+ if ((pdev->device == PCI_DEVICE_ID_KBOX_0_PME || pdev->device == PCI_DEVICE_ID_EDMA_0) &&
+ pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME) {
err = bma_devinft_init(bma_pci_dev);
if (err) {
BMA_LOG(DLOG_ERROR, "bma_devinft_init failed\n");
bma_devinft_cleanup(bma_pci_dev);
iounmap_bar_mem(bma_pci_dev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
pci_release_regions(pdev);
kfree(bma_pci_dev);
#ifdef CONFIG_PCI_MSI
@@ -400,27 +575,25 @@ int pci_device_config(struct pci_dev *pdev)
goto err_out_free_dev;
}
+ set_bma_pci_dev(bma_pci_dev);
+
err = ioremap_bar_mem(pdev, bma_pci_dev);
if (err) {
BMA_LOG(DLOG_ERROR, "ioremap_edma_io_mem failed\n");
goto err_out_release_regions;
}
- g_bma_pci_dev = bma_pci_dev;
-
if (SET_DMA_MASK(&pdev->dev)) {
BMA_LOG(DLOG_ERROR,
- "No usable DMA ,configuration, aborting,goto failed2!!!\n");
+ "No usable DMA, configuration, aborting, goto failed2!!!\n");
goto err_out_unmap_bar;
}
- g_bma_pci_dev = bma_pci_dev;
-
return pci_device_init(pdev, bma_pci_dev);
err_out_unmap_bar:
iounmap_bar_mem(bma_pci_dev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
err_out_release_regions:
pci_release_regions(pdev);
err_out_free_dev:
@@ -442,16 +615,27 @@ static int bma_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
UNUSED(ent);
- if (g_bma_pci_dev)
+ if (get_bma_pci_dev())
return -EPERM;
err = pci_enable_device(pdev);
if (err) {
- BMA_LOG(DLOG_ERROR, "Cannot enable PCI device,aborting\n");
+ BMA_LOG(DLOG_ERROR, "Cannot enable PCI device, aborting\n");
return err;
}
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
+ switch (pdev->device) {
+ case PCI_DEVICE_ID_KBOX_0_PME:
+ set_pci_type(PCI_TYPE_171x);
+ break;
+ case PCI_DEVICE_ID_EDMA_0:
+ set_pci_type(PCI_TYPE_1712);
+ break;
+ default:
+ set_pci_type(PCI_TYPE_UNKNOWN);
+ break;
+ }
+ if (pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME && get_pci_type() != PCI_TYPE_UNKNOWN) {
err = pme_pci_enable_msi(pdev);
if (err)
return err;
@@ -468,7 +652,7 @@ static void bma_pci_remove(struct pci_dev *pdev)
struct bma_pci_dev_s *bma_pci_dev =
(struct bma_pci_dev_s *)pci_get_drvdata(pdev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
(void)pci_set_drvdata(pdev, NULL);
if (bma_pci_dev) {
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
index a66724e2cb74..b43882997c01 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
@@ -18,6 +18,8 @@
#include "bma_devintf.h"
#include "bma_include.h"
+#include "../include/bma_ker_intf.h"
+#include "edma_host.h"
#include <linux/netdevice.h>
#define EDMA_SWAP_BASE_OFFSET 0x10000
@@ -25,10 +27,8 @@
#define HOSTRTC_REG_BASE 0x2f000000
#define HOSTRTC_REG_SIZE EDMA_SWAP_BASE_OFFSET
-#define EDMA_SWAP_DATA_BASE 0x84810000
#define EDMA_SWAP_DATA_SIZE 65536
-#define VETH_SWAP_DATA_BASE 0x84820000
#define VETH_SWAP_DATA_SIZE 0xdf000
#define ATU_VIEWPORT 0x900
@@ -71,7 +71,7 @@ struct bma_pci_dev_s {
#ifdef DRV_VERSION
#define BMA_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define BMA_VERSION "0.3.10"
+#define BMA_VERSION "0.4.0"
#endif
#ifdef CONFIG_ARM64
@@ -95,4 +95,31 @@ extern int debug;
int edmainfo_show(char *buff);
+struct bma_pci_dev_s *get_bma_pci_dev(void);
+void set_bma_pci_dev(struct bma_pci_dev_s *bma_pci_dev);
+
+struct bma_pci_dev_handler_s {
+ int (*ioremap_bar_mem)(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+ void (*iounmap_bar_mem)(struct bma_pci_dev_s *bma_pci_dev);
+ int (*check_dma)(enum dma_direction_e dir);
+ int (*transfer_edma_host)(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+ void (*reset_dma)(struct edma_host_s *edma_host, enum dma_direction_e dir);
+};
+
+struct bma_pci_dev_handler_s *get_bma_pci_dev_handler_s(void);
+
+int ioremap_pme_bar_mem_v1(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+int ioremap_pme_bar_mem_v2(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+void iounmap_bar_mem_v1(struct bma_pci_dev_s *bma_pci_dev);
+void iounmap_bar_mem_v2(struct bma_pci_dev_s *bma_pci_dev);
+int edma_host_check_dma_status_v1(enum dma_direction_e dir);
+int edma_host_check_dma_status_v2(enum dma_direction_e dir);
+int edma_host_dma_transfer_v1(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+int edma_host_dma_transfer_v2(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+void edma_host_reset_dma_v1(struct edma_host_s *edma_host, enum dma_direction_e dir);
+void edma_host_reset_dma_v2(struct edma_host_s *edma_host, enum dma_direction_e dir);
+
#endif
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
new file mode 100644
index 000000000000..b0a09c022ba8
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
@@ -0,0 +1,340 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_DRV_H
+#define EDMA_DRV_H
+
+#define DMA_STATISTICS_LEN 16
+#define DMA_CH_TAG_SIZE 64
+
+#define HISILICON_VENDOR_ID 0x19e5
+#define DMA_PCIE_DEVICE_ID 0xa122
+
+#define MAX_DMA_CHS 4 /* The current version supports a maximum of 2x2 channels. */
+#define DMA_CHS_EACH_PORT 2
+
+#define MAX_SQ_DEPTH 0xFFFF
+#define MAX_CQ_DEPTH 0xFFFF
+
+#define DMA_DONE_MASK 0x1
+#define DMA_DONE_UNMASK 0x0
+#define DMA_ERR_MASK 0x7FFFE
+#define DMA_ERR_UNMASK 0x0
+
+#define BD_SO 0
+#define BD_RO 1
+
+#define SIZE_4M 0x400000
+#define SIZE_16K 0x4000
+#define SIZE_64K 0x10000
+#define SIZE_OF_U64 0x8
+#define SPD_SIZE_MAX 32
+
+/* Use integer arithmetic for approximate computation instead of floating-point. */
+#define US_PER_SECOND_DIV_1KB (1000000 / 1024)
+
+#define DMA_PHY_STORE_OFFSET (SIZE_64K - SIZE_OF_U64)
+#define DMA_RMT_PHY_STORE_OFFSET (DMA_PHY_STORE_OFFSET - SIZE_OF_U64)
+#define BIT_0_TO_31_MASK 0xFFFFFFFF
+
+#define DMA_TMOUT (2 * HZ) /* 2 seconds */
+
+enum {
+ EP0 = 0,
+ EP1 = 1
+};
+
+enum {
+ DRC_LOCAL = 0,
+ DRC_REMOTE = 1
+};
+
+enum {
+ DIR_B2H = 0,
+ DIR_H2B = 1,
+};
+
+enum {
+ DMA_INIT = 0x0,
+ DMA_RESET = 0x1,
+ DMA_PAUSE = 0x2,
+ DMA_NOTIFY = 0x3,
+ LINKDOWN = 0x4,
+ LINKUP = 0x5,
+ FLR = 0x6
+};
+
+enum {
+ PF0 = 0,
+ PF1 = 1,
+ PF2 = 2,
+ PF4 = 4,
+ PF7 = 7,
+ PF10 = 10
+};
+
+enum {
+ RESERVED = 0x0, /* reserved */
+ SMALL_PACKET = 0x1, /* SmallPacket Descriptor */
+ DMA_READ = 0x2, /* Read Descriptor */
+ DMA_WRITE = 0x3, /* Write Descriptor */
+ DMA_LOOP = 0x4, /* Loop Descriptor */
+ DMA_MIX = 0x10, /* not available, User-defined for test */
+ DMA_WD_BARRIER = 0x11, /* not available, User-defined for test */
+ DMA_RD_BARRIER = 0x12, /* not available, User-defined for test */
+ DMA_LP_BARRIER = 0x13 /* not available, User-defined for test */
+};
+
+enum {
+ IDLE_STATE = 0x0, /* dma channel in idle status */
+ RUN_STATE = 0x1, /* dma channel in run status */
+ CPL_STATE = 0x2, /* dma channel in cpld status */
+ PAUSE_STATE = 0x3, /* dma channel in pause status */
+ HALT_STATE = 0x4, /* dma channel in halt status */
+ ABORT_STATE = 0x5, /* dma channel in abort status */
+ WAIT_STATE = 0x6 /* dma channel in wait status */
+};
+
+/* CQE status */
+enum {
+ DMA_DONE = 0x0, /* sqe done succ */
+ OPCODE_ERR = 0x1, /* sqe opcode invalid */
+ LEN_ERR = 0x2, /* sqe length invalid, only ocurs in smallpackt */
+ DROP_EN = 0x4, /* sqe drop happen */
+ WR_RMT_ERR = 0x8, /* write data to host fail */
+ RD_RMT_ERR = 0x10, /* read data from host fail */
+ RD_AXI_ERR = 0x20, /* read data/sqe from local fail */
+ WR_AXI_ERR = 0x40, /* write data/cqe to local fail */
+ POISON_CPL_ERR = 0x80, /* poison data */
+ SUB_SQ_ERR = 0x100, /* read sqe with CPL TLP */
+ DMA_CH_RESET = 0x200, /* dma channel should reset */
+ LINK_DOWN_ERR = 0x400, /* linkdown happen */
+ RECOVERY = 0x800 /* error status to be reset */
+};
+
+enum {
+ SDI_DMA_ADDR_SIZE_16K = 0,
+ SDI_DMA_ADDR_SIZE_32K = 1,
+ SDI_DMA_ADDR_SIZE_64K = 2,
+ SDI_DMA_ADDR_SIZE_128K = 3
+};
+
+union U_DMA_QUEUE_SQ_DEPTH {
+ struct {
+ unsigned int dma_queue_sq_depth : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_DEPTH {
+ struct {
+ unsigned int dma_queue_cq_depth : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_HEAD_PTR {
+ struct {
+ unsigned int dma_queue_cq_head_ptr : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_TAIL_PTR {
+ struct {
+ unsigned int dma_queue_cq_tail_ptr : 16; /* [15..0] */
+ unsigned int dma_queue_sqhd : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_SQ_TAIL_PTR {
+ struct {
+ unsigned int dma_queue_sq_tail_ptr : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CTRL0 {
+ struct {
+ unsigned int dma_queue_en : 1; /* [0] */
+ unsigned int dma_queue_icg_en : 1; /* [1] */
+ unsigned int reserved : 1; /* [2] */
+ unsigned int dma_rst_without_cq_ack_enable : 1; /* [3] */
+ unsigned int dma_queue_pause : 1; /* [4] */
+ unsigned int reserved_1 : 3; /* [7..5] */
+ unsigned int dma_queue_arb_weight : 8; /* [15..8] */
+ unsigned int reserved_2 : 3; /* [18...16] */
+ unsigned int dma_queue_cq_mrg_en : 1; /* [19] */
+ unsigned int dma_queue_cq_mrg_time : 2; /* [21..20] */
+ unsigned int dma_queue_local_err_done_int_en : 1; /* [22] */
+ unsigned int dma_queue_remote_err_done_int_en : 1; /* [23] */
+ unsigned int reserved_3 : 1; /* [24] */
+ unsigned int dma_queue_cq_full_disable : 1; /* [25] */
+ unsigned int dma_queue_cq_drct_sel : 1; /* [26] */
+ unsigned int dma_queue_sq_drct_sel : 1; /* [27] */
+ unsigned int dma_queue_sq_pa_lkp_err_abort_en : 1; /* [28] */
+ unsigned int dma_queue_sq_proc_err_abort_en : 1; /* [29] */
+ unsigned int dma_queue_sq_drop_err_abort_en : 1; /* [30] */
+ unsigned int dma_queue_sq_cfg_err_abort_en : 1; /* [31] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CTRL1 {
+ struct {
+ unsigned int dma_queue_reset : 1; /* [0] */
+ unsigned int dma_queue_abort_exit : 1; /* [1] */
+ unsigned int dma_va_enable : 1; /* [2] */
+ unsigned int reserved_0 : 1; /* [3] */
+ unsigned int dma_queue_port_num : 4; /* [7..4] */
+ unsigned int dma_queue_remote_msi_x_mask : 1; /* [8] */
+ unsigned int dma_va_enable_sq : 1; /* [9] */
+ unsigned int dma_va_enable_cq : 1; /* [10] */
+ unsigned int dma_queue_local_pfx_er : 1; /* [11] */
+ unsigned int dma_queue_local_pfx_pmr : 1; /* [12] */
+ unsigned int reserved_1 : 3; /* [15...13] */
+ unsigned int dma_queue_qos_en : 1; /* [16] */
+ unsigned int dma_queue_qos : 4; /* [20...17] */
+ unsigned int dma_queue_mpam_id : 11; /* [31..21] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_FSM_STS {
+ struct {
+ unsigned int dma_queue_sts : 4; /* [3..0] */
+ unsigned int dma_queue_not_work : 1; /* [4] */
+ unsigned int dma_queue_wait_spd_data_sts : 1; /* [5] */
+ unsigned int reserved_0 : 1; /* [6] */
+ unsigned int reserved_1 : 1; /* [7] */
+ unsigned int dma_queue_sub_fsm_sts : 3; /* [10..8] */
+ unsigned int reserved_2 : 21; /* [31..11] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_INT_STS {
+ struct {
+ unsigned int dma_queue_done_int_sts : 1; /* [0] */
+ unsigned int dma_queue_err00_int_sts : 1; /* [1] */
+ unsigned int dma_queue_err01_int_sts : 1; /* [2] */
+ unsigned int dma_queue_err02_int_sts : 1; /* [3] */
+ unsigned int dma_queue_err03_int_sts : 1; /* [4] */
+ unsigned int reserved : 1; /* [5] */
+ unsigned int dma_queue_err05_int_sts : 1; /* [6] */
+ unsigned int dma_queue_err06_int_sts : 1; /* [7] */
+ unsigned int dma_queue_err07_int_sts : 1; /* [8] */
+ unsigned int dma_queue_err08_int_sts : 1; /* [9] */
+ unsigned int dma_queue_err09_int_sts : 1; /* [10] */
+ unsigned int dma_queue_err10_int_sts : 1; /* [11] */
+ unsigned int dma_queue_err11_int_sts : 1; /* [12] */
+ unsigned int dma_queue_err12_int_sts : 1; /* [13] */
+ unsigned int dma_queue_err13_int_sts : 1; /* [14] */
+ unsigned int dma_queue_err14_int_sts : 1; /* [15] */
+ unsigned int dma_queue_err15_int_sts : 1; /* [16] */
+ unsigned int dma_queue_err16_int_sts : 1; /* [17] */
+ unsigned int dma_queue_err17_int_sts : 1; /* [18] */
+ unsigned int reserved_0 : 13; /* [31..19] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_INT_MSK {
+ struct {
+ unsigned int dma_queue_done_int_msk : 1; /* [0] */
+ unsigned int dma_queue_err00_int_msk : 1; /* [1] */
+ unsigned int dma_queue_err01_int_msk : 1; /* [2] */
+ unsigned int dma_queue_err02_int_msk : 1; /* [3] */
+ unsigned int dma_queue_err03_int_msk : 1; /* [4] */
+ unsigned int reserved : 1; /* [5] */
+ unsigned int dma_queue_err05_int_msk : 1; /* [6] */
+ unsigned int dma_queue_err06_int_msk : 1; /* [7] */
+ unsigned int dma_queue_err07_int_msk : 1; /* [8] */
+ unsigned int dma_queue_err08_int_msk : 1; /* [9] */
+ unsigned int dma_queue_err09_int_msk : 1; /* [10] */
+ unsigned int dma_queue_err10_int_msk : 1; /* [11] */
+ unsigned int dma_queue_err11_int_msk : 1; /* [12] */
+ unsigned int dma_queue_err12_int_msk : 1; /* [13] */
+ unsigned int dma_queue_err13_int_msk : 1; /* [14] */
+ unsigned int dma_queue_err14_int_msk : 1; /* [15] */
+ unsigned int dma_queue_err15_int_msk : 1; /* [16] */
+ unsigned int dma_queue_err16_int_msk : 1; /* [17] */
+ unsigned int dma_queue_err17_int_msk : 1; /* [18] */
+ unsigned int reserved_0 : 13 ; /* [31..19] */
+ } bits;
+
+ unsigned int u32;
+};
+
+struct dma_ch_sq_s {
+ u32 opcode : 4; /* [0~3] opcode */
+ u32 drop : 1; /* [4] drop */
+ u32 nw : 1; /* [5] nw */
+ u32 wd_barrier : 1; /* [6] write done barrier */
+ u32 rd_barrier : 1; /* [7] read done barrier */
+ u32 ldie : 1; /* [8] LDIE */
+ u32 rdie : 1; /* [9] rDIE */
+ u32 loop_barrier : 1; /* [10] */
+ u32 spd_barrier : 1; /* [11] */
+ u32 attr : 3; /* [12~14] attr */
+ u32 cq_disable : 1; /* [15] reserved */
+ u32 addrt : 2; /* [16~17] at */
+ u32 p3p4 : 2; /* [18~19] P3 P4 */
+ u32 pf : 3; /* [20~22] pf */
+ u32 vfen : 1; /* [23] vfen */
+ u32 vf : 8; /* [24~31] vf */
+ u32 pasid : 20; /* [0~19] pasid */
+ u32 er : 1; /* [20] er */
+ u32 pmr : 1; /* [21] pmr */
+ u32 prfen : 1; /* [22] prfen */
+ u32 reserved5 : 1; /* [23] reserved */
+ u32 msi : 8; /* [24~31] MSI/MSI-X vector */
+ u32 flow_id : 8; /* [0~7] Flow ID */
+ u32 reserved6 : 8; /* [8~15] reserved */
+ u32 TH : 1; /* [16] TH */
+ u32 PH : 2; /* [17~18] PH */
+ u32 reserved7 : 13; /* [19~31] reserved: some multiplex fields */
+ u32 length;
+ u32 src_addr_l;
+ u32 src_addr_h;
+ u32 dst_addr_l;
+ u32 dst_addr_h;
+};
+
+struct dma_ch_cq_s {
+ u32 reserved1;
+ u32 reserved2;
+ u32 sqhd : 16;
+ u32 reserved3 : 16;
+ u32 reserved4 : 16; /* [0~15] reserved */
+ u32 vld : 1; /* [16] vld */
+ u32 status : 15; /* [17~31] status */
+};
+
+#endif /* EDMA_DRV_H */
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
index be2f732ed9ed..1bfb123e43c0 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
@@ -20,11 +20,18 @@
#include <linux/seq_file.h>
#include "bma_pci.h"
+#include "edma_queue.h"
#include "edma_host.h"
static struct edma_user_inft_s *g_user_func[TYPE_MAX] = { 0 };
static struct bma_dev_s *g_bma_dev;
+
+struct bma_dev_s *get_bma_dev(void)
+{
+ return g_bma_dev;
+}
+
static int edma_host_dma_interrupt(struct edma_host_s *edma_host);
int edmainfo_show(char *buf)
@@ -231,7 +238,8 @@ void clear_int_dmab2h(struct edma_host_s *edma_host)
(void)pci_write_config_dword(pdev, REG_PCIE1_DMAWRITEINT_CLEAR, data);
}
-int edma_host_check_dma_status(enum dma_direction_e dir)
+// for 1710 1711
+int edma_host_check_dma_status_v1(enum dma_direction_e dir)
{
int ret = 0;
@@ -259,6 +267,18 @@ int edma_host_check_dma_status(enum dma_direction_e dir)
return ret;
}
+// for 1712
+int edma_host_check_dma_status_v2(enum dma_direction_e dir)
+{
+ UNUSED(dir);
+ if (check_dma_queue_state(CPL_STATE, TRUE) == 0 ||
+ check_dma_queue_state(IDLE_STATE, TRUE) == 0) {
+ return 1; /* ok */
+ }
+
+ return 0; /* busy */
+}
+
#ifdef USE_DMA
static int start_transfer_h2b(struct edma_host_s *edma_host, unsigned int len,
@@ -633,9 +653,9 @@ void host_dma_transfer_withlist(struct edma_host_s *edma_host,
}
}
-int edma_host_dma_transfer(struct edma_host_s *edma_host,
- struct bma_priv_data_s *priv,
- struct bma_dma_transfer_s *dma_transfer)
+// for 1710 1711
+int edma_host_dma_transfer_v1(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer)
{
int ret = 0;
unsigned long flags = 0;
@@ -673,7 +693,44 @@ int edma_host_dma_transfer(struct edma_host_s *edma_host,
return ret;
}
-void edma_host_reset_dma(struct edma_host_s *edma_host, int dir)
+// for 1712
+int edma_host_dma_transfer_v2(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer)
+{
+ int ret = 0;
+ unsigned long flags = 0;
+ struct bma_dev_s *bma_dev = NULL;
+
+ BMA_LOG(DLOG_DEBUG, "edma_host_dma_transfer 1712");
+
+ if (!edma_host || !priv || !dma_transfer)
+ return -EFAULT;
+
+ bma_dev = list_entry(edma_host, struct bma_dev_s, edma_host);
+
+ spin_lock_irqsave(&bma_dev->priv_list_lock, flags);
+
+ if (priv->user.dma_transfer == 0) {
+ spin_unlock_irqrestore(&bma_dev->priv_list_lock, flags);
+ BMA_LOG(DLOG_ERROR, "dma_transfer = %hhd\n", priv->user.dma_transfer);
+ return -EFAULT;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "transfer_edma_host 1712");
+
+ spin_unlock_irqrestore(&bma_dev->priv_list_lock, flags);
+
+ edma_host->statistics.dma_count++;
+
+ spin_lock_irqsave(&edma_host->reg_lock, flags);
+ ret = transfer_dma_queue(dma_transfer);
+ spin_unlock_irqrestore(&edma_host->reg_lock, flags);
+
+ return ret;
+}
+
+// for 1710/1711
+void edma_host_reset_dma_v1(struct edma_host_s *edma_host, enum dma_direction_e dir)
{
u32 data = 0;
u32 reg_addr = 0;
@@ -717,6 +774,13 @@ void edma_host_reset_dma(struct edma_host_s *edma_host, int dir)
reg_addr, count, data);
}
+// for 1712
+void edma_host_reset_dma_v2(struct edma_host_s *edma_host, enum dma_direction_e dir)
+{
+ UNUSED(dir);
+ reset_edma_host(edma_host);
+}
+
int edma_host_dma_stop(struct edma_host_s *edma_host,
struct bma_priv_data_s *priv)
{
@@ -750,8 +814,8 @@ static int edma_host_send_msg(struct edma_host_s *edma_host)
if (send_mbx_hdr->mbxlen > 0) {
if (send_mbx_hdr->mbxlen > HOST_MAX_SEND_MBX_LEN) {
/*share memory is disable */
+ BMA_LOG(DLOG_DEBUG, "mbxlen is too long: %d\n", send_mbx_hdr->mbxlen);
send_mbx_hdr->mbxlen = 0;
- BMA_LOG(DLOG_DEBUG, "mbxlen is too long\n");
return -EFAULT;
}
@@ -1296,6 +1360,69 @@ int edma_host_user_unregister(u32 type)
return 0;
}
+static void init_edma_sq_cq(struct edma_host_s *edma_host)
+{
+ u64 sq_phy_addr = 0;
+ u64 cq_phy_addr = 0;
+ phys_addr_t edma_address = 0;
+ int ret = 0;
+
+ if (get_pci_type() != PCI_TYPE_1712)
+ return;
+
+ ret = bma_intf_get_map_address(TYPE_EDMA_ADDR, &edma_address);
+ if (ret != 0)
+ return;
+
+ edma_host->edma_sq_addr = (void *)((unsigned char *)edma_host->edma_recv_addr
+ + HOST_MAX_RCV_MBX_LEN);
+ edma_host->edma_cq_addr = (void *)((unsigned char *)edma_host->edma_sq_addr
+ + sizeof(struct dma_ch_sq_s) * SQ_DEPTH);
+ sq_phy_addr = edma_address + HOST_DMA_FLAG_LEN + HOST_MAX_SEND_MBX_LEN
+ + HOST_MAX_RCV_MBX_LEN;
+ cq_phy_addr = sq_phy_addr + sizeof(struct dma_ch_sq_s) * SQ_DEPTH;
+
+ BMA_LOG(DLOG_DEBUG,
+ "sq_phy_addr = 0x%llx, SQ size = %zu, cq_phy_addr = 0x%llx, CQ size = %zu",
+ sq_phy_addr, sizeof(struct dma_ch_sq_s) * SQ_DEPTH,
+ cq_phy_addr, sizeof(struct dma_ch_cq_s) * CQ_DEPTH);
+ BMA_LOG(DLOG_DEBUG, "sq_addr = %pK, cq_addr = %pK", edma_host->edma_sq_addr,
+ edma_host->edma_cq_addr);
+
+ (void)memset(edma_host->edma_sq_addr, 0,
+ sizeof(struct dma_ch_sq_s) * SQ_DEPTH + sizeof(struct dma_ch_cq_s) * CQ_DEPTH);
+
+ set_dma_queue_sq_base_l(sq_phy_addr & PCIE_ADDR_L_32_MASK);
+ set_dma_queue_sq_base_h((u32)(sq_phy_addr >> PCIE_ADDR_H_SHIFT_32));
+ set_dma_queue_cq_base_l(cq_phy_addr & PCIE_ADDR_L_32_MASK);
+ set_dma_queue_cq_base_h((u32)(cq_phy_addr >> PCIE_ADDR_H_SHIFT_32));
+
+ reset_edma_host(edma_host);
+}
+
+static void edma_setup_timer(struct edma_host_s *edma_host)
+{
+#ifdef HAVE_TIMER_SETUP
+ timer_setup(&edma_host->timer, edma_host_timeout, 0);
+#else
+ setup_timer(&edma_host->timer, edma_host_timeout,
+ (unsigned long)edma_host);
+#endif
+ (void)mod_timer(&edma_host->timer, jiffies_64 + TIMER_INTERVAL_CHECK);
+
+#ifdef USE_DMA
+ #ifdef HAVE_TIMER_SETUP
+ timer_setup(&edma_host->dma_timer, edma_host_dma_timeout, 0);
+
+ #else
+ setup_timer(&edma_host->dma_timer, edma_host_dma_timeout,
+ (unsigned long)edma_host);
+ #endif
+ (void)mod_timer(&edma_host->dma_timer,
+ jiffies_64 + DMA_TIMER_INTERVAL_CHECK);
+#endif
+}
+
int edma_host_init(struct edma_host_s *edma_host)
{
int ret = 0;
@@ -1352,24 +1479,7 @@ int edma_host_init(struct edma_host_s *edma_host)
edma_host->b2h_state = B2HSTATE_IDLE;
#ifdef EDMA_TIMER
- #ifdef HAVE_TIMER_SETUP
- timer_setup(&edma_host->timer, edma_host_timeout, 0);
- #else
- setup_timer(&edma_host->timer, edma_host_timeout,
- (unsigned long)edma_host);
- #endif
- (void)mod_timer(&edma_host->timer, jiffies_64 + TIMER_INTERVAL_CHECK);
-#ifdef USE_DMA
- #ifdef HAVE_TIMER_SETUP
- timer_setup(&edma_host->dma_timer, edma_host_dma_timeout, 0);
-
- #else
- setup_timer(&edma_host->dma_timer, edma_host_dma_timeout,
- (unsigned long)edma_host);
- #endif
- (void)mod_timer(&edma_host->dma_timer,
- jiffies_64 + DMA_TIMER_INTERVAL_CHECK);
-#endif
+ edma_setup_timer(edma_host);
#else
init_completion(&edma_host->msg_ready);
@@ -1383,6 +1493,8 @@ int edma_host_init(struct edma_host_s *edma_host)
}
#endif
+ init_edma_sq_cq(edma_host);
+
#ifdef HAVE_TIMER_SETUP
timer_setup(&edma_host->heartbeat_timer,
edma_host_heartbeat_timer, 0);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
index cbbd86fd6602..93c81bc92286 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
@@ -18,6 +18,8 @@
#include "bma_include.h"
#include "../include/bma_ker_intf.h"
+#include "edma_reg.h"
+#include "edma_drv.h"
#define EDMA_TIMER
@@ -176,6 +178,13 @@
#define U64ADDR_H(addr) ((((u64)addr) >> 32) & 0xffffffff)
#define U64ADDR_L(addr) ((addr) & 0xffffffff)
+#define MAX_RESET_DMA_TIMES 10
+#define DELAY_BETWEEN_RESET_DMA 100
+#define PCI_VENDOR_ID_HUAWEI_PME 0x19e5
+#define PCI_DEVICE_ID_EDMA_0 0x1712
+#define SQ_DEPTH 128
+#define CQ_DEPTH 128
+
struct bma_register_dev_type_s {
u32 type;
u32 sub_type;
@@ -263,6 +272,8 @@ struct edma_host_s {
void __iomem *edma_flag;
void __iomem *edma_send_addr;
void __iomem *edma_recv_addr;
+ void __iomem *edma_sq_addr;
+ void __iomem *edma_cq_addr;
#ifdef USE_DMA
struct timer_list dma_timer;
#endif
@@ -309,6 +320,8 @@ struct edma_user_inft_s {
int (*add_msg)(void *msg, size_t msg_len);
};
+struct bma_dev_s *get_bma_dev(void);
+
int is_edma_b2h_int(struct edma_host_s *edma_host);
void edma_int_to_bmc(struct edma_host_s *edma_host);
int edma_host_mmap(struct edma_host_s *edma_hos, struct file *filp,
@@ -336,7 +349,6 @@ int edma_host_user_unregister(u32 type);
int edma_host_init(struct edma_host_s *edma_host);
void edma_host_cleanup(struct edma_host_s *edma_host);
int edma_host_send_driver_msg(const void *msg, size_t msg_len, int subtype);
-void edma_host_reset_dma(struct edma_host_s *edma_host, int dir);
void clear_int_dmah2b(struct edma_host_s *edma_host);
void clear_int_dmab2h(struct edma_host_s *edma_host);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
new file mode 100644
index 000000000000..678262f7412c
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
@@ -0,0 +1,470 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/errno.h>
+#include <linux/kthread.h>
+#include <linux/mm.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+
+#include "bma_pci.h"
+#include "edma_host.h"
+#include "edma_queue.h"
+
+static u32 pcie_dma_read(u32 offset)
+{
+ u32 reg_val;
+
+ reg_val = readl(get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ BMA_LOG(DLOG_DEBUG, "readl, offset 0x%x val 0x%x\n", offset, reg_val);
+ return reg_val;
+}
+
+static void pcie_dma_write(u32 offset, u32 reg_val)
+{
+ u32 read_val;
+
+ (void)writel(reg_val, get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ read_val = readl(get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ if (read_val != reg_val) {
+ BMA_LOG(DLOG_DEBUG,
+ "writel fail, read_value: 0x%x, set_value: 0x%x, offset: 0x%x\n",
+ read_val, reg_val, offset);
+ return;
+ }
+ BMA_LOG(DLOG_DEBUG, "writel, offset 0x%x val 0x%x\n", offset, reg_val);
+}
+
+static void set_dma_queue_int_msk(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_INT_MSK_0_REG, val);
+}
+
+static void set_dma_queue_err_int_msk(u32 val)
+{
+ union U_DMA_QUEUE_INT_MSK reg_val;
+
+ // The least significant bit (bit 0) of this register is reserved and must be cleared,
+ // while the remaining bits should retain their original values.
+ reg_val.u32 = val & 0xFFFFFFFE;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_ERR_INT_MSK_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_int_sts(u32 val)
+{
+ union U_DMA_QUEUE_INT_STS reg_val;
+
+ reg_val.u32 = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_INT_STS_0_REG, reg_val.u32);
+}
+
+static void get_dma_queue_int_sts(u32 *val)
+{
+ union U_DMA_QUEUE_INT_STS reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_INT_STS_0_REG);
+ *val = reg_val.u32;
+}
+
+static void get_dma_queue_fsm_sts(u32 *val)
+{
+ union U_DMA_QUEUE_FSM_STS reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_FSM_STS_0_REG);
+ *val = reg_val.bits.dma_queue_sts;
+}
+
+static void pause_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_pause = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void enable_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_en = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void reset_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL1 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL1_0_REG);
+ reg_val.bits.dma_queue_reset = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL1_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_sq_tail(u32 val)
+{
+ union U_DMA_QUEUE_SQ_TAIL_PTR reg_val;
+
+ reg_val.bits.dma_queue_sq_tail_ptr = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_cq_head(u32 val)
+{
+ union U_DMA_QUEUE_CQ_HEAD_PTR reg_val;
+
+ reg_val.bits.dma_queue_cq_head_ptr = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_HEAD_PTR_0_REG, reg_val.u32);
+}
+
+void set_dma_queue_sq_base_l(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_BASE_L_0_REG, val);
+}
+
+void set_dma_queue_sq_base_h(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_BASE_H_0_REG, val);
+}
+
+void set_dma_queue_cq_base_l(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_BASE_L_0_REG, val);
+}
+
+void set_dma_queue_cq_base_h(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_BASE_H_0_REG, val);
+}
+
+static void set_dma_queue_sq_depth(u32 val)
+{
+ union U_DMA_QUEUE_SQ_DEPTH reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_SQ_DEPTH_0_REG);
+ reg_val.bits.dma_queue_sq_depth = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_DEPTH_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_cq_depth(u32 val)
+{
+ union U_DMA_QUEUE_CQ_DEPTH reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CQ_DEPTH_0_REG);
+ reg_val.bits.dma_queue_cq_depth = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_DEPTH_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_arb_weight(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_arb_weight = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_drct_sel(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_cq_drct_sel = val;
+ reg_val.bits.dma_queue_sq_drct_sel = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void get_dma_queue_sq_tail(u32 *val)
+{
+ union U_DMA_QUEUE_SQ_TAIL_PTR reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG);
+ *val = reg_val.bits.dma_queue_sq_tail_ptr;
+}
+
+static void get_dma_queue_cq_tail(u32 *val)
+{
+ union U_DMA_QUEUE_CQ_TAIL_PTR reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CQ_TAIL_PTR_0_REG);
+ *val = reg_val.bits.dma_queue_cq_tail_ptr;
+}
+
+static void get_dma_queue_sq_head(u32 *val)
+{
+ u32 reg_val;
+
+ reg_val = pcie_dma_read(PCIE_DMA_QUEUE_SQ_STS_0_REG);
+ /* dma_queue_sq_head_ptr bit[15:0] */
+ *val = reg_val & 0xFFFF;
+}
+
+static void set_dma_queue_err_abort(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_sq_pa_lkp_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_proc_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_drop_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_cfg_err_abort_en = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_flr_disable(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_FLR_DISABLE_REG, val);
+}
+
+static void clear_dma_queue_int_chk(u32 mask)
+{
+ u32 int_sts;
+
+ (void)get_dma_queue_int_sts(&int_sts);
+ if (int_sts & mask)
+ (void)set_dma_queue_int_sts(mask);
+}
+
+s32 check_dma_queue_state(u32 state, u32 flag)
+{
+ u32 dma_state = 0;
+ unsigned long timeout;
+
+ BMA_LOG(DLOG_DEBUG, "state:%u, flag:%u\n", state, flag);
+
+ timeout = jiffies + TIMER_INTERVAL_CHECK;
+
+ while (1) {
+ get_dma_queue_fsm_sts(&dma_state);
+ BMA_LOG(DLOG_DEBUG, "DMA stats[%u]\n", dma_state);
+ // Flag is 0 and state does not equal to target value
+ // OR Flag is 1 and state is equal to target value
+ if ((!flag && dma_state != state) || (flag && dma_state == state))
+ break;
+
+ if (time_after(jiffies, timeout)) {
+ BMA_LOG(DLOG_DEBUG, "Wait stats[%u] fail\n", state);
+ return -ETIMEDOUT;
+ }
+ udelay(1);
+ }
+ return 0;
+}
+
+static s32 reset_dma(void)
+{
+ u32 dma_state = 0;
+
+ /* get dma channel fsm */
+ check_dma_queue_state(WAIT_STATE, FALSE);
+ get_dma_queue_fsm_sts(&dma_state);
+ BMA_LOG(DLOG_DEBUG, "dma_state:%u\n", dma_state);
+ switch (dma_state) {
+ /* idle status, dma channel need no reset */
+ case IDLE_STATE:
+ return 0;
+ case RUN_STATE:
+ pause_dma_queue(ENABLE);
+ fallthrough;
+ case ABORT_STATE:
+ case CPL_STATE:
+ enable_dma_queue(DISABLE);
+ if (check_dma_queue_state(RUN_STATE, FALSE))
+ return -ETIMEDOUT;
+ fallthrough;
+ case PAUSE_STATE:
+ case HALT_STATE:
+ set_dma_queue_sq_tail(0);
+ set_dma_queue_cq_head(0);
+ reset_dma_queue(ENABLE);
+ pause_dma_queue(DISABLE);
+ if (check_dma_queue_state(IDLE_STATE, TRUE))
+ return -ETIMEDOUT;
+ fallthrough;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static void init_dma(void)
+{
+ /* set dma channel sq tail */
+ set_dma_queue_sq_tail(0);
+ /* set dma channel cq head */
+ set_dma_queue_cq_head(0);
+ /* set dma queue drct sel */
+ set_dma_queue_drct_sel(DRC_LOCAL);
+ /* set dma channel sq depth */
+ set_dma_queue_sq_depth(SQ_DEPTH - 1);
+ /* set dma channel cq depth */
+ set_dma_queue_cq_depth(CQ_DEPTH - 1);
+ /* dma not process FLR , only cpu process FLR */
+ set_dma_queue_flr_disable(0x1);
+ /* set dma queue arb weight */
+ set_dma_queue_arb_weight(0x1F);
+ /* clear dma queue int status */
+ set_dma_queue_int_sts(0x1FFF);
+ /* set dma queue int mask */
+ set_dma_queue_err_int_msk(0x0);
+ set_dma_queue_int_msk(0x0);
+ /* set dma queue abort err en */
+ set_dma_queue_err_abort(ENABLE);
+ /* enable dma channel en */
+ enable_dma_queue(ENABLE);
+}
+
+s32 wait_done_dma_queue(unsigned long timeout)
+{
+ struct dma_ch_cq_s *p_cur_last_cq;
+ struct dma_ch_cq_s *p_dma_cq;
+ unsigned long end;
+ u32 sq_tail;
+ u32 sq_valid;
+ u32 cq_tail;
+ u32 cq_valid;
+
+ p_dma_cq = (struct dma_ch_cq_s *)((&get_bma_dev()->edma_host)->edma_cq_addr);
+ end = jiffies + timeout;
+
+ while (time_before(jiffies, end)) {
+ (void)get_dma_queue_sq_tail(&sq_tail);
+ (void)get_dma_queue_cq_tail(&cq_tail);
+
+ cq_valid = (cq_tail + CQ_DEPTH - 1) % (CQ_DEPTH);
+ p_cur_last_cq = &p_dma_cq[cq_valid];
+ sq_valid = (sq_tail + SQ_DEPTH - 1) % (SQ_DEPTH);
+ BMA_LOG(DLOG_DEBUG,
+ "sq_tail %d, cq_tail %d, cq_valid %d, sq_valid %d, p_cur_last_cq->sqhd %d\n",
+ sq_tail, cq_tail, cq_valid, sq_valid, p_cur_last_cq->sqhd);
+ if (p_cur_last_cq->sqhd == sq_valid) {
+ set_dma_queue_cq_head(cq_valid);
+ return 0;
+ }
+ }
+
+ return -ETIMEDOUT;
+}
+
+static s32 submit_dma_queue_sq(u32 dir, struct bspveth_dmal pdmalbase_v, u32 pf)
+{
+ u32 sq_tail;
+ u32 sq_head;
+ u32 sq_availble;
+ struct dma_ch_sq_s sq_submit;
+ struct dma_ch_sq_s *p_dma_sq;
+
+ p_dma_sq = (struct dma_ch_sq_s *)((&get_bma_dev()->edma_host)->edma_sq_addr);
+ (void)get_dma_queue_sq_tail(&sq_tail);
+ (void)get_dma_queue_sq_head(&sq_head);
+ sq_availble = SQ_DEPTH - 1 - (((sq_tail - sq_head) + SQ_DEPTH) % SQ_DEPTH);
+ if (sq_availble < 1) {
+ BMA_LOG(DLOG_DEBUG, "cannot process %u descriptors, try again later\n", 1);
+ return -1;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, sq_tail get %d, sq_head %d, sq_availble %d\n",
+ sq_tail, sq_head, sq_availble);
+
+ (void)memset(&sq_submit, 0, sizeof(sq_submit));
+ if (dir == DIR_H2B)
+ sq_submit.opcode = DMA_READ;
+ else
+ sq_submit.opcode = DMA_WRITE;
+
+ BMA_LOG(DLOG_DEBUG, "PF: %u\n", pf);
+ sq_submit.ldie = ENABLE;
+ sq_submit.rdie = ENABLE;
+ sq_submit.attr &= (~0x2); /* SO(Strong Ordering) */
+ sq_submit.pf = pf & 0x7; /* 0x7 */
+ sq_submit.p3p4 = (pf >> 3) & 0x3; /* 0x3 */
+ sq_submit.length = pdmalbase_v.len;
+ sq_submit.src_addr_l = pdmalbase_v.slow;
+ sq_submit.src_addr_h = pdmalbase_v.shi;
+ sq_submit.dst_addr_l = pdmalbase_v.dlow;
+ sq_submit.dst_addr_h = pdmalbase_v.dhi;
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, dir %d, op %d, length %d\n", dir,
+ sq_submit.opcode, sq_submit.length);
+
+ memcpy(p_dma_sq + sq_tail, &sq_submit, sizeof(sq_submit));
+ sq_tail = (sq_tail + 1) % SQ_DEPTH;
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, sq_tail change %d,\n", sq_tail);
+ wmb(); /* memory barriers. */
+
+ (void)set_dma_queue_sq_tail(sq_tail);
+
+ return 0;
+}
+
+s32 transfer_dma_queue(struct bma_dma_transfer_s *dma_transfer)
+{
+ struct bspveth_dmal *pdmalbase_v;
+ u32 dmal_cnt;
+ s32 ret;
+ int i;
+
+ if (!dma_transfer) {
+ BMA_LOG(DLOG_DEBUG, "dma_transfer is NULL.\n");
+ return -EFAULT;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "transfer dma queue.\n");
+
+ /* clear local done int */
+ clear_dma_queue_int_chk(DMA_DONE_MASK);
+
+ pdmalbase_v = dma_transfer->pdmalbase_v;
+ dmal_cnt = dma_transfer->dmal_cnt;
+ for (i = 0; i < dmal_cnt; i++)
+ submit_dma_queue_sq(dma_transfer->dir, pdmalbase_v[i],
+ get_bma_dev()->bma_pci_dev->pdev->devfn);
+
+ (void)set_dma_queue_int_msk(DMA_DONE_UNMASK);
+ (void)set_dma_queue_err_int_msk(DMA_ERR_UNMASK);
+ (void)enable_dma_queue(ENABLE);
+
+ ret = wait_done_dma_queue(DMA_TMOUT);
+ if (ret)
+ BMA_LOG(DLOG_DEBUG, "EP DMA: dma wait timeout");
+
+ return ret;
+}
+
+void reset_edma_host(struct edma_host_s *edma_host)
+{
+ unsigned long flags = 0;
+ int count = 0;
+
+ if (!edma_host)
+ return;
+
+ spin_lock_irqsave(&edma_host->reg_lock, flags);
+
+ while (count++ < MAX_RESET_DMA_TIMES) {
+ if (reset_dma() == 0) {
+ BMA_LOG(DLOG_DEBUG, "reset dma successfully\n");
+ init_dma();
+ break;
+ }
+
+ mdelay(DELAY_BETWEEN_RESET_DMA);
+ }
+
+ spin_unlock_irqrestore(&edma_host->reg_lock, flags);
+ BMA_LOG(DLOG_DEBUG, "reset dma count=%d\n", count);
+}
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
new file mode 100644
index 000000000000..0cf449c0ae00
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_QUEUE_H
+#define EDMA_QUEUE_H
+#include "edma_host.h"
+
+s32 check_dma_queue_state(u32 state, u32 flag);
+void set_dma_queue_sq_base_l(u32 val);
+void set_dma_queue_sq_base_h(u32 val);
+void set_dma_queue_cq_base_l(u32 val);
+void set_dma_queue_cq_base_h(u32 val);
+void reset_edma_host(struct edma_host_s *edma_host);
+int transfer_edma_host(struct edma_host_s *host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *transfer);
+s32 transfer_dma_queue(struct bma_dma_transfer_s *dma_transfer);
+#endif
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
new file mode 100644
index 000000000000..c4e056a92bc8
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_REG_H
+#define EDMA_REG_H
+
+#define PORT_EP 0
+#define PORT_RP 1
+
+#define ENABLE 1
+#define DISABLE 0
+
+#define TRUE 1
+#define FALSE 0
+
+/* core0:x2/x1 core1:x1 */
+#define PCIE_CORE_NUM 2
+#define PCIE_REG_OFFSET 0x100000U
+#define PCIE_REG_SIZE 0x100000
+
+#define GEN1 0x1
+#define GEN2 0x2
+#define GEN3 0x3
+#define GEN4 0x4
+
+#define PCIE_ADDR_H_SHIFT_32 32
+#define PCIE_ADDR_L_32_MASK 0xFFFFFFFF
+
+#define AP_DMA_BIT BIT(5)
+#define AP_MASK_ALL 0x3FF
+#define AP_DMA_CHAN_REG_SIZE 0x100
+
+/********************************************************************************************/
+/* PCIE reg base */
+/********************************************************************************************/
+#define PCIE_BASE_ADDR 0x1E100000U
+#define AP_DMA_REG 0x10000U
+#define AP_IOB_TX_REG_BASE 0x0U
+#define AP_IOB_RX_REG_BASE 0x4000U
+#define AP_GLOBAL_REG_BASE 0x8000U
+
+/********************************************************************************************/
+/* PCIE AP DMA REG */
+/********************************************************************************************/
+#define PCIE_DMA_EP_INT_MSK_REG 0x24 /* DMA_EP_INT_MSK */
+#define PCIE_DMA_EP_INT_REG 0x28 /* DMA_EP_INT */
+#define PCIE_DMA_EP_INT_STS_REG 0x2C /* DMA_EP_INT_STS */
+#define PCIE_DMA_FLR_DISABLE_REG 0xA00 /* DMA_FLR_DISABLE */
+#define PCIE_DMA_QUEUE_SQ_BASE_L_0_REG 0x2000 /* DMA Queue SQ Base Address Low Register */
+#define PCIE_DMA_QUEUE_SQ_BASE_H_0_REG 0x2004 /* DMA Queue SQ Base Address High Register */
+#define PCIE_DMA_QUEUE_SQ_DEPTH_0_REG 0x2008 /* DMA Queue SQ Depth */
+#define PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG 0x200C /* DMA Queue SQ Tail Pointer Register */
+#define PCIE_DMA_QUEUE_CQ_BASE_L_0_REG 0x2010 /* DMA Queue CQ Base Address Low Register */
+#define PCIE_DMA_QUEUE_CQ_BASE_H_0_REG 0x2014 /* DMA Queue CQ Base Address High Register */
+#define PCIE_DMA_QUEUE_CQ_DEPTH_0_REG 0x2018 /* DMA Queue CQ Depth */
+#define PCIE_DMA_QUEUE_CQ_HEAD_PTR_0_REG 0x201C /* DMA Queue CQ Head Pointer Register */
+#define PCIE_DMA_QUEUE_CTRL0_0_REG 0x2020 /* DMA Queue control Register 0 */
+#define PCIE_DMA_QUEUE_CTRL1_0_REG 0x2024 /* DMA Queue control Register 1 */
+#define PCIE_DMA_QUEUE_FSM_STS_0_REG 0x2030 /* DMA Queue FSM Status Register */
+#define PCIE_DMA_QUEUE_SQ_STS_0_REG 0x2034 /* DMA Queue SQ and CQ status Register */
+#define PCIE_DMA_QUEUE_CQ_TAIL_PTR_0_REG 0x203C /* DMA Queue CQ Tail Pointer Register */
+#define PCIE_DMA_QUEUE_INT_STS_0_REG 0x2040 /* DMA Queue Interrupt Status */
+#define PCIE_DMA_QUEUE_INT_MSK_0_REG 0x2044 /* DMA Queue Interrupt Mask Register */
+#define PCIE_DMA_QUEUE_ERR_INT_STS_0_REG 0x2048 /* DMA Queue Err Interrupt Status */
+#define PCIE_DMA_QUEUE_ERR_INT_MSK_0_REG 0x204C /* DMA Queue Err Interrupt Mask Register */
+#define PCIE_DMA_QUEUE_INT_RO_0_REG 0x206C /* DMA Queue Interrupt RO Register */
+
+/********************************************************************************************/
+/* PCIE AP_GLOBAL_REG */
+/********************************************************************************************/
+#define PCIE_CE_ENA 0x0008
+#define PCIE_UNF_ENA 0x0010
+#define PCIE_UF_ENA 0x0018
+
+#define PCIE_MSI_MASK 0x00F4
+#define PORT_INTX_ASSERT_MASK 0x01B0
+#define PORT_INTX_DEASSERT_MASK 0x01B4
+
+#define PCIE_AP_NI_ENA 0x0100
+#define PCIE_AP_CE_ENA 0x0104
+#define PCIE_AP_UNF_ENA 0x0108
+#define PCIE_AP_UF_ENA 0x010c
+#define PCIE_AP_NI_MASK 0x0110
+#define PCIE_AP_CE_MASK 0x0114
+#define PCIE_AP_UNF_MASK 0x0118
+#define PCIE_AP_UF_MASK 0x011C
+#define PCIE_AP_NI_STATUS 0x0120
+#define PCIE_AP_CE_STATUS 0x0124
+#define PCIE_AP_UNF_STATUS 0x0128
+#define PCIE_AP_UF_STATUS 0x012C
+#define PCIE_CORE_NI_ENA 0x0160
+#define PCIE_CORE_CE_ENA 0x0164
+#define PCIE_CORE_UNF_ENA 0x0168
+#define PCIE_CORE_UF_ENA 0x016c
+
+#define AP_PORT_EN_REG 0x0800
+#define AP_APB_SYN_RST 0x0810
+#define AP_AXI_SYN_RST 0x0814
+#define AP_IDLE 0x0C08
+
+/********************************************************************************************/
+/* PCIE AP_IOB_RX_COM_REG Reg */
+/********************************************************************************************/
+#define IOB_RX_AML_SNOOP 0x1AAC
+#define IOB_RX_MSI_INT_CTRL 0x1040
+
+#define IOB_RX_MSI_INT_ADDR_HIGH 0x1044
+#define IOB_RX_MSI_INT_ADDR_LOW 0x1048
+
+#define IOB_RX_PAB_SMMU_BYPASS_CTRL 0x2004
+
+#define IOB_RX_DMA_REG_REMAP_0 0x0E30
+#define IOB_RX_DMA_REG_REMAP_1 0x0E34
+
+#endif /* EDMA_REG_H */
diff --git a/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h b/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
index d1df99b0c9fd..8d284d5f6e62 100644
--- a/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
+++ b/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
@@ -47,6 +47,17 @@ enum intr_mod {
INTR_ENABLE = 1,
};
+enum addr_type {
+ TYPE_EDMA_ADDR = 0,
+ TYPE_VETH_ADDR = 1,
+};
+
+enum pci_type_e {
+ PCI_TYPE_UNKNOWN,
+ PCI_TYPE_171x,
+ PCI_TYPE_1712
+};
+
struct bma_dma_addr_s {
dma_addr_t dma_addr;
u32 dma_data_len;
@@ -66,10 +77,28 @@ union transfer_u {
struct dmalist_transfer_s list;
};
+struct bspveth_dmal {
+ u32 chl;
+ u32 len;
+ u32 slow;
+ u32 shi;
+ u32 dlow;
+ u32 dhi;
+};
+
struct bma_dma_transfer_s {
enum dma_type_e type;
enum dma_direction_e dir;
union transfer_u transfer;
+ struct bspveth_dmal *pdmalbase_v;
+ u32 dmal_cnt;
+};
+
+struct bma_map_addr_s {
+ enum pci_type_e pci_type;
+ u32 host_number;
+ enum addr_type addr_type;
+ u32 addr;
};
int bma_intf_register_int_notifier(struct notifier_block *nb);
@@ -91,4 +120,21 @@ int bma_cdev_add_msg(void *handle, const char __user *msg, size_t msg_len);
unsigned int bma_cdev_check_recv(void *handle);
void *bma_cdev_get_wait_queue(void *handle);
int bma_intf_check_edma_supported(void);
+
+enum pci_type_e get_pci_type(void);
+void set_pci_type(enum pci_type_e type);
+
+int bma_intf_get_host_number(unsigned int *host_number);
+int bma_intf_get_map_address(enum addr_type type, phys_addr_t *addr);
+
+#define HOST_NUMBER_0 0
+#define HOST_NUMBER_1 1
+
+#define EDMA_1711_HOST0_ADDR 0x84810000
+#define VETH_1711_HOST0_ADDR 0x84820000
+#define EDMA_1712_HOST0_ADDR 0x85400000
+#define VETH_1712_HOST0_ADDR 0x85410000
+#define EDMA_1712_HOST1_ADDR 0x87400000
+#define VETH_1712_HOST1_ADDR 0x87410000
+
#endif
diff --git a/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h b/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
index 0d82ee6f7c83..745d83b431f8 100644
--- a/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
+++ b/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
@@ -23,7 +23,7 @@
#ifdef DRV_VERSION
#define KBOX_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define KBOX_VERSION "0.3.10"
+#define KBOX_VERSION "0.4.0"
#endif
#define UNUSED(x) (x = x)
diff --git a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
index 9d918edae703..774229ae8dd1 100644
--- a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
+++ b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
@@ -495,6 +495,11 @@ s32 bspveth_setup_all_tx_resources(struct bspveth_device *pvethdev)
int err = 0;
u8 *shmq_head_p = NULL;
struct bspveth_shmq_hd *shmq_head = NULL;
+ phys_addr_t veth_address = 0;
+
+ err = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (err != 0)
+ goto failed;
if (!pvethdev)
return BSP_ERR_NULL_POINTER;
@@ -526,7 +531,7 @@ s32 bspveth_setup_all_tx_resources(struct bspveth_device *pvethdev)
(struct bspveth_dmal *)((BSP_VETH_T)(shmq_head)
+ SHMDMAL_OFFSET);
pvethdev->ptx_queue[qid]->pdmalbase_p =
- (u8 *)(u64)(VETH_SHAREPOOL_BASE_INBMC +
+ (u8 *)(u64)(veth_address +
MAX_SHAREQUEUE_SIZE * qid +
SHMDMAL_OFFSET);
@@ -851,6 +856,11 @@ s32 bspveth_setup_all_rx_resources(struct bspveth_device *pvethdev)
int qid, i, err = 0;
struct bspveth_shmq_hd *shmq_head = NULL;
u8 *shmq_head_p = NULL;
+ phys_addr_t veth_address = 0;
+
+ err = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (err != 0)
+ goto failed;
if (!pvethdev)
return BSP_ERR_NULL_POINTER;
@@ -885,7 +895,7 @@ s32 bspveth_setup_all_rx_resources(struct bspveth_device *pvethdev)
(struct bspveth_dmal *)((BSP_VETH_T)(shmq_head)
+ SHMDMAL_OFFSET);
pvethdev->prx_queue[qid]->pdmalbase_p =
- (u8 *)(u64)(VETH_SHAREPOOL_BASE_INBMC
+ (u8 *)(u64)(veth_address
+ MAX_SHAREQUEUE_SIZE * (qid + 1)
+ SHMDMAL_OFFSET);
memset(pvethdev->prx_queue[qid]->pdmalbase_v, 0,
@@ -1236,6 +1246,8 @@ void veth_netdev_func_init(struct net_device *dev)
{
struct tag_pcie_comm_priv *priv =
(struct tag_pcie_comm_priv *)netdev_priv(dev);
+ u32 host_number = 0;
+ int ret = 0;
/*9C:7D:A3:28:6F:F9*/
unsigned char veth_mac[ETH_ALEN] = {0x9C, 0x7D, 0xA3, 0x28, 0x6F, 0xF9};
@@ -1243,6 +1255,12 @@ void veth_netdev_func_init(struct net_device *dev)
ether_setup(dev);
+ ret = bma_intf_get_host_number(&host_number);
+ if (ret < 0) {
+ VETH_LOG(DLOG_ERROR, "bma_intf_get_host_number failed!\n");
+ return;
+ }
+
dev->netdev_ops = &veth_ops;
dev->watchdog_timeo = BSPVETH_NET_TIMEOUT;
@@ -1257,6 +1275,7 @@ void veth_netdev_func_init(struct net_device *dev)
memset(priv, 0, sizeof(struct tag_pcie_comm_priv));
strncpy(priv->net_type, MODULE_NAME, NET_TYPE_LEN);
+ veth_mac[ETH_ALEN - 1] = (host_number == 0 ? 0xF9 : 0xFB);
eth_hw_addr_set(dev, veth_mac);
VETH_LOG(DLOG_DEBUG, "set veth MAC addr OK\n");
@@ -2226,6 +2245,8 @@ s32 __start_dmalist_H(struct bspveth_rxtx_q *prxtx_queue, u32 cnt, u32 type)
dma_transfer.type = DMA_LIST;
dma_transfer.transfer.list.dma_addr =
(dma_addr_t)prxtx_queue->pdmalbase_p;
+ dma_transfer.pdmalbase_v = prxtx_queue->pdmalbase_v;
+ dma_transfer.dmal_cnt = prxtx_queue->dmal_cnt;
ret = bma_intf_start_dma(g_bspveth_dev.bma_priv, &dma_transfer);
if (ret < 0)
diff --git a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
index 242d3ec128d3..f8b7e2f8d604 100644
--- a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
+++ b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
@@ -31,7 +31,7 @@ extern "C" {
#ifdef DRV_VERSION
#define VETH_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define VETH_VERSION "0.3.10"
+#define VETH_VERSION "0.4.0"
#endif
#define MODULE_NAME "veth"
@@ -67,7 +67,6 @@ extern "C" {
#define SYSCTL_REG_SIZE (0x1000)
#define PCIE1_REG_BASE (0x29000000)
#define PCIE1_REG_SIZE (0x1000)
-#define VETH_SHAREPOOL_BASE_INBMC (0x84820000)
#define VETH_SHAREPOOL_SIZE (0xdf000)
#define VETH_SHAREPOOL_OFFSET (0x10000)
#define MAX_SHAREQUEUE_SIZE (0x20000)
@@ -261,15 +260,6 @@ struct bspveth_dma_bd {
u32 off;
};
-struct bspveth_dmal {
- u32 chl;
- u32 len;
- u32 slow;
- u32 shi;
- u32 dlow;
- u32 dhi;
-};
-
struct bspveth_rxtx_q {
#ifndef VETH_BMC
struct bspveth_dma_bd *pbdbase_v;
--
2.33.0
2
1

[openeuler:openEuler-1.0-LTS 1755/1755] include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used
by kernel test robot 11 Aug '25
by kernel test robot 11 Aug '25
11 Aug '25
Hi Zhang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: a7892155ca524e224cb2da85c85cc1bd4303179d
commit: 1811840c2cdebd0820818392a8217ffbd1be5c67 [1755/1755] mm/sharepool: Fix sharepool node id invalid when using sp_alloc
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20250811/202508111715.dtfREBaW-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250811/202508111715.dtfREBaW-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/202508111715.dtfREBaW-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/fork.c:741:20: warning: no previous prototype for 'arch_task_cache_init' [-Wmissing-prototypes]
741 | void __init __weak arch_task_cache_init(void) { }
| ^~~~~~~~~~~~~~~~~~~~
kernel/fork.c:826:12: warning: no previous prototype for 'arch_dup_task_struct' [-Wmissing-prototypes]
826 | int __weak arch_dup_task_struct(struct task_struct *dst,
| ^~~~~~~~~~~~~~~~~~~~
kernel/fork.c: In function 'dup_task_struct':
kernel/fork.c:845:27: warning: variable 'stack_vm_area' set but not used [-Wunused-but-set-variable]
845 | struct vm_struct *stack_vm_area;
| ^~~~~~~~~~~~~
In file included from include/linux/sched/signal.h:7,
from include/linux/sched/cputime.h:5,
from kernel/fork.c:23:
include/linux/signal.h: In function 'sigemptyset':
include/linux/signal.h:180:29: warning: this statement may fall through [-Wimplicit-fallthrough=]
180 | case 2: set->sig[1] = 0;
| ~~~~~~~~~~~~^~~
include/linux/signal.h:181:9: note: here
181 | case 1: set->sig[0] = 0;
| ^~~~
In file included from kernel/fork.c:31:
include/linux/mempolicy.h: At top level:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
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/asm-generic/bug.h:18,
from arch/arm64/include/asm/bug.h:37,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from kernel/fork.c:14:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput_async_fn' at kernel/fork.c:1104:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82,
from include/linux/mmzone.h:9,
from include/linux/gfp.h:6:
kernel/fork.c: In function 'mmput_async_fn':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
| ^~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput_async_fn' at kernel/fork.c:1104:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/fork.c: In function 'mmput_async_fn':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
| ^~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput' at kernel/fork.c:1094:3,
inlined from 'mmput' at kernel/fork.c:1086:6:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/fork.c: In function 'mmput':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
| ^~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput' at kernel/fork.c:1094:3,
inlined from 'mmput' at kernel/fork.c:1086:6:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/fork.c: In function 'mmput':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
--
kernel/exit.c:1677:13: warning: no previous prototype for 'abort' [-Wmissing-prototypes]
1677 | __weak void abort(void)
| ^~~~~
In file included from kernel/exit.c:37:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
--
In file included from include/linux/shmem_fs.h:7,
from kernel/umh.c:29:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
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/module.h:10,
from kernel/umh.c:4:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:668:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82,
from include/linux/seqlock.h:36,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/module.h:11:
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:668:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:701:3:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:701:3:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
--
In file included from kernel/workqueue.c:39:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
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 kernel/workqueue.c:28:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'pool_mayday_timeout' at kernel/workqueue.c:2003:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/sched.h:15,
from kernel/workqueue.c:29:
kernel/workqueue.c: In function 'pool_mayday_timeout':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'pool_mayday_timeout' at kernel/workqueue.c:2003:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/workqueue.c: In function 'pool_mayday_timeout':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock_irq' at include/linux/spinlock_api_smp.h:129:2,
inlined from 'spin_lock_irq' at include/linux/spinlock.h:354:2,
inlined from 'rescuer_thread' at kernel/workqueue.c:2461:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/workqueue.c: In function 'rescuer_thread':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock_irq' at include/linux/spinlock_api_smp.h:129:2,
inlined from 'spin_lock_irq' at include/linux/spinlock.h:354:2,
inlined from 'rescuer_thread' at kernel/workqueue.c:2461:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/workqueue.c: In function 'rescuer_thread':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
..
vim +/__do_mbind +329 include/linux/mempolicy.h
328
> 329 static long __do_mbind(unsigned long start, unsigned long len,
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

11 Aug '25
From: Huangjunhua <huangjunhua14(a)huawei.com>
driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/ICB3EN
CVE: NA
-----------------------------------------
To meet the competitive evolution requirements ("5+1+1") for the
new-generation Kunpeng ARM platform, Tianchi architecture, and
BMC management system. The products, BMC, and HiSilicon collaboratively
planned the next-generation BMC evolution chip Hi1712.
Building upon Hi1711, the Hi1712 chip enhances interfaces, computing power,
and security. The Huawei iBMA driver requires adaptation to support Hi1712
for in-band and out-of-band communication.
Signed-off-by: Huangjunhua <huangjunhua14(a)huawei.com>
---
MAINTAINERS | 6 +
.../ethernet/huawei/bma/cdev_drv/bma_cdev.c | 2 +-
.../bma/cdev_veth_drv/virtual_cdev_eth_net.c | 18 +-
.../bma/cdev_veth_drv/virtual_cdev_eth_net.h | 1 -
.../net/ethernet/huawei/bma/edma_drv/Makefile | 2 +-
.../huawei/bma/edma_drv/bma_devintf.c | 118 ++++-
.../ethernet/huawei/bma/edma_drv/bma_pci.c | 277 +++++++++--
.../ethernet/huawei/bma/edma_drv/bma_pci.h | 33 +-
.../ethernet/huawei/bma/edma_drv/edma_drv.h | 340 +++++++++++++
.../ethernet/huawei/bma/edma_drv/edma_host.c | 160 +++++-
.../ethernet/huawei/bma/edma_drv/edma_host.h | 14 +-
.../ethernet/huawei/bma/edma_drv/edma_queue.c | 470 ++++++++++++++++++
.../ethernet/huawei/bma/edma_drv/edma_queue.h | 29 ++
.../ethernet/huawei/bma/edma_drv/edma_reg.h | 127 +++++
.../huawei/bma/include/bma_ker_intf.h | 46 ++
.../huawei/bma/kbox_drv/kbox_include.h | 2 +-
.../ethernet/huawei/bma/veth_drv/veth_hb.c | 25 +-
.../ethernet/huawei/bma/veth_drv/veth_hb.h | 12 +-
18 files changed, 1582 insertions(+), 100 deletions(-)
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 61baf2cfc4e1..446f2f49fd14 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9707,6 +9707,12 @@ F: drivers/net/ethernet/huawei/hinic3/cqm/
F: drivers/net/ethernet/huawei/hinic3/hw/
F: drivers/net/ethernet/huawei/hinic3/include/
+HUAWEI ETHERNET DRIVER
+M: Huangjunhua <huangjunhua14(a)huawei.com>
+L: netdev(a)vger.kernel.org
+S: Maintained
+F: drivers/net/ethernet/huawei/bma/
+
HUAWEI BIFUR DRIVER
M: Xiaoping zheng <zhengxiaoping5(a)huawei.com>
L: netdev(a)vger.kernel.org
diff --git a/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c b/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
index 275c2cdfe5db..59181c829a68 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
+++ b/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
@@ -28,7 +28,7 @@
#ifdef DRV_VERSION
#define CDEV_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define CDEV_VERSION "0.3.10"
+#define CDEV_VERSION "0.4.0"
#endif
#define CDEV_DEFAULT_NUM 4
diff --git a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
index e6dbec7073e4..adb6dd6972f5 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
+++ b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
@@ -151,6 +151,12 @@ int edma_veth_setup_all_tx_resources(struct edma_eth_dev_s *edma_eth)
u8 *shmq_head = NULL;
u8 *shmq_head_p = NULL;
struct edma_rxtx_q_s *tx_queue = NULL;
+ int ret = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return -EFAULT;
tx_queue = (struct edma_rxtx_q_s *)
kmalloc(sizeof(struct edma_rxtx_q_s), GFP_KERNEL);
@@ -173,7 +179,7 @@ int edma_veth_setup_all_tx_resources(struct edma_eth_dev_s *edma_eth)
tx_queue->pdmalbase_v = (struct edma_dmal_s *)
(shmq_head + SHMDMAL_OFFSET);
- tx_queue->pdmalbase_p = (u8 *)(VETH_SHAREPOOL_BASE_INBMC +
+ tx_queue->pdmalbase_p = (u8 *)(veth_address +
(MAX_SHAREQUEUE_SIZE * 0) + SHMDMAL_OFFSET);
memset(tx_queue->pdmalbase_v, 0, MAX_SHMDMAL_SIZE);
@@ -219,6 +225,12 @@ int edma_veth_setup_all_rx_resources(struct edma_eth_dev_s *edma_eth)
u8 *shmq_head = NULL;
u8 *shmq_head_p = NULL;
struct edma_rxtx_q_s *rx_queue = NULL;
+ int ret = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return -EFAULT;
rx_queue = (struct edma_rxtx_q_s *)
kmalloc(sizeof(struct edma_rxtx_q_s), GFP_KERNEL);
@@ -241,7 +253,7 @@ int edma_veth_setup_all_rx_resources(struct edma_eth_dev_s *edma_eth)
/* DMA address list (only used in host). */
rx_queue->pdmalbase_v = (struct edma_dmal_s *)
(shmq_head + SHMDMAL_OFFSET);
- rx_queue->pdmalbase_p = (u8 *)(VETH_SHAREPOOL_BASE_INBMC +
+ rx_queue->pdmalbase_p = (u8 *)(veth_address +
MAX_SHAREQUEUE_SIZE + SHMDMAL_OFFSET);
memset(rx_queue->pdmalbase_v, 0, MAX_SHMDMAL_SIZE);
@@ -1304,6 +1316,8 @@ int __start_dmalist_H_2(struct edma_rxtx_q_s *prxtx_queue, u32 type, u32 cnt)
dma_transfer.type = DMA_LIST;
dma_transfer.transfer.list.dma_addr =
(dma_addr_t)prxtx_queue->pdmalbase_p;
+ dma_transfer.pdmalbase_v = (struct bspveth_dmal *)prxtx_queue->pdmalbase_v;
+ dma_transfer.dmal_cnt = prxtx_queue->dmal_cnt;
ret = bma_intf_start_dma(g_eth_edmaprivate.edma_priv, &dma_transfer);
LOG(DLOG_DEBUG, "after -> %u/%u/%u/%u, ret: %d",
diff --git a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
index cb7c28cb5ddd..bc4b2147272b 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
+++ b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
@@ -56,7 +56,6 @@
#define BSP_ERR_AGAIN (BSP_ETH_ERR_BASE + 18)
#define BSP_ERR_NOT_TO_HANDLE (BSP_ETH_ERR_BASE + 19)
-#define VETH_SHAREPOOL_BASE_INBMC (0x84820000)
#define VETH_SHAREPOOL_SIZE (0xdf000)
#define VETH_SHAREPOOL_OFFSET (0x10000)
#define MAX_SHAREQUEUE_SIZE (0x20000)
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/Makefile b/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
index 46cc51275a71..048bcb9e2bbe 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
@@ -1,2 +1,2 @@
obj-$(CONFIG_BMA) += host_edma_drv.o
-host_edma_drv-y := bma_pci.o bma_devintf.o edma_host.o
+host_edma_drv-y := bma_pci.o bma_devintf.o edma_host.o edma_queue.o
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c b/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
index 3b5eb39d6da6..45815fdc18eb 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
@@ -31,6 +31,18 @@ static struct bma_dev_s *g_bma_dev;
static ATOMIC_NOTIFIER_HEAD(bma_int_notify_list);
+static enum pci_type_e g_pci_type = PCI_TYPE_UNKNOWN;
+
+enum pci_type_e get_pci_type(void)
+{
+ return g_pci_type;
+}
+
+void set_pci_type(enum pci_type_e type)
+{
+ g_pci_type = type;
+}
+
static int bma_priv_insert_priv_list(struct bma_priv_data_s *priv, u32 type,
u32 sub_type)
{
@@ -342,6 +354,82 @@ int bma_intf_unregister_type(void **handle)
}
EXPORT_SYMBOL(bma_intf_unregister_type);
+int bma_intf_get_host_number(unsigned int *host_number)
+{
+ unsigned int devfn = 0;
+
+ if (!host_number)
+ return -EFAULT;
+
+ if (!g_bma_dev) {
+ BMA_LOG(DLOG_ERROR, "g_bma_dev is NULL\n");
+ return -ENXIO;
+ }
+
+ devfn = g_bma_dev->bma_pci_dev->pdev->devfn;
+ BMA_LOG(DLOG_DEBUG, "devfn is %u\n", devfn);
+ if (devfn == PF7 || devfn == PF10) {
+ *host_number = HOST_NUMBER_0;
+ } else if (devfn == PF4) {
+ *host_number = HOST_NUMBER_1;
+ } else {
+ BMA_LOG(DLOG_DEBUG, "Treat as host0 because of unknown PF %u\n", devfn);
+ *host_number = HOST_NUMBER_0;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(bma_intf_get_host_number);
+
+int bma_intf_get_map_address(enum addr_type type, phys_addr_t *addr)
+{
+ u32 host_number = 0;
+ u32 devfn = 0;
+ u32 i = 0;
+ enum pci_type_e pci_type = get_pci_type();
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ static struct bma_map_addr_s addr_info[] = {
+ {PCI_TYPE_UNKNOWN, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1711_HOST0_ADDR},
+ {PCI_TYPE_UNKNOWN, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1711_HOST0_ADDR},
+ {PCI_TYPE_171x, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1711_HOST0_ADDR},
+ {PCI_TYPE_171x, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1711_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1712_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1712_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_1, TYPE_EDMA_ADDR, EDMA_1712_HOST1_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_1, TYPE_VETH_ADDR, VETH_1712_HOST1_ADDR},
+ };
+
+ if (!bma_pci_dev) {
+ BMA_LOG(DLOG_ERROR, "bma_pci_dev is null\n");
+ return -EFAULT;
+ }
+
+ devfn = bma_pci_dev->pdev->devfn;
+ if (devfn == PF7 || devfn == PF10) {
+ host_number = HOST_NUMBER_0;
+ } else if (devfn == PF4) {
+ host_number = HOST_NUMBER_1;
+ } else {
+ BMA_LOG(DLOG_DEBUG, "Treat as host0 because of unknown PF %u\n", devfn);
+ host_number = HOST_NUMBER_0;
+ }
+
+ for (i = 0; i < ARRAY_SIZE(addr_info); i++) {
+ if (pci_type == addr_info[i].pci_type &&
+ host_number == addr_info[i].host_number && type == addr_info[i].addr_type) {
+ *addr = addr_info[i].addr;
+ return 0;
+ }
+ }
+
+ BMA_LOG(DLOG_DEBUG,
+ "Cannot find proper map address! pci_type: %u, host_number: %u, addr_type: %u\n",
+ pci_type, host_number, type);
+ return -EFAULT;
+}
+EXPORT_SYMBOL(bma_intf_get_map_address);
+
int bma_intf_check_edma_supported(void)
{
return !(!g_bma_dev);
@@ -350,13 +438,30 @@ EXPORT_SYMBOL(bma_intf_check_edma_supported);
int bma_intf_check_dma_status(enum dma_direction_e dir)
{
- return edma_host_check_dma_status(dir);
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return -EFAULT;
+ }
+
+ return get_bma_pci_dev_handler_s()[pci_type].check_dma(dir);
}
EXPORT_SYMBOL(bma_intf_check_dma_status);
void bma_intf_reset_dma(enum dma_direction_e dir)
{
- edma_host_reset_dma(&g_bma_dev->edma_host, dir);
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (!g_bma_dev)
+ return;
+
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return;
+ }
+
+ get_bma_pci_dev_handler_s()[pci_type].reset_dma(&g_bma_dev->edma_host, dir);
}
EXPORT_SYMBOL(bma_intf_reset_dma);
@@ -375,10 +480,16 @@ int bma_intf_start_dma(void *handle, struct bma_dma_transfer_s *dma_transfer)
{
int ret = 0;
struct bma_priv_data_s *priv = (struct bma_priv_data_s *)handle;
+ enum pci_type_e pci_type = get_pci_type();
if (!handle || !dma_transfer)
return -EFAULT;
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return -EFAULT;
+ }
+
ret = edma_host_dma_start(&g_bma_dev->edma_host, priv);
if (ret) {
BMA_LOG(DLOG_ERROR,
@@ -386,7 +497,8 @@ int bma_intf_start_dma(void *handle, struct bma_dma_transfer_s *dma_transfer)
return ret;
}
- ret = edma_host_dma_transfer(&g_bma_dev->edma_host, priv, dma_transfer);
+ ret = get_bma_pci_dev_handler_s()[pci_type].transfer_edma_host(&g_bma_dev->edma_host, priv,
+ dma_transfer);
if (ret)
BMA_LOG(DLOG_ERROR,
"edma_host_dma_transfer failed! ret = %d\n", ret);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
index 577acaedb0e2..0e43289e0d1a 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
@@ -27,13 +27,20 @@
#define PCI_VENDOR_ID_HUAWEI_PME 0x19e5
#define PCI_DEVICE_ID_KBOX_0_PME 0x1710
+#define PCI_DEVICE_ID_EDMA_0 0x1712
#define PCI_PME_USEABLE_SPACE (4 * 1024 * 1024)
+
+#define HOSTRTC_OFFSET 0x10000
+#define EDMA_OFFSET 0x20000
+#define VETH_OFFSET 0x30000
+
#define PME_DEV_CHECK(device, vendor) ((device) == PCI_DEVICE_ID_KBOX_0_PME && \
(vendor) == PCI_VENDOR_ID_HUAWEI_PME)
#define PCI_BAR0_PME_1710 0x85800000
#define PCI_BAR0 0
#define PCI_BAR1 1
+#define PCI_BAR2 2
#define PCI_USING_DAC_DEFAULT 0
#define GET_HIGH_ADDR(address) ((sizeof(unsigned long) == 8) ? \
@@ -51,15 +58,50 @@ int debug = DLOG_ERROR;
MODULE_PARM_DESC(debug, "Debug switch (0=close debug, 1=open debug)");
static struct bma_pci_dev_s *g_bma_pci_dev;
+struct bma_pci_dev_s *get_bma_pci_dev(void)
+{
+ return g_bma_pci_dev;
+}
+
+void set_bma_pci_dev(struct bma_pci_dev_s *bma_pci_dev)
+{
+ g_bma_pci_dev = bma_pci_dev;
+}
static int bma_pci_suspend(struct pci_dev *pdev, pm_message_t state);
static int bma_pci_resume(struct pci_dev *pdev);
static int bma_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
static void bma_pci_remove(struct pci_dev *pdev);
+static struct bma_pci_dev_handler_s g_bma_pci_dev_handler_s[] = {
+ {0},
+ // for 1710/1711
+ {
+ .ioremap_bar_mem = ioremap_pme_bar_mem_v1,
+ .iounmap_bar_mem = iounmap_bar_mem_v1,
+ .check_dma = edma_host_check_dma_status_v1,
+ .transfer_edma_host = edma_host_dma_transfer_v1,
+ .reset_dma = edma_host_reset_dma_v1,
+ },
+ // for 1712
+ {
+ .ioremap_bar_mem = ioremap_pme_bar_mem_v2,
+ .iounmap_bar_mem = iounmap_bar_mem_v2,
+ .check_dma = edma_host_check_dma_status_v2,
+ .transfer_edma_host = edma_host_dma_transfer_v2,
+ .reset_dma = edma_host_reset_dma_v2,
+ }
+};
+
+struct bma_pci_dev_handler_s *get_bma_pci_dev_handler_s(void)
+{
+ return g_bma_pci_dev_handler_s;
+}
+
static const struct pci_device_id bma_pci_tbl[] = {
{PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_FPGA, PCI_DEVICE_ID_KBOX_0)},
{PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_PME, PCI_DEVICE_ID_KBOX_0_PME)},
+ { PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_PME, PCI_DEVICE_ID_EDMA_0) },
{}
};
MODULE_DEVICE_TABLE(pci, bma_pci_tbl);
@@ -73,7 +115,7 @@ int edma_param_get_statics(char *buf, const struct kernel_param *kp)
}
module_param_call(statistics, NULL, edma_param_get_statics, &debug, 0444);
-MODULE_PARM_DESC(statistics, "Statistics info of edma driver,readonly");
+MODULE_PARM_DESC(statistics, "Statistics info of edma driver, readonly");
int edma_param_set_debug(const char *buf, const struct kernel_param *kp)
{
@@ -99,34 +141,40 @@ module_param_call(debug, &edma_param_set_debug, ¶m_get_int, &debug, 0644);
void __iomem *kbox_get_base_addr(void)
{
- if (!g_bma_pci_dev || (!(g_bma_pci_dev->kbox_base_addr))) {
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev || (!(bma_pci_dev->kbox_base_addr))) {
BMA_LOG(DLOG_ERROR, "kbox_base_addr NULL point\n");
return NULL;
}
- return g_bma_pci_dev->kbox_base_addr;
+ return bma_pci_dev->kbox_base_addr;
}
EXPORT_SYMBOL_GPL(kbox_get_base_addr);
unsigned long kbox_get_io_len(void)
{
- if (!g_bma_pci_dev) {
- BMA_LOG(DLOG_ERROR, "kbox_io_len is error,can not get it\n");
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev) {
+ BMA_LOG(DLOG_ERROR, "kbox_io_len is error, can not get it\n");
return 0;
}
- return g_bma_pci_dev->kbox_base_len;
+ return bma_pci_dev->kbox_base_len;
}
EXPORT_SYMBOL_GPL(kbox_get_io_len);
unsigned long kbox_get_base_phy_addr(void)
{
- if (!g_bma_pci_dev || !g_bma_pci_dev->kbox_base_phy_addr) {
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev || bma_pci_dev->kbox_base_phy_addr == 0) {
BMA_LOG(DLOG_ERROR, "kbox_base_phy_addr NULL point\n");
return 0;
}
- return g_bma_pci_dev->kbox_base_phy_addr;
+ return bma_pci_dev->kbox_base_phy_addr;
}
EXPORT_SYMBOL_GPL(kbox_get_base_phy_addr);
@@ -160,7 +208,7 @@ s32 __atu_config_H(struct pci_dev *pdev, unsigned int region,
return 0;
}
-static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
+void iounmap_bar_mem_v1(struct bma_pci_dev_s *bma_pci_dev)
{
if (bma_pci_dev->kbox_base_addr) {
iounmap(bma_pci_dev->kbox_base_addr);
@@ -171,15 +219,84 @@ static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
iounmap(bma_pci_dev->bma_base_addr);
bma_pci_dev->bma_base_addr = NULL;
bma_pci_dev->edma_swap_addr = NULL;
+ bma_pci_dev->veth_swap_addr = NULL;
bma_pci_dev->hostrtc_viraddr = NULL;
}
}
-static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
- struct bma_pci_dev_s *bma_pci_dev)
+void iounmap_bar_mem_v2(struct bma_pci_dev_s *bma_pci_dev)
+{
+ if (bma_pci_dev->kbox_base_addr) {
+ iounmap(bma_pci_dev->kbox_base_addr);
+ bma_pci_dev->kbox_base_addr = NULL;
+ }
+
+ if (bma_pci_dev->bma_base_addr) {
+ iounmap(bma_pci_dev->bma_base_addr);
+ bma_pci_dev->bma_base_addr = NULL;
+ }
+
+ if (bma_pci_dev->hostrtc_viraddr) {
+ iounmap(bma_pci_dev->hostrtc_viraddr);
+ bma_pci_dev->hostrtc_viraddr = NULL;
+ bma_pci_dev->edma_swap_addr = NULL;
+ bma_pci_dev->veth_swap_addr = NULL;
+ }
+}
+
+static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
+{
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (pci_type == PCI_TYPE_UNKNOWN)
+ return;
+
+ g_bma_pci_dev_handler_s[pci_type].iounmap_bar_mem(bma_pci_dev);
+}
+
+static int config_atu(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
+{
+ int ret = 0;
+ phys_addr_t edma_address = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_EDMA_ADDR, &edma_address);
+ if (ret != 0)
+ return ret;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return ret;
+
+ __atu_config_H(pdev, 0,
+ GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr),
+ (bma_pci_dev->kbox_base_phy_addr & 0xffffffff),
+ 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE);
+
+ __atu_config_H(pdev, 1,
+ GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr),
+ (bma_pci_dev->hostrtc_phyaddr & 0xffffffff),
+ 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE);
+
+ __atu_config_H(pdev, 2,
+ GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr),
+ (bma_pci_dev->edma_swap_phy_addr & 0xffffffff),
+ 0, edma_address, EDMA_SWAP_DATA_SIZE);
+
+ __atu_config_H(pdev, 3,
+ GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr),
+ (bma_pci_dev->veth_swap_phy_addr & 0xffffffff),
+ 0, veth_address, VETH_SWAP_DATA_SIZE);
+
+ return ret;
+}
+
+// for 1710 1711
+int ioremap_pme_bar_mem_v1(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
{
unsigned long bar1_resource_flag = 0;
u32 data = 0;
+ int ret;
bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE;
BMA_LOG(DLOG_DEBUG, "1710\n");
@@ -217,25 +334,11 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
bma_pci_dev->edma_swap_phy_addr,
bma_pci_dev->veth_swap_phy_addr);
- __atu_config_H(pdev, 0,
- GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr),
- (bma_pci_dev->kbox_base_phy_addr & 0xffffffff),
- 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE);
-
- __atu_config_H(pdev, 1,
- GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr),
- (bma_pci_dev->hostrtc_phyaddr & 0xffffffff),
- 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE);
-
- __atu_config_H(pdev, 2,
- GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr),
- (bma_pci_dev->edma_swap_phy_addr & 0xffffffff),
- 0, EDMA_SWAP_DATA_BASE, EDMA_SWAP_DATA_SIZE);
-
- __atu_config_H(pdev, 3,
- GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr),
- (bma_pci_dev->veth_swap_phy_addr & 0xffffffff),
- 0, VETH_SWAP_DATA_BASE, VETH_SWAP_DATA_SIZE);
+ ret = config_atu(pdev, bma_pci_dev);
+ if (ret != 0) {
+ BMA_LOG(DLOG_DEBUG, "config atu failed.\n");
+ return ret;
+ }
if (bar1_resource_flag & IORESOURCE_CACHEABLE) {
bma_pci_dev->bma_base_addr =
@@ -250,7 +353,6 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
if (!bma_pci_dev->bma_base_addr) {
BMA_LOG(DLOG_ERROR,
"Cannot map device registers, aborting\n");
-
return -ENODEV;
}
@@ -270,11 +372,80 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
return 0;
}
+// for 1712
+int ioremap_pme_bar_mem_v2(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
+{
+ unsigned long bar2_resource_flag = 0;
+
+ bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE;
+ BMA_LOG(DLOG_DEBUG, "1712\n");
+
+ bma_pci_dev->bma_base_phy_addr = (unsigned long)pci_resource_start(pdev, PCI_BAR2);
+ bar2_resource_flag = (unsigned long)pci_resource_flags(pdev, PCI_BAR2);
+ if (!(bar2_resource_flag & IORESOURCE_MEM)) {
+ BMA_LOG(DLOG_ERROR, "Cannot find proper PCI device base address, aborting\n");
+ return -ENODEV;
+ }
+
+ bma_pci_dev->bma_base_len = (unsigned long)pci_resource_len(pdev, PCI_BAR2);
+ bma_pci_dev->edma_swap_len = EDMA_SWAP_DATA_SIZE;
+ bma_pci_dev->veth_swap_len = VETH_SWAP_DATA_SIZE;
+
+ BMA_LOG(DLOG_DEBUG,
+ "bar2: bma_base_len = 0x%lx, edma_swap_len = %ld, veth_swap_len = %ld(0x%lx)\n",
+ bma_pci_dev->bma_base_len, bma_pci_dev->edma_swap_len, bma_pci_dev->veth_swap_len,
+ bma_pci_dev->veth_swap_len);
+
+ bma_pci_dev->hostrtc_phyaddr = bma_pci_dev->bma_base_phy_addr + HOSTRTC_OFFSET;
+ /* edma */
+ bma_pci_dev->edma_swap_phy_addr = bma_pci_dev->bma_base_phy_addr + EDMA_OFFSET;
+ /* veth */
+ bma_pci_dev->veth_swap_phy_addr = bma_pci_dev->bma_base_phy_addr + VETH_OFFSET;
+
+ BMA_LOG(DLOG_DEBUG,
+ "bar2: bma_base_phy_addr = 0x%lx, bma_base_len = %zu , hostrtc_phyaddr = 0x%lx, edma_swap_phy_addr = 0x%lx, veth_swap_phy_addr = 0x%lx\n",
+ bma_pci_dev->bma_base_phy_addr, bma_pci_dev->bma_base_len,
+ bma_pci_dev->hostrtc_phyaddr, bma_pci_dev->edma_swap_phy_addr,
+ bma_pci_dev->veth_swap_phy_addr);
+
+ bma_pci_dev->bma_base_addr = ioremap(bma_pci_dev->bma_base_phy_addr,
+ bma_pci_dev->bma_base_len);
+ if (!bma_pci_dev->bma_base_addr) {
+ BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
+ return -ENODEV;
+ }
+
+ if (bar2_resource_flag & IORESOURCE_CACHEABLE) {
+ BMA_LOG(DLOG_DEBUG, "ioremap with cache, %d\n", IORESOURCE_CACHEABLE);
+ bma_pci_dev->hostrtc_viraddr = ioremap(bma_pci_dev->hostrtc_phyaddr,
+ bma_pci_dev->bma_base_len - HOSTRTC_OFFSET);
+ } else {
+ BMA_LOG(DLOG_DEBUG, "ioremap without cache\n");
+ bma_pci_dev->hostrtc_viraddr = IOREMAP(bma_pci_dev->hostrtc_phyaddr,
+ bma_pci_dev->bma_base_len - HOSTRTC_OFFSET);
+ }
+
+ if (!bma_pci_dev->hostrtc_viraddr) {
+ BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
+ iounmap(bma_pci_dev->bma_base_addr);
+ bma_pci_dev->bma_base_addr = NULL;
+ return -ENODEV;
+ }
+
+ bma_pci_dev->edma_swap_addr = (unsigned char *)bma_pci_dev->hostrtc_viraddr
+ - HOSTRTC_OFFSET + EDMA_OFFSET;
+ bma_pci_dev->veth_swap_addr = (unsigned char *)bma_pci_dev->hostrtc_viraddr
+ - HOSTRTC_OFFSET + VETH_OFFSET;
+
+ return 0;
+}
+
static int ioremap_bar_mem(struct pci_dev *pdev,
struct bma_pci_dev_s *bma_pci_dev)
{
int err = 0;
unsigned long bar0_resource_flag = 0;
+ enum pci_type_e pci_type = get_pci_type();
bar0_resource_flag = pci_resource_flags(pdev, PCI_BAR0);
@@ -294,8 +465,8 @@ static int ioremap_bar_mem(struct pci_dev *pdev,
bma_pci_dev->kbox_base_phy_addr, bma_pci_dev->kbox_base_len,
bma_pci_dev->kbox_base_len);
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
- err = ioremap_pme_bar1_mem(pdev, bma_pci_dev);
+ if (pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME && pci_type != PCI_TYPE_UNKNOWN) {
+ err = g_bma_pci_dev_handler_s[pci_type].ioremap_bar_mem(pdev, bma_pci_dev);
if (err != 0)
return err;
}
@@ -314,11 +485,7 @@ static int ioremap_bar_mem(struct pci_dev *pdev,
if (!bma_pci_dev->kbox_base_addr) {
BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
-
- iounmap(bma_pci_dev->bma_base_addr);
- bma_pci_dev->bma_base_addr = NULL;
- bma_pci_dev->edma_swap_addr = NULL;
- bma_pci_dev->hostrtc_viraddr = NULL;
+ iounmap_bar_mem(bma_pci_dev);
return -ENOMEM;
}
@@ -355,13 +522,14 @@ int pci_device_init(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
{
int err = 0;
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
+ if ((pdev->device == PCI_DEVICE_ID_KBOX_0_PME || pdev->device == PCI_DEVICE_ID_EDMA_0) &&
+ pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME) {
err = bma_devinft_init(bma_pci_dev);
if (err) {
BMA_LOG(DLOG_ERROR, "bma_devinft_init failed\n");
bma_devinft_cleanup(bma_pci_dev);
iounmap_bar_mem(bma_pci_dev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
pci_release_regions(pdev);
kfree(bma_pci_dev);
#ifdef CONFIG_PCI_MSI
@@ -400,27 +568,25 @@ int pci_device_config(struct pci_dev *pdev)
goto err_out_free_dev;
}
+ set_bma_pci_dev(bma_pci_dev);
+
err = ioremap_bar_mem(pdev, bma_pci_dev);
if (err) {
BMA_LOG(DLOG_ERROR, "ioremap_edma_io_mem failed\n");
goto err_out_release_regions;
}
- g_bma_pci_dev = bma_pci_dev;
-
if (SET_DMA_MASK(&pdev->dev)) {
BMA_LOG(DLOG_ERROR,
- "No usable DMA ,configuration, aborting,goto failed2!!!\n");
+ "No usable DMA, configuration, aborting, goto failed2!!!\n");
goto err_out_unmap_bar;
}
- g_bma_pci_dev = bma_pci_dev;
-
return pci_device_init(pdev, bma_pci_dev);
err_out_unmap_bar:
iounmap_bar_mem(bma_pci_dev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
err_out_release_regions:
pci_release_regions(pdev);
err_out_free_dev:
@@ -442,16 +608,27 @@ static int bma_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
UNUSED(ent);
- if (g_bma_pci_dev)
+ if (get_bma_pci_dev())
return -EPERM;
err = pci_enable_device(pdev);
if (err) {
- BMA_LOG(DLOG_ERROR, "Cannot enable PCI device,aborting\n");
+ BMA_LOG(DLOG_ERROR, "Cannot enable PCI device, aborting\n");
return err;
}
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
+ switch (pdev->device) {
+ case PCI_DEVICE_ID_KBOX_0_PME:
+ set_pci_type(PCI_TYPE_171x);
+ break;
+ case PCI_DEVICE_ID_EDMA_0:
+ set_pci_type(PCI_TYPE_1712);
+ break;
+ default:
+ set_pci_type(PCI_TYPE_UNKNOWN);
+ break;
+ }
+ if (pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME && get_pci_type() != PCI_TYPE_UNKNOWN) {
err = pme_pci_enable_msi(pdev);
if (err)
return err;
@@ -468,7 +645,7 @@ static void bma_pci_remove(struct pci_dev *pdev)
struct bma_pci_dev_s *bma_pci_dev =
(struct bma_pci_dev_s *)pci_get_drvdata(pdev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
(void)pci_set_drvdata(pdev, NULL);
if (bma_pci_dev) {
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
index a66724e2cb74..b43882997c01 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
@@ -18,6 +18,8 @@
#include "bma_devintf.h"
#include "bma_include.h"
+#include "../include/bma_ker_intf.h"
+#include "edma_host.h"
#include <linux/netdevice.h>
#define EDMA_SWAP_BASE_OFFSET 0x10000
@@ -25,10 +27,8 @@
#define HOSTRTC_REG_BASE 0x2f000000
#define HOSTRTC_REG_SIZE EDMA_SWAP_BASE_OFFSET
-#define EDMA_SWAP_DATA_BASE 0x84810000
#define EDMA_SWAP_DATA_SIZE 65536
-#define VETH_SWAP_DATA_BASE 0x84820000
#define VETH_SWAP_DATA_SIZE 0xdf000
#define ATU_VIEWPORT 0x900
@@ -71,7 +71,7 @@ struct bma_pci_dev_s {
#ifdef DRV_VERSION
#define BMA_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define BMA_VERSION "0.3.10"
+#define BMA_VERSION "0.4.0"
#endif
#ifdef CONFIG_ARM64
@@ -95,4 +95,31 @@ extern int debug;
int edmainfo_show(char *buff);
+struct bma_pci_dev_s *get_bma_pci_dev(void);
+void set_bma_pci_dev(struct bma_pci_dev_s *bma_pci_dev);
+
+struct bma_pci_dev_handler_s {
+ int (*ioremap_bar_mem)(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+ void (*iounmap_bar_mem)(struct bma_pci_dev_s *bma_pci_dev);
+ int (*check_dma)(enum dma_direction_e dir);
+ int (*transfer_edma_host)(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+ void (*reset_dma)(struct edma_host_s *edma_host, enum dma_direction_e dir);
+};
+
+struct bma_pci_dev_handler_s *get_bma_pci_dev_handler_s(void);
+
+int ioremap_pme_bar_mem_v1(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+int ioremap_pme_bar_mem_v2(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+void iounmap_bar_mem_v1(struct bma_pci_dev_s *bma_pci_dev);
+void iounmap_bar_mem_v2(struct bma_pci_dev_s *bma_pci_dev);
+int edma_host_check_dma_status_v1(enum dma_direction_e dir);
+int edma_host_check_dma_status_v2(enum dma_direction_e dir);
+int edma_host_dma_transfer_v1(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+int edma_host_dma_transfer_v2(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+void edma_host_reset_dma_v1(struct edma_host_s *edma_host, enum dma_direction_e dir);
+void edma_host_reset_dma_v2(struct edma_host_s *edma_host, enum dma_direction_e dir);
+
#endif
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
new file mode 100644
index 000000000000..b0a09c022ba8
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
@@ -0,0 +1,340 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_DRV_H
+#define EDMA_DRV_H
+
+#define DMA_STATISTICS_LEN 16
+#define DMA_CH_TAG_SIZE 64
+
+#define HISILICON_VENDOR_ID 0x19e5
+#define DMA_PCIE_DEVICE_ID 0xa122
+
+#define MAX_DMA_CHS 4 /* The current version supports a maximum of 2x2 channels. */
+#define DMA_CHS_EACH_PORT 2
+
+#define MAX_SQ_DEPTH 0xFFFF
+#define MAX_CQ_DEPTH 0xFFFF
+
+#define DMA_DONE_MASK 0x1
+#define DMA_DONE_UNMASK 0x0
+#define DMA_ERR_MASK 0x7FFFE
+#define DMA_ERR_UNMASK 0x0
+
+#define BD_SO 0
+#define BD_RO 1
+
+#define SIZE_4M 0x400000
+#define SIZE_16K 0x4000
+#define SIZE_64K 0x10000
+#define SIZE_OF_U64 0x8
+#define SPD_SIZE_MAX 32
+
+/* Use integer arithmetic for approximate computation instead of floating-point. */
+#define US_PER_SECOND_DIV_1KB (1000000 / 1024)
+
+#define DMA_PHY_STORE_OFFSET (SIZE_64K - SIZE_OF_U64)
+#define DMA_RMT_PHY_STORE_OFFSET (DMA_PHY_STORE_OFFSET - SIZE_OF_U64)
+#define BIT_0_TO_31_MASK 0xFFFFFFFF
+
+#define DMA_TMOUT (2 * HZ) /* 2 seconds */
+
+enum {
+ EP0 = 0,
+ EP1 = 1
+};
+
+enum {
+ DRC_LOCAL = 0,
+ DRC_REMOTE = 1
+};
+
+enum {
+ DIR_B2H = 0,
+ DIR_H2B = 1,
+};
+
+enum {
+ DMA_INIT = 0x0,
+ DMA_RESET = 0x1,
+ DMA_PAUSE = 0x2,
+ DMA_NOTIFY = 0x3,
+ LINKDOWN = 0x4,
+ LINKUP = 0x5,
+ FLR = 0x6
+};
+
+enum {
+ PF0 = 0,
+ PF1 = 1,
+ PF2 = 2,
+ PF4 = 4,
+ PF7 = 7,
+ PF10 = 10
+};
+
+enum {
+ RESERVED = 0x0, /* reserved */
+ SMALL_PACKET = 0x1, /* SmallPacket Descriptor */
+ DMA_READ = 0x2, /* Read Descriptor */
+ DMA_WRITE = 0x3, /* Write Descriptor */
+ DMA_LOOP = 0x4, /* Loop Descriptor */
+ DMA_MIX = 0x10, /* not available, User-defined for test */
+ DMA_WD_BARRIER = 0x11, /* not available, User-defined for test */
+ DMA_RD_BARRIER = 0x12, /* not available, User-defined for test */
+ DMA_LP_BARRIER = 0x13 /* not available, User-defined for test */
+};
+
+enum {
+ IDLE_STATE = 0x0, /* dma channel in idle status */
+ RUN_STATE = 0x1, /* dma channel in run status */
+ CPL_STATE = 0x2, /* dma channel in cpld status */
+ PAUSE_STATE = 0x3, /* dma channel in pause status */
+ HALT_STATE = 0x4, /* dma channel in halt status */
+ ABORT_STATE = 0x5, /* dma channel in abort status */
+ WAIT_STATE = 0x6 /* dma channel in wait status */
+};
+
+/* CQE status */
+enum {
+ DMA_DONE = 0x0, /* sqe done succ */
+ OPCODE_ERR = 0x1, /* sqe opcode invalid */
+ LEN_ERR = 0x2, /* sqe length invalid, only ocurs in smallpackt */
+ DROP_EN = 0x4, /* sqe drop happen */
+ WR_RMT_ERR = 0x8, /* write data to host fail */
+ RD_RMT_ERR = 0x10, /* read data from host fail */
+ RD_AXI_ERR = 0x20, /* read data/sqe from local fail */
+ WR_AXI_ERR = 0x40, /* write data/cqe to local fail */
+ POISON_CPL_ERR = 0x80, /* poison data */
+ SUB_SQ_ERR = 0x100, /* read sqe with CPL TLP */
+ DMA_CH_RESET = 0x200, /* dma channel should reset */
+ LINK_DOWN_ERR = 0x400, /* linkdown happen */
+ RECOVERY = 0x800 /* error status to be reset */
+};
+
+enum {
+ SDI_DMA_ADDR_SIZE_16K = 0,
+ SDI_DMA_ADDR_SIZE_32K = 1,
+ SDI_DMA_ADDR_SIZE_64K = 2,
+ SDI_DMA_ADDR_SIZE_128K = 3
+};
+
+union U_DMA_QUEUE_SQ_DEPTH {
+ struct {
+ unsigned int dma_queue_sq_depth : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_DEPTH {
+ struct {
+ unsigned int dma_queue_cq_depth : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_HEAD_PTR {
+ struct {
+ unsigned int dma_queue_cq_head_ptr : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_TAIL_PTR {
+ struct {
+ unsigned int dma_queue_cq_tail_ptr : 16; /* [15..0] */
+ unsigned int dma_queue_sqhd : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_SQ_TAIL_PTR {
+ struct {
+ unsigned int dma_queue_sq_tail_ptr : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CTRL0 {
+ struct {
+ unsigned int dma_queue_en : 1; /* [0] */
+ unsigned int dma_queue_icg_en : 1; /* [1] */
+ unsigned int reserved : 1; /* [2] */
+ unsigned int dma_rst_without_cq_ack_enable : 1; /* [3] */
+ unsigned int dma_queue_pause : 1; /* [4] */
+ unsigned int reserved_1 : 3; /* [7..5] */
+ unsigned int dma_queue_arb_weight : 8; /* [15..8] */
+ unsigned int reserved_2 : 3; /* [18...16] */
+ unsigned int dma_queue_cq_mrg_en : 1; /* [19] */
+ unsigned int dma_queue_cq_mrg_time : 2; /* [21..20] */
+ unsigned int dma_queue_local_err_done_int_en : 1; /* [22] */
+ unsigned int dma_queue_remote_err_done_int_en : 1; /* [23] */
+ unsigned int reserved_3 : 1; /* [24] */
+ unsigned int dma_queue_cq_full_disable : 1; /* [25] */
+ unsigned int dma_queue_cq_drct_sel : 1; /* [26] */
+ unsigned int dma_queue_sq_drct_sel : 1; /* [27] */
+ unsigned int dma_queue_sq_pa_lkp_err_abort_en : 1; /* [28] */
+ unsigned int dma_queue_sq_proc_err_abort_en : 1; /* [29] */
+ unsigned int dma_queue_sq_drop_err_abort_en : 1; /* [30] */
+ unsigned int dma_queue_sq_cfg_err_abort_en : 1; /* [31] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CTRL1 {
+ struct {
+ unsigned int dma_queue_reset : 1; /* [0] */
+ unsigned int dma_queue_abort_exit : 1; /* [1] */
+ unsigned int dma_va_enable : 1; /* [2] */
+ unsigned int reserved_0 : 1; /* [3] */
+ unsigned int dma_queue_port_num : 4; /* [7..4] */
+ unsigned int dma_queue_remote_msi_x_mask : 1; /* [8] */
+ unsigned int dma_va_enable_sq : 1; /* [9] */
+ unsigned int dma_va_enable_cq : 1; /* [10] */
+ unsigned int dma_queue_local_pfx_er : 1; /* [11] */
+ unsigned int dma_queue_local_pfx_pmr : 1; /* [12] */
+ unsigned int reserved_1 : 3; /* [15...13] */
+ unsigned int dma_queue_qos_en : 1; /* [16] */
+ unsigned int dma_queue_qos : 4; /* [20...17] */
+ unsigned int dma_queue_mpam_id : 11; /* [31..21] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_FSM_STS {
+ struct {
+ unsigned int dma_queue_sts : 4; /* [3..0] */
+ unsigned int dma_queue_not_work : 1; /* [4] */
+ unsigned int dma_queue_wait_spd_data_sts : 1; /* [5] */
+ unsigned int reserved_0 : 1; /* [6] */
+ unsigned int reserved_1 : 1; /* [7] */
+ unsigned int dma_queue_sub_fsm_sts : 3; /* [10..8] */
+ unsigned int reserved_2 : 21; /* [31..11] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_INT_STS {
+ struct {
+ unsigned int dma_queue_done_int_sts : 1; /* [0] */
+ unsigned int dma_queue_err00_int_sts : 1; /* [1] */
+ unsigned int dma_queue_err01_int_sts : 1; /* [2] */
+ unsigned int dma_queue_err02_int_sts : 1; /* [3] */
+ unsigned int dma_queue_err03_int_sts : 1; /* [4] */
+ unsigned int reserved : 1; /* [5] */
+ unsigned int dma_queue_err05_int_sts : 1; /* [6] */
+ unsigned int dma_queue_err06_int_sts : 1; /* [7] */
+ unsigned int dma_queue_err07_int_sts : 1; /* [8] */
+ unsigned int dma_queue_err08_int_sts : 1; /* [9] */
+ unsigned int dma_queue_err09_int_sts : 1; /* [10] */
+ unsigned int dma_queue_err10_int_sts : 1; /* [11] */
+ unsigned int dma_queue_err11_int_sts : 1; /* [12] */
+ unsigned int dma_queue_err12_int_sts : 1; /* [13] */
+ unsigned int dma_queue_err13_int_sts : 1; /* [14] */
+ unsigned int dma_queue_err14_int_sts : 1; /* [15] */
+ unsigned int dma_queue_err15_int_sts : 1; /* [16] */
+ unsigned int dma_queue_err16_int_sts : 1; /* [17] */
+ unsigned int dma_queue_err17_int_sts : 1; /* [18] */
+ unsigned int reserved_0 : 13; /* [31..19] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_INT_MSK {
+ struct {
+ unsigned int dma_queue_done_int_msk : 1; /* [0] */
+ unsigned int dma_queue_err00_int_msk : 1; /* [1] */
+ unsigned int dma_queue_err01_int_msk : 1; /* [2] */
+ unsigned int dma_queue_err02_int_msk : 1; /* [3] */
+ unsigned int dma_queue_err03_int_msk : 1; /* [4] */
+ unsigned int reserved : 1; /* [5] */
+ unsigned int dma_queue_err05_int_msk : 1; /* [6] */
+ unsigned int dma_queue_err06_int_msk : 1; /* [7] */
+ unsigned int dma_queue_err07_int_msk : 1; /* [8] */
+ unsigned int dma_queue_err08_int_msk : 1; /* [9] */
+ unsigned int dma_queue_err09_int_msk : 1; /* [10] */
+ unsigned int dma_queue_err10_int_msk : 1; /* [11] */
+ unsigned int dma_queue_err11_int_msk : 1; /* [12] */
+ unsigned int dma_queue_err12_int_msk : 1; /* [13] */
+ unsigned int dma_queue_err13_int_msk : 1; /* [14] */
+ unsigned int dma_queue_err14_int_msk : 1; /* [15] */
+ unsigned int dma_queue_err15_int_msk : 1; /* [16] */
+ unsigned int dma_queue_err16_int_msk : 1; /* [17] */
+ unsigned int dma_queue_err17_int_msk : 1; /* [18] */
+ unsigned int reserved_0 : 13 ; /* [31..19] */
+ } bits;
+
+ unsigned int u32;
+};
+
+struct dma_ch_sq_s {
+ u32 opcode : 4; /* [0~3] opcode */
+ u32 drop : 1; /* [4] drop */
+ u32 nw : 1; /* [5] nw */
+ u32 wd_barrier : 1; /* [6] write done barrier */
+ u32 rd_barrier : 1; /* [7] read done barrier */
+ u32 ldie : 1; /* [8] LDIE */
+ u32 rdie : 1; /* [9] rDIE */
+ u32 loop_barrier : 1; /* [10] */
+ u32 spd_barrier : 1; /* [11] */
+ u32 attr : 3; /* [12~14] attr */
+ u32 cq_disable : 1; /* [15] reserved */
+ u32 addrt : 2; /* [16~17] at */
+ u32 p3p4 : 2; /* [18~19] P3 P4 */
+ u32 pf : 3; /* [20~22] pf */
+ u32 vfen : 1; /* [23] vfen */
+ u32 vf : 8; /* [24~31] vf */
+ u32 pasid : 20; /* [0~19] pasid */
+ u32 er : 1; /* [20] er */
+ u32 pmr : 1; /* [21] pmr */
+ u32 prfen : 1; /* [22] prfen */
+ u32 reserved5 : 1; /* [23] reserved */
+ u32 msi : 8; /* [24~31] MSI/MSI-X vector */
+ u32 flow_id : 8; /* [0~7] Flow ID */
+ u32 reserved6 : 8; /* [8~15] reserved */
+ u32 TH : 1; /* [16] TH */
+ u32 PH : 2; /* [17~18] PH */
+ u32 reserved7 : 13; /* [19~31] reserved: some multiplex fields */
+ u32 length;
+ u32 src_addr_l;
+ u32 src_addr_h;
+ u32 dst_addr_l;
+ u32 dst_addr_h;
+};
+
+struct dma_ch_cq_s {
+ u32 reserved1;
+ u32 reserved2;
+ u32 sqhd : 16;
+ u32 reserved3 : 16;
+ u32 reserved4 : 16; /* [0~15] reserved */
+ u32 vld : 1; /* [16] vld */
+ u32 status : 15; /* [17~31] status */
+};
+
+#endif /* EDMA_DRV_H */
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
index be2f732ed9ed..1bfb123e43c0 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
@@ -20,11 +20,18 @@
#include <linux/seq_file.h>
#include "bma_pci.h"
+#include "edma_queue.h"
#include "edma_host.h"
static struct edma_user_inft_s *g_user_func[TYPE_MAX] = { 0 };
static struct bma_dev_s *g_bma_dev;
+
+struct bma_dev_s *get_bma_dev(void)
+{
+ return g_bma_dev;
+}
+
static int edma_host_dma_interrupt(struct edma_host_s *edma_host);
int edmainfo_show(char *buf)
@@ -231,7 +238,8 @@ void clear_int_dmab2h(struct edma_host_s *edma_host)
(void)pci_write_config_dword(pdev, REG_PCIE1_DMAWRITEINT_CLEAR, data);
}
-int edma_host_check_dma_status(enum dma_direction_e dir)
+// for 1710 1711
+int edma_host_check_dma_status_v1(enum dma_direction_e dir)
{
int ret = 0;
@@ -259,6 +267,18 @@ int edma_host_check_dma_status(enum dma_direction_e dir)
return ret;
}
+// for 1712
+int edma_host_check_dma_status_v2(enum dma_direction_e dir)
+{
+ UNUSED(dir);
+ if (check_dma_queue_state(CPL_STATE, TRUE) == 0 ||
+ check_dma_queue_state(IDLE_STATE, TRUE) == 0) {
+ return 1; /* ok */
+ }
+
+ return 0; /* busy */
+}
+
#ifdef USE_DMA
static int start_transfer_h2b(struct edma_host_s *edma_host, unsigned int len,
@@ -633,9 +653,9 @@ void host_dma_transfer_withlist(struct edma_host_s *edma_host,
}
}
-int edma_host_dma_transfer(struct edma_host_s *edma_host,
- struct bma_priv_data_s *priv,
- struct bma_dma_transfer_s *dma_transfer)
+// for 1710 1711
+int edma_host_dma_transfer_v1(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer)
{
int ret = 0;
unsigned long flags = 0;
@@ -673,7 +693,44 @@ int edma_host_dma_transfer(struct edma_host_s *edma_host,
return ret;
}
-void edma_host_reset_dma(struct edma_host_s *edma_host, int dir)
+// for 1712
+int edma_host_dma_transfer_v2(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer)
+{
+ int ret = 0;
+ unsigned long flags = 0;
+ struct bma_dev_s *bma_dev = NULL;
+
+ BMA_LOG(DLOG_DEBUG, "edma_host_dma_transfer 1712");
+
+ if (!edma_host || !priv || !dma_transfer)
+ return -EFAULT;
+
+ bma_dev = list_entry(edma_host, struct bma_dev_s, edma_host);
+
+ spin_lock_irqsave(&bma_dev->priv_list_lock, flags);
+
+ if (priv->user.dma_transfer == 0) {
+ spin_unlock_irqrestore(&bma_dev->priv_list_lock, flags);
+ BMA_LOG(DLOG_ERROR, "dma_transfer = %hhd\n", priv->user.dma_transfer);
+ return -EFAULT;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "transfer_edma_host 1712");
+
+ spin_unlock_irqrestore(&bma_dev->priv_list_lock, flags);
+
+ edma_host->statistics.dma_count++;
+
+ spin_lock_irqsave(&edma_host->reg_lock, flags);
+ ret = transfer_dma_queue(dma_transfer);
+ spin_unlock_irqrestore(&edma_host->reg_lock, flags);
+
+ return ret;
+}
+
+// for 1710/1711
+void edma_host_reset_dma_v1(struct edma_host_s *edma_host, enum dma_direction_e dir)
{
u32 data = 0;
u32 reg_addr = 0;
@@ -717,6 +774,13 @@ void edma_host_reset_dma(struct edma_host_s *edma_host, int dir)
reg_addr, count, data);
}
+// for 1712
+void edma_host_reset_dma_v2(struct edma_host_s *edma_host, enum dma_direction_e dir)
+{
+ UNUSED(dir);
+ reset_edma_host(edma_host);
+}
+
int edma_host_dma_stop(struct edma_host_s *edma_host,
struct bma_priv_data_s *priv)
{
@@ -750,8 +814,8 @@ static int edma_host_send_msg(struct edma_host_s *edma_host)
if (send_mbx_hdr->mbxlen > 0) {
if (send_mbx_hdr->mbxlen > HOST_MAX_SEND_MBX_LEN) {
/*share memory is disable */
+ BMA_LOG(DLOG_DEBUG, "mbxlen is too long: %d\n", send_mbx_hdr->mbxlen);
send_mbx_hdr->mbxlen = 0;
- BMA_LOG(DLOG_DEBUG, "mbxlen is too long\n");
return -EFAULT;
}
@@ -1296,6 +1360,69 @@ int edma_host_user_unregister(u32 type)
return 0;
}
+static void init_edma_sq_cq(struct edma_host_s *edma_host)
+{
+ u64 sq_phy_addr = 0;
+ u64 cq_phy_addr = 0;
+ phys_addr_t edma_address = 0;
+ int ret = 0;
+
+ if (get_pci_type() != PCI_TYPE_1712)
+ return;
+
+ ret = bma_intf_get_map_address(TYPE_EDMA_ADDR, &edma_address);
+ if (ret != 0)
+ return;
+
+ edma_host->edma_sq_addr = (void *)((unsigned char *)edma_host->edma_recv_addr
+ + HOST_MAX_RCV_MBX_LEN);
+ edma_host->edma_cq_addr = (void *)((unsigned char *)edma_host->edma_sq_addr
+ + sizeof(struct dma_ch_sq_s) * SQ_DEPTH);
+ sq_phy_addr = edma_address + HOST_DMA_FLAG_LEN + HOST_MAX_SEND_MBX_LEN
+ + HOST_MAX_RCV_MBX_LEN;
+ cq_phy_addr = sq_phy_addr + sizeof(struct dma_ch_sq_s) * SQ_DEPTH;
+
+ BMA_LOG(DLOG_DEBUG,
+ "sq_phy_addr = 0x%llx, SQ size = %zu, cq_phy_addr = 0x%llx, CQ size = %zu",
+ sq_phy_addr, sizeof(struct dma_ch_sq_s) * SQ_DEPTH,
+ cq_phy_addr, sizeof(struct dma_ch_cq_s) * CQ_DEPTH);
+ BMA_LOG(DLOG_DEBUG, "sq_addr = %pK, cq_addr = %pK", edma_host->edma_sq_addr,
+ edma_host->edma_cq_addr);
+
+ (void)memset(edma_host->edma_sq_addr, 0,
+ sizeof(struct dma_ch_sq_s) * SQ_DEPTH + sizeof(struct dma_ch_cq_s) * CQ_DEPTH);
+
+ set_dma_queue_sq_base_l(sq_phy_addr & PCIE_ADDR_L_32_MASK);
+ set_dma_queue_sq_base_h((u32)(sq_phy_addr >> PCIE_ADDR_H_SHIFT_32));
+ set_dma_queue_cq_base_l(cq_phy_addr & PCIE_ADDR_L_32_MASK);
+ set_dma_queue_cq_base_h((u32)(cq_phy_addr >> PCIE_ADDR_H_SHIFT_32));
+
+ reset_edma_host(edma_host);
+}
+
+static void edma_setup_timer(struct edma_host_s *edma_host)
+{
+#ifdef HAVE_TIMER_SETUP
+ timer_setup(&edma_host->timer, edma_host_timeout, 0);
+#else
+ setup_timer(&edma_host->timer, edma_host_timeout,
+ (unsigned long)edma_host);
+#endif
+ (void)mod_timer(&edma_host->timer, jiffies_64 + TIMER_INTERVAL_CHECK);
+
+#ifdef USE_DMA
+ #ifdef HAVE_TIMER_SETUP
+ timer_setup(&edma_host->dma_timer, edma_host_dma_timeout, 0);
+
+ #else
+ setup_timer(&edma_host->dma_timer, edma_host_dma_timeout,
+ (unsigned long)edma_host);
+ #endif
+ (void)mod_timer(&edma_host->dma_timer,
+ jiffies_64 + DMA_TIMER_INTERVAL_CHECK);
+#endif
+}
+
int edma_host_init(struct edma_host_s *edma_host)
{
int ret = 0;
@@ -1352,24 +1479,7 @@ int edma_host_init(struct edma_host_s *edma_host)
edma_host->b2h_state = B2HSTATE_IDLE;
#ifdef EDMA_TIMER
- #ifdef HAVE_TIMER_SETUP
- timer_setup(&edma_host->timer, edma_host_timeout, 0);
- #else
- setup_timer(&edma_host->timer, edma_host_timeout,
- (unsigned long)edma_host);
- #endif
- (void)mod_timer(&edma_host->timer, jiffies_64 + TIMER_INTERVAL_CHECK);
-#ifdef USE_DMA
- #ifdef HAVE_TIMER_SETUP
- timer_setup(&edma_host->dma_timer, edma_host_dma_timeout, 0);
-
- #else
- setup_timer(&edma_host->dma_timer, edma_host_dma_timeout,
- (unsigned long)edma_host);
- #endif
- (void)mod_timer(&edma_host->dma_timer,
- jiffies_64 + DMA_TIMER_INTERVAL_CHECK);
-#endif
+ edma_setup_timer(edma_host);
#else
init_completion(&edma_host->msg_ready);
@@ -1383,6 +1493,8 @@ int edma_host_init(struct edma_host_s *edma_host)
}
#endif
+ init_edma_sq_cq(edma_host);
+
#ifdef HAVE_TIMER_SETUP
timer_setup(&edma_host->heartbeat_timer,
edma_host_heartbeat_timer, 0);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
index cbbd86fd6602..93c81bc92286 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
@@ -18,6 +18,8 @@
#include "bma_include.h"
#include "../include/bma_ker_intf.h"
+#include "edma_reg.h"
+#include "edma_drv.h"
#define EDMA_TIMER
@@ -176,6 +178,13 @@
#define U64ADDR_H(addr) ((((u64)addr) >> 32) & 0xffffffff)
#define U64ADDR_L(addr) ((addr) & 0xffffffff)
+#define MAX_RESET_DMA_TIMES 10
+#define DELAY_BETWEEN_RESET_DMA 100
+#define PCI_VENDOR_ID_HUAWEI_PME 0x19e5
+#define PCI_DEVICE_ID_EDMA_0 0x1712
+#define SQ_DEPTH 128
+#define CQ_DEPTH 128
+
struct bma_register_dev_type_s {
u32 type;
u32 sub_type;
@@ -263,6 +272,8 @@ struct edma_host_s {
void __iomem *edma_flag;
void __iomem *edma_send_addr;
void __iomem *edma_recv_addr;
+ void __iomem *edma_sq_addr;
+ void __iomem *edma_cq_addr;
#ifdef USE_DMA
struct timer_list dma_timer;
#endif
@@ -309,6 +320,8 @@ struct edma_user_inft_s {
int (*add_msg)(void *msg, size_t msg_len);
};
+struct bma_dev_s *get_bma_dev(void);
+
int is_edma_b2h_int(struct edma_host_s *edma_host);
void edma_int_to_bmc(struct edma_host_s *edma_host);
int edma_host_mmap(struct edma_host_s *edma_hos, struct file *filp,
@@ -336,7 +349,6 @@ int edma_host_user_unregister(u32 type);
int edma_host_init(struct edma_host_s *edma_host);
void edma_host_cleanup(struct edma_host_s *edma_host);
int edma_host_send_driver_msg(const void *msg, size_t msg_len, int subtype);
-void edma_host_reset_dma(struct edma_host_s *edma_host, int dir);
void clear_int_dmah2b(struct edma_host_s *edma_host);
void clear_int_dmab2h(struct edma_host_s *edma_host);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
new file mode 100644
index 000000000000..678262f7412c
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
@@ -0,0 +1,470 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/errno.h>
+#include <linux/kthread.h>
+#include <linux/mm.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+
+#include "bma_pci.h"
+#include "edma_host.h"
+#include "edma_queue.h"
+
+static u32 pcie_dma_read(u32 offset)
+{
+ u32 reg_val;
+
+ reg_val = readl(get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ BMA_LOG(DLOG_DEBUG, "readl, offset 0x%x val 0x%x\n", offset, reg_val);
+ return reg_val;
+}
+
+static void pcie_dma_write(u32 offset, u32 reg_val)
+{
+ u32 read_val;
+
+ (void)writel(reg_val, get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ read_val = readl(get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ if (read_val != reg_val) {
+ BMA_LOG(DLOG_DEBUG,
+ "writel fail, read_value: 0x%x, set_value: 0x%x, offset: 0x%x\n",
+ read_val, reg_val, offset);
+ return;
+ }
+ BMA_LOG(DLOG_DEBUG, "writel, offset 0x%x val 0x%x\n", offset, reg_val);
+}
+
+static void set_dma_queue_int_msk(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_INT_MSK_0_REG, val);
+}
+
+static void set_dma_queue_err_int_msk(u32 val)
+{
+ union U_DMA_QUEUE_INT_MSK reg_val;
+
+ // The least significant bit (bit 0) of this register is reserved and must be cleared,
+ // while the remaining bits should retain their original values.
+ reg_val.u32 = val & 0xFFFFFFFE;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_ERR_INT_MSK_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_int_sts(u32 val)
+{
+ union U_DMA_QUEUE_INT_STS reg_val;
+
+ reg_val.u32 = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_INT_STS_0_REG, reg_val.u32);
+}
+
+static void get_dma_queue_int_sts(u32 *val)
+{
+ union U_DMA_QUEUE_INT_STS reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_INT_STS_0_REG);
+ *val = reg_val.u32;
+}
+
+static void get_dma_queue_fsm_sts(u32 *val)
+{
+ union U_DMA_QUEUE_FSM_STS reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_FSM_STS_0_REG);
+ *val = reg_val.bits.dma_queue_sts;
+}
+
+static void pause_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_pause = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void enable_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_en = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void reset_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL1 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL1_0_REG);
+ reg_val.bits.dma_queue_reset = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL1_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_sq_tail(u32 val)
+{
+ union U_DMA_QUEUE_SQ_TAIL_PTR reg_val;
+
+ reg_val.bits.dma_queue_sq_tail_ptr = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_cq_head(u32 val)
+{
+ union U_DMA_QUEUE_CQ_HEAD_PTR reg_val;
+
+ reg_val.bits.dma_queue_cq_head_ptr = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_HEAD_PTR_0_REG, reg_val.u32);
+}
+
+void set_dma_queue_sq_base_l(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_BASE_L_0_REG, val);
+}
+
+void set_dma_queue_sq_base_h(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_BASE_H_0_REG, val);
+}
+
+void set_dma_queue_cq_base_l(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_BASE_L_0_REG, val);
+}
+
+void set_dma_queue_cq_base_h(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_BASE_H_0_REG, val);
+}
+
+static void set_dma_queue_sq_depth(u32 val)
+{
+ union U_DMA_QUEUE_SQ_DEPTH reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_SQ_DEPTH_0_REG);
+ reg_val.bits.dma_queue_sq_depth = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_DEPTH_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_cq_depth(u32 val)
+{
+ union U_DMA_QUEUE_CQ_DEPTH reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CQ_DEPTH_0_REG);
+ reg_val.bits.dma_queue_cq_depth = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_DEPTH_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_arb_weight(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_arb_weight = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_drct_sel(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_cq_drct_sel = val;
+ reg_val.bits.dma_queue_sq_drct_sel = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void get_dma_queue_sq_tail(u32 *val)
+{
+ union U_DMA_QUEUE_SQ_TAIL_PTR reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG);
+ *val = reg_val.bits.dma_queue_sq_tail_ptr;
+}
+
+static void get_dma_queue_cq_tail(u32 *val)
+{
+ union U_DMA_QUEUE_CQ_TAIL_PTR reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CQ_TAIL_PTR_0_REG);
+ *val = reg_val.bits.dma_queue_cq_tail_ptr;
+}
+
+static void get_dma_queue_sq_head(u32 *val)
+{
+ u32 reg_val;
+
+ reg_val = pcie_dma_read(PCIE_DMA_QUEUE_SQ_STS_0_REG);
+ /* dma_queue_sq_head_ptr bit[15:0] */
+ *val = reg_val & 0xFFFF;
+}
+
+static void set_dma_queue_err_abort(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_sq_pa_lkp_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_proc_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_drop_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_cfg_err_abort_en = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_flr_disable(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_FLR_DISABLE_REG, val);
+}
+
+static void clear_dma_queue_int_chk(u32 mask)
+{
+ u32 int_sts;
+
+ (void)get_dma_queue_int_sts(&int_sts);
+ if (int_sts & mask)
+ (void)set_dma_queue_int_sts(mask);
+}
+
+s32 check_dma_queue_state(u32 state, u32 flag)
+{
+ u32 dma_state = 0;
+ unsigned long timeout;
+
+ BMA_LOG(DLOG_DEBUG, "state:%u, flag:%u\n", state, flag);
+
+ timeout = jiffies + TIMER_INTERVAL_CHECK;
+
+ while (1) {
+ get_dma_queue_fsm_sts(&dma_state);
+ BMA_LOG(DLOG_DEBUG, "DMA stats[%u]\n", dma_state);
+ // Flag is 0 and state does not equal to target value
+ // OR Flag is 1 and state is equal to target value
+ if ((!flag && dma_state != state) || (flag && dma_state == state))
+ break;
+
+ if (time_after(jiffies, timeout)) {
+ BMA_LOG(DLOG_DEBUG, "Wait stats[%u] fail\n", state);
+ return -ETIMEDOUT;
+ }
+ udelay(1);
+ }
+ return 0;
+}
+
+static s32 reset_dma(void)
+{
+ u32 dma_state = 0;
+
+ /* get dma channel fsm */
+ check_dma_queue_state(WAIT_STATE, FALSE);
+ get_dma_queue_fsm_sts(&dma_state);
+ BMA_LOG(DLOG_DEBUG, "dma_state:%u\n", dma_state);
+ switch (dma_state) {
+ /* idle status, dma channel need no reset */
+ case IDLE_STATE:
+ return 0;
+ case RUN_STATE:
+ pause_dma_queue(ENABLE);
+ fallthrough;
+ case ABORT_STATE:
+ case CPL_STATE:
+ enable_dma_queue(DISABLE);
+ if (check_dma_queue_state(RUN_STATE, FALSE))
+ return -ETIMEDOUT;
+ fallthrough;
+ case PAUSE_STATE:
+ case HALT_STATE:
+ set_dma_queue_sq_tail(0);
+ set_dma_queue_cq_head(0);
+ reset_dma_queue(ENABLE);
+ pause_dma_queue(DISABLE);
+ if (check_dma_queue_state(IDLE_STATE, TRUE))
+ return -ETIMEDOUT;
+ fallthrough;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static void init_dma(void)
+{
+ /* set dma channel sq tail */
+ set_dma_queue_sq_tail(0);
+ /* set dma channel cq head */
+ set_dma_queue_cq_head(0);
+ /* set dma queue drct sel */
+ set_dma_queue_drct_sel(DRC_LOCAL);
+ /* set dma channel sq depth */
+ set_dma_queue_sq_depth(SQ_DEPTH - 1);
+ /* set dma channel cq depth */
+ set_dma_queue_cq_depth(CQ_DEPTH - 1);
+ /* dma not process FLR , only cpu process FLR */
+ set_dma_queue_flr_disable(0x1);
+ /* set dma queue arb weight */
+ set_dma_queue_arb_weight(0x1F);
+ /* clear dma queue int status */
+ set_dma_queue_int_sts(0x1FFF);
+ /* set dma queue int mask */
+ set_dma_queue_err_int_msk(0x0);
+ set_dma_queue_int_msk(0x0);
+ /* set dma queue abort err en */
+ set_dma_queue_err_abort(ENABLE);
+ /* enable dma channel en */
+ enable_dma_queue(ENABLE);
+}
+
+s32 wait_done_dma_queue(unsigned long timeout)
+{
+ struct dma_ch_cq_s *p_cur_last_cq;
+ struct dma_ch_cq_s *p_dma_cq;
+ unsigned long end;
+ u32 sq_tail;
+ u32 sq_valid;
+ u32 cq_tail;
+ u32 cq_valid;
+
+ p_dma_cq = (struct dma_ch_cq_s *)((&get_bma_dev()->edma_host)->edma_cq_addr);
+ end = jiffies + timeout;
+
+ while (time_before(jiffies, end)) {
+ (void)get_dma_queue_sq_tail(&sq_tail);
+ (void)get_dma_queue_cq_tail(&cq_tail);
+
+ cq_valid = (cq_tail + CQ_DEPTH - 1) % (CQ_DEPTH);
+ p_cur_last_cq = &p_dma_cq[cq_valid];
+ sq_valid = (sq_tail + SQ_DEPTH - 1) % (SQ_DEPTH);
+ BMA_LOG(DLOG_DEBUG,
+ "sq_tail %d, cq_tail %d, cq_valid %d, sq_valid %d, p_cur_last_cq->sqhd %d\n",
+ sq_tail, cq_tail, cq_valid, sq_valid, p_cur_last_cq->sqhd);
+ if (p_cur_last_cq->sqhd == sq_valid) {
+ set_dma_queue_cq_head(cq_valid);
+ return 0;
+ }
+ }
+
+ return -ETIMEDOUT;
+}
+
+static s32 submit_dma_queue_sq(u32 dir, struct bspveth_dmal pdmalbase_v, u32 pf)
+{
+ u32 sq_tail;
+ u32 sq_head;
+ u32 sq_availble;
+ struct dma_ch_sq_s sq_submit;
+ struct dma_ch_sq_s *p_dma_sq;
+
+ p_dma_sq = (struct dma_ch_sq_s *)((&get_bma_dev()->edma_host)->edma_sq_addr);
+ (void)get_dma_queue_sq_tail(&sq_tail);
+ (void)get_dma_queue_sq_head(&sq_head);
+ sq_availble = SQ_DEPTH - 1 - (((sq_tail - sq_head) + SQ_DEPTH) % SQ_DEPTH);
+ if (sq_availble < 1) {
+ BMA_LOG(DLOG_DEBUG, "cannot process %u descriptors, try again later\n", 1);
+ return -1;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, sq_tail get %d, sq_head %d, sq_availble %d\n",
+ sq_tail, sq_head, sq_availble);
+
+ (void)memset(&sq_submit, 0, sizeof(sq_submit));
+ if (dir == DIR_H2B)
+ sq_submit.opcode = DMA_READ;
+ else
+ sq_submit.opcode = DMA_WRITE;
+
+ BMA_LOG(DLOG_DEBUG, "PF: %u\n", pf);
+ sq_submit.ldie = ENABLE;
+ sq_submit.rdie = ENABLE;
+ sq_submit.attr &= (~0x2); /* SO(Strong Ordering) */
+ sq_submit.pf = pf & 0x7; /* 0x7 */
+ sq_submit.p3p4 = (pf >> 3) & 0x3; /* 0x3 */
+ sq_submit.length = pdmalbase_v.len;
+ sq_submit.src_addr_l = pdmalbase_v.slow;
+ sq_submit.src_addr_h = pdmalbase_v.shi;
+ sq_submit.dst_addr_l = pdmalbase_v.dlow;
+ sq_submit.dst_addr_h = pdmalbase_v.dhi;
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, dir %d, op %d, length %d\n", dir,
+ sq_submit.opcode, sq_submit.length);
+
+ memcpy(p_dma_sq + sq_tail, &sq_submit, sizeof(sq_submit));
+ sq_tail = (sq_tail + 1) % SQ_DEPTH;
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, sq_tail change %d,\n", sq_tail);
+ wmb(); /* memory barriers. */
+
+ (void)set_dma_queue_sq_tail(sq_tail);
+
+ return 0;
+}
+
+s32 transfer_dma_queue(struct bma_dma_transfer_s *dma_transfer)
+{
+ struct bspveth_dmal *pdmalbase_v;
+ u32 dmal_cnt;
+ s32 ret;
+ int i;
+
+ if (!dma_transfer) {
+ BMA_LOG(DLOG_DEBUG, "dma_transfer is NULL.\n");
+ return -EFAULT;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "transfer dma queue.\n");
+
+ /* clear local done int */
+ clear_dma_queue_int_chk(DMA_DONE_MASK);
+
+ pdmalbase_v = dma_transfer->pdmalbase_v;
+ dmal_cnt = dma_transfer->dmal_cnt;
+ for (i = 0; i < dmal_cnt; i++)
+ submit_dma_queue_sq(dma_transfer->dir, pdmalbase_v[i],
+ get_bma_dev()->bma_pci_dev->pdev->devfn);
+
+ (void)set_dma_queue_int_msk(DMA_DONE_UNMASK);
+ (void)set_dma_queue_err_int_msk(DMA_ERR_UNMASK);
+ (void)enable_dma_queue(ENABLE);
+
+ ret = wait_done_dma_queue(DMA_TMOUT);
+ if (ret)
+ BMA_LOG(DLOG_DEBUG, "EP DMA: dma wait timeout");
+
+ return ret;
+}
+
+void reset_edma_host(struct edma_host_s *edma_host)
+{
+ unsigned long flags = 0;
+ int count = 0;
+
+ if (!edma_host)
+ return;
+
+ spin_lock_irqsave(&edma_host->reg_lock, flags);
+
+ while (count++ < MAX_RESET_DMA_TIMES) {
+ if (reset_dma() == 0) {
+ BMA_LOG(DLOG_DEBUG, "reset dma successfully\n");
+ init_dma();
+ break;
+ }
+
+ mdelay(DELAY_BETWEEN_RESET_DMA);
+ }
+
+ spin_unlock_irqrestore(&edma_host->reg_lock, flags);
+ BMA_LOG(DLOG_DEBUG, "reset dma count=%d\n", count);
+}
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
new file mode 100644
index 000000000000..0cf449c0ae00
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_QUEUE_H
+#define EDMA_QUEUE_H
+#include "edma_host.h"
+
+s32 check_dma_queue_state(u32 state, u32 flag);
+void set_dma_queue_sq_base_l(u32 val);
+void set_dma_queue_sq_base_h(u32 val);
+void set_dma_queue_cq_base_l(u32 val);
+void set_dma_queue_cq_base_h(u32 val);
+void reset_edma_host(struct edma_host_s *edma_host);
+int transfer_edma_host(struct edma_host_s *host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *transfer);
+s32 transfer_dma_queue(struct bma_dma_transfer_s *dma_transfer);
+#endif
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
new file mode 100644
index 000000000000..c4e056a92bc8
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_REG_H
+#define EDMA_REG_H
+
+#define PORT_EP 0
+#define PORT_RP 1
+
+#define ENABLE 1
+#define DISABLE 0
+
+#define TRUE 1
+#define FALSE 0
+
+/* core0:x2/x1 core1:x1 */
+#define PCIE_CORE_NUM 2
+#define PCIE_REG_OFFSET 0x100000U
+#define PCIE_REG_SIZE 0x100000
+
+#define GEN1 0x1
+#define GEN2 0x2
+#define GEN3 0x3
+#define GEN4 0x4
+
+#define PCIE_ADDR_H_SHIFT_32 32
+#define PCIE_ADDR_L_32_MASK 0xFFFFFFFF
+
+#define AP_DMA_BIT BIT(5)
+#define AP_MASK_ALL 0x3FF
+#define AP_DMA_CHAN_REG_SIZE 0x100
+
+/********************************************************************************************/
+/* PCIE reg base */
+/********************************************************************************************/
+#define PCIE_BASE_ADDR 0x1E100000U
+#define AP_DMA_REG 0x10000U
+#define AP_IOB_TX_REG_BASE 0x0U
+#define AP_IOB_RX_REG_BASE 0x4000U
+#define AP_GLOBAL_REG_BASE 0x8000U
+
+/********************************************************************************************/
+/* PCIE AP DMA REG */
+/********************************************************************************************/
+#define PCIE_DMA_EP_INT_MSK_REG 0x24 /* DMA_EP_INT_MSK */
+#define PCIE_DMA_EP_INT_REG 0x28 /* DMA_EP_INT */
+#define PCIE_DMA_EP_INT_STS_REG 0x2C /* DMA_EP_INT_STS */
+#define PCIE_DMA_FLR_DISABLE_REG 0xA00 /* DMA_FLR_DISABLE */
+#define PCIE_DMA_QUEUE_SQ_BASE_L_0_REG 0x2000 /* DMA Queue SQ Base Address Low Register */
+#define PCIE_DMA_QUEUE_SQ_BASE_H_0_REG 0x2004 /* DMA Queue SQ Base Address High Register */
+#define PCIE_DMA_QUEUE_SQ_DEPTH_0_REG 0x2008 /* DMA Queue SQ Depth */
+#define PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG 0x200C /* DMA Queue SQ Tail Pointer Register */
+#define PCIE_DMA_QUEUE_CQ_BASE_L_0_REG 0x2010 /* DMA Queue CQ Base Address Low Register */
+#define PCIE_DMA_QUEUE_CQ_BASE_H_0_REG 0x2014 /* DMA Queue CQ Base Address High Register */
+#define PCIE_DMA_QUEUE_CQ_DEPTH_0_REG 0x2018 /* DMA Queue CQ Depth */
+#define PCIE_DMA_QUEUE_CQ_HEAD_PTR_0_REG 0x201C /* DMA Queue CQ Head Pointer Register */
+#define PCIE_DMA_QUEUE_CTRL0_0_REG 0x2020 /* DMA Queue control Register 0 */
+#define PCIE_DMA_QUEUE_CTRL1_0_REG 0x2024 /* DMA Queue control Register 1 */
+#define PCIE_DMA_QUEUE_FSM_STS_0_REG 0x2030 /* DMA Queue FSM Status Register */
+#define PCIE_DMA_QUEUE_SQ_STS_0_REG 0x2034 /* DMA Queue SQ and CQ status Register */
+#define PCIE_DMA_QUEUE_CQ_TAIL_PTR_0_REG 0x203C /* DMA Queue CQ Tail Pointer Register */
+#define PCIE_DMA_QUEUE_INT_STS_0_REG 0x2040 /* DMA Queue Interrupt Status */
+#define PCIE_DMA_QUEUE_INT_MSK_0_REG 0x2044 /* DMA Queue Interrupt Mask Register */
+#define PCIE_DMA_QUEUE_ERR_INT_STS_0_REG 0x2048 /* DMA Queue Err Interrupt Status */
+#define PCIE_DMA_QUEUE_ERR_INT_MSK_0_REG 0x204C /* DMA Queue Err Interrupt Mask Register */
+#define PCIE_DMA_QUEUE_INT_RO_0_REG 0x206C /* DMA Queue Interrupt RO Register */
+
+/********************************************************************************************/
+/* PCIE AP_GLOBAL_REG */
+/********************************************************************************************/
+#define PCIE_CE_ENA 0x0008
+#define PCIE_UNF_ENA 0x0010
+#define PCIE_UF_ENA 0x0018
+
+#define PCIE_MSI_MASK 0x00F4
+#define PORT_INTX_ASSERT_MASK 0x01B0
+#define PORT_INTX_DEASSERT_MASK 0x01B4
+
+#define PCIE_AP_NI_ENA 0x0100
+#define PCIE_AP_CE_ENA 0x0104
+#define PCIE_AP_UNF_ENA 0x0108
+#define PCIE_AP_UF_ENA 0x010c
+#define PCIE_AP_NI_MASK 0x0110
+#define PCIE_AP_CE_MASK 0x0114
+#define PCIE_AP_UNF_MASK 0x0118
+#define PCIE_AP_UF_MASK 0x011C
+#define PCIE_AP_NI_STATUS 0x0120
+#define PCIE_AP_CE_STATUS 0x0124
+#define PCIE_AP_UNF_STATUS 0x0128
+#define PCIE_AP_UF_STATUS 0x012C
+#define PCIE_CORE_NI_ENA 0x0160
+#define PCIE_CORE_CE_ENA 0x0164
+#define PCIE_CORE_UNF_ENA 0x0168
+#define PCIE_CORE_UF_ENA 0x016c
+
+#define AP_PORT_EN_REG 0x0800
+#define AP_APB_SYN_RST 0x0810
+#define AP_AXI_SYN_RST 0x0814
+#define AP_IDLE 0x0C08
+
+/********************************************************************************************/
+/* PCIE AP_IOB_RX_COM_REG Reg */
+/********************************************************************************************/
+#define IOB_RX_AML_SNOOP 0x1AAC
+#define IOB_RX_MSI_INT_CTRL 0x1040
+
+#define IOB_RX_MSI_INT_ADDR_HIGH 0x1044
+#define IOB_RX_MSI_INT_ADDR_LOW 0x1048
+
+#define IOB_RX_PAB_SMMU_BYPASS_CTRL 0x2004
+
+#define IOB_RX_DMA_REG_REMAP_0 0x0E30
+#define IOB_RX_DMA_REG_REMAP_1 0x0E34
+
+#endif /* EDMA_REG_H */
diff --git a/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h b/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
index d1df99b0c9fd..8d284d5f6e62 100644
--- a/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
+++ b/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
@@ -47,6 +47,17 @@ enum intr_mod {
INTR_ENABLE = 1,
};
+enum addr_type {
+ TYPE_EDMA_ADDR = 0,
+ TYPE_VETH_ADDR = 1,
+};
+
+enum pci_type_e {
+ PCI_TYPE_UNKNOWN,
+ PCI_TYPE_171x,
+ PCI_TYPE_1712
+};
+
struct bma_dma_addr_s {
dma_addr_t dma_addr;
u32 dma_data_len;
@@ -66,10 +77,28 @@ union transfer_u {
struct dmalist_transfer_s list;
};
+struct bspveth_dmal {
+ u32 chl;
+ u32 len;
+ u32 slow;
+ u32 shi;
+ u32 dlow;
+ u32 dhi;
+};
+
struct bma_dma_transfer_s {
enum dma_type_e type;
enum dma_direction_e dir;
union transfer_u transfer;
+ struct bspveth_dmal *pdmalbase_v;
+ u32 dmal_cnt;
+};
+
+struct bma_map_addr_s {
+ enum pci_type_e pci_type;
+ u32 host_number;
+ enum addr_type addr_type;
+ u32 addr;
};
int bma_intf_register_int_notifier(struct notifier_block *nb);
@@ -91,4 +120,21 @@ int bma_cdev_add_msg(void *handle, const char __user *msg, size_t msg_len);
unsigned int bma_cdev_check_recv(void *handle);
void *bma_cdev_get_wait_queue(void *handle);
int bma_intf_check_edma_supported(void);
+
+enum pci_type_e get_pci_type(void);
+void set_pci_type(enum pci_type_e type);
+
+int bma_intf_get_host_number(unsigned int *host_number);
+int bma_intf_get_map_address(enum addr_type type, phys_addr_t *addr);
+
+#define HOST_NUMBER_0 0
+#define HOST_NUMBER_1 1
+
+#define EDMA_1711_HOST0_ADDR 0x84810000
+#define VETH_1711_HOST0_ADDR 0x84820000
+#define EDMA_1712_HOST0_ADDR 0x85400000
+#define VETH_1712_HOST0_ADDR 0x85410000
+#define EDMA_1712_HOST1_ADDR 0x87400000
+#define VETH_1712_HOST1_ADDR 0x87410000
+
#endif
diff --git a/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h b/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
index 0d82ee6f7c83..745d83b431f8 100644
--- a/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
+++ b/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
@@ -23,7 +23,7 @@
#ifdef DRV_VERSION
#define KBOX_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define KBOX_VERSION "0.3.10"
+#define KBOX_VERSION "0.4.0"
#endif
#define UNUSED(x) (x = x)
diff --git a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
index 9d918edae703..774229ae8dd1 100644
--- a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
+++ b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
@@ -495,6 +495,11 @@ s32 bspveth_setup_all_tx_resources(struct bspveth_device *pvethdev)
int err = 0;
u8 *shmq_head_p = NULL;
struct bspveth_shmq_hd *shmq_head = NULL;
+ phys_addr_t veth_address = 0;
+
+ err = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (err != 0)
+ goto failed;
if (!pvethdev)
return BSP_ERR_NULL_POINTER;
@@ -526,7 +531,7 @@ s32 bspveth_setup_all_tx_resources(struct bspveth_device *pvethdev)
(struct bspveth_dmal *)((BSP_VETH_T)(shmq_head)
+ SHMDMAL_OFFSET);
pvethdev->ptx_queue[qid]->pdmalbase_p =
- (u8 *)(u64)(VETH_SHAREPOOL_BASE_INBMC +
+ (u8 *)(u64)(veth_address +
MAX_SHAREQUEUE_SIZE * qid +
SHMDMAL_OFFSET);
@@ -851,6 +856,11 @@ s32 bspveth_setup_all_rx_resources(struct bspveth_device *pvethdev)
int qid, i, err = 0;
struct bspveth_shmq_hd *shmq_head = NULL;
u8 *shmq_head_p = NULL;
+ phys_addr_t veth_address = 0;
+
+ err = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (err != 0)
+ goto failed;
if (!pvethdev)
return BSP_ERR_NULL_POINTER;
@@ -885,7 +895,7 @@ s32 bspveth_setup_all_rx_resources(struct bspveth_device *pvethdev)
(struct bspveth_dmal *)((BSP_VETH_T)(shmq_head)
+ SHMDMAL_OFFSET);
pvethdev->prx_queue[qid]->pdmalbase_p =
- (u8 *)(u64)(VETH_SHAREPOOL_BASE_INBMC
+ (u8 *)(u64)(veth_address
+ MAX_SHAREQUEUE_SIZE * (qid + 1)
+ SHMDMAL_OFFSET);
memset(pvethdev->prx_queue[qid]->pdmalbase_v, 0,
@@ -1236,6 +1246,8 @@ void veth_netdev_func_init(struct net_device *dev)
{
struct tag_pcie_comm_priv *priv =
(struct tag_pcie_comm_priv *)netdev_priv(dev);
+ u32 host_number = 0;
+ int ret = 0;
/*9C:7D:A3:28:6F:F9*/
unsigned char veth_mac[ETH_ALEN] = {0x9C, 0x7D, 0xA3, 0x28, 0x6F, 0xF9};
@@ -1243,6 +1255,12 @@ void veth_netdev_func_init(struct net_device *dev)
ether_setup(dev);
+ ret = bma_intf_get_host_number(&host_number);
+ if (ret < 0) {
+ VETH_LOG(DLOG_ERROR, "bma_intf_get_host_number failed!\n");
+ return;
+ }
+
dev->netdev_ops = &veth_ops;
dev->watchdog_timeo = BSPVETH_NET_TIMEOUT;
@@ -1257,6 +1275,7 @@ void veth_netdev_func_init(struct net_device *dev)
memset(priv, 0, sizeof(struct tag_pcie_comm_priv));
strncpy(priv->net_type, MODULE_NAME, NET_TYPE_LEN);
+ veth_mac[ETH_ALEN - 1] = (host_number == 0 ? 0xF9 : 0xFB);
eth_hw_addr_set(dev, veth_mac);
VETH_LOG(DLOG_DEBUG, "set veth MAC addr OK\n");
@@ -2226,6 +2245,8 @@ s32 __start_dmalist_H(struct bspveth_rxtx_q *prxtx_queue, u32 cnt, u32 type)
dma_transfer.type = DMA_LIST;
dma_transfer.transfer.list.dma_addr =
(dma_addr_t)prxtx_queue->pdmalbase_p;
+ dma_transfer.pdmalbase_v = prxtx_queue->pdmalbase_v;
+ dma_transfer.dmal_cnt = prxtx_queue->dmal_cnt;
ret = bma_intf_start_dma(g_bspveth_dev.bma_priv, &dma_transfer);
if (ret < 0)
diff --git a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
index 242d3ec128d3..f8b7e2f8d604 100644
--- a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
+++ b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
@@ -31,7 +31,7 @@ extern "C" {
#ifdef DRV_VERSION
#define VETH_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define VETH_VERSION "0.3.10"
+#define VETH_VERSION "0.4.0"
#endif
#define MODULE_NAME "veth"
@@ -67,7 +67,6 @@ extern "C" {
#define SYSCTL_REG_SIZE (0x1000)
#define PCIE1_REG_BASE (0x29000000)
#define PCIE1_REG_SIZE (0x1000)
-#define VETH_SHAREPOOL_BASE_INBMC (0x84820000)
#define VETH_SHAREPOOL_SIZE (0xdf000)
#define VETH_SHAREPOOL_OFFSET (0x10000)
#define MAX_SHAREQUEUE_SIZE (0x20000)
@@ -261,15 +260,6 @@ struct bspveth_dma_bd {
u32 off;
};
-struct bspveth_dmal {
- u32 chl;
- u32 len;
- u32 slow;
- u32 shi;
- u32 dlow;
- u32 dhi;
-};
-
struct bspveth_rxtx_q {
#ifndef VETH_BMC
struct bspveth_dma_bd *pbdbase_v;
--
2.33.0
2
1

[openeuler:OLK-6.6 2666/2666] drivers/usb/dwc3/core.c:1174:16: warning: variable 'hw_mode' set but not used
by kernel test robot 11 Aug '25
by kernel test robot 11 Aug '25
11 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 09d0a2e6b14e15a741ad6b479c7dced36608a9ff
commit: 381994c39e251eeb2cecf06200ff200fdd5e06ff [2666/2666] usb: dwc3: core: Prevent phy suspend during init
config: x86_64-buildonly-randconfig-2004-20250811 (https://download.01.org/0day-ci/archive/20250811/202508111054.kROi2W5N-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/20250811/202508111054.kROi2W5N-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/202508111054.kROi2W5N-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/usb/dwc3/core.c:24:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:2235:
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_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/usb/dwc3/core.c:1174:16: warning: variable 'hw_mode' set but not used [-Wunused-but-set-variable]
1174 | unsigned int hw_mode;
| ^
2 warnings generated.
vim +/hw_mode +1174 drivers/usb/dwc3/core.c
0a0e16cf4375dc Stanley Chang 2023-12-03 1165
941f918ecfa757 Felipe Balbi 2016-10-14 1166 /**
941f918ecfa757 Felipe Balbi 2016-10-14 1167 * dwc3_core_init - Low-level initialization of DWC3 Core
941f918ecfa757 Felipe Balbi 2016-10-14 1168 * @dwc: Pointer to our controller context structure
941f918ecfa757 Felipe Balbi 2016-10-14 1169 *
941f918ecfa757 Felipe Balbi 2016-10-14 1170 * Returns 0 on success otherwise negative errno.
941f918ecfa757 Felipe Balbi 2016-10-14 1171 */
941f918ecfa757 Felipe Balbi 2016-10-14 1172 static int dwc3_core_init(struct dwc3 *dwc)
941f918ecfa757 Felipe Balbi 2016-10-14 1173 {
9ba3aca8fe8231 Thinh Nguyen 2019-08-09 @1174 unsigned int hw_mode;
941f918ecfa757 Felipe Balbi 2016-10-14 1175 u32 reg;
941f918ecfa757 Felipe Balbi 2016-10-14 1176 int ret;
941f918ecfa757 Felipe Balbi 2016-10-14 1177
9ba3aca8fe8231 Thinh Nguyen 2019-08-09 1178 hw_mode = DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0);
9ba3aca8fe8231 Thinh Nguyen 2019-08-09 1179
941f918ecfa757 Felipe Balbi 2016-10-14 1180 /*
941f918ecfa757 Felipe Balbi 2016-10-14 1181 * Write Linux Version Code to our GUID register so it's easy to figure
941f918ecfa757 Felipe Balbi 2016-10-14 1182 * out which kernel version a bug was found.
941f918ecfa757 Felipe Balbi 2016-10-14 1183 */
941f918ecfa757 Felipe Balbi 2016-10-14 1184 dwc3_writel(dwc->regs, DWC3_GUID, LINUX_VERSION_CODE);
941f918ecfa757 Felipe Balbi 2016-10-14 1185
98112041bcca16 Roger Quadros 2018-02-12 1186 ret = dwc3_phy_setup(dwc);
941f918ecfa757 Felipe Balbi 2016-10-14 1187 if (ret)
d2f197822d5807 Johan Hovold 2023-04-04 1188 return ret;
941f918ecfa757 Felipe Balbi 2016-10-14 1189
98112041bcca16 Roger Quadros 2018-02-12 1190 if (!dwc->ulpi_ready) {
98112041bcca16 Roger Quadros 2018-02-12 1191 ret = dwc3_core_ulpi_init(dwc);
63130462c919ec Ferry Toth 2022-12-05 1192 if (ret) {
63130462c919ec Ferry Toth 2022-12-05 1193 if (ret == -ETIMEDOUT) {
63130462c919ec Ferry Toth 2022-12-05 1194 dwc3_core_soft_reset(dwc);
63130462c919ec Ferry Toth 2022-12-05 1195 ret = -EPROBE_DEFER;
63130462c919ec Ferry Toth 2022-12-05 1196 }
d2f197822d5807 Johan Hovold 2023-04-04 1197 return ret;
63130462c919ec Ferry Toth 2022-12-05 1198 }
98112041bcca16 Roger Quadros 2018-02-12 1199 dwc->ulpi_ready = true;
98112041bcca16 Roger Quadros 2018-02-12 1200 }
4878a02898bab1 Sebastian Andrzej Siewior 2011-10-31 1201
98112041bcca16 Roger Quadros 2018-02-12 1202 if (!dwc->phys_ready) {
98112041bcca16 Roger Quadros 2018-02-12 1203 ret = dwc3_core_get_phy(dwc);
f54edb539c1167 Felipe Balbi 2017-06-05 1204 if (ret)
d2f197822d5807 Johan Hovold 2023-04-04 1205 goto err_exit_ulpi;
98112041bcca16 Roger Quadros 2018-02-12 1206 dwc->phys_ready = true;
98112041bcca16 Roger Quadros 2018-02-12 1207 }
98112041bcca16 Roger Quadros 2018-02-12 1208
1d72fab476567a Johan Hovold 2023-04-04 1209 ret = dwc3_phy_init(dwc);
1d72fab476567a Johan Hovold 2023-04-04 1210 if (ret)
1d72fab476567a Johan Hovold 2023-04-04 1211 goto err_exit_ulpi;
8cfac9a6744fcb Li Jun 2021-09-08 1212
98112041bcca16 Roger Quadros 2018-02-12 1213 ret = dwc3_core_soft_reset(dwc);
98112041bcca16 Roger Quadros 2018-02-12 1214 if (ret)
1d72fab476567a Johan Hovold 2023-04-04 1215 goto err_exit_phy;
f54edb539c1167 Felipe Balbi 2017-06-05 1216
941f918ecfa757 Felipe Balbi 2016-10-14 1217 dwc3_core_setup_global_control(dwc);
c499ff71ff2a28 Felipe Balbi 2016-05-16 1218 dwc3_core_num_eps(dwc);
0ffcaf3798bfd8 Felipe Balbi 2013-12-19 1219
3497b9a5c8c3d4 Li Jun 2022-06-07 1220 /* Set power down scale of suspend_clk */
3497b9a5c8c3d4 Li Jun 2022-06-07 1221 dwc3_set_power_down_clk_scale(dwc);
3497b9a5c8c3d4 Li Jun 2022-06-07 1222
c499ff71ff2a28 Felipe Balbi 2016-05-16 1223 /* Adjust Frame Length */
c499ff71ff2a28 Felipe Balbi 2016-05-16 1224 dwc3_frame_length_adjustment(dwc);
c499ff71ff2a28 Felipe Balbi 2016-05-16 1225
7bee3188388901 Balaji Prakash J 2021-08-31 1226 /* Adjust Reference Clock Period */
7bee3188388901 Balaji Prakash J 2021-08-31 1227 dwc3_ref_clk_period(dwc);
7bee3188388901 Balaji Prakash J 2021-08-31 1228
d9612c2f0449e2 Pengbo Mu 2018-07-23 1229 dwc3_set_incr_burst_type(dwc);
d9612c2f0449e2 Pengbo Mu 2018-07-23 1230
8018018d9c5647 Dan Carpenter 2023-05-04 1231 ret = dwc3_phy_power_on(dwc);
1d72fab476567a Johan Hovold 2023-04-04 1232 if (ret)
1d72fab476567a Johan Hovold 2023-04-04 1233 goto err_exit_phy;
c499ff71ff2a28 Felipe Balbi 2016-05-16 1234
c499ff71ff2a28 Felipe Balbi 2016-05-16 1235 ret = dwc3_event_buffers_setup(dwc);
c499ff71ff2a28 Felipe Balbi 2016-05-16 1236 if (ret) {
c499ff71ff2a28 Felipe Balbi 2016-05-16 1237 dev_err(dwc->dev, "failed to setup event buffers\n");
1d72fab476567a Johan Hovold 2023-04-04 1238 goto err_power_off_phy;
c499ff71ff2a28 Felipe Balbi 2016-05-16 1239 }
c499ff71ff2a28 Felipe Balbi 2016-05-16 1240
06281d460fc5d8 John Youn 2016-08-22 1241 /*
06281d460fc5d8 John Youn 2016-08-22 1242 * ENDXFER polling is available on version 3.10a and later of
06281d460fc5d8 John Youn 2016-08-22 1243 * the DWC_usb3 controller. It is NOT available in the
06281d460fc5d8 John Youn 2016-08-22 1244 * DWC_usb31 controller.
06281d460fc5d8 John Youn 2016-08-22 1245 */
9af21dd6faeba5 Thinh Nguyen 2020-04-11 1246 if (DWC3_VER_IS_WITHIN(DWC3, 310A, ANY)) {
06281d460fc5d8 John Youn 2016-08-22 1247 reg = dwc3_readl(dwc->regs, DWC3_GUCTL2);
06281d460fc5d8 John Youn 2016-08-22 1248 reg |= DWC3_GUCTL2_RST_ACTBITLATER;
06281d460fc5d8 John Youn 2016-08-22 1249 dwc3_writel(dwc->regs, DWC3_GUCTL2, reg);
06281d460fc5d8 John Youn 2016-08-22 1250 }
06281d460fc5d8 John Youn 2016-08-22 1251
63d7f9810a3810 Piyush Mehta 2022-09-20 1252 /*
63d7f9810a3810 Piyush Mehta 2022-09-20 1253 * When configured in HOST mode, after issuing U3/L2 exit controller
63d7f9810a3810 Piyush Mehta 2022-09-20 1254 * fails to send proper CRC checksum in CRC5 feild. Because of this
63d7f9810a3810 Piyush Mehta 2022-09-20 1255 * behaviour Transaction Error is generated, resulting in reset and
63d7f9810a3810 Piyush Mehta 2022-09-20 1256 * re-enumeration of usb device attached. All the termsel, xcvrsel,
63d7f9810a3810 Piyush Mehta 2022-09-20 1257 * opmode becomes 0 during end of resume. Enabling bit 10 of GUCTL1
63d7f9810a3810 Piyush Mehta 2022-09-20 1258 * will correct this problem. This option is to support certain
63d7f9810a3810 Piyush Mehta 2022-09-20 1259 * legacy ULPI PHYs.
63d7f9810a3810 Piyush Mehta 2022-09-20 1260 */
63d7f9810a3810 Piyush Mehta 2022-09-20 1261 if (dwc->resume_hs_terminations) {
63d7f9810a3810 Piyush Mehta 2022-09-20 1262 reg = dwc3_readl(dwc->regs, DWC3_GUCTL1);
63d7f9810a3810 Piyush Mehta 2022-09-20 1263 reg |= DWC3_GUCTL1_RESUME_OPMODE_HS_HOST;
63d7f9810a3810 Piyush Mehta 2022-09-20 1264 dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
63d7f9810a3810 Piyush Mehta 2022-09-20 1265 }
63d7f9810a3810 Piyush Mehta 2022-09-20 1266
9af21dd6faeba5 Thinh Nguyen 2020-04-11 1267 if (!DWC3_VER_IS_PRIOR(DWC3, 250A)) {
65db7a0c981637 William Wu 2017-04-19 1268 reg = dwc3_readl(dwc->regs, DWC3_GUCTL1);
65db7a0c981637 William Wu 2017-04-19 1269
0bb39ca1ad8758 John Youn 2016-10-12 1270 /*
65db7a0c981637 William Wu 2017-04-19 1271 * Enable hardware control of sending remote wakeup
65db7a0c981637 William Wu 2017-04-19 1272 * in HS when the device is in the L1 state.
0bb39ca1ad8758 John Youn 2016-10-12 1273 */
9af21dd6faeba5 Thinh Nguyen 2020-04-11 1274 if (!DWC3_VER_IS_PRIOR(DWC3, 290A))
0bb39ca1ad8758 John Youn 2016-10-12 1275 reg |= DWC3_GUCTL1_DEV_L1_EXIT_BY_HW;
65db7a0c981637 William Wu 2017-04-19 1276
843714bb37d9a3 Jack Pham 2021-08-12 1277 /*
843714bb37d9a3 Jack Pham 2021-08-12 1278 * Decouple USB 2.0 L1 & L2 events which will allow for
843714bb37d9a3 Jack Pham 2021-08-12 1279 * gadget driver to only receive U3/L2 suspend & wakeup
843714bb37d9a3 Jack Pham 2021-08-12 1280 * events and prevent the more frequent L1 LPM transitions
843714bb37d9a3 Jack Pham 2021-08-12 1281 * from interrupting the driver.
843714bb37d9a3 Jack Pham 2021-08-12 1282 */
843714bb37d9a3 Jack Pham 2021-08-12 1283 if (!DWC3_VER_IS_PRIOR(DWC3, 300A))
843714bb37d9a3 Jack Pham 2021-08-12 1284 reg |= DWC3_GUCTL1_DEV_DECOUPLE_L1L2_EVT;
843714bb37d9a3 Jack Pham 2021-08-12 1285
65db7a0c981637 William Wu 2017-04-19 1286 if (dwc->dis_tx_ipgap_linecheck_quirk)
65db7a0c981637 William Wu 2017-04-19 1287 reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
65db7a0c981637 William Wu 2017-04-19 1288
7ba6b09fda5e0c Neil Armstrong 2020-02-21 1289 if (dwc->parkmode_disable_ss_quirk)
7ba6b09fda5e0c Neil Armstrong 2020-02-21 1290 reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
7ba6b09fda5e0c Neil Armstrong 2020-02-21 1291
d21a797a3eeb2b Stanley Chang 2023-04-19 1292 if (dwc->parkmode_disable_hs_quirk)
d21a797a3eeb2b Stanley Chang 2023-04-19 1293 reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS;
d21a797a3eeb2b Stanley Chang 2023-04-19 1294
62b20e6e0dde8d Bin Yang 2022-02-28 1295 if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) &&
62b20e6e0dde8d Bin Yang 2022-02-28 1296 (dwc->maximum_speed == USB_SPEED_HIGH ||
62b20e6e0dde8d Bin Yang 2022-02-28 1297 dwc->maximum_speed == USB_SPEED_FULL))
62b20e6e0dde8d Bin Yang 2022-02-28 1298 reg |= DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK;
62b20e6e0dde8d Bin Yang 2022-02-28 1299
0bb39ca1ad8758 John Youn 2016-10-12 1300 dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
0bb39ca1ad8758 John Youn 2016-10-12 1301 }
0bb39ca1ad8758 John Youn 2016-10-12 1302
0a0e16cf4375dc Stanley Chang 2023-12-03 1303 dwc3_config_threshold(dwc);
938a5ad1d3055c Thinh Nguyen 2018-03-16 1304
72246da40f3719 Felipe Balbi 2011-08-19 1305 return 0;
72246da40f3719 Felipe Balbi 2011-08-19 1306
1d72fab476567a Johan Hovold 2023-04-04 1307 err_power_off_phy:
1d72fab476567a Johan Hovold 2023-04-04 1308 dwc3_phy_power_off(dwc);
1d72fab476567a Johan Hovold 2023-04-04 1309 err_exit_phy:
1d72fab476567a Johan Hovold 2023-04-04 1310 dwc3_phy_exit(dwc);
d2f197822d5807 Johan Hovold 2023-04-04 1311 err_exit_ulpi:
98112041bcca16 Roger Quadros 2018-02-12 1312 dwc3_ulpi_exit(dwc);
98112041bcca16 Roger Quadros 2018-02-12 1313
72246da40f3719 Felipe Balbi 2011-08-19 1314 return ret;
72246da40f3719 Felipe Balbi 2011-08-19 1315 }
72246da40f3719 Felipe Balbi 2011-08-19 1316
:::::: The code at line 1174 was first introduced by commit
:::::: 9ba3aca8fe82318805709036bd50bee64570088b usb: dwc3: Disable phy suspend after power-on reset
:::::: TO: Thinh Nguyen <Thinh.Nguyen(a)synopsys.com>
:::::: CC: Felipe Balbi <felipe.balbi(a)linux.intel.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
Eduard Zingerman (2):
bpf: refactor bpf_helper_changes_pkt_data to use helper number
bpf: consider that tail calls invalidate packet pointers
include/linux/filter.h | 2 +-
kernel/bpf/core.c | 2 +-
kernel/bpf/verifier.c | 2 +-
net/core/filter.c | 65 +++++++++++++++++++-----------------------
4 files changed, 33 insertions(+), 38 deletions(-)
--
2.33.0
2
3

[PATCH OLK-5.10] net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too
by Wang Liang 11 Aug '25
by Wang Liang 11 Aug '25
11 Aug '25
From: Cong Wang <xiyou.wangcong(a)gmail.com>
stable inclusion
from stable-v5.10.237
commit 2f46d14919c39528c6e540ebc43f90055993eedc
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IC6BXK
CVE: CVE-2025-37823
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 6ccbda44e2cc3d26fd22af54c650d6d5d801addf ]
Similarly to the previous patch, we need to safe guard hfsc_dequeue()
too. But for this one, we don't have a reliable reproducer.
Fixes: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ("Linux-2.6.12-rc2")
Reported-by: Gerrard Tai <gerrard.tai(a)starlabs.sg>
Signed-off-by: Cong Wang <xiyou.wangcong(a)gmail.com>
Reviewed-by: Jamal Hadi Salim <jhs(a)mojatatu.com>
Link: https://patch.msgid.link/20250417184732.943057-3-xiyou.wangcong@gmail.com
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
net/sched/sch_hfsc.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index adcf87d417ae..f0075e42df3f 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1638,10 +1638,16 @@ hfsc_dequeue(struct Qdisc *sch)
if (cl->qdisc->q.qlen != 0) {
/* update ed */
next_len = qdisc_peek_len(cl->qdisc);
- if (realtime)
- update_ed(cl, next_len);
- else
- update_d(cl, next_len);
+ /* Check queue length again since some qdisc implementations
+ * (e.g., netem/codel) might empty the queue during the peek
+ * operation.
+ */
+ if (cl->qdisc->q.qlen != 0) {
+ if (realtime)
+ update_ed(cl, next_len);
+ else
+ update_d(cl, next_len);
+ }
} else {
/* the class becomes passive */
eltree_remove(cl);
--
2.33.0
2
1

[PATCH OLK-5.10] sctp: detect and prevent references to a freed transport in sendmsg
by Wang Liang 11 Aug '25
by Wang Liang 11 Aug '25
11 Aug '25
From: Ricardo Cañuelo Navarro <rcn(a)igalia.com>
stable inclusion
from stable-v5.10.237
commit 3257386be6a7eb8a8bfc9cbfb746df4eb4fc70e8
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IC5BIR
CVE: CVE-2025-23142
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit f1a69a940de58b16e8249dff26f74c8cc59b32be upstream.
sctp_sendmsg() re-uses associations and transports when possible by
doing a lookup based on the socket endpoint and the message destination
address, and then sctp_sendmsg_to_asoc() sets the selected transport in
all the message chunks to be sent.
There's a possible race condition if another thread triggers the removal
of that selected transport, for instance, by explicitly unbinding an
address with setsockopt(SCTP_SOCKOPT_BINDX_REM), after the chunks have
been set up and before the message is sent. This can happen if the send
buffer is full, during the period when the sender thread temporarily
releases the socket lock in sctp_wait_for_sndbuf().
This causes the access to the transport data in
sctp_outq_select_transport(), when the association outqueue is flushed,
to result in a use-after-free read.
This change avoids this scenario by having sctp_transport_free() signal
the freeing of the transport, tagging it as "dead". In order to do this,
the patch restores the "dead" bit in struct sctp_transport, which was
removed in
commit 47faa1e4c50e ("sctp: remove the dead field of sctp_transport").
Then, in the scenario where the sender thread has released the socket
lock in sctp_wait_for_sndbuf(), the bit is checked again after
re-acquiring the socket lock to detect the deletion. This is done while
holding a reference to the transport to prevent it from being freed in
the process.
If the transport was deleted while the socket lock was relinquished,
sctp_sendmsg_to_asoc() will return -EAGAIN to let userspace retry the
send.
The bug was found by a private syzbot instance (see the error report [1]
and the C reproducer that triggers it [2]).
Link: https://people.igalia.com/rcn/kernel_logs/20250402__KASAN_slab-use-after-fr… [1]
Link: https://people.igalia.com/rcn/kernel_logs/20250402__KASAN_slab-use-after-fr… [2]
Cc: stable(a)vger.kernel.org
Fixes: df132eff4638 ("sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer")
Suggested-by: Xin Long <lucien.xin(a)gmail.com>
Signed-off-by: Ricardo Cañuelo Navarro <rcn(a)igalia.com>
Acked-by: Xin Long <lucien.xin(a)gmail.com>
Link: https://patch.msgid.link/20250404-kasan_slab-use-after-free_read_in_sctp_ou…
Signed-off-by: Paolo Abeni <pabeni(a)redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
include/net/sctp/structs.h | 3 ++-
net/sctp/socket.c | 22 ++++++++++++++--------
net/sctp/transport.c | 2 ++
3 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 108eb62cdc2c..8d058b50f138 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -771,6 +771,7 @@ struct sctp_transport {
/* Reference counting. */
refcount_t refcnt;
+ __u32 dead:1,
/* RTO-Pending : A flag used to track if one of the DATA
* chunks sent to this address is currently being
* used to compute a RTT. If this flag is 0,
@@ -780,7 +781,7 @@ struct sctp_transport {
* calculation completes (i.e. the DATA chunk
* is SACK'd) clear this flag.
*/
- __u32 rto_pending:1,
+ rto_pending:1,
/*
* hb_sent : a flag that signals that we have a pending
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 5ffa7515903b..279d5e9421d3 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -70,8 +70,9 @@
/* Forward declarations for internal helper functions. */
static bool sctp_writeable(const struct sock *sk);
static void sctp_wfree(struct sk_buff *skb);
-static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
- size_t msg_len);
+static int sctp_wait_for_sndbuf(struct sctp_association *asoc,
+ struct sctp_transport *transport,
+ long *timeo_p, size_t msg_len);
static int sctp_wait_for_packet(struct sock *sk, int *err, long *timeo_p);
static int sctp_wait_for_connect(struct sctp_association *, long *timeo_p);
static int sctp_wait_for_accept(struct sock *sk, long timeo);
@@ -1828,7 +1829,7 @@ static int sctp_sendmsg_to_asoc(struct sctp_association *asoc,
if (sctp_wspace(asoc) <= 0 || !sk_wmem_schedule(sk, msg_len)) {
timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT);
- err = sctp_wait_for_sndbuf(asoc, &timeo, msg_len);
+ err = sctp_wait_for_sndbuf(asoc, transport, &timeo, msg_len);
if (err)
goto err;
if (unlikely(sinfo->sinfo_stream >= asoc->stream.outcnt)) {
@@ -8938,8 +8939,9 @@ void sctp_sock_rfree(struct sk_buff *skb)
/* Helper function to wait for space in the sndbuf. */
-static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
- size_t msg_len)
+static int sctp_wait_for_sndbuf(struct sctp_association *asoc,
+ struct sctp_transport *transport,
+ long *timeo_p, size_t msg_len)
{
struct sock *sk = asoc->base.sk;
long current_timeo = *timeo_p;
@@ -8949,7 +8951,9 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
pr_debug("%s: asoc:%p, timeo:%ld, msg_len:%zu\n", __func__, asoc,
*timeo_p, msg_len);
- /* Increment the association's refcnt. */
+ /* Increment the transport and association's refcnt. */
+ if (transport)
+ sctp_transport_hold(transport);
sctp_association_hold(asoc);
/* Wait on the association specific sndbuf space. */
@@ -8958,7 +8962,7 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
TASK_INTERRUPTIBLE);
if (asoc->base.dead)
goto do_dead;
- if (!*timeo_p)
+ if ((!*timeo_p) || (transport && transport->dead))
goto do_nonblock;
if (sk->sk_err || asoc->state >= SCTP_STATE_SHUTDOWN_PENDING)
goto do_error;
@@ -8985,7 +8989,9 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p,
out:
finish_wait(&asoc->wait, &wait);
- /* Release the association's refcnt. */
+ /* Release the transport and association's refcnt. */
+ if (transport)
+ sctp_transport_put(transport);
sctp_association_put(asoc);
return err;
diff --git a/net/sctp/transport.c b/net/sctp/transport.c
index 60fcf31cdcfb..9c721d70df9c 100644
--- a/net/sctp/transport.c
+++ b/net/sctp/transport.c
@@ -116,6 +116,8 @@ struct sctp_transport *sctp_transport_new(struct net *net,
*/
void sctp_transport_free(struct sctp_transport *transport)
{
+ transport->dead = 1;
+
/* Try to delete the heartbeat timer. */
if (del_timer(&transport->hb_timer))
sctp_transport_put(transport);
--
2.33.0
2
1
From: Mark Brown <broonie(a)kernel.org>
commit 33060a64901e61f09ea6faffe367551df18a54c3 upstream.
We use a local variable hwcap to refer to the element of the hwcaps array
which we are currently checking. When checking for the relevant hwcap bit
being set in testing we were dereferencing hwcaps rather than hwcap in
fetching the AT_HWCAP to use, which is perfectly valid C but means we were
always checking the bit was set in the hwcap for whichever feature is first
in the array. Remove the stray s.
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Link: https://lore.kernel.org/r/20220907113400.12982-1-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas(a)arm.com>
Signed-off-by: Qi Xi <xiqi2(a)huawei.com>
---
tools/testing/selftests/arm64/abi/hwcap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/arm64/abi/hwcap.c b/tools/testing/selftests/arm64/abi/hwcap.c
index 65a7b01d7cdc..190be4356069 100644
--- a/tools/testing/selftests/arm64/abi/hwcap.c
+++ b/tools/testing/selftests/arm64/abi/hwcap.c
@@ -162,7 +162,7 @@ int main(void)
for (i = 0; i < ARRAY_SIZE(hwcaps); i++) {
hwcap = &hwcaps[i];
- have_hwcap = getauxval(hwcaps->at_hwcap) & hwcap->hwcap_bit;
+ have_hwcap = getauxval(hwcap->at_hwcap) & hwcap->hwcap_bit;
have_cpuinfo = cpuinfo_present(hwcap->cpuinfo);
if (have_hwcap)
--
2.33.0
2
1
Michael Kelley (1):
hv_netvsc: Preserve contiguous PFN grouping in the page buffer array
Paolo Abeni (1):
net: allow small head cache usage with large MAX_SKB_FRAGS values
Wang Liang (1):
net: use __GENKSYMS__ to revert the kabi change
drivers/net/hyperv/hyperv_net.h | 12 ++++++
drivers/net/hyperv/netvsc_drv.c | 63 ++++++++-----------------------
drivers/net/hyperv/rndis_filter.c | 24 +++---------
include/net/gro.h | 3 ++
net/core/gro.c | 3 --
net/core/skbuff.c | 12 ++++--
6 files changed, 44 insertions(+), 73 deletions(-)
--
2.33.0
2
4

[PATCH OLK-6.6 V1] sched: Support NUMA parallel scheduling for multiple processes
by Cheng Yu 11 Aug '25
by Cheng Yu 11 Aug '25
11 Aug '25
hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/ICBBNL
--------------------------------
For architectures with multiple NUMA node levels and large distances
between nodes, a better approach is to support processes running in
parallel on each NUMA node.
The usage is restricted to the following scenarios:
1. No CPU binding for user-space processes;
2. It is applicable to distributed applications, such as business
architectures with one master and multiple slaves running in
parallel;
3. The existing "qos dynamic affinity" and "qos smart grid" features
must not be used simultaneously.
Signed-off-by: Cheng Yu <serein.chengyu(a)huawei.com>
---
arch/arm64/Kconfig | 1 +
arch/arm64/configs/openeuler_defconfig | 1 +
arch/arm64/include/asm/prefer_numa.h | 9 +++++
arch/arm64/kernel/Makefile | 1 +
arch/arm64/kernel/prefer_numa.c | 51 ++++++++++++++++++++++++++
fs/proc/array.c | 3 --
include/linux/sched.h | 6 +++
init/Kconfig | 22 +++++++++++
kernel/cgroup/cpuset.c | 6 ++-
kernel/fork.c | 11 ++----
kernel/sched/core.c | 3 --
kernel/sched/debug.c | 45 ++++++++++++++++++++++-
kernel/sched/fair.c | 39 ++++++++++++++++----
kernel/sched/features.h | 4 ++
14 files changed, 178 insertions(+), 24 deletions(-)
create mode 100644 arch/arm64/include/asm/prefer_numa.h
create mode 100644 arch/arm64/kernel/prefer_numa.c
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 5422d1502fd6..b1f550c8c82a 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -105,6 +105,7 @@ config ARM64
select ARCH_SUPPORTS_ATOMIC_RMW
select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
select ARCH_SUPPORTS_NUMA_BALANCING
+ select ARCH_SUPPORTS_SCHED_PARAL
select ARCH_SUPPORTS_PAGE_TABLE_CHECK
select ARCH_SUPPORTS_PER_VMA_LOCK
select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index 3cfff0701479..3d352fb1ae57 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -209,6 +209,7 @@ CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_SCHED_STEAL=y
+CONFIG_SCHED_PARAL=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_RELAY=y
diff --git a/arch/arm64/include/asm/prefer_numa.h b/arch/arm64/include/asm/prefer_numa.h
new file mode 100644
index 000000000000..7e579cd9355b
--- /dev/null
+++ b/arch/arm64/include/asm/prefer_numa.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef __ASM_PREFER_NUMA_H
+#define __ASM_PREFER_NUMA_H
+
+#include <linux/sched.h>
+
+void set_task_paral_node(struct task_struct *p);
+
+#endif /* __ASM_PREFER_NUMA_H */
diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile
index 3d404a2cc961..b936be9d8baa 100644
--- a/arch/arm64/kernel/Makefile
+++ b/arch/arm64/kernel/Makefile
@@ -84,6 +84,7 @@ obj-$(CONFIG_IPI_AS_NMI) += ipi_nmi.o
obj-$(CONFIG_HISI_VIRTCCA_GUEST) += virtcca_cvm_guest.o virtcca_cvm_tsi.o
obj-$(CONFIG_HISI_VIRTCCA_HOST) += virtcca_cvm_host.o
CFLAGS_patch-scs.o += -mbranch-protection=none
+obj-$(CONFIG_SCHED_PARAL) += prefer_numa.o
# Force dependency (vdso*-wrap.S includes vdso.so through incbin)
$(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so
diff --git a/arch/arm64/kernel/prefer_numa.c b/arch/arm64/kernel/prefer_numa.c
new file mode 100644
index 000000000000..8dcd6c746df8
--- /dev/null
+++ b/arch/arm64/kernel/prefer_numa.c
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * choose a prefer numa node
+ *
+ * Copyright (C) 2025 Huawei Limited.
+ */
+#include <linux/nodemask.h>
+#include <linux/topology.h>
+#include <asm/prefer_numa.h>
+
+static atomic_t paral_nid_last = ATOMIC_INIT(-1);
+
+int is_prefer_numa(void)
+{
+ if (num_possible_nodes() <= 1)
+ return 0;
+
+ return 1;
+}
+
+static inline unsigned int update_sched_paral_nid(void)
+{
+ return (unsigned int)atomic_inc_return(¶l_nid_last);
+}
+
+void set_task_paral_node(struct task_struct *p)
+{
+ int nid;
+ int i = 0;
+ const cpumask_t *cpus_mask;
+
+ if (is_global_init(current))
+ return;
+
+ if (p->flags & PF_KTHREAD || p->tgid != p->pid)
+ return;
+
+ while (i < nr_node_ids) {
+ nid = update_sched_paral_nid() % nr_node_ids;
+ cpus_mask = cpumask_of_node(nid);
+
+ if (cpumask_empty(cpus_mask) ||
+ !cpumask_subset(cpus_mask, p->cpus_ptr)) {
+ i++;
+ continue;
+ }
+
+ cpumask_copy(p->prefer_cpus, cpus_mask);
+ break;
+ }
+}
diff --git a/fs/proc/array.c b/fs/proc/array.c
index a933a878df3c..6a4b0a850dce 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -439,9 +439,6 @@ __weak void arch_proc_pid_thread_features(struct seq_file *m,
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
static void task_cpus_preferred(struct seq_file *m, struct task_struct *task)
{
- if (!dynamic_affinity_enabled())
- return;
-
seq_printf(m, "Cpus_preferred:\t%*pb\n",
cpumask_pr_args(task->prefer_cpus));
seq_printf(m, "Cpus_preferred_list:\t%*pbl\n",
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 3979c34e9b83..ee10780715f1 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2627,6 +2627,12 @@ static inline bool dynamic_affinity_enabled(void)
{
return static_branch_unlikely(&__dynamic_affinity_switch);
}
+
+#ifdef CONFIG_SCHED_PARAL
+bool sched_paral_used(void);
+#else
+static inline bool sched_paral_used(void) { return false; }
+#endif
#endif
#ifdef CONFIG_QOS_SCHED_SMART_GRID
diff --git a/init/Kconfig b/init/Kconfig
index c8bd58347a87..925e8517a7e8 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1484,6 +1484,28 @@ config SCHED_STEAL
If unsure, say N here.
+#
+# For architectures that want to enable the support for SCHED_PARAL
+#
+config ARCH_SUPPORTS_SCHED_PARAL
+ bool
+
+config SCHED_PARAL
+ bool "Parallelly schedule processes on different NUMA nodes"
+ depends on ARCH_SUPPORTS_SCHED_PARAL
+ depends on QOS_SCHED_DYNAMIC_AFFINITY
+ default n
+ help
+ By enabling this feature, processes can be scheduled in parallel
+ on various NUMA nodes to better utilize the cache in NUMA node.
+ The usage is restricted to the following scenarios:
+ 1. No CPU binding is performed for user-space processes;
+ 2. It is applicable to distributed applications, such as business
+ architectures with one master and multiple slaves running in
+ parallel;
+ 3. The existing "qos dynamic affinity" and "qos smart grid"
+ features must not be used simultaneously.
+
config CHECKPOINT_RESTORE
bool "Checkpoint/restore support"
depends on PROC_FS
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 417827f2c043..01a9b18d80ce 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -3488,7 +3488,8 @@ static void cpuset_attach_task(struct cpuset *cs, struct task_struct *task)
WARN_ON_ONCE(set_cpus_allowed_ptr(task, cpus_attach));
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
cpumask_copy(prefer_cpus_attach, cs->prefer_cpus);
- set_prefer_cpus_ptr(task, prefer_cpus_attach);
+ if (!sched_paral_used() || !cpumask_empty(prefer_cpus_attach))
+ set_prefer_cpus_ptr(task, prefer_cpus_attach);
#endif
cpuset_change_task_nodemask(task, &cpuset_attach_nodemask_to);
@@ -4348,7 +4349,8 @@ static void cpuset_fork(struct task_struct *task)
set_cpus_allowed_ptr(task, current->cpus_ptr);
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
- set_prefer_cpus_ptr(task, current->prefer_cpus);
+ if (!sched_paral_used() || !cpumask_empty(cs->prefer_cpus))
+ set_prefer_cpus_ptr(task, current->prefer_cpus);
#endif
task->mems_allowed = current->mems_allowed;
return;
diff --git a/kernel/fork.c b/kernel/fork.c
index 96c6a9e446ac..8b2ff47de685 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -631,8 +631,7 @@ void free_task(struct task_struct *tsk)
free_kthread_struct(tsk);
bpf_task_storage_free(tsk);
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
- if (dynamic_affinity_enabled())
- sched_prefer_cpus_free(tsk);
+ sched_prefer_cpus_free(tsk);
#endif
#ifdef CONFIG_QOS_SCHED_SMART_GRID
if (smart_grid_enabled())
@@ -2451,11 +2450,9 @@ __latent_entropy struct task_struct *copy_process(
#endif
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
- if (dynamic_affinity_enabled()) {
- retval = sched_prefer_cpus_fork(p, current->prefer_cpus);
- if (retval)
- goto bad_fork_free;
- }
+ retval = sched_prefer_cpus_fork(p, current->prefer_cpus);
+ if (retval)
+ goto bad_fork_free;
#endif
lockdep_assert_irqs_enabled();
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 1b497efc763b..fab904f44c87 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -12142,9 +12142,6 @@ static int __set_prefer_cpus_ptr(struct task_struct *p,
struct rq *rq;
int ret = 0;
- if (!dynamic_affinity_enabled())
- return -EPERM;
-
if (unlikely(!p->prefer_cpus))
return -EINVAL;
diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 7a9e6896c699..10a19e51e9b8 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -7,6 +7,10 @@
* Copyright(C) 2007, Red Hat, Inc., Ingo Molnar
*/
+#ifdef CONFIG_SCHED_PARAL
+#include <asm/prefer_numa.h>
+#endif
+
/*
* This allows printing both to /proc/sched_debug and
* to the console
@@ -95,6 +99,41 @@ static void sched_feat_disable(int i) { };
static void sched_feat_enable(int i) { };
#endif /* CONFIG_JUMP_LABEL */
+int __weak is_prefer_numa(void)
+{
+ return 0;
+}
+
+#ifdef CONFIG_SCHED_PARAL
+static void sched_feat_disable_paral(char *cmp)
+{
+ struct task_struct *tsk, *t;
+
+ if (strncmp(cmp, "PARAL", 5) == 0) {
+ read_lock(&tasklist_lock);
+ for_each_process(tsk) {
+ if (tsk->flags & PF_KTHREAD || is_global_init(tsk))
+ continue;
+
+ for_each_thread(tsk, t)
+ cpumask_clear(t->prefer_cpus);
+ }
+ read_unlock(&tasklist_lock);
+ }
+}
+
+static bool sched_feat_enable_paral(char *cmp)
+{
+ if (strncmp(cmp, "PARAL", 5) != 0)
+ return true;
+
+ return is_prefer_numa();
+}
+#else
+static void sched_feat_disable_paral(char *cmp) {};
+static bool sched_feat_enable_paral(char *cmp) { return true; };
+#endif /* CONFIG_SCHED_PARAL */
+
static int sched_feat_set(char *cmp)
{
int i;
@@ -111,8 +150,12 @@ static int sched_feat_set(char *cmp)
if (neg) {
sysctl_sched_features &= ~(1UL << i);
+ sched_feat_disable_paral(cmp);
sched_feat_disable(i);
} else {
+ if (!sched_feat_enable_paral(cmp))
+ return -EPERM;
+
sysctl_sched_features |= (1UL << i);
sched_feat_enable(i);
}
@@ -1045,7 +1088,7 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns,
P_SCHEDSTAT(nr_wakeups_passive);
P_SCHEDSTAT(nr_wakeups_idle);
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
- if (dynamic_affinity_enabled()) {
+ if (dynamic_affinity_enabled() || sched_paral_used()) {
P_SCHEDSTAT(nr_wakeups_preferred_cpus);
P_SCHEDSTAT(nr_wakeups_force_preferred_cpus);
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 71661d6c5b54..8a32d0ac4a8b 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -75,6 +75,10 @@
#endif
#include <linux/sched/grid_qos.h>
+#ifdef CONFIG_SCHED_PARAL
+#include <asm/prefer_numa.h>
+#endif
+
/*
* The initial- and re-scaling of tunables is configurable
*
@@ -9057,6 +9061,12 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
}
#ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY
+#ifdef CONFIG_SCHED_PARAL
+bool sched_paral_used(void)
+{
+ return sched_feat(PARAL);
+}
+#endif
DEFINE_STATIC_KEY_FALSE(__dynamic_affinity_switch);
@@ -9084,16 +9094,15 @@ __setup("dynamic_affinity=", dynamic_affinity_switch_setup);
static inline bool prefer_cpus_valid(struct task_struct *p)
{
- struct cpumask *prefer_cpus;
+ struct cpumask *prefer_cpus = task_prefer_cpus(p);
- if (!dynamic_affinity_enabled())
- return false;
-
- prefer_cpus = task_prefer_cpus(p);
+ if (dynamic_affinity_enabled() || sched_paral_used()) {
+ return !cpumask_empty(prefer_cpus) &&
+ !cpumask_equal(prefer_cpus, p->cpus_ptr) &&
+ cpumask_subset(prefer_cpus, p->cpus_ptr);
+ }
- return !cpumask_empty(prefer_cpus) &&
- !cpumask_equal(prefer_cpus, p->cpus_ptr) &&
- cpumask_subset(prefer_cpus, p->cpus_ptr);
+ return false;
}
static inline unsigned long taskgroup_cpu_util(struct task_group *tg,
@@ -9193,6 +9202,14 @@ static void set_task_select_cpus(struct task_struct *p, int *idlest_cpu,
}
rcu_read_unlock();
+ /* In extreme cases, it may cause uneven system load. */
+ if (sched_paral_used() && sysctl_sched_util_low_pct == 100 && nr_cpus_valid > 0) {
+ p->select_cpus = p->prefer_cpus;
+ if (sd_flag & SD_BALANCE_WAKE)
+ schedstat_inc(p->stats.nr_wakeups_preferred_cpus);
+ return;
+ }
+
/*
* Follow cases should select cpus_ptr, checking by condition of
* tg_capacity > nr_cpus_valid:
@@ -14679,6 +14696,12 @@ static void task_fork_fair(struct task_struct *p)
if (curr)
update_curr(cfs_rq);
place_entity(cfs_rq, se, ENQUEUE_INITIAL);
+
+#ifdef CONFIG_SCHED_PARAL
+ if (sched_paral_used())
+ set_task_paral_node(p);
+#endif
+
rq_unlock(rq, &rf);
}
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index ea7ba74810e3..67939d04542f 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -61,6 +61,10 @@ SCHED_FEAT(SIS_UTIL, true)
SCHED_FEAT(STEAL, false)
#endif
+#ifdef CONFIG_SCHED_PARAL
+SCHED_FEAT(PARAL, false)
+#endif
+
/*
* Issue a WARN when we do multiple update_rq_clock() calls
* in a single rq->lock section. Default disabled because the
--
2.25.1
2
1
Offering: HULK
hulk inclusion
category: other
bugzilla: https://gitee.com/openeuler/kernel/issues/ICDF44
--------------------------------
The purpose of this patch is only for debugging purposes. It focus on
the null pointer issue caused by the vruntime_eligible() function
consistently returning false due to overflow in s64 casting and
operations related to cfs_rq->avg_vruntime within EEVDF.
When CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER is enabled, it will record
the calculation factors required by each sched_entity's vruntime in
place_entity() and related contexts.
When CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON is enabled, in
addition to recording, it will trigger BUG_ON for some suspicious
values. Note that this BUG_ON may have false triggers and it is only
intended for EEVDF troubleshooting.
Signed-off-by: Zicheng Qu <quzicheng(a)huawei.com>
---
include/linux/sched.h | 34 +++++++++++++++++++++++++++
init/init_task.c | 9 +++++++
kernel/Kconfig.preempt | 15 ++++++++++++
kernel/fork.c | 15 ++++++++++++
kernel/sched/fair.c | 53 ++++++++++++++++++++++++++++++++++++++++++
kernel/sched/sched.h | 34 +++++++++++++++++++++++++++
6 files changed, 160 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index b6bc8d72309a..9d089094f1e6 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -572,6 +572,36 @@ struct sched_statistics {
#endif /* CONFIG_SCHEDSTATS */
} ____cacheline_aligned;
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+struct sched_entity_resvd {
+ /* pointer back to the main sched_entity */
+ struct sched_entity *se;
+
+ /*
+ * CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER is only designed
+ * to verify EEVDF null pointer issues.
+ */
+ /* attrs for cfs_rq */
+ s64 cfs_rq_avg_vruntime;
+ u64 cfs_rq_avg_load;
+ u64 cfs_rq_min_vruntime;
+ unsigned long cfs_rq_load_weight;
+ u64 cfs_rq_load_inv_weight;
+
+ /* attrs for cfs_rq->curr */
+ struct sched_entity *curr_address;
+ unsigned int curr_on_rq;
+ u64 curr_vruntime;
+ u64 curr_min_vruntime;
+ unsigned long curr_load_weight;
+ u32 curr_load_inv_weight;
+
+ /* calculators for place_entity() */
+ u64 function_place_entity_vruntime;
+ s64 function_place_entity_lag;
+};
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
+
struct sched_entity {
/* For load-balancing: */
struct load_weight load;
@@ -611,8 +641,12 @@ struct sched_entity {
*/
struct sched_avg avg;
#endif
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+ KABI_REPLACE(KABI_RESERVE(1); KABI_RESERVE(2), KABI_AUX_PTR(sched_entity))
+#else
KABI_RESERVE(1)
KABI_RESERVE(2)
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
KABI_RESERVE(3)
KABI_RESERVE(4)
};
diff --git a/init/init_task.c b/init/init_task.c
index 1adc17149558..7e4bec74f241 100644
--- a/init/init_task.c
+++ b/init/init_task.c
@@ -61,6 +61,12 @@ static struct task_struct_resvd init_task_struct_resvd = {
.task = &init_task,
};
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+static struct sched_entity_resvd init_sched_entity_resvd = {
+ .se = &init_task.se,
+};
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
+
/*
* Set up the first task table, touch at your own risk!. Base=0,
* limit=0x1fffff (=2MB)
@@ -94,6 +100,9 @@ struct task_struct init_task
},
.se = {
.group_node = LIST_HEAD_INIT(init_task.se.group_node),
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+ ._resvd = &init_sched_entity_resvd,
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
},
.rt = {
.run_list = LIST_HEAD_INIT(init_task.rt.run_list),
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index dc2a630f200a..090f588a88ee 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -134,3 +134,18 @@ config SCHED_CORE
be no measurable impact on performance.
+config TEMP_EEVDF_NULL_POINTER_CHECKER
+ bool "temp eevdf null pointer"
+ default n
+ help
+ This option can record the attrs of the cfs_rq and cfs_rq->curr
+ when a sched_entity in place_entity().
+
+config TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+ bool "temp eevdf null pointer bugon"
+ depends on TEMP_EEVDF_NULL_POINTER_CHECKER
+ default n
+ help
+ This option can record the attrs of the cfs_rq and cfs_rq->curr
+ when a sched_entity in place_entity(). Also, it will bug_on when
+ necessary.
\ No newline at end of file
diff --git a/kernel/fork.c b/kernel/fork.c
index 7f7c297d5f48..a056de39f327 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -184,6 +184,9 @@ static inline struct task_struct *alloc_task_struct_node(int node)
static inline void free_task_struct(struct task_struct *tsk)
{
kfree(tsk->_resvd);
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+ kfree(tsk->se._resvd);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
kmem_cache_free(task_struct_cachep, tsk);
}
#endif
@@ -1158,6 +1161,15 @@ static bool dup_resvd_task_struct(struct task_struct *dst,
if (!dst->_resvd)
return false;
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+ dst->se._resvd = kzalloc_node(sizeof(struct sched_entity_resvd),
+ GFP_KERNEL, node);
+ if (!dst->se._resvd)
+ return false;
+
+ dst->se._resvd->se = &dst->se;
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
+
dst->_resvd->task = dst;
return true;
}
@@ -1178,6 +1190,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
* a double-free for task_struct_resvd extension object.
*/
WRITE_ONCE(tsk->_resvd, NULL);
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+ WRITE_ONCE(tsk->se._resvd, NULL);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
err = arch_dup_task_struct(tsk, orig);
if (err || !dup_resvd_task_struct(tsk, orig, node))
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index f619dd53cc49..8cf3311a672c 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -330,6 +330,10 @@ static int __init sched_fair_sysctl_init(void)
late_initcall(sched_fair_sysctl_init);
#endif
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+static inline void avg_vruntime_validate(struct cfs_rq *cfs_rq);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
+
static inline void update_load_add(struct load_weight *lw, unsigned long inc)
{
lw->weight += inc;
@@ -799,6 +803,11 @@ avg_vruntime_add(struct cfs_rq *cfs_rq, struct sched_entity *se)
unsigned long weight = scale_load_down(se->load.weight);
s64 key = entity_key(cfs_rq, se);
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+ /* not yet added to tree */
+ avg_vruntime_validate(cfs_rq);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
+
cfs_rq->avg_vruntime += key * weight;
cfs_rq->avg_load += weight;
}
@@ -811,6 +820,11 @@ avg_vruntime_sub(struct cfs_rq *cfs_rq, struct sched_entity *se)
cfs_rq->avg_vruntime -= key * weight;
cfs_rq->avg_load -= weight;
+
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+ /* already removed from tree */
+ avg_vruntime_validate(cfs_rq);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
}
static inline
@@ -912,6 +926,10 @@ static int vruntime_eligible(struct cfs_rq *cfs_rq, u64 vruntime)
load += weight;
}
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+ WARN_ON_ONCE(!(avg >= (s64)(vruntime - cfs_rq->min_vruntime) * load)
+ && (avg - (s64)(vruntime - cfs_rq->min_vruntime) * load >= 0));
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
return avg >= (s64)(vruntime - cfs_rq->min_vruntime) * load;
}
@@ -3818,6 +3836,32 @@ static inline void
dequeue_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se) { }
#endif
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+
+#define TEMP_EEVDF_MAX_LAG (1ULL << 50)
+#define TEMP_EEVDF_NULL_ABS(x) ((x) < 0 ? -(x) : (x))
+
+static inline void avg_vruntime_validate(struct cfs_rq *cfs_rq)
+{
+ unsigned long load = 0;
+ s64 vruntime = 0;
+ struct rb_node *node = rb_first_cached(&cfs_rq->tasks_timeline);
+
+ for (; node; node = rb_next(node)) {
+ struct sched_entity *se = __node_2_se(node);
+ unsigned long weight = scale_load_down(se->load.weight);
+ s64 key = entity_key(cfs_rq, se);
+ /* vruntime += key * weight; */
+ WARN_ON_ONCE(__builtin_mul_overflow(key, weight, &key));
+ WARN_ON_ONCE(__builtin_add_overflow(vruntime, key, &vruntime));
+ load += weight;
+ }
+
+ WARN_ON_ONCE(cfs_rq->avg_load != load);
+ WARN_ON_ONCE(cfs_rq->avg_vruntime != vruntime);
+}
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
+
static void reweight_eevdf(struct sched_entity *se, u64 avruntime,
unsigned long weight)
{
@@ -3905,6 +3949,9 @@ static void reweight_eevdf(struct sched_entity *se, u64 avruntime,
vlag = entity_lag(avruntime, se);
vlag = div_s64(vlag * old_weight, weight);
se->vruntime = avruntime - vlag;
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+ BUG_ON(TEMP_EEVDF_NULL_ABS(vlag) > TEMP_EEVDF_MAX_LAG);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
}
/*
@@ -5417,6 +5464,12 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
}
se->vruntime = vruntime - lag;
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+ temp_save_info_for_eevdf_nullpointer(cfs_rq, se, vruntime, lag);
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON
+ BUG_ON(TEMP_EEVDF_NULL_ABS(lag) > TEMP_EEVDF_MAX_LAG);
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER_BUGON */
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
/*
* When joining the competition; the exisiting tasks will be,
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index f6a3f93d1f75..d3560256cd1b 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -3788,4 +3788,38 @@ static inline int destroy_soft_domain(struct task_group *tg)
#endif
+#ifdef CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER
+static inline void temp_save_info_for_eevdf_nullpointer(
+ struct cfs_rq *cfs_rq,
+ struct sched_entity *se,
+ u64 function_place_entity_vruntime,
+ s64 function_place_entity_lag)
+{
+ // attrs for cfs_rq
+ se->_resvd->cfs_rq_avg_vruntime = cfs_rq->avg_vruntime;
+ se->_resvd->cfs_rq_avg_load = cfs_rq->avg_load;
+ se->_resvd->cfs_rq_min_vruntime = cfs_rq->min_vruntime;
+ se->_resvd->cfs_rq_load_weight = cfs_rq->load.weight;
+ se->_resvd->cfs_rq_load_inv_weight = cfs_rq->load.inv_weight;
+
+ // attrs for cfs_rq->curr
+ struct sched_entity *curr = cfs_rq->curr;
+
+ if (curr) {
+ se->_resvd->curr_address = curr;
+ se->_resvd->curr_on_rq = curr->on_rq;
+ se->_resvd->curr_vruntime = curr->vruntime;
+ se->_resvd->curr_min_vruntime = curr->min_vruntime;
+ se->_resvd->curr_load_weight = curr->load.weight;
+ se->_resvd->curr_load_inv_weight = curr->load.inv_weight;
+ } else {
+ se->_resvd->curr_address = NULL;
+ }
+
+ // calculators for place_entity()
+ se->_resvd->function_place_entity_vruntime = function_place_entity_vruntime;
+ se->_resvd->function_place_entity_lag = function_place_entity_lag;
+}
+#endif /* CONFIG_TEMP_EEVDF_NULL_POINTER_CHECKER */
+
#endif /* _KERNEL_SCHED_SCHED_H */
--
2.34.1
2
1

11 Aug '25
From: Huangjunhua <huangjunhua14(a)huawei.com>
driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/ICB3EN
CVE: NA
-----------------------------------------
To meet the competitive evolution requirements ("5+1+1") for the
new-generation Kunpeng ARM platform, Tianchi architecture, and
BMC management system. The products, BMC, and HiSilicon collaboratively
planned the next-generation BMC evolution chip Hi1712.
Building upon Hi1711, the Hi1712 chip enhances interfaces, computing power,
and security. The Huawei iBMA driver requires adaptation to support Hi1712
for in-band and out-of-band communication.
Signed-off-by: Huangjunhua <huangjunhua14(a)huawei.com>
---
MAINTAINERS | 6 +
.../ethernet/huawei/bma/cdev_drv/bma_cdev.c | 2 +-
.../bma/cdev_veth_drv/virtual_cdev_eth_net.c | 18 +-
.../bma/cdev_veth_drv/virtual_cdev_eth_net.h | 1 -
.../net/ethernet/huawei/bma/edma_drv/Makefile | 2 +-
.../huawei/bma/edma_drv/bma_devintf.c | 118 ++++-
.../ethernet/huawei/bma/edma_drv/bma_pci.c | 277 +++++++++--
.../ethernet/huawei/bma/edma_drv/bma_pci.h | 33 +-
.../ethernet/huawei/bma/edma_drv/edma_drv.h | 340 +++++++++++++
.../ethernet/huawei/bma/edma_drv/edma_host.c | 160 +++++-
.../ethernet/huawei/bma/edma_drv/edma_host.h | 14 +-
.../ethernet/huawei/bma/edma_drv/edma_queue.c | 470 ++++++++++++++++++
.../ethernet/huawei/bma/edma_drv/edma_queue.h | 29 ++
.../ethernet/huawei/bma/edma_drv/edma_reg.h | 127 +++++
.../huawei/bma/include/bma_ker_intf.h | 46 ++
.../huawei/bma/kbox_drv/kbox_include.h | 2 +-
.../ethernet/huawei/bma/veth_drv/veth_hb.c | 25 +-
.../ethernet/huawei/bma/veth_drv/veth_hb.h | 12 +-
18 files changed, 1582 insertions(+), 100 deletions(-)
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
create mode 100644 drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 61baf2cfc4e1..446f2f49fd14 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9707,6 +9707,12 @@ F: drivers/net/ethernet/huawei/hinic3/cqm/
F: drivers/net/ethernet/huawei/hinic3/hw/
F: drivers/net/ethernet/huawei/hinic3/include/
+HUAWEI ETHERNET DRIVER
+M: Huangjunhua <huangjunhua14(a)huawei.com>
+L: netdev(a)vger.kernel.org
+S: Maintained
+F: drivers/net/ethernet/huawei/bma/
+
HUAWEI BIFUR DRIVER
M: Xiaoping zheng <zhengxiaoping5(a)huawei.com>
L: netdev(a)vger.kernel.org
diff --git a/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c b/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
index 275c2cdfe5db..59181c829a68 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
+++ b/drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c
@@ -28,7 +28,7 @@
#ifdef DRV_VERSION
#define CDEV_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define CDEV_VERSION "0.3.10"
+#define CDEV_VERSION "0.4.0"
#endif
#define CDEV_DEFAULT_NUM 4
diff --git a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
index e6dbec7073e4..adb6dd6972f5 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
+++ b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.c
@@ -151,6 +151,12 @@ int edma_veth_setup_all_tx_resources(struct edma_eth_dev_s *edma_eth)
u8 *shmq_head = NULL;
u8 *shmq_head_p = NULL;
struct edma_rxtx_q_s *tx_queue = NULL;
+ int ret = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return -EFAULT;
tx_queue = (struct edma_rxtx_q_s *)
kmalloc(sizeof(struct edma_rxtx_q_s), GFP_KERNEL);
@@ -173,7 +179,7 @@ int edma_veth_setup_all_tx_resources(struct edma_eth_dev_s *edma_eth)
tx_queue->pdmalbase_v = (struct edma_dmal_s *)
(shmq_head + SHMDMAL_OFFSET);
- tx_queue->pdmalbase_p = (u8 *)(VETH_SHAREPOOL_BASE_INBMC +
+ tx_queue->pdmalbase_p = (u8 *)(veth_address +
(MAX_SHAREQUEUE_SIZE * 0) + SHMDMAL_OFFSET);
memset(tx_queue->pdmalbase_v, 0, MAX_SHMDMAL_SIZE);
@@ -219,6 +225,12 @@ int edma_veth_setup_all_rx_resources(struct edma_eth_dev_s *edma_eth)
u8 *shmq_head = NULL;
u8 *shmq_head_p = NULL;
struct edma_rxtx_q_s *rx_queue = NULL;
+ int ret = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return -EFAULT;
rx_queue = (struct edma_rxtx_q_s *)
kmalloc(sizeof(struct edma_rxtx_q_s), GFP_KERNEL);
@@ -241,7 +253,7 @@ int edma_veth_setup_all_rx_resources(struct edma_eth_dev_s *edma_eth)
/* DMA address list (only used in host). */
rx_queue->pdmalbase_v = (struct edma_dmal_s *)
(shmq_head + SHMDMAL_OFFSET);
- rx_queue->pdmalbase_p = (u8 *)(VETH_SHAREPOOL_BASE_INBMC +
+ rx_queue->pdmalbase_p = (u8 *)(veth_address +
MAX_SHAREQUEUE_SIZE + SHMDMAL_OFFSET);
memset(rx_queue->pdmalbase_v, 0, MAX_SHMDMAL_SIZE);
@@ -1304,6 +1316,8 @@ int __start_dmalist_H_2(struct edma_rxtx_q_s *prxtx_queue, u32 type, u32 cnt)
dma_transfer.type = DMA_LIST;
dma_transfer.transfer.list.dma_addr =
(dma_addr_t)prxtx_queue->pdmalbase_p;
+ dma_transfer.pdmalbase_v = (struct bspveth_dmal *)prxtx_queue->pdmalbase_v;
+ dma_transfer.dmal_cnt = prxtx_queue->dmal_cnt;
ret = bma_intf_start_dma(g_eth_edmaprivate.edma_priv, &dma_transfer);
LOG(DLOG_DEBUG, "after -> %u/%u/%u/%u, ret: %d",
diff --git a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
index cb7c28cb5ddd..bc4b2147272b 100644
--- a/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
+++ b/drivers/net/ethernet/huawei/bma/cdev_veth_drv/virtual_cdev_eth_net.h
@@ -56,7 +56,6 @@
#define BSP_ERR_AGAIN (BSP_ETH_ERR_BASE + 18)
#define BSP_ERR_NOT_TO_HANDLE (BSP_ETH_ERR_BASE + 19)
-#define VETH_SHAREPOOL_BASE_INBMC (0x84820000)
#define VETH_SHAREPOOL_SIZE (0xdf000)
#define VETH_SHAREPOOL_OFFSET (0x10000)
#define MAX_SHAREQUEUE_SIZE (0x20000)
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/Makefile b/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
index 46cc51275a71..048bcb9e2bbe 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/Makefile
@@ -1,2 +1,2 @@
obj-$(CONFIG_BMA) += host_edma_drv.o
-host_edma_drv-y := bma_pci.o bma_devintf.o edma_host.o
+host_edma_drv-y := bma_pci.o bma_devintf.o edma_host.o edma_queue.o
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c b/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
index 3b5eb39d6da6..45815fdc18eb 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_devintf.c
@@ -31,6 +31,18 @@ static struct bma_dev_s *g_bma_dev;
static ATOMIC_NOTIFIER_HEAD(bma_int_notify_list);
+static enum pci_type_e g_pci_type = PCI_TYPE_UNKNOWN;
+
+enum pci_type_e get_pci_type(void)
+{
+ return g_pci_type;
+}
+
+void set_pci_type(enum pci_type_e type)
+{
+ g_pci_type = type;
+}
+
static int bma_priv_insert_priv_list(struct bma_priv_data_s *priv, u32 type,
u32 sub_type)
{
@@ -342,6 +354,82 @@ int bma_intf_unregister_type(void **handle)
}
EXPORT_SYMBOL(bma_intf_unregister_type);
+int bma_intf_get_host_number(unsigned int *host_number)
+{
+ unsigned int devfn = 0;
+
+ if (!host_number)
+ return -EFAULT;
+
+ if (!g_bma_dev) {
+ BMA_LOG(DLOG_ERROR, "g_bma_dev is NULL\n");
+ return -ENXIO;
+ }
+
+ devfn = g_bma_dev->bma_pci_dev->pdev->devfn;
+ BMA_LOG(DLOG_DEBUG, "devfn is %u\n", devfn);
+ if (devfn == PF7 || devfn == PF10) {
+ *host_number = HOST_NUMBER_0;
+ } else if (devfn == PF4) {
+ *host_number = HOST_NUMBER_1;
+ } else {
+ BMA_LOG(DLOG_DEBUG, "Treat as host0 because of unknown PF %u\n", devfn);
+ *host_number = HOST_NUMBER_0;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(bma_intf_get_host_number);
+
+int bma_intf_get_map_address(enum addr_type type, phys_addr_t *addr)
+{
+ u32 host_number = 0;
+ u32 devfn = 0;
+ u32 i = 0;
+ enum pci_type_e pci_type = get_pci_type();
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ static struct bma_map_addr_s addr_info[] = {
+ {PCI_TYPE_UNKNOWN, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1711_HOST0_ADDR},
+ {PCI_TYPE_UNKNOWN, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1711_HOST0_ADDR},
+ {PCI_TYPE_171x, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1711_HOST0_ADDR},
+ {PCI_TYPE_171x, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1711_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_0, TYPE_EDMA_ADDR, EDMA_1712_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_0, TYPE_VETH_ADDR, VETH_1712_HOST0_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_1, TYPE_EDMA_ADDR, EDMA_1712_HOST1_ADDR},
+ {PCI_TYPE_1712, HOST_NUMBER_1, TYPE_VETH_ADDR, VETH_1712_HOST1_ADDR},
+ };
+
+ if (!bma_pci_dev) {
+ BMA_LOG(DLOG_ERROR, "bma_pci_dev is null\n");
+ return -EFAULT;
+ }
+
+ devfn = bma_pci_dev->pdev->devfn;
+ if (devfn == PF7 || devfn == PF10) {
+ host_number = HOST_NUMBER_0;
+ } else if (devfn == PF4) {
+ host_number = HOST_NUMBER_1;
+ } else {
+ BMA_LOG(DLOG_DEBUG, "Treat as host0 because of unknown PF %u\n", devfn);
+ host_number = HOST_NUMBER_0;
+ }
+
+ for (i = 0; i < ARRAY_SIZE(addr_info); i++) {
+ if (pci_type == addr_info[i].pci_type &&
+ host_number == addr_info[i].host_number && type == addr_info[i].addr_type) {
+ *addr = addr_info[i].addr;
+ return 0;
+ }
+ }
+
+ BMA_LOG(DLOG_DEBUG,
+ "Cannot find proper map address! pci_type: %u, host_number: %u, addr_type: %u\n",
+ pci_type, host_number, type);
+ return -EFAULT;
+}
+EXPORT_SYMBOL(bma_intf_get_map_address);
+
int bma_intf_check_edma_supported(void)
{
return !(!g_bma_dev);
@@ -350,13 +438,30 @@ EXPORT_SYMBOL(bma_intf_check_edma_supported);
int bma_intf_check_dma_status(enum dma_direction_e dir)
{
- return edma_host_check_dma_status(dir);
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return -EFAULT;
+ }
+
+ return get_bma_pci_dev_handler_s()[pci_type].check_dma(dir);
}
EXPORT_SYMBOL(bma_intf_check_dma_status);
void bma_intf_reset_dma(enum dma_direction_e dir)
{
- edma_host_reset_dma(&g_bma_dev->edma_host, dir);
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (!g_bma_dev)
+ return;
+
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return;
+ }
+
+ get_bma_pci_dev_handler_s()[pci_type].reset_dma(&g_bma_dev->edma_host, dir);
}
EXPORT_SYMBOL(bma_intf_reset_dma);
@@ -375,10 +480,16 @@ int bma_intf_start_dma(void *handle, struct bma_dma_transfer_s *dma_transfer)
{
int ret = 0;
struct bma_priv_data_s *priv = (struct bma_priv_data_s *)handle;
+ enum pci_type_e pci_type = get_pci_type();
if (!handle || !dma_transfer)
return -EFAULT;
+ if (pci_type == PCI_TYPE_UNKNOWN) {
+ BMA_LOG(DLOG_ERROR, "pci type is UNKNOWN.\n");
+ return -EFAULT;
+ }
+
ret = edma_host_dma_start(&g_bma_dev->edma_host, priv);
if (ret) {
BMA_LOG(DLOG_ERROR,
@@ -386,7 +497,8 @@ int bma_intf_start_dma(void *handle, struct bma_dma_transfer_s *dma_transfer)
return ret;
}
- ret = edma_host_dma_transfer(&g_bma_dev->edma_host, priv, dma_transfer);
+ ret = get_bma_pci_dev_handler_s()[pci_type].transfer_edma_host(&g_bma_dev->edma_host, priv,
+ dma_transfer);
if (ret)
BMA_LOG(DLOG_ERROR,
"edma_host_dma_transfer failed! ret = %d\n", ret);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
index 577acaedb0e2..0e43289e0d1a 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c
@@ -27,13 +27,20 @@
#define PCI_VENDOR_ID_HUAWEI_PME 0x19e5
#define PCI_DEVICE_ID_KBOX_0_PME 0x1710
+#define PCI_DEVICE_ID_EDMA_0 0x1712
#define PCI_PME_USEABLE_SPACE (4 * 1024 * 1024)
+
+#define HOSTRTC_OFFSET 0x10000
+#define EDMA_OFFSET 0x20000
+#define VETH_OFFSET 0x30000
+
#define PME_DEV_CHECK(device, vendor) ((device) == PCI_DEVICE_ID_KBOX_0_PME && \
(vendor) == PCI_VENDOR_ID_HUAWEI_PME)
#define PCI_BAR0_PME_1710 0x85800000
#define PCI_BAR0 0
#define PCI_BAR1 1
+#define PCI_BAR2 2
#define PCI_USING_DAC_DEFAULT 0
#define GET_HIGH_ADDR(address) ((sizeof(unsigned long) == 8) ? \
@@ -51,15 +58,50 @@ int debug = DLOG_ERROR;
MODULE_PARM_DESC(debug, "Debug switch (0=close debug, 1=open debug)");
static struct bma_pci_dev_s *g_bma_pci_dev;
+struct bma_pci_dev_s *get_bma_pci_dev(void)
+{
+ return g_bma_pci_dev;
+}
+
+void set_bma_pci_dev(struct bma_pci_dev_s *bma_pci_dev)
+{
+ g_bma_pci_dev = bma_pci_dev;
+}
static int bma_pci_suspend(struct pci_dev *pdev, pm_message_t state);
static int bma_pci_resume(struct pci_dev *pdev);
static int bma_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
static void bma_pci_remove(struct pci_dev *pdev);
+static struct bma_pci_dev_handler_s g_bma_pci_dev_handler_s[] = {
+ {0},
+ // for 1710/1711
+ {
+ .ioremap_bar_mem = ioremap_pme_bar_mem_v1,
+ .iounmap_bar_mem = iounmap_bar_mem_v1,
+ .check_dma = edma_host_check_dma_status_v1,
+ .transfer_edma_host = edma_host_dma_transfer_v1,
+ .reset_dma = edma_host_reset_dma_v1,
+ },
+ // for 1712
+ {
+ .ioremap_bar_mem = ioremap_pme_bar_mem_v2,
+ .iounmap_bar_mem = iounmap_bar_mem_v2,
+ .check_dma = edma_host_check_dma_status_v2,
+ .transfer_edma_host = edma_host_dma_transfer_v2,
+ .reset_dma = edma_host_reset_dma_v2,
+ }
+};
+
+struct bma_pci_dev_handler_s *get_bma_pci_dev_handler_s(void)
+{
+ return g_bma_pci_dev_handler_s;
+}
+
static const struct pci_device_id bma_pci_tbl[] = {
{PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_FPGA, PCI_DEVICE_ID_KBOX_0)},
{PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_PME, PCI_DEVICE_ID_KBOX_0_PME)},
+ { PCI_DEVICE(PCI_VENDOR_ID_HUAWEI_PME, PCI_DEVICE_ID_EDMA_0) },
{}
};
MODULE_DEVICE_TABLE(pci, bma_pci_tbl);
@@ -73,7 +115,7 @@ int edma_param_get_statics(char *buf, const struct kernel_param *kp)
}
module_param_call(statistics, NULL, edma_param_get_statics, &debug, 0444);
-MODULE_PARM_DESC(statistics, "Statistics info of edma driver,readonly");
+MODULE_PARM_DESC(statistics, "Statistics info of edma driver, readonly");
int edma_param_set_debug(const char *buf, const struct kernel_param *kp)
{
@@ -99,34 +141,40 @@ module_param_call(debug, &edma_param_set_debug, ¶m_get_int, &debug, 0644);
void __iomem *kbox_get_base_addr(void)
{
- if (!g_bma_pci_dev || (!(g_bma_pci_dev->kbox_base_addr))) {
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev || (!(bma_pci_dev->kbox_base_addr))) {
BMA_LOG(DLOG_ERROR, "kbox_base_addr NULL point\n");
return NULL;
}
- return g_bma_pci_dev->kbox_base_addr;
+ return bma_pci_dev->kbox_base_addr;
}
EXPORT_SYMBOL_GPL(kbox_get_base_addr);
unsigned long kbox_get_io_len(void)
{
- if (!g_bma_pci_dev) {
- BMA_LOG(DLOG_ERROR, "kbox_io_len is error,can not get it\n");
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev) {
+ BMA_LOG(DLOG_ERROR, "kbox_io_len is error, can not get it\n");
return 0;
}
- return g_bma_pci_dev->kbox_base_len;
+ return bma_pci_dev->kbox_base_len;
}
EXPORT_SYMBOL_GPL(kbox_get_io_len);
unsigned long kbox_get_base_phy_addr(void)
{
- if (!g_bma_pci_dev || !g_bma_pci_dev->kbox_base_phy_addr) {
+ struct bma_pci_dev_s *bma_pci_dev = get_bma_pci_dev();
+
+ if (!bma_pci_dev || bma_pci_dev->kbox_base_phy_addr == 0) {
BMA_LOG(DLOG_ERROR, "kbox_base_phy_addr NULL point\n");
return 0;
}
- return g_bma_pci_dev->kbox_base_phy_addr;
+ return bma_pci_dev->kbox_base_phy_addr;
}
EXPORT_SYMBOL_GPL(kbox_get_base_phy_addr);
@@ -160,7 +208,7 @@ s32 __atu_config_H(struct pci_dev *pdev, unsigned int region,
return 0;
}
-static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
+void iounmap_bar_mem_v1(struct bma_pci_dev_s *bma_pci_dev)
{
if (bma_pci_dev->kbox_base_addr) {
iounmap(bma_pci_dev->kbox_base_addr);
@@ -171,15 +219,84 @@ static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
iounmap(bma_pci_dev->bma_base_addr);
bma_pci_dev->bma_base_addr = NULL;
bma_pci_dev->edma_swap_addr = NULL;
+ bma_pci_dev->veth_swap_addr = NULL;
bma_pci_dev->hostrtc_viraddr = NULL;
}
}
-static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
- struct bma_pci_dev_s *bma_pci_dev)
+void iounmap_bar_mem_v2(struct bma_pci_dev_s *bma_pci_dev)
+{
+ if (bma_pci_dev->kbox_base_addr) {
+ iounmap(bma_pci_dev->kbox_base_addr);
+ bma_pci_dev->kbox_base_addr = NULL;
+ }
+
+ if (bma_pci_dev->bma_base_addr) {
+ iounmap(bma_pci_dev->bma_base_addr);
+ bma_pci_dev->bma_base_addr = NULL;
+ }
+
+ if (bma_pci_dev->hostrtc_viraddr) {
+ iounmap(bma_pci_dev->hostrtc_viraddr);
+ bma_pci_dev->hostrtc_viraddr = NULL;
+ bma_pci_dev->edma_swap_addr = NULL;
+ bma_pci_dev->veth_swap_addr = NULL;
+ }
+}
+
+static void iounmap_bar_mem(struct bma_pci_dev_s *bma_pci_dev)
+{
+ enum pci_type_e pci_type = get_pci_type();
+
+ if (pci_type == PCI_TYPE_UNKNOWN)
+ return;
+
+ g_bma_pci_dev_handler_s[pci_type].iounmap_bar_mem(bma_pci_dev);
+}
+
+static int config_atu(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
+{
+ int ret = 0;
+ phys_addr_t edma_address = 0;
+ phys_addr_t veth_address = 0;
+
+ ret = bma_intf_get_map_address(TYPE_EDMA_ADDR, &edma_address);
+ if (ret != 0)
+ return ret;
+
+ ret = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (ret != 0)
+ return ret;
+
+ __atu_config_H(pdev, 0,
+ GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr),
+ (bma_pci_dev->kbox_base_phy_addr & 0xffffffff),
+ 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE);
+
+ __atu_config_H(pdev, 1,
+ GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr),
+ (bma_pci_dev->hostrtc_phyaddr & 0xffffffff),
+ 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE);
+
+ __atu_config_H(pdev, 2,
+ GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr),
+ (bma_pci_dev->edma_swap_phy_addr & 0xffffffff),
+ 0, edma_address, EDMA_SWAP_DATA_SIZE);
+
+ __atu_config_H(pdev, 3,
+ GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr),
+ (bma_pci_dev->veth_swap_phy_addr & 0xffffffff),
+ 0, veth_address, VETH_SWAP_DATA_SIZE);
+
+ return ret;
+}
+
+// for 1710 1711
+int ioremap_pme_bar_mem_v1(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
{
unsigned long bar1_resource_flag = 0;
u32 data = 0;
+ int ret;
bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE;
BMA_LOG(DLOG_DEBUG, "1710\n");
@@ -217,25 +334,11 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
bma_pci_dev->edma_swap_phy_addr,
bma_pci_dev->veth_swap_phy_addr);
- __atu_config_H(pdev, 0,
- GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr),
- (bma_pci_dev->kbox_base_phy_addr & 0xffffffff),
- 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE);
-
- __atu_config_H(pdev, 1,
- GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr),
- (bma_pci_dev->hostrtc_phyaddr & 0xffffffff),
- 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE);
-
- __atu_config_H(pdev, 2,
- GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr),
- (bma_pci_dev->edma_swap_phy_addr & 0xffffffff),
- 0, EDMA_SWAP_DATA_BASE, EDMA_SWAP_DATA_SIZE);
-
- __atu_config_H(pdev, 3,
- GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr),
- (bma_pci_dev->veth_swap_phy_addr & 0xffffffff),
- 0, VETH_SWAP_DATA_BASE, VETH_SWAP_DATA_SIZE);
+ ret = config_atu(pdev, bma_pci_dev);
+ if (ret != 0) {
+ BMA_LOG(DLOG_DEBUG, "config atu failed.\n");
+ return ret;
+ }
if (bar1_resource_flag & IORESOURCE_CACHEABLE) {
bma_pci_dev->bma_base_addr =
@@ -250,7 +353,6 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
if (!bma_pci_dev->bma_base_addr) {
BMA_LOG(DLOG_ERROR,
"Cannot map device registers, aborting\n");
-
return -ENODEV;
}
@@ -270,11 +372,80 @@ static int ioremap_pme_bar1_mem(struct pci_dev *pdev,
return 0;
}
+// for 1712
+int ioremap_pme_bar_mem_v2(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
+{
+ unsigned long bar2_resource_flag = 0;
+
+ bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE;
+ BMA_LOG(DLOG_DEBUG, "1712\n");
+
+ bma_pci_dev->bma_base_phy_addr = (unsigned long)pci_resource_start(pdev, PCI_BAR2);
+ bar2_resource_flag = (unsigned long)pci_resource_flags(pdev, PCI_BAR2);
+ if (!(bar2_resource_flag & IORESOURCE_MEM)) {
+ BMA_LOG(DLOG_ERROR, "Cannot find proper PCI device base address, aborting\n");
+ return -ENODEV;
+ }
+
+ bma_pci_dev->bma_base_len = (unsigned long)pci_resource_len(pdev, PCI_BAR2);
+ bma_pci_dev->edma_swap_len = EDMA_SWAP_DATA_SIZE;
+ bma_pci_dev->veth_swap_len = VETH_SWAP_DATA_SIZE;
+
+ BMA_LOG(DLOG_DEBUG,
+ "bar2: bma_base_len = 0x%lx, edma_swap_len = %ld, veth_swap_len = %ld(0x%lx)\n",
+ bma_pci_dev->bma_base_len, bma_pci_dev->edma_swap_len, bma_pci_dev->veth_swap_len,
+ bma_pci_dev->veth_swap_len);
+
+ bma_pci_dev->hostrtc_phyaddr = bma_pci_dev->bma_base_phy_addr + HOSTRTC_OFFSET;
+ /* edma */
+ bma_pci_dev->edma_swap_phy_addr = bma_pci_dev->bma_base_phy_addr + EDMA_OFFSET;
+ /* veth */
+ bma_pci_dev->veth_swap_phy_addr = bma_pci_dev->bma_base_phy_addr + VETH_OFFSET;
+
+ BMA_LOG(DLOG_DEBUG,
+ "bar2: bma_base_phy_addr = 0x%lx, bma_base_len = %zu , hostrtc_phyaddr = 0x%lx, edma_swap_phy_addr = 0x%lx, veth_swap_phy_addr = 0x%lx\n",
+ bma_pci_dev->bma_base_phy_addr, bma_pci_dev->bma_base_len,
+ bma_pci_dev->hostrtc_phyaddr, bma_pci_dev->edma_swap_phy_addr,
+ bma_pci_dev->veth_swap_phy_addr);
+
+ bma_pci_dev->bma_base_addr = ioremap(bma_pci_dev->bma_base_phy_addr,
+ bma_pci_dev->bma_base_len);
+ if (!bma_pci_dev->bma_base_addr) {
+ BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
+ return -ENODEV;
+ }
+
+ if (bar2_resource_flag & IORESOURCE_CACHEABLE) {
+ BMA_LOG(DLOG_DEBUG, "ioremap with cache, %d\n", IORESOURCE_CACHEABLE);
+ bma_pci_dev->hostrtc_viraddr = ioremap(bma_pci_dev->hostrtc_phyaddr,
+ bma_pci_dev->bma_base_len - HOSTRTC_OFFSET);
+ } else {
+ BMA_LOG(DLOG_DEBUG, "ioremap without cache\n");
+ bma_pci_dev->hostrtc_viraddr = IOREMAP(bma_pci_dev->hostrtc_phyaddr,
+ bma_pci_dev->bma_base_len - HOSTRTC_OFFSET);
+ }
+
+ if (!bma_pci_dev->hostrtc_viraddr) {
+ BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
+ iounmap(bma_pci_dev->bma_base_addr);
+ bma_pci_dev->bma_base_addr = NULL;
+ return -ENODEV;
+ }
+
+ bma_pci_dev->edma_swap_addr = (unsigned char *)bma_pci_dev->hostrtc_viraddr
+ - HOSTRTC_OFFSET + EDMA_OFFSET;
+ bma_pci_dev->veth_swap_addr = (unsigned char *)bma_pci_dev->hostrtc_viraddr
+ - HOSTRTC_OFFSET + VETH_OFFSET;
+
+ return 0;
+}
+
static int ioremap_bar_mem(struct pci_dev *pdev,
struct bma_pci_dev_s *bma_pci_dev)
{
int err = 0;
unsigned long bar0_resource_flag = 0;
+ enum pci_type_e pci_type = get_pci_type();
bar0_resource_flag = pci_resource_flags(pdev, PCI_BAR0);
@@ -294,8 +465,8 @@ static int ioremap_bar_mem(struct pci_dev *pdev,
bma_pci_dev->kbox_base_phy_addr, bma_pci_dev->kbox_base_len,
bma_pci_dev->kbox_base_len);
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
- err = ioremap_pme_bar1_mem(pdev, bma_pci_dev);
+ if (pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME && pci_type != PCI_TYPE_UNKNOWN) {
+ err = g_bma_pci_dev_handler_s[pci_type].ioremap_bar_mem(pdev, bma_pci_dev);
if (err != 0)
return err;
}
@@ -314,11 +485,7 @@ static int ioremap_bar_mem(struct pci_dev *pdev,
if (!bma_pci_dev->kbox_base_addr) {
BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n");
-
- iounmap(bma_pci_dev->bma_base_addr);
- bma_pci_dev->bma_base_addr = NULL;
- bma_pci_dev->edma_swap_addr = NULL;
- bma_pci_dev->hostrtc_viraddr = NULL;
+ iounmap_bar_mem(bma_pci_dev);
return -ENOMEM;
}
@@ -355,13 +522,14 @@ int pci_device_init(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev)
{
int err = 0;
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
+ if ((pdev->device == PCI_DEVICE_ID_KBOX_0_PME || pdev->device == PCI_DEVICE_ID_EDMA_0) &&
+ pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME) {
err = bma_devinft_init(bma_pci_dev);
if (err) {
BMA_LOG(DLOG_ERROR, "bma_devinft_init failed\n");
bma_devinft_cleanup(bma_pci_dev);
iounmap_bar_mem(bma_pci_dev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
pci_release_regions(pdev);
kfree(bma_pci_dev);
#ifdef CONFIG_PCI_MSI
@@ -400,27 +568,25 @@ int pci_device_config(struct pci_dev *pdev)
goto err_out_free_dev;
}
+ set_bma_pci_dev(bma_pci_dev);
+
err = ioremap_bar_mem(pdev, bma_pci_dev);
if (err) {
BMA_LOG(DLOG_ERROR, "ioremap_edma_io_mem failed\n");
goto err_out_release_regions;
}
- g_bma_pci_dev = bma_pci_dev;
-
if (SET_DMA_MASK(&pdev->dev)) {
BMA_LOG(DLOG_ERROR,
- "No usable DMA ,configuration, aborting,goto failed2!!!\n");
+ "No usable DMA, configuration, aborting, goto failed2!!!\n");
goto err_out_unmap_bar;
}
- g_bma_pci_dev = bma_pci_dev;
-
return pci_device_init(pdev, bma_pci_dev);
err_out_unmap_bar:
iounmap_bar_mem(bma_pci_dev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
err_out_release_regions:
pci_release_regions(pdev);
err_out_free_dev:
@@ -442,16 +608,27 @@ static int bma_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
UNUSED(ent);
- if (g_bma_pci_dev)
+ if (get_bma_pci_dev())
return -EPERM;
err = pci_enable_device(pdev);
if (err) {
- BMA_LOG(DLOG_ERROR, "Cannot enable PCI device,aborting\n");
+ BMA_LOG(DLOG_ERROR, "Cannot enable PCI device, aborting\n");
return err;
}
- if (PME_DEV_CHECK(pdev->device, pdev->vendor)) {
+ switch (pdev->device) {
+ case PCI_DEVICE_ID_KBOX_0_PME:
+ set_pci_type(PCI_TYPE_171x);
+ break;
+ case PCI_DEVICE_ID_EDMA_0:
+ set_pci_type(PCI_TYPE_1712);
+ break;
+ default:
+ set_pci_type(PCI_TYPE_UNKNOWN);
+ break;
+ }
+ if (pdev->vendor == PCI_VENDOR_ID_HUAWEI_PME && get_pci_type() != PCI_TYPE_UNKNOWN) {
err = pme_pci_enable_msi(pdev);
if (err)
return err;
@@ -468,7 +645,7 @@ static void bma_pci_remove(struct pci_dev *pdev)
struct bma_pci_dev_s *bma_pci_dev =
(struct bma_pci_dev_s *)pci_get_drvdata(pdev);
- g_bma_pci_dev = NULL;
+ set_bma_pci_dev(NULL);
(void)pci_set_drvdata(pdev, NULL);
if (bma_pci_dev) {
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
index a66724e2cb74..b43882997c01 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.h
@@ -18,6 +18,8 @@
#include "bma_devintf.h"
#include "bma_include.h"
+#include "../include/bma_ker_intf.h"
+#include "edma_host.h"
#include <linux/netdevice.h>
#define EDMA_SWAP_BASE_OFFSET 0x10000
@@ -25,10 +27,8 @@
#define HOSTRTC_REG_BASE 0x2f000000
#define HOSTRTC_REG_SIZE EDMA_SWAP_BASE_OFFSET
-#define EDMA_SWAP_DATA_BASE 0x84810000
#define EDMA_SWAP_DATA_SIZE 65536
-#define VETH_SWAP_DATA_BASE 0x84820000
#define VETH_SWAP_DATA_SIZE 0xdf000
#define ATU_VIEWPORT 0x900
@@ -71,7 +71,7 @@ struct bma_pci_dev_s {
#ifdef DRV_VERSION
#define BMA_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define BMA_VERSION "0.3.10"
+#define BMA_VERSION "0.4.0"
#endif
#ifdef CONFIG_ARM64
@@ -95,4 +95,31 @@ extern int debug;
int edmainfo_show(char *buff);
+struct bma_pci_dev_s *get_bma_pci_dev(void);
+void set_bma_pci_dev(struct bma_pci_dev_s *bma_pci_dev);
+
+struct bma_pci_dev_handler_s {
+ int (*ioremap_bar_mem)(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+ void (*iounmap_bar_mem)(struct bma_pci_dev_s *bma_pci_dev);
+ int (*check_dma)(enum dma_direction_e dir);
+ int (*transfer_edma_host)(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+ void (*reset_dma)(struct edma_host_s *edma_host, enum dma_direction_e dir);
+};
+
+struct bma_pci_dev_handler_s *get_bma_pci_dev_handler_s(void);
+
+int ioremap_pme_bar_mem_v1(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+int ioremap_pme_bar_mem_v2(struct pci_dev *pdev, struct bma_pci_dev_s *bma_pci_dev);
+void iounmap_bar_mem_v1(struct bma_pci_dev_s *bma_pci_dev);
+void iounmap_bar_mem_v2(struct bma_pci_dev_s *bma_pci_dev);
+int edma_host_check_dma_status_v1(enum dma_direction_e dir);
+int edma_host_check_dma_status_v2(enum dma_direction_e dir);
+int edma_host_dma_transfer_v1(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+int edma_host_dma_transfer_v2(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer);
+void edma_host_reset_dma_v1(struct edma_host_s *edma_host, enum dma_direction_e dir);
+void edma_host_reset_dma_v2(struct edma_host_s *edma_host, enum dma_direction_e dir);
+
#endif
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
new file mode 100644
index 000000000000..b0a09c022ba8
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_drv.h
@@ -0,0 +1,340 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_DRV_H
+#define EDMA_DRV_H
+
+#define DMA_STATISTICS_LEN 16
+#define DMA_CH_TAG_SIZE 64
+
+#define HISILICON_VENDOR_ID 0x19e5
+#define DMA_PCIE_DEVICE_ID 0xa122
+
+#define MAX_DMA_CHS 4 /* The current version supports a maximum of 2x2 channels. */
+#define DMA_CHS_EACH_PORT 2
+
+#define MAX_SQ_DEPTH 0xFFFF
+#define MAX_CQ_DEPTH 0xFFFF
+
+#define DMA_DONE_MASK 0x1
+#define DMA_DONE_UNMASK 0x0
+#define DMA_ERR_MASK 0x7FFFE
+#define DMA_ERR_UNMASK 0x0
+
+#define BD_SO 0
+#define BD_RO 1
+
+#define SIZE_4M 0x400000
+#define SIZE_16K 0x4000
+#define SIZE_64K 0x10000
+#define SIZE_OF_U64 0x8
+#define SPD_SIZE_MAX 32
+
+/* Use integer arithmetic for approximate computation instead of floating-point. */
+#define US_PER_SECOND_DIV_1KB (1000000 / 1024)
+
+#define DMA_PHY_STORE_OFFSET (SIZE_64K - SIZE_OF_U64)
+#define DMA_RMT_PHY_STORE_OFFSET (DMA_PHY_STORE_OFFSET - SIZE_OF_U64)
+#define BIT_0_TO_31_MASK 0xFFFFFFFF
+
+#define DMA_TMOUT (2 * HZ) /* 2 seconds */
+
+enum {
+ EP0 = 0,
+ EP1 = 1
+};
+
+enum {
+ DRC_LOCAL = 0,
+ DRC_REMOTE = 1
+};
+
+enum {
+ DIR_B2H = 0,
+ DIR_H2B = 1,
+};
+
+enum {
+ DMA_INIT = 0x0,
+ DMA_RESET = 0x1,
+ DMA_PAUSE = 0x2,
+ DMA_NOTIFY = 0x3,
+ LINKDOWN = 0x4,
+ LINKUP = 0x5,
+ FLR = 0x6
+};
+
+enum {
+ PF0 = 0,
+ PF1 = 1,
+ PF2 = 2,
+ PF4 = 4,
+ PF7 = 7,
+ PF10 = 10
+};
+
+enum {
+ RESERVED = 0x0, /* reserved */
+ SMALL_PACKET = 0x1, /* SmallPacket Descriptor */
+ DMA_READ = 0x2, /* Read Descriptor */
+ DMA_WRITE = 0x3, /* Write Descriptor */
+ DMA_LOOP = 0x4, /* Loop Descriptor */
+ DMA_MIX = 0x10, /* not available, User-defined for test */
+ DMA_WD_BARRIER = 0x11, /* not available, User-defined for test */
+ DMA_RD_BARRIER = 0x12, /* not available, User-defined for test */
+ DMA_LP_BARRIER = 0x13 /* not available, User-defined for test */
+};
+
+enum {
+ IDLE_STATE = 0x0, /* dma channel in idle status */
+ RUN_STATE = 0x1, /* dma channel in run status */
+ CPL_STATE = 0x2, /* dma channel in cpld status */
+ PAUSE_STATE = 0x3, /* dma channel in pause status */
+ HALT_STATE = 0x4, /* dma channel in halt status */
+ ABORT_STATE = 0x5, /* dma channel in abort status */
+ WAIT_STATE = 0x6 /* dma channel in wait status */
+};
+
+/* CQE status */
+enum {
+ DMA_DONE = 0x0, /* sqe done succ */
+ OPCODE_ERR = 0x1, /* sqe opcode invalid */
+ LEN_ERR = 0x2, /* sqe length invalid, only ocurs in smallpackt */
+ DROP_EN = 0x4, /* sqe drop happen */
+ WR_RMT_ERR = 0x8, /* write data to host fail */
+ RD_RMT_ERR = 0x10, /* read data from host fail */
+ RD_AXI_ERR = 0x20, /* read data/sqe from local fail */
+ WR_AXI_ERR = 0x40, /* write data/cqe to local fail */
+ POISON_CPL_ERR = 0x80, /* poison data */
+ SUB_SQ_ERR = 0x100, /* read sqe with CPL TLP */
+ DMA_CH_RESET = 0x200, /* dma channel should reset */
+ LINK_DOWN_ERR = 0x400, /* linkdown happen */
+ RECOVERY = 0x800 /* error status to be reset */
+};
+
+enum {
+ SDI_DMA_ADDR_SIZE_16K = 0,
+ SDI_DMA_ADDR_SIZE_32K = 1,
+ SDI_DMA_ADDR_SIZE_64K = 2,
+ SDI_DMA_ADDR_SIZE_128K = 3
+};
+
+union U_DMA_QUEUE_SQ_DEPTH {
+ struct {
+ unsigned int dma_queue_sq_depth : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_DEPTH {
+ struct {
+ unsigned int dma_queue_cq_depth : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_HEAD_PTR {
+ struct {
+ unsigned int dma_queue_cq_head_ptr : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CQ_TAIL_PTR {
+ struct {
+ unsigned int dma_queue_cq_tail_ptr : 16; /* [15..0] */
+ unsigned int dma_queue_sqhd : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_SQ_TAIL_PTR {
+ struct {
+ unsigned int dma_queue_sq_tail_ptr : 16; /* [15..0] */
+ unsigned int reserved_0 : 16; /* [31..16] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CTRL0 {
+ struct {
+ unsigned int dma_queue_en : 1; /* [0] */
+ unsigned int dma_queue_icg_en : 1; /* [1] */
+ unsigned int reserved : 1; /* [2] */
+ unsigned int dma_rst_without_cq_ack_enable : 1; /* [3] */
+ unsigned int dma_queue_pause : 1; /* [4] */
+ unsigned int reserved_1 : 3; /* [7..5] */
+ unsigned int dma_queue_arb_weight : 8; /* [15..8] */
+ unsigned int reserved_2 : 3; /* [18...16] */
+ unsigned int dma_queue_cq_mrg_en : 1; /* [19] */
+ unsigned int dma_queue_cq_mrg_time : 2; /* [21..20] */
+ unsigned int dma_queue_local_err_done_int_en : 1; /* [22] */
+ unsigned int dma_queue_remote_err_done_int_en : 1; /* [23] */
+ unsigned int reserved_3 : 1; /* [24] */
+ unsigned int dma_queue_cq_full_disable : 1; /* [25] */
+ unsigned int dma_queue_cq_drct_sel : 1; /* [26] */
+ unsigned int dma_queue_sq_drct_sel : 1; /* [27] */
+ unsigned int dma_queue_sq_pa_lkp_err_abort_en : 1; /* [28] */
+ unsigned int dma_queue_sq_proc_err_abort_en : 1; /* [29] */
+ unsigned int dma_queue_sq_drop_err_abort_en : 1; /* [30] */
+ unsigned int dma_queue_sq_cfg_err_abort_en : 1; /* [31] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_CTRL1 {
+ struct {
+ unsigned int dma_queue_reset : 1; /* [0] */
+ unsigned int dma_queue_abort_exit : 1; /* [1] */
+ unsigned int dma_va_enable : 1; /* [2] */
+ unsigned int reserved_0 : 1; /* [3] */
+ unsigned int dma_queue_port_num : 4; /* [7..4] */
+ unsigned int dma_queue_remote_msi_x_mask : 1; /* [8] */
+ unsigned int dma_va_enable_sq : 1; /* [9] */
+ unsigned int dma_va_enable_cq : 1; /* [10] */
+ unsigned int dma_queue_local_pfx_er : 1; /* [11] */
+ unsigned int dma_queue_local_pfx_pmr : 1; /* [12] */
+ unsigned int reserved_1 : 3; /* [15...13] */
+ unsigned int dma_queue_qos_en : 1; /* [16] */
+ unsigned int dma_queue_qos : 4; /* [20...17] */
+ unsigned int dma_queue_mpam_id : 11; /* [31..21] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_FSM_STS {
+ struct {
+ unsigned int dma_queue_sts : 4; /* [3..0] */
+ unsigned int dma_queue_not_work : 1; /* [4] */
+ unsigned int dma_queue_wait_spd_data_sts : 1; /* [5] */
+ unsigned int reserved_0 : 1; /* [6] */
+ unsigned int reserved_1 : 1; /* [7] */
+ unsigned int dma_queue_sub_fsm_sts : 3; /* [10..8] */
+ unsigned int reserved_2 : 21; /* [31..11] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_INT_STS {
+ struct {
+ unsigned int dma_queue_done_int_sts : 1; /* [0] */
+ unsigned int dma_queue_err00_int_sts : 1; /* [1] */
+ unsigned int dma_queue_err01_int_sts : 1; /* [2] */
+ unsigned int dma_queue_err02_int_sts : 1; /* [3] */
+ unsigned int dma_queue_err03_int_sts : 1; /* [4] */
+ unsigned int reserved : 1; /* [5] */
+ unsigned int dma_queue_err05_int_sts : 1; /* [6] */
+ unsigned int dma_queue_err06_int_sts : 1; /* [7] */
+ unsigned int dma_queue_err07_int_sts : 1; /* [8] */
+ unsigned int dma_queue_err08_int_sts : 1; /* [9] */
+ unsigned int dma_queue_err09_int_sts : 1; /* [10] */
+ unsigned int dma_queue_err10_int_sts : 1; /* [11] */
+ unsigned int dma_queue_err11_int_sts : 1; /* [12] */
+ unsigned int dma_queue_err12_int_sts : 1; /* [13] */
+ unsigned int dma_queue_err13_int_sts : 1; /* [14] */
+ unsigned int dma_queue_err14_int_sts : 1; /* [15] */
+ unsigned int dma_queue_err15_int_sts : 1; /* [16] */
+ unsigned int dma_queue_err16_int_sts : 1; /* [17] */
+ unsigned int dma_queue_err17_int_sts : 1; /* [18] */
+ unsigned int reserved_0 : 13; /* [31..19] */
+ } bits;
+
+ unsigned int u32;
+};
+
+union U_DMA_QUEUE_INT_MSK {
+ struct {
+ unsigned int dma_queue_done_int_msk : 1; /* [0] */
+ unsigned int dma_queue_err00_int_msk : 1; /* [1] */
+ unsigned int dma_queue_err01_int_msk : 1; /* [2] */
+ unsigned int dma_queue_err02_int_msk : 1; /* [3] */
+ unsigned int dma_queue_err03_int_msk : 1; /* [4] */
+ unsigned int reserved : 1; /* [5] */
+ unsigned int dma_queue_err05_int_msk : 1; /* [6] */
+ unsigned int dma_queue_err06_int_msk : 1; /* [7] */
+ unsigned int dma_queue_err07_int_msk : 1; /* [8] */
+ unsigned int dma_queue_err08_int_msk : 1; /* [9] */
+ unsigned int dma_queue_err09_int_msk : 1; /* [10] */
+ unsigned int dma_queue_err10_int_msk : 1; /* [11] */
+ unsigned int dma_queue_err11_int_msk : 1; /* [12] */
+ unsigned int dma_queue_err12_int_msk : 1; /* [13] */
+ unsigned int dma_queue_err13_int_msk : 1; /* [14] */
+ unsigned int dma_queue_err14_int_msk : 1; /* [15] */
+ unsigned int dma_queue_err15_int_msk : 1; /* [16] */
+ unsigned int dma_queue_err16_int_msk : 1; /* [17] */
+ unsigned int dma_queue_err17_int_msk : 1; /* [18] */
+ unsigned int reserved_0 : 13 ; /* [31..19] */
+ } bits;
+
+ unsigned int u32;
+};
+
+struct dma_ch_sq_s {
+ u32 opcode : 4; /* [0~3] opcode */
+ u32 drop : 1; /* [4] drop */
+ u32 nw : 1; /* [5] nw */
+ u32 wd_barrier : 1; /* [6] write done barrier */
+ u32 rd_barrier : 1; /* [7] read done barrier */
+ u32 ldie : 1; /* [8] LDIE */
+ u32 rdie : 1; /* [9] rDIE */
+ u32 loop_barrier : 1; /* [10] */
+ u32 spd_barrier : 1; /* [11] */
+ u32 attr : 3; /* [12~14] attr */
+ u32 cq_disable : 1; /* [15] reserved */
+ u32 addrt : 2; /* [16~17] at */
+ u32 p3p4 : 2; /* [18~19] P3 P4 */
+ u32 pf : 3; /* [20~22] pf */
+ u32 vfen : 1; /* [23] vfen */
+ u32 vf : 8; /* [24~31] vf */
+ u32 pasid : 20; /* [0~19] pasid */
+ u32 er : 1; /* [20] er */
+ u32 pmr : 1; /* [21] pmr */
+ u32 prfen : 1; /* [22] prfen */
+ u32 reserved5 : 1; /* [23] reserved */
+ u32 msi : 8; /* [24~31] MSI/MSI-X vector */
+ u32 flow_id : 8; /* [0~7] Flow ID */
+ u32 reserved6 : 8; /* [8~15] reserved */
+ u32 TH : 1; /* [16] TH */
+ u32 PH : 2; /* [17~18] PH */
+ u32 reserved7 : 13; /* [19~31] reserved: some multiplex fields */
+ u32 length;
+ u32 src_addr_l;
+ u32 src_addr_h;
+ u32 dst_addr_l;
+ u32 dst_addr_h;
+};
+
+struct dma_ch_cq_s {
+ u32 reserved1;
+ u32 reserved2;
+ u32 sqhd : 16;
+ u32 reserved3 : 16;
+ u32 reserved4 : 16; /* [0~15] reserved */
+ u32 vld : 1; /* [16] vld */
+ u32 status : 15; /* [17~31] status */
+};
+
+#endif /* EDMA_DRV_H */
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
index be2f732ed9ed..1bfb123e43c0 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c
@@ -20,11 +20,18 @@
#include <linux/seq_file.h>
#include "bma_pci.h"
+#include "edma_queue.h"
#include "edma_host.h"
static struct edma_user_inft_s *g_user_func[TYPE_MAX] = { 0 };
static struct bma_dev_s *g_bma_dev;
+
+struct bma_dev_s *get_bma_dev(void)
+{
+ return g_bma_dev;
+}
+
static int edma_host_dma_interrupt(struct edma_host_s *edma_host);
int edmainfo_show(char *buf)
@@ -231,7 +238,8 @@ void clear_int_dmab2h(struct edma_host_s *edma_host)
(void)pci_write_config_dword(pdev, REG_PCIE1_DMAWRITEINT_CLEAR, data);
}
-int edma_host_check_dma_status(enum dma_direction_e dir)
+// for 1710 1711
+int edma_host_check_dma_status_v1(enum dma_direction_e dir)
{
int ret = 0;
@@ -259,6 +267,18 @@ int edma_host_check_dma_status(enum dma_direction_e dir)
return ret;
}
+// for 1712
+int edma_host_check_dma_status_v2(enum dma_direction_e dir)
+{
+ UNUSED(dir);
+ if (check_dma_queue_state(CPL_STATE, TRUE) == 0 ||
+ check_dma_queue_state(IDLE_STATE, TRUE) == 0) {
+ return 1; /* ok */
+ }
+
+ return 0; /* busy */
+}
+
#ifdef USE_DMA
static int start_transfer_h2b(struct edma_host_s *edma_host, unsigned int len,
@@ -633,9 +653,9 @@ void host_dma_transfer_withlist(struct edma_host_s *edma_host,
}
}
-int edma_host_dma_transfer(struct edma_host_s *edma_host,
- struct bma_priv_data_s *priv,
- struct bma_dma_transfer_s *dma_transfer)
+// for 1710 1711
+int edma_host_dma_transfer_v1(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer)
{
int ret = 0;
unsigned long flags = 0;
@@ -673,7 +693,44 @@ int edma_host_dma_transfer(struct edma_host_s *edma_host,
return ret;
}
-void edma_host_reset_dma(struct edma_host_s *edma_host, int dir)
+// for 1712
+int edma_host_dma_transfer_v2(struct edma_host_s *edma_host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *dma_transfer)
+{
+ int ret = 0;
+ unsigned long flags = 0;
+ struct bma_dev_s *bma_dev = NULL;
+
+ BMA_LOG(DLOG_DEBUG, "edma_host_dma_transfer 1712");
+
+ if (!edma_host || !priv || !dma_transfer)
+ return -EFAULT;
+
+ bma_dev = list_entry(edma_host, struct bma_dev_s, edma_host);
+
+ spin_lock_irqsave(&bma_dev->priv_list_lock, flags);
+
+ if (priv->user.dma_transfer == 0) {
+ spin_unlock_irqrestore(&bma_dev->priv_list_lock, flags);
+ BMA_LOG(DLOG_ERROR, "dma_transfer = %hhd\n", priv->user.dma_transfer);
+ return -EFAULT;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "transfer_edma_host 1712");
+
+ spin_unlock_irqrestore(&bma_dev->priv_list_lock, flags);
+
+ edma_host->statistics.dma_count++;
+
+ spin_lock_irqsave(&edma_host->reg_lock, flags);
+ ret = transfer_dma_queue(dma_transfer);
+ spin_unlock_irqrestore(&edma_host->reg_lock, flags);
+
+ return ret;
+}
+
+// for 1710/1711
+void edma_host_reset_dma_v1(struct edma_host_s *edma_host, enum dma_direction_e dir)
{
u32 data = 0;
u32 reg_addr = 0;
@@ -717,6 +774,13 @@ void edma_host_reset_dma(struct edma_host_s *edma_host, int dir)
reg_addr, count, data);
}
+// for 1712
+void edma_host_reset_dma_v2(struct edma_host_s *edma_host, enum dma_direction_e dir)
+{
+ UNUSED(dir);
+ reset_edma_host(edma_host);
+}
+
int edma_host_dma_stop(struct edma_host_s *edma_host,
struct bma_priv_data_s *priv)
{
@@ -750,8 +814,8 @@ static int edma_host_send_msg(struct edma_host_s *edma_host)
if (send_mbx_hdr->mbxlen > 0) {
if (send_mbx_hdr->mbxlen > HOST_MAX_SEND_MBX_LEN) {
/*share memory is disable */
+ BMA_LOG(DLOG_DEBUG, "mbxlen is too long: %d\n", send_mbx_hdr->mbxlen);
send_mbx_hdr->mbxlen = 0;
- BMA_LOG(DLOG_DEBUG, "mbxlen is too long\n");
return -EFAULT;
}
@@ -1296,6 +1360,69 @@ int edma_host_user_unregister(u32 type)
return 0;
}
+static void init_edma_sq_cq(struct edma_host_s *edma_host)
+{
+ u64 sq_phy_addr = 0;
+ u64 cq_phy_addr = 0;
+ phys_addr_t edma_address = 0;
+ int ret = 0;
+
+ if (get_pci_type() != PCI_TYPE_1712)
+ return;
+
+ ret = bma_intf_get_map_address(TYPE_EDMA_ADDR, &edma_address);
+ if (ret != 0)
+ return;
+
+ edma_host->edma_sq_addr = (void *)((unsigned char *)edma_host->edma_recv_addr
+ + HOST_MAX_RCV_MBX_LEN);
+ edma_host->edma_cq_addr = (void *)((unsigned char *)edma_host->edma_sq_addr
+ + sizeof(struct dma_ch_sq_s) * SQ_DEPTH);
+ sq_phy_addr = edma_address + HOST_DMA_FLAG_LEN + HOST_MAX_SEND_MBX_LEN
+ + HOST_MAX_RCV_MBX_LEN;
+ cq_phy_addr = sq_phy_addr + sizeof(struct dma_ch_sq_s) * SQ_DEPTH;
+
+ BMA_LOG(DLOG_DEBUG,
+ "sq_phy_addr = 0x%llx, SQ size = %zu, cq_phy_addr = 0x%llx, CQ size = %zu",
+ sq_phy_addr, sizeof(struct dma_ch_sq_s) * SQ_DEPTH,
+ cq_phy_addr, sizeof(struct dma_ch_cq_s) * CQ_DEPTH);
+ BMA_LOG(DLOG_DEBUG, "sq_addr = %pK, cq_addr = %pK", edma_host->edma_sq_addr,
+ edma_host->edma_cq_addr);
+
+ (void)memset(edma_host->edma_sq_addr, 0,
+ sizeof(struct dma_ch_sq_s) * SQ_DEPTH + sizeof(struct dma_ch_cq_s) * CQ_DEPTH);
+
+ set_dma_queue_sq_base_l(sq_phy_addr & PCIE_ADDR_L_32_MASK);
+ set_dma_queue_sq_base_h((u32)(sq_phy_addr >> PCIE_ADDR_H_SHIFT_32));
+ set_dma_queue_cq_base_l(cq_phy_addr & PCIE_ADDR_L_32_MASK);
+ set_dma_queue_cq_base_h((u32)(cq_phy_addr >> PCIE_ADDR_H_SHIFT_32));
+
+ reset_edma_host(edma_host);
+}
+
+static void edma_setup_timer(struct edma_host_s *edma_host)
+{
+#ifdef HAVE_TIMER_SETUP
+ timer_setup(&edma_host->timer, edma_host_timeout, 0);
+#else
+ setup_timer(&edma_host->timer, edma_host_timeout,
+ (unsigned long)edma_host);
+#endif
+ (void)mod_timer(&edma_host->timer, jiffies_64 + TIMER_INTERVAL_CHECK);
+
+#ifdef USE_DMA
+ #ifdef HAVE_TIMER_SETUP
+ timer_setup(&edma_host->dma_timer, edma_host_dma_timeout, 0);
+
+ #else
+ setup_timer(&edma_host->dma_timer, edma_host_dma_timeout,
+ (unsigned long)edma_host);
+ #endif
+ (void)mod_timer(&edma_host->dma_timer,
+ jiffies_64 + DMA_TIMER_INTERVAL_CHECK);
+#endif
+}
+
int edma_host_init(struct edma_host_s *edma_host)
{
int ret = 0;
@@ -1352,24 +1479,7 @@ int edma_host_init(struct edma_host_s *edma_host)
edma_host->b2h_state = B2HSTATE_IDLE;
#ifdef EDMA_TIMER
- #ifdef HAVE_TIMER_SETUP
- timer_setup(&edma_host->timer, edma_host_timeout, 0);
- #else
- setup_timer(&edma_host->timer, edma_host_timeout,
- (unsigned long)edma_host);
- #endif
- (void)mod_timer(&edma_host->timer, jiffies_64 + TIMER_INTERVAL_CHECK);
-#ifdef USE_DMA
- #ifdef HAVE_TIMER_SETUP
- timer_setup(&edma_host->dma_timer, edma_host_dma_timeout, 0);
-
- #else
- setup_timer(&edma_host->dma_timer, edma_host_dma_timeout,
- (unsigned long)edma_host);
- #endif
- (void)mod_timer(&edma_host->dma_timer,
- jiffies_64 + DMA_TIMER_INTERVAL_CHECK);
-#endif
+ edma_setup_timer(edma_host);
#else
init_completion(&edma_host->msg_ready);
@@ -1383,6 +1493,8 @@ int edma_host_init(struct edma_host_s *edma_host)
}
#endif
+ init_edma_sq_cq(edma_host);
+
#ifdef HAVE_TIMER_SETUP
timer_setup(&edma_host->heartbeat_timer,
edma_host_heartbeat_timer, 0);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
index cbbd86fd6602..93c81bc92286 100644
--- a/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_host.h
@@ -18,6 +18,8 @@
#include "bma_include.h"
#include "../include/bma_ker_intf.h"
+#include "edma_reg.h"
+#include "edma_drv.h"
#define EDMA_TIMER
@@ -176,6 +178,13 @@
#define U64ADDR_H(addr) ((((u64)addr) >> 32) & 0xffffffff)
#define U64ADDR_L(addr) ((addr) & 0xffffffff)
+#define MAX_RESET_DMA_TIMES 10
+#define DELAY_BETWEEN_RESET_DMA 100
+#define PCI_VENDOR_ID_HUAWEI_PME 0x19e5
+#define PCI_DEVICE_ID_EDMA_0 0x1712
+#define SQ_DEPTH 128
+#define CQ_DEPTH 128
+
struct bma_register_dev_type_s {
u32 type;
u32 sub_type;
@@ -263,6 +272,8 @@ struct edma_host_s {
void __iomem *edma_flag;
void __iomem *edma_send_addr;
void __iomem *edma_recv_addr;
+ void __iomem *edma_sq_addr;
+ void __iomem *edma_cq_addr;
#ifdef USE_DMA
struct timer_list dma_timer;
#endif
@@ -309,6 +320,8 @@ struct edma_user_inft_s {
int (*add_msg)(void *msg, size_t msg_len);
};
+struct bma_dev_s *get_bma_dev(void);
+
int is_edma_b2h_int(struct edma_host_s *edma_host);
void edma_int_to_bmc(struct edma_host_s *edma_host);
int edma_host_mmap(struct edma_host_s *edma_hos, struct file *filp,
@@ -336,7 +349,6 @@ int edma_host_user_unregister(u32 type);
int edma_host_init(struct edma_host_s *edma_host);
void edma_host_cleanup(struct edma_host_s *edma_host);
int edma_host_send_driver_msg(const void *msg, size_t msg_len, int subtype);
-void edma_host_reset_dma(struct edma_host_s *edma_host, int dir);
void clear_int_dmah2b(struct edma_host_s *edma_host);
void clear_int_dmab2h(struct edma_host_s *edma_host);
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
new file mode 100644
index 000000000000..678262f7412c
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.c
@@ -0,0 +1,470 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/errno.h>
+#include <linux/kthread.h>
+#include <linux/mm.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+
+#include "bma_pci.h"
+#include "edma_host.h"
+#include "edma_queue.h"
+
+static u32 pcie_dma_read(u32 offset)
+{
+ u32 reg_val;
+
+ reg_val = readl(get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ BMA_LOG(DLOG_DEBUG, "readl, offset 0x%x val 0x%x\n", offset, reg_val);
+ return reg_val;
+}
+
+static void pcie_dma_write(u32 offset, u32 reg_val)
+{
+ u32 read_val;
+
+ (void)writel(reg_val, get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ read_val = readl(get_bma_dev()->bma_pci_dev->bma_base_addr + offset);
+ if (read_val != reg_val) {
+ BMA_LOG(DLOG_DEBUG,
+ "writel fail, read_value: 0x%x, set_value: 0x%x, offset: 0x%x\n",
+ read_val, reg_val, offset);
+ return;
+ }
+ BMA_LOG(DLOG_DEBUG, "writel, offset 0x%x val 0x%x\n", offset, reg_val);
+}
+
+static void set_dma_queue_int_msk(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_INT_MSK_0_REG, val);
+}
+
+static void set_dma_queue_err_int_msk(u32 val)
+{
+ union U_DMA_QUEUE_INT_MSK reg_val;
+
+ // The least significant bit (bit 0) of this register is reserved and must be cleared,
+ // while the remaining bits should retain their original values.
+ reg_val.u32 = val & 0xFFFFFFFE;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_ERR_INT_MSK_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_int_sts(u32 val)
+{
+ union U_DMA_QUEUE_INT_STS reg_val;
+
+ reg_val.u32 = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_INT_STS_0_REG, reg_val.u32);
+}
+
+static void get_dma_queue_int_sts(u32 *val)
+{
+ union U_DMA_QUEUE_INT_STS reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_INT_STS_0_REG);
+ *val = reg_val.u32;
+}
+
+static void get_dma_queue_fsm_sts(u32 *val)
+{
+ union U_DMA_QUEUE_FSM_STS reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_FSM_STS_0_REG);
+ *val = reg_val.bits.dma_queue_sts;
+}
+
+static void pause_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_pause = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void enable_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_en = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void reset_dma_queue(u32 val)
+{
+ union U_DMA_QUEUE_CTRL1 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL1_0_REG);
+ reg_val.bits.dma_queue_reset = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL1_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_sq_tail(u32 val)
+{
+ union U_DMA_QUEUE_SQ_TAIL_PTR reg_val;
+
+ reg_val.bits.dma_queue_sq_tail_ptr = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_cq_head(u32 val)
+{
+ union U_DMA_QUEUE_CQ_HEAD_PTR reg_val;
+
+ reg_val.bits.dma_queue_cq_head_ptr = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_HEAD_PTR_0_REG, reg_val.u32);
+}
+
+void set_dma_queue_sq_base_l(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_BASE_L_0_REG, val);
+}
+
+void set_dma_queue_sq_base_h(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_BASE_H_0_REG, val);
+}
+
+void set_dma_queue_cq_base_l(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_BASE_L_0_REG, val);
+}
+
+void set_dma_queue_cq_base_h(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_BASE_H_0_REG, val);
+}
+
+static void set_dma_queue_sq_depth(u32 val)
+{
+ union U_DMA_QUEUE_SQ_DEPTH reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_SQ_DEPTH_0_REG);
+ reg_val.bits.dma_queue_sq_depth = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_SQ_DEPTH_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_cq_depth(u32 val)
+{
+ union U_DMA_QUEUE_CQ_DEPTH reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CQ_DEPTH_0_REG);
+ reg_val.bits.dma_queue_cq_depth = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CQ_DEPTH_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_arb_weight(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_arb_weight = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_drct_sel(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_cq_drct_sel = val;
+ reg_val.bits.dma_queue_sq_drct_sel = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void get_dma_queue_sq_tail(u32 *val)
+{
+ union U_DMA_QUEUE_SQ_TAIL_PTR reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG);
+ *val = reg_val.bits.dma_queue_sq_tail_ptr;
+}
+
+static void get_dma_queue_cq_tail(u32 *val)
+{
+ union U_DMA_QUEUE_CQ_TAIL_PTR reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CQ_TAIL_PTR_0_REG);
+ *val = reg_val.bits.dma_queue_cq_tail_ptr;
+}
+
+static void get_dma_queue_sq_head(u32 *val)
+{
+ u32 reg_val;
+
+ reg_val = pcie_dma_read(PCIE_DMA_QUEUE_SQ_STS_0_REG);
+ /* dma_queue_sq_head_ptr bit[15:0] */
+ *val = reg_val & 0xFFFF;
+}
+
+static void set_dma_queue_err_abort(u32 val)
+{
+ union U_DMA_QUEUE_CTRL0 reg_val;
+
+ reg_val.u32 = pcie_dma_read(PCIE_DMA_QUEUE_CTRL0_0_REG);
+ reg_val.bits.dma_queue_sq_pa_lkp_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_proc_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_drop_err_abort_en = val;
+ reg_val.bits.dma_queue_sq_cfg_err_abort_en = val;
+ (void)pcie_dma_write(PCIE_DMA_QUEUE_CTRL0_0_REG, reg_val.u32);
+}
+
+static void set_dma_queue_flr_disable(u32 val)
+{
+ (void)pcie_dma_write(PCIE_DMA_FLR_DISABLE_REG, val);
+}
+
+static void clear_dma_queue_int_chk(u32 mask)
+{
+ u32 int_sts;
+
+ (void)get_dma_queue_int_sts(&int_sts);
+ if (int_sts & mask)
+ (void)set_dma_queue_int_sts(mask);
+}
+
+s32 check_dma_queue_state(u32 state, u32 flag)
+{
+ u32 dma_state = 0;
+ unsigned long timeout;
+
+ BMA_LOG(DLOG_DEBUG, "state:%u, flag:%u\n", state, flag);
+
+ timeout = jiffies + TIMER_INTERVAL_CHECK;
+
+ while (1) {
+ get_dma_queue_fsm_sts(&dma_state);
+ BMA_LOG(DLOG_DEBUG, "DMA stats[%u]\n", dma_state);
+ // Flag is 0 and state does not equal to target value
+ // OR Flag is 1 and state is equal to target value
+ if ((!flag && dma_state != state) || (flag && dma_state == state))
+ break;
+
+ if (time_after(jiffies, timeout)) {
+ BMA_LOG(DLOG_DEBUG, "Wait stats[%u] fail\n", state);
+ return -ETIMEDOUT;
+ }
+ udelay(1);
+ }
+ return 0;
+}
+
+static s32 reset_dma(void)
+{
+ u32 dma_state = 0;
+
+ /* get dma channel fsm */
+ check_dma_queue_state(WAIT_STATE, FALSE);
+ get_dma_queue_fsm_sts(&dma_state);
+ BMA_LOG(DLOG_DEBUG, "dma_state:%u\n", dma_state);
+ switch (dma_state) {
+ /* idle status, dma channel need no reset */
+ case IDLE_STATE:
+ return 0;
+ case RUN_STATE:
+ pause_dma_queue(ENABLE);
+ fallthrough;
+ case ABORT_STATE:
+ case CPL_STATE:
+ enable_dma_queue(DISABLE);
+ if (check_dma_queue_state(RUN_STATE, FALSE))
+ return -ETIMEDOUT;
+ fallthrough;
+ case PAUSE_STATE:
+ case HALT_STATE:
+ set_dma_queue_sq_tail(0);
+ set_dma_queue_cq_head(0);
+ reset_dma_queue(ENABLE);
+ pause_dma_queue(DISABLE);
+ if (check_dma_queue_state(IDLE_STATE, TRUE))
+ return -ETIMEDOUT;
+ fallthrough;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static void init_dma(void)
+{
+ /* set dma channel sq tail */
+ set_dma_queue_sq_tail(0);
+ /* set dma channel cq head */
+ set_dma_queue_cq_head(0);
+ /* set dma queue drct sel */
+ set_dma_queue_drct_sel(DRC_LOCAL);
+ /* set dma channel sq depth */
+ set_dma_queue_sq_depth(SQ_DEPTH - 1);
+ /* set dma channel cq depth */
+ set_dma_queue_cq_depth(CQ_DEPTH - 1);
+ /* dma not process FLR , only cpu process FLR */
+ set_dma_queue_flr_disable(0x1);
+ /* set dma queue arb weight */
+ set_dma_queue_arb_weight(0x1F);
+ /* clear dma queue int status */
+ set_dma_queue_int_sts(0x1FFF);
+ /* set dma queue int mask */
+ set_dma_queue_err_int_msk(0x0);
+ set_dma_queue_int_msk(0x0);
+ /* set dma queue abort err en */
+ set_dma_queue_err_abort(ENABLE);
+ /* enable dma channel en */
+ enable_dma_queue(ENABLE);
+}
+
+s32 wait_done_dma_queue(unsigned long timeout)
+{
+ struct dma_ch_cq_s *p_cur_last_cq;
+ struct dma_ch_cq_s *p_dma_cq;
+ unsigned long end;
+ u32 sq_tail;
+ u32 sq_valid;
+ u32 cq_tail;
+ u32 cq_valid;
+
+ p_dma_cq = (struct dma_ch_cq_s *)((&get_bma_dev()->edma_host)->edma_cq_addr);
+ end = jiffies + timeout;
+
+ while (time_before(jiffies, end)) {
+ (void)get_dma_queue_sq_tail(&sq_tail);
+ (void)get_dma_queue_cq_tail(&cq_tail);
+
+ cq_valid = (cq_tail + CQ_DEPTH - 1) % (CQ_DEPTH);
+ p_cur_last_cq = &p_dma_cq[cq_valid];
+ sq_valid = (sq_tail + SQ_DEPTH - 1) % (SQ_DEPTH);
+ BMA_LOG(DLOG_DEBUG,
+ "sq_tail %d, cq_tail %d, cq_valid %d, sq_valid %d, p_cur_last_cq->sqhd %d\n",
+ sq_tail, cq_tail, cq_valid, sq_valid, p_cur_last_cq->sqhd);
+ if (p_cur_last_cq->sqhd == sq_valid) {
+ set_dma_queue_cq_head(cq_valid);
+ return 0;
+ }
+ }
+
+ return -ETIMEDOUT;
+}
+
+static s32 submit_dma_queue_sq(u32 dir, struct bspveth_dmal pdmalbase_v, u32 pf)
+{
+ u32 sq_tail;
+ u32 sq_head;
+ u32 sq_availble;
+ struct dma_ch_sq_s sq_submit;
+ struct dma_ch_sq_s *p_dma_sq;
+
+ p_dma_sq = (struct dma_ch_sq_s *)((&get_bma_dev()->edma_host)->edma_sq_addr);
+ (void)get_dma_queue_sq_tail(&sq_tail);
+ (void)get_dma_queue_sq_head(&sq_head);
+ sq_availble = SQ_DEPTH - 1 - (((sq_tail - sq_head) + SQ_DEPTH) % SQ_DEPTH);
+ if (sq_availble < 1) {
+ BMA_LOG(DLOG_DEBUG, "cannot process %u descriptors, try again later\n", 1);
+ return -1;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, sq_tail get %d, sq_head %d, sq_availble %d\n",
+ sq_tail, sq_head, sq_availble);
+
+ (void)memset(&sq_submit, 0, sizeof(sq_submit));
+ if (dir == DIR_H2B)
+ sq_submit.opcode = DMA_READ;
+ else
+ sq_submit.opcode = DMA_WRITE;
+
+ BMA_LOG(DLOG_DEBUG, "PF: %u\n", pf);
+ sq_submit.ldie = ENABLE;
+ sq_submit.rdie = ENABLE;
+ sq_submit.attr &= (~0x2); /* SO(Strong Ordering) */
+ sq_submit.pf = pf & 0x7; /* 0x7 */
+ sq_submit.p3p4 = (pf >> 3) & 0x3; /* 0x3 */
+ sq_submit.length = pdmalbase_v.len;
+ sq_submit.src_addr_l = pdmalbase_v.slow;
+ sq_submit.src_addr_h = pdmalbase_v.shi;
+ sq_submit.dst_addr_l = pdmalbase_v.dlow;
+ sq_submit.dst_addr_h = pdmalbase_v.dhi;
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, dir %d, op %d, length %d\n", dir,
+ sq_submit.opcode, sq_submit.length);
+
+ memcpy(p_dma_sq + sq_tail, &sq_submit, sizeof(sq_submit));
+ sq_tail = (sq_tail + 1) % SQ_DEPTH;
+
+ BMA_LOG(DLOG_DEBUG, "submit dma queue sq, sq_tail change %d,\n", sq_tail);
+ wmb(); /* memory barriers. */
+
+ (void)set_dma_queue_sq_tail(sq_tail);
+
+ return 0;
+}
+
+s32 transfer_dma_queue(struct bma_dma_transfer_s *dma_transfer)
+{
+ struct bspveth_dmal *pdmalbase_v;
+ u32 dmal_cnt;
+ s32 ret;
+ int i;
+
+ if (!dma_transfer) {
+ BMA_LOG(DLOG_DEBUG, "dma_transfer is NULL.\n");
+ return -EFAULT;
+ }
+
+ BMA_LOG(DLOG_DEBUG, "transfer dma queue.\n");
+
+ /* clear local done int */
+ clear_dma_queue_int_chk(DMA_DONE_MASK);
+
+ pdmalbase_v = dma_transfer->pdmalbase_v;
+ dmal_cnt = dma_transfer->dmal_cnt;
+ for (i = 0; i < dmal_cnt; i++)
+ submit_dma_queue_sq(dma_transfer->dir, pdmalbase_v[i],
+ get_bma_dev()->bma_pci_dev->pdev->devfn);
+
+ (void)set_dma_queue_int_msk(DMA_DONE_UNMASK);
+ (void)set_dma_queue_err_int_msk(DMA_ERR_UNMASK);
+ (void)enable_dma_queue(ENABLE);
+
+ ret = wait_done_dma_queue(DMA_TMOUT);
+ if (ret)
+ BMA_LOG(DLOG_DEBUG, "EP DMA: dma wait timeout");
+
+ return ret;
+}
+
+void reset_edma_host(struct edma_host_s *edma_host)
+{
+ unsigned long flags = 0;
+ int count = 0;
+
+ if (!edma_host)
+ return;
+
+ spin_lock_irqsave(&edma_host->reg_lock, flags);
+
+ while (count++ < MAX_RESET_DMA_TIMES) {
+ if (reset_dma() == 0) {
+ BMA_LOG(DLOG_DEBUG, "reset dma successfully\n");
+ init_dma();
+ break;
+ }
+
+ mdelay(DELAY_BETWEEN_RESET_DMA);
+ }
+
+ spin_unlock_irqrestore(&edma_host->reg_lock, flags);
+ BMA_LOG(DLOG_DEBUG, "reset dma count=%d\n", count);
+}
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
new file mode 100644
index 000000000000..0cf449c0ae00
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_queue.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_QUEUE_H
+#define EDMA_QUEUE_H
+#include "edma_host.h"
+
+s32 check_dma_queue_state(u32 state, u32 flag);
+void set_dma_queue_sq_base_l(u32 val);
+void set_dma_queue_sq_base_h(u32 val);
+void set_dma_queue_cq_base_l(u32 val);
+void set_dma_queue_cq_base_h(u32 val);
+void reset_edma_host(struct edma_host_s *edma_host);
+int transfer_edma_host(struct edma_host_s *host, struct bma_priv_data_s *priv,
+ struct bma_dma_transfer_s *transfer);
+s32 transfer_dma_queue(struct bma_dma_transfer_s *dma_transfer);
+#endif
diff --git a/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h b/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
new file mode 100644
index 000000000000..c4e056a92bc8
--- /dev/null
+++ b/drivers/net/ethernet/huawei/bma/edma_drv/edma_reg.h
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Huawei iBMA driver.
+ * Copyright (c) 2025, Huawei Technologies Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef EDMA_REG_H
+#define EDMA_REG_H
+
+#define PORT_EP 0
+#define PORT_RP 1
+
+#define ENABLE 1
+#define DISABLE 0
+
+#define TRUE 1
+#define FALSE 0
+
+/* core0:x2/x1 core1:x1 */
+#define PCIE_CORE_NUM 2
+#define PCIE_REG_OFFSET 0x100000U
+#define PCIE_REG_SIZE 0x100000
+
+#define GEN1 0x1
+#define GEN2 0x2
+#define GEN3 0x3
+#define GEN4 0x4
+
+#define PCIE_ADDR_H_SHIFT_32 32
+#define PCIE_ADDR_L_32_MASK 0xFFFFFFFF
+
+#define AP_DMA_BIT BIT(5)
+#define AP_MASK_ALL 0x3FF
+#define AP_DMA_CHAN_REG_SIZE 0x100
+
+/********************************************************************************************/
+/* PCIE reg base */
+/********************************************************************************************/
+#define PCIE_BASE_ADDR 0x1E100000U
+#define AP_DMA_REG 0x10000U
+#define AP_IOB_TX_REG_BASE 0x0U
+#define AP_IOB_RX_REG_BASE 0x4000U
+#define AP_GLOBAL_REG_BASE 0x8000U
+
+/********************************************************************************************/
+/* PCIE AP DMA REG */
+/********************************************************************************************/
+#define PCIE_DMA_EP_INT_MSK_REG 0x24 /* DMA_EP_INT_MSK */
+#define PCIE_DMA_EP_INT_REG 0x28 /* DMA_EP_INT */
+#define PCIE_DMA_EP_INT_STS_REG 0x2C /* DMA_EP_INT_STS */
+#define PCIE_DMA_FLR_DISABLE_REG 0xA00 /* DMA_FLR_DISABLE */
+#define PCIE_DMA_QUEUE_SQ_BASE_L_0_REG 0x2000 /* DMA Queue SQ Base Address Low Register */
+#define PCIE_DMA_QUEUE_SQ_BASE_H_0_REG 0x2004 /* DMA Queue SQ Base Address High Register */
+#define PCIE_DMA_QUEUE_SQ_DEPTH_0_REG 0x2008 /* DMA Queue SQ Depth */
+#define PCIE_DMA_QUEUE_SQ_TAIL_PTR_0_REG 0x200C /* DMA Queue SQ Tail Pointer Register */
+#define PCIE_DMA_QUEUE_CQ_BASE_L_0_REG 0x2010 /* DMA Queue CQ Base Address Low Register */
+#define PCIE_DMA_QUEUE_CQ_BASE_H_0_REG 0x2014 /* DMA Queue CQ Base Address High Register */
+#define PCIE_DMA_QUEUE_CQ_DEPTH_0_REG 0x2018 /* DMA Queue CQ Depth */
+#define PCIE_DMA_QUEUE_CQ_HEAD_PTR_0_REG 0x201C /* DMA Queue CQ Head Pointer Register */
+#define PCIE_DMA_QUEUE_CTRL0_0_REG 0x2020 /* DMA Queue control Register 0 */
+#define PCIE_DMA_QUEUE_CTRL1_0_REG 0x2024 /* DMA Queue control Register 1 */
+#define PCIE_DMA_QUEUE_FSM_STS_0_REG 0x2030 /* DMA Queue FSM Status Register */
+#define PCIE_DMA_QUEUE_SQ_STS_0_REG 0x2034 /* DMA Queue SQ and CQ status Register */
+#define PCIE_DMA_QUEUE_CQ_TAIL_PTR_0_REG 0x203C /* DMA Queue CQ Tail Pointer Register */
+#define PCIE_DMA_QUEUE_INT_STS_0_REG 0x2040 /* DMA Queue Interrupt Status */
+#define PCIE_DMA_QUEUE_INT_MSK_0_REG 0x2044 /* DMA Queue Interrupt Mask Register */
+#define PCIE_DMA_QUEUE_ERR_INT_STS_0_REG 0x2048 /* DMA Queue Err Interrupt Status */
+#define PCIE_DMA_QUEUE_ERR_INT_MSK_0_REG 0x204C /* DMA Queue Err Interrupt Mask Register */
+#define PCIE_DMA_QUEUE_INT_RO_0_REG 0x206C /* DMA Queue Interrupt RO Register */
+
+/********************************************************************************************/
+/* PCIE AP_GLOBAL_REG */
+/********************************************************************************************/
+#define PCIE_CE_ENA 0x0008
+#define PCIE_UNF_ENA 0x0010
+#define PCIE_UF_ENA 0x0018
+
+#define PCIE_MSI_MASK 0x00F4
+#define PORT_INTX_ASSERT_MASK 0x01B0
+#define PORT_INTX_DEASSERT_MASK 0x01B4
+
+#define PCIE_AP_NI_ENA 0x0100
+#define PCIE_AP_CE_ENA 0x0104
+#define PCIE_AP_UNF_ENA 0x0108
+#define PCIE_AP_UF_ENA 0x010c
+#define PCIE_AP_NI_MASK 0x0110
+#define PCIE_AP_CE_MASK 0x0114
+#define PCIE_AP_UNF_MASK 0x0118
+#define PCIE_AP_UF_MASK 0x011C
+#define PCIE_AP_NI_STATUS 0x0120
+#define PCIE_AP_CE_STATUS 0x0124
+#define PCIE_AP_UNF_STATUS 0x0128
+#define PCIE_AP_UF_STATUS 0x012C
+#define PCIE_CORE_NI_ENA 0x0160
+#define PCIE_CORE_CE_ENA 0x0164
+#define PCIE_CORE_UNF_ENA 0x0168
+#define PCIE_CORE_UF_ENA 0x016c
+
+#define AP_PORT_EN_REG 0x0800
+#define AP_APB_SYN_RST 0x0810
+#define AP_AXI_SYN_RST 0x0814
+#define AP_IDLE 0x0C08
+
+/********************************************************************************************/
+/* PCIE AP_IOB_RX_COM_REG Reg */
+/********************************************************************************************/
+#define IOB_RX_AML_SNOOP 0x1AAC
+#define IOB_RX_MSI_INT_CTRL 0x1040
+
+#define IOB_RX_MSI_INT_ADDR_HIGH 0x1044
+#define IOB_RX_MSI_INT_ADDR_LOW 0x1048
+
+#define IOB_RX_PAB_SMMU_BYPASS_CTRL 0x2004
+
+#define IOB_RX_DMA_REG_REMAP_0 0x0E30
+#define IOB_RX_DMA_REG_REMAP_1 0x0E34
+
+#endif /* EDMA_REG_H */
diff --git a/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h b/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
index d1df99b0c9fd..8d284d5f6e62 100644
--- a/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
+++ b/drivers/net/ethernet/huawei/bma/include/bma_ker_intf.h
@@ -47,6 +47,17 @@ enum intr_mod {
INTR_ENABLE = 1,
};
+enum addr_type {
+ TYPE_EDMA_ADDR = 0,
+ TYPE_VETH_ADDR = 1,
+};
+
+enum pci_type_e {
+ PCI_TYPE_UNKNOWN,
+ PCI_TYPE_171x,
+ PCI_TYPE_1712
+};
+
struct bma_dma_addr_s {
dma_addr_t dma_addr;
u32 dma_data_len;
@@ -66,10 +77,28 @@ union transfer_u {
struct dmalist_transfer_s list;
};
+struct bspveth_dmal {
+ u32 chl;
+ u32 len;
+ u32 slow;
+ u32 shi;
+ u32 dlow;
+ u32 dhi;
+};
+
struct bma_dma_transfer_s {
enum dma_type_e type;
enum dma_direction_e dir;
union transfer_u transfer;
+ struct bspveth_dmal *pdmalbase_v;
+ u32 dmal_cnt;
+};
+
+struct bma_map_addr_s {
+ enum pci_type_e pci_type;
+ u32 host_number;
+ enum addr_type addr_type;
+ u32 addr;
};
int bma_intf_register_int_notifier(struct notifier_block *nb);
@@ -91,4 +120,21 @@ int bma_cdev_add_msg(void *handle, const char __user *msg, size_t msg_len);
unsigned int bma_cdev_check_recv(void *handle);
void *bma_cdev_get_wait_queue(void *handle);
int bma_intf_check_edma_supported(void);
+
+enum pci_type_e get_pci_type(void);
+void set_pci_type(enum pci_type_e type);
+
+int bma_intf_get_host_number(unsigned int *host_number);
+int bma_intf_get_map_address(enum addr_type type, phys_addr_t *addr);
+
+#define HOST_NUMBER_0 0
+#define HOST_NUMBER_1 1
+
+#define EDMA_1711_HOST0_ADDR 0x84810000
+#define VETH_1711_HOST0_ADDR 0x84820000
+#define EDMA_1712_HOST0_ADDR 0x85400000
+#define VETH_1712_HOST0_ADDR 0x85410000
+#define EDMA_1712_HOST1_ADDR 0x87400000
+#define VETH_1712_HOST1_ADDR 0x87410000
+
#endif
diff --git a/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h b/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
index 0d82ee6f7c83..745d83b431f8 100644
--- a/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
+++ b/drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h
@@ -23,7 +23,7 @@
#ifdef DRV_VERSION
#define KBOX_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define KBOX_VERSION "0.3.10"
+#define KBOX_VERSION "0.4.0"
#endif
#define UNUSED(x) (x = x)
diff --git a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
index 9d918edae703..774229ae8dd1 100644
--- a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
+++ b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.c
@@ -495,6 +495,11 @@ s32 bspveth_setup_all_tx_resources(struct bspveth_device *pvethdev)
int err = 0;
u8 *shmq_head_p = NULL;
struct bspveth_shmq_hd *shmq_head = NULL;
+ phys_addr_t veth_address = 0;
+
+ err = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (err != 0)
+ goto failed;
if (!pvethdev)
return BSP_ERR_NULL_POINTER;
@@ -526,7 +531,7 @@ s32 bspveth_setup_all_tx_resources(struct bspveth_device *pvethdev)
(struct bspveth_dmal *)((BSP_VETH_T)(shmq_head)
+ SHMDMAL_OFFSET);
pvethdev->ptx_queue[qid]->pdmalbase_p =
- (u8 *)(u64)(VETH_SHAREPOOL_BASE_INBMC +
+ (u8 *)(u64)(veth_address +
MAX_SHAREQUEUE_SIZE * qid +
SHMDMAL_OFFSET);
@@ -851,6 +856,11 @@ s32 bspveth_setup_all_rx_resources(struct bspveth_device *pvethdev)
int qid, i, err = 0;
struct bspveth_shmq_hd *shmq_head = NULL;
u8 *shmq_head_p = NULL;
+ phys_addr_t veth_address = 0;
+
+ err = bma_intf_get_map_address(TYPE_VETH_ADDR, &veth_address);
+ if (err != 0)
+ goto failed;
if (!pvethdev)
return BSP_ERR_NULL_POINTER;
@@ -885,7 +895,7 @@ s32 bspveth_setup_all_rx_resources(struct bspveth_device *pvethdev)
(struct bspveth_dmal *)((BSP_VETH_T)(shmq_head)
+ SHMDMAL_OFFSET);
pvethdev->prx_queue[qid]->pdmalbase_p =
- (u8 *)(u64)(VETH_SHAREPOOL_BASE_INBMC
+ (u8 *)(u64)(veth_address
+ MAX_SHAREQUEUE_SIZE * (qid + 1)
+ SHMDMAL_OFFSET);
memset(pvethdev->prx_queue[qid]->pdmalbase_v, 0,
@@ -1236,6 +1246,8 @@ void veth_netdev_func_init(struct net_device *dev)
{
struct tag_pcie_comm_priv *priv =
(struct tag_pcie_comm_priv *)netdev_priv(dev);
+ u32 host_number = 0;
+ int ret = 0;
/*9C:7D:A3:28:6F:F9*/
unsigned char veth_mac[ETH_ALEN] = {0x9C, 0x7D, 0xA3, 0x28, 0x6F, 0xF9};
@@ -1243,6 +1255,12 @@ void veth_netdev_func_init(struct net_device *dev)
ether_setup(dev);
+ ret = bma_intf_get_host_number(&host_number);
+ if (ret < 0) {
+ VETH_LOG(DLOG_ERROR, "bma_intf_get_host_number failed!\n");
+ return;
+ }
+
dev->netdev_ops = &veth_ops;
dev->watchdog_timeo = BSPVETH_NET_TIMEOUT;
@@ -1257,6 +1275,7 @@ void veth_netdev_func_init(struct net_device *dev)
memset(priv, 0, sizeof(struct tag_pcie_comm_priv));
strncpy(priv->net_type, MODULE_NAME, NET_TYPE_LEN);
+ veth_mac[ETH_ALEN - 1] = (host_number == 0 ? 0xF9 : 0xFB);
eth_hw_addr_set(dev, veth_mac);
VETH_LOG(DLOG_DEBUG, "set veth MAC addr OK\n");
@@ -2226,6 +2245,8 @@ s32 __start_dmalist_H(struct bspveth_rxtx_q *prxtx_queue, u32 cnt, u32 type)
dma_transfer.type = DMA_LIST;
dma_transfer.transfer.list.dma_addr =
(dma_addr_t)prxtx_queue->pdmalbase_p;
+ dma_transfer.pdmalbase_v = prxtx_queue->pdmalbase_v;
+ dma_transfer.dmal_cnt = prxtx_queue->dmal_cnt;
ret = bma_intf_start_dma(g_bspveth_dev.bma_priv, &dma_transfer);
if (ret < 0)
diff --git a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
index 242d3ec128d3..f8b7e2f8d604 100644
--- a/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
+++ b/drivers/net/ethernet/huawei/bma/veth_drv/veth_hb.h
@@ -31,7 +31,7 @@ extern "C" {
#ifdef DRV_VERSION
#define VETH_VERSION MICRO_TO_STR(DRV_VERSION)
#else
-#define VETH_VERSION "0.3.10"
+#define VETH_VERSION "0.4.0"
#endif
#define MODULE_NAME "veth"
@@ -67,7 +67,6 @@ extern "C" {
#define SYSCTL_REG_SIZE (0x1000)
#define PCIE1_REG_BASE (0x29000000)
#define PCIE1_REG_SIZE (0x1000)
-#define VETH_SHAREPOOL_BASE_INBMC (0x84820000)
#define VETH_SHAREPOOL_SIZE (0xdf000)
#define VETH_SHAREPOOL_OFFSET (0x10000)
#define MAX_SHAREQUEUE_SIZE (0x20000)
@@ -261,15 +260,6 @@ struct bspveth_dma_bd {
u32 off;
};
-struct bspveth_dmal {
- u32 chl;
- u32 len;
- u32 slow;
- u32 shi;
- u32 dlow;
- u32 dhi;
-};
-
struct bspveth_rxtx_q {
#ifndef VETH_BMC
struct bspveth_dma_bd *pbdbase_v;
--
2.33.0
2
1

[openeuler:openEuler-1.0-LTS 1753/1753] net/netfilter/nf_nat_proto.c:56:6: warning: no previous prototype for 'nf_nat_csum_recalc'
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 748957057cef2d3b3e35d749c9a1ade66e2b5e73
commit: 83abe3a3b85762720192809ac8695ff9255cfd23 [1753/1753] netfilter: nat: remove csum_recalc hook
config: x86_64-buildonly-randconfig-2002-20250806 (https://download.01.org/0day-ci/archive/20250809/202508091141.LQ39llkM-lkp@…)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508091141.LQ39llkM-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/202508091141.LQ39llkM-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> net/netfilter/nf_nat_proto.c:56:6: warning: no previous prototype for 'nf_nat_csum_recalc' [-Wmissing-prototypes]
56 | void nf_nat_csum_recalc(struct sk_buff *skb,
| ^~~~~~~~~~~~~~~~~~
vim +/nf_nat_csum_recalc +56 net/netfilter/nf_nat_proto.c
55
> 56 void nf_nat_csum_recalc(struct sk_buff *skb,
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1753/1753] kernel/sched/debug.o: warning: objtool: missing symbol for section .text.unlikely
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 748957057cef2d3b3e35d749c9a1ade66e2b5e73
commit: acfa0f545c7dd43f959c28e8ab4b139c927ba387 [1753/1753] svm: reduce log of run queue and atomic->atomic64
config: x86_64-buildonly-randconfig-2002-20250806 (https://download.01.org/0day-ci/archive/20250809/202508090931.8saWh06I-lkp@…)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508090931.8saWh06I-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/202508090931.8saWh06I-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/sched/debug.c:797:6: warning: no previous prototype for 'sysrq_sched_debug_tidy' [-Wmissing-prototypes]
797 | void sysrq_sched_debug_tidy(void)
| ^~~~~~~~~~~~~~~~~~~~~~
>> kernel/sched/debug.o: warning: objtool: missing symbol for section .text.unlikely
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[PATCH OLK-6.6 v2] mm/mem_sampling: preserve kernel subsystem SPE state across perf sampling
by Ze Zuo 09 Aug '25
by Ze Zuo 09 Aug '25
09 Aug '25
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/ICRXXI
CVE: NA
--------------------------------
Ensure proper save/restore of SPE state for kernel subsystems (NUMA
balancing, DAMON etc.) when perf SPE sampling is enabled/disabled:
- Suspend subsystem memory sampling during perf SPE operation
- Restore original configurations when perf sampling stops
Fixes: 390982f28c57 ("mm/mem_sampling: Add sysctl control for NUMA balancing integration")
Signed-off-by: Ze Zuo <zuoze1(a)huawei.com>
---
changes since v1:
-- add Fixes tag.
mm/mem_sampling.c | 124 ++++++++++++++++++++++++++--------------------
1 file changed, 69 insertions(+), 55 deletions(-)
diff --git a/mm/mem_sampling.c b/mm/mem_sampling.c
index 74f95e4611fe..8483ebe1a83c 100644
--- a/mm/mem_sampling.c
+++ b/mm/mem_sampling.c
@@ -41,8 +41,11 @@ DEFINE_PER_CPU(enum arm_spe_user_e, arm_spe_user);
EXPORT_PER_CPU_SYMBOL_GPL(arm_spe_user);
enum mem_sampling_saved_state_e {
- MEM_SAMPLING_STATE_ENABLE,
MEM_SAMPLING_STATE_DISABLE,
+ MEM_SAMPLING_STATE_ENABLE,
+ MEM_SAMPLING_STATE_NUMA_ENABLE,
+ MEM_SAMPLING_STATE_DAMON_ENABLE,
+ MEM_SAMPLING_STATE_NUM_DAMON_ENABLE,
MEM_SAMPLING_STATE_EMPTY,
};
enum mem_sampling_saved_state_e mem_sampling_saved_state = MEM_SAMPLING_STATE_EMPTY;
@@ -416,17 +419,26 @@ static void __set_mem_sampling_state(bool enabled)
}
}
+static enum mem_sampling_saved_state_e get_mem_sampling_saved_state(void)
+{
+ if (static_branch_likely(&mm_damon_mem_sampling) &&
+ static_branch_likely(&sched_numabalancing_mem_sampling))
+ return MEM_SAMPLING_STATE_NUM_DAMON_ENABLE;
+ if (static_branch_likely(&mm_damon_mem_sampling))
+ return MEM_SAMPLING_STATE_DAMON_ENABLE;
+ if (static_branch_likely(&sched_numabalancing_mem_sampling))
+ return MEM_SAMPLING_STATE_NUMA_ENABLE;
+ if (static_branch_likely(&mem_sampling_access_hints))
+ return MEM_SAMPLING_STATE_ENABLE;
+
+ return MEM_SAMPLING_STATE_DISABLE;
+}
+
void set_mem_sampling_state(bool enabled)
{
if (!mem_sampling_ops.sampling_start || !mm_spe_enabled())
return;
- if (mem_sampling_saved_state != MEM_SAMPLING_STATE_EMPTY) {
- mem_sampling_saved_state = enabled ? MEM_SAMPLING_STATE_ENABLE :
- MEM_SAMPLING_STATE_DISABLE;
- return;
- }
-
if (enabled)
sysctl_mem_sampling_mode = MEM_SAMPLING_NORMAL;
else
@@ -434,10 +446,45 @@ void set_mem_sampling_state(bool enabled)
__set_mem_sampling_state(enabled);
}
+static int set_state(int state)
+{
+ if (mem_sampling_saved_state != MEM_SAMPLING_STATE_EMPTY) {
+ mem_sampling_saved_state = state;
+ return -EINVAL;
+ }
+ switch (state) {
+ case 0:
+ set_mem_sampling_state(false);
+ break;
+ case 1:
+ set_mem_sampling_state(false);
+ set_mem_sampling_state(true);
+ break;
+ case 2:
+ set_mem_sampling_state(false);
+ set_mem_sampling_state(true);
+ set_numabalancing_mem_sampling_state(true);
+ break;
+ case 3:
+ set_mem_sampling_state(false);
+ set_mem_sampling_state(true);
+ set_damon_mem_sampling_state(true);
+ break;
+ case 4:
+ set_mem_sampling_state(true);
+ set_numabalancing_mem_sampling_state(true);
+ set_damon_mem_sampling_state(true);
+ break;
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
void mem_sampling_user_switch_process(enum user_switch_type type)
{
- bool state, mm_spe_is_perf_user = false;
- int cpu;
+ bool mm_spe_is_perf_user = false;
+ int cpu, hints;
if (type >= USER_SWITCH_TYPE_MAX) {
pr_err("user switch type error.\n");
@@ -456,26 +503,27 @@ void mem_sampling_user_switch_process(enum user_switch_type type)
if (mem_sampling_saved_state != MEM_SAMPLING_STATE_EMPTY)
return;
- if (static_branch_unlikely(&mem_sampling_access_hints))
- mem_sampling_saved_state = MEM_SAMPLING_STATE_ENABLE;
+ hints = get_mem_sampling_saved_state();
+ set_state(0);
+
+ if (hints)
+ mem_sampling_saved_state = hints;
else
mem_sampling_saved_state = MEM_SAMPLING_STATE_DISABLE;
- pr_debug("user switch away from mem_sampling, %s is saved, set to disable.\n",
- mem_sampling_saved_state ? "disabled" : "enabled");
+ pr_debug("user switch away from mem_sampling, %d is saved, set to disable.\n",
+ mem_sampling_saved_state);
- set_mem_sampling_state(false);
} else {
/* If the state is not backed up, do not restore it */
if (mem_sampling_saved_state == MEM_SAMPLING_STATE_EMPTY || mm_spe_is_perf_user)
return;
- state = (mem_sampling_saved_state == MEM_SAMPLING_STATE_ENABLE) ? true : false;
- set_mem_sampling_state(state);
+ hints = mem_sampling_saved_state;
mem_sampling_saved_state = MEM_SAMPLING_STATE_EMPTY;
+ set_state(hints);
- pr_debug("user switch back to mem_sampling, set to saved %s.\n",
- state ? "enalbe" : "disable");
+ pr_debug("user switch back to mem_sampling, set to saved %d.\n", hints);
}
}
EXPORT_SYMBOL_GPL(mem_sampling_user_switch_process);
@@ -488,15 +536,7 @@ static int proc_mem_sampling_enable(struct ctl_table *table, int write,
int err;
int state = 0;
- if (static_branch_likely(&mem_sampling_access_hints))
- state = 1;
- if (static_branch_likely(&sched_numabalancing_mem_sampling))
- state = 2;
- if (static_branch_likely(&mm_damon_mem_sampling))
- state = 3;
- if (static_branch_likely(&mm_damon_mem_sampling) &&
- static_branch_likely(&sched_numabalancing_mem_sampling))
- state = 4;
+ state = get_mem_sampling_saved_state();
if (write && !capable(CAP_SYS_ADMIN))
return -EPERM;
@@ -508,34 +548,8 @@ static int proc_mem_sampling_enable(struct ctl_table *table, int write,
err = proc_dointvec_minmax(&t, write, buffer, lenp, ppos);
if (err < 0)
return err;
- if (write) {
- switch (state) {
- case 0:
- set_mem_sampling_state(false);
- break;
- case 1:
- set_mem_sampling_state(false);
- set_mem_sampling_state(true);
- break;
- case 2:
- set_mem_sampling_state(false);
- set_mem_sampling_state(true);
- set_numabalancing_mem_sampling_state(true);
- break;
- case 3:
- set_mem_sampling_state(false);
- set_mem_sampling_state(true);
- set_damon_mem_sampling_state(true);
- break;
- case 4:
- set_mem_sampling_state(true);
- set_numabalancing_mem_sampling_state(true);
- set_damon_mem_sampling_state(true);
- break;
- default:
- return -EINVAL;
- }
- }
+ if (write)
+ err = set_state(state);
return err;
}
--
2.33.0
2
1

[openeuler:openEuler-1.0-LTS 1753/1753] include/linux/string.h:249:16: warning: '__builtin_strncpy' accessing 80 bytes at offsets 100 and 36 may overlap up to 0 bytes at offset [9223372036854775807, -9223372036854775808]
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 748957057cef2d3b3e35d749c9a1ade66e2b5e73
commit: a24ec7d8d3462ba48b4bd932960c397d92de8782 [1753/1753] ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set
config: x86_64-buildonly-randconfig-2002-20250806 (https://download.01.org/0day-ci/archive/20250809/202508090752.oTu2Do8L-lkp@…)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508090752.oTu2Do8L-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/202508090752.oTu2Do8L-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from include/linux/bitmap.h:9,
from include/linux/cpumask.h:12,
from arch/x86/include/asm/cpumask.h:5,
from arch/x86/include/asm/msr.h:11,
from arch/x86/include/asm/processor.h:21,
from arch/x86/include/asm/cpufeature.h:5,
from arch/x86/include/asm/thread_info.h:53,
from include/linux/thread_info.h:38,
from arch/x86/include/asm/preempt.h:7,
from include/linux/preempt.h:81,
from include/linux/spinlock.h:51,
from include/linux/seqlock.h:36,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/module.h:11,
from sound/soc/soc-generic-dmaengine-pcm.c:6:
In function 'strncpy',
inlined from 'dmaengine_pcm_new' at sound/soc/soc-generic-dmaengine-pcm.c:318:4:
>> include/linux/string.h:249:16: warning: '__builtin_strncpy' accessing 80 bytes at offsets 100 and 36 may overlap up to 0 bytes at offset [9223372036854775807, -9223372036854775808] [-Wrestrict]
249 | return __builtin_strncpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/__builtin_strncpy +249 include/linux/string.h
6974f0c4555e28 Daniel Micay 2017-07-12 240
6974f0c4555e28 Daniel Micay 2017-07-12 241 #if !defined(__NO_FORTIFY) && defined(__OPTIMIZE__) && defined(CONFIG_FORTIFY_SOURCE)
6974f0c4555e28 Daniel Micay 2017-07-12 242 __FORTIFY_INLINE char *strncpy(char *p, const char *q, __kernel_size_t size)
6974f0c4555e28 Daniel Micay 2017-07-12 243 {
6974f0c4555e28 Daniel Micay 2017-07-12 244 size_t p_size = __builtin_object_size(p, 0);
6974f0c4555e28 Daniel Micay 2017-07-12 245 if (__builtin_constant_p(size) && p_size < size)
6974f0c4555e28 Daniel Micay 2017-07-12 246 __write_overflow();
6974f0c4555e28 Daniel Micay 2017-07-12 247 if (p_size < size)
6974f0c4555e28 Daniel Micay 2017-07-12 248 fortify_panic(__func__);
6974f0c4555e28 Daniel Micay 2017-07-12 @249 return __builtin_strncpy(p, q, size);
6974f0c4555e28 Daniel Micay 2017-07-12 250 }
6974f0c4555e28 Daniel Micay 2017-07-12 251
:::::: The code at line 249 was first introduced by commit
:::::: 6974f0c4555e285ab217cee58b6e874f776ff409 include/linux/string.h: add the option of fortified string.h functions
:::::: TO: Daniel Micay <danielmicay(a)gmail.com>
:::::: CC: Linus Torvalds <torvalds(a)linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
Changes since V1:
Fixed the KABI broken warning.
Hou Tao (1):
kernfs: also call kernfs_set_rev() for positive dentry
Ian Kent (6):
kernfs: add a revision to identify directory node changes
kernfs: use VFS negative dentry caching
kernfs: switch kernfs to use an rwsem
kernfs: use i_lock to protect concurrent inode updates
kernfs: dont call d_splice_alias() under kernfs node lock
kernfs: don't create a negative dentry if inactive node exists
fs/kernfs/dir.c | 165 +++++++++++++++++++++---------------
fs/kernfs/file.c | 4 +-
fs/kernfs/inode.c | 25 ++++--
fs/kernfs/kernfs-internal.h | 24 +++++-
fs/kernfs/mount.c | 12 +--
fs/kernfs/symlink.c | 4 +-
include/linux/kernfs.h | 7 +-
7 files changed, 150 insertions(+), 91 deletions(-)
--
2.39.2
2
8

[openeuler:openEuler-1.0-LTS 1753/1753] drivers/staging/erofs/unzip_vle_lz4.o: warning: objtool: missing symbol for section .text
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 748957057cef2d3b3e35d749c9a1ade66e2b5e73
commit: 2e59f7a6876bfa6adca4ec9180ab3945e6ede7e1 [1753/1753] staging: erofs: compressed_pages should not be accessed again after freed
config: x86_64-buildonly-randconfig-2002-20250806 (https://download.01.org/0day-ci/archive/20250809/202508090402.PMJhGfxB-lkp@…)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508090402.PMJhGfxB-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/202508090402.PMJhGfxB-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/staging/erofs/unzip_vle_lz4.o: warning: objtool: missing symbol for section .text
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
Kernfs performance optimization.
Hou Tao (1):
kernfs: also call kernfs_set_rev() for positive dentry
Ian Kent (6):
kernfs: add a revision to identify directory node changes
kernfs: use VFS negative dentry caching
kernfs: switch kernfs to use an rwsem
kernfs: use i_lock to protect concurrent inode updates
kernfs: dont call d_splice_alias() under kernfs node lock
kernfs: don't create a negative dentry if inactive node exists
fs/kernfs/dir.c | 165 +++++++++++++++++++++---------------
fs/kernfs/file.c | 4 +-
fs/kernfs/inode.c | 25 ++++--
fs/kernfs/kernfs-internal.h | 24 +++++-
fs/kernfs/mount.c | 12 +--
fs/kernfs/symlink.c | 4 +-
include/linux/kernfs.h | 7 +-
7 files changed, 150 insertions(+), 91 deletions(-)
--
2.39.2
2
8

[PATCH OLK-5.10 1/7] kernfs: add a revision to identify directory node changes
by Zizhi Wo 09 Aug '25
by Zizhi Wo 09 Aug '25
09 Aug '25
From: Ian Kent <raven(a)themaw.net>
mainline inclusion
from mainline-v5.15-rc1
commit 895adbec302e92086359e6fd92611ac3be6d92c3
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/ICRD6W
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Add a revision counter to kernfs directory nodes so it can be used
to detect if a directory node has changed during negative dentry
revalidation.
There's an assumption that sizeof(unsigned long) <= sizeof(pointer)
on all architectures and as far as I know that assumption holds.
So adding a revision counter to the struct kernfs_elem_dir variant of
the kernfs_node type union won't increase the size of the kernfs_node
struct. This is because struct kernfs_elem_dir is at least
sizeof(pointer) smaller than the largest union variant. It's tempting
to make the revision counter a u64 but that would increase the size of
kernfs_node on archs where sizeof(pointer) is smaller than the revision
counter.
Reviewed-by: Miklos Szeredi <mszeredi(a)redhat.com>
Signed-off-by: Ian Kent <raven(a)themaw.net>
Link: https://lore.kernel.org/r/162642769895.63632.8356662784964509867.stgit@web.…
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zizhi Wo <wozizhi(a)huawei.com>
---
fs/kernfs/dir.c | 2 ++
fs/kernfs/kernfs-internal.h | 19 +++++++++++++++++++
include/linux/kernfs.h | 5 +++++
3 files changed, 26 insertions(+)
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index 0ba056e06e48..9bc73c8b6e3f 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -380,6 +380,7 @@ static int kernfs_link_sibling(struct kernfs_node *kn)
/* successfully added, account subdir number */
if (kernfs_type(kn) == KERNFS_DIR)
kn->parent->dir.subdirs++;
+ kernfs_inc_rev(kn->parent);
return 0;
}
@@ -402,6 +403,7 @@ static bool kernfs_unlink_sibling(struct kernfs_node *kn)
if (kernfs_type(kn) == KERNFS_DIR)
kn->parent->dir.subdirs--;
+ kernfs_inc_rev(kn->parent);
rb_erase(&kn->rb, &kn->parent->dir.children);
RB_CLEAR_NODE(&kn->rb);
diff --git a/fs/kernfs/kernfs-internal.h b/fs/kernfs/kernfs-internal.h
index 7ee97ef59184..6a8d0ca26d03 100644
--- a/fs/kernfs/kernfs-internal.h
+++ b/fs/kernfs/kernfs-internal.h
@@ -81,6 +81,25 @@ static inline struct kernfs_node *kernfs_dentry_node(struct dentry *dentry)
return d_inode(dentry)->i_private;
}
+static inline void kernfs_set_rev(struct kernfs_node *parent,
+ struct dentry *dentry)
+{
+ dentry->d_time = parent->dir.rev;
+}
+
+static inline void kernfs_inc_rev(struct kernfs_node *parent)
+{
+ parent->dir.rev++;
+}
+
+static inline bool kernfs_dir_changed(struct kernfs_node *parent,
+ struct dentry *dentry)
+{
+ if (parent->dir.rev != dentry->d_time)
+ return true;
+ return false;
+}
+
extern const struct super_operations kernfs_sops;
extern struct kmem_cache *kernfs_node_cache, *kernfs_iattrs_cache;
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h
index e2aa4910365d..236240a17017 100644
--- a/include/linux/kernfs.h
+++ b/include/linux/kernfs.h
@@ -99,6 +99,11 @@ struct kernfs_elem_dir {
* better directly in kernfs_node but is here to save space.
*/
struct kernfs_root *root;
+ /*
+ * Monotonic revision counter, used to identify if a directory
+ * node has changed during negative dentry revalidation.
+ */
+ unsigned long rev;
};
struct kernfs_elem_symlink {
--
2.39.2
2
7

[openeuler:openEuler-1.0-LTS 1753/1753] net/rxrpc/local_object.c:152:20: warning: this statement may fall through
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 748957057cef2d3b3e35d749c9a1ade66e2b5e73
commit: 37a675e768d7606fe8a53e0c459c9b53e121ac20 [1753/1753] rxrpc: Fix transport sockopts to get IPv4 errors on an IPv6 socket
config: x86_64-buildonly-randconfig-2002-20250806 (https://download.01.org/0day-ci/archive/20250809/202508090248.C7MgyZmS-lkp@…)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508090248.C7MgyZmS-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/202508090248.C7MgyZmS-lkp@intel.com/
All warnings (new ones prefixed by >>):
net/rxrpc/local_object.c: In function 'rxrpc_open_socket':
>> net/rxrpc/local_object.c:152:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
152 | if (ret < 0) {
| ^
net/rxrpc/local_object.c:161:9: note: here
161 | case AF_INET:
| ^~~~
vim +152 net/rxrpc/local_object.c
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 104
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 105 /*
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 106 * create the local socket
4f95dd78a77edc net/rxrpc/local_object.c David Howells 2016-04-04 107 * - must be called with rxrpc_local_mutex locked
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 108 */
2baec2c3f854d1 net/rxrpc/local_object.c David Howells 2017-05-24 109 static int rxrpc_open_socket(struct rxrpc_local *local, struct net *net)
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 110 {
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 111 struct sock *sock;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 112 int ret, opt;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 113
75b54cb57ca34c net/rxrpc/local_object.c David Howells 2016-09-13 114 _enter("%p{%d,%d}",
75b54cb57ca34c net/rxrpc/local_object.c David Howells 2016-09-13 115 local, local->srx.transport_type, local->srx.transport.family);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 116
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 117 /* create a socket to represent the local endpoint */
2baec2c3f854d1 net/rxrpc/local_object.c David Howells 2017-05-24 118 ret = sock_create_kern(net, local->srx.transport.family,
aaa31cbc667333 net/rxrpc/local_object.c David Howells 2016-09-13 119 local->srx.transport_type, 0, &local->socket);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 120 if (ret < 0) {
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 121 _leave(" = %d [socket]", ret);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 122 return ret;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 123 }
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 124
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 125 /* if a local address was supplied then bind it */
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 126 if (local->srx.transport_len > sizeof(sa_family_t)) {
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 127 _debug("bind");
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 128 ret = kernel_bind(local->socket,
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 129 (struct sockaddr *)&local->srx.transport,
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 130 local->srx.transport_len);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 131 if (ret < 0) {
4f95dd78a77edc net/rxrpc/local_object.c David Howells 2016-04-04 132 _debug("bind failed %d", ret);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 133 goto error;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 134 }
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 135 }
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 136
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 137 switch (local->srx.transport.family) {
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 138 case AF_INET6:
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 139 /* we want to receive ICMPv6 errors */
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 140 opt = 1;
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 141 ret = kernel_setsockopt(local->socket, SOL_IPV6, IPV6_RECVERR,
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 142 (char *) &opt, sizeof(opt));
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 143 if (ret < 0) {
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 144 _debug("setsockopt failed");
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 145 goto error;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 146 }
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 147
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 148 /* we want to set the don't fragment bit */
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 149 opt = IPV6_PMTUDISC_DO;
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 150 ret = kernel_setsockopt(local->socket, SOL_IPV6, IPV6_MTU_DISCOVER,
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 151 (char *) &opt, sizeof(opt));
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 @152 if (ret < 0) {
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 153 _debug("setsockopt failed");
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 154 goto error;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 155 }
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 156
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 157 /* Fall through and set IPv4 options too otherwise we don't get
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 158 * errors from IPv4 packets sent through the IPv6 socket.
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 159 */
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 160
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 161 case AF_INET:
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 162 /* we want to receive ICMP errors */
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 163 opt = 1;
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 164 ret = kernel_setsockopt(local->socket, SOL_IP, IP_RECVERR,
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 165 (char *) &opt, sizeof(opt));
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 166 if (ret < 0) {
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 167 _debug("setsockopt failed");
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 168 goto error;
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 169 }
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 170
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 171 /* we want to set the don't fragment bit */
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 172 opt = IP_PMTUDISC_DO;
37a675e768d760 net/rxrpc/local_object.c David Howells 2018-09-27 173 ret = kernel_setsockopt(local->socket, SOL_IP, IP_MTU_DISCOVER,
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 174 (char *) &opt, sizeof(opt));
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 175 if (ret < 0) {
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 176 _debug("setsockopt failed");
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 177 goto error;
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 178 }
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 179
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 180 /* We want receive timestamps. */
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 181 opt = 1;
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 182 ret = kernel_setsockopt(local->socket, SOL_SOCKET, SO_TIMESTAMPNS,
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 183 (char *)&opt, sizeof(opt));
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 184 if (ret < 0) {
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 185 _debug("setsockopt failed");
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 186 goto error;
b604dd9883f783 net/rxrpc/local_object.c David Howells 2018-09-27 187 }
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 188 break;
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 189
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 190 default:
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 191 BUG();
f2aeed3a591ff2 net/rxrpc/local_object.c David Howells 2018-05-10 192 }
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 193
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 194 /* set the socket up */
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 195 sock = local->socket->sk;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 196 sock->sk_user_data = local;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 197 sock->sk_data_ready = rxrpc_data_ready;
abe89ef0ed1a50 net/rxrpc/local_object.c David Howells 2016-04-04 198 sock->sk_error_report = rxrpc_error_report;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 199 _leave(" = 0");
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 200 return 0;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 201
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 202 error:
91cf45f02af5c8 net/rxrpc/ar-local.c Trond Myklebust 2007-11-12 203 kernel_sock_shutdown(local->socket, SHUT_RDWR);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 204 local->socket->sk->sk_user_data = NULL;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 205 sock_release(local->socket);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 206 local->socket = NULL;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 207
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 208 _leave(" = %d", ret);
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 209 return ret;
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 210 }
17926a79320afa net/rxrpc/ar-local.c David Howells 2007-04-26 211
:::::: The code at line 152 was first introduced by commit
:::::: 17926a79320afa9b95df6b977b40cca6d8713cea [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both
:::::: TO: David Howells <dhowells(a)redhat.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 2662/2662] drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 9f11838de785067991187f7d0aa9b340abfba381
commit: 97a2bb6ece556f3882263ee8df2b77f10c511311 [2662/2662] SCSI: Linkdata: Supports Linkdata HBA/RAID Controllers
config: x86_64-randconfig-121-20250809 (https://download.01.org/0day-ci/archive/20250809/202508090640.BEtBteXt-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508090640.BEtBteXt-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/202508090640.BEtBteXt-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le64
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le64
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le64
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le64
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le16
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1795:17: sparse: sparse: cast to restricted __le32
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le32
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le32
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le32
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le16
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le32
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1815:17: sparse: sparse: cast to restricted __le64
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2249:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int length @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2249:33: sparse: expected unsigned int length
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2249:33: sparse: got restricted __le32 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2250:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long addr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2250:31: sparse: expected unsigned long long addr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2250:31: sparse: got restricted __le64 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2376:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long virtDiskLba @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2376:27: sparse: expected unsigned long long virtDiskLba
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2376:27: sparse: got restricted __le64 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2377:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int numBlocks @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2377:25: sparse: expected unsigned int numBlocks
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2377:25: sparse: got restricted __le32 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3058:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int numLba @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3058:28: sparse: expected unsigned int numLba
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3058:28: sparse: got restricted __le32 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3062:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int sLbaHi @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3062:28: sparse: expected unsigned int sLbaHi
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3062:28: sparse: got restricted __le32 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3064:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int sLbaLo @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3064:28: sparse: expected unsigned int sLbaLo
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3064:28: sparse: got restricted __le32 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3066:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short cID @@ got restricted __le16 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3066:32: sparse: expected unsigned short cID
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:3066:32: sparse: got restricted __le16 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2095:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int length @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2095:25: sparse: expected unsigned int length
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2095:25: sparse: got restricted __le32 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2096:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long addr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2096:23: sparse: expected unsigned long long addr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2096:23: sparse: got restricted __le64 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2119:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long addr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2119:23: sparse: expected unsigned long long addr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2119:23: sparse: got restricted __le64 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2868:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long dataBaseAddr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2868:36: sparse: expected unsigned long long dataBaseAddr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2868:36: sparse: got restricted __le64 [usertype]
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2869:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int dataBufLenDWAlign:24 @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2869:41: sparse: expected unsigned int dataBufLenDWAlign:24
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2869:41: sparse: got restricted __le32 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2874:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long dataBaseAddr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2874:36: sparse: expected unsigned long long dataBaseAddr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2874:36: sparse: got restricted __le64 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2875:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int dataBufLenDWAlign:24 @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2875:41: sparse: expected unsigned int dataBufLenDWAlign:24
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2875:41: sparse: got restricted __le32 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2964:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int dataBufLenDWAlign:24 @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2964:41: sparse: expected unsigned int dataBufLenDWAlign:24
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2964:41: sparse: got restricted __le32 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2966:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long dataBaseAddr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2966:36: sparse: expected unsigned long long dataBaseAddr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2966:36: sparse: got restricted __le64 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2971:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int dataBufLenDWAlign:24 @@ got restricted __le32 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2971:41: sparse: expected unsigned int dataBufLenDWAlign:24
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2971:41: sparse: got restricted __le32 [usertype]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2973:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long dataBaseAddr @@ got restricted __le64 [usertype] @@
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2973:36: sparse: expected unsigned long long dataBaseAddr
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:2973:36: sparse: got restricted __le64 [usertype]
vim +1795 drivers/scsi/linkdata/ps3stor/ps3_scsih.c
1782
1783 static void ps3_scsih_print_hw_req(struct ps3_cmd *cmd, unsigned char log_level)
1784 {
1785 struct IODT_V1 *req = NULL;
1786 struct ps3_pd_entry *pd_entry =
1787 (struct ps3_pd_entry *)cmd->io_attr.pd_entry;
1788 if (pd_entry == NULL)
1789 return;
1790 ps3_scsih_print_req_head(cmd, log_level);
1791 switch (pd_entry->dev_type) {
1792 case PS3_DEV_TYPE_SAS_HDD:
1793 case PS3_DEV_TYPE_SAS_SSD:
1794 req = &cmd->req_frame->hwReq.sasReqFrame;
> 1795 LOG_LEVEL(log_level,
1796 "hno:%u cmdProto:%d cmdType:%d\n"
1797 "\tcmdLen:%d dataAddr:0x%llx sgeMode:%d\n"
1798 "\tdirect:%d function:%d phyDiskID:%d\n"
1799 "\treqFrameID:%d CmdWordType:%d cmdDir:%d\n"
1800 "\tdataBufLenDWAlign:0x%x iuSrc:%d sataCtl:%d\n",
1801 PS3_HOST(cmd->instance), req->protocolType,
1802 req->frameType, le32_to_cpu(req->cmdLen),
1803 le64_to_cpu(req->dataBaseAddr), req->dmaCfg.sgMode,
1804 req->commonWord.direct, req->commonWord.function,
1805 le16_to_cpu(req->commonWord.phyDiskID),
1806 le16_to_cpu(req->commonWord.reqFrameID),
1807 req->commonWord.type, req->cmdDir,
1808 le32_to_cpu(req->dataBufLenDWAlign), req->iuSrc,
1809 req->sasCtl);
1810 ps3_scsih_print_cdb(req->B.cdb);
1811 break;
1812 case PS3_DEV_TYPE_SATA_HDD:
1813 case PS3_DEV_TYPE_SATA_SSD:
1814 req = &cmd->req_frame->hwReq.sasReqFrame;
1815 LOG_LEVEL(log_level,
1816 "hno:%u cmdProto:%d cmdType:%d\n"
1817 "\tdataAddr:0x%llx sgeMode:%d\n"
1818 "\tdirect:%d function:%d phyDiskID:%d\n"
1819 "\treqFrameID:%d CmdWordType:%d cmdDir:%d\n"
1820 "\tdataBufLenDWAlign:0x%x lba:0x%llx\n"
1821 "\topCode:0x%llx iuSrc:%d sataCtl:%d\n",
1822 PS3_HOST(cmd->instance), req->protocolType,
1823 req->frameType, le64_to_cpu(req->dataBaseAddr),
1824 req->dmaCfg.sgMode, req->commonWord.direct,
1825 req->commonWord.function,
1826 le16_to_cpu(req->commonWord.phyDiskID),
1827 le16_to_cpu(req->commonWord.reqFrameID),
1828 req->commonWord.type, req->cmdDir,
1829 le32_to_cpu(req->dataBufLenDWAlign),
1830 le64_to_cpu(req->C.lba),
1831 (unsigned long long)req->C.opCode, req->iuSrc,
1832 req->sataCtl);
1833 break;
1834 case PS3_DEV_TYPE_NVME_SSD:
1835 break;
1836 default:
1837 LOG_LEVEL(log_level, "hno:%u dev_type:%d\n",
1838 PS3_HOST(cmd->instance), pd_entry->dev_type);
1839 break;
1840 }
1841 }
1842
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10] BUILD REGRESSION e7c72e21baba96c3f061e3ce5deed38e2b55ec0d
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-5.10
branch HEAD: e7c72e21baba96c3f061e3ce5deed38e2b55ec0d !17486 net: atm: fix use after free in lec_send()
Error/Warning (recently discovered and may have been fixed):
block/bfq-cgroup.c:1427:6: warning: no previous prototype for 'bfqg_and_blkg_get' [-Wmissing-prototypes]
block/bfq-cgroup.c:1459:6: warning: no previous prototype for function 'bfqg_and_blkg_get' [-Wmissing-prototypes]
block/bfq-cgroup.c:692: warning: Excess function parameter 'blkcg' description in '__bfq_bic_change_cgroup'
block/bfq-cgroup.c:692: warning: Function parameter or member 'bfqg' not described in '__bfq_bic_change_cgroup'
crypto/af_alg.c:742: warning: Function parameter or member 'min' not described in 'af_alg_wait_for_data'
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:432:6: error: no previous prototype for function 'sxe_debugfs_entries_init' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:459:6: error: no previous prototype for function 'sxe_debugfs_entries_exit' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:465:6: error: no previous prototype for function 'sxe_debugfs_init' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:470:6: error: no previous prototype for function 'sxe_debugfs_exit' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2022:5: error: no previous prototype for function 'sxe_reg_test' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2644:5: error: no previous prototype for function 'sxe_phys_id_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:230:6: error: no previous prototype for function 'sxe_hw_no_snoop_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:6: error: no previous prototype for function 'sxe_hw_uc_addr_pool_del' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:5: error: no previous prototype for function 'sxe_hw_uc_addr_pool_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:5: error: no previous prototype for function 'sxe_hw_nic_reset' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:6: error: no previous prototype for function 'sxe_hw_pf_rst_done_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:5: error: no previous prototype for function 'sxe_hw_pending_irq_read_clear' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:6: error: no previous prototype for function 'sxe_hw_pending_irq_write_clear' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:5: error: no previous prototype for function 'sxe_hw_irq_cause_get' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:6: error: no previous prototype for function 'sxe_hw_ring_irq_auto_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:6: error: no previous prototype for function 'sxe_hw_irq_general_reg_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:5: error: no previous prototype for function 'sxe_hw_irq_general_reg_get' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:6: error: no previous prototype for function 'sxe_hw_event_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:6: error: no previous prototype for function 'sxe_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:6: error: no previous prototype for function 'sxe_hw_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:6: 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:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:6: error: no previous prototype for function 'sxe_hw_specific_irq_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for function 'sxe_hw_all_irq_disable' [-Werror,-Wmissing-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_irq.c:136:5: error: no previous prototype for function 'sxe_msi_irq_init' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:182:6: error: no previous prototype for function 'sxe_disable_dcb' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:212:6: error: no previous prototype for function 'sxe_disable_rss' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:729:6: error: no previous prototype for function 'sxe_lsc_irq_handler' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:745:6: error: no previous prototype for function 'sxe_mailbox_irq_handler' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c:70:6: error: no previous prototype for function 'sxe_allow_inval_mac' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_phy.c:733:5: error: no previous prototype for function 'sxe_multispeed_sfp_link_configure' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_rx_proc.c:1431:6: error: no previous prototype for function 'sxe_headers_cleanup' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_rx_proc.c:1569:6: error: no previous prototype for function 'sxe_rx_buffer_page_offset_update' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_sriov.c:1552:6: error: no previous prototype for function 'sxe_set_vf_link_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_sriov.c:766:6: error: variable 'ret' set but not used [-Werror,-Wunused-but-set-variable]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_xdp.c:403:6: error: no previous prototype for function 'sxe_txrx_ring_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:160:6: error: no previous prototype for function 'sxevf_hw_stop' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:187:6: error: no previous prototype for function 'sxevf_msg_write' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:196:5: error: no previous prototype for function 'sxevf_msg_read' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:206:5: error: no previous prototype for function 'sxevf_mailbox_read' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:211:6: error: no previous prototype for function 'sxevf_mailbox_write' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:216:6: error: no previous prototype for function 'sxevf_pf_req_irq_trigger' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:221:6: error: no previous prototype for function 'sxevf_pf_ack_irq_trigger' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:226:6: error: no previous prototype for function 'sxevf_event_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:245:6: error: no previous prototype for function 'sxevf_irq_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:251:6: error: no previous prototype for function 'sxevf_irq_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:259:6: error: no previous prototype for function 'sxevf_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:313:6: error: no previous prototype for function 'sxevf_hw_reset' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:324:5: error: no previous prototype for function 'sxevf_link_state_get' [-Werror,-Wmissing-prototypes]
Unverified Error/Warning (likely false positive, kindly check if interested):
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.o: warning: objtool: acquire_queue() falls through to next function asan.module_ctor()
drivers/gpu/drm/vmwgfx/ttm_object.c:60: error: Cannot parse struct or union!
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-defconfig
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- 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_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_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_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_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- 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_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
|-- arm64-randconfig-002-20250808
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:no-previous-prototype-for-bfqg_and_blkg_get
|-- arm64-randconfig-003-20250806
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:no-previous-prototype-for-bfqg_and_blkg_get
|-- arm64-randconfig-r052-20250809
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| `-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
|-- x86_64-allnoconfig
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-allyesconfig
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- drivers-gpu-drm-vmwgfx-ttm_object.c:error:Cannot-parse-struct-or-union
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
|-- x86_64-buildonly-randconfig-001-20250808
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-002-20250806
| `-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
|-- x86_64-buildonly-randconfig-003-20250808
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-004-20250808
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-buildonly-randconfig-005-20250808
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
|-- x86_64-buildonly-randconfig-006-20250808
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:no-previous-prototype-for-function-bfqg_and_blkg_get
| |-- drivers-gpu-drm-vmwgfx-ttm_object.c:error:Cannot-parse-struct-or-union
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-defconfig
| |-- 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_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_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_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_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- 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_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
|-- x86_64-randconfig-123-20250722
| `-- drivers-gpu-drm-amd-amdgpu-amdgpu_amdkfd_gfx_v7.o:warning:objtool:acquire_queue-falls-through-to-next-function-asanmodule_ctor()
|-- x86_64-randconfig-r062-20250809
| |-- drivers-gpu-drm-vmwgfx-ttm_object.c:error:Cannot-parse-struct-or-union
| |-- 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_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_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_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_xdp.c:error:no-previous-prototype-for-sxe_txrx_ring_enable
| |-- 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_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
`-- x86_64-rhel-9.4-rust
|-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
|-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
|-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
|-- drivers-gpu-drm-vmwgfx-ttm_object.c:error:Cannot-parse-struct-or-union
|-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
|-- 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_specific_irq_disable-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
|-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
|-- 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
`-- include-net-ip6_fib.h:error:default-initialization-of-an-object-of-type-typeof-(f6i-expires)-(aka-const-unsigned-long-)-leaves-the-object-uninitialized-Werror-Wdefault-const-init-var-unsafe
elapsed time: 733m
configs tested: 17
configs skipped: 122
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250808 clang-20
arm64 randconfig-002-20250808 gcc-10.5.0
arm64 randconfig-003-20250808 clang-22
arm64 randconfig-004-20250808 gcc-7.5.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250808 clang-20
x86_64 buildonly-randconfig-002-20250808 gcc-12
x86_64 buildonly-randconfig-003-20250808 clang-20
x86_64 buildonly-randconfig-004-20250808 clang-20
x86_64 buildonly-randconfig-005-20250808 gcc-12
x86_64 buildonly-randconfig-006-20250808 clang-20
x86_64 defconfig gcc-11
x86_64 rhel-9.4-rust clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6] BUILD REGRESSION 9f11838de785067991187f7d0aa9b340abfba381
by kernel test robot 09 Aug '25
by kernel test robot 09 Aug '25
09 Aug '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: 9f11838de785067991187f7d0aa9b340abfba381 !17488 arm64/mpam: Set 1 as the minimum setting value for CMAX
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202507150723.SAa7Ty5b-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507161941.gk9sOp8j-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507162216.3Q6gsro5-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202507220023.Kuq6r4En-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508022134.uLbgotjO-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202508081825.fqBn1XgA-lkp@intel.com
crypto/asymmetric_keys/pgp_library.c:189: warning: Excess function parameter '_data' description in 'pgp_parse_packets'
crypto/asymmetric_keys/pgp_library.c:189: warning: Excess function parameter '_datalen' description in 'pgp_parse_packets'
crypto/asymmetric_keys/pgp_library.c:189: warning: Function parameter or member 'data' not described in 'pgp_parse_packets'
crypto/asymmetric_keys/pgp_library.c:189: warning: Function parameter or member 'datalen' not described in 'pgp_parse_packets'
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:6: error: no previous prototype for function 'sxe_hw_specific_irq_enable' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for function 'sxe_hw_all_irq_disable' [-Werror,-Wmissing-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/sxevf/sxevf/sxevf_hw.c:539:6: error: no previous prototype for function 'sxevf_tx_ring_switch' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:594:6: error: no previous prototype for function 'sxevf_rx_ring_switch' [-Werror,-Wmissing-prototypes]
drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:626:6: error: no previous prototype for function 'sxevf_rx_ring_desc_configure' [-Werror,-Wmissing-prototypes]
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]
fs/nfs/enfs/shard_route.c:249: warning: Function parameter or member '__list_name' not described in 'DEFINE_CLEAR_LIST_FUNC'
fs/nfs/enfs/shard_route.c:249: warning: Function parameter or member '__struct_name' not described in 'DEFINE_CLEAR_LIST_FUNC'
fs/nfs/enfs/shard_route.c:249: warning: expecting prototype for enfs_clear_ ## __struct_name()(). Prototype was for DEFINE_CLEAR_LIST_FUNC() instead
include/linux/fortify-string.h:606:4: error: call to '__read_overflow2_field' declared with 'warning' attribute: detected read beyond size of field (2nd parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
kernel/cgroup/ifs.c:400:6: warning: variable 'start' set but not used [-Wunused-but-set-variable]
kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
kismet: WARNING: unmet direct dependencies detected for CRYPTO_DRBG_CTR when selected by CRYPTO_DEV_HISI_TRNG
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__list_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__struct_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:expecting-prototype-for-enfs_clear_-__struct_name()().-Prototype-was-for-DEFINE_CLEAR_LIST_FUNC()-instead
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-allnoconfig
| `-- kismet:WARNING:unmet-direct-dependencies-detected-for-CRYPTO_DRBG_CTR-when-selected-by-CRYPTO_DEV_HISI_TRNG
|-- arm64-randconfig-001-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-randconfig-003-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-randconfig-r052-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-allmodconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-allnoconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-allyesconfig
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-defconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-randconfig-001-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- loongarch-randconfig-r111-20250808
| |-- include-linux-userfaultfd_k.h:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-restricted-uffd_flags_t-usertype-flags-got-unsigned-int-enum-mfill_atomic_mode-mode
| |-- include-linux-userfaultfd_k.h:sparse:sparse:restricted-uffd_flags_t-degrades-to-integer
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-allnoconfig
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-allyesconfig
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- 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-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- 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_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- 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_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-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_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-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_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__list_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:Function-parameter-or-member-__struct_name-not-described-in-DEFINE_CLEAR_LIST_FUNC
| |-- fs-nfs-enfs-shard_route.c:warning:expecting-prototype-for-enfs_clear_-__struct_name()().-Prototype-was-for-DEFINE_CLEAR_LIST_FUNC()-instead
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| |-- kernel-cgroup-ifs.c:warning:variable-start-set-but-not-used
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-001-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-003-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-004-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-006-20250808
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-randconfig-101-20250808
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-randconfig-102-20250808
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-randconfig-103-20250808
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-randconfig-104-20250808
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-randconfig-r112-20250808
| |-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
| |-- 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_specific_irq_disable-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
| |-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
| |-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
| |-- 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
| |-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
| `-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
`-- x86_64-randconfig-r131-20250808
|-- 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_hw.c:error:no-previous-prototype-for-function-sxe_hw_all_irq_disable-Werror-Wmissing-prototypes
|-- 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_specific_irq_disable-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxe-sxepf-sxe_hw.c:error:no-previous-prototype-for-function-sxe_hw_specific_irq_enable-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_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_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_xdp.c:error:no-previous-prototype-for-function-sxe_txrx_ring_enable-Werror-Wmissing-prototypes
|-- 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_rx_ring_desc_configure-Werror-Wmissing-prototypes
|-- drivers-net-ethernet-linkdata-sxevf-sxevf-sxevf_hw.c:error:no-previous-prototype-for-function-sxevf_rx_ring_switch-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_hw.c:error:no-previous-prototype-for-function-sxevf_tx_ring_switch-Werror-Wmissing-prototypes
|-- 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
|-- include-linux-fortify-string.h:error:call-to-__read_overflow2_field-declared-with-warning-attribute:detected-read-beyond-size-of-field-(2nd-parameter)-maybe-use-struct_group()-Werror-Wattribute-warnin
`-- kernel-locking-mutex.c:warning:variable-ifs_clock-is-used-uninitialized-whenever-if-condition-is-true
elapsed time: 724m
configs tested: 22
configs skipped: 117
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250808 clang-20
arm64 randconfig-002-20250808 gcc-10.5.0
arm64 randconfig-003-20250808 clang-22
arm64 randconfig-004-20250808 gcc-7.5.0
loongarch allmodconfig clang-19
loongarch allnoconfig clang-22
loongarch defconfig clang-19
loongarch randconfig-001-20250808 clang-22
loongarch randconfig-002-20250808 gcc-15.1.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250808 clang-20
x86_64 buildonly-randconfig-002-20250808 gcc-12
x86_64 buildonly-randconfig-003-20250808 clang-20
x86_64 buildonly-randconfig-004-20250808 clang-20
x86_64 buildonly-randconfig-005-20250808 gcc-12
x86_64 buildonly-randconfig-006-20250808 clang-20
x86_64 defconfig gcc-11
x86_64 rhel-9.4-rust clang-20
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0