Re: [PATCH] staging: bcm2835-audio: Disconnect and free vchi_instance on module_exit()

From: Stefan Wahren
Date: Tue Apr 24 2018 - 04:14:53 EST


Hi Kirill,

Am 24.04.2018 um 02:35 schrieb Kirill Marinushkin:
On 04/23/18 15:50, Greg Kroah-Hartman wrote:
On Tue, Apr 17, 2018 at 07:00:28AM +0200, Kirill Marinushkin wrote:
In the current implementation, vchi_instance is inited during the first
call of bcm2835_audio_open_connection(), and is never freed. It causes a
memory leak when the module `snd_bcm2835` is removed.

Here is how this commit fixes it:

* the VCHI context (including vchi_instance) is created once in the
platform's devres
* the VCHI context is allocated and connected once during module_init()
* all created bcm2835_chips have a pointer to this VCHI context
* bcm2835_audio_open_connection() can access the VCHI context through the
associated bcm2835_chip
* the VCHI context is disconnected and freed once during module_exit()

After this commit is applied, I don't see other issues with the module's
init/exit, so I also remove the associated TODO task.

Steps to reproduce the memory leak before this commit:
<snip>

Patch dropped due to kbuild complaints.

Please fix up and resend.

thanks,

greg k-h
Hello Greg,

Due to which complains of kbuild is the patch dropped?
I would like to fix the complains, but I don't see any errors or warnings on my
side.
Are you sure that the kbuild test robot did it's job correctly? The log says:

it may well be a FALSE warning
Please show me what is wrong in my patch.

The log from kbuild test robot says:

[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v4.17-rc1]
[cannot apply to anholt/for-next]
[if your patch is applied to the wrong git tree, please drop us a note to
help improve the system]
url:
https://github.com/0day-ci/linux/commits/Kirill-Marinushkin/staging-bcm2835-audio-Disconnect-and-free-vchi_instance-on-module_exit/20180417-193147
config: arm-allmodconfig
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross
-O ~/bin/make.cross
chmod +x ~/bin/make.cross
make.cross ARCH=arm allmodconfig
make.cross ARCH=arm

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
I cannot clone from the given url, because it does not exist.
I cannot use the compiler from the log, because it is built for x86_64, and my
host machine is i686.
Below are the steps how I tried to reproduce the issue, but errors or warnings
didn't happen.

I applied the patch on top of the following upstream tag:
60cc43fc8884 (tag: v4.17-rc1) Linux 4.17-rc1

And executed:
make CROSS_COMPILE=arm-linux-gnueabihf- --jobs=4 ARCH=arm allmodconfig
make CROSS_COMPILE=arm-linux-gnueabihf- --jobs=4 ARCH=arm

But the compilation succeed without any errors or warnings.

My compiler version is:
arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC
2013.11) 4.8.3 20140106 (prerelease)

this is an old toolchain. You can download newer ones here (even for i686):

https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/

Best regards
Stefan


Best Regards,
Kirill