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  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Fri, 5 Sep 2014 19:17:18 +0800
From:	"Su, Friendy" <Friendy.Su@...y.com.cn>
To:	"joro@...tes.org" <joro@...tes.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 v1 1/1] iommu/amd: set iommu for early mapped ioapic/hpet

Hi, Joerg,

> -----Original Message-----
> From: joro@...tes.org [mailto:joro@...tes.org]
> Sent: Wednesday, September 03, 2014 11:06 PM
> To: Su, Friendy
> Cc: iommu@...ts.linux-foundation.org; linux-kernel@...r.kernel.org
> Subject: Re: [PATCH v1 1/1] iommu/amd: set iommu for early mapped
> ioapic/hpet
> 
> On Mon, Sep 01, 2014 at 02:17:44PM +0800, Su, Friendy wrote:
> > diff --git a/drivers/iommu/amd_iommu_init.c
> b/drivers/iommu/amd_iommu_init.c
> > index 3783e0b..148ab61 100644
> > --- a/drivers/iommu/amd_iommu_init.c
> > +++ b/drivers/iommu/amd_iommu_init.c
> > @@ -747,7 +747,7 @@ static int __init add_special_device(u8 type, u8 id,
> u16 devid, bool cmd_line)
> >  	return 0;
> >  }
> >
> > -static int __init add_early_maps(void)
> > +static int __init add_early_maps(struct amd_iommu *iommu)
> >  {
> >  	int i, ret;
> >
> > @@ -758,6 +758,11 @@ static int __init add_early_maps(void)
> >  					 early_ioapic_map[i].cmd_line);
> >  		if (ret)
> >  			return ret;
> > +		/*
> > +		 * early mapped ioapci overrides ACPI IVRS,
> > +		 * they should be always controlled by iommu.
> > +		 */
> > +		set_iommu_for_device(iommu, early_ioapic_map[i].devid);
> >  	}
> >
> >  	for (i = 0; i < early_hpet_map_size; ++i) {
> > @@ -767,6 +772,11 @@ static int __init add_early_maps(void)
> >  					 early_hpet_map[i].cmd_line);
> >  		if (ret)
> >  			return ret;
> > +		/*
> > +		 * early mapped hpet overrides ACPI IVRS,
> > +		 * they should be always controlled by iommu.
> > +		 */
> > +		set_iommu_for_device(iommu, early_hpet_map[i].devid);
> 
> This doesn't work on machines with multiple IOMMUs in it. Also the
> problem only exists if there is no IVHD entry in the IVRS table for the
> device containing IOAPIC and HPET.
> 
> But if this IVHD entry is not present we can't reliably know which IOMMU
> is responsible for a given IOAPIC/HPET.
> 
> 
> 	Joerg
> 
Thanks. You are correct, we should handle early mapped inside IOMMU whose IVHD reports the same ID. I will update.

Friendy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists