lkml.org 
[lkml]   [2021]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.11 03/67] staging: fwserial: Fix error handling in fwserial_create
    Date
    From: Dinghao Liu <dinghao.liu@zju.edu.cn>

    [ Upstream commit f31559af97a0eabd467e4719253675b7dccb8a46 ]

    When fw_core_add_address_handler() fails, we need to destroy
    the port by tty_port_destroy(). Also we need to unregister
    the address handler by fw_core_remove_address_handler() on
    failure.

    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Link: https://lore.kernel.org/r/20201221122437.10274-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/staging/fwserial/fwserial.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/staging/fwserial/fwserial.c b/drivers/staging/fwserial/fwserial.c
    index db83d34cd6779..c368082aae1aa 100644
    --- a/drivers/staging/fwserial/fwserial.c
    +++ b/drivers/staging/fwserial/fwserial.c
    @@ -2189,6 +2189,7 @@ static int fwserial_create(struct fw_unit *unit)
    err = fw_core_add_address_handler(&port->rx_handler,
    &fw_high_memory_region);
    if (err) {
    + tty_port_destroy(&port->port);
    kfree(port);
    goto free_ports;
    }
    @@ -2271,6 +2272,7 @@ static int fwserial_create(struct fw_unit *unit)

    free_ports:
    for (--i; i >= 0; --i) {
    + fw_core_remove_address_handler(&serial->ports[i]->rx_handler);
    tty_port_destroy(&serial->ports[i]->port);
    kfree(serial->ports[i]);
    }
    --
    2.27.0
    \
     
     \ /
      Last update: 2021-02-24 13:56    [W:4.113 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site