media: pt1: fix logic when pt1_nr_tables is zero or negative
pt1_nr_tables is a modprobe parameter. The way the logic handles it, it can't be negative. However, user can set it to zero. If set to zero, however, it will cause troubles at pt1_init_tables(), as reported by smatch: drivers/media/pci/pt1/pt1.c:468 pt1_init_tables() error: uninitialized symbol 'first_pfn'. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
29236349aa
commit
e639c86955
|
@ -116,8 +116,8 @@ static u32 pt1_read_reg(struct pt1 *pt1, int reg)
|
||||||
return readl(pt1->regs + reg * 4);
|
return readl(pt1->regs + reg * 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pt1_nr_tables = 8;
|
static unsigned int pt1_nr_tables = 8;
|
||||||
module_param_named(nr_tables, pt1_nr_tables, int, 0);
|
module_param_named(nr_tables, pt1_nr_tables, uint, 0);
|
||||||
|
|
||||||
static void pt1_increment_table_count(struct pt1 *pt1)
|
static void pt1_increment_table_count(struct pt1 *pt1)
|
||||||
{
|
{
|
||||||
|
@ -443,6 +443,9 @@ static int pt1_init_tables(struct pt1 *pt1)
|
||||||
int i, ret;
|
int i, ret;
|
||||||
u32 first_pfn, pfn;
|
u32 first_pfn, pfn;
|
||||||
|
|
||||||
|
if (!pt1_nr_tables)
|
||||||
|
return 0;
|
||||||
|
|
||||||
tables = vmalloc(sizeof(struct pt1_table) * pt1_nr_tables);
|
tables = vmalloc(sizeof(struct pt1_table) * pt1_nr_tables);
|
||||||
if (tables == NULL)
|
if (tables == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -450,12 +453,10 @@ static int pt1_init_tables(struct pt1 *pt1)
|
||||||
pt1_init_table_count(pt1);
|
pt1_init_table_count(pt1);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
if (pt1_nr_tables) {
|
ret = pt1_init_table(pt1, &tables[0], &first_pfn);
|
||||||
ret = pt1_init_table(pt1, &tables[0], &first_pfn);
|
if (ret)
|
||||||
if (ret)
|
goto err;
|
||||||
goto err;
|
i++;
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (i < pt1_nr_tables) {
|
while (i < pt1_nr_tables) {
|
||||||
ret = pt1_init_table(pt1, &tables[i], &pfn);
|
ret = pt1_init_table(pt1, &tables[i], &pfn);
|
||||||
|
|
Loading…
Reference in New Issue