lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 07 Jun 2021 13:57:06 -0700 From: Joe Perches <joe@...ches.com> To: "Gustavo A. R. Silva" <gustavoars@...nel.org>, Jani Nikula <jani.nikula@...ux.intel.com>, Joonas Lahtinen <joonas.lahtinen@...ux.intel.com>, Rodrigo Vivi <rodrigo.vivi@...el.com>, David Airlie <airlied@...ux.ie>, Daniel Vetter <daniel@...ll.ch> Cc: intel-gfx@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org, linux-hardening@...r.kernel.org, Kees Cook <keescook@...omium.org> Subject: Re: [PATCH][next] drm/i915/gem: Fix fall-through warning for Clang 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); }
Powered by blists - more mailing lists