On 20. 12. 21, 9:21, Jiasheng Jiang wrote:
The return value of platform_get_resource() needs to be checked.
To avoid use of error pointer in case that there is no suitable
resource.
Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
Barely.
Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx>
---
drivers/tty/serial/timbuart.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
index 08941eabe7b1..262154d2f40f 100644
--- a/drivers/tty/serial/timbuart.c
+++ b/drivers/tty/serial/timbuart.c
@@ -312,9 +312,14 @@ static const char *timbuart_type(struct uart_port *port)
*/
static void timbuart_release_port(struct uart_port *port)
{
+ struct resource *res;
+ int size;
struct platform_device *pdev = to_platform_device(port->dev);
- int size =
- resource_size(platform_get_resource(pdev, IORESOURCE_MEM, 0));
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ size = 0;
How can this happen and what happens when you pass zero size to
release_mem_region?
+ else
+ size = resource_size(res);
if (port->flags & UPF_IOREMAP) {
iounmap(port->membase);
--
js
suse labs