From: Stephen Hemminger <shemminger@vyatta.com>
To: "Brandeburg, Jesse" <jesse.brandeburg@intel.com>
Cc: "Alex Villacís Lasso" <avillaci@ceibo.fiec.espol.edu.ec>,
"irda-users@lists.sourceforge.net"
<irda-users@lists.sourceforge.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"David Miller" <davem@davemloft.net>
Subject: Re: Regression: Recent networking (qdisc?) patches break irda_get_next_speed()
Date: Thu, 23 Oct 2008 16:16:41 -0700 [thread overview]
Message-ID: <20081023161641.0d4f714d@extreme> (raw)
In-Reply-To: <F169D4F5E1F1974DBFAFABF47F60C10A069DFD1F@orsmsx507.amr.corp.intel.com>
On Thu, 23 Oct 2008 15:13:02 -0700
"Brandeburg, Jesse" <jesse.brandeburg@intel.com> wrote:
> Alex Villacís Lasso wrote:
> <snip>
>
> >> The SKB control block is not aliased.
> >>
>
> ...
> >> IRDA cannot depend upon the SKB control block not changing across
> >> the dev_queue_xmit() call.
> >>
> >>
> > Let me see if I understood. So the particular illegal thing the IRDA
> > stack is doing is the access of the control block in the middle of the
> > driver transmit routine (via irda_get_next_speed() and friends). This
> > information should be stored somewhere else. Exactly *where* to store
> > it is the main problem to solve.
> >
> > What is the proper way (if any) to store per-packet parameters (other
> > than the payload itself) which are specific to a particular layer
> > (IrDA in this case) and which are needed by drivers in order to work
> > correctly? The control block gets overwritten by the time the driver
> > proc (hard_start_xmit) is called, so this approach is now ruled out. I
> > was thinking about storing a copy of the parameters (struct
> > irda_skb_cb) as a header within the payload itself (skb->data[]), but
> > I am not sure about whether this approach is a good design decision.
> > I am open to suggestions on where to place the parameters.
>
> Isn't this what the data that is skb_reserve'd at the beginning of skb's allocated by netdev_alloc_skb is for? If you take an extra reference to the skb and/or use a destructor hook you should be good, right?
>
> you should just be able to push ->data using skb_reserve(sizeof your private data) in the beginning of the skb, or is that a horrible idea Dave?
That space is reserved for a copy of the ethernet header when doing bridge/filtering.
Yes, its a stupid, undocumented hack.
If irda needs additional protocol space, it could advertise a larger hardware header
size and use the additional space for hidden protocol info.
next prev parent reply other threads:[~2008-10-23 23:16 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-21 18:20 Regression: Recent networking (qdisc?) patches break irda_get_next_speed() Alex Villacís Lasso
2008-10-21 19:37 ` Jarek Poplawski
2008-10-21 23:37 ` Alex Villacís Lasso
2008-10-21 23:41 ` David Miller
[not found] ` <20081021.164121.257737412.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2008-10-23 0:24 ` Alex Villacís Lasso
2008-10-23 22:13 ` Brandeburg, Jesse
2008-10-23 23:16 ` Stephen Hemminger [this message]
2008-10-24 0:21 ` David Miller
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=20081023161641.0d4f714d@extreme \
--to=shemminger@vyatta.com \
--cc=avillaci@ceibo.fiec.espol.edu.ec \
--cc=davem@davemloft.net \
--cc=irda-users@lists.sourceforge.net \
--cc=jesse.brandeburg@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).