Re: [PATCH i-g-t 05/10] lib/xe: Return boolean from xe_wa()
Matt Roper <[email protected]> Wed, 29 Jul 2026 15:14:24 -0700
| Newsgroups | org.freedesktop.lists.igt-dev |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Jul 21, 2026 at 03:59:58PM -0300, Gustavo Sousa wrote: > The function xe_wa() will cause a warning to be printed when an error > condition is found. Since the current users of xe_wa() do not check > for errors, let's just convert the function to return a boolean. > > Checking for xe_wa(...) instead of xe_wa(...) > 0 feels more natural. > > Signed-off-by: Gustavo Sousa <[email protected]> > --- > lib/xe/xe_wa.c | 11 ++++++----- > lib/xe/xe_wa.h | 4 +++- > tests/intel/xe_oa.c | 2 +- > 3 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/lib/xe/xe_wa.c b/lib/xe/xe_wa.c > index 0f4d2edc0795..8c8f7156c21f 100644 > --- a/lib/xe/xe_wa.c > +++ b/lib/xe/xe_wa.c > @@ -108,20 +108,21 @@ static bool debugfs_dump_has_wa(char *dump, const char *wa) > * @fd: A drm file descriptor. > * @wa: Name of the workaround to be checked. > * > - * Returns 1 if enabled, 0 if disabled, -1 on error. > + * Return a boolean indicating whether the workaround is enabled. > + * On error, returns false and a warning is printed. > */ > -int xe_wa(int fd, const char *wa) > +bool xe_wa(int fd, const char *wa) > { > char **dumps = xe_device_get(fd)->wa_cache; > > if (igt_warn_on(!dumps)) > - return -1; > + return false; Should we use an igt_assert() so that failures here get propagated up as test failures? Matt > > for (char **dump = dumps; *dump; dump++) > if (debugfs_dump_has_wa(*dump, wa)) > - return 1; > + return true; > > - return 0; > + return false; > } > > /** > diff --git a/lib/xe/xe_wa.h b/lib/xe/xe_wa.h > index f0a826553df8..aa1c50c0f9c9 100644 > --- a/lib/xe/xe_wa.h > +++ b/lib/xe/xe_wa.h > @@ -6,9 +6,11 @@ > #ifndef XE_WA_H > #define XE_WA_H > > +#include <stdbool.h> > + > struct xe_device; > > -int xe_wa(int fd, const char *wa); > +bool xe_wa(int fd, const char *wa); > > void xe_wa_build_cache(struct xe_device *xe_dev); > void xe_wa_free_cache(struct xe_device *xe_dev); > diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c > index fcf1d71a167f..bdaa7141004b 100644 > --- a/tests/intel/xe_oa.c > +++ b/tests/intel/xe_oa.c > @@ -2678,7 +2678,7 @@ test_non_zero_reason(const struct drm_xe_oa_unit *oau, size_t oa_buffer_size) > * can result in buffer overflows. > */ > if (oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_MERT && > - xe_wa(drm_fd, "14026633728") > 0) { > + xe_wa(drm_fd, "14026633728")) { > oa_exponent = max(oa_exponent, 8); > properties[9] = oa_exponent; > } > > -- > 2.55.0 > -- Matt Roper Graphics Software Engineer Linux GPU Platform Enablement Intel Corporation