[PATCH] staging: bcm2835-audio: Disconnect and free vchi_instance on module_exit()
Kirill Marinushkin
k.marinushkin at gmail.com
Mon Apr 23 17:35:50 PDT 2018
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)
Best Regards,
Kirill
More information about the linux-arm-kernel
mailing list