dib7000p_get_stats: ‘i’ is used uninitialized (was: Re: [media] dib7000p: Add DVBv5 stats support)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mauro,

On Wed, Aug 6, 2014 at 2:03 AM, Linux Kernel Mailing List
<linux-kernel@xxxxxxxxxxxxxxx> wrote:
> Gitweb:     http://git.kernel.org/linus/;a=commit;h=041ad449683bb2d54a7f082d78ec15bbc958a175
> Commit:     041ad449683bb2d54a7f082d78ec15bbc958a175
> Parent:     d44913c1e547df19b2dc0b527f92a4b4354be23a
> Refname:    refs/heads/master
> Author:     Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx>
> AuthorDate: Thu May 29 14:44:56 2014 -0300
> Committer:  Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx>
> CommitDate: Tue Jun 17 12:04:50 2014 -0300
>
>     [media] dib7000p: Add DVBv5 stats support
>
>     Adds DVBv5 stats support. For now, just mimic whatever dib8000
>     does, as they're very similar, with regards to statistics.
>
>     However, dib7000p_get_time_us() likely require some
>     adjustments, as I didn't actually reviewed the formula
>     for it to work with DVB-T. Still, better than nothing,
>     as latter patches can improve it.

Yes, it does, as its "layer" parameter is not used....

> diff --git a/drivers/media/dvb-frontends/dib7000p.c b/drivers/media/dvb-frontends/dib7000p.c
> index d36fa0d..c41f90d 100644
> --- a/drivers/media/dvb-frontends/dib7000p.c
> +++ b/drivers/media/dvb-frontends/dib7000p.c

> +/* FIXME: may require changes - this one was borrowed from dib8000 */
> +static u32 dib7000p_get_time_us(struct dvb_frontend *demod, int layer)
> +{

[...]

> +}

> +static int dib7000p_get_stats(struct dvb_frontend *demod, fe_status_t stat)
> +{
> +       struct dib7000p_state *state = demod->demodulator_priv;
> +       struct dtv_frontend_properties *c = &demod->dtv_property_cache;
> +       int i;

[...]

> +       /* Get PER measures */
> +       if (show_per_stats) {
> +               dib7000p_read_unc_blocks(demod, &val);
> +
> +               c->block_error.stat[0].scale = FE_SCALE_COUNTER;
> +               c->block_error.stat[0].uvalue += val;
> +
> +               time_us = dib7000p_get_time_us(demod, i);

drivers/media/dvb-frontends/dib7000p.c: In function ‘dib7000p_get_stats’:
drivers/media/dvb-frontends/dib7000p.c:1972: warning: ‘i’ is used
uninitialized in this function

So far this is harmless, as the "layer" parameter isn't used, but this
deserves some cleanup.

> +               if (time_us) {
> +                       blocks = 1250000ULL * 1000000ULL;
> +                       do_div(blocks, time_us * 8 * 204);
> +                       c->block_count.stat[0].scale = FE_SCALE_COUNTER;
> +                       c->block_count.stat[0].uvalue += blocks;
> +               }
> +       }
> +       return 0;
> +}

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux