[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20090802.185941.120840905.davem@davemloft.net>
Date: Sun, 02 Aug 2009 18:59:41 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: dada1@...mosbay.com
Cc: netdev@...r.kernel.org, jussi.kivilinna@...et.fi
Subject: Re: [PATCH] sch_teql: should not dereference skb after
ndo_start_xmit
From: Eric Dumazet <dada1@...mosbay.com>
Date: Tue, 19 May 2009 03:34:03 +0200
> Looking again at teql_master_xmit(), I wonder if there is another
> problem in it.
>
> int subq = skb_get_queue_mapping(skb);
>
> But as a matter of fact, following code assumes subq is 0
I looked into this again, and damn this is tough to deal with.
The code works as-is, since teql devices have only 1 queue we
can assume queue 0 and we only end up using one of the slave
devices queues too.
I tried to export dev_pick_tx() (renaming it to netdev_pick_tx()
to avoid global namespace pollution) but then I realized that
we can't just whack the subq here.
If this gets punted back to the caller and we don't actually
send out the packet, we can't leave the new skb->queue_index
in there as teql's multiqueue parameters are what will be
checked and used against this SKB again.
I suppose we could restore the old queue index value when we
exhaust the slaves and can't transmit, but is getting messy for
sure.
Since the code works properly, and this is merely a performance
issue, I'm deferring this again.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists