From: Matthew Brost Date: Wed, 23 Apr 2025 17:17:24 +0000 (-0700) Subject: drm/print: Add drm_coredump_printer_is_full X-Git-Tag: v6.16-rc1~33^2~26^2~5 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=fa4b8b3e3a11765a42066f23db7100c09a661c25;p=linux-block.git drm/print: Add drm_coredump_printer_is_full Add drm_coredump_printer_is_full which indicates if a drm printer's output is full. Useful to short circuit coredump printing once printer's output is full. v2: - s/drm_printer_is_full/drm_coredump_printer_is_full (Jani) v3: - Bail if not a coredump printer (Michal) Signed-off-by: Matthew Brost Reviewed-by: Jonathan Cavitt Link: https://lore.kernel.org/r/20250423171725.597955-4-matthew.brost@intel.com --- diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index f31eba1c7cab..ab017b05e175 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -344,6 +344,26 @@ drm_coredump_printer(struct drm_print_iterator *iter) return p; } +/** + * drm_coredump_printer_is_full() - DRM coredump printer output is full + * @p: DRM coredump printer + * + * DRM printer output is full, useful to short circuit coredump printing once + * printer is full. + * + * RETURNS: + * True if DRM coredump printer output buffer is full, False otherwise + */ +static inline bool drm_coredump_printer_is_full(struct drm_printer *p) +{ + struct drm_print_iterator *iterator = p->arg; + + if (p->printfn != __drm_printfn_coredump) + return true; + + return !iterator->remain; +} + /** * drm_seq_file_printer - construct a &drm_printer that outputs to &seq_file * @f: the &struct seq_file to output to