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:
quoted
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