summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@kernel.org>2017-06-26 18:18:38 -0700
committerAndy Lutomirski <luto@kernel.org>2017-06-26 18:18:38 -0700
commit61397cab91021109604e9365feff0bc112842f25 (patch)
treebdc62490d72672e56c8053fd250b0637c61b6b63
parentc2313490ee0c7e97c7c815242852982bb94a85fb (diff)
downloadmisc-tests-61397cab91021109604e9365feff0bc112842f25.tar.gz
user_visible_state: Fix GDT limit handling
Signed-off-by: Andy Lutomirski <luto@kernel.org>
-rw-r--r--user_visible_state.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/user_visible_state.c b/user_visible_state.c
index f36824a..c057585 100644
--- a/user_visible_state.c
+++ b/user_visible_state.c
@@ -53,7 +53,7 @@ static uint16_t show_gdt_and_idt(void)
__asm__ ("sgdt %0" : "=m" (val));
printf("GDT: base = 0x%016lX limit = 0x%04hX\n", val.base, val.limit);
- ret = val.limit;
+ ret = (val.limit + 1) / 8;
__asm__ ("sidt %0" : "=m" (val));
printf("IDT: base = 0x%016lX limit = 0x%04hX\n", val.base, val.limit);
@@ -227,13 +227,13 @@ int main()
arch_prctl(ARCH_SET_GS, 500);
#endif
- uint16_t gdtlimit = show_gdt_and_idt();
+ uint16_t n_gdt_entries = show_gdt_and_idt();
show_ldt();
show_tr();
show_msw();
show_flags();
show_rdtscp();
- for (int i = 0; i <= gdtlimit; i++)
+ for (int i = 0; i <= n_gdt_entries; i++)
show_segment(i, 0);
for (int i = 0; i < 10; i++)
show_segment(i, 1);