From: Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Alex Thorlton <athorlton-sJ/iWh9BUns@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Dimitri Sivanich <sivanich-sJ/iWh9BUns@public.gmane.org>,
Russ Anderson <rja-sJ/iWh9BUns@public.gmane.org>,
Mike Travis <travis-sJ/iWh9BUns@public.gmane.org>,
Matt Fleming
<matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>,
Borislav Petkov <bp-l3A5Bk7waGM@public.gmane.org>,
Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>,
"x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
<x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
"linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 1/2] Create UV efi_call macros
Date: Thu, 12 May 2016 10:17:39 +0200 [thread overview]
Message-ID: <20160512081739.GA25826@gmail.com> (raw)
In-Reply-To: <CAKv+Gu8Z0faffrN8Jnz9fQPkyn6K69cFaRD348w+m_Lv4Jgynw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
* Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
> On 12 May 2016 at 08:46, Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
> >
> > * Alex Thorlton <athorlton-sJ/iWh9BUns@public.gmane.org> wrote:
> >
> >> +#define efi_call_virt(f, args...) \
> >> +({ \
> >> + efi_status_t __s; \
> >> + unsigned long flags; \
> >> + arch_efi_call_virt_setup(); \
> >> + local_save_flags(flags); \
> >> + __s = arch_efi_call_virt(f, args); \
> >> + efi_call_virt_check_flags(flags, __stringify(f)); \
> >> + arch_efi_call_virt_teardown(); \
> >> + __s; \
> >> +})
> >> +
> >> +#define __efi_call_virt(f, args...) \
> >> +({ \
> >> + unsigned long flags; \
> >> + arch_efi_call_virt_setup(); \
> >> + local_save_flags(flags); \
> >> + arch_efi_call_virt(f, args); \
> >> + efi_call_virt_check_flags(flags, __stringify(f)); \
> >> + arch_efi_call_virt_teardown(); \
> >> +})
> >> +
> >> +#define uv_call_virt(f, args...) \
> >> +({ \
> >> + efi_status_t __s; \
> >> + unsigned long flags; \
> >> + arch_efi_call_virt_setup(); \
> >> + local_save_flags(flags); \
> >> + __s = uv_efi_call_virt(f, args); \
> >> + efi_call_virt_check_flags(flags, __stringify(f)); \
> >> + arch_efi_call_virt_teardown(); \
> >> + __s; \
> >> +})
> >
> > Btw., a very (very!) small stylistic nit that caught my eyes, and I realize that
> > you just moved code, but could you please improve these macros a bit and make it
> > look like regular kernel code? I.e. something like:
> >
> > #define efi_call_virt(f, args...) \
> > ({ \
> > efi_status_t __s; \
> > unsigned long flags; \
> > \
> > arch_efi_call_virt_setup(); \
> > \
> > local_save_flags(flags); \
> > __s = arch_efi_call_virt(f, args); \
> > efi_call_virt_check_flags(flags, __stringify(f)); \
> > arch_efi_call_virt_teardown(); \
> > \
> > __s; \
> > })
> >
> > This delineates the various blocks of code: variables, setup, the saving/calling
> > block plus the return code.
> >
> > (Assuming the EFI folks like the whole approach.)
> >
>
> Fine by me, although having a newline after arch_efi_call_virt_setup()
> but not before arch_efi_call_virt_teardown() seems rather arbitrary
It's an oversight! :-)
#define efi_call_virt(f, args...) \
({ \
efi_status_t __s; \
unsigned long flags; \
\
arch_efi_call_virt_setup(); \
\
local_save_flags(flags); \
__s = arch_efi_call_virt(f, args); \
efi_call_virt_check_flags(flags, __stringify(f)); \
\
arch_efi_call_virt_teardown(); \
\
__s; \
})
But if it's too segmented this is fine too:
#define efi_call_virt(f, args...) \
({ \
efi_status_t __s; \
unsigned long flags; \
\
arch_efi_call_virt_setup(); \
local_save_flags(flags); \
__s = arch_efi_call_virt(f, args); \
efi_call_virt_check_flags(flags, __stringify(f)); \
arch_efi_call_virt_teardown(); \
\
__s; \
})
Thanks,
Ingo
WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@kernel.org>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Alex Thorlton <athorlton@sgi.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Dimitri Sivanich <sivanich@sgi.com>, Russ Anderson <rja@sgi.com>,
Mike Travis <travis@sgi.com>,
Matt Fleming <matt@codeblueprint.co.uk>,
Borislav Petkov <bp@suse.de>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"x86@kernel.org" <x86@kernel.org>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>
Subject: Re: [PATCH 1/2] Create UV efi_call macros
Date: Thu, 12 May 2016 10:17:39 +0200 [thread overview]
Message-ID: <20160512081739.GA25826@gmail.com> (raw)
In-Reply-To: <CAKv+Gu8Z0faffrN8Jnz9fQPkyn6K69cFaRD348w+m_Lv4Jgynw@mail.gmail.com>
* Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> On 12 May 2016 at 08:46, Ingo Molnar <mingo@kernel.org> wrote:
> >
> > * Alex Thorlton <athorlton@sgi.com> wrote:
> >
> >> +#define efi_call_virt(f, args...) \
> >> +({ \
> >> + efi_status_t __s; \
> >> + unsigned long flags; \
> >> + arch_efi_call_virt_setup(); \
> >> + local_save_flags(flags); \
> >> + __s = arch_efi_call_virt(f, args); \
> >> + efi_call_virt_check_flags(flags, __stringify(f)); \
> >> + arch_efi_call_virt_teardown(); \
> >> + __s; \
> >> +})
> >> +
> >> +#define __efi_call_virt(f, args...) \
> >> +({ \
> >> + unsigned long flags; \
> >> + arch_efi_call_virt_setup(); \
> >> + local_save_flags(flags); \
> >> + arch_efi_call_virt(f, args); \
> >> + efi_call_virt_check_flags(flags, __stringify(f)); \
> >> + arch_efi_call_virt_teardown(); \
> >> +})
> >> +
> >> +#define uv_call_virt(f, args...) \
> >> +({ \
> >> + efi_status_t __s; \
> >> + unsigned long flags; \
> >> + arch_efi_call_virt_setup(); \
> >> + local_save_flags(flags); \
> >> + __s = uv_efi_call_virt(f, args); \
> >> + efi_call_virt_check_flags(flags, __stringify(f)); \
> >> + arch_efi_call_virt_teardown(); \
> >> + __s; \
> >> +})
> >
> > Btw., a very (very!) small stylistic nit that caught my eyes, and I realize that
> > you just moved code, but could you please improve these macros a bit and make it
> > look like regular kernel code? I.e. something like:
> >
> > #define efi_call_virt(f, args...) \
> > ({ \
> > efi_status_t __s; \
> > unsigned long flags; \
> > \
> > arch_efi_call_virt_setup(); \
> > \
> > local_save_flags(flags); \
> > __s = arch_efi_call_virt(f, args); \
> > efi_call_virt_check_flags(flags, __stringify(f)); \
> > arch_efi_call_virt_teardown(); \
> > \
> > __s; \
> > })
> >
> > This delineates the various blocks of code: variables, setup, the saving/calling
> > block plus the return code.
> >
> > (Assuming the EFI folks like the whole approach.)
> >
>
> Fine by me, although having a newline after arch_efi_call_virt_setup()
> but not before arch_efi_call_virt_teardown() seems rather arbitrary
It's an oversight! :-)
#define efi_call_virt(f, args...) \
({ \
efi_status_t __s; \
unsigned long flags; \
\
arch_efi_call_virt_setup(); \
\
local_save_flags(flags); \
__s = arch_efi_call_virt(f, args); \
efi_call_virt_check_flags(flags, __stringify(f)); \
\
arch_efi_call_virt_teardown(); \
\
__s; \
})
But if it's too segmented this is fine too:
#define efi_call_virt(f, args...) \
({ \
efi_status_t __s; \
unsigned long flags; \
\
arch_efi_call_virt_setup(); \
local_save_flags(flags); \
__s = arch_efi_call_virt(f, args); \
efi_call_virt_check_flags(flags, __stringify(f)); \
arch_efi_call_virt_teardown(); \
\
__s; \
})
Thanks,
Ingo
next prev parent reply other threads:[~2016-05-12 8:17 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-11 19:55 [RFC PATCH 0/2] Fix EFI runtime calls on SGI UV Alex Thorlton
2016-05-11 19:55 ` [PATCH 1/2] Create UV efi_call macros Alex Thorlton
[not found] ` <1462996545-98387-2-git-send-email-athorlton-sJ/iWh9BUns@public.gmane.org>
2016-05-12 6:46 ` Ingo Molnar
2016-05-12 6:46 ` Ingo Molnar
[not found] ` <20160512064606.GA30717-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-12 7:35 ` Ard Biesheuvel
2016-05-12 7:35 ` Ard Biesheuvel
[not found] ` <CAKv+Gu8Z0faffrN8Jnz9fQPkyn6K69cFaRD348w+m_Lv4Jgynw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-05-12 8:17 ` Ingo Molnar [this message]
2016-05-12 8:17 ` Ingo Molnar
[not found] ` <20160512081739.GA25826-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-16 23:00 ` Alex Thorlton
2016-05-16 23:00 ` Alex Thorlton
2016-05-12 12:06 ` Matt Fleming
2016-05-16 22:58 ` Alex Thorlton
[not found] ` <20160516225840.GL98477-7ppMa7wkY9tKToyKb8PD+Zs2JHu2awxn0E9HWUfgJXw@public.gmane.org>
2016-05-17 12:11 ` Matt Fleming
2016-05-17 12:11 ` Matt Fleming
[not found] ` <20160517121122.GC21993-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-05-17 20:14 ` Alex Thorlton
2016-05-17 20:14 ` Alex Thorlton
2016-05-11 19:55 ` [PATCH 2/2] Fix efi_call Alex Thorlton
[not found] ` <1462996545-98387-3-git-send-email-athorlton-sJ/iWh9BUns@public.gmane.org>
2016-05-12 6:48 ` Ingo Molnar
2016-05-12 6:48 ` Ingo Molnar
2016-05-12 11:43 ` Matt Fleming
[not found] ` <20160512064835.GB30717-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-16 16:24 ` Alex Thorlton
2016-05-16 16:24 ` Alex Thorlton
2016-05-12 11:41 ` Matt Fleming
2016-05-12 11:41 ` Matt Fleming
[not found] ` <20160512114149.GD2728-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-05-16 16:25 ` Alex Thorlton
2016-05-16 16:25 ` Alex Thorlton
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=20160512081739.GA25826@gmail.com \
--to=mingo-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=athorlton-sJ/iWh9BUns@public.gmane.org \
--cc=bp-l3A5Bk7waGM@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=rja-sJ/iWh9BUns@public.gmane.org \
--cc=sivanich-sJ/iWh9BUns@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=travis-sJ/iWh9BUns@public.gmane.org \
--cc=x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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.