[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 
> header.

... 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).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.