gtfs: Use a kernel message to destroy the gtfs
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 27 Jun 2018 17:55:12 +0000 (13:55 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 27 Jun 2018 18:10:36 +0000 (14:10 -0400)
commitd65501242d94c5841e8720a7655f60b8c46fd00b
tree57539aa6e122f08f7b8d9bd78b9e9d3e87f146b7
parent13b523336daa5ff97308437a5b4f388881e7b622
gtfs: Use a kernel message to destroy the gtfs

You can't use blocking RCU primitives, such as rcu_barrier(), from within
an RCU callback.  Release methods, such as gtfs_release(), are often called
from a lot of contexts - anywhere you might decref - including RCU
callbacks.

As they say, all problems in CS can be solved with a level of indirection.
Using a kernel message decouples the work we want to do from the current
thread context, which is unable to use RCU barrier et. al.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/gtfs.c