Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2762484ybh; Mon, 5 Aug 2019 06:27:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqyw6IagW6zNuESH7yCHyMohp+gUO/kK4LCuJS/1tvzD4LEs+sA+8E+9RnpcvvSdEzOizfac X-Received: by 2002:a17:90a:350c:: with SMTP id q12mr18350330pjb.46.1565011650727; Mon, 05 Aug 2019 06:27:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565011650; cv=none; d=google.com; s=arc-20160816; b=bhVYToFkw7sqh40mgIhIOcIHBfhNXkcGZBcMVa99Eat2GQVVJMN0pD7zNMnRsf/k9w PxYqRE+n3trtZS75JalfNz+Wy30Oj8KjY9b+jE6NWIRyZW9bIePUl0YSR5lU3zBeR/Tj ksTKQCmFMZqPX0Kjf7sn2gce0a3+FNG2lx/KT4Crb1gGfP0uTDzJSGoy+k/LDXZuIIBS DQ/WBdUIhafsk7PZhZOF3Jbzaf+xvxbZE4yzxoL59wq+EKdyoG0PqWb6trODwEV2biAR lmBJR5l3rLbpbVAgU327s9rgcXLtcgYEMur4Ae9/nJn05hvhO9ns63JHsUwk62NYRxpk cBZw== 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=4yFxufwXKiQfv1HsnoezKw3n26R0l2zm5bYgNb2N2J0=; b=ChysRBsO8pPNW71UHuZyidAXcOVJdVoOy2uhd7iMX3LB1H+bZirE2xqMOBYTMKO7Qy VGz2rgnMy5Z0V2uJGyt8GMT3uPUhfznH5cd/aTJ+7u5LZqJ6sRenL2WHH09OW25Fg2DT 2v/BBtMVLPsW3NQvmdTQGtHjvJz6gdzYuU4S+o0agbFcKX3MMkDErO+XE3gAtaQy4a7g B3qtEucbXkmMbcMJQnplQlQ/GzrKcUy8FAZiLD+wdOw/H9Ze+YPXAlclH9aV4FiVsjrP HX3BP3n/aSAyv0Z7BedQVt4yIRkB5iTcE0dk2kSZV7vKn/TDM04gsta5mJerTFUsvFXV GE+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=agS+SWwh; 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 p17si41834865plo.310.2019.08.05.06.27.15; Mon, 05 Aug 2019 06:27:30 -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=agS+SWwh; 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 S1731343AbfHEN0B (ORCPT + 99 others); Mon, 5 Aug 2019 09:26:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:34434 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731320AbfHENZw (ORCPT ); Mon, 5 Aug 2019 09:25:52 -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 4E67C20644; Mon, 5 Aug 2019 13:25:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565011551; bh=F5nmWI4N3L3upEYEKPWEfR2p0H16olBUXqf9oPpehg4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=agS+SWwhHadZWRNEWN23iIOihG4/mqofXKFDdAvxHcPkjVVJrSGZHz7NKCHRxP9Hl mmMxnFHOmqDdiKfaU2zxQvthemcHs+NCeuSxEGYKWKdDQ2xPwyIOt0HvuJQsBz9KWj 9N8hu4GenlocGb2NvOI14T9pHKX70Fimhq98NLuQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Zhenyu Wang , Xiaolin Zhang Subject: [PATCH 5.2 131/131] drm/i915/gvt: fix incorrect cache entry for guest page mapping Date: Mon, 5 Aug 2019 15:03:38 +0200 Message-Id: <20190805125000.899343807@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805124951.453337465@linuxfoundation.org> References: <20190805124951.453337465@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 @@ -1911,6 +1911,18 @@ static int kvmgt_dma_map_guest_page(unsi 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;