Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4736985pxj; Wed, 12 May 2021 12:03:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvQ6cogOMKSArB7MPkFkZNkA9fsgWiFbBSL5HDX+AadYORnnFN9byXeSdOciuoPuClQrES X-Received: by 2002:a05:6402:16db:: with SMTP id r27mr43224850edx.375.1620846225018; Wed, 12 May 2021 12:03:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620846225; cv=none; d=google.com; s=arc-20160816; b=RfIrCD5wzJQiNQ2Bl9xoHDzJXYokPpDAscq08U6kbgD9RXIizNPG7reecky8zNexzR ymw0ctyE8slhHygfgvPAp6ABPcGMPSsojZIplIZv7jd6MeV/+7Pc9PsUof6b1dISDsER sAJ1vVyd3fNGvqf64z4frSOb9O/lLQOTf7ldt6ldMrPkxiwpvRyYwB6P0or/pMjm36SO a6wbqg58Xv04EC4h60pnxFKcqc9Qluh3AwvJSV6K3ptvIgOuNvbd5I7oEH2eN3B2AF74 yTwq4BOX620Q1YLFe59Sliv/WNio6iVAwNwLW20puwcwPNNxpmiD1UE7tDx1Bj8VWwKo HgaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rkkP+FodJvcVrlq7lIlh/ApeFFDjFbpJMAt54aDoLIM=; b=FHFbDn9lJIskiN2Q0FwQZF9ULhqMGTLguy35yRG/k1IUr0QTbgQM0kzNbuV3gQOJDM YcpsJsfVDn3O7eo4b4IiktLlAUJMzkEBW5u9vjwH7BESn0iqp8tdrqcunGISjk7DIDla 0l1GpHCWG5IpbJ8NUtKuNXb+q2iMes2vsqgPweBXQF1YYGTFwmxdaLiox0FQdIApV0LY GORA0+G4JEkub+Xf3j8czhiHV4hisRynedPaQ/7b7Dclbrs7VbTwB9cYkhU1rov0KSAs qKr0bxNG6YztKsQ0sfkh4FgvQH01tfBurTaZQM6XsaR1j/dfMVQhQaNdGNoVR91BQxfb 4C7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZaDuWujC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s24si677550ejz.169.2021.05.12.12.03.13; Wed, 12 May 2021 12:03:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZaDuWujC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376962AbhELS4G (ORCPT + 99 others); Wed, 12 May 2021 14:56:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:60668 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244195AbhELQmm (ORCPT ); Wed, 12 May 2021 12:42:42 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9A00A60FE6; Wed, 12 May 2021 16:11:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620835893; bh=MN6es2fhVNq6FMUx9nYR/d6znokbubLvvNHw/YkYCB4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZaDuWujCl0nXGcHHcj967Ao/VHkzs6PzP9Wf35Lt4apilMPo7mTKyMyJqIDKapvKh a94WJFi7XrM6GdTXzfMNyWqkjZiZXs1AowFU9Td+sPW6lQ1hiY1ppxyEu2GZXIs4XH MWc+ZKW4/QSlNZ9zh5jJK6HE5dLJgh0egez8RkzI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jacob Pan , Liu Yi L , Lu Baolu , Joerg Roedel , Sasha Levin Subject: [PATCH 5.12 491/677] iommu/vt-d: Dont set then clear private data in prq_event_thread() Date: Wed, 12 May 2021 16:48:57 +0200 Message-Id: <20210512144853.696056276@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lu Baolu [ Upstream commit 1d421058c815d54113d9afdf6db3f995c788cf0d ] The VT-d specification (section 7.6) requires that the value in the Private Data field of a Page Group Response Descriptor must match the value in the Private Data field of the respective Page Request Descriptor. The private data field of a page group response descriptor is set then immediately cleared in prq_event_thread(). This breaks the rule defined by the VT-d specification. Fix it by moving clearing code up. Fixes: 5b438f4ba315d ("iommu/vt-d: Support page request in scalable mode") Cc: Jacob Pan Reviewed-by: Liu Yi L Signed-off-by: Lu Baolu Link: https://lore.kernel.org/r/20210320024156.640798-1-baolu.lu@linux.intel.com Signed-off-by: Joerg Roedel Signed-off-by: Sasha Levin --- drivers/iommu/intel/svm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel/svm.c b/drivers/iommu/intel/svm.c index 4627437ae1c0..547a6cf57057 100644 --- a/drivers/iommu/intel/svm.c +++ b/drivers/iommu/intel/svm.c @@ -1031,12 +1031,12 @@ no_pasid: QI_PGRP_RESP_TYPE; resp.qw1 = QI_PGRP_IDX(req->prg_index) | QI_PGRP_LPIG(req->lpig); + resp.qw2 = 0; + resp.qw3 = 0; if (req->priv_data_present) memcpy(&resp.qw2, req->priv_data, sizeof(req->priv_data)); - resp.qw2 = 0; - resp.qw3 = 0; qi_submit_sync(iommu, &resp, 1, 0); } prq_advance: -- 2.30.2