All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <dborkman@redhat.com>
To: Atzm Watanabe <atzm@stratosphere.co.jp>
Cc: netdev@vger.kernel.org,
	Stephen Hemminger <stephen@networkplumber.org>,
	Ben Hutchings <bhutchings@solarflare.com>,
	David Miller <davem@davemloft.net>,
	David Laight <David.Laight@ACULAB.COM>
Subject: Re: [PATCH v3 2/3] packet: fill the gap of TPACKET_ALIGNMENT with zeros
Date: Mon, 16 Dec 2013 11:09:52 +0100	[thread overview]
Message-ID: <52AED170.9020604@redhat.com> (raw)
In-Reply-To: <87ob4h6wq1.wl%atzm@stratosphere.co.jp>

On 12/16/2013 09:12 AM, Atzm Watanabe wrote:
> struct tpacket{2,3}_hdr is aligned to a multiple of TPACKET_ALIGNMENT.
> Explicitly defining and zeroing the gap of this makes additional changes
> easier.

I think these structure changes are okay.

What is the reason behind the memset? I don't think it's necessary and we
should try to avoid this additional overhead that is don for *each* packet.
We would signal availability for future structure members in the status
bits anyway.

Otherwise looks good.

> Signed-off-by: Atzm Watanabe <atzm@stratosphere.co.jp>
> ---
>   include/uapi/linux/if_packet.h | 3 ++-
>   net/packet/af_packet.c         | 5 ++++-
>   2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
> index 1e24aa7..9185dc9 100644
> --- a/include/uapi/linux/if_packet.h
> +++ b/include/uapi/linux/if_packet.h
> @@ -133,7 +133,7 @@ struct tpacket2_hdr {
>   	__u32		tp_sec;
>   	__u32		tp_nsec;
>   	__u16		tp_vlan_tci;
> -	__u16		tp_padding;
> +	__u8		tp_padding[6];
>   };
>
>   struct tpacket_hdr_variant1 {
> @@ -154,6 +154,7 @@ struct tpacket3_hdr {
>   	union {
>   		struct tpacket_hdr_variant1 hv1;
>   	};
> +	__u8		tp_padding[12];
>   };
>
>   struct tpacket_bd_ts {
> diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
> index 1c8b982..5c75a1d 100644
> --- a/net/packet/af_packet.c
> +++ b/net/packet/af_packet.c
> @@ -1929,8 +1929,9 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
>   		} else {
>   			h.h2->tp_vlan_tci = 0;
>   		}
> -		h.h2->tp_padding = 0;
>   		hdrlen = sizeof(*h.h2);
> +		memset(h.h2->tp_padding, 0,
> +		       hdrlen - offsetof(struct tpacket2_hdr, tp_padding));
>   		break;
>   	case TPACKET_V3:
>   		/* tp_nxt_offset,vlan are already populated above.
> @@ -1944,6 +1945,8 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
>   		h.h3->tp_sec  = ts.tv_sec;
>   		h.h3->tp_nsec = ts.tv_nsec;
>   		hdrlen = sizeof(*h.h3);
> +		memset(h.h3->tp_padding, 0,
> +		       hdrlen - offsetof(struct tpacket3_hdr, tp_padding));
>   		break;
>   	default:
>   		BUG();
>

  reply	other threads:[~2013-12-16 10:10 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-16  8:12 [PATCH v3 2/3] packet: fill the gap of TPACKET_ALIGNMENT with zeros Atzm Watanabe
2013-12-16 10:09 ` Daniel Borkmann [this message]
2013-12-16 10:16   ` David Laight
2013-12-16 10:22     ` Daniel Borkmann
2013-12-16 12:41       ` Atzm Watanabe
2013-12-16 12:55         ` Daniel Borkmann
2013-12-16 16:48           ` Atzm Watanabe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52AED170.9020604@redhat.com \
    --to=dborkman@redhat.com \
    --cc=David.Laight@ACULAB.COM \
    --cc=atzm@stratosphere.co.jp \
    --cc=bhutchings@solarflare.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.