Re: [PATCH] tty/n_gsm.c: do not clear gsm_mux entry when the gsm is not closed

From: Greg Kroah-Hartman
Date: Thu Oct 09 2014 - 15:14:02 EST


On Thu, Oct 09, 2014 at 03:01:46PM -0400, Peter Hurley wrote:
> On 07/28/2014 11:13 AM, Greg Kroah-Hartman wrote:
> > On Mon, Jul 28, 2014 at 03:16:25PM +0800, xinhui.pan wrote:
> >>> Why can't you do dynamic reference counting of your structure, that
> >>> would allow you to get rid of your global array, right?
> >>>
> >>
> >> Thanks for your nice comments.
> >> Struct gsm has a ref-count already. :)
> >
> > Then you should be fine, no need to keep it in an array.
> >
> >> And also adding a ref-count is a little hard to me. :(
> >> This global array is used to keep tracking the gsms that stands for the gsmttyXX.
> >
> > You shouldn't need that at all, just use a list, you don't care what the
> > XX number is within the driver, just allocate a new one with the next
> > available number and you should be fine.
> >
> >> and it can tell us if we can create a new gsm. :)
> >
> > You should always be able to create a new gsm if you need to :)
> >
> >> In gsm_init we set *gsm_tty_driver = alloc_tty_driver(256);*
> >
> > Why limit to 256? Just use a list, and a idr structure to allocate the
> > minor number, and all should be good.
>
> Hi Greg,
>
> This is still broken in the gsm driver.
>
> As much as I'd like to see someone take ownership of the gsm driver and
> do this 'the right way', I think until that happens we should consider
> fixing the reuse-while-in-use error.

What happened to the gsm driver maintainers?

> Would you be willing to take a patch from me that just does the bare
> minimum to keep this from panicking in the cdev code?

Depends on what the patch looks like :)

Send it on, and I'll be glad to review it.

thanks,

greg k-h
--
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/