RE: [PATCH V8 1/9] iommu: add IOMMU_PRIV attribute

From: Sricharan
Date: Fri Jan 06 2017 - 07:09:07 EST


Hi Joerg,

>-----Original Message-----
>From: linux-arm-kernel [mailto:linux-arm-kernel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Joerg Roedel
>Sent: Friday, January 06, 2017 4:36 PM
>To: Sricharan R <sricharan@xxxxxxxxxxxxxx>
>Cc: mitchelh@xxxxxxxxxxxxxx; pdaly@xxxxxxxxxxxxxx; vinod.koul@xxxxxxxxx; jgebben@xxxxxxxxxxxxxx; will.deacon@xxxxxxx;
>linux-kernel@xxxxxxxxxxxxxxx; iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx; linux@xxxxxxxxxxxxxxx; jcrouse@xxxxxxxxxxxxxx;
>dan.j.williams@xxxxxxxxx; pratikp@xxxxxxxxxxxxxx; tzeng@xxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
>robin.murphy@xxxxxxx
>Subject: Re: [PATCH V8 1/9] iommu: add IOMMU_PRIV attribute
>
>On Mon, Jan 02, 2017 at 06:42:36PM +0530, Sricharan R wrote:
>> From: Mitchel Humpherys <mitchelh@xxxxxxxxxxxxxx>
>>
>> Add the IOMMU_PRIV attribute, which is used to indicate privileged
>> mappings.
>>
>> Reviewed-by: Robin Murphy <robin.murphy@xxxxxxx>
>> Tested-by: Robin Murphy <robin.murphy@xxxxxxx>
>> Signed-off-by: Mitchel Humpherys <mitchelh@xxxxxxxxxxxxxx>
>> Acked-by: Will Deacon <will.deacon@xxxxxxx>
>> ---
>> include/linux/iommu.h | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
>> index 0ff5111..8c15ada 100644
>> --- a/include/linux/iommu.h
>> +++ b/include/linux/iommu.h
>> @@ -31,6 +31,7 @@
>> #define IOMMU_CACHE (1 << 2) /* DMA cache coherency */
>> #define IOMMU_NOEXEC (1 << 3)
>> #define IOMMU_MMIO (1 << 4) /* e.g. things like MSI doorbells */
>> +#define IOMMU_PRIV (1 << 5) /* privileged */
>
>Since this is a new generic global flag, can you please add a more
>verbose comment telling what a 'privileged' mapping is about in the
>iommu-case? We should have a clear defined semantic for this flag or we
>might end up with different meanings for it with different
>iommu-hardware.

This flag is to inform the iommu api to setup privileged mappings
for the caller which can be accessed only by the master running with
supervisor/privileged permissions and inaccessible to less privileged
execution levels.

i will repost this with comment added.

Regards,
Sricharan