[PATCH V4] clk: imx: Fix reparenting of UARTs not associated with stdout

Ahmad Fatoum a.fatoum at pengutronix.de
Sun Mar 14 09:40:24 GMT 2021


On 13.03.21 16:16, Ahmad Fatoum wrote:
>> +/* i.MX boards use device trees now.  For build tests without CONFIG_OF, do nothing */
>> +#ifdef CONFIG_OF
>>  	if (imx_keep_uart_clocks) {
>>  		int i;
>>  
>> -		imx_uart_clocks = clks;
>> -		for (i = 0; imx_uart_clocks[i]; i++)
>> -			clk_prepare_enable(*imx_uart_clocks[i]);
>> +		imx_uart_clocks = kcalloc(clk_count, sizeof(struct clk *), GFP_KERNEL);
>> +
>> +		if (!of_stdout)
>> +			return;
> 
> Memory leak. Just do if (imx_keep_uart_clocks && of_stdout)

Please dismiss. I overlooked that you free it in a later initcall.

>>  static int __init imx_clk_disable_uart(void)
>>  {
>> -	if (imx_keep_uart_clocks && imx_uart_clocks) {
>> +	if (imx_keep_uart_clocks && imx_enabled_uart_clocks) {
>>  		int i;
>>  
>> -		for (i = 0; imx_uart_clocks[i]; i++)
>> -			clk_disable_unprepare(*imx_uart_clocks[i]);
>> +		for (i = 0; i < imx_enabled_uart_clocks; i++) {
>> +			clk_disable_unprepare(imx_uart_clocks[i]);
>> +			clk_put(imx_uart_clocks[i]);
>> +		};
>> +		kfree(imx_uart_clocks);
>>  	}

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the linux-arm-kernel mailing list