From: "Michael S. Tsirkin" <mst@xxxxxxxxxx> Date: Thu, 13 Feb 2014 11:42:05 +0200 > vhost checked the counter within the refcnt before decrementing. It > really wanted to know that it is the one that has the last reference, as > a way to batch freeing resources a bit more efficiently. > > Note: we only let refcount go to 0 on device release. > > This works well but we now access the ref counter twice so there's a > race: all users might see a high count and decide to defer freeing > resources. > In the end no one initiates freeing resources until the last reference > is gone (which is on VM shotdown so might happen after a looooong time). > > Let's do what we probably should have done straight away: > switch from kref to plain atomic, documenting the > semantics, return the refcount value atomically after decrement, > then use that to avoid the deadlock. > > Reported-by: Qin Chuanyu <qinchuanyu@xxxxxxxxxx> > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > --- > > This patch is needed for 3.14 and -stable. Applied and queued up for -stable. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization