Message ID | c724416e-c8bc-6927-00c5-7a4c433c562f@web.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm/slab: One function call less in verify_redzone_free() | expand |
On Fri, 5 Jul 2019, Markus Elfring wrote: > Avoid an extra function call by using a ternary operator instead of > a conditional statement for a string literal selection. Well. I thought the compiler does that on its own? And the tenary operator makes the code difficult to read.
On Fri, 5 Jul 2019, Christopher Lameter wrote: > On Fri, 5 Jul 2019, Markus Elfring wrote: > > > Avoid an extra function call by using a ternary operator instead of > > a conditional statement for a string literal selection. > > Well. I thought the compiler does that on its own? And the tenary operator > makes the code difficult to read. > Right, and I don't understand the changelog: yes, there's one less function call in the source but functionally there's still a conditional; this isn't even optimizing DEBUG builds.
diff --git a/mm/slab.c b/mm/slab.c index 9df370558e5d..849b5c276588 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2701,10 +2701,10 @@ static inline void verify_redzone_free(struct kmem_cache *cache, void *obj) if (redzone1 == RED_ACTIVE && redzone2 == RED_ACTIVE) return; - if (redzone1 == RED_INACTIVE && redzone2 == RED_INACTIVE) - slab_error(cache, "double free detected"); - else - slab_error(cache, "memory outside object was overwritten"); + slab_error(cache, + redzone1 == RED_INACTIVE && redzone2 == RED_INACTIVE + ? "double free detected" + : "memory outside object was overwritten"); pr_err("%px: redzone 1:0x%llx, redzone 2:0x%llx\n", obj, redzone1, redzone2);