Subject: [PATCH 1/6] skge: FIFO Ram calculation error

From: Stephen Hemminger <[email-masked]>
Date: Mon, 26 Nov 2007 11:54:48 -0800

The calculation of usable FIFO RAM is wrong in the skge driver.
First, is doesn't take into account the reserved area on the original
SysKonnect Genesis boards. Second it has an off-by-one error because
hw->ports is either 1 or 2.

Signed-off-by: Stephen Hemminger <[email-masked]>

--- a/drivers/net/skge.c	2007-11-21 09:50:08.000000000 -0800
+++ b/drivers/net/skge.c	2007-11-21 12:18:59.000000000 -0800
@@ -2619,8 +2619,8 @@ static int skge_up(struct net_device *de
 		yukon_mac_init(hw, port);
 	spin_unlock_bh(&hw->phy_lock);
 
-	/* Configure RAMbuffers */
-	chunk = hw->ram_size / ((hw->ports + 1)*2);
+	/* Configure RAMbuffers - equally between ports and tx/rx */
+	chunk = (hw->ram_size  - hw->ram_offset) / (hw->ports * 2);
 	ram_addr = hw->ram_offset + 2 * chunk * port;
 
 	skge_ramset(hw, rxqaddr[port], ram_addr, chunk);

-- 
Stephen Hemminger <[email-masked]>