xen/arm: smmuv1: Fixed stream matching register allocation

SMR allocation should be based on the number of supported stream
matching register for each SMMU device.

Issue introduced by commit 5e08586afb
when backported the patches from Linux to XEN to fix the stream match
conflict issue when two devices have the same stream-id.

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Tested-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Rahul Singh <rahul.singh@arm.com>
This commit is contained in:
Rahul Singh authored and Stefano Stabellini committed 2021-06-25 14:53:48 -07:00
1 parent f591755823
commit 93fe1817e7
1 file changed
+2 -1
+2 -1
View File
@@ -149,6 +149,7 @@ typedef enum irqreturn irqreturn_t;
#define kzalloc(size, flags) _xzalloc(size, sizeof(void *))
#define devm_kzalloc(dev, size, flags) _xzalloc(size, sizeof(void *))
#define kmalloc_array(size, n, flags) _xmalloc_array(size, sizeof(void *), n)
#define kzalloc_array(size, n, flags) _xzalloc_array(size, sizeof(void *), n)
static void __iomem *devm_ioremap_resource(struct device *dev,
struct resource *res)
@@ -2221,7 +2222,7 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
smmu->smr_mask_mask = smr >> SMR_MASK_SHIFT;
/* Zero-initialised to mark as invalid */
smmu->smrs = devm_kzalloc(smmu->dev, sizeof(*smmu->smrs), GFP_KERNEL);
smmu->smrs = kzalloc_array(sizeof(*smmu->smrs), size, GFP_KERNEL);
if (!smmu->smrs)
return -ENOMEM;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.