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);