Re: Default kernel for powerpc may change
Hi!
> I'm curious if the pmac/chrp community has any feelings on this. I'm really
> concerned about the pmac community since I don't have any good feedback
Will your kernel include the de4x5 Patch for 6500 machines? If not, your
kernel will break in funny ways on that machine, as I discovered with a
self-compiled stock 2.2.13.
I did attach one for 2.2.8 that flawlessly patches the stock 2.2.13
kernel. Might work with newer ones, too (if they don't already contain
the patch). It's a patch by Paul Msomething (sorry, still can't remember
the name and how to write it), you know who I am talking about, the
pmac-kernel-guy :-)
bye, Georg
diff -ru linux-2.2.8/drivers/net/de4x5.c linux-2.2.8-macx-de4x5/drivers/net/de4x5.c
--- linux-2.2.8/drivers/net/de4x5.c Mon Jun 7 01:32:18 1999
+++ linux-2.2.8-macx-de4x5/drivers/net/de4x5.c Mon Jun 7 01:19:50 1999
@@ -653,12 +653,20 @@
#define ALIGN64 ((u_long)64 - 1) /* 16 longword align */
#define ALIGN128 ((u_long)128 - 1) /* 32 longword align */
+#ifndef __powerpc__
#define ALIGN ALIGN32 /* Keep the DC21040 happy... */
#define CACHE_ALIGN CAL_16LONG
#define DESC_SKIP_LEN DSL_0 /* Must agree with DESC_ALIGN */
/*#define DESC_ALIGN u32 dummy[4]; / * Must agree with DESC_SKIP_LEN */
#define DESC_ALIGN
+#else /* __powerpc__ */
+#define ALIGN ALIGN32 /* Keep the DC21040 happy... */
+#define CACHE_ALIGN CAL_8LONG
+#define DESC_SKIP_LEN DSL_4 /* Must agree with DESC_ALIGN */
+#define DESC_ALIGN u32 dummy[4]; /* Must agree with DESC_SKIP_LEN */
+#endif /* __powerpc__ */
+
#ifndef DEC_ONLY /* See README.de4x5 for using this */
static int dec_only = 0;
#else
@@ -763,6 +771,9 @@
struct de4x5_private {
char adapter_name[80]; /* Adapter name */
u_long interrupt; /* Aligned ISR flag */
+#ifdef __powerpc__
+ u_long dummy[3]; /* Keep rx_ring 32-byte aligned */
+#endif
struct de4x5_desc rx_ring[NUM_RX_DESC]; /* RX descriptor ring */
struct de4x5_desc tx_ring[NUM_TX_DESC]; /* TX descriptor ring */
struct sk_buff *tx_skb[NUM_TX_DESC]; /* TX skb for freeing when sent */
@@ -1571,6 +1582,7 @@
if (skb) de4x5_putb_cache(dev, skb);
}
+ if (!lp->interrupt)
lp->cache.lock = 0;
return status;
Reply to: