x86, mpx: fix 32-bit address space calculation

From: Dave Hansen <dave.hansen@linux.intel.com>

I received a bug report that running 32-bit MPX binaries on 64-bit
kernels was broken.  I traced it down to this little code snippet.
We were switching our "number of bounds directory entries"
calculation correctly.  But, we didn't switch the other side of
the calculation: the virtual space size.

This meant that we were calculating an absurd size for
bd_entry_virt_space() on 32-bit because we used the 64-bit
virt_space.

Correct that and properly handle all 3 possible cases:

 1. 32-bit binary on 64-bit kernel
 2. 64-bit binary on 64-bit kernel
 3. 32-bit binary on 32-bit kernel

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
1 file changed