[lkml]   [2010]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] af_packet: Don't use skb after dev_queue_xmit()
    On Thu, Jan 07, 2010 at 10:03:51AM -0500, Michael Breuer wrote:
    > On 1/7/2010 3:21 AM, Jarek Poplawski wrote:
    > >On Thu, Jan 07, 2010 at 02:55:20AM -0500, Michael Breuer wrote:
    > >>Unless I misread the code, I think that in some cases e skb is actually
    > >>freed if the cfq (among others perhaps) scheduler returns an error on
    > >>enqueue (flow control perhaps). Thus with alternative 1, it is possible
    > >>that the skb is acted upon after being freed - this would be consistent
    > >>with the DMAR errors I saw.
    > >I can't see your point: could you give some scenario?
    > >
    > >Jarek P.
    > With NET_CLS_ACT set, net_dev_enqueue can return an error after
    > freeing the skb. Alternative 1 disregards the error and assumes the
    > skb is still valid. The original code and alternative 2 exit the
    > loop assuming the skb has been freed.

    Not exactly: alternative 1 disregards the error, and tries to send
    next skbs if the message was longer. After consuming all the message
    it returns without err code (at least wrt. dev_queue_xmit). This is
    quite often practice to skip dev_queue_xmit() return (try to grep in
    net\). It should never touch any part of an earlier sent skb.

    Jarek P.

     \ /
      Last update: 2010-01-07 18:59    [W:0.020 / U:60.860 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site