From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Joonwoo Park <joonwpark81@gmail.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org
Subject: Re: [PATCH 1/3] [LLC]: skb allocation size for responses
Date: Fri, 28 Mar 2008 10:12:02 -0300 [thread overview]
Message-ID: <20080328131202.GP14945@ghostprotocols.net> (raw)
In-Reply-To: <1206691159-10872-1-git-send-email-joonwpark81@gmail.com>
Em Fri, Mar 28, 2008 at 04:59:19PM +0900, Joonwoo Park escreveu:
> allocate the skb for llc responses with the received packet size by
> using the size adjustable llc_frame_alloc.
> don't allocate useless extra payload.
> cleanup magic numbers
>
> Signed-off-by: Joonwoo Park <joonwpark81@gmail.com>
<SNIP>
> diff --git a/net/llc/llc_sap.c b/net/llc/llc_sap.c
> index 2525165..46447e7 100644
> --- a/net/llc/llc_sap.c
> +++ b/net/llc/llc_sap.c
> @@ -24,20 +24,52 @@
> #include <net/tcp_states.h>
> #include <linux/llc.h>
>
> +#ifdef CONFIG_TR
> +static inline int __llc_tr_mac_header_len(unsigned short devtype)
> +{
> + if (devtype == ARPHDR_IEEE802_TR)
> + return sizeof(struct thr_hdr);
> + return 0;
> +}
> +#else
> +static inline int __llc_tr_mac_header_len(unsigned short devtype)
> +{
> + return 0;
> +}
> +#endif
Why not just:
static inline int __llc_tr_mac_header_len(unsigned short devtype)
{
#ifdef CONFIG_TR
if (devtype == ARPHDR_IEEE802_TR)
return sizeof(struct thr_hdr);
#endif
return 0;
}
?
> +static int llc_mac_header_len(unsigned short devtype)
> +{
> + switch (devtype) {
> + case ARPHRD_ETHER:
> + case ARPHRD_LOOPBACK:
> + return sizeof(struct ethhdr);
> + }
> +
> + return __llc_tr_mac_header_len(devtype);
> +}
Nah, just drop __llc_tr_mac_header_len altogether and have another case
entry for ARPHDR_IEEE802_TR.
> /**
> * llc_alloc_frame - allocates sk_buff for frame
> * @dev: network device this skb will be sent over
> + * @type: pdu type to allocate
> + * @data_size: data size to allocate
> *
> * Allocates an sk_buff for frame and initializes sk_buff fields.
> * Returns allocated skb or %NULL when out of memory.
> */
> -struct sk_buff *llc_alloc_frame(struct sock *sk, struct net_device *dev)
> +struct sk_buff *llc_alloc_frame(struct sock *sk, struct net_device *dev,
> + u8 type, u32 data_size)
> {
> - struct sk_buff *skb = alloc_skb(128, GFP_ATOMIC);
> + int hlen = type == LLC_PDU_TYPE_U ? 3 : 4;
> + struct sk_buff *skb;
> +
> + hlen += llc_mac_header_len(dev->type);
> + skb = alloc_skb(hlen + data_size, GFP_ATOMIC);
>
> if (skb) {
> skb_reset_mac_header(skb);
> - skb_reserve(skb, 50);
> + skb_reserve(skb, hlen);
Well done, now it is better documented (LLC_PDU_TYPE_U passed) and uses
less memory, no more magic numbers, good.
- Arnaldo
next parent reply other threads:[~2008-03-28 13:12 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1206691159-10872-1-git-send-email-joonwpark81@gmail.com>
2008-03-28 13:12 ` Arnaldo Carvalho de Melo [this message]
2008-03-29 6:06 ` [PATCH 1/3] [LLC]: skb allocation size for responses Joonwoo Park
2008-03-29 12:02 ` Arnaldo Carvalho de Melo
2008-04-01 2:27 ` David Miller
2008-04-01 3:45 ` Joonwoo Park
2008-04-01 4:06 ` David Miller
[not found] <47e76779.0f98600a.36ef.ffff9c13@mx.google.com>
2008-03-24 17:16 ` Arnaldo Carvalho de Melo
2008-03-25 5:15 ` Joonwoo Park
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=20080328131202.GP14945@ghostprotocols.net \
--to=acme@redhat.com \
--cc=davem@davemloft.net \
--cc=joonwpark81@gmail.com \
--cc=netdev@vger.kernel.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.