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); }