summaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/alternative.c
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2022-09-28 23:31:20 +0200
committerHelge Deller <deller@gmx.de>2022-10-11 12:01:24 +0200
commitb148766e2b8b7b61c9aef53aefedae33f637a1e7 (patch)
tree0d469cca1896e632990fe5e35db5008f365ae32c /arch/parisc/kernel/alternative.c
parent4fe89d07dcc2804c8b562f6c7896a45643d34b2f (diff)
downloadlinux-b148766e2b8b7b61c9aef53aefedae33f637a1e7.tar.bz2
parisc: Reduce kernel size by packing alternative tables
The values stored in the length and condition fields of the alternative tables fit into 16 bits, so we can save 4 bytes per alternative table entry. Since a typical 32-bit kernel has more than 3000 entries this saves > 12k of storage on disc. bloat-o-meter shows a reduction of -0.01% by this change: Total: Before=10196505, After=10195529, chg -0.01% $ ls -la vmlinux vmlinux.before -rwxr-xr-x 14437324 vmlinux -rwxr-xr-x 14449512 vmlinux.before Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/kernel/alternative.c')
-rw-r--r--arch/parisc/kernel/alternative.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/parisc/kernel/alternative.c b/arch/parisc/kernel/alternative.c
index daa1e9047275..66f5672c70bd 100644
--- a/arch/parisc/kernel/alternative.c
+++ b/arch/parisc/kernel/alternative.c
@@ -26,7 +26,7 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
struct alt_instr *entry;
int index = 0, applied = 0;
int num_cpus = num_online_cpus();
- u32 cond_check;
+ u16 cond_check;
cond_check = ALT_COND_ALWAYS |
((num_cpus == 1) ? ALT_COND_NO_SMP : 0) |
@@ -45,8 +45,9 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
for (entry = start; entry < end; entry++, index++) {
- u32 *from, cond, replacement;
- s32 len;
+ u32 *from, replacement;
+ u16 cond;
+ s16 len;
from = (u32 *)((ulong)&entry->orig_offset + entry->orig_offset);
len = entry->len;