Re: [PATCH] vme: remove unneeded kfree

From: Linus Torvalds
Date: Fri Sep 07 2018 - 01:05:04 EST


On Thu, Sep 6, 2018 at 1:51 AM Ding Xiang
<dingxiang@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> put_device will call vme_dev_release to free vdev, kfree is
> unnecessary here.

That does seem to be the case. I think "unnecessary" is overly kind,
it does seem to be a double free.

Looks like the issue was introduced back in 2013 by commit
def1820d25fa ("vme: add missing put_device() after device_register()
fails").

It seems you should *either* kfree() the vdev, _or_ do put_device(),
but doing both seems wrong.

I presume the device_register() has never failed, and this being
vme-only I'm guessing there isn't a vibrant testing community.

Greg?

Linus