lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 20 Oct 2017 08:48:55 +0800
From:   Lu Baolu <baolu.lu@...ux.intel.com>
To:     "Liu, Yi L" <yi.l.liu@...el.com>,
        "joro@...tes.org" <joro@...tes.org>,
        "dwmw2@...radead.org" <dwmw2@...radead.org>
Cc:     "iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/3] iommu/vt-d: Missing checks for pasid tables if
 allocation fails

Hi Yi,

On 10/19/2017 02:40 PM, Liu, Yi L wrote:
>
>> -----Original Message-----
>> From: iommu-bounces@...ts.linux-foundation.org [mailto:iommu-
>> bounces@...ts.linux-foundation.org] On Behalf Of Lu Baolu
>> Sent: Thursday, October 19, 2017 8:39 AM
>> To: joro@...tes.org; dwmw2@...radead.org
>> Cc: iommu@...ts.linux-foundation.org; linux-kernel@...r.kernel.org
>> Subject: [PATCH 1/3] iommu/vt-d: Missing checks for pasid tables if allocation fails
>>
>> intel_svm_alloc_pasid_tables() might return an error but never be checked by the
>> callers. Later when intel_svm_bind_mm() is called, there are no checks for valid pasid
>> tables before enabling them.
>>
>> Signed-off-by: Ashok Raj <ashok.raj@...el.com>
>> Signed-off-by: Lu Baolu <baolu.lu@...ux.intel.com>
>> ---
>>  drivers/iommu/intel-svm.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c index
>> f6697e5..43280ca 100644
>> --- a/drivers/iommu/intel-svm.c
>> +++ b/drivers/iommu/intel-svm.c
>> @@ -292,7 +292,7 @@ int intel_svm_bind_mm(struct device *dev, int *pasid, int
>> flags, struct svm_dev_
>>  	int pasid_max;
>>  	int ret;
>>
>> -	if (WARN_ON(!iommu))
>> +	if (WARN_ON(!iommu || !iommu->pasid_table))
> [Liu, Yi L] Hi Baolu, I guess there also need a check to iommu->ecap , see if the pasid bit
> is reported. thoughts?
>

If pasid bit is not set in ecap register, iommu->pasid_table won't be set.

We did this by:

                if (pasid_enabled(iommu))
                        intel_svm_alloc_pasid_tables(iommu);

Best regards,
Lu Baolu

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ