[Prism54-devel] sparc64 patch
Clint Adams
schizo@debian.org
Sun, 18 Jan 2004 16:54:25 -0500
--M9NhX3UHpAaciwkO
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
> My rewrite of the mgmt frame handling will address most of
> these issues.
>
> cvs update -rmgmt_rework
>
> to try it out.
Looks like you missed islpci_eth.c.
Lame patch attached.
By the way, is anyone working on 802.1x authenticator support?
--M9NhX3UHpAaciwkO
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="mgmt-rework.sparc64.patch"
Index: ksrc/islpci_eth.c
===================================================================
RCS file: /var/lib/cvs/prism54-ng/ksrc/islpci_eth.c,v
retrieving revision 1.21
diff -u -r1.21 islpci_eth.c
--- ksrc/islpci_eth.c 8 Jan 2004 04:14:40 -0000 1.21
+++ ksrc/islpci_eth.c 18 Jan 2004 21:54:03 -0000
@@ -33,6 +33,13 @@
#include "isl_wds.h"
#endif
+#ifdef __arch64__
+#define voidp_sized_int_t u64
+#else
+#define voidp_sized_int_t u32
+#endif
+
+
/******************************************************************************
Network Interface functions
******************************************************************************/
@@ -81,7 +88,7 @@
u32 index, counter, pci_map_address;
int fragments;
int frame_size;
- int offset;
+ voidp_sized_int_t offset;
struct sk_buff *newskb;
int newskb_offset;
unsigned long flags;
@@ -155,9 +162,9 @@
/* Check alignment and WDS frame formatting. The start of the packet should
* be aligned on a 4-byte boundary. If WDS is enabled add another 6 bytes
* and add WDS address information */
- if (((int) skb->data & 0x03) | init_wds) {
+ if (((voidp_sized_int_t) skb->data & 0x03) | init_wds) {
/* get the number of bytes to add and re-allign */
- offset = (4 - (int) skb->data) & 0x03;
+ offset = (4 - (voidp_sized_int_t) skb->data) & 0x03;
offset += init_wds ? 6 : 0;
/* check whether the current skb can be used */
@@ -170,7 +177,7 @@
#endif
/* allign the buffer on 4-byte boundary */
- skb_reserve(skb, (4 - (int) skb->data) & 0x03);
+ skb_reserve(skb, (4 - (voidp_sized_int_t) skb->data) & 0x03);
if (init_wds) {
/* wds requires an additional address field of 6 bytes */
skb_put(skb, 6);
@@ -190,7 +197,7 @@
} else {
newskb =
dev_alloc_skb(init_wds ? skb->len + 6 : skb->len);
- newskb_offset = (4 - (int) newskb->data) & 0x03;
+ newskb_offset = (4 - (voidp_sized_int_t) newskb->data) & 0x03;
/* Check if newskb->data is aligned */
if (newskb_offset)
--M9NhX3UHpAaciwkO--