Re: [PATCH] drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init()
On Sun, 24 Sept 2023 at 09:42, liuhaoran wrote: > > This patch adds error-handling for the drm_connector_init() and > drm_connector_attach_encoder inside the mdp4_lvds_connector_init(). > > Signed-off-by: liuhaoran As pointed out by the kernel robot, this was not even compile tested. So NAK. Please use proper casts for error returns. > --- > .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c| 14 +++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c > b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c > index 7444b75c4215..62eb363ba90f 100644 > --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c > +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c > @@ -96,6 +96,7 @@ struct drm_connector *mdp4_lvds_connector_init(struct > drm_device *dev, > { > struct drm_connector *connector = NULL; > struct mdp4_lvds_connector *mdp4_lvds_connector; > + int ret; > > mdp4_lvds_connector = kzalloc(sizeof(*mdp4_lvds_connector), > GFP_KERNEL); > if (!mdp4_lvds_connector) > @@ -106,8 +107,12 @@ struct drm_connector *mdp4_lvds_connector_init(struct > drm_device *dev, > > connector = _lvds_connector->base; > > - drm_connector_init(dev, connector, _lvds_connector_funcs, > - DRM_MODE_CONNECTOR_LVDS); > + ret = drm_connector_init(dev, connector, _lvds_connector_funcs, > +DRM_MODE_CONNECTOR_LVDS); > + > + if (ret) > + return ret; > + > drm_connector_helper_add(connector, > _lvds_connector_helper_funcs); > > connector->polled = 0; > @@ -115,7 +120,10 @@ struct drm_connector *mdp4_lvds_connector_init(struct > drm_device *dev, > connector->interlace_allowed = 0; > connector->doublescan_allowed = 0; > > - drm_connector_attach_encoder(connector, encoder); > + ret = drm_connector_attach_encoder(connector, encoder); > + > + if (ret) > + return ret; > > return connector; > } > -- > 2.17.1 > -- With best wishes Dmitry
Re: [PATCH] drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init()
Hi liuhaoran, kernel test robot noticed the following build warnings: [auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on linus/master v6.6-rc2 next-20230921] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/liuhaoran/drm-msm-mdp4-Add-error-handling-in-mdp4_lvds_connector_init/20230924-144326 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/20230924064159.14739-1-liuhaoran14%40163.com patch subject: [PATCH] drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init() config: arm-defconfig (https://download.01.org/0day-ci/archive/20230924/202309241619.rhcrkwza-...@intel.com/config) compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230924/202309241619.rhcrkwza-...@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202309241619.rhcrkwza-...@intel.com/ All warnings (new ones prefixed by >>): drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c: In function 'mdp4_lvds_connector_init': >> drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c:114:24: warning: >> returning 'int' from a function with return type 'struct drm_connector *' >> makes pointer from integer without a cast [-Wint-conversion] 114 | return ret; |^~~ drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c:126:24: warning: returning 'int' from a function with return type 'struct drm_connector *' makes pointer from integer without a cast [-Wint-conversion] 126 | return ret; |^~~ vim +114 drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c 92 93 /* initialize connector */ 94 struct drm_connector *mdp4_lvds_connector_init(struct drm_device *dev, 95 struct device_node *panel_node, struct drm_encoder *encoder) 96 { 97 struct drm_connector *connector = NULL; 98 struct mdp4_lvds_connector *mdp4_lvds_connector; 99 int ret; 100 101 mdp4_lvds_connector = kzalloc(sizeof(*mdp4_lvds_connector), GFP_KERNEL); 102 if (!mdp4_lvds_connector) 103 return ERR_PTR(-ENOMEM); 104 105 mdp4_lvds_connector->encoder = encoder; 106 mdp4_lvds_connector->panel_node = panel_node; 107 108 connector = _lvds_connector->base; 109 110 ret = drm_connector_init(dev, connector, _lvds_connector_funcs, 111 DRM_MODE_CONNECTOR_LVDS); 112 113 if (ret) > 114 return ret; -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
[PATCH] drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init()
This patch adds error-handling for the drm_connector_init() and drm_connector_attach_encoder inside the mdp4_lvds_connector_init(). Signed-off-by: liuhaoran --- .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c| 14 +++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c index 7444b75c4215..62eb363ba90f 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c @@ -96,6 +96,7 @@ struct drm_connector *mdp4_lvds_connector_init(struct drm_device *dev, { struct drm_connector *connector = NULL; struct mdp4_lvds_connector *mdp4_lvds_connector; + int ret; mdp4_lvds_connector = kzalloc(sizeof(*mdp4_lvds_connector), GFP_KERNEL); if (!mdp4_lvds_connector) @@ -106,8 +107,12 @@ struct drm_connector *mdp4_lvds_connector_init(struct drm_device *dev, connector = _lvds_connector->base; - drm_connector_init(dev, connector, _lvds_connector_funcs, - DRM_MODE_CONNECTOR_LVDS); + ret = drm_connector_init(dev, connector, _lvds_connector_funcs, +DRM_MODE_CONNECTOR_LVDS); + + if (ret) + return ret; + drm_connector_helper_add(connector, _lvds_connector_helper_funcs); connector->polled = 0; @@ -115,7 +120,10 @@ struct drm_connector *mdp4_lvds_connector_init(struct drm_device *dev, connector->interlace_allowed = 0; connector->doublescan_allowed = 0; - drm_connector_attach_encoder(connector, encoder); + ret = drm_connector_attach_encoder(connector, encoder); + + if (ret) + return ret; return connector; } -- 2.17.1