Re: [PATCH v13 3/8] iommu/vt-d: Add nested translation helper function

From: Jacob Pan
Date: Thu May 14 2020 - 11:25:36 EST


On Wed, 13 May 2020 22:54:24 -0700
Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:

> > + * 1. CPU vs. IOMMU
> > + * 2. Guest vs. Host.
> > + */
> > + switch (addr_width) {
> > +#ifdef CONFIG_X86
> > + case ADDR_WIDTH_5LEVEL:
> > + if (cpu_feature_enabled(X86_FEATURE_LA57) &&
> > + cap_5lp_support(iommu->cap)) {
> > + pasid_set_flpm(pte, 1);
> > + } else {
> > + dev_err_ratelimited(dev, "5-level paging
> > not supported\n");
> > + return -EINVAL;
> > + }
> > + break;
>
> The normal style would be to handle the early error return first:
>
> if (!cpu_feature_enabled(X86_FEATURE_LA57) ||
> !cap_5lp_support(iommu->cap)) {
> dev_err_ratelimited(dev,
> "5-level paging not supported\n");
> return -EINVAL;
> }
>
> pasid_set_flpm(pte, 1);
> break;
>

Sounds good. I was thinking in positive logic.

thanks