从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 漏洞名称:i40e: Fix macvlan leak by synchronizing access to mac_filter_hash - 问题描述:这个漏洞是由于i40e驱动在macvlan操作中对mac_filter_hash的并发访问导致的内存泄漏。当多个线程同时修改mac_filter_hash时,会导致状态不一致和潜在的内存泄漏。 2. 修复措施: - 同步访问:通过在i40e_del_mac_filter()和i40e_add_mac_filter()函数中使用spin_lock/unlock_bh来同步对mac_filter_hash的访问,确保原子操作并防止并发访问。 - 锁检查:在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: Fix VF's MAC Address change on VM 5. 审查和签名: - 审查者:Arkadiusz Kubalewski、Aleksandr Loktionov、Simon Hornan - 测试者:Rafal Romanowski、Tony Nguyen 6. 代码更改: - 文件更改:drivers/net/ethernet/intel/i40e/i40e_main.c、drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c - 更改内容:在i40e_main.c和i40e_virtchnl_pf.c文件中添加了同步访问和锁检查的代码。 这些信息详细描述了漏洞的背景、修复措施、复现步骤以及相关的代码更改,有助于理解漏洞的性质和修复过程。