public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David Miller <davem@davemloft.net>,
	mb@bu3sch.de, netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org
Subject: Re: mac80211 truesize bugs
Date: Sun, 04 May 2008 14:28:08 +0200	[thread overview]
Message-ID: <1209904088.4065.11.camel@johannes.berg> (raw)
In-Reply-To: <1209900355.6210.64.camel@johannes.berg> (sfid-20080504_132540_547555_169FA253)

[-- Attachment #1: Type: text/plain, Size: 1633 bytes --]


> http://johannes.sipsolutions.net/patches/kernel/all/2008-05-04-11%3a23/027-skb-alloc-stackdump.patch

This was broken when cloning, this one works:

http://johannes.sipsolutions.net/patches/kernel/all/2008-05-04-12%3a19/027-skb-alloc-stackdump.patch

Now I see the problem. I increased the LL_MAX_HEADER constant, but all
code uses dev->hard_header_len to allocate the headroom (via
LL_RESERVED_SPACE), e.g. packet.c:

packet_sendmsg_spkt:
        skb = sock_wmalloc(sk, len + LL_RESERVED_SPACE(dev), 0, GFP_KERNEL);  
   
[...]
        /* FIXME: Save some space for broken drivers that write a
         * hard header at transmission time by themselves. PPP is the
         * notable one here. This should really be fixed at the driver level.
         */
        skb_reserve(skb, LL_RESERVED_SPACE(dev));

This one even complains about "broken drivers" (like PPP, but wireless
code behaves like this too). This is getting really really really
frustrating. All kinds of comments all over tell you how this all is
wrong but NEVER actually tell you how to do it correctly!

As far as I understand, I cannot change dev->hard_header_len because I
want/need an ethernet header and not more. But then I don't get enough
headroom.

Oddly enough, I even get a warning from tcp_connect() although that
actually does
        /* Reserve space for headers. */
        skb_reserve(buff, MAX_TCP_HEADER);

which should definitely be sufficient. Maybe the packet gets cloned
somewhere? On the other hand, IPv4 raw's raw_send_hdrinc reserves
LL_RESERVED_SPACE(rt->u.dst.dev) like af_packet....

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  reply	other threads:[~2008-05-04 12:28 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-01  2:02 mac80211 truesize bugs Johannes Berg
2008-05-01  8:58 ` Michael Buesch
2008-05-01  9:08   ` Johannes Berg
2008-05-01  9:20     ` David Miller
2008-05-01  9:32       ` Johannes Berg
2008-05-01  9:43         ` David Miller
2008-05-01  9:48           ` Johannes Berg
2008-05-01  9:56             ` David Miller
2008-05-01 10:08               ` Johannes Berg
2008-05-01 10:32                 ` David Miller
2008-05-01 10:45                   ` Johannes Berg
2008-05-01 10:36           ` Herbert Xu
2008-05-01 10:49             ` David Miller
2008-05-01 10:53               ` David Miller
2008-05-01 10:58                 ` Johannes Berg
2008-05-01 11:03                   ` Herbert Xu
2008-05-02 20:38                     ` Johannes Berg
2008-05-02 23:33                       ` David Miller
2008-05-03  9:37                         ` Johannes Berg
2008-05-03 14:25                           ` Johannes Berg
2008-05-13  3:17                             ` David Miller
2008-05-13 20:39                               ` John W. Linville
2008-05-13 20:59                                 ` Johannes Berg
2008-05-13 21:12                                   ` Tomas Winkler
2008-05-13 21:37                                     ` Johannes Berg
2008-05-13 22:09                                       ` David Miller
2008-05-03 11:52                         ` Johannes Berg
2008-05-04  1:03                           ` David Miller
2008-05-04  1:42                             ` Johannes Berg
2008-05-04  2:02                               ` Herbert Xu
2008-05-04  2:08                                 ` Johannes Berg
2008-05-04  2:12                                   ` Herbert Xu
2008-05-04  2:22                                     ` Johannes Berg
2008-05-04  3:16                                       ` Herbert Xu
2008-05-04  8:47                                         ` Johannes Berg
2008-05-04  9:14                                           ` Johannes Berg
2008-05-04  9:44                                             ` Herbert Xu
2008-05-04  9:52                                               ` Johannes Berg
2008-05-04 11:25                                                 ` Johannes Berg
2008-05-04 12:28                                                   ` Johannes Berg [this message]
2008-05-04 12:45                                                     ` Herbert Xu
2008-05-04 12:48                                                       ` Johannes Berg
2008-05-04 12:52                                                       ` Johannes Berg
2008-05-04 12:56                                                         ` Herbert Xu
2008-05-04 13:00                                                           ` Johannes Berg
2008-05-04 14:06                                                       ` Johannes Berg
2008-05-04 16:03                                                         ` Johannes Berg
2008-05-04 17:47                                                           ` Johannes Berg
2008-05-04 22:45                                                         ` David Miller
2008-05-04 22:48                                                           ` Johannes Berg
2008-05-04 22:38                                         ` David Miller
2008-05-04  2:09                               ` Johannes Berg
2008-05-03 12:38                     ` Johannes Berg
2008-05-03 12:59                       ` Herbert Xu
2008-05-03 16:03                         ` Johannes Berg
2008-05-03 22:56                           ` Johannes Berg
2008-05-03 23:07                             ` David Miller
2008-05-03 23:15                               ` Johannes Berg
2008-05-01 11:02               ` Herbert Xu
2008-05-01 11:38               ` Johannes Berg
2008-05-03 23:24                 ` Johannes Berg
2008-05-03 23:32                   ` David Miller
2008-05-03 23:43                     ` Johannes Berg
2008-05-01 11:49               ` Johannes Berg
2008-05-01 12:05               ` Johannes Berg
2008-05-01  9:32     ` Michael Buesch
2008-05-01  9:34       ` Johannes Berg
2008-05-04  1:55 ` frame status API? (was: mac80211 truesize bugs) Johannes Berg

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=1209904088.4065.11.camel@johannes.berg \
    --to=johannes@sipsolutions.net \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mb@bu3sch.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox