lkml.org 
[lkml]   [2003]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[I810_AUDIO] 2/x: Fix wait queue race in drain_dac
    From
    Hi:

    This patch fixes the value of swptr in case of an underrun/overrun.

    Overruns/underruns probably won't occur at all when the driver is
    fixed properly, but this doesn't hurt.
    --
    Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
    Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
    Home Page: http://gondor.apana.org.au/~herbert/
    PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
    Index: kernel-source-2.4/drivers/sound/i810_audio.c
    ===================================================================
    RCS file: /home/gondolin/herbert/src/CVS/debian/kernel-source-2.4/drivers/sound/i810_audio.c,v
    retrieving revision 1.9
    diff -u -r1.9 i810_audio.c
    --- kernel-source-2.4/drivers/sound/i810_audio.c 22 Nov 2003 07:05:27 -0000 1.9
    +++ kernel-source-2.4/drivers/sound/i810_audio.c 22 Nov 2003 07:11:25 -0000
    @@ -1445,8 +1445,8 @@
    }
    continue;
    }
    - swptr = dmabuf->swptr;
    cnt = i810_get_available_read_data(state);
    + swptr = dmabuf->swptr;
    // this is to make the copy_to_user simpler below
    if(cnt > (dmabuf->dmasize - swptr))
    cnt = dmabuf->dmasize - swptr;
    @@ -1589,8 +1589,8 @@
    continue;
    }

    - swptr = dmabuf->swptr;
    cnt = i810_get_free_write_space(state);
    + swptr = dmabuf->swptr;
    /* Bound the maximum size to how much we can copy to the
    * dma buffer before we hit the end. If we have more to
    * copy then it will get done in a second pass of this
    \
     
     \ /
      Last update: 2005-03-22 13:58    [W:0.021 / U:62.208 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site