[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH,RFC 5/7] PCI multi-seg: AMD-IOMMU specificadjustments
>>> On 06.09.11 at 13:03, Wei Wang2 <wei.wang2@xxxxxxx> wrote:
> On Monday 05 September 2011 15:16:14 Jan Beulich wrote:
>> I don't really follow: The two cases where I can't spot where to get the
>> segment number from are register_exclusion_range_for_all_devices()
>> and register_exclusion_range_for_device(), both called in the context
>> of struct acpi_ivmd_block_header(), which only gets a struct
>> acpi_ivmd_block_header (not having a segment number afaict).
> OK, now I understand your question. I thought you are question about iommu
> specification. For these two functions, I think seg = 0 is fine, since amd
> iommu does not support multiple pci segment other than 0.
So I'll leave the code unchanged then, also because ...
> Also, You could
> pass acpi_ivhd_block_header to parse_ivmd_block() in function
> parse_ivrs_block(), since both ivhd and ivmd entries shares the same ivhd
... this I cannot make sense of: parse_ivrs_block() casts its input (of
type struct acpi_ivrs_block_header *) to either struct
acpi_ivhd_block_header * (on which path I'm already using the available
segment number) or struct acpi_ivmd_block_header * (which doesn't
have a segment number, and which has its start_addr member located
at the offset where pci_segment would be in acpi_ivhd_block_header,
so casting to both types in a single function invocation is clearly wrong).
Xen-devel mailing list