From: Ahmad Fatoum <[email protected]> Use the managed request and drop the io_release error label.
The driver data stays on xzalloc(), as console_register() keeps a pointer to it and console_unregister() may refuse with -EBUSY. Assisted-by: Claude:opus-5-1m Signed-off-by: Ahmad Fatoum <[email protected]> --- drivers/serial/serial_stm32.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c index b3c4eaf90fcc..ca2f1bdab323 100644 --- a/drivers/serial/serial_stm32.c +++ b/drivers/serial/serial_stm32.c @@ -156,7 +156,7 @@ static int stm32_serial_probe(struct device *dev) stm32 = xzalloc(sizeof(*stm32)); cdev = &stm32->cdev; - res = dev_request_mem_resource(dev, 0); + res = devm_request_mem_resource(dev, 0); if (IS_ERR(res)) { ret = PTR_ERR(res); goto err_free; @@ -171,7 +171,7 @@ static int stm32_serial_probe(struct device *dev) if (IS_ERR(stm32->clk)) { ret = dev_err_probe(dev, PTR_ERR(stm32->clk), "Failed to get/enable UART clock\n"); - goto io_release; + goto err_free; } cdev->dev = dev; @@ -197,8 +197,6 @@ static int stm32_serial_probe(struct device *dev) return 0; clk_put(stm32->clk); -io_release: - release_region(res); err_free: free(stm32); -- 2.47.3
