All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@redhat.com>
To: Roland McGrath <roland@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	Christoph Hellwig <hch@infradead.org>,
	Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>,
	Vitaly Mayatskikh <v.mayatskih@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: Q: put_user_try & co (Was: [PATCH 1/5] Split wait_noreap_copyout())
Date: Thu, 21 May 2009 15:42:35 +0200	[thread overview]
Message-ID: <20090521134235.GB14149@redhat.com> (raw)
In-Reply-To: <20090520201127.48B54FC38D@magilla.sf.frob.com>

On 05/20, Roland McGrath wrote:
>
> > 	#define __put_user_asm_ex(...)				\
> > 		asm volatile(					\
> > 			"1:	mov ..."			\
> > 			_ASM_EXTABLE(1b, &__efault_label)	\
> > 		     	: : ...)
>
> You mean &&__efault_label here (it's a funny syntax, but that's how it is).
> &&label is a GCC extension that I'm not sure the kernel has used before.
>
> I think it can be touchy to have an asm jump into compiled code that way.
> e.g., perhaps the compiler produced:
>
> 	mov reg, 40(sp)
> 	mov $123, reg
> 	#APP
> 	... inside of your asm ...
> 	#NO_APP
> 	mov 40(sp), reg
>
> or some such thing.  If you jump away from inside the asm, you won't ever
> do "mov 40(sp), reg".  But the compiler might think that reg has its
> original value at the __efault_label: code location.
>
> Perhaps more important than any particular compiler-confusion scenario we
> can come up with is simply that this would be an obscure corner of code
> generation in the compiler that the kernel has not evoked before.  There
> might be bugs or oddities in various compilers of various vintages, that
> we don't know about because they never came up before.

Yes, agreed. Thanks to all for replies.

Oleg.


  parent reply	other threads:[~2009-05-21 13:47 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-11 10:12 [PATCH 0/5] wait_task_* cleanups Vitaly Mayatskikh
2009-05-11 10:12 ` [PATCH 1/5] Split wait_noreap_copyout() Vitaly Mayatskikh
2009-05-11 10:20   ` Ingo Molnar
2009-05-11 11:20     ` Vitaly Mayatskikh
2009-05-11 12:04   ` Christoph Hellwig
2009-05-11 12:17     ` Ingo Molnar
2009-05-11 20:47       ` Vitaly Mayatskikh
2009-05-11 21:04         ` Ingo Molnar
2009-05-20 19:03       ` Q: put_user_try & co (Was: [PATCH 1/5] Split wait_noreap_copyout()) Oleg Nesterov
2009-05-20 20:11         ` Roland McGrath
2009-05-20 20:56           ` H. Peter Anvin
2009-05-21 13:42           ` Oleg Nesterov [this message]
2009-05-20 21:14         ` Andreas Schwab
2009-05-11 12:17     ` [PATCH 1/5] Split wait_noreap_copyout() Vitaly Mayatskikh
2009-05-11 10:12 ` [PATCH 2/5] Use wait_copyout() in wait_task_stopped() Vitaly Mayatskikh
2009-05-11 10:12 ` [PATCH 3/5] Use wait_copyout() in do_wait() Vitaly Mayatskikh
2009-05-11 10:12 ` [PATCH 4/5] Use wait_copyout() in wait_task_zombie() Vitaly Mayatskikh
2009-05-11 10:12 ` [PATCH 5/5] Use wait_copyout() in wait_task_continued() Vitaly Mayatskikh

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=20090521134235.GB14149@redhat.com \
    --to=oleg@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=h-shimamoto@ct.jp.nec.com \
    --cc=hch@infradead.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=roland@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=v.mayatskih@gmail.com \
    /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.