Re: [PATCH] drm/msm/mdp4: Add error handling in mdp4_lvds_connector_init()

2023-09-24 Thread Dmitry Baryshkov
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()

2023-09-24 Thread kernel test robot
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()

2023-09-24 Thread liuhaoran
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