>        
> In this case even though hardware supports PASID, BIND flow fails.

It should fail, since we're reserving PASID 0 for non-PASID transactions with 
S1DSS=0b10. In addition, the SMMUv3 specification does not allow using PASID 
with a single entry. See the description of S1CDMax in 5.2 Stream Table Entry:

"when this field is 0, the substreams of the STE are disabled and one CD is 
available. (The minimum useful number of substreams is 2.) Any transaction with 
a SubstreamID will be terminated with an abort and a C_BAD_SUBSTREAMID event 
recorded."

> Any reason why pasid allocation moved to idr allocations rather than 
> bitmap allocations as in v1 patches ?

Yes, idr provides a convenient way to quickly retrieve the context associated 
with a PASID, when handling a fault. v1 had the allocation in a bitmap and 
storing in a rb-tree. By using an idr we combine both and rely on a well-tested 
infrastructure.

Note that in the future we might need to go back to handcrafting the PASID 
allocation, but it will probably still be based on idr.

Thanks for the clarification, Jean. 
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to