On Tue, Sep 18, 2018 at 10:27:58AM +0000, Karoly Pados wrote: > >> Does that mean something can call into our module while this method is running? > >> If not, I'm clueless about the possible race here. > > > > Correct, you can get gpio callbacks until the gpio chip has been > > deregistered (anything coming in after that would be a gpiolib bug). > > I'm just puzzled by the fact that this can still happen even while the port > removal code is running. It also makes me ask the question what else here can > run in parallel. Don't we need mutexes here-and-there in the ftx gpio functions too > in this case? Or does gpiolib make sure to serialize multiple pin and direction > setting calls? Good point. The old sysfs interface would keep things serialised, but the new chardev-based one does not (nor does the in-kernel interface). So yeah, we need to add a mutex protecting the gpio state (i.e. direction and value). Thanks, Johan