Thread (43 messages) 43 messages, 3 authors, 2013-10-08
STALE4640d

[PATCH 2/9] iommu/arm-smmu: Calculate SMMU_CB_BASE from smmu register values

From: Will Deacon <hidden>
Date: 2013-09-27 11:08:32
Also in: linux-iommu

On Fri, Sep 27, 2013 at 12:05:21PM +0100, Andreas Herrmann wrote:
On Fri, Sep 27, 2013 at 06:51:53AM -0400, Will Deacon wrote:
quoted
Well, we should already print the "device is 0x%lx bytes but only mapped
0x%lx!" message, which I think is enough to go and figure out what happened.
No, you can map a larger region and still wrongly calculate cb_base
w/o this warning.
Gotcha.
So the required check is something like

         /* Check for mismatch between SMMU address space size and size of mapped region */
         size = 1 << (((id >> ID1_NUMPAGENDXB_SHIFT) & ID1_NUMPAGENDXB_MASK) + 1);
         size *= (smmu->pagesize << 1);
         if (smmu->size != size)
                 dev_warn(smmu->dev,
                          "SMMU_GLOBAL_SIZE (0x%lx) differs from mapped "
			  region size (0x%lx)!\n", size, smmu->size);
Sure, tightening up that check sounds like a good idea.
Looking forward to the next version of the patches!

(I need some more time to think about that secure config access patch :).

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help