From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751425AbdKTOUw (ORCPT ); Mon, 20 Nov 2017 09:20:52 -0500 Received: from mga07.intel.com ([134.134.136.100]:38777 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751086AbdKTOUf (ORCPT ); Mon, 20 Nov 2017 09:20:35 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,427,1505804400"; d="scan'208";a="9870137" Subject: Re: [PATCH v3 05/16] iommu/vt-d: support flushing more TLB types To: Jacob Pan , "iommu@lists.linux-foundation.org" , LKML , Joerg Roedel , David Woodhouse , Greg Kroah-Hartman , "Wysocki, Rafael J" , Alex Williamson CC: "Lan, Tianyu" , Yi L , "Liu@mail.linuxfoundation.org" , Jean Delvare References: <1510944914-54430-1-git-send-email-jacob.jun.pan@linux.intel.com> <1510944914-54430-6-git-send-email-jacob.jun.pan@linux.intel.com> From: "Lukoshkov, Maksim" Organization: Intel Research and Development Ireland Limited Message-ID: <04788a00-2075-7975-2f13-b9e032688305@intel.com> Date: Mon, 20 Nov 2017 14:20:31 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <1510944914-54430-6-git-send-email-jacob.jun.pan@linux.intel.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [163.33.239.181] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/17/2017 18:55, Jacob Pan wrote: > +void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 pfsid, > + u16 qdep, u64 addr, unsigned mask) > +{ > + struct qi_desc desc; > + > + pr_debug_ratelimited("%s: sid %d, pfsid %d, qdep %d, addr %llx, mask %d\n", > + __func__, sid, pfsid, qdep, addr, mask); > if (mask) { > BUG_ON(addr & ((1 << (VTD_PAGE_SHIFT + mask)) - 1)); > addr |= (1ULL << (VTD_PAGE_SHIFT + mask - 1)) - 1; > @@ -1352,7 +1366,41 @@ void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 qdep, > qdep = 0; > > desc.low = QI_DEV_IOTLB_SID(sid) | QI_DEV_IOTLB_QDEP(qdep) | > - QI_DIOTLB_TYPE; > + QI_DIOTLB_TYPE | QI_DEV_IOTLB_SID(pfsid); QI_DEV_IOTLB_SID(pfsid) -> QI_DEV_EIOTLB_PFSID(pfsid)? > + > + qi_submit_sync(&desc, iommu); > +} > + Regards, Maksim Lukoshkov