From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Jaswinder Singh Rajput <jaswinder@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
x86 maintainers <x86@kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [git-pull -tip V2] x86: cpu architecture debug code
Date: Fri, 13 Mar 2009 00:37:57 -0700 [thread overview]
Message-ID: <49BA0D55.5050606@goop.org> (raw)
In-Reply-To: <1236779029.2836.33.camel@ht.satnam>
Jaswinder Singh Rajput wrote:
> On Wed, 2009-03-11 at 14:13 +0100, Ingo Molnar wrote:
>
>> * Ingo Molnar <mingo@elte.hu> wrote:
>>
>>
>>> * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote:
>>>
>>>
>>>> @@ -472,7 +473,7 @@ static void print_dt(void *seq)
>>>> print_desc_ptr("GDT", seq, dt);
>>>>
>>>> /* LDT */
>>>> - store_ldt(ldt);
>>>> + asm volatile("sldt %0" : "=m" (ldt));
>>>>
>>> this is still wrong.
>>>
>> As i pointed it out before, we should not open-code an assembly
>> primitive - especially since store_ldt() is available in
>> arch/x86/include/asm/desc.h.
>>
>> True, that primitive is not available on CONFIG_PARAVIRT, but
>> that is a bug: the fix is to move the store_ldt() definition
>> outside the CONFIG_PARAVIRT section in desc.h, not to hack
>> around the problem by open-coding assembly code.
>>
>> I.e. dont let an uncleanliness and incomplete primitive spread
>> to other code. Fix the primitive and remove the uncleanliness
>> that way.
>>
>>
>
> The following changes since commit 259ef6fcea4046fe24495b1e3631c1b905c531c1:
> Jaswinder Singh Rajput (1):
> x86: cpu architecture debug code
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jaswinder/linux-2.6-tip-cpu.git master
>
> Jaswinder Singh Rajput (2):
> x86: cpu_debug.c cleanup
> x86: move store_ldt outside the CONFIG_PARAVIRT section
>
> arch/x86/include/asm/desc.h | 3 ++-
> arch/x86/kernel/cpu/cpu_debug.c | 3 ++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> Complete diff:
> diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
> index dc27705..ceb17cc 100644
> --- a/arch/x86/include/asm/desc.h
> +++ b/arch/x86/include/asm/desc.h
> @@ -91,7 +91,6 @@ static inline int desc_empty(const void *ptr)
> #define store_gdt(dtr) native_store_gdt(dtr)
> #define store_idt(dtr) native_store_idt(dtr)
> #define store_tr(tr) (tr = native_store_tr())
> -#define store_ldt(ldt) asm("sldt %0":"=m" (ldt))
>
> #define load_TLS(t, cpu) native_load_tls(t, cpu)
> #define set_ldt native_set_ldt
> @@ -112,6 +111,8 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
> }
> #endif /* CONFIG_PARAVIRT */
>
> +#define store_ldt(ldt) asm("sldt %0":"=m" (ldt))
> +
> static inline void native_write_idt_entry(gate_desc *idt, int entry,
> const gate_desc *gate)
> {
> diff --git a/arch/x86/kernel/cpu/cpu_debug.c b/arch/x86/kernel/cpu/cpu_debug.c
> index 0bdf4da..9abbcbd 100755
> --- a/arch/x86/kernel/cpu/cpu_debug.c
> +++ b/arch/x86/kernel/cpu/cpu_debug.c
> @@ -23,6 +23,7 @@
> #include <linux/smp.h>
>
> #include <asm/cpu_debug.h>
> +#include <asm/paravirt.h>
>
This shouldn't be necessary. asm/desc.h should pull it in if it needs it.
J
next prev parent reply other threads:[~2009-03-13 7:38 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-10 11:23 [git-pull -tip V2] x86: cpu architecture debug code Jaswinder Singh Rajput
2009-03-10 12:28 ` Ingo Molnar
2009-03-10 15:09 ` Jaswinder Singh Rajput
2009-03-10 15:20 ` Ingo Molnar
2009-03-10 16:09 ` Jaswinder Singh Rajput
2009-03-10 17:45 ` Ingo Molnar
2009-03-10 23:55 ` Jaswinder Singh Rajput
2009-03-11 10:53 ` Ingo Molnar
2009-03-11 11:25 ` Jaswinder Singh Rajput
2009-03-11 11:34 ` Ingo Molnar
2009-03-13 7:34 ` Jeremy Fitzhardinge
2009-03-13 8:07 ` Jaswinder Singh Rajput
2009-03-11 11:54 ` Jaswinder Singh Rajput
2009-03-11 12:45 ` Jaswinder Singh Rajput
2009-03-11 12:50 ` Ingo Molnar
2009-03-11 13:13 ` Ingo Molnar
2009-03-11 13:43 ` Jaswinder Singh Rajput
2009-03-11 13:48 ` Ingo Molnar
2009-03-13 7:37 ` Jeremy Fitzhardinge [this message]
2009-03-10 17:48 ` [tip:x86/debug] " Jaswinder Singh Rajput
2009-03-10 19:53 ` [git-pull -tip V2] " Valdis.Kletnieks
2009-03-10 22:00 ` Ingo Molnar
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=49BA0D55.5050606@goop.org \
--to=jeremy@goop.org \
--cc=hpa@zytor.com \
--cc=jaswinder@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=x86@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.