diff options
author | Michael Chan <mchan@broadcom.com> | 2008-01-21 20:06:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:10:13 -0500 |
commit | 2dd201d7b735f252df1a915a3f2e6a71910a3d87 (patch) | |
tree | 09a3fa5be7947c52a30cf640c40b230eb6cc72d6 /drivers | |
parent | 819d772b0ceddebb5b4907d5aa5505c99aec985b (diff) |
[BNX2]: Disable jumbo rx paging on 5709 Ax.
The chip has problem running in this mode and needs to be disabled.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/bnx2.c | 4 | ||||
-rw-r--r-- | drivers/net/bnx2.h | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 3bb69d538ef0..44734613ab37 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -4669,7 +4669,7 @@ bnx2_set_rx_ring_size(struct bnx2 *bp, u32 size) | |||
4669 | bp->rx_pg_ring_size = 0; | 4669 | bp->rx_pg_ring_size = 0; |
4670 | bp->rx_max_pg_ring = 0; | 4670 | bp->rx_max_pg_ring = 0; |
4671 | bp->rx_max_pg_ring_idx = 0; | 4671 | bp->rx_max_pg_ring_idx = 0; |
4672 | if (rx_space > PAGE_SIZE) { | 4672 | if ((rx_space > PAGE_SIZE) && !(bp->flags & JUMBO_BROKEN_FLAG)) { |
4673 | int pages = PAGE_ALIGN(bp->dev->mtu - 40) >> PAGE_SHIFT; | 4673 | int pages = PAGE_ALIGN(bp->dev->mtu - 40) >> PAGE_SHIFT; |
4674 | 4674 | ||
4675 | jumbo_size = size * pages; | 4675 | jumbo_size = size * pages; |
@@ -7031,6 +7031,8 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev) | |||
7031 | goto err_out_unmap; | 7031 | goto err_out_unmap; |
7032 | } | 7032 | } |
7033 | bp->flags |= PCIE_FLAG; | 7033 | bp->flags |= PCIE_FLAG; |
7034 | if (CHIP_REV(bp) == CHIP_REV_Ax) | ||
7035 | bp->flags |= JUMBO_BROKEN_FLAG; | ||
7034 | } else { | 7036 | } else { |
7035 | bp->pcix_cap = pci_find_capability(pdev, PCI_CAP_ID_PCIX); | 7037 | bp->pcix_cap = pci_find_capability(pdev, PCI_CAP_ID_PCIX); |
7036 | if (bp->pcix_cap == 0) { | 7038 | if (bp->pcix_cap == 0) { |
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h index 09bd665a3b9c..c1ab30b0f87a 100644 --- a/drivers/net/bnx2.h +++ b/drivers/net/bnx2.h | |||
@@ -6582,6 +6582,7 @@ struct bnx2 { | |||
6582 | #define PCIE_FLAG 0x00000200 | 6582 | #define PCIE_FLAG 0x00000200 |
6583 | #define USING_MSIX_FLAG 0x00000400 | 6583 | #define USING_MSIX_FLAG 0x00000400 |
6584 | #define USING_MSI_OR_MSIX_FLAG (USING_MSI_FLAG | USING_MSIX_FLAG) | 6584 | #define USING_MSI_OR_MSIX_FLAG (USING_MSI_FLAG | USING_MSIX_FLAG) |
6585 | #define JUMBO_BROKEN_FLAG 0x00000800 | ||
6585 | 6586 | ||
6586 | /* Put tx producer and consumer fields in separate cache lines. */ | 6587 | /* Put tx producer and consumer fields in separate cache lines. */ |
6587 | 6588 | ||