Re: [PATCH] tty: synclink_gt: unwind actions in error path of net device open

From: Greg Kroah-Hartman
Date: Tue Nov 15 2022 - 12:54:39 EST


On Tue, Nov 15, 2022 at 09:38:32AM -0800, Paul Fulghum wrote:
> Resent again, last attempt still altered the plain text.
>

Please send a v2 patch, and this is not needed as it would show up in
the commit log if we were to apply it, right?

>
> Zhengchao Shao <shaozhengchao@xxxxxxxxxx> identified by inspection bugs in the error path of hdlcdev_open() in synclink_gt.c

Properly wrap your lines at 72 columns please.

>
> The function did not fully unwind actions in the error path. The use of try_module_get()/module_put() is unnecessary, potentially hazardous and is removed. The synclink_gt driver is already pinned any point the net device is registered, a requirement for calling this entry point.
>
> The call hdlc_open() to init the generic HDLC layer is moved to after driver level init/checks and proper rollback of previous actions is added. This is a more sensible ordering as the most common error paths are at the driver level and the driver level rollbacks require less processing than hdlc_open()/hdlc_close().
>
> This has been tested with supported hardware.
>
> Signed-off-by:Paul Fulghum <paulkf@xxxxxxxxxxxxx>

You need a Suggested-by: tag here.

And a space after the ':' character.

>
> diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
> index 25e9befdda3a..72b76cdde534 100644
> --- a/drivers/tty/synclink_gt.c
> +++ b/drivers/tty/synclink_gt.c
> @@ -1433,16 +1433,8 @@ static int hdlcdev_open(struct net_device *dev)
> int rc;
> unsigned long flags;
>
> - if (!try_module_get(THIS_MODULE))
> - return -EBUSY;

Thank you for removing this, this code pattern is always wrong :)

thanks,

greg k-h