linkwatch_fire_event()流程

void linkwatch_fire_event(struct net_device *dev)
{   
     /* 判断是否是紧急处理的事件 */
	bool urgent = linkwatch_urgent_event(dev);

	 /* 设置待处理事件标记 */
	if (!test_and_set_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state)) 
	{
		dev_hold(dev);
        /* 添加事件到事件列表 */
		linkwatch_add_event(dev);
	} 
	else if (!urgent)
		return;
	
    /* 事件调度 */
	linkwatch_schedule_work(urgent);
}

EXPORT_SYMBOL(linkwatch_fire_event);

猜你喜欢

转载自blog.csdn.net/yldfree/article/details/84874379