+ /* For PV domains we only support rw, rx, rx2rw, rwx access permissions */
There is a bit of discrepancy between the comment and the code here. Also, could you briefly explain why only these permissions are supported?
I will add ârâ to the comment.
Only these permissions are supported as the regular page tables unlike extended page tables (EPT) does not have an explicit R bit. It only has a present bit
and hence there is no easy way to do permissions like execute only. And of course permissions like write or write-execute cannot be supported in both cases.
+ if ( unlikely(p2ma != p2m_access_r &&
+ p2ma != p2m_access_rw &&
+ p2ma != p2m_access_rx &&
+ p2ma != p2m_access_rwx &&
+ p2ma != p2m_access_rx2rw) )
+ return -EINVAL;
+ /* For PV domains we only support r, rw, rx, rwx access permissions */
Code/comment discrepancy again.
I will add ârx2rwâ to the comment.
+ if ( p2m->default_access != p2m_access_r &&
+ p2m->default_access != p2m_access_rw &&
+ p2m->default_access != p2m_access_rx &&
+ p2m->default_access != p2m_access_rwx &&
+ p2m->default_access != p2m_access_rx2rw )
+ return -EINVAL;
+