Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>,
	intel-xe@lists.freedesktop.org
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Lucas De Marchi <lucas.demarchi@intel.com>
Subject: Re: [PATCH v2 1/4] drm/xe: Simplify function return using drmm_add_action_or_reset()
Date: Mon, 08 Apr 2024 18:08:10 +0300	[thread overview]
Message-ID: <87edbfao4l.fsf@intel.com> (raw)
In-Reply-To: <20240408144944.604448-2-himal.prasad.ghimiray@intel.com>

On Mon, 08 Apr 2024, Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> wrote:
> Instead of assigning the value of drmm_add_action_or_reset() to err and
> returning err in case of failure and 0 in case of success, simply return
> the result of drmm_add_action_or_reset().
>
> -v2:
> cleanup in xe_display too.
>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
> ---
>  drivers/gpu/drm/xe/display/xe_display.c | 8 +-------
>  drivers/gpu/drm/xe/xe_device.c          | 6 +-----
>  drivers/gpu/drm/xe/xe_gsc_proxy.c       | 7 +------
>  drivers/gpu/drm/xe/xe_gt.c              | 6 +-----
>  drivers/gpu/drm/xe/xe_guc_pc.c          | 6 +-----
>  drivers/gpu/drm/xe/xe_hw_engine.c       | 6 +-----
>  6 files changed, 6 insertions(+), 33 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> index 6ec375c1c4b6..63b27fbcdaca 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -101,8 +101,6 @@ static void display_destroy(struct drm_device *dev, void *dummy)
>   */
>  int xe_display_create(struct xe_device *xe)
>  {
> -	int err;
> -
>  	spin_lock_init(&xe->display.fb_tracking.lock);
>  
>  	xe->display.hotplug.dp_wq = alloc_ordered_workqueue("xe-dp", 0);
> @@ -110,11 +108,7 @@ int xe_display_create(struct xe_device *xe)
>  	drmm_mutex_init(&xe->drm, &xe->sb_lock);
>  	xe->enabled_irq_mask = ~0;
>  
> -	err = drmm_add_action_or_reset(&xe->drm, display_destroy, NULL);
> -	if (err)
> -		return err;
> -
> -	return 0;
> +	return drmm_add_action_or_reset(&xe->drm, display_destroy, NULL);

Up to the xe maintainers, but personally I prefer these as they were,
throughout the series.

The thing is, these functions will be maintained for a long time, and
there'll inevitably be a need to add more initializations and error
returns and cleanups. All of these "return foo()" style things make
future changes harder.


BR,
Jani.


>  }
>  
>  static void xe_display_fini_nommio(struct drm_device *dev, void *dummy)
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 9083f5e02dd9..ce8d632cb961 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -588,11 +588,7 @@ int xe_device_probe(struct xe_device *xe)
>  
>  	xe_hwmon_register(xe);
>  
> -	err = drmm_add_action_or_reset(&xe->drm, xe_device_sanitize, xe);
> -	if (err)
> -		return err;
> -
> -	return 0;
> +	return drmm_add_action_or_reset(&xe->drm, xe_device_sanitize, xe);
>  
>  err_fini_display:
>  	xe_display_driver_remove(xe);
> diff --git a/drivers/gpu/drm/xe/xe_gsc_proxy.c b/drivers/gpu/drm/xe/xe_gsc_proxy.c
> index 35e397b68dfc..1b908d238bd1 100644
> --- a/drivers/gpu/drm/xe/xe_gsc_proxy.c
> +++ b/drivers/gpu/drm/xe/xe_gsc_proxy.c
> @@ -403,7 +403,6 @@ static int proxy_channel_alloc(struct xe_gsc *gsc)
>  	struct xe_device *xe = gt_to_xe(gt);
>  	struct xe_bo *bo;
>  	void *csme;
> -	int err;
>  
>  	csme = kzalloc(GSC_PROXY_CHANNEL_SIZE, GFP_KERNEL);
>  	if (!csme)
> @@ -424,11 +423,7 @@ static int proxy_channel_alloc(struct xe_gsc *gsc)
>  	gsc->proxy.to_csme = csme;
>  	gsc->proxy.from_csme = csme + GSC_PROXY_BUFFER_SIZE;
>  
> -	err = drmm_add_action_or_reset(&xe->drm, proxy_channel_free, gsc);
> -	if (err)
> -		return err;
> -
> -	return 0;
> +	return drmm_add_action_or_reset(&xe->drm, proxy_channel_free, gsc);
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index cfa5da900461..2421a8d34324 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -560,11 +560,7 @@ int xe_gt_init(struct xe_gt *gt)
>  	if (err)
>  		return err;
>  
> -	err = drmm_add_action_or_reset(&gt_to_xe(gt)->drm, gt_fini, gt);
> -	if (err)
> -		return err;
> -
> -	return 0;
> +	return drmm_add_action_or_reset(&gt_to_xe(gt)->drm, gt_fini, gt);
>  }
>  
>  static int do_gt_reset(struct xe_gt *gt)
> diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
> index 521ae24f2314..509649d0e65e 100644
> --- a/drivers/gpu/drm/xe/xe_guc_pc.c
> +++ b/drivers/gpu/drm/xe/xe_guc_pc.c
> @@ -937,9 +937,5 @@ int xe_guc_pc_init(struct xe_guc_pc *pc)
>  
>  	pc->bo = bo;
>  
> -	err = drmm_add_action_or_reset(&xe->drm, xe_guc_pc_fini, pc);
> -	if (err)
> -		return err;
> -
> -	return 0;
> +	return drmm_add_action_or_reset(&xe->drm, xe_guc_pc_fini, pc);
>  }
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> index a688bb2d96ce..455f375c1cbd 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -550,11 +550,7 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
>  	if (xe->info.has_usm && hwe->class == XE_ENGINE_CLASS_COPY)
>  		gt->usm.reserved_bcs_instance = hwe->instance;
>  
> -	err = drmm_add_action_or_reset(&xe->drm, hw_engine_fini, hwe);
> -	if (err)
> -		return err;
> -
> -	return 0;
> +	return drmm_add_action_or_reset(&xe->drm, hw_engine_fini, hwe);
>  
>  err_kernel_lrc:
>  	xe_lrc_finish(&hwe->kernel_lrc);

-- 
Jani Nikula, Intel

  reply	other threads:[~2024-04-08 15:08 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-08 14:49 [PATCH 0/4] Cleanup and fixes in drmm_add_action_or_reset usage Himal Prasad Ghimiray
2024-04-08 14:49 ` [PATCH v2 1/4] drm/xe: Simplify function return using drmm_add_action_or_reset() Himal Prasad Ghimiray
2024-04-08 15:08   ` Jani Nikula [this message]
2024-04-09 19:48     ` Lucas De Marchi
2024-04-08 14:49 ` [PATCH v2 2/4] drm/xe: Incase of action add failure, remove sysfs only once Himal Prasad Ghimiray
2024-04-09 19:52   ` Lucas De Marchi
2024-04-10  8:16     ` Ghimiray, Himal Prasad
2024-04-10 13:49       ` Lucas De Marchi
2024-04-08 14:49 ` [PATCH v2 3/4] drm/xe: Incase of action add failure, free_gsc_pkt " Himal Prasad Ghimiray
2024-04-08 17:32   ` Daniele Ceraolo Spurio
2024-04-08 14:49 ` [PATCH v2 4/4] drm/xe: Return NULL incase of drmm_add_action_or_reset failure Himal Prasad Ghimiray
2024-04-09 19:55   ` Lucas De Marchi
2024-04-08 16:58 ` ✓ CI.Patch_applied: success for Cleanup and fixes in drmm_add_action_or_reset usage (rev2) Patchwork
2024-04-08 16:58 ` ✓ CI.checkpatch: " Patchwork
2024-04-08 16:59 ` ✓ CI.KUnit: " Patchwork
2024-04-08 17:11 ` ✓ CI.Build: " Patchwork
2024-04-08 17:14 ` ✓ CI.Hooks: " Patchwork
2024-04-08 17:15 ` ✓ CI.checksparse: " Patchwork
2024-04-08 17:42 ` ✓ CI.BAT: " Patchwork
2024-04-08 21:14 ` ✗ CI.FULL: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87edbfao4l.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=himal.prasad.ghimiray@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=lucas.demarchi@intel.com \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox