media: pci: cx23885: handle adding to list failure
[ Upstream commit c5d59528e24ad22500347b199d52b9368e686a42 ] altera_hw_filt_init() which calls append_internal() assumes that the node was successfully linked in while in fact it can silently fail. So the call-site needs to set return to -ENOMEM on append_internal() returning NULL and exit through the err path. Fixes: 349bcf02e361 ("[media] Altera FPGA based CI driver module") Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4bdf5ec12d
commit
2a55f0985d
@ -660,6 +660,10 @@ static int altera_hw_filt_init(struct altera_ci_config *config, int hw_filt_nr)
|
||||
}
|
||||
|
||||
temp_int = append_internal(inter);
|
||||
if (!temp_int) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
inter->filts_used = 1;
|
||||
inter->dev = config->dev;
|
||||
inter->fpga_rw = config->fpga_rw;
|
||||
@ -694,6 +698,7 @@ err:
|
||||
__func__, ret);
|
||||
|
||||
kfree(pid_filt);
|
||||
kfree(inter);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -728,6 +733,10 @@ int altera_ci_init(struct altera_ci_config *config, int ci_nr)
|
||||
}
|
||||
|
||||
temp_int = append_internal(inter);
|
||||
if (!temp_int) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
inter->cis_used = 1;
|
||||
inter->dev = config->dev;
|
||||
inter->fpga_rw = config->fpga_rw;
|
||||
@ -796,6 +805,7 @@ err:
|
||||
ci_dbg_print("%s: Cannot initialize CI: Error %d.\n", __func__, ret);
|
||||
|
||||
kfree(state);
|
||||
kfree(inter);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user