diff options
author | Andy Lutomirski <luto@kernel.org> | 2017-06-26 18:18:38 -0700 |
---|---|---|
committer | Andy Lutomirski <luto@kernel.org> | 2017-06-26 18:18:38 -0700 |
commit | 61397cab91021109604e9365feff0bc112842f25 (patch) | |
tree | bdc62490d72672e56c8053fd250b0637c61b6b63 | |
parent | c2313490ee0c7e97c7c815242852982bb94a85fb (diff) | |
download | misc-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.c | 6 |
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); |