首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

请问一个Linux内核桥的有关问题

2012-03-24 
请教一个Linux内核桥的问题我现在看的内核是2.6.34.8,在br_flood函数内看到如下的代码:list_for_each_entr

请教一个Linux内核桥的问题
我现在看的内核是2.6.34.8,在br_flood函数内看到如下的代码:

list_for_each_entry_rcu(p, &br->port_list, list) {
prev = maybe_deliver(prev, p, skb, __packet_hook);
if (IS_ERR(prev))
goto out;
}

maybe_deliver函数内又调用了should_deliver函数来判断是否应该转发。

我现在想到了一种情况,就是若在通过list_for_each_entry_rcu遍历br->port_list时,若p是收到此skb的端口,又恰好是br->port_list的第一个端口,是否有问题?

此时,maybe_deliver函数内的should_deliver判断不应该转发,导致maybe_deliver返回的prev还是NULL,IS_ERR判断出错,即直接goto out,但实际还有很多端口未遍历。

我想内核应该不会犯这么低级的错误,但始终没想明白。请各位大侠指导下!!谢谢!!

[解决办法]
太难了,不懂

热点排行