[NET]: Kill skb->real_dev
Bonding just wants the device before the skb_bond() decapsulation occurs, so simply pass that original device into packet_type->func() as an argument. It remains to be seen whether we can use this same exact thing to get rid of skb->input_dev as well. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b6b99eb540
commit
f2ccd8fa06
@ -35,7 +35,8 @@ static int p8022_request(struct datalink_proto *dl, struct sk_buff *skb,
|
||||
struct datalink_proto *register_8022_client(unsigned char type,
|
||||
int (*func)(struct sk_buff *skb,
|
||||
struct net_device *dev,
|
||||
struct packet_type *pt))
|
||||
struct packet_type *pt,
|
||||
struct net_device *orig_dev))
|
||||
{
|
||||
struct datalink_proto *proto;
|
||||
|
||||
|
@ -47,7 +47,7 @@ static struct datalink_proto *find_snap_client(unsigned char *desc)
|
||||
* A SNAP packet has arrived
|
||||
*/
|
||||
static int snap_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
struct packet_type *pt)
|
||||
struct packet_type *pt, struct net_device *orig_dev)
|
||||
{
|
||||
int rc = 1;
|
||||
struct datalink_proto *proto;
|
||||
@ -61,7 +61,7 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
/* Pass the frame on. */
|
||||
skb->h.raw += 5;
|
||||
skb_pull(skb, 5);
|
||||
rc = proto->rcvfunc(skb, dev, &snap_packet_type);
|
||||
rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev);
|
||||
} else {
|
||||
skb->sk = NULL;
|
||||
kfree_skb(skb);
|
||||
@ -118,7 +118,8 @@ module_exit(snap_exit);
|
||||
struct datalink_proto *register_snap_client(unsigned char *desc,
|
||||
int (*rcvfunc)(struct sk_buff *,
|
||||
struct net_device *,
|
||||
struct packet_type *))
|
||||
struct packet_type *,
|
||||
struct net_device *))
|
||||
{
|
||||
struct datalink_proto *proto = NULL;
|
||||
|
||||
|
Reference in New Issue
Block a user