drm/hisilicon: Use drmm_kzalloc() instead of devm_kzalloc()
diff mbox series

Message ID 1593652914-19639-1-git-send-email-tiantao6@hisilicon.com
State New
Headers show
Series
  • drm/hisilicon: Use drmm_kzalloc() instead of devm_kzalloc()
Related show

Commit Message

Tian Tao July 2, 2020, 1:21 a.m. UTC
using the new API drmm_kzalloc() instead of devm_kzalloc()

Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
---
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Daniel Vetter July 2, 2020, 1:16 p.m. UTC | #1
On Thu, Jul 02, 2020 at 09:21:54AM +0800, Tian Tao wrote:
> using the new API drmm_kzalloc() instead of devm_kzalloc()
> 
> Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
> ---
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index a6fd0c2..2f20704 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -23,6 +23,7 @@
>  #include <drm/drm_print.h>
>  #include <drm/drm_probe_helper.h>
>  #include <drm/drm_vblank.h>
> +#include <drm/drm_managed.h>
>  
>  #include "hibmc_drm_drv.h"
>  #include "hibmc_drm_regs.h"
> @@ -267,7 +268,7 @@ static int hibmc_load(struct drm_device *dev)
>  	struct hibmc_drm_private *priv;
>  	int ret;
>  
> -	priv = devm_kzalloc(dev->dev, sizeof(*priv), GFP_KERNEL);
> +	priv = drmm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);

Hm would be nice if hisilicon could entirely switch over to embedding, and
stop using the driver private pointer. Quite a bit more work though. As-is
this change here isn't really brining you closer to that, pretty much all
the lifetime bugs around hotunload are still there.
-Daniel

>  	if (!priv) {
>  		DRM_ERROR("no memory to allocate for hibmc_drm_private\n");
>  		return -ENOMEM;
> -- 
> 2.7.4
>
Thomas Zimmermann July 2, 2020, 2:07 p.m. UTC | #2
Hi Daniel

Am 02.07.20 um 15:16 schrieb Daniel Vetter:
> On Thu, Jul 02, 2020 at 09:21:54AM +0800, Tian Tao wrote:
>> using the new API drmm_kzalloc() instead of devm_kzalloc()
>>
>> Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
>> ---
>>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
>> index a6fd0c2..2f20704 100644
>> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
>> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
>> @@ -23,6 +23,7 @@
>>  #include <drm/drm_print.h>
>>  #include <drm/drm_probe_helper.h>
>>  #include <drm/drm_vblank.h>
>> +#include <drm/drm_managed.h>
>>  
>>  #include "hibmc_drm_drv.h"
>>  #include "hibmc_drm_regs.h"
>> @@ -267,7 +268,7 @@ static int hibmc_load(struct drm_device *dev)
>>  	struct hibmc_drm_private *priv;
>>  	int ret;
>>  
>> -	priv = devm_kzalloc(dev->dev, sizeof(*priv), GFP_KERNEL);
>> +	priv = drmm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
> 
> Hm would be nice if hisilicon could entirely switch over to embedding, and
> stop using the driver private pointer. Quite a bit more work though. As-is
> this change here isn't really brining you closer to that, pretty much all
> the lifetime bugs around hotunload are still there.

Well, it's a first step. The follow-up patch for embedding connector and
encoder removes more instances of devm_kzalloc().

Although I have to say, I'd rather review a longer patch series that
fully addresses the problem, instead the current one-by-one approach.

Best regards
Thomas

> -Daniel
> 
>>  	if (!priv) {
>>  		DRM_ERROR("no memory to allocate for hibmc_drm_private\n");
>>  		return -ENOMEM;
>> -- 
>> 2.7.4
>>
>

Patch
diff mbox series

diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index a6fd0c2..2f20704 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -23,6 +23,7 @@ 
 #include <drm/drm_print.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/drm_vblank.h>
+#include <drm/drm_managed.h>
 
 #include "hibmc_drm_drv.h"
 #include "hibmc_drm_regs.h"
@@ -267,7 +268,7 @@  static int hibmc_load(struct drm_device *dev)
 	struct hibmc_drm_private *priv;
 	int ret;
 
-	priv = devm_kzalloc(dev->dev, sizeof(*priv), GFP_KERNEL);
+	priv = drmm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv) {
 		DRM_ERROR("no memory to allocate for hibmc_drm_private\n");
 		return -ENOMEM;