]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/print: Improve drm_dbg_printer
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Fri, 17 May 2024 16:34:05 +0000 (18:34 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 6 Jun 2024 18:46:15 +0000 (14:46 -0400)
With recent introduction of a generic drm dev printk function, we
can now store and use location where drm_dbg_printer was invoked
and output it's symbolic name like we do for all drm debug prints.

Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240517163406.2348-3-michal.wajdeczko@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/drm_print.c
include/drm/drm_print.h

index 94e8f3542846aea266562b2fad684133e24fcf8c..cf24dfdeb6b27476048830adb019f5d735179ef8 100644 (file)
@@ -217,8 +217,7 @@ void __drm_printfn_dbg(struct drm_printer *p, struct va_format *vaf)
        if (!__drm_debug_enabled(category))
                return;
 
-       /* Note: __builtin_return_address(0) is useless here. */
-       __drm_dev_vprintk(dev, KERN_DEBUG, NULL, p->prefix, vaf);
+       __drm_dev_vprintk(dev, KERN_DEBUG, p->origin, p->prefix, vaf);
 }
 EXPORT_SYMBOL(__drm_printfn_dbg);
 
index 679a2086fbea1ae42a8f4f673a1f9ea19b6e4c43..5d9dff5149c999dee0d4753bfb64c3ac35403b7a 100644 (file)
@@ -175,6 +175,7 @@ struct drm_printer {
        void (*printfn)(struct drm_printer *p, struct va_format *vaf);
        void (*puts)(struct drm_printer *p, const char *str);
        void *arg;
+       const void *origin;
        const char *prefix;
        enum drm_debug_category category;
 };
@@ -332,6 +333,7 @@ static inline struct drm_printer drm_dbg_printer(struct drm_device *drm,
        struct drm_printer p = {
                .printfn = __drm_printfn_dbg,
                .arg = drm,
+               .origin = (const void *)_THIS_IP_, /* it's fine as we will be inlined */
                .prefix = prefix,
                .category = category,
        };