On 11.09.20 10:59, Paul Durrant wrote:

Hi

De-htmling...

-----
From: Oleksandr Tyshchenko <[email protected]>
Sent: 10 September 2020 19:20
To: Durrant, Paul <[email protected]>
Cc: Bertrand Marquis <[email protected]>; Paul Durrant <[email protected]>; open list:X86 <[email protected]>; Jan Beulich 
<[email protected]>; Andrew Cooper <[email protected]>; Wei Liu <[email protected]>; Roger Pau MonnĂ© <[email protected]>; 
George Dunlap <[email protected]>; Ian Jackson <[email protected]>; Julien Grall <[email protected]>; Stefano Stabellini 
<[email protected]>; Jun Nakajima <[email protected]>; Kevin Tian <[email protected]>
Subject: Re: [PATCH v6 4/8] iommu: make map and unmap take a page count, 
similar to flush



On Thu, Sep 10, 2020 at 8:49 PM Durrant, Paul <mailto:[email protected]> 
wrote:

Hi Paul

[sorry for the possible format issue]

-----Original Message-----
From: Bertrand Marquis <mailto:[email protected]>
Sent: 10 September 2020 17:46
To: Paul Durrant <mailto:[email protected]>
Cc: open list:X86 <mailto:[email protected]>; Durrant, Paul 
<mailto:[email protected]>; Jan Beulich
<mailto:[email protected]>; Andrew Cooper <mailto:[email protected]>; Wei Liu 
<mailto:[email protected]>; Roger Pau MonnĂ©
<mailto:[email protected]>; George Dunlap <mailto:[email protected]>; 
Ian Jackson
<mailto:[email protected]>; Julien Grall <mailto:[email protected]>; 
Stefano Stabellini
<mailto:[email protected]>; Jun Nakajima <mailto:[email protected]>; Kevin 
Tian <mailto:[email protected]>
Subject: RE: [EXTERNAL] [PATCH v6 4/8] iommu: make map and unmap take a page 
count, similar to flush

CAUTION: This email originated from outside of the organization. Do not click 
links or open
attachments unless you can confirm the sender and know the content is safe.



diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 1831dc66b0..13f68dc93d 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -146,23 +146,23 @@ enum
#define IOMMU_FLUSHF_modified (1u << _IOMMU_FLUSHF_modified)

int __must_check iommu_map(struct domain *d, dfn_t dfn, mfn_t mfn,
-                           unsigned int page_order, unsigned int flags,
+                           unsigned long page_count, unsigned int flags,
                           unsigned int *flush_flags);
int __must_check iommu_unmap(struct domain *d, dfn_t dfn,
-                             unsigned int page_order,
+                             unsigned long page_count,
                             unsigned int *flush_flags);

int __must_check iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,
-                                  unsigned int page_order,
+                                  unsigned long page_count,
                                  unsigned int flags);
int __must_check iommu_legacy_unmap(struct domain *d, dfn_t dfn,
-                                    unsigned int page_order);
+                                    unsigned long page_count);

int __must_check iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,
                                   unsigned int *flags);

int __must_check iommu_iotlb_flush(struct domain *d, dfn_t dfn,
-                                   unsigned int page_count,
+                                   unsigned long page_count,
                                   unsigned int flush_flags);
int __must_check iommu_iotlb_flush_all(struct domain *d,
                                       unsigned int flush_flags);
@@ -281,7 +281,7 @@ struct iommu_ops {
    void (*share_p2m)(struct domain *d);
    void (*crash_shutdown)(void);
    int __must_check (*iotlb_flush)(struct domain *d, dfn_t dfn,
-                                    unsigned int page_count,
+                                    unsigned long page_count,
This change will require to change the arm smmu code to have the right type for 
page count:
xen/drivers/passthrough/smmu.c:2536
static int __must_check arm_smmu_iotlb_flush(struct domain *d, dfn_t dfn,
                         unsigned int page_count,
                         unsigned int flush_flags)

Otherwise compilation is failing for arm.

With that fixed i could compile and start an arm system with the complete serie 
(but not one with an
arm SMMU).

I should have specified because my test system right now does not have an 
SMMUv1.

Thanks for spotting that; I did run a cross compilation on arm a while ago so 
not sure how I managed to miss this. Will fix and send v7.


  Probably ipmmu_iotlb_flush() in ipmmu-vmsa.c needs the same update as well (I 
don't have the possibility to apply your series and re-check)? Please note, it 
is still under CONFIG_EXPERT.
-----

Oh, that's new I guess?

Not so new, AFAIR it is in mainline since v4.13 or little bit earlier, but still under Tech Preview.


  I'll go check.

Thank you.


--
Regards,

Oleksandr Tyshchenko


Reply via email to