lkml.org 
[lkml]   [2003]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Problem with dev_kfree_skb_any() in 2.6.0
On Mon, Dec 29, 2003 at 08:51:57PM -0800, David S. Miller wrote:
> On Mon, 29 Dec 2003 23:09:14 -0500
> Jeff Garzik <jgarzik@pobox.com> wrote:
>
> > Not really... pretty much _all_ TX queue packet freeing occurs inside
> > an irq handler and inside the driver spinlock. Further, we don't want
> > to reinvent some sort of "queue skb for freeing" code in every driver.
>
> There is one important detail not mentioned.
>
> If we let the TX free occur in cpu IRQ disabled context, the
> BH to actually do the work will occur as some indeterminate
> time in the future after the top level IRQ spinlock release
> occurs.
>
> Unlike local_bh_enable(), local_irq_enable() does not run
> softirq work. Similarly when comparing IRQ handler return
> (which also runs softirq work if pending).
>
> This is the most important reason why the suggested change is wrong.

OK, agreed. But fixing it in the driver is still incorrect, also.

We need a single solution in the net stack, not a per-driver solution.

Look at the purpose behind his patch...

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:59    [W:0.805 / U:0.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site