diff --git a/board/prodrive/p3mx/mv_eth.c b/board/prodrive/p3mx/mv_eth.c
index 69c2dba..cba749b 100644
--- a/board/prodrive/p3mx/mv_eth.c
+++ b/board/prodrive/p3mx/mv_eth.c
@@ -246,6 +246,13 @@ void mv_eth_phy_init (void)
 	MV_REG_WRITE (ETH_PHY_DFCDL_CONFIG0_REG, 0x300000);
 }
 
+static struct eth_ops db64460_eth_ops = {
+	.init = (void *) db64460_eth_probe,
+	.halt = (void *) ethernet_phy_reset,
+	.send = (void *) db64460_eth_transmit,
+	.recv = (void *) db64460_eth_poll
+};
+
 void mv6446x_eth_initialize (bd_t * bis)
 {
 	struct eth_device *dev;
@@ -309,10 +316,7 @@ void mv6446x_eth_initialize (bd_t * bis)
 		/* ronen - set the MAC addr in the HW */
 		eth_port_uc_addr_set (devnum, dev->enetaddr, 0);
 
-		dev->eo->init = (void *) db64460_eth_probe;
-		dev->eo->halt = (void *) ethernet_phy_reset;
-		dev->eo->send = (void *) db64460_eth_transmit;
-		dev->eo->recv = (void *) db64460_eth_poll;
+		dev->eo = &db64460_eth_ops;
 
 		ethernet_private = calloc (sizeof (*ethernet_private), 1);
 		dev->priv = (void *)ethernet_private;
