From: Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
stable inclusion
from stable-v4.19.325
commit 085556bf8c70e2629e02e79268dac3016a08b8bf
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IB956P
CVE: CVE-2024-53131
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit cd45e963e44b0f10d90b9e6c0e8b4f47f3c92471 upstream.
Patch series "nilfs2: fix null-ptr-deref bugs on block tracepoints".
This series fixes null pointer dereference bugs that occur when using
nilfs2 and two block-related tracepoints.
This patch (of 2):
It has been reported that when using "block:block_touch_buffer"
tracepoint, touch_buffer() called from __nilfs_get_folio_block() causes a
NULL pointer dereference, or a general protection fault when KASAN is
enabled.
This happens because since the tracepoint was added in touch_buffer(), it
references the dev_t member bh->b_bdev->bd_dev regardless of whether the
buffer head has a pointer to a block_device structure. In the current
implementation, the block_device structure is set after the function
returns to the caller.
Here, touch_buffer() is used to mark the folio/page that owns the buffer
head as accessed, but the common search helper for folio/page used by the
caller function was optimized to mark the folio/page as accessed when it
was reimplemented a long time ago, eliminating the need to call
touch_buffer() here in the first place.
So this solves the issue by eliminating the touch_buffer() call itself.
Link: https://lkml.kernel.org/r/20241106160811.3316-1-konishi.ryusuke@gmail.com
Link: https://lkml.kernel.org/r/20241106160811.3316-2-konishi.ryusuke@gmail.com
Fixes: 5305cb830834 ("block: add block_{touch|dirty}_buffer tracepoint")
Signed-off-by: Ryusuke Konishi <konishi.ryusuke(a)gmail.com>
Reported-by: Ubisectech Sirius <bugreport(a)valiantsec.com>
Closes: https://lkml.kernel.org/r/86bd3013-887e-4e38-960f-ca45c657f032.bugreport@va…
Reported-by: syzbot+9982fb8d18eba905abe2(a)syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=9982fb8d18eba905abe2
Tested-by: syzbot+9982fb8d18eba905abe2(a)syzkaller.appspotmail.com
Cc: Tejun Heo <tj(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: He Yujie <coka.heyujie(a)huawei.com>
---
fs/nilfs2/page.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
index 360808b39b6d..cc3308d1c61d 100644
--- a/fs/nilfs2/page.c
+++ b/fs/nilfs2/page.c
@@ -39,7 +39,6 @@ __nilfs_get_page_block(struct page *page, unsigned long block, pgoff_t index,
first_block = (unsigned long)index << (PAGE_SHIFT - blkbits);
bh = nilfs_page_get_nth_block(page, block - first_block);
- touch_buffer(bh);
wait_on_buffer(bh);
return bh;
}
--
2.34.1
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 6c3413fbf8c430b89f5d23f465e10e99ea145199
commit: e53494b741272933726616122ea77143d9742631 [2566/2566] drivers: initial support for rnp drivers from Mucse Technology
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20241215/202412151215.kRAdh5LL-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241215/202412151215.kRAdh5LL-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/202412151215.kRAdh5LL-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/net/ethernet/mucse/rnp/rnp_main.c:7:
In file included from include/linux/pci.h:1499:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:1579:
include/linux/vmstat.h:417:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
417 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
418 | item];
| ~~~~
include/linux/vmstat.h:424:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
424 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
425 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:431:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
431 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:436:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
436 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
437 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:445:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
445 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
446 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/mucse/rnp/rnp_main.c:34:
In file included from drivers/net/ethernet/mucse/rnp/rnp_tc_u32_parse.h:6:
In file included from drivers/net/ethernet/mucse/rnp/rnp.h:21:
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:298:7: warning: variable 'has_mac' set but not used [-Wunused-but-set-variable]
298 | bool has_mac, has_trans;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:298:16: warning: variable 'has_trans' set but not used [-Wunused-but-set-variable]
298 | bool has_mac, has_trans;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:299:6: warning: variable 'headroom' set but not used [-Wunused-but-set-variable]
299 | int headroom, tailroom;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:299:16: warning: variable 'tailroom' set but not used [-Wunused-but-set-variable]
299 | int headroom, tailroom;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:174:6: warning: no previous prototype for function 'rnp_unmap_and_free_tx_resource' [-Wmissing-prototypes]
174 | void rnp_unmap_and_free_tx_resource(struct rnp_ring *ring,
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:174:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
174 | void rnp_unmap_and_free_tx_resource(struct rnp_ring *ring,
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:669:5: warning: no previous prototype for function 'rnp_rx_ring_reinit' [-Wmissing-prototypes]
669 | int rnp_rx_ring_reinit(struct rnp_adapter *adapter,
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:669:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
669 | int rnp_rx_ring_reinit(struct rnp_adapter *adapter,
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:1777:7: warning: variable 'xdp_xmit' set but not used [-Wunused-but-set-variable]
1777 | bool xdp_xmit = false;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:2012:6: warning: no previous prototype for function 'rnp_write_eitr_rx' [-Wmissing-prototypes]
2012 | void rnp_write_eitr_rx(struct rnp_q_vector *q_vector)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:2012:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2012 | void rnp_write_eitr_rx(struct rnp_q_vector *q_vector)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:2818:6: warning: variable 'rxctrl' set but not used [-Wunused-but-set-variable]
2818 | u32 rxctrl = 0, dma_axi_ctl;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:3152:6: warning: no previous prototype for function 'rnp_vlan_stags_flag' [-Wmissing-prototypes]
3152 | void rnp_vlan_stags_flag(struct rnp_adapter *adapter)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:3152:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3152 | void rnp_vlan_stags_flag(struct rnp_adapter *adapter)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:3558:5: warning: no previous prototype for function 'rnp_xmit_nop_frame_ring' [-Wmissing-prototypes]
3558 | int rnp_xmit_nop_frame_ring(struct rnp_adapter *adapter,
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:3558:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3558 | int rnp_xmit_nop_frame_ring(struct rnp_adapter *adapter,
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:4811:6: warning: no previous prototype for function 'rnp_service_timer' [-Wmissing-prototypes]
4811 | void rnp_service_timer(struct timer_list *t)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:4811:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
4811 | void rnp_service_timer(struct timer_list *t)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:4919:6: warning: no previous prototype for function 'rnp_service_task' [-Wmissing-prototypes]
4919 | void rnp_service_task(struct work_struct *work)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:4919:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
4919 | void rnp_service_task(struct work_struct *work)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:5941:5: warning: no previous prototype for function 'rnp_delete_knode' [-Wmissing-prototypes]
5941 | int rnp_delete_knode(struct net_device *dev,
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:5941:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
5941 | int rnp_delete_knode(struct net_device *dev,
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6030:5: warning: no previous prototype for function 'rnp_config_knode' [-Wmissing-prototypes]
6030 | int rnp_config_knode(struct net_device *dev, __be16 protocol,
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:6030:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
6030 | int rnp_config_knode(struct net_device *dev, __be16 protocol,
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6089:5: warning: no previous prototype for function 'rnp_setup_tc_cls_u32' [-Wmissing-prototypes]
6089 | int rnp_setup_tc_cls_u32(struct net_device *dev,
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:6089:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
6089 | int rnp_setup_tc_cls_u32(struct net_device *dev,
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6166:6: warning: no previous prototype for function 'rnp_do_reset' [-Wmissing-prototypes]
6166 | void rnp_do_reset(struct net_device *netdev)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:6166:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
6166 | void rnp_do_reset(struct net_device *netdev)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6387:6: warning: no previous prototype for function 'rnp_clear_udp_tunnel_port' [-Wmissing-prototypes]
6387 | void rnp_clear_udp_tunnel_port(struct rnp_adapter *adapter)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:6387:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
6387 | void rnp_clear_udp_tunnel_port(struct rnp_adapter *adapter)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6507:6: warning: no previous prototype for function 'rnp_assign_netdev_ops' [-Wmissing-prototypes]
6507 | void rnp_assign_netdev_ops(struct net_device *dev)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:6507:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
6507 | void rnp_assign_netdev_ops(struct net_device *dev)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6683:5: warning: no previous prototype for function 'rnp_can_rpu_start' [-Wmissing-prototypes]
6683 | int rnp_can_rpu_start(struct rnp_adapter *adapter)
| ^
drivers/net/ethernet/mucse/rnp/rnp_main.c:6683:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
6683 | int rnp_can_rpu_start(struct rnp_adapter *adapter)
| ^
| static
drivers/net/ethernet/mucse/rnp/rnp_main.c:6536:29: warning: unused function 'rnp_tso_features' [-Wunused-function]
6536 | static inline unsigned long rnp_tso_features(struct rnp_hw *hw)
| ^~~~~~~~~~~~~~~~
26 warnings generated.
--
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:157: warning: Function parameter or member 'rnp_queue' not described in 'rnp_set_ring_vector'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:157: warning: Function parameter or member 'rnp_msix_vector' not described in 'rnp_set_ring_vector'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:157: warning: Excess function parameter 'queue' description in 'rnp_set_ring_vector'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:157: warning: Excess function parameter 'msix_vector' description in 'rnp_set_ring_vector'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:287: warning: Function parameter or member 'napi_budget' not described in 'rnp_clean_tx_irq'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:671: warning: Function parameter or member 'adapter' not described in 'rnp_rx_ring_reinit'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:1130: warning: Excess function parameter 'skb' description in 'rnp_is_non_eop'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:2563: warning: Function parameter or member 'adapter' not described in 'rnp_tx_maxrate_own'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:2563: warning: Excess function parameter 'netdev' description in 'rnp_tx_maxrate_own'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:2563: warning: Excess function parameter 'maxrate' description in 'rnp_tx_maxrate_own'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:3748: warning: Function parameter or member 'txqueue' not described in 'rnp_tx_timeout'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:3857: warning: Function parameter or member 'adapter' not described in 'rnp_setup_tx_resources'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:3950: warning: Function parameter or member 'adapter' not described in 'rnp_setup_rx_resources'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:4612: warning: Excess function parameter 'link_speed' description in 'rnp_watchdog_update_link'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:4812: warning: Function parameter or member 't' not described in 'rnp_service_timer'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:4812: warning: Excess function parameter 'data' description in 'rnp_service_timer'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:5872: warning: Function parameter or member 'dev' not described in 'rnp_setup_tc'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:5872: warning: Excess function parameter 'netdev' description in 'rnp_setup_tc'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6526: warning: Function parameter or member 'adapter' not described in 'rnp_wol_supported'
>> drivers/net/ethernet/mucse/rnp/rnp_main.c:6526: warning: Function parameter or member 'subdevice_id' not described in 'rnp_wol_supported'
drivers/net/ethernet/mucse/rnp/rnp_main.c:6526: warning: Excess function parameter 'hw' description in 'rnp_wol_supported'
drivers/net/ethernet/mucse/rnp/rnp_main.c:6526: warning: Excess function parameter 'subdev_id' description in 'rnp_wol_supported'
drivers/net/ethernet/mucse/rnp/rnp_main.c:7099: warning: Function parameter or member 'id' not described in 'rnp_probe'
drivers/net/ethernet/mucse/rnp/rnp_main.c:7099: warning: Excess function parameter 'ent' description in 'rnp_probe'
--
In file included from drivers/net/ethernet/mucse/rnp/rnp_common.c:4:
In file included from include/linux/pci.h:1499:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:1579:
include/linux/vmstat.h:417:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
417 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
418 | item];
| ~~~~
include/linux/vmstat.h:424:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
424 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
425 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:431:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
431 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:436:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
436 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
437 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:445:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
445 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
446 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/mucse/rnp/rnp_common.c:10:
In file included from drivers/net/ethernet/mucse/rnp/rnp.h:21:
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:298:7: warning: variable 'has_mac' set but not used [-Wunused-but-set-variable]
298 | bool has_mac, has_trans;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:298:16: warning: variable 'has_trans' set but not used [-Wunused-but-set-variable]
298 | bool has_mac, has_trans;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:299:6: warning: variable 'headroom' set but not used [-Wunused-but-set-variable]
299 | int headroom, tailroom;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:299:16: warning: variable 'tailroom' set but not used [-Wunused-but-set-variable]
299 | int headroom, tailroom;
| ^
9 warnings generated.
--
In file included from drivers/net/ethernet/mucse/rnp/rnp_lib.c:4:
In file included from drivers/net/ethernet/mucse/rnp/rnp.h:9:
In file included from include/linux/pci.h:1499:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:1579:
include/linux/vmstat.h:417:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
417 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
418 | item];
| ~~~~
include/linux/vmstat.h:424:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
424 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
425 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:431:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
431 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:436:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
436 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
437 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:445:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
445 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
446 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/mucse/rnp/rnp_lib.c:4:
In file included from drivers/net/ethernet/mucse/rnp/rnp.h:21:
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:298:7: warning: variable 'has_mac' set but not used [-Wunused-but-set-variable]
298 | bool has_mac, has_trans;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:298:16: warning: variable 'has_trans' set but not used [-Wunused-but-set-variable]
298 | bool has_mac, has_trans;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:299:6: warning: variable 'headroom' set but not used [-Wunused-but-set-variable]
299 | int headroom, tailroom;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_common.h:299:16: warning: variable 'tailroom' set but not used [-Wunused-but-set-variable]
299 | int headroom, tailroom;
| ^
>> drivers/net/ethernet/mucse/rnp/rnp_lib.c:439:5: warning: no previous prototype for function 'rnp_acquire_msix_vectors' [-Wmissing-prototypes]
439 | int rnp_acquire_msix_vectors(struct rnp_adapter *adapter, int vectors)
| ^
drivers/net/ethernet/mucse/rnp/rnp_lib.c:439:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
439 | int rnp_acquire_msix_vectors(struct rnp_adapter *adapter, int vectors)
| ^
| static
>> drivers/net/ethernet/mucse/rnp/rnp_lib.c:985:6: warning: no previous prototype for function 'rnp_print_ring_info' [-Wmissing-prototypes]
985 | void rnp_print_ring_info(struct rnp_adapter *adapter)
| ^
drivers/net/ethernet/mucse/rnp/rnp_lib.c:985:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
985 | void rnp_print_ring_info(struct rnp_adapter *adapter)
| ^
| static
11 warnings generated.
--
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:179: warning: Function parameter or member 'data' not described in 'rnp_reg_test'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:466: warning: Function parameter or member 'dev' not described in 'rnp_get_ts_info'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:466: warning: Excess function parameter 'netdev' description in 'rnp_get_ts_info'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:527: warning: Function parameter or member 'dev' not described in 'rnp_get_channels'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:527: warning: Excess function parameter 'netdev' description in 'rnp_get_channels'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:561: warning: Function parameter or member 'dev' not described in 'rnp_set_channels'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:561: warning: Excess function parameter 'netdev' description in 'rnp_set_channels'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:600: warning: Function parameter or member 'dev' not described in 'rnp_get_module_info'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:600: warning: Excess function parameter 'netdev' description in 'rnp_get_module_info'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:653: warning: Function parameter or member 'dev' not described in 'rnp_get_module_eeprom'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:653: warning: Excess function parameter 'netdev' description in 'rnp_get_module_eeprom'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:700: warning: Function parameter or member 'ker' not described in 'rnp_get_ringparam'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:700: warning: Function parameter or member 'extack' not described in 'rnp_get_ringparam'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:725: warning: Function parameter or member 'ker' not described in 'rnp_set_ringparam'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:725: warning: Function parameter or member 'extack' not described in 'rnp_set_ringparam'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:945: warning: Function parameter or member 'coal' not described in 'rnp_get_coalesce'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:945: warning: Function parameter or member 'kernel_coal' not described in 'rnp_get_coalesce'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:945: warning: Function parameter or member 'extack' not described in 'rnp_get_coalesce'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:945: warning: Excess function parameter 'cmd' description in 'rnp_get_coalesce'
>> drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:945: warning: Excess function parameter 'ec' description in 'rnp_get_coalesce'
drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:987: warning: Function parameter or member 'kernel_coal' not described in 'rnp_set_coalesce'
drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:987: warning: Function parameter or member 'extack' not described in 'rnp_set_coalesce'
drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:987: warning: Excess function parameter 'cmd' description in 'rnp_set_coalesce'
drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:1778: warning: Function parameter or member 'dev' not described in 'rnp_set_rxnfc'
drivers/net/ethernet/mucse/rnp/rnp_ethtool.c:1778: warning: Excess function parameter 'netdev' description in 'rnp_set_rxnfc'
..
vim +/has_mac +298 drivers/net/ethernet/mucse/rnp/rnp_common.h
287
288 #ifndef NO_SKB_DUMP
289 static inline void _rnp_skb_dump(const struct sk_buff *skb, bool full_pkt)
290 {
291 static atomic_t can_dump_full = ATOMIC_INIT(5);
292 #ifdef DEBUG
293 struct skb_shared_info *sh = skb_shinfo(skb);
294 #endif
295 struct net_device *dev = skb->dev;
296 //struct sock *sk = skb->sk;
297 struct sk_buff *list_skb;
> 298 bool has_mac, has_trans;
> 299 int headroom, tailroom;
300 int i, len, seg_len;
301 const char *level = KERN_WARNING;
302
303 if (full_pkt)
304 full_pkt = atomic_dec_if_positive(&can_dump_full) >= 0;
305
306 if (full_pkt)
307 len = skb->len;
308 else
309 len = min_t(int, skb->len, MAX_HEADER + 128);
310
311 headroom = skb_headroom(skb);
312 tailroom = skb_tailroom(skb);
313
314 has_mac = skb_mac_header_was_set(skb);
315 has_trans = skb_transport_header_was_set(skb);
316
317 dbg("%sskb len=%u headroom=%u headlen=%u tailroom=%u\n"
318 "mac=(%d,%d) net=(%d,%d) trans=%d\n"
319 "shinfo(txflags=%u nr_frags=%u gso(size=%hu type=%u segs=%hu))\n"
320 "csum(0x%x ip_summed=%u complete_sw=%u valid=%u level=%u)\n"
321 "hash(0x%x sw=%u l4=%u) proto=0x%04x pkttype=%u iif=%d\n",
322 level, skb->len, headroom, skb_headlen(skb), tailroom,
323 has_mac ? skb->mac_header : -1,
324 has_mac ? (skb->network_header - skb->mac_header) : -1,
325 skb->network_header,
326 has_trans ? skb_network_header_len(skb) : -1,
327 has_trans ? skb->transport_header : -1, sh->tx_flags,
328 sh->nr_frags, sh->gso_size, sh->gso_type, sh->gso_segs,
329 skb->csum, skb->ip_summed, skb->csum_complete_sw,
330 skb->csum_valid, skb->csum_level, skb->hash, skb->sw_hash,
331 skb->l4_hash, ntohs(skb->protocol), skb->pkt_type,
332 skb->skb_iif);
333
334 if (dev)
335 dbg("%sdev name=%s feat=0x%pNF\n", level, dev->name,
336 &dev->features);
337
338 //if (full_pkt && headroom)
339 // print_hex_dump(level, "skb headroom: ",
340 // DUMP_PREFIX_OFFSET,
341 // 16, 1, skb->head, headroom, false);
342
343 seg_len = min_t(int, skb_headlen(skb), len);
344 if (seg_len)
345 print_hex_dump(level, "skb linear: ", DUMP_PREFIX_OFFSET,
346 16, 1, skb->data, seg_len, false);
347 len -= seg_len;
348
349 // if (full_pkt && tailroom)
350 // print_hex_dump(level, "skb tailroom: ",
351 // DUMP_PREFIX_OFFSET,
352 // 16, 1, skb_tail_pointer(skb), tailroom, false);
353
354 for (i = 0; len && i < skb_shinfo(skb)->nr_frags; i++) {
355 skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
356 //u32 p_off, p_len, copied;
357 u32 p_len;
358 struct page *p;
359 u8 *vaddr;
360
361 p = skb_frag_address(frag);
362 p_len = skb_frag_size(frag);
363 seg_len = min_t(int, p_len, len);
364 vaddr = kmap_atomic(p);
365 print_hex_dump(level, "skb frag: ", DUMP_PREFIX_OFFSET,
366 16, 1, vaddr, seg_len, false);
367 kunmap_atomic(vaddr);
368 len -= seg_len;
369 if (!len)
370 break;
371 }
372
373 if (full_pkt && skb_has_frag_list(skb)) {
374 dbg("skb fraglist:\n");
375 skb_walk_frags(skb, list_skb)
376 _rnp_skb_dump(list_skb, true);
377 }
378 }
379 #endif
380
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 6c3413fbf8c430b89f5d23f465e10e99ea145199
commit: a1799222294b713b168b8444b973c2b9d69c64d9 [2566/2566] UNIC: Support using MC GUID and table management
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20241215/202412150919.g1didEmM-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241215/202412150919.g1didEmM-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/202412150919.g1didEmM-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c:16:
In file included from include/linux/etherdevice.h:20:
In file included from include/linux/if_ether.h:19:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:14:
In file included from include/linux/mm.h:1573:
include/linux/vmstat.h:417:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
417 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
418 | item];
| ~~~~
include/linux/vmstat.h:424:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
424 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
425 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:431:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
431 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:436:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
436 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
437 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:445:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
445 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
446 | NR_VM_NUMA_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c:21:
In file included from drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h:11:
include/net/devlink.h:28:19: warning: arithmetic between different enumeration types ('enum devlink_reload_limit' and 'enum devlink_reload_action') [-Wenum-enum-conversion]
28 | u32 reload_stats[DEVLINK_RELOAD_STATS_ARRAY_SIZE];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/devlink.h:25:30: note: expanded from macro 'DEVLINK_RELOAD_STATS_ARRAY_SIZE'
25 | (__DEVLINK_RELOAD_LIMIT_MAX * __DEVLINK_RELOAD_ACTION_MAX)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/devlink.h:29:26: warning: arithmetic between different enumeration types ('enum devlink_reload_limit' and 'enum devlink_reload_action') [-Wenum-enum-conversion]
29 | u32 remote_reload_stats[DEVLINK_RELOAD_STATS_ARRAY_SIZE];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/devlink.h:25:30: note: expanded from macro 'DEVLINK_RELOAD_STATS_ARRAY_SIZE'
25 | (__DEVLINK_RELOAD_LIMIT_MAX * __DEVLINK_RELOAD_ACTION_MAX)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c:170:5: warning: no previous prototype for function 'hclge_unic_add_mc_guid_common' [-Wmissing-prototypes]
170 | int hclge_unic_add_mc_guid_common(struct hclge_vport *vport,
| ^
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c:170:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
170 | int hclge_unic_add_mc_guid_common(struct hclge_vport *vport,
| ^
| static
>> drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c:279:5: warning: no previous prototype for function 'hclge_unic_del_mc_guid_common' [-Wmissing-prototypes]
279 | int hclge_unic_del_mc_guid_common(struct hclge_vport *vport,
| ^
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c:279:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
279 | int hclge_unic_del_mc_guid_common(struct hclge_vport *vport,
| ^
| static
9 warnings generated.
vim +/hclge_unic_del_mc_guid_common +279 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_unic_guid.c
278
> 279 int hclge_unic_del_mc_guid_common(struct hclge_vport *vport,
280 const unsigned char *mguid)
281 {
282 struct hclge_unic_mc_guid_cfg_cmd req = {0};
283 struct hclge_dev *hdev = vport->back;
284 struct hclge_desc desc[3];
285 int ret;
286
287 memcpy(req.mguid, mguid, UBL_ALEN);
288 ret = hclge_unic_lookup_mc_guid(vport, &req, desc);
289 if (!ret) {
290 ret = hclge_unic_fill_del_desc(vport, &req, desc);
291 if (ret)
292 return ret;
293 if (hclge_unic_is_all_function_deleted(desc)) {
294 ret = hclge_unic_del_mc_guid_cmd(vport, &req, desc);
295 if (!ret) {
296 clear_bit(req.index, hdev->mc_guid_tbl_bmap);
297 hdev->used_mc_guid_num--;
298 }
299 } else {
300 return hclge_unic_add_mc_guid_cmd(vport, &req, desc);
301 }
302 } else if (ret == -ENOENT) {
303 ret = 0;
304 }
305
306 return ret;
307 }
308
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 6c3413fbf8c430b89f5d23f465e10e99ea145199
commit: f52063cd675564192638518d0a6d428e330ec7e1 [2566/2566] UNIC: Replace ether interface by ubl interface
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20241215/202412150525.dOfTAcoj-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241215/202412150525.dOfTAcoj-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/202412150525.dOfTAcoj-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/hisilicon/hns3/hns3_unic.c:53: warning: Function parameter or member 'skb' not described in 'hns3_unic_set_l3_type'
>> drivers/net/ethernet/hisilicon/hns3/hns3_unic.c:53: warning: Function parameter or member 'type_cs_vlan_tso' not described in 'hns3_unic_set_l3_type'
vim +53 drivers/net/ethernet/hisilicon/hns3/hns3_unic.c
44
45 /**
46 * L3T is an element of the TX BD interface for software and hardware
47 * interaction, used to identify the message type. As the message data
48 * given by software to the chip cannot be self-decoded, the driver needs
49 * to actively inform the chip of the message type, which is unrelated
50 * to checksum offloading.
51 */
52 void hns3_unic_set_l3_type(struct sk_buff *skb, u32 *type_cs_vlan_tso)
> 53 {
54 if (skb->protocol == htons(ETH_P_IP))
55 hnae3_set_field(*type_cs_vlan_tso, HNS3_TXD_L3T_M,
56 HNS3_TXD_L3T_S, HNS3_L3T_IPV4);
57 else if (skb->protocol == htons(ETH_P_IPV6))
58 hnae3_set_field(*type_cs_vlan_tso, HNS3_TXD_L3T_M,
59 HNS3_TXD_L3T_S, HNS3_L3T_IPV6);
60 }
61
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki