From cb5eb22b2729cc500253ab2c240bd602276ccea8 Mon Sep 17 00:00:00 2001 From: Oliver Hartkopp Date: Tue, 3 Aug 2010 00:31:48 -0700 Subject: [PATCH] --- yaml --- r: 204039 b: refs/heads/master c: cff0d6e6edac7672b3f915bb4fb59f279243b7f9 h: refs/heads/master i: 204037: 8a704be7903fe0b15364feb2291b1af0b3368ffe 204035: 98cec2f9a5a6f20b91fed44dbcd3b86b61f4aad8 204031: a58b2f909037dae2cc7a3d6fa3d9307e20360bcf v: v3 --- [refs] | 2 +- trunk/include/linux/skbuff.h | 4 +++- trunk/net/can/raw.c | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index f4f80e6a52b5..29e7c5102ab3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3578b0c8abc7bdb4f02152ce5db7e09d484c6866 +refs/heads/master: cff0d6e6edac7672b3f915bb4fb59f279243b7f9 diff --git a/trunk/include/linux/skbuff.h b/trunk/include/linux/skbuff.h index d89876b806a0..d20d9e7a9bbd 100644 --- a/trunk/include/linux/skbuff.h +++ b/trunk/include/linux/skbuff.h @@ -169,6 +169,7 @@ struct skb_shared_hwtstamps { * @software: generate software time stamp * @in_progress: device driver is going to provide * hardware time stamp + * @prevent_sk_orphan: make sk reference available on driver level * @flags: all shared_tx flags * * These flags are attached to packets as part of the @@ -178,7 +179,8 @@ union skb_shared_tx { struct { __u8 hardware:1, software:1, - in_progress:1; + in_progress:1, + prevent_sk_orphan:1; }; __u8 flags; }; diff --git a/trunk/net/can/raw.c b/trunk/net/can/raw.c index ccfe633eec8e..a10e3338f084 100644 --- a/trunk/net/can/raw.c +++ b/trunk/net/can/raw.c @@ -650,6 +650,10 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock, err = sock_tx_timestamp(msg, sk, skb_tx(skb)); if (err < 0) goto free_skb; + + /* to be able to check the received tx sock reference in raw_rcv() */ + skb_tx(skb)->prevent_sk_orphan = 1; + skb->dev = dev; skb->sk = sk;