Re: [PATCH] TTY: n_gsm, fix false positive WARN_ON

From: xinhui
Date: Wed Nov 25 2015 - 05:34:24 EST


hi, Jiri

On 2015/11/25 17:56, Jiri Slaby wrote:
Hi,

On 11/25/2015, 07:32 AM, xinhui wrote:
This warning should blame on commit 5a640967 ("tty/n_gsm.c: fix a
memory leak in gsmld_open()").

Oh, yes, I messed up the "Fixes" line then. It should write:
Fixes: 5a640967 ("tty/n_gsm.c: fix a memory leak in gsmld_open()")

that's Okay. :)

I have one confusion. As there is field gsm->num to store the index of
gsm_mux[]. so in gsm_cleanup_mux(), why we still use for-loop to find
this mux?

In error handle path, for example, the call trace in this patch, as we
failed to activate it and the
gsm->num is invalid(and the value is 0). we can just modify the codes
like below:

if(gsm_mux[gsm->num] == gsm)
....other work
else
return;

I think it would work, and the logic is correct. Or I just miss
something important?

Yup, it looks like a cleanup. Could you prepare a separate patch for that?

yes, I will do that :)

Something like this:
/* open failed before registering => nothing to do */
if (gsm_mux[gsm->num] != gsm)
return;
spin_lock(&gsm_mux_lock);
gsm_mux[gsm->num] = NULL;
spin_unlock(&gsm_mux_lock);

looks pretty good, thanks.

thanks,

thanks
xinhui

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/