Messages in this thread | | | Date | Wed, 24 Nov 2010 22:36:00 +0000 | From | Alan Cox <> | Subject | Re: [PATCHv5 05/17] tty: don't allow ldisc dcd_change() after ldisc halt |
| |
> Yes, indeed, it's a bug. Please consider the following example: > > CPU1 CPU2 > ========================================================= > uart_handle_dcd_change() { tty_set_ldisc() { > ld = tty_ldisc_ref(...) ...
[We have a reference] > ... tty_ldisc_halt(...) [Should block]
> I think tty code is exactly the right place to fix this bug; this is > what my patch is for.
More special case magic on top of the current crap isn't the right fix here, tty_ldisc_halt needs to wait for the references to hit zero.
Alan
| |