From: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [PATCH] AMD IOMMU: Introduce support for IVHD block type 11h
Date: Thu, 19 May 2016 01:30:41 -0500 [thread overview]
Message-ID: <573D5D91.60908@amd.com> (raw)
In-Reply-To: <573B45F902000078000EC3C2@prv-mh.provo.novell.com>
Hi Jan,
On 05/17/2016 09:25 AM, Jan Beulich wrote:
>>>> On 13.05.16 at 21:54, <suravee.suthikulpanit@amd.com> wrote:
>> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
>> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
>> [...]
>> @@ -901,7 +911,7 @@ static int __init parse_ivhd_block(const struct acpi_ivrs_hardware *ivhd_block)
>> ivhd_block->header.length, block_length, iommu);
>> break;
>> default:
>> - AMD_IOMMU_DEBUG("IVHD Error: Invalid Device Type!\n");
>> + AMD_IOMMU_DEBUG("IVHD Error: %s: Invalid Device Type!\n", __func__);
>
> Why?
There are some duplicated error message (in get_last_bdf_ivhd() and
parse_ivhd_block(). So, I just want to differentiate them a bit. But
this is not a big deal. I can just get rid of this change.
>> [...]
>> + {
>> + AMD_IOMMU_DEBUG("IVRS Block: Found type %#x flags %#x len %#x id %#x\n",
>> + ivrs_block->type, ivrs_block->flags,
>> + ivrs_block->length, ivrs_block->device_id);
>> + if ( ivrs_block->type > IVHD_HIGHEST_SUPPORT_TYPE )
>> + break;
>
> Is there a requirement for the table elements to appear in numerical
> order?
That is not in the spec. Although it seems to the convention.
> And anyway - this if() appears to be redundant with the
> enclosing one.
I am not sure what you mean by this comment. Could you please elaborate?
>
>> +int __init amd_iommu_get_supported_ivhd_type(void)
>> +{
>> + if ( unlikely(acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_MSI) )
>> + return -EPERM;
>
> This check appears out of the blue, and isn't being mentioned in
> the description. Best would probably be to split it out, but at the
> very least it needs to be (briefly) explained.
This logic was actually duplicated from the
amd_iommu_update_ivrs_mapping_acpi(). I believe this was added by the
commit 992fdf6f46252a459c6b1b8d971b2c71f01460f8
honor ACPI v4 FADT flags
It might make more sense to pull this out to just check once in the
amd_iommu_init() along with adding some explanation.
>> @@ -1233,8 +1234,11 @@ int __init amd_iommu_init(void)
>> amd_sp5100_erratum28() )
>> goto error_out;
>>
>> - ivrs_bdf_entries = amd_iommu_get_ivrs_dev_entries();
>> + ivhd_type = amd_iommu_get_supported_ivhd_type();
>> + if ( !ivhd_type )
>> + goto error_out;
>
> Is the ! here meant to catch errors? The function returns -E...
> values to indicate errors ...
Sorry, my bad. I'll fix this.
Thanks,
Suravee
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-05-19 6:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-13 19:54 [PATCH] AMD IOMMU: Introduce support for IVHD block type 11h suravee.suthikulpanit
2016-05-17 14:25 ` Jan Beulich
2016-05-19 6:30 ` Suravee Suthikulpanit [this message]
2016-05-19 9:09 ` Jan Beulich
2016-05-19 20:38 ` Suravee Suthikulpanit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=573D5D91.60908@amd.com \
--to=suravee.suthikulpanit@amd.com \
--cc=JBeulich@suse.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.