On Fri, Feb 10, 2023 at 12:26:52PM +0530, Prashanth K wrote: > > > > And this seems like a viable option to me, what do you suggest? > > > > gserial_disconnect { > > spin_lock(static) > > spin_lock(port) > > ... > > gser->ioport = NULL; > > ... > > spin_lock(port) > > spin_unlock(static) > > > > } > > > > gserial_resume { > > struct gs_port *port = gser->ioport; > > > > spin_lock(static) > > if (!port) > spin_unlock(static) > > return > > spin_lock(port) If you want, you could move the spin_unlock(static) up to here. It probably doesn't matter. > > > > ... > > spin_unlock(port) > > spin_unlock(static) > > } I agree, that should work fine. Alan Stern