All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Santos <danielfsantos@att.net>
To: Borislav Petkov <bp@alien8.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Andi Kleen <ak@linux.intel.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christopher Li <sparse@chrisli.org>,
	David Daney <david.daney@cavium.com>,
	David Howells <dhowells@redhat.com>,
	Joe Perches <joe@perches.com>,
	Josh Triplett <josh@joshtriplett.org>,
	Konstantin Khlebnikov <khlebnikov@openvz.org>,
	linux-sparse@vger.kernel.org,
	Michel Lespinasse <walken@google.com>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Pavel Pisa <pisa@cmp.felk.cvut.cz>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH v5 8/9] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON}
Date: Thu, 15 Nov 2012 13:44:45 -0600	[thread overview]
Message-ID: <50A5462D.4060809@att.net> (raw)
In-Reply-To: <20121115150804.GF4956@x1.osrc.amd.com>



On 11/15/2012 09:08 AM, Borislav Petkov wrote:
> On Tue, Nov 13, 2012 at 04:13:40PM -0600, danielfsantos@att.net wrote:
>> Prior to the introduction of __attribute__((error("msg"))) in gcc 4.3,
>> creating compile-time errors required a little trickery.
>> BUILD_BUG{,_ON} uses this attribute when available to generate
>> compile-time errors, but also uses the negative-sized array trick for
>> older compilers, resulting in two error messages in some cases.  The
>> reason it's "some" cases is that as of gcc 4.4, the negative-sized array
>> will not create an error in some situations, like inline functions.
>>
>> This patch replaces the negative-sized array code with the new
>> __compiletime_error_fallback() macro which expands to the same thing
>> unless the the error attribute is available, in which case it expands to
>> do{}while(0), resulting in exactly one compile-time error on all
>> versions of gcc.
>>
>> Note that we are not changing the negative-sized array code for the
>> unoptimized version of BUILD_BUG_ON, since it has the potential to catch
>> problems that would be disabled in later versions of gcc were
>> __compiletime_error_fallback used.  The reason is that that an
>> unoptimized build can't always remove calls to an error-attributed
>> function call (like we are using) that should effectively become dead
>> code if it were optimized.  However, using a negative-sized array with a
>> similar value will not result in an false-positive (error). The only
>> caveat being that it will also fail to catch valid conditions, which we
>> should be expecting in an unoptimized build anyway.
>>
>> Signed-off-by: Daniel Santos <daniel.santos@pobox.com>
>> ---
>>  include/linux/bug.h      |    2 +-
>>  include/linux/compiler.h |    5 +++++
>>  2 files changed, 6 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/linux/bug.h b/include/linux/bug.h
>> index dd4f506..125e744 100644
>> --- a/include/linux/bug.h
>> +++ b/include/linux/bug.h
>> @@ -66,7 +66,7 @@ struct pt_regs;
>>  			__compiletime_error("BUILD_BUG_ON failed");	\
>>  		if (__cond)						\
>>  			__build_bug_on_failed();			\
>> -		((void)sizeof(char[1 - 2*!!(__cond)]));			\
>> +		__compiletime_error_fallback(__cond);			\
> We're passing an already evaluated __cond here which gets doubly-negated
> again in __compiletime_error_fallback. If __compiletime_error_fallback
> is going to be called only from BUILD_BUG_ON, then its definition should
> be:
>
> 	do { ((void)sizeof(char[1 - 2 * (condition)])); } while (0)
>
> i.e., without the !!.
Yeah, I agree. Also, with the complexity, I think a few more comments
can be helpful in compiler.h to clarify what these macros are for more
specifically.

On another note, I have a "part two" set of patches for bug.h &
compiler*.h that does some other stuff (more cleanup & restructuring)
and this is making me think about that more.  My thought about
__compiletime_error_fallback is that it should be called only from
within compiler.h (as in the following patch) and basically just be a
private macro.  However, we still use the use the negative sized array
trick for the unoptimized version of BUILD_BUG_ON (which may have
limited meaning), and we also use a negative bit specifier on a bitfield
in BUILD_BUG_ON_ZERO and BUILD_BUG_ON_NULL (which I treat some in my
other patches as well).  But my thought is that it may be helpful to
encapsulate these tricks into (public) macros in compiler*.h, such as
"compiletime_assert_negarray" and "compiletime_assert_negbitfiled" and
then have __compiletime_error_fallback expand to
compiletime_assert_negarray when it's needed and no-op when it's not.

This doesn't have to be decided now, but it's just a thought you gave me.

And in case you're wondering about the negative bit field,
BUILD_BUG_ON_{ZERO,NULL} can't call BUILD_BUG_ON in a complex expression
({ exp; exp; }) because it is evaluated outside of a function body and
gcc doesn't like that.  Thus, the following macro would, sadly, result
in errors:

#define BUILD_BUG_ON_ZERO(exp) ({BUILD_BUG_ON(exp); 0;})

However, it would not be an error to call an __alwaysinline function
that uses BUILD_BUG_ON, so I still have to explore that and make sure it
works in all scenarios (and compilers).

But back to *this* patch, I'll make that change now.

Thanks!
Daniel

  reply	other threads:[~2012-11-15 19:44 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-28 23:20 [PATCH 0/10] Cleanup & new features for compiler*.h and bug.h Daniel Santos
2012-09-28 23:20 ` [PATCH 1/10] compiler-gcc4.h: correct verion check for __compiletime_error Daniel Santos
2012-10-03  6:25   ` David Rientjes
2012-10-11 20:54     ` Michal Marek
2012-09-28 23:20 ` [PATCH 2/10] compiler-gcc4.h: Reorder macros based upon gcc ver Daniel Santos
2012-10-03  6:28   ` David Rientjes
2012-09-28 23:20 ` [PATCH 3/10] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro Daniel Santos
2012-09-30 13:20   ` Borislav Petkov
2012-09-30 23:11   ` Daniel Santos
2012-10-01  0:22     ` Josh Triplett
2012-10-03  6:32   ` David Rientjes
2012-09-28 23:20 ` [PATCH 4/10] compiler-gcc{3,4}.h: Use " Daniel Santos
2012-09-29  0:20   ` Josh Triplett
2012-09-29  0:31     ` [Bulk] " Daniel Santos
2012-09-29  0:42       ` Josh Triplett
2012-10-03  6:40         ` David Rientjes
2012-09-28 23:20 ` [PATCH 5/10] compiler{,-gcc4}.h: Remove duplicate macros Daniel Santos
2012-09-28 23:20   ` Daniel Santos
2012-09-29  0:23   ` Josh Triplett
2012-09-29  0:34     ` [Bulk] " Daniel Santos
2012-09-29  0:48       ` Josh Triplett
2012-09-28 23:20 ` [PATCH 6/10] bug.h: Replace __linktime_error with __compiletime_error Daniel Santos
2012-09-29  0:23   ` Josh Triplett
2012-09-29  1:04     ` Steven Rostedt
2012-09-30 13:22       ` Borislav Petkov
2012-09-30 21:13         ` Daniel Santos
2012-10-03  6:44   ` David Rientjes
2012-10-03 11:49     ` Daniel Santos
2012-10-03 15:35       ` Josh Triplett
2012-10-03 18:26       ` David Rientjes
2012-10-04  0:26         ` Daniel Santos
2012-10-04 21:51           ` David Rientjes
2012-09-28 23:20 ` [PATCH 7/10] compiler{,-gcc4}.h: Introduce __flatten function attribute Daniel Santos
2012-09-29  0:26   ` Josh Triplett
2012-09-29  0:38     ` Daniel Santos
2012-09-29  0:50       ` Josh Triplett
2012-10-03  6:49         ` David Rientjes
2012-10-03  6:59           ` Josh Triplett
2012-10-03  7:53             ` David Rientjes
2012-10-03 11:20               ` Daniel Santos
2012-10-03 14:01                 ` Steven Rostedt
2012-10-03 14:46                   ` Daniel Santos
2012-10-03 15:14                     ` Steven Rostedt
2012-10-03 15:23                       ` Peter Zijlstra
2012-10-03 15:38                       ` Joe Perches
2012-10-04  0:32                         ` Steven Rostedt
2012-10-04  0:54                           ` Daniel Santos
2012-10-04  2:33                           ` Joe Perches
2012-10-04  0:55                     ` Michel Lespinasse
2012-09-28 23:20 ` [PATCH 8/10] bug.h: Make BUILD_BUG_ON generate compile-time error Daniel Santos
2012-09-29  0:32   ` Josh Triplett
2012-09-29  0:51     ` Daniel Santos
2012-09-29  1:26     ` Daniel Santos
2012-09-29  2:55       ` Josh Triplett
2012-09-29  2:55         ` Josh Triplett
2012-09-30 23:29         ` Daniel Santos
2012-09-30 23:29           ` Daniel Santos
2012-10-01  0:26           ` Josh Triplett
2012-10-01  0:26             ` Josh Triplett
2012-10-02  0:48   ` Michel Lespinasse
2012-10-02 14:57     ` Daniel Santos
2012-09-28 23:20 ` [PATCH 9/10] bug.h: Add BUILD_BUG_ON_NON_CONST macro Daniel Santos
2012-09-28 23:20 ` [PATCH 10/10] bug.h: Add gcc 4.2+ versions of BUILD_BUG_ON_* macros Daniel Santos
2012-10-02  0:55   ` Michel Lespinasse
2012-10-02 16:04     ` Daniel Santos
2012-10-05 19:35 ` [PATCH v2 0/10] Cleanup & new features for compiler*.h and bug.h danielfsantos
2012-10-05 19:42   ` [PATCH v2 01/10] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2012-10-06 17:42     ` Borislav Petkov
2012-10-06 17:54       ` Daniel Santos
2012-10-18  2:26         ` David Rientjes
2012-10-05 19:42   ` [PATCH v2 02/10] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2012-10-05 19:42   ` [PATCH v2 03/10] compiler-gcc{3,4}.h: Use " danielfsantos
2012-10-06 23:05     ` Borislav Petkov
2012-10-06 23:10     ` Borislav Petkov
2012-10-06 23:10       ` Borislav Petkov
2012-10-07 18:27       ` Daniel Santos
2012-10-07 19:42         ` Borislav Petkov
2012-10-07 20:21           ` Daniel Santos
2012-10-09 18:41         ` Andrew Morton
2012-10-09 19:45           ` Josh Triplett
2012-10-05 19:42   ` [PATCH v2 04/10] bug.h: directly include linux/compiler.h danielfsantos
2012-10-05 19:42   ` [PATCH v2 05/10] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2012-10-05 19:42     ` danielfsantos
2012-10-05 19:42   ` [PATCH v2 06/10] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2012-10-05 19:42   ` [PATCH v2 07/10] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2012-10-05 20:59     ` Josh Triplett
2012-10-06  4:28       ` Daniel Santos
2012-10-05 19:42   ` [PATCH v2 08/10] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2012-10-05 19:42   ` [PATCH v2 09/10] bug.h: Add BUILD_BUG_ON_MSG & BUILD_BUG_INTERNAL{,2} danielfsantos
2012-10-05 20:58     ` Borislav Petkov
2012-10-05 20:58       ` Borislav Petkov
2012-10-05 21:02       ` Josh Triplett
2012-10-05 21:02         ` Josh Triplett
2012-10-06  4:41         ` Daniel Santos
2012-10-06  4:41           ` Daniel Santos
2012-10-05 21:04       ` Steven Rostedt
2012-10-05 21:04         ` Steven Rostedt
2012-10-05 19:42   ` [PATCH v2 10/10] bug.h: Convert BUILD_BUG{,_ON} to use BUILD_BUG_ON_MSG danielfsantos
2012-10-05 20:27   ` [PATCH v2 0/10] Cleanup & new features for compiler*.h and bug.h Steven Rostedt
2012-10-07 18:36   ` Daniel Santos
2012-10-24 16:28 ` [PATCH v3 " danielfsantos
2012-10-24 16:33   ` [PATCH v3 01/10] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2012-10-24 16:33   ` [PATCH v3 02/10] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2012-10-24 16:33   ` [PATCH v3 03/10] compiler-gcc{3,4}.h: Use " danielfsantos
2012-10-24 19:05     ` Borislav Petkov
2012-10-24 21:49       ` Josh Triplett
2012-10-24 22:34         ` Borislav Petkov
2012-10-24 16:33   ` [PATCH v3 04/10] bug.h: directly include linux/compiler.h danielfsantos
2012-10-24 19:55     ` Borislav Petkov
2012-10-28 19:23       ` Daniel Santos
2012-10-24 16:33   ` [PATCH v3 05/10] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2012-10-25  9:26     ` Borislav Petkov
2012-10-24 16:33   ` [PATCH v3 06/10] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2012-10-25  9:33     ` Borislav Petkov
2012-10-24 16:33   ` [PATCH v3 07/10] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2012-10-24 16:33   ` [PATCH v3 08/10] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2012-10-24 16:34   ` [PATCH v3 09/10] bug.h: Add BUILD_BUG_ON_MSG & _BUILD_BUG_INTERNAL danielfsantos
2012-10-24 16:34   ` [PATCH v3 10/10] bug.h: Convert BUILD_BUG{,_ON} to use BUILD_BUG_ON_MSG danielfsantos
2012-10-28 20:53 ` [PATCH v4 0/10] Cleanup & new features for compiler*.h and bug.h danielfsantos
2012-10-28 20:57   ` [PATCH v4 1/9] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2012-10-30 12:02     ` Borislav Petkov
2012-10-30 12:02       ` Borislav Petkov
2012-10-28 20:57   ` [PATCH v4 2/9] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2012-10-28 20:57   ` [PATCH v4 3/9] compiler-gcc{3,4}.h: Use " danielfsantos
2012-10-28 20:57   ` [PATCH v4 4/9] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2012-10-28 20:57   ` [PATCH v4 5/9] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2012-10-28 20:57   ` [PATCH v4 6/9] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2012-10-30 16:19     ` Borislav Petkov
2012-10-30 16:19       ` Borislav Petkov
2012-10-31  5:34       ` Daniel Santos
2012-10-31  5:34         ` Daniel Santos
2012-10-31 11:06         ` Borislav Petkov
2012-10-31 11:06           ` Borislav Petkov
2012-10-31 16:38           ` Daniel Santos
2012-10-31 16:38             ` Daniel Santos
2012-11-03 18:10           ` Daniel Santos
2012-10-28 20:57   ` [PATCH v4 7/9] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2012-10-30 16:44     ` Borislav Petkov
2012-10-30 16:44       ` Borislav Petkov
2012-10-28 20:57   ` [PATCH v4 8/9] bug.h: Add BUILD_BUG_ON_MSG & _BUILD_BUG_INTERNAL danielfsantos
2012-10-30 17:17     ` Borislav Petkov
2012-10-30 17:17       ` Borislav Petkov
2012-10-30 21:57       ` Borislav Petkov
2012-10-28 20:57   ` [PATCH v4 9/9] bug.h: Convert BUILD_BUG{,_ON} to use BUILD_BUG_ON_MSG danielfsantos
2012-10-30 19:19     ` Borislav Petkov
2012-10-30 19:19       ` Borislav Petkov
2012-10-31  1:02       ` Josh Triplett
2012-10-31  5:48         ` Daniel Santos
2012-11-13 22:09 ` [PATCH v5 0/9] Cleanup & new features for compiler*.h and bug.h danielfsantos
2012-11-13 22:13   ` [PATCH v5 1/9] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2012-11-13 22:13   ` [PATCH v5 2/9] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2012-11-13 22:13   ` [PATCH v5 3/9] compiler-gcc{3,4}.h: Use " danielfsantos
2012-11-13 22:13   ` [PATCH v5 4/9] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2012-11-13 22:13     ` danielfsantos
2012-11-13 22:13   ` [PATCH v5 5/9] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2012-11-15 15:07     ` Borislav Petkov
2012-11-15 15:07       ` Borislav Petkov
2012-11-13 22:13   ` [PATCH v5 6/9] bug.h: Prevent double evaulation of in BUILD_BUG_ON danielfsantos
2012-11-15 15:07     ` Borislav Petkov
2012-11-15 19:11       ` Daniel Santos
2012-11-17 14:38         ` Borislav Petkov
2012-11-20 19:10           ` Daniel Santos
2012-11-13 22:13   ` [PATCH v5 7/9] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2012-11-13 22:24     ` Daniel Santos
2012-11-15 15:07       ` Borislav Petkov
2012-11-13 22:13   ` [PATCH v5 8/9] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2012-11-15 15:08     ` Borislav Petkov
2012-11-15 15:08       ` Borislav Petkov
2012-11-15 19:44       ` Daniel Santos [this message]
2012-11-17 14:39         ` Borislav Petkov
2012-11-17 14:39           ` Borislav Petkov
2012-11-13 22:13   ` [PATCH v5 9/9] bug.h, compiler.h: Introduce compiletime_assert & BUILD_BUG_ON_MSG danielfsantos
2012-11-15 15:08     ` Borislav Petkov
2012-11-15 15:08       ` Borislav Petkov
2012-11-16 23:25     ` Daniel Santos
2012-11-20 20:42 ` [PATCH v6 0/9] Cleanup & new features for compiler*.h and bug.h danielfsantos
2012-11-20 21:04   ` [PATCH v6 1/9] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2012-11-20 21:05   ` [PATCH v6 2/9] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2012-11-20 21:05   ` [PATCH v6 3/9] compiler-gcc{3,4}.h: Use " danielfsantos
2012-11-20 21:05   ` [PATCH v6 4/9] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2012-11-20 21:05     ` danielfsantos
2012-11-20 21:05   ` [PATCH v6 5/9] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2012-11-20 21:05   ` [PATCH v6 6/9] bug.h: Prevent double evaulation of in BUILD_BUG_ON danielfsantos
2012-11-22 13:42     ` Borislav Petkov
2012-11-22 13:42       ` Borislav Petkov
2012-11-20 21:05   ` [PATCH v6 7/9] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2012-11-20 21:05   ` [PATCH v6 8/9] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2012-11-22 13:43     ` Borislav Petkov
2012-11-22 13:43       ` Borislav Petkov
2012-11-20 21:05   ` [PATCH v6 9/9] bug.h, compiler.h: Introduce compiletime_assert & BUILD_BUG_ON_MSG danielfsantos
2012-11-21  2:35   ` [PATCH v6 0/9] Cleanup & new features for compiler*.h and bug.h Michel Lespinasse
2012-11-22 13:44   ` Borislav Petkov
2013-01-01 21:08 ` [PATCH v7 " danielfsantos
2013-01-01 21:09   ` [PATCH v7 1/9] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2013-01-01 21:09     ` [PATCH v7 2/9] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2013-01-01 21:09     ` [PATCH v7 3/9] compiler-gcc{3,4}.h: Use " danielfsantos
2013-01-01 21:09     ` [PATCH v7 4/9] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2013-01-01 21:09       ` danielfsantos
2013-01-01 21:09     ` [PATCH v7 5/9] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2013-01-01 21:09     ` [PATCH v7 6/9] bug.h: Prevent double evaulation of in BUILD_BUG_ON danielfsantos
2013-01-01 21:09     ` [PATCH v7 7/9] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2013-01-01 21:09     ` [PATCH v7 8/9] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2013-01-01 21:09     ` [PATCH v7 9/9] bug.h, compiler.h: Introduce compiletime_assert & BUILD_BUG_ON_MSG danielfsantos
2013-01-01 21:27     ` [PATCH v7 1/9] compiler-gcc4.h: Reorder macros based upon gcc ver Daniel Santos
2013-01-01 22:54 ` [PATCH v8 0/9] Cleanup & new features for compiler*.h and bug.h danielfsantos
2013-01-01 22:54   ` [PATCH v8 1/9] compiler-gcc4.h: Reorder macros based upon gcc ver danielfsantos
2013-01-01 22:54   ` [PATCH v8 2/9] compiler-gcc.h: Add gcc-recommended GCC_VERSION macro danielfsantos
2013-01-01 22:54   ` [PATCH v8 3/9] compiler-gcc{3,4}.h: Use " danielfsantos
2013-01-01 22:54   ` [PATCH v8 4/9] compiler{,-gcc4}.h, bug.h: Remove duplicate macros danielfsantos
2013-01-01 22:54     ` danielfsantos
2013-01-01 22:54   ` [PATCH v8 5/9] bug.h: Fix BUILD_BUG_ON macro in __CHECKER__ danielfsantos
2013-01-01 22:54   ` [PATCH v8 6/9] bug.h: Prevent double evaulation of in BUILD_BUG_ON danielfsantos
2013-01-01 22:54   ` [PATCH v8 7/9] bug.h: Make BUILD_BUG_ON generate compile-time error danielfsantos
2013-01-01 22:54   ` [PATCH v8 8/9] compiler.h, bug.h: Prevent double error messages with BUILD_BUG{,_ON} danielfsantos
2013-01-01 22:54   ` [PATCH v8 9/9] bug.h, compiler.h: Introduce compiletime_assert & BUILD_BUG_ON_MSG danielfsantos

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=50A5462D.4060809@att.net \
    --to=danielfsantos@att.net \
    --cc=a.p.zijlstra@chello.nl \
    --cc=aarcange@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=daniel.santos@pobox.com \
    --cc=david.daney@cavium.com \
    --cc=dhowells@redhat.com \
    --cc=joe@perches.com \
    --cc=josh@joshtriplett.org \
    --cc=khlebnikov@openvz.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=paul.gortmaker@windriver.com \
    --cc=pisa@cmp.felk.cvut.cz \
    --cc=rostedt@goodmis.org \
    --cc=sparse@chrisli.org \
    --cc=walken@google.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.