netdev
[Top] [All Lists]

[PATCH] fix HIPQUAD macro in kernel.h

To: David Miller <davem@xxxxxxxxxx>
Subject: [PATCH] fix HIPQUAD macro in kernel.h
From: Harald Welte <laforge@xxxxxxxxxxxx>
Date: Thu, 8 Aug 2002 13:31:12 +0200
Cc: netdev@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
Sender: owner-netdev@xxxxxxxxxxx
User-agent: Mutt/1.3.17i
Hi Dave!

Below is a fix for the HIPQUAD macro in kernel.h.  The macro is currently
not endian-aware - it just assumes running on a little-endian machine.

If you don't like the #ifdefs in kernel.h, the macros could be moved into 
include/linux/byteorder/.

Please apply, thanks

--- linux-2.4.19-rc5-plain/include/linux/kernel.h       Wed Aug  7 22:55:03 2002
+++ linux-2.4.19-rc5-endian/include/linux/kernel.h      Thu Aug  8 11:34:13 2002
@@ -12,6 +12,7 @@
 #include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
+#include <asm/byteorder.h>
 
 /* Optimization barrier */
 /* The "volatile" is due to gcc bugs */
@@ -128,11 +129,17 @@
        ((unsigned char *)&addr)[2], \
        ((unsigned char *)&addr)[3]
 
+#if defined(__LITTLE_ENDIAN)
 #define HIPQUAD(addr) \
        ((unsigned char *)&addr)[3], \
        ((unsigned char *)&addr)[2], \
        ((unsigned char *)&addr)[1], \
        ((unsigned char *)&addr)[0]
+#elif defined(__BIG_ENDIAN)
+#define HIPQUAD        NIPQUAD
+#else
+#error "Please fix asm/byteorder.h"
+#endif /* __LITTLE_ENDIAN */
 
 /*
  * min()/max() macros that also do

-- 
Live long and prosper
- Harald Welte / laforge@xxxxxxxxxxxx               http://www.gnumonks.org/
============================================================================
GCS/E/IT d- s-: a-- C+++ UL++++$ P+++ L++++$ E--- W- N++ o? K- w--- O- M+ 
V-- PS++ PE-- Y++ PGP++ t+ 5-- !X !R tv-- b+++ !DI !D G+ e* h--- r++ y+(*)

Attachment: pgpA1JmamF6KA.pgp
Description: PGP signature

<Prev in Thread] Current Thread [Next in Thread>