On Mon, May 28, 2018 at 11:28:41AM +0300, Laurent Pinchart wrote: > and I still get the same warning. I had to write the following (which is > obviously not correct) to silence the warning. > > if (pipe->num_inputs > 2) > brx = &vsp1->bru->entity; > else if (pipe->brx) > brx = pipe->brx; > else if (!vsp1->bru->entity.pipe) > brx = &vsp1->bru->entity; > else { > (void)vsp1->brs->entity; > brx = &vsp1->brs->entity; > } > > Both the (void)vsp1->brs->entity and the removal of the !drm_pipe- > >force_brx_release were needed, any of those on its own didn't fix the > problem. The problem in this case is the first "brx = &vsp1->bru->entity;". Smatch assumes &vsp1->bru->entity can be == to pipe->brx and NULL. Adding a "(void)vsp1->bru->entity;" on that path will silence the warning (hopefully). regards, dan carpenter