diff options
-rw-r--r-- | drivers/net/bnx2x.h | 1 | ||||
-rw-r--r-- | drivers/net/bnx2x_init.h | 7 | ||||
-rw-r--r-- | drivers/net/bnx2x_main.c | 6 |
3 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h index 9834a86d8139..891a58ed7591 100644 --- a/drivers/net/bnx2x.h +++ b/drivers/net/bnx2x.h | |||
@@ -864,6 +864,7 @@ struct bnx2x { | |||
864 | 864 | ||
865 | int pm_cap; | 865 | int pm_cap; |
866 | int pcie_cap; | 866 | int pcie_cap; |
867 | int mrrs; | ||
867 | 868 | ||
868 | struct delayed_work sp_task; | 869 | struct delayed_work sp_task; |
869 | struct work_struct reset_task; | 870 | struct work_struct reset_task; |
diff --git a/drivers/net/bnx2x_init.h b/drivers/net/bnx2x_init.h index a6c0b3abba29..961db4916f25 100644 --- a/drivers/net/bnx2x_init.h +++ b/drivers/net/bnx2x_init.h | |||
@@ -572,7 +572,12 @@ static void bnx2x_init_pxp(struct bnx2x *bp) | |||
572 | bp->pcie_cap + PCI_EXP_DEVCTL, &devctl); | 572 | bp->pcie_cap + PCI_EXP_DEVCTL, &devctl); |
573 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); | 573 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); |
574 | w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); | 574 | w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); |
575 | r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12); | 575 | if (bp->mrrs == -1) |
576 | r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12); | ||
577 | else { | ||
578 | DP(NETIF_MSG_HW, "force read order to %d\n", bp->mrrs); | ||
579 | r_order = bp->mrrs; | ||
580 | } | ||
576 | 581 | ||
577 | if (r_order > MAX_RD_ORD) { | 582 | if (r_order > MAX_RD_ORD) { |
578 | DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", | 583 | DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", |
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c index 60a4e94e6840..2e4d64df66f5 100644 --- a/drivers/net/bnx2x_main.c +++ b/drivers/net/bnx2x_main.c | |||
@@ -88,6 +88,11 @@ module_param(int_mode, int, 0); | |||
88 | MODULE_PARM_DESC(int_mode, " Force interrupt mode (1 INT#x; 2 MSI)"); | 88 | MODULE_PARM_DESC(int_mode, " Force interrupt mode (1 INT#x; 2 MSI)"); |
89 | 89 | ||
90 | module_param(poll, int, 0); | 90 | module_param(poll, int, 0); |
91 | |||
92 | static int mrrs = -1; | ||
93 | module_param(mrrs, int, 0); | ||
94 | MODULE_PARM_DESC(mrrs, " Force Max Read Req Size (0..3) (for debug)"); | ||
95 | |||
91 | module_param(debug, int, 0); | 96 | module_param(debug, int, 0); |
92 | MODULE_PARM_DESC(disable_tpa, "disable the TPA (LRO) feature"); | 97 | MODULE_PARM_DESC(disable_tpa, "disable the TPA (LRO) feature"); |
93 | MODULE_PARM_DESC(poll, "use polling (for debug)"); | 98 | MODULE_PARM_DESC(poll, "use polling (for debug)"); |
@@ -8160,6 +8165,7 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp) | |||
8160 | bp->dev->features |= NETIF_F_LRO; | 8165 | bp->dev->features |= NETIF_F_LRO; |
8161 | } | 8166 | } |
8162 | 8167 | ||
8168 | bp->mrrs = mrrs; | ||
8163 | 8169 | ||
8164 | bp->tx_ring_size = MAX_TX_AVAIL; | 8170 | bp->tx_ring_size = MAX_TX_AVAIL; |
8165 | bp->rx_ring_size = MAX_RX_AVAIL; | 8171 | bp->rx_ring_size = MAX_RX_AVAIL; |