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

From: Peter Hurley
Date: Thu Oct 09 2014 - 15:02:12 EST


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.

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?

Regards,
Peter Hurley

--
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/