$NetBSD: patch-ab,v 1.3 2007/03/17 13:44:18 tsutsui Exp $

--- ic/i825x6.c.orig	2007-01-24 12:56:18.000000000 +0000
+++ ic/i825x6.c
@@ -122,11 +122,19 @@ do {					\
 /* an rx buffer: */
 struct tme_i825x6_rx_buffer {
 
-  /* the generic ethernet frame chunk.  this must be first, since we
-     abuse its tme_ethernet_frame_chunk_next for our own next pointer: */
-  struct tme_ethernet_frame_chunk tme_i825x6_rx_buffer_frame_chunk;
+  union {
+     struct tme_i825x6_rx_buffer *rx_buffer_next;
+
+    /* the generic ethernet frame chunk.  this must be first, since we
+       abuse its tme_ethernet_frame_chunk_next for our own next pointer: */
+     struct tme_ethernet_frame_chunk buffer_frame_chunk;
+  } rx_un;
+
+#define tme_i825x6_rx_buffer_next rx_un.rx_buffer_next
+#define tme_i825x6_rx_buffer_frame_chunk rx_un.buffer_frame_chunk
+
 #define TME_I825X6_RX_BUFFER_NEXT(rx_buffer) \
-  (*((struct tme_i825x6_rx_buffer **) &(rx_buffer)->tme_i825x6_rx_buffer_frame_chunk.tme_ethernet_frame_chunk_next))
+  (rx_buffer->tme_i825x6_rx_buffer_next)
 
   /* when this is TME_I825X6_RU_ADDRESS_UNDEF, this rx buffer was made
      from a fast-write TLB entry, and the generic ethernet frame chunk
