From patchwork Thu Mar 15 16:18:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 147042 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 4DCECB6F98 for ; Fri, 16 Mar 2012 03:19:14 +1100 (EST) Received: from localhost ([::1]:54526 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8DOR-0003oS-Vk for incoming@patchwork.ozlabs.org; Thu, 15 Mar 2012 12:19:11 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46889) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8DOI-0003m4-FE for qemu-devel@nongnu.org; Thu, 15 Mar 2012 12:19:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S8DOB-0002oW-VM for qemu-devel@nongnu.org; Thu, 15 Mar 2012 12:19:02 -0400 Received: from smtp.citrix.com ([66.165.176.89]:62500) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8DOB-0002m7-QL for qemu-devel@nongnu.org; Thu, 15 Mar 2012 12:18:55 -0400 X-IronPort-AV: E=Sophos;i="4.73,591,1325480400"; d="scan'208";a="23114740" Received: from ftlpmailmx01.citrite.net ([10.13.107.65]) by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5; 15 Mar 2012 12:18:53 -0400 Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Thu, 15 Mar 2012 12:18:52 -0400 Message-ID: <4F621649.4030702@citrix.com> Date: Thu, 15 Mar 2012 16:18:17 +0000 From: Julien Grall User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20120207 Icedove/3.0.11 MIME-Version: 1.0 To: "qemu-devel@nongnu.org" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 66.165.176.89 Cc: "xen-devel@lists.xensource.com" , Stefano Stabellini Subject: [Qemu-devel] [PATCH] xen-mapcache: don't unmap locked entry during mapcache invalidation X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org When an IOREQ_TYPE_INVALIDATE is sent to QEMU, it invalidates all entry of the map cache even if it's locked. QEMU is not able to know that entry was invalidated, so when an IO access is requested a segfault occured. Signed-off-by: Julien Grall --- xen-mapcache.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/xen-mapcache.c b/xen-mapcache.c index 585b559..6e7e5ab 100644 --- a/xen-mapcache.c +++ b/xen-mapcache.c @@ -370,6 +370,9 @@ void xen_invalidate_map_cache(void) continue; } + if (entry->lock > 0) + continue; + if (munmap(entry->vaddr_base, entry->size) != 0) { perror("unmap fails"); exit(-1); -- Julien Grall