[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [XEN VMID PATCH 2/2 v3] xen/arm: Add support for 16 bit VMIDs
Hi Bhupinder,
On 12/12/16 07:26, Bhupinder Thakur wrote:
[...]
-void p2m_vmid_allocator_init(void)
+int p2m_vmid_allocator_init(void)
{
- set_bit(INVALID_VMID, vmid_mask);
+ int ret = 0;
+
+ /*
+ * allocate space for vmid_mask based on MAX_VMID
+ */
+ vmid_mask = xzalloc_array(unsigned long, BITS_TO_LONGS(MAX_VMID));
I would directly handle the panic within this function rather than
return an error. I.e
if ( !vmid_mask )
panic(....);
This would simplify the logic a bit.
+
+ if ( vmid_mask )
+ set_bit(INVALID_VMID, vmid_mask);
+ else
+ ret = -1;
+
+ return ret;
}
static int p2m_alloc_vmid(struct domain *d)
@@ -1632,20 +1653,36 @@ void __init setup_virt_paging(void)
unsigned int cpu;
unsigned int pa_range = 0x10; /* Larger than any possible value */
+ unsigned int vmid_8_bit_flag = 0;
Please use bool:
bool vmid_8_bit_flag = false;
I would also drop _flag as it is not necessary.
for_each_online_cpu ( cpu )
{
const struct cpuinfo_arm *info = &cpu_data[cpu];
if ( info->mm64.pa_range < pa_range )
pa_range = info->mm64.pa_range;
+
+ /* set a flag if the current cpu does not suppot 16 bit VMIDs */
+ if ( info->mm64.vmid_bits != MM64_VMID_16_BITS_SUPPORT )
+ vmid_8_bit_flag = 1;
s/1/true/
The rest of the patch looks good to me.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|