Message ID | 0df11a53b7100d93643483e9fcfaf4eb69b492a5.1450455971.git.mchehab@osg.samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Mauro Carvalho Chehab <mchehab@osg.samsung.com> wrote: > Smatch complains about where the au8293_data is placed: > > drivers/media/pci/cx23885/cx23885-dvb.c:2174 dvb_register() info: 'a8293_pdata' is not actually initialized (unreached code). > > It is not actually expected to have such initialization at > > switch { > foo = bar; > > case: > ... > } > > Not really sure how gcc does that, but this is something that I would > expect that different compilers would do different things. > > So, move the initialization outside the switch(), making smatch to > shut up one warning. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Yeah - checked with the compiler people: it's not really expected to initialise as expected. Acked-by: David Howells <dhowells@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Em Fri, 18 Dec 2015 16:52:40 +0000 David Howells <dhowells@redhat.com> escreveu: > Mauro Carvalho Chehab <mchehab@osg.samsung.com> wrote: > > > Smatch complains about where the au8293_data is placed: > > > > drivers/media/pci/cx23885/cx23885-dvb.c:2174 dvb_register() info: 'a8293_pdata' is not actually initialized (unreached code). > > > > It is not actually expected to have such initialization at > > > > switch { > > foo = bar; > > > > case: > > ... > > } > > > > Not really sure how gcc does that, but this is something that I would > > expect that different compilers would do different things. > > > > So, move the initialization outside the switch(), making smatch to > > shut up one warning. > > > > Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> > > Yeah - checked with the compiler people: it's not really expected to > initialise as expected. Thank you for checking it! Yeah, the above code weren't smelling well ;) Good to know for sure that such constructions may not be doing what humans would expect... > Acked-by: David Howells <dhowells@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c index adabb0bc21ad..80319bb73d94 100644 --- a/drivers/media/pci/cx23885/cx23885-dvb.c +++ b/drivers/media/pci/cx23885/cx23885-dvb.c @@ -2168,10 +2168,11 @@ static int dvb_register(struct cx23885_tsport *port) } port->i2c_client_tuner = client_tuner; break; - case CX23885_BOARD_HAUPPAUGE_HVR5525: - switch (port->nr) { + case CX23885_BOARD_HAUPPAUGE_HVR5525: { struct m88rs6000t_config m88rs6000t_config; - struct a8293_platform_data a8293_pdata = { 0 }; + struct a8293_platform_data a8293_pdata = {}; + + switch (port->nr) { /* port b - satellite */ case 1: @@ -2267,6 +2268,7 @@ static int dvb_register(struct cx23885_tsport *port) break; } break; + } default: printk(KERN_INFO "%s: The frontend of your DVB/ATSC card " " isn't supported yet\n",
Smatch complains about where the au8293_data is placed: drivers/media/pci/cx23885/cx23885-dvb.c:2174 dvb_register() info: 'a8293_pdata' is not actually initialized (unreached code). It is not actually expected to have such initialization at switch { foo = bar; case: ... } Not really sure how gcc does that, but this is something that I would expect that different compilers would do different things. So, move the initialization outside the switch(), making smatch to shut up one warning. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> --- drivers/media/pci/cx23885/cx23885-dvb.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)