skge: FIFO Ram calculation error
authorStephen Hemminger <shemminger@linux-foundation.org>
Mon, 26 Nov 2007 19:54:48 +0000 (11:54 -0800)
committerJeff Garzik <jeff@garzik.org>
Sat, 1 Dec 2007 21:32:29 +0000 (16:32 -0500)
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 <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/skge.c

index 6d62250fba07944fab02a67dc9b93dc6fcdf36de..14f06aea9ca04b88ebb47f020262bf5779e0d7d1 100644 (file)
@@ -2619,8 +2619,8 @@ static int skge_up(struct net_device *dev)
                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);