[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7e7dae62-ac66-e5cd-f801-add3a9f81dc6@gmx.de>
Date: Fri, 26 Nov 2021 17:27:40 +0100
From: Lino Sanfilippo <LinoSanfilippo@....de>
To: "Russell King (Oracle)" <linux@...linux.org.uk>
Cc: gregkh@...uxfoundation.org, jirislaby@...nel.org,
p.rosenberger@...bus.com, lukas@...ner.de,
linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] serial: amba-pl011: do not request memory region twice
Hi,
On 26.11.21 at 17:09, Russell King (Oracle) wrote:
> On Fri, Nov 26, 2021 at 03:39:25PM +0100, Lino Sanfilippo wrote:
>> The driver attempts to request and release the IO memory region for a uart
>> port twice:
>>
>> First during the probe() function devm_ioremap_resource() is used to
>> allocate and map the ports memory.
>> Then a combo of pl011_config_port() and pl011_release_port() is used to
>> request/release the same memory area. These functions are called by the
>> serial core as soon as the uart is registered/unregistered.
>>
>> However since the allocation request via devm_ioremap_resource() already
>> succeeds, the attempt to claim the memory again via pl011_config_port()
>> fails. This failure remains unnoticed, since the concerning return value is
>> not evaluated.
>> Later at module unload also the attempt to release the unclaimed memory
>> in pl011_release_port() fails. This time the failure results in a “Trying
>> to free nonexistent resource" warning printed by the serial core.
>>
>> Fix these issues by removing the callbacks that implement the redundant
>> memory allocation/release.
>
> I think you will also need the verify_port method to also deny changing
> port->mapbase.
>
Right, I will add this, thanks for the hint!
Regards,
Lino
Powered by blists - more mailing lists