Message ID | 1486634281-10945-1-git-send-email-arvind.yadav.cs@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On Thursday, February 09, 2017 03:28:01 PM Arvind Yadav wrote: > Here, dss_init_ports is not handling return error form > dpi_init_port and sdi_init_port. Now dss_init_ports is returning > always 0. And it's making below code as a dead code. > > static int dss_bind(struct device *dev) > { > . > . > r = dss_init_ports(pdev); //dss_init_ports will return always 0 > if (r)// This condition will always false > goto err_init_ports; //Dead Code > . > . > } > > This change is to handle return error from dpi_init_port and > sdi_init_port. Also, It will remove dead code from function 'dss_bind'. > > Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> > --- Please include version history here when submitting new versions. > drivers/video/fbdev/omap2/omapfb/dss/dss.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c > index 47d7f69..87eb10c 100644 > --- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c > +++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c > @@ -946,6 +946,7 @@ static int dss_init_ports(struct platform_device *pdev) > struct device_node *parent = pdev->dev.of_node; > struct device_node *port; > int r; > + int ret = 0; > > if (parent == NULL) > return 0; > @@ -972,17 +973,20 @@ static int dss_init_ports(struct platform_device *pdev) > > switch (port_type) { > case OMAP_DISPLAY_TYPE_DPI: > - dpi_init_port(pdev, port); > + ret = dpi_init_port(pdev, port); > break; > case OMAP_DISPLAY_TYPE_SDI: > - sdi_init_port(pdev, port); > + ret = sdi_init_port(pdev, port); > break; > default: > break; > } > } while ((port = omapdss_of_get_next_port(parent, port)) != NULL); What about the other issue raised by me? Shouldn't initialization be stopped after first failure? i.e.: } while (!ret && (port = omapdss_of_get_next_port(parent, port)) != NULL); Otherwise it is possible to return a success in case when - initialization of the first port fails - initialization of the second port is successful > - return 0; > + if (ret) > + dss_uninit_ports(pdev); > + > + return ret; > } > > static void dss_uninit_ports(struct platform_device *pdev) Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Arvind, [auto build test ERROR on linus/master] [also build test ERROR on v4.10-rc7 next-20170209] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Arvind-Yadav/omapfb-dss-Handle-return-error-in-dss_init_ports/20170209-201712 config: arm-omap2plus_defconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm All error/warnings (new ones prefixed by >>): drivers/video/fbdev/omap2/omapfb/dss/dss.c: In function 'dss_init_ports': >> drivers/video/fbdev/omap2/omapfb/dss/dss.c:987:3: error: implicit declaration of function 'dss_uninit_ports' [-Werror=implicit-function-declaration] dss_uninit_ports(pdev); ^~~~~~~~~~~~~~~~ drivers/video/fbdev/omap2/omapfb/dss/dss.c: At top level: >> drivers/video/fbdev/omap2/omapfb/dss/dss.c:992:13: warning: conflicting types for 'dss_uninit_ports' static void dss_uninit_ports(struct platform_device *pdev) ^~~~~~~~~~~~~~~~ >> drivers/video/fbdev/omap2/omapfb/dss/dss.c:992:13: error: static declaration of 'dss_uninit_ports' follows non-static declaration drivers/video/fbdev/omap2/omapfb/dss/dss.c:987:3: note: previous implicit declaration of 'dss_uninit_ports' was here dss_uninit_ports(pdev); ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/dss_uninit_ports +987 drivers/video/fbdev/omap2/omapfb/dss/dss.c 981 default: 982 break; 983 } 984 } while ((port = omapdss_of_get_next_port(parent, port)) != NULL); 985 986 if (ret) > 987 dss_uninit_ports(pdev); 988 989 return ret; 990 } 991 > 992 static void dss_uninit_ports(struct platform_device *pdev) 993 { 994 struct device_node *parent = pdev->dev.of_node; 995 struct device_node *port; --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c index 47d7f69..87eb10c 100644 --- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c +++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c @@ -946,6 +946,7 @@ static int dss_init_ports(struct platform_device *pdev) struct device_node *parent = pdev->dev.of_node; struct device_node *port; int r; + int ret = 0; if (parent == NULL) return 0; @@ -972,17 +973,20 @@ static int dss_init_ports(struct platform_device *pdev) switch (port_type) { case OMAP_DISPLAY_TYPE_DPI: - dpi_init_port(pdev, port); + ret = dpi_init_port(pdev, port); break; case OMAP_DISPLAY_TYPE_SDI: - sdi_init_port(pdev, port); + ret = sdi_init_port(pdev, port); break; default: break; } } while ((port = omapdss_of_get_next_port(parent, port)) != NULL); - return 0; + if (ret) + dss_uninit_ports(pdev); + + return ret; } static void dss_uninit_ports(struct platform_device *pdev)
Here, dss_init_ports is not handling return error form dpi_init_port and sdi_init_port. Now dss_init_ports is returning always 0. And it's making below code as a dead code. static int dss_bind(struct device *dev) { . . r = dss_init_ports(pdev); //dss_init_ports will return always 0 if (r)// This condition will always false goto err_init_ports; //Dead Code . . } This change is to handle return error from dpi_init_port and sdi_init_port. Also, It will remove dead code from function 'dss_bind'. Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> --- drivers/video/fbdev/omap2/omapfb/dss/dss.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)