From: Amit Singh Tomar <amitsinght@xxxxxxxxxxx>Reviewed-by: Fenghua Yu <fenghuay@xxxxxxxxxx>
Resctrl allocates and finds free CLOSID values using the bits of a u32.
This restricts the number of control groups that can be created by
user-space.
MPAM has an architectural limit of 2^16 CLOSID values, Intel x86 could
be extended beyond 32 values. There is at least one MPAM platform which
supports more than 32 CLOSID values.
Replace the fixed size bitmap with calls to the bitmap API to allocate
an array of a sufficient size.
ffs() returns '1' for bit 0, hence the existing code subtracts 1 from
the index to get the CLOSID value. find_first_bit() returns the bit
number which does not need adjusting.
Signed-off-by: Amit Singh Tomar <amitsinght@xxxxxxxxxxx>
[ morse: fixed the off-by-one in the allocator and the wrong
not-found value. Removed the limit. Rephrase the commit message. ]
Signed-off-by: James Morse <james.morse@xxxxxxx>