|
11 | 11 | #ifdef CONFIG_ARM_KERNMEM_PERMS
|
12 | 12 | #include <asm/pgtable.h>
|
13 | 13 | #endif
|
14 |
| - |
| 14 | + |
| 15 | +/* |
| 16 | + * Poor man's version of LOG2CEIL(), which is |
| 17 | + * not available in binutils before v2.24. |
| 18 | + */ |
| 19 | +#define LOG2_ROUNDUP(size) ( \ |
| 20 | + __LOG2_ROUNDUP(size, 2) \ |
| 21 | + __LOG2_ROUNDUP(size, 3) \ |
| 22 | + __LOG2_ROUNDUP(size, 4) \ |
| 23 | + __LOG2_ROUNDUP(size, 5) \ |
| 24 | + __LOG2_ROUNDUP(size, 6) \ |
| 25 | + __LOG2_ROUNDUP(size, 7) \ |
| 26 | + __LOG2_ROUNDUP(size, 8) \ |
| 27 | + __LOG2_ROUNDUP(size, 9) \ |
| 28 | + __LOG2_ROUNDUP(size, 10) \ |
| 29 | + __LOG2_ROUNDUP(size, 11) \ |
| 30 | + 12) |
| 31 | + |
| 32 | +#define __LOG2_ROUNDUP(size, order) \ |
| 33 | + (size) <= (1 << order) ? order : |
| 34 | + |
15 | 35 | #define PROC_INFO \
|
16 | 36 | . = ALIGN(4); \
|
17 | 37 | VMLINUX_SYMBOL(__proc_info_begin) = .; \
|
|
23 | 43 | VMLINUX_SYMBOL(__idmap_text_start) = .; \
|
24 | 44 | *(.idmap.text) \
|
25 | 45 | VMLINUX_SYMBOL(__idmap_text_end) = .; \
|
26 |
| - . = ALIGN(1 << LOG2CEIL(__hyp_idmap_size)); \ |
| 46 | + . = ALIGN(1 << LOG2_ROUNDUP(__hyp_idmap_size)); \ |
27 | 47 | VMLINUX_SYMBOL(__hyp_idmap_text_start) = .; \
|
28 | 48 | *(.hyp.idmap.text) \
|
29 | 49 | VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
|
|
0 commit comments