From: tip-bot for Akinobu Mita <akinobu.mita@gmail.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
akinobu.mita@gmail.com, tglx@linutronix.de, mingo@elte.hu
Subject: [tip:x86/asm] x86: Use get_desc_base()
Date: Mon, 20 Jul 2009 12:01:14 GMT [thread overview]
Message-ID: <tip-254e0a6bff87ab8b22293c4bd1443507df698407@git.kernel.org> (raw)
In-Reply-To: <20090718150853.GA11294@localhost.localdomain>
Commit-ID: 254e0a6bff87ab8b22293c4bd1443507df698407
Gitweb: http://git.kernel.org/tip/254e0a6bff87ab8b22293c4bd1443507df698407
Author: Akinobu Mita <akinobu.mita@gmail.com>
AuthorDate: Sun, 19 Jul 2009 00:08:54 +0900
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Sun, 19 Jul 2009 18:27:51 +0200
x86: Use get_desc_base()
Use get_desc_base() to get the base address in desc_struct
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
LKML-Reference: <20090718150853.GA11294@localhost.localdomain>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/kernel/doublefault_32.c | 4 +---
arch/x86/kernel/step.c | 9 ++++-----
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/arch/x86/kernel/doublefault_32.c b/arch/x86/kernel/doublefault_32.c
index b4f14c6..37250fe 100644
--- a/arch/x86/kernel/doublefault_32.c
+++ b/arch/x86/kernel/doublefault_32.c
@@ -27,9 +27,7 @@ static void doublefault_fn(void)
if (ptr_ok(gdt)) {
gdt += GDT_ENTRY_TSS << 3;
- tss = *(u16 *)(gdt+2);
- tss += *(u8 *)(gdt+4) << 16;
- tss += *(u8 *)(gdt+7) << 24;
+ tss = get_desc_base((struct desc_struct *)gdt);
printk(KERN_EMERG "double fault, tss at %08lx\n", tss);
if (ptr_ok(tss)) {
diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c
index e8b9863..3149032 100644
--- a/arch/x86/kernel/step.c
+++ b/arch/x86/kernel/step.c
@@ -4,6 +4,7 @@
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/ptrace.h>
+#include <asm/desc.h>
unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs)
{
@@ -23,7 +24,7 @@ unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *re
* and APM bios ones we just ignore here.
*/
if ((seg & SEGMENT_TI_MASK) == SEGMENT_LDT) {
- u32 *desc;
+ struct desc_struct *desc;
unsigned long base;
seg &= ~7UL;
@@ -33,12 +34,10 @@ unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *re
addr = -1L; /* bogus selector, access would fault */
else {
desc = child->mm->context.ldt + seg;
- base = ((desc[0] >> 16) |
- ((desc[1] & 0xff) << 16) |
- (desc[1] & 0xff000000));
+ base = get_desc_base(desc);
/* 16-bit code segment? */
- if (!((desc[1] >> 22) & 1))
+ if (!desc->d)
addr &= 0xffff;
addr += base;
}
prev parent reply other threads:[~2009-07-20 12:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-18 15:08 [PATCH 1/4] x86: use get_desc_base() Akinobu Mita
2009-07-18 15:09 ` [PATCH 2/4] x86: remove unused patch_espfix_desc() Akinobu Mita
2009-07-20 12:01 ` [tip:x86/asm] x86: Remove " tip-bot for Akinobu Mita
2009-07-18 15:11 ` [PATCH 3/4] x86: introduce set_desc_base() and set_desc_limit() Akinobu Mita
2009-07-20 12:01 ` [tip:x86/asm] x86: Introduce " tip-bot for Akinobu Mita
2009-07-18 15:12 ` [PATCH 4/4] x86: introduce GDT_ENTRY_INIT() Akinobu Mita
2009-07-20 12:01 ` [tip:x86/asm] x86: Introduce GDT_ENTRY_INIT() tip-bot for Akinobu Mita
2009-08-03 6:20 ` Ingo Molnar
2009-08-03 6:27 ` H. Peter Anvin
2009-08-03 15:11 ` Akinobu Mita
2009-08-03 15:17 ` H. Peter Anvin
2009-08-04 12:18 ` Ingo Molnar
2009-08-08 15:48 ` tip-bot for Akinobu Mita
2009-07-20 12:01 ` tip-bot for Akinobu Mita [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-254e0a6bff87ab8b22293c4bd1443507df698407@git.kernel.org \
--to=akinobu.mita@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox