从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 漏洞类型:macvlan leak(mac过滤器泄漏) - 影响组件:i40e驱动程序 - 问题描述:当多个线程同时访问mac_filter_hash时,会导致不一致的状态和潜在的内存泄漏。 2. 修复措施: - 同步访问:通过在i40e_del_mac_filter()和zeroing vf->default_lan_addr.addr上使用spin_lock/unlock_bh(&vsi->mac_filter_hash_lock),确保原子操作并防止并发访问。 - 增加检查:在i40e_add_mac_filter()中添加lockdep_assert_held(&vsi->mac_filter_hash_lock)来帮助捕捉未来可能出现的类似问题。 3. 复现步骤: - 1. 启动VF(虚拟功能)并配置端口VLAN。 - 2. 触发并发macvlan操作(例如,添加和删除portvlan和/或mac过滤器)。 - 3. 观察mac_filter_hash中的潜在内存泄漏和不一致状态。 4. 已知问题和修复: - 已知问题:fed0d9f13266(“i40e:修复VF的MAC地址更改在VM上”) - 已知修复:由Arkadiusz Kubalewski、Aleksandr Loktionov、Simon Horman、Rafal Romanowski、Tony Nguyen和Sasha Levin进行审查和测试。 5. 代码变更: - 两个文件(drivers/net/ethernet/intel/i40e/i40e_main.c和drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c)的变更,包括添加同步锁和检查。 这些信息详细描述了i40e驱动程序中macvlan泄漏问题的修复过程,包括问题的复现步骤、已知问题和修复,以及具体的代码变更。