[TG3]: Fix bug in nvram write
authorMichael Chan <mchan@broadcom.com>
Sun, 30 Apr 2006 02:00:24 +0000 (19:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 30 Apr 2006 02:00:24 +0000 (19:00 -0700)
Fix bug in nvram write function. If the starting nvram address offset
happens to be the last dword of the page, the NVRAM_CMD_LAST bit will
not get set in the existing code. This patch fixes the bug by changing
the "else if" to "if" so that the last dword condition always gets
checked.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index 97e27d8e55285e96a84e071f78daff76bfa7924f..07795449709f6ca669e48dce278949537360ea18 100644 (file)
@@ -9404,7 +9404,7 @@ static int tg3_nvram_write_block_buffered(struct tg3 *tp, u32 offset, u32 len,
 
                if ((page_off == 0) || (i == 0))
                        nvram_cmd |= NVRAM_CMD_FIRST;
-               else if (page_off == (tp->nvram_pagesize - 4))
+               if (page_off == (tp->nvram_pagesize - 4))
                        nvram_cmd |= NVRAM_CMD_LAST;
 
                if (i == (len - 4))