lkml.org 
[lkml]   [2009]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [alsa-devel] [PATCH] sound/oss/pss: Fix test of unsigned in pss_reset_dsp() and pss_download_boot()
    Roel Kluin wrote:
    > limit and jiffies are unsigned so the test does not work.
    >
    > Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    > ---
    > Found using coccinelle: http://coccinelle.lip6.fr/
    >
    > diff --git a/sound/oss/pss.c b/sound/oss/pss.c
    > index 83f5ee2..9325f4d 100644
    > --- a/sound/oss/pss.c
    > +++ b/sound/oss/pss.c
    > @@ -269,7 +269,7 @@ static int pss_reset_dsp(pss_confdata * devc)
    > unsigned long i, limit = jiffies + HZ/10;
    >
    > outw(0x2000, REG(PSS_CONTROL));
    > - for (i = 0; i < 32768 && (limit-jiffies >= 0); i++)

    I think
    for (i = 0; i < 32768 && ( (int)(limit-jiffies) >= 0); i++)

    works better when jiffies wrap

    > + for (i = 0; i < 32768 && (limit >= jiffies); i++)
    > inw(REG(PSS_CONTROL));
    > outw(0x0000, REG(PSS_CONTROL));
    > return 1;
    > @@ -369,11 +369,11 @@ static int pss_download_boot(pss_confdata * devc, unsigned char *block, int size
    > outw(0, REG(PSS_DATA));
    >
    > limit = jiffies + HZ/10;
    > - for (i = 0; i < 32768 && (limit - jiffies >= 0); i++)
    > + for (i = 0; i < 32768 && (limit >= jiffies); i++)
    > val = inw(REG(PSS_STATUS));
    >
    > limit = jiffies + HZ/10;
    > - for (i = 0; i < 32768 && (limit-jiffies >= 0); i++)
    > + for (i = 0; i < 32768 && (limit >= jiffies); i++)
    > {
    > val = inw(REG(PSS_STATUS));
    > if (val & 0x4000)
    > _______________________________________________
    > Alsa-devel mailing list
    > Alsa-devel@alsa-project.org
    > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
    >



    \
     
     \ /
      Last update: 2009-12-17 01:25    [W:0.026 / U:0.360 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site