All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Kim Phillips <kim.phillips@freescale.com>
Cc: "Woodhouse, David" <david.woodhouse@intel.com>,
	Borislav Petkov <bp@alien8.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Daniel Santos <daniel.santos@pobox.com>,
	David Rientjes <rientjes@google.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Rob Herring <robherring2@gmail.com>
Subject: Re: [RFC] arm: use built-in byte swap function
Date: Thu, 31 Jan 2013 09:28:01 +0000	[thread overview]
Message-ID: <20130131092801.GV23505@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20130130200900.9d7cf7908caeaef4ecee1d61@freescale.com>

On Wed, Jan 30, 2013 at 08:09:00PM -0600, Kim Phillips wrote:
> The savings come mostly from device-tree related code, and some
> from drivers.

You forget that IP networking is all big endian, so these will be using
the byte swapping too (search it for htons/ntohs/htonl/ntohl).

> v2:
> - at91 and lpd270 builds fixed by limiting to ARMv6 and above
>   (i.e., ARM cores that have support for the 'rev' instruction).
>   Otherwise, the compiler emits calls to libgcc's __bswapsi2 on
>   these ARMv4/v5 builds (and arch ARM doesn't link with libgcc).

Which compiler version?  gcc 4.5.4 doesn't do this, except for the 16-bit
swap, so I doubt that any later compiler does.

> --- a/arch/arm/include/uapi/asm/swab.h
> +++ b/arch/arm/include/uapi/asm/swab.h
> @@ -50,4 +50,14 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
>  
>  #endif
>  
> +#if defined(__KERNEL__) && __LINUX_ARM_ARCH__ >= 6
> +#if GCC_VERSION >= 40600
> +#define __HAVE_BUILTIN_BSWAP32__
> +#define __HAVE_BUILTIN_BSWAP64__
> +#endif
> +#if GCC_VERSION >= 40800
> +#define __HAVE_BUILTIN_BSWAP16__
> +#endif
> +#endif

If this is __KERNEL__ only, it should not be in a uapi header.  UAPI
headers get exported to userland, this is not userland interface code.
IT should be in arch/arm/include/asm/swab.h

WARNING: multiple messages have this Message-ID (diff)
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC] arm: use built-in byte swap function
Date: Thu, 31 Jan 2013 09:28:01 +0000	[thread overview]
Message-ID: <20130131092801.GV23505@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20130130200900.9d7cf7908caeaef4ecee1d61@freescale.com>

On Wed, Jan 30, 2013 at 08:09:00PM -0600, Kim Phillips wrote:
> The savings come mostly from device-tree related code, and some
> from drivers.

You forget that IP networking is all big endian, so these will be using
the byte swapping too (search it for htons/ntohs/htonl/ntohl).

> v2:
> - at91 and lpd270 builds fixed by limiting to ARMv6 and above
>   (i.e., ARM cores that have support for the 'rev' instruction).
>   Otherwise, the compiler emits calls to libgcc's __bswapsi2 on
>   these ARMv4/v5 builds (and arch ARM doesn't link with libgcc).

Which compiler version?  gcc 4.5.4 doesn't do this, except for the 16-bit
swap, so I doubt that any later compiler does.

> --- a/arch/arm/include/uapi/asm/swab.h
> +++ b/arch/arm/include/uapi/asm/swab.h
> @@ -50,4 +50,14 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
>  
>  #endif
>  
> +#if defined(__KERNEL__) && __LINUX_ARM_ARCH__ >= 6
> +#if GCC_VERSION >= 40600
> +#define __HAVE_BUILTIN_BSWAP32__
> +#define __HAVE_BUILTIN_BSWAP64__
> +#endif
> +#if GCC_VERSION >= 40800
> +#define __HAVE_BUILTIN_BSWAP16__
> +#endif
> +#endif

If this is __KERNEL__ only, it should not be in a uapi header.  UAPI
headers get exported to userland, this is not userland interface code.
IT should be in arch/arm/include/asm/swab.h

  parent reply	other threads:[~2013-01-31  9:28 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-29  1:30 [RFC] arm: use built-in byte swap function Kim Phillips
2013-01-29  1:30 ` Kim Phillips
2013-01-29  8:35 ` Borislav Petkov
2013-01-29  8:35   ` Borislav Petkov
2013-01-29 16:46   ` Woodhouse, David
2013-01-29 16:46     ` Woodhouse, David
2013-01-29 17:42     ` Borislav Petkov
2013-01-29 17:42       ` Borislav Petkov
2013-01-29 17:55       ` Woodhouse, David
2013-01-29 17:55         ` Woodhouse, David
2013-01-29 18:10         ` Borislav Petkov
2013-01-29 18:10           ` Borislav Petkov
2013-01-30 10:22           ` Woodhouse, David
2013-01-30 10:22             ` Woodhouse, David
2013-01-31  2:09             ` Kim Phillips
2013-01-31  2:09               ` Kim Phillips
2013-01-31  6:44               ` Borislav Petkov
2013-01-31  6:44                 ` Borislav Petkov
2013-01-31  9:28               ` Russell King - ARM Linux [this message]
2013-01-31  9:28                 ` Russell King - ARM Linux
2013-01-31 20:59                 ` Kim Phillips
2013-01-31 20:59                   ` Kim Phillips
2013-01-31 21:33                   ` Borislav Petkov
2013-01-31 21:33                     ` Borislav Petkov
2013-01-31 22:11                   ` Woodhouse, David
2013-01-31 22:11                     ` Woodhouse, David
2013-02-01  0:37                     ` [PATCH v4] " Kim Phillips
2013-02-01  0:37                       ` Kim Phillips
2013-02-01 10:46                       ` Russell King - ARM Linux
2013-02-01 10:46                         ` Russell King - ARM Linux
2013-02-01  1:17                   ` [RFC] " Russell King - ARM Linux
2013-02-01  1:17                     ` Russell King - ARM Linux
2013-02-01  7:33                     ` Woodhouse, David
2013-02-01  7:33                       ` Woodhouse, David
2013-02-06  3:04                       ` Kim Phillips
2013-02-06  3:04                         ` Kim Phillips
2013-02-06  9:02                         ` Woodhouse, David
2013-02-06  9:02                           ` Woodhouse, David
2013-02-07  1:19                           ` Kim Phillips
2013-02-07  1:19                             ` Kim Phillips
2013-02-07 10:19                             ` Will Newton
2013-02-07 10:19                               ` Will Newton
2013-02-07 10:43                               ` Catalin Marinas
2013-02-07 10:43                                 ` Catalin Marinas
2013-02-07 18:13                             ` Russell King - ARM Linux
2013-02-07 18:13                               ` Russell King - ARM Linux
2013-02-08 17:25                               ` Woodhouse, David
2013-02-08 17:25                                 ` Woodhouse, David
2013-02-08 20:04                                 ` Nicolas Pitre
2013-02-08 20:04                                   ` Nicolas Pitre
2013-02-08 22:40                                   ` Woodhouse, David
2013-02-08 22:40                                     ` Woodhouse, David
2013-02-08 22:47                                     ` Nicolas Pitre
2013-02-08 22:47                                       ` Nicolas Pitre
2013-02-09  1:12                                       ` Kim Phillips
2013-02-09  1:12                                         ` Kim Phillips
2013-02-09  3:16                                         ` Nicolas Pitre
2013-02-09  3:16                                           ` Nicolas Pitre
2013-02-20  2:31                                           ` Kim Phillips
2013-02-20  2:31                                             ` Kim Phillips
2013-02-20  2:38                                             ` Stephen Boyd
2013-02-20  2:38                                               ` Stephen Boyd
2013-02-20  3:17                                             ` Nicolas Pitre
2013-02-20  3:17                                               ` Nicolas Pitre
2013-02-20 10:38                                               ` Woodhouse, David
2013-02-20 10:38                                                 ` Woodhouse, David
2013-02-20 13:36                                                 ` Nicolas Pitre
2013-02-20 13:36                                                   ` Nicolas Pitre
2013-02-20 13:44                                                   ` Woodhouse, David
2013-02-20 13:44                                                     ` Woodhouse, David
2013-02-20 14:06                                                     ` Nicolas Pitre
2013-02-20 14:06                                                       ` Nicolas Pitre
2013-02-20 14:53                                                       ` Woodhouse, David
2013-02-20 14:53                                                         ` Woodhouse, David
2013-02-20 15:43                                                         ` Nicolas Pitre
2013-02-20 15:43                                                           ` Nicolas Pitre
2013-02-21  3:49                                                           ` Kim Phillips
2013-02-21  3:49                                                             ` Kim Phillips
2013-02-21  4:29                                                             ` Nicolas Pitre
2013-02-21  4:29                                                               ` Nicolas Pitre
2013-02-21  6:52                                                               ` Kim Phillips
2013-02-21  6:52                                                                 ` Kim Phillips
2013-02-21 16:40                                                                 ` Nicolas Pitre
2013-02-21 16:40                                                                   ` Nicolas Pitre
2013-02-22  2:33                                                                   ` Kim Phillips
2013-02-22  2:33                                                                     ` Kim Phillips
2013-02-22  3:40                                                                     ` Nicolas Pitre
2013-02-22  3:40                                                                       ` Nicolas Pitre
2013-02-23  1:40                                                                       ` [PATCH v6] " Kim Phillips
2013-02-23  1:40                                                                         ` Kim Phillips
2013-02-23  2:40                                                                         ` Nicolas Pitre
2013-02-23  2:40                                                                           ` Nicolas Pitre
2013-02-23 23:20                                                                         ` Woodhouse, David
2013-02-23 23:20                                                                           ` Woodhouse, David
2013-05-23 16:46                                                                           ` [PATCH v7] " Kim Phillips
2013-05-23 16:46                                                                             ` Kim Phillips
2013-05-23 20:09                                                                             ` Nicolas Pitre
2013-05-23 20:09                                                                               ` Nicolas Pitre
2013-05-23 23:13                                                                             ` Russell King - ARM Linux
2013-05-23 23:13                                                                               ` Russell King - ARM Linux
2013-06-06 22:12                                                                               ` Russell King - ARM Linux
2013-06-06 22:12                                                                                 ` Russell King - ARM Linux
2013-06-06 22:23                                                                                 ` Borislav Petkov
2013-06-06 22:23                                                                                   ` Borislav Petkov
2013-06-07  0:03                                                                                 ` Stephen Rothwell
2013-06-07  0:03                                                                                   ` Stephen Rothwell
2013-05-26  5:38                                                                             ` Dirk Behme
2013-05-26  9:30                                                                               ` Woodhouse, David
2013-10-27  2:41                                                                             ` Nicolas Pitre
2013-10-27  2:41                                                                               ` Nicolas Pitre
2013-11-05 21:45                                                                               ` Kim Phillips
2013-11-05 21:45                                                                                 ` Kim Phillips
2013-02-21 16:37                                                               ` [RFC] " Woodhouse, David
2013-02-21 16:37                                                                 ` Woodhouse, David
2013-02-21 17:27                                                                 ` Nicolas Pitre
2013-02-21 17:27                                                                   ` Nicolas Pitre
2013-03-13 13:35                                             ` Woodhouse, David
2013-03-13 13:35                                               ` Woodhouse, David
2013-01-29 14:13 ` Russell King - ARM Linux
2013-01-29 14:13   ` Russell King - ARM Linux
2013-01-29 14:43   ` Woodhouse, David
2013-01-29 14:43     ` Woodhouse, David
2013-01-29 14:53 ` Rob Herring
2013-01-29 14:53   ` Rob Herring
2013-01-29 15:10   ` Woodhouse, David
2013-01-29 15:10     ` Woodhouse, David
2013-01-31 11:44 Woodhouse, David

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=20130131092801.GV23505@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=daniel.santos@pobox.com \
    --cc=david.woodhouse@intel.com \
    --cc=kim.phillips@freescale.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rientjes@google.com \
    --cc=robherring2@gmail.com \
    --cc=rusty@rustcorp.com.au \
    /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.