From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752880AbeEYCKW (ORCPT ); Thu, 24 May 2018 22:10:22 -0400 Received: from shards.monkeyblade.net ([184.105.139.130]:54278 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750821AbeEYCKT (ORCPT ); Thu, 24 May 2018 22:10:19 -0400 Date: Thu, 24 May 2018 22:10:18 -0400 (EDT) Message-Id: <20180524.221018.776118684279850747.davem@davemloft.net> To: jasowang@redhat.com Cc: mst@redhat.com, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net] vhost: synchronize IOTLB message with dev cleanup From: David Miller In-Reply-To: <1526990337-24892-1-git-send-email-jasowang@redhat.com> References: <1526990337-24892-1-git-send-email-jasowang@redhat.com> X-Mailer: Mew version 6.7 on Emacs 25.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jason Wang Date: Tue, 22 May 2018 19:58:57 +0800 > DaeRyong Jeong reports a race between vhost_dev_cleanup() and > vhost_process_iotlb_msg(): > > Thread interleaving: > CPU0 (vhost_process_iotlb_msg) CPU1 (vhost_dev_cleanup) > (In the case of both VHOST_IOTLB_UPDATE and > VHOST_IOTLB_INVALIDATE) > ===== ===== > vhost_umem_clean(dev->iotlb); > if (!dev->iotlb) { > ret = -EFAULT; > break; > } > dev->iotlb = NULL; > > The reason is we don't synchronize between them, fixing by protecting > vhost_process_iotlb_msg() with dev mutex. > > Reported-by: DaeRyong Jeong > Fixes: 6b1e6cc7855b0 ("vhost: new device IOTLB API") > Signed-off-by: Jason Wang Applied and queued up for -stable.