media: atomisp: Fix smatch warnings caused by atomisp custom assert() usage
The atomisp code base has a custom assert() macro, a couple of functions use this in a construction like the following: assert(pipe); assert(pipe->stream); if ((!pipe) || (!pipe->stream)) { ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE, "allocate_mipi_frames(%p) exit: ...\n", pipe); return -EINVAL; } The second assert is seen by smatch as dereferencing "pipe" in the above example (and dereferencing "dvs_6axis_config" in the other case). Following by the dereferenced variable being checked (a second time) in the following if () statement. This triggers the following smatch warnings: drivers/staging/media/atomisp/pci/sh_css_mipi.c:356 allocate_mipi_frames() warn: variable dereferenced before check 'pipe' (see line 355) drivers/staging/media/atomisp/pci/sh_css_mipi.c:562 send_mipi_frames() warn: variable dereferenced before check 'pipe' (see line 561) drivers/staging/media/atomisp/pci/sh_css_param_dvs.c:208 free_dvs_6axis_table() warn: variable dereferenced before check 'dvs_6axis_config' (see line 206) The custom assert() macro actually expands to a BUG() call and BUG() calls should not be used in the kernel. Remove the assert() calls to fix the smatch warnings and in case of [allocate|send]_mipi_frames() also remove the if () return -EINVAL block since these functions are never called with a NULL pipe. Reported-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
a2c7703246
commit
7b4846b651
|
@ -351,15 +351,6 @@ allocate_mipi_frames(struct ia_css_pipe *pipe,
|
|||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
|
||||
"allocate_mipi_frames(%p) enter:\n", pipe);
|
||||
|
||||
assert(pipe);
|
||||
assert(pipe->stream);
|
||||
if ((!pipe) || (!pipe->stream)) {
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
|
||||
"allocate_mipi_frames(%p) exit: pipe or stream is null.\n",
|
||||
pipe);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (IS_ISP2401 && pipe->stream->config.online) {
|
||||
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
|
||||
"allocate_mipi_frames(%p) exit: no buffers needed for 2401 pipe mode.\n",
|
||||
|
@ -557,13 +548,6 @@ send_mipi_frames(struct ia_css_pipe *pipe)
|
|||
|
||||
IA_CSS_ENTER_PRIVATE("pipe=%p", pipe);
|
||||
|
||||
assert(pipe);
|
||||
assert(pipe->stream);
|
||||
if (!pipe || !pipe->stream) {
|
||||
IA_CSS_ERROR("pipe or stream is null");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* multi stream video needs mipi buffers */
|
||||
/* nothing to be done in other cases. */
|
||||
if (pipe->stream->config.mode != IA_CSS_INPUT_MODE_BUFFERED_SENSOR) {
|
||||
|
|
|
@ -202,9 +202,6 @@ generate_dvs_6axis_table_from_config(struct ia_css_dvs_6axis_config
|
|||
void
|
||||
free_dvs_6axis_table(struct ia_css_dvs_6axis_config **dvs_6axis_config)
|
||||
{
|
||||
assert(dvs_6axis_config);
|
||||
assert(*dvs_6axis_config);
|
||||
|
||||
if ((dvs_6axis_config) && (*dvs_6axis_config)) {
|
||||
IA_CSS_ENTER_PRIVATE("dvs_6axis_config %p", (*dvs_6axis_config));
|
||||
if ((*dvs_6axis_config)->xcoords_y) {
|
||||
|
|
Loading…
Reference in New Issue