diff --git a/target/linux/ar7/patches-2.6.24/900-temporary_cpmac_hack.diff b/target/linux/ar7/patches-2.6.24/900-temporary_cpmac_hack.diff
new file mode 100644
index 0000000000000000000000000000000000000000..0a2224f683ff8a1a7fed5c1e32864dff57317bb3
--- /dev/null
+++ b/target/linux/ar7/patches-2.6.24/900-temporary_cpmac_hack.diff
@@ -0,0 +1,27 @@
+--- linux-2.6.24.2/drivers/net/cpmac.c	2008-03-10 22:13:50.000000000 +0100
++++ linux-2.6.24.2/drivers/net/cpmac.c	2008-03-05 15:13:27.000000000 +0100
+@@ -841,7 +841,8 @@
+ 	int new_state = 0;
+ 
+ 	spin_lock(&priv->lock);
+-	if (priv->phy->link) {
++	if (1 /* priv->phy->link */ ) {
++		netif_carrier_on(dev);
+ 		netif_start_queue(dev);
+ 		if (priv->phy->duplex != priv->oldduplex) {
+ 			new_state = 1;
+@@ -853,11 +854,11 @@
+ 			priv->oldspeed = priv->phy->speed;
+ 		}
+ 
+-		if (!priv->oldlink) {
++		/*if (!priv->oldlink) {
+ 			new_state = 1;
+-			priv->oldlink = 1;
++			priv->oldlink = 1;*/
+ 			netif_schedule(dev);
+-		}
++		/*}*/
+ 	} else if (priv->oldlink) {
+ 		netif_stop_queue(dev);
+ 		new_state = 1;