diff mbox series

drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init()

Message ID 20230924064159.14739-1-liuhaoran14@163.com
State New
Headers show
Series drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init() | expand

Commit Message

Haoran Liu Sept. 24, 2023, 6:41 a.m. UTC
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 <liuhaoran14@163.com>
---
 .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c    | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

Comments

kernel test robot Sept. 24, 2023, 8:59 a.m. UTC | #1
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-lkp@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-lkp@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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309241619.RHCRkWza-lkp@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 = &mdp4_lvds_connector->base;
   109	
   110		ret = drm_connector_init(dev, connector, &mdp4_lvds_connector_funcs,
   111					 DRM_MODE_CONNECTOR_LVDS);
   112	
   113		if (ret)
 > 114			return ret;
diff mbox series

Patch

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 = &mdp4_lvds_connector->base;
 
-	drm_connector_init(dev, connector, &mdp4_lvds_connector_funcs,
-			DRM_MODE_CONNECTOR_LVDS);
+	ret = drm_connector_init(dev, connector, &mdp4_lvds_connector_funcs,
+				 DRM_MODE_CONNECTOR_LVDS);
+
+	if (ret)
+		return ret;
+
 	drm_connector_helper_add(connector, &mdp4_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;
 }