Re: [PATCH 3/9] async: Extend kfence to allow struct embedding

From: Peter Zijlstra
Date: Wed Jul 13 2016 - 06:32:40 EST


On Fri, Jun 24, 2016 at 10:08:47AM +0100, Chris Wilson wrote:
> @@ -151,7 +161,11 @@ static void kfence_free(struct kref *kref)
>
> WARN_ON(atomic_read(&fence->pending) > 0);
>
> - kfree(fence);
> + if (fence->flags) {
> + kfence_notify_t fn = (kfence_notify_t)fence->flags;

Maybe provide an inline helper for that conversion and also mask out the
low bits, just to be careful. You're assuming they're not set here,
which seems like a dangerous thing.

> + fn(fence);
> + } else
> + kfree(fence);

Also Codingstyle wants braces on both branches if its on one.