net: Remove code duplication between offload structures
Move the offload callbacks into its own structure. Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
c6b641a4c6
commit
f191a1d17f
@@ -2102,16 +2102,16 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb,
|
||||
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(ptype, &offload_base, list) {
|
||||
if (ptype->type == type && ptype->gso_segment) {
|
||||
if (ptype->type == type && ptype->callbacks.gso_segment) {
|
||||
if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
|
||||
err = ptype->gso_send_check(skb);
|
||||
err = ptype->callbacks.gso_send_check(skb);
|
||||
segs = ERR_PTR(err);
|
||||
if (err || skb_gso_ok(skb, features))
|
||||
break;
|
||||
__skb_push(skb, (skb->data -
|
||||
skb_network_header(skb)));
|
||||
}
|
||||
segs = ptype->gso_segment(skb, features);
|
||||
segs = ptype->callbacks.gso_segment(skb, features);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -3533,10 +3533,10 @@ static int napi_gro_complete(struct sk_buff *skb)
|
||||
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(ptype, head, list) {
|
||||
if (ptype->type != type || !ptype->gro_complete)
|
||||
if (ptype->type != type || !ptype->callbacks.gro_complete)
|
||||
continue;
|
||||
|
||||
err = ptype->gro_complete(skb);
|
||||
err = ptype->callbacks.gro_complete(skb);
|
||||
break;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
@@ -3598,7 +3598,7 @@ enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
||||
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(ptype, head, list) {
|
||||
if (ptype->type != type || !ptype->gro_receive)
|
||||
if (ptype->type != type || !ptype->callbacks.gro_receive)
|
||||
continue;
|
||||
|
||||
skb_set_network_header(skb, skb_gro_offset(skb));
|
||||
@@ -3608,7 +3608,7 @@ enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
||||
NAPI_GRO_CB(skb)->flush = 0;
|
||||
NAPI_GRO_CB(skb)->free = 0;
|
||||
|
||||
pp = ptype->gro_receive(&napi->gro_list, skb);
|
||||
pp = ptype->callbacks.gro_receive(&napi->gro_list, skb);
|
||||
break;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
Reference in New Issue
Block a user