On Mon, 2021-06-07 at 15:32 -0500, Gustavo A. R. Silva wrote:
In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning by explicitly adding a fallthrough; statement.
[]
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
[]
@@ -62,6 +62,7 @@ static void try_to_writeback(struct drm_i915_gem_object *obj, switch (obj->mm.madv) { case I915_MADV_DONTNEED: i915_gem_object_truncate(obj);
fallthrough;
case __I915_MADV_PURGED: return; }
I think fallthrough to return is not particularly nice to follow.
This is the current function:
static void try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags) { switch (obj->mm.madv) { case I915_MADV_DONTNEED: i915_gem_object_truncate(obj); case __I915_MADV_PURGED: return; }
if (flags & I915_SHRINK_WRITEBACK) i915_gem_object_writeback(obj); }
One of these might be more typical:
static void try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags) { switch (obj->mm.madv) { case I915_MADV_DONTNEED: i915_gem_object_truncate(obj); break; case __I915_MADV_PURGED: break; default: if (flags & I915_SHRINK_WRITEBACK) i915_gem_object_writeback(obj); break; } }
or maybe:
static void try_to_writeback(struct drm_i915_gem_object *obj, unsigned int flags) { switch (obj->mm.madv) { case I915_MADV_DONTNEED: i915_gem_object_truncate(obj); return; case __I915_MADV_PURGED: return; }
if (flags & I915_SHRINK_WRITEBACK) i915_gem_object_writeback(obj); }