diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c
index 2ad7feac816cd75390da26cc6bc5ac95192aa227..25c72df9cb1798e4940c569c95883362dd8dfa45 100644
--- a/drivers/net/kirkwood_egiga.c
+++ b/drivers/net/kirkwood_egiga.c
@@ -445,7 +445,7 @@ static int kwgbe_init(struct eth_device *dev)
 	KWGBEREG_WR(regs->pmtu, 0);
 
 	/* Assignment of Rx CRDB of given RXUQ */
-	KWGBEREG_WR(regs->rxcdp[RXUQ].rxcdp, (u32) dkwgbe->p_rxdesc_curr);
+	KWGBEREG_WR(regs->rxcdp[RXUQ], (u32) dkwgbe->p_rxdesc_curr);
 	/* Enable port Rx. */
 	KWGBEREG_WR(regs->rqc, (1 << RXUQ));
 
@@ -606,7 +606,7 @@ static int kwgbe_recv(struct eth_device *dev)
 	p_rxdesc_curr->buf_size = PKTSIZE_ALIGN;
 	p_rxdesc_curr->byte_cnt = 0;
 
-	writel((unsigned)p_rxdesc_curr->nxtdesc_p, &dkwgbe->p_rxdesc_curr);
+	writel((unsigned)p_rxdesc_curr->nxtdesc_p, (u32) &dkwgbe->p_rxdesc_curr);
 
 	return 0;
 }
diff --git a/drivers/net/kirkwood_egiga.h b/drivers/net/kirkwood_egiga.h
index 16d52141ed1b35c6cbf5698d6a851369c076334b..30c773ca5c92f1ed73ebdf792dc98ab3a7feaa92 100644
--- a/drivers/net/kirkwood_egiga.h
+++ b/drivers/net/kirkwood_egiga.h
@@ -418,7 +418,7 @@ struct kwgbe_registers {
 	u32 pmtbs;
 	u8 pad14[0x60c - 0x4ec - 4];
 	struct kwgbe_rxcdp rxcdp[7];
-	u32 rxcdp7;
+	struct kwgbe_rxdesc *rxcdp7;
 	u32 rqc;
 	struct kwgbe_txdesc *tcsdp;
 	u8 pad15[0x6c0 - 0x684 - 4];