Thread (5 messages) 5 messages, 3 authors, 2021-11-26

Re: [PATCH] serial: amba-pl011: do not request memory region twice

From: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Date: 2021-11-26 16:13:27
Also in: lkml

Hi,

On 26.11.21 at 16:28, Greg KH 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.

Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
---

This patch was tested on a 5.10 Raspberry Pi kernel with a CM3.
What commit id does this change fix?

thanks,

greg k-h
AFAICS its commit 3873e2d7f63a ("drivers: PL011: refactor pl011_probe()") which
changed  devm_ioremap() in pl011_setup_port() to  devm_ioremap_resource().
Since the latter not only remaps but also requests the memory region it
collides with the memory request in pl011_config_port(). I will add an appropriate
Fixes tag for this.

Regards,
Lino
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help