Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2756227ybh; Mon, 5 Aug 2019 06:21:20 -0700 (PDT) X-Google-Smtp-Source: APXvYqyAIqXAB3GNF3IKcFr20QEHEYq6Vcr0wKs1W413Hwjfi2czsxKmZVoCmORnreeOW9pPZ++B X-Received: by 2002:a17:902:7612:: with SMTP id k18mr142342991pll.48.1565011280583; Mon, 05 Aug 2019 06:21:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565011280; cv=none; d=google.com; s=arc-20160816; b=TzIUdTi6dVYCCGxiWGSZqICFw76epz3FvVEHUTDZYR1XY2APeGgYlWTHvI/gcYQ38s HMHY9sYvXEHoQwO7N1iAXL4ZvDBQn9lSZW38k5cc72DtV6p7ochpROsnFXd9xk4iHeNc 3enKya8O0jzPMx/WLvFWDGpQwEPEHOdH6haIkQRqkkyA1rAA6hgFuiBwt4CrZNBxHvsy A70yCCj5DqFa7FC8gAzfDPc5OY1wgGqdP9rQzIDaUGbNhlIwPxIAPCCBU//tnRMTGrDb 86vN8YeBaGpnH/fK44BY1nP5krMfMb5JH4CftOBm5bUY5xieYLHCF7nksPn3xzK5NlaY 7Sxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ywgLWlRl7+yysdtpF7C/186C+FMl83cXNY4Swi7Ty9A=; b=KzDqgzssdYAJwAFMYKA/Uf0zOnTs4DBL5fAU8HAsjCMIt/1l9BussPkU9QcOwNc/X+ nQcEOJFlwu8SGUodY/WVH0NZ42rvW5/OEXmgl2BJnAP+XY+0QKPMr9t0itZqiwO87jmL AbUq84ZTvWvv7lpt50bl1tzOyyC9KZeunYqcKDP4lkWqsZZV1zRMDXuQSKiqoa96lwOg zCUkSuV1o38WR3FUWZzQbsrxrw0ZDbyXoaQR9kn7yzT0zhvvu3a9ZY5FM+Q0N/zeTu5h j99tfGQ/CUjUe5UqI/ikRqo8fPfAdW2RxFaGJM0+O1tHr0tBZGxkb/9fF+vvdwOHzuE9 Kyzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wqVvKkyy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l9si39621599plb.317.2019.08.05.06.21.05; Mon, 05 Aug 2019 06:21:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=wqVvKkyy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729469AbfHENTY (ORCPT + 99 others); Mon, 5 Aug 2019 09:19:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:55380 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728991AbfHENTX (ORCPT ); Mon, 5 Aug 2019 09:19:23 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9FCD720880; Mon, 5 Aug 2019 13:19:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565011163; bh=MrAJKCv6cNse/W4T69Bzjx0rHgIpjdfdG4O21grCYHY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wqVvKkyyvTVZ/AkpMnhni2N+VBq28XZMO27XL5kske7gxgDO7R7c3pXXOYzMZuQgq tz0jxDZnB7IxTU5nKbz+8+yiPlAWfOB+RsgViDxGf7RKA2hwQKCcVOTCqI4tgnEpQS yGQrjo8Qvydl8XbYgIXY5+Z1sKERku2ZzJ+X9gCk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Zhenyu Wang , Xiaolin Zhang Subject: [PATCH 4.19 68/74] drm/i915/gvt: fix incorrect cache entry for guest page mapping Date: Mon, 5 Aug 2019 15:03:21 +0200 Message-Id: <20190805124941.302293447@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805124935.819068648@linuxfoundation.org> References: <20190805124935.819068648@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Xiaolin Zhang commit 7366aeb77cd840f3edea02c65065d40affaa7f45 upstream. GPU hang observed during the guest OCL conformance test which is caused by THP GTT feature used durning the test. It was observed the same GFN with different size (4K and 2M) requested from the guest in GVT. So during the guest page dma map stage, it is required to unmap first with orginal size and then remap again with requested size. Fixes: b901b252b6cf ("drm/i915/gvt: Add 2M huge gtt support") Cc: stable@vger.kernel.org Reviewed-by: Zhenyu Wang Signed-off-by: Xiaolin Zhang Signed-off-by: Zhenyu Wang Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/i915/gvt/kvmgt.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -1748,6 +1748,18 @@ int kvmgt_dma_map_guest_page(unsigned lo ret = __gvt_cache_add(info->vgpu, gfn, *dma_addr, size); if (ret) goto err_unmap; + } else if (entry->size != size) { + /* the same gfn with different size: unmap and re-map */ + gvt_dma_unmap_page(vgpu, gfn, entry->dma_addr, entry->size); + __gvt_cache_remove_entry(vgpu, entry); + + ret = gvt_dma_map_page(vgpu, gfn, dma_addr, size); + if (ret) + goto err_unlock; + + ret = __gvt_cache_add(info->vgpu, gfn, *dma_addr, size); + if (ret) + goto err_unmap; } else { kref_get(&entry->ref); *dma_addr = entry->dma_addr;