filter: constify sk_run_filter()
sk_run_filter() doesnt write on skb, change its prototype to reflect this. Fix two af_packet comments. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
38f49e8801
commit
62ab081213
@@ -517,7 +517,8 @@ out_free:
|
||||
return err;
|
||||
}
|
||||
|
||||
static inline unsigned int run_filter(struct sk_buff *skb, struct sock *sk,
|
||||
static inline unsigned int run_filter(const struct sk_buff *skb,
|
||||
const struct sock *sk,
|
||||
unsigned int res)
|
||||
{
|
||||
struct sk_filter *filter;
|
||||
@@ -532,15 +533,15 @@ static inline unsigned int run_filter(struct sk_buff *skb, struct sock *sk,
|
||||
}
|
||||
|
||||
/*
|
||||
This function makes lazy skb cloning in hope that most of packets
|
||||
are discarded by BPF.
|
||||
|
||||
Note tricky part: we DO mangle shared skb! skb->data, skb->len
|
||||
and skb->cb are mangled. It works because (and until) packets
|
||||
falling here are owned by current CPU. Output packets are cloned
|
||||
by dev_queue_xmit_nit(), input packets are processed by net_bh
|
||||
sequencially, so that if we return skb to original state on exit,
|
||||
we will not harm anyone.
|
||||
* This function makes lazy skb cloning in hope that most of packets
|
||||
* are discarded by BPF.
|
||||
*
|
||||
* Note tricky part: we DO mangle shared skb! skb->data, skb->len
|
||||
* and skb->cb are mangled. It works because (and until) packets
|
||||
* falling here are owned by current CPU. Output packets are cloned
|
||||
* by dev_queue_xmit_nit(), input packets are processed by net_bh
|
||||
* sequencially, so that if we return skb to original state on exit,
|
||||
* we will not harm anyone.
|
||||
*/
|
||||
|
||||
static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
@@ -566,11 +567,11 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
|
||||
if (dev->header_ops) {
|
||||
/* The device has an explicit notion of ll header,
|
||||
exported to higher levels.
|
||||
|
||||
Otherwise, the device hides datails of it frame
|
||||
structure, so that corresponding packet head
|
||||
never delivered to user.
|
||||
* exported to higher levels.
|
||||
*
|
||||
* Otherwise, the device hides details of its frame
|
||||
* structure, so that corresponding packet head is
|
||||
* never delivered to user.
|
||||
*/
|
||||
if (sk->sk_type != SOCK_DGRAM)
|
||||
skb_push(skb, skb->data - skb_mac_header(skb));
|
||||
|
Reference in New Issue
Block a user