[PATCH 05/11] iommu/arm-smmu: Check for duplicate stream IDs when registering master devices
Will Deacon
will.deacon at arm.com
Wed Jan 22 10:53:02 EST 2014
On Thu, Jan 16, 2014 at 12:44:17PM +0000, Andreas Herrmann wrote:
> Cc: Andreas Herrmann <herrmann.der.user at googlemail.com>
> Signed-off-by: Andreas Herrmann <andreas.herrmann at calxeda.com>
> ---
> drivers/iommu/arm-smmu.c | 25 ++++++++++++++++++++++---
> 1 file changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
> index 02a871e..a4e0c93 100644
> --- a/drivers/iommu/arm-smmu.c
> +++ b/drivers/iommu/arm-smmu.c
> @@ -56,6 +56,9 @@
> /* Maximum number of stream IDs assigned to a single device */
> #define MAX_MASTER_STREAMIDS 8
>
> +/* Maximum stream ID */
> +#define ARM_SMMU_MAX_STREAMID (SZ_64K - 1)
> +
> /* Maximum number of context banks per SMMU */
> #define ARM_SMMU_MAX_CBS 128
>
> @@ -386,6 +389,8 @@ struct arm_smmu_device {
> u32 smr_mask_mask;
> u32 smr_id_mask;
>
> + unsigned long *sids;
DECLARE_BITMAP instead? However, that's an 8k bitmap just for sanity
checking, which I'm not too fond of. Given that the motivation for the
checking was your smr allocator, perhaps it's sufficient just to do the
checking on a per-master basis, which we can do with the exhaustive search
each time.
Will
More information about the linux-arm-kernel
mailing list