lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150526152944.GA23178@localhost.localdomain>
Date:	Tue, 26 May 2015 10:29:44 -0500
From:	Jaime Arrocha <jarr@...neldev.net>
To:	gregkh@...uxfoundation.org, dan.carpenter@...cle.com,
	jonathankim@...semi.com, deanahn@...semi.com
Cc:	devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org,
	jarr@...neldev.net
Subject: [PATCH 1/2] staging: gdm724x: Remove test for host endian

This is the first patch of two. Both patches perform a small clean up
done to the section for host endian test. Instead of handling endianness
internally, kernel functions were added for use.
The second patch depends on the first one, it is just a small piece
that is no longer needed.

Signed-off-by: Jaime Arrocha <jarr@...neldev.net>
---
 drivers/staging/gdm724x/gdm_endian.c |   52 +++++++++++++++-------------------
 1 file changed, 23 insertions(+), 29 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_endian.c b/drivers/staging/gdm724x/gdm_endian.c
index f6cc90a..609a433 100644
--- a/drivers/staging/gdm724x/gdm_endian.c
+++ b/drivers/staging/gdm724x/gdm_endian.c
@@ -11,57 +11,51 @@
  * GNU General Public License for more details.
  */
 
-#include <linux/slab.h>
+#include<asm/byteorder.h>
+#ifdef __LITTLE_ENDIAN
+#include<linux/byteorder/little_endian.h>
+#else
+#include<linux/byteorder/big_endian.h>
+#endif
+
 #include "gdm_endian.h"
 
 void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian)
 {
-	u8 a[2] = {0x12, 0x34};
-	u8 b[2] = {0, };
-	u16 c = 0x1234;
-
 	if (dev_endian == ENDIANNESS_BIG)
 		ed->dev_ed = ENDIANNESS_BIG;
 	else
 		ed->dev_ed = ENDIANNESS_LITTLE;
-
-	memcpy(b, &c, 2);
-
-	if (a[0] != b[0])
-		ed->host_ed = ENDIANNESS_LITTLE;
-	else
-		ed->host_ed = ENDIANNESS_BIG;
-
 }
 
 u16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian16_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __cpu_to_le16(x);
+	else
+		return __cpu_to_be16(x);
 }
 
 u16 gdm_dev16_to_cpu(struct gdm_endian *ed, u16 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian16_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __le16_to_cpu(x);
+	else
+		return __cpu_to_be16(x);
 }
 
 u32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian32_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __cpu_to_le32(x);
+	else
+		return __cpu_to_be32(x);
 }
 
 u32 gdm_dev32_to_cpu(struct gdm_endian *ed, u32 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian32_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __le32_to_cpu(x);
+	else
+		return __be32_to_cpu(x);
 }
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ