|
@@ -469,10 +469,14 @@ EXPORT_SYMBOL(dev_remove_pack);
|
|
|
*/
|
|
|
void dev_add_offload(struct packet_offload *po)
|
|
|
{
|
|
|
- struct list_head *head = &offload_base;
|
|
|
+ struct packet_offload *elem;
|
|
|
|
|
|
spin_lock(&offload_lock);
|
|
|
- list_add_rcu(&po->list, head);
|
|
|
+ list_for_each_entry(elem, &offload_base, list) {
|
|
|
+ if (po->priority < elem->priority)
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ list_add_rcu(&po->list, elem->list.prev);
|
|
|
spin_unlock(&offload_lock);
|
|
|
}
|
|
|
EXPORT_SYMBOL(dev_add_offload);
|