> + tport = &state->port; > + if (!(tport->flags & ASYNC_INITIALIZED) && port->ops->poll_init) { > + mutex_lock(&tport->mutex); > + ret = port->ops->poll_init(port); > + /* > + * We don't set ASYNCB_INITIALIZED as we only initialized the > + * hw, e.g. state->xmit is still uninitialized. > + */ > + mutex_unlock(&tport->mutex); > + if (ret) > + return ret; > + } What stops a parallel open or close changing ASYNC_INITIALIZED after you test and before you lock ? Alan -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html