From 1a82fc3e5ca98fc0944b2bc4dee9fb6cb2b21da1 Mon Sep 17 00:00:00 2001 From: Eilon Greenstein Date: Thu, 12 Feb 2009 08:37:19 +0000 Subject: [PATCH] --- yaml --- r: 134546 b: refs/heads/master c: 8d5726c404fd41fedb7a49e1fbef62c60754021a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/bnx2x.h | 1 + trunk/drivers/net/bnx2x_init.h | 7 ++++++- trunk/drivers/net/bnx2x_main.c | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index dfa909af1aea..ac66be47083d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 052a38e096dece43e38a19a896ae7ad019415bc1 +refs/heads/master: 8d5726c404fd41fedb7a49e1fbef62c60754021a diff --git a/trunk/drivers/net/bnx2x.h b/trunk/drivers/net/bnx2x.h index 9834a86d8139..891a58ed7591 100644 --- a/trunk/drivers/net/bnx2x.h +++ b/trunk/drivers/net/bnx2x.h @@ -864,6 +864,7 @@ struct bnx2x { int pm_cap; int pcie_cap; + int mrrs; struct delayed_work sp_task; struct work_struct reset_task; diff --git a/trunk/drivers/net/bnx2x_init.h b/trunk/drivers/net/bnx2x_init.h index a6c0b3abba29..961db4916f25 100644 --- a/trunk/drivers/net/bnx2x_init.h +++ b/trunk/drivers/net/bnx2x_init.h @@ -572,7 +572,12 @@ static void bnx2x_init_pxp(struct bnx2x *bp) bp->pcie_cap + PCI_EXP_DEVCTL, &devctl); DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); - r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12); + if (bp->mrrs == -1) + r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12); + else { + DP(NETIF_MSG_HW, "force read order to %d\n", bp->mrrs); + r_order = bp->mrrs; + } if (r_order > MAX_RD_ORD) { DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", diff --git a/trunk/drivers/net/bnx2x_main.c b/trunk/drivers/net/bnx2x_main.c index 60a4e94e6840..2e4d64df66f5 100644 --- a/trunk/drivers/net/bnx2x_main.c +++ b/trunk/drivers/net/bnx2x_main.c @@ -88,6 +88,11 @@ module_param(int_mode, int, 0); MODULE_PARM_DESC(int_mode, " Force interrupt mode (1 INT#x; 2 MSI)"); module_param(poll, int, 0); + +static int mrrs = -1; +module_param(mrrs, int, 0); +MODULE_PARM_DESC(mrrs, " Force Max Read Req Size (0..3) (for debug)"); + module_param(debug, int, 0); MODULE_PARM_DESC(disable_tpa, "disable the TPA (LRO) feature"); MODULE_PARM_DESC(poll, "use polling (for debug)"); @@ -8160,6 +8165,7 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp) bp->dev->features |= NETIF_F_LRO; } + bp->mrrs = mrrs; bp->tx_ring_size = MAX_TX_AVAIL; bp->rx_ring_size = MAX_RX_AVAIL;