mirror of https://github.com/torvalds/linux.git
drm: Simplify drmm_alloc_ordered_workqueue return
Rather than returning ERR_PTR or NULL on failure, replace the NULL return with ERR_PTR(-ENOMEM). This simplifies error handling at the caller. While here, add kernel documentation for drmm_alloc_ordered_workqueue. Cc: Louis Chauvet <louis.chauvet@bootlin.com> Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com> Link: https://lore.kernel.org/r/20250702232831.3271328-2-matthew.brost@intel.com
This commit is contained in:
parent
b4cd18f485
commit
86c947b363
|
|
@ -302,8 +302,6 @@ struct vkms_output *vkms_crtc_init(struct drm_device *dev, struct drm_plane *pri
|
|||
vkms_out->composer_workq = drmm_alloc_ordered_workqueue(dev, "vkms_composer", 0);
|
||||
if (IS_ERR(vkms_out->composer_workq))
|
||||
return ERR_CAST(vkms_out->composer_workq);
|
||||
if (!vkms_out->composer_workq)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
return vkms_out;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,14 +129,25 @@ void __drmm_mutex_release(struct drm_device *dev, void *res);
|
|||
|
||||
void __drmm_workqueue_release(struct drm_device *device, void *wq);
|
||||
|
||||
/**
|
||||
* drmm_alloc_ordered_workqueue - &drm_device managed alloc_ordered_workqueue()
|
||||
* @dev: DRM device
|
||||
* @fmt: printf format for the name of the workqueue
|
||||
* @flags: WQ_* flags (only WQ_FREEZABLE and WQ_MEM_RECLAIM are meaningful)
|
||||
* @args: args for @fmt
|
||||
*
|
||||
* This is a &drm_device-managed version of alloc_ordered_workqueue(). The
|
||||
* allocated workqueue is automatically destroyed on the final drm_dev_put().
|
||||
*
|
||||
* Returns: workqueue on success, negative ERR_PTR otherwise.
|
||||
*/
|
||||
#define drmm_alloc_ordered_workqueue(dev, fmt, flags, args...) \
|
||||
({ \
|
||||
struct workqueue_struct *wq = alloc_ordered_workqueue(fmt, flags, ##args); \
|
||||
wq ? ({ \
|
||||
int ret = drmm_add_action_or_reset(dev, __drmm_workqueue_release, wq); \
|
||||
ret ? ERR_PTR(ret) : wq; \
|
||||
}) : \
|
||||
wq; \
|
||||
}) : ERR_PTR(-ENOMEM); \
|
||||
})
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue