diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-12-06 15:50:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-08 13:30:34 -0500 |
commit | 62ab0812137ec4f9884dd7de346238841ac03283 (patch) | |
tree | da0807aee4597522b0ecabc51d2d9fc300895d98 /net/packet | |
parent | 38f49e8801565674c424896c3dcb4228410b43a8 (diff) |
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>
Diffstat (limited to 'net/packet')
-rw-r--r-- | net/packet/af_packet.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index a11c731d2ee4..17eafe5b48c6 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -517,7 +517,8 @@ out_free: | |||
517 | return err; | 517 | return err; |
518 | } | 518 | } |
519 | 519 | ||
520 | static inline unsigned int run_filter(struct sk_buff *skb, struct sock *sk, | 520 | static inline unsigned int run_filter(const struct sk_buff *skb, |
521 | const struct sock *sk, | ||
521 | unsigned int res) | 522 | unsigned int res) |
522 | { | 523 | { |
523 | struct sk_filter *filter; | 524 | struct sk_filter *filter; |
@@ -532,15 +533,15 @@ static inline unsigned int run_filter(struct sk_buff *skb, struct sock *sk, | |||
532 | } | 533 | } |
533 | 534 | ||
534 | /* | 535 | /* |
535 | This function makes lazy skb cloning in hope that most of packets | 536 | * This function makes lazy skb cloning in hope that most of packets |
536 | are discarded by BPF. | 537 | * are discarded by BPF. |
537 | 538 | * | |
538 | Note tricky part: we DO mangle shared skb! skb->data, skb->len | 539 | * Note tricky part: we DO mangle shared skb! skb->data, skb->len |
539 | and skb->cb are mangled. It works because (and until) packets | 540 | * and skb->cb are mangled. It works because (and until) packets |
540 | falling here are owned by current CPU. Output packets are cloned | 541 | * falling here are owned by current CPU. Output packets are cloned |
541 | by dev_queue_xmit_nit(), input packets are processed by net_bh | 542 | * by dev_queue_xmit_nit(), input packets are processed by net_bh |
542 | sequencially, so that if we return skb to original state on exit, | 543 | * sequencially, so that if we return skb to original state on exit, |
543 | we will not harm anyone. | 544 | * we will not harm anyone. |
544 | */ | 545 | */ |
545 | 546 | ||
546 | static int packet_rcv(struct sk_buff *skb, struct net_device *dev, | 547 | 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, | |||
566 | 567 | ||
567 | if (dev->header_ops) { | 568 | if (dev->header_ops) { |
568 | /* The device has an explicit notion of ll header, | 569 | /* The device has an explicit notion of ll header, |
569 | exported to higher levels. | 570 | * exported to higher levels. |
570 | 571 | * | |
571 | Otherwise, the device hides datails of it frame | 572 | * Otherwise, the device hides details of its frame |
572 | structure, so that corresponding packet head | 573 | * structure, so that corresponding packet head is |
573 | never delivered to user. | 574 | * never delivered to user. |
574 | */ | 575 | */ |
575 | if (sk->sk_type != SOCK_DGRAM) | 576 | if (sk->sk_type != SOCK_DGRAM) |
576 | skb_push(skb, skb->data - skb_mac_header(skb)); | 577 | skb_push(skb, skb->data - skb_mac_header(skb)); |