From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:26
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Cc: e1000-devel@lists.sourceforge.net
Cc: linux-driver@qlogic.com
Cc: linux-net-drivers@solarflare.com
Cc: linux-pci@vger.kernel.org
Cc: linux-rdma@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: pv-drivers@vmware.com
Cc: wil6210@qca.qualcomm.com
Alexander Gordeev (35):
bnx2: Use pci_enable_msix_range() instead of pci_enable_msix()
bnx2x: Use pci_enable_msix_range() instead of pci_enable_msix()
tg3: Use pci_enable_msix_range() instead of pci_enable_msix()
bna: Use pci_enable_msix_range() instead of pci_enable_msix()
cxgb3: Remove superfluous call to pci_disable_msix()
cxgb3: Use pci_enable_msix_range() instead of pci_enable_msix()
cxgb4: Use pci_enable_msix_range() instead of pci_enable_msix()
cxgb4vf: Remove superfluous call to pci_disable_msix()
cxgb4vf: Use pci_enable_msix_range() instead of pci_enable_msix()
enic: Use pci_enable_msix_range() instead of pci_enable_msix()
benet: Use pci_enable_msix_range() instead of pci_enable_msix()
e1000e: Use pci_enable_msix_range() instead of pci_enable_msix()
i40e: Use pci_enable_msix_range() instead of pci_enable_msix()
igb: Use pci_enable_msix_range() instead of pci_enable_msix()
igbvf: Use pci_enable_msix_range() instead of pci_enable_msix()
ixgbe: Use pci_enable_msix_range() instead of pci_enable_msix()
ixgbevf: Use pci_enable_msix_range() instead of pci_enable_msix()
mlx4: Use pci_enable_msix_range() instead of pci_enable_msix()
mlx5: Use pci_enable_msix_range() instead of pci_enable_msix()
myri10ge: Use pci_enable_msix_range() instead of pci_enable_msix()
s2io: Use pci_enable_msix_range() instead of pci_enable_msix()
vxge: Use pci_enable_msix_range() instead of pci_enable_msix()
forcedeth: Fix invalid errno reporting in nv_request_irq()
forcedeth: Cleanup MSI-X to MSI to INTx fallback code
forcedeth: Use pci_enable_msix_range() instead of pci_enable_msix()
netxen: Use pci_enable_msix_range() instead of pci_enable_msix()
qlcnic: Cleanup qlcnic_enable_msix() return values
qlcnic: Use pci_enable_msix_range() instead of pci_enable_msix()
qlge: Get rid of an redundant assignment
qlge: Use pci_enable_msix_range() instead of pci_enable_msix()
sfc: Use pci_enable_msix_range() instead of pci_enable_msix()
niu: Use pci_enable_msix_range() instead of pci_enable_msix()
vmxnet3: Fix MSI-X/MSI enablement code
vmxnet3: Use pci_enable_msix_range() instead of pci_enable_msix()
wil6210: Use pci_enable_msi_range() instead of pci_enable_msi_block()
drivers/net/ethernet/broadcom/bnx2.c | 15 +--
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 46 ++++-----
drivers/net/ethernet/broadcom/tg3.c | 6 +-
drivers/net/ethernet/brocade/bna/bnad.c | 23 ++---
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 26 ++---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 50 +++++-----
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 35 +++----
drivers/net/ethernet/cisco/enic/enic_main.c | 6 +-
drivers/net/ethernet/emulex/benet/be_main.c | 31 +++---
drivers/net/ethernet/intel/e1000e/netdev.c | 11 ++-
drivers/net/ethernet/intel/i40e/i40e_main.c | 33 +-----
drivers/net/ethernet/intel/igb/igb_main.c | 9 +-
drivers/net/ethernet/intel/igbvf/netdev.c | 6 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 16 +--
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 32 ++----
drivers/net/ethernet/mellanox/mlx4/main.c | 21 +---
drivers/net/ethernet/mellanox/mlx5/core/main.c | 16 +--
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 40 ++++----
drivers/net/ethernet/neterion/s2io.c | 5 +-
drivers/net/ethernet/neterion/vxge/vxge-main.c | 15 ++-
drivers/net/ethernet/nvidia/forcedeth.c | 41 +++++---
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 5 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 18 ++--
drivers/net/ethernet/qlogic/qlge/qlge_main.c | 16 +--
drivers/net/ethernet/sfc/efx.c | 20 ++--
drivers/net/ethernet/sun/niu.c | 11 +--
drivers/net/vmxnet3/vmxnet3_drv.c | 110 ++++++++-----------
drivers/net/wireless/ath/wil6210/pcie_bus.c | 32 +++---
28 files changed, 295 insertions(+), 400 deletions(-)
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:06:39
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Michael Chan <mchan@broadcom.com>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/broadcom/bnx2.c | 15 ++++-----------
1 files changed, 4 insertions(+), 11 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:00
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Rasesh Mody <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/brocade/bna/bnad.c | 23 +++++++++--------------
1 files changed, 9 insertions(+), 14 deletions(-)
@@ -2681,18 +2683,11 @@ bnad_enable_msix(struct bnad *bnad)bnad->msix_num=BNAD_NUM_TXQ+BNAD_NUM_RXP+BNAD_MAILBOX_MSIX_VECTORS;-if(bnad->msix_num>ret)-gotointx_mode;--/* Try once more with adjusted numbers */-/* If this fails, fall back to INTx */-ret=pci_enable_msix(bnad->pcidev,bnad->msix_table,-bnad->msix_num);-if(ret)+if(bnad->msix_num>ret){+pci_disable_msix(bnad->pcidev);gotointx_mode;--}elseif(ret<0)-gotointx_mode;+}+}pci_intx(bnad->pcidev,0);
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:16
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Nithin Nayak Sujir <redacted>
Cc: Michael Chan <mchan@broadcom.com>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/broadcom/tg3.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:18
There is no need to call pci_disable_msix() in case
the previous call to pci_enable_msix() failed
Signed-off-by: Alexander Gordeev <redacted>
Cc: Santosh Raspatur <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:22
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Ariel Elior <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 46 ++++++++++-------------
1 files changed, 20 insertions(+), 26 deletions(-)
@@ -1638,36 +1638,16 @@ int bnx2x_enable_msix(struct bnx2x *bp)DP(BNX2X_MSG_SP,"about to request enable msix with %d vectors\n",msix_vec);-rc=pci_enable_msix(bp->pdev,&bp->msix_table[0],msix_vec);-+rc=pci_enable_msix_range(bp->pdev,&bp->msix_table[0],+BNX2X_MIN_MSIX_VEC_CNT(bp),msix_vec);/**reconfigurenumberoftx/rxqueuesaccordingtoavailable*MSI-Xvectors*/-if(rc>=BNX2X_MIN_MSIX_VEC_CNT(bp)){-/* how less vectors we will have? */-intdiff=msix_vec-rc;--BNX2X_DEV_INFO("Trying to use less MSI-X vectors: %d\n",rc);--rc=pci_enable_msix(bp->pdev,&bp->msix_table[0],rc);--if(rc){-BNX2X_DEV_INFO("MSI-X is not attainable rc %d\n",rc);-gotono_msix;-}-/*-*decreasenumberofqueuesbynumberofunallocatedentries-*/-bp->num_ethernet_queues-=diff;-bp->num_queues=bp->num_ethernet_queues+bp->num_cnic_queues;--BNX2X_DEV_INFO("New queue configuration set: %d\n",-bp->num_queues);-}elseif(rc>0){+if(rc==-ENOSPC){/* Get by with single vector */-rc=pci_enable_msix(bp->pdev,&bp->msix_table[0],1);-if(rc){+rc=pci_enable_msix_range(bp->pdev,&bp->msix_table[0],1,1);+if(rc<0){BNX2X_DEV_INFO("Single MSI-X is not attainable rc %d\n",rc);gotono_msix;
@@ -1680,8 +1660,22 @@ int bnx2x_enable_msix(struct bnx2x *bp)bp->num_ethernet_queues=1;bp->num_queues=bp->num_ethernet_queues+bp->num_cnic_queues;}elseif(rc<0){-BNX2X_DEV_INFO("MSI-X is not attainable rc %d\n",rc);+BNX2X_DEV_INFO("MSI-X is not attainable rc %d\n",rc);gotono_msix;+}elseif(rc<msix_vec){+/* how less vectors we will have? */+intdiff=msix_vec-rc;++BNX2X_DEV_INFO("Trying to use less MSI-X vectors: %d\n",rc);++/*+*decreasenumberofqueuesbynumberofunallocatedentries+*/+bp->num_ethernet_queues-=diff;+bp->num_queues=bp->num_ethernet_queues+bp->num_cnic_queues;++BNX2X_DEV_INFO("New queue configuration set: %d\n",+bp->num_queues);}bp->flags|=USING_MSIX_FLAG;
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:23
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Dimitris Michailidis <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 50 +++++++++++------------
1 files changed, 24 insertions(+), 26 deletions(-)
@@ -5753,32 +5753,30 @@ static int enable_msix(struct adapter *adap)}need=adap->params.nports+EXTRA_VECS+ofld_need;-while((err=pci_enable_msix(adap->pdev,entries,want))>=need)-want=err;+want=pci_enable_msix_range(adap->pdev,entries,need,want);+if(want<0)+returnwant;-if(!err){-/*-*Distributeavailablevectorstothevariousqueuegroups.-*EverygroupgetsitsminimumrequirementandNICgetstop-*priorityforleftovers.-*/-i=want-EXTRA_VECS-ofld_need;-if(i<s->max_ethqsets){-s->max_ethqsets=i;-if(i<s->ethqsets)-reduce_ethqs(adap,i);-}-if(is_offload(adap)){-i=want-EXTRA_VECS-s->max_ethqsets;-i-=ofld_need-nchan;-s->ofldqsets=(i/nchan)*nchan;/* round down */-}-for(i=0;i<want;++i)-adap->msix_info[i].vec=entries[i].vector;-}elseif(err>0)-dev_info(adap->pdev_dev,-"only %d MSI-X vectors left, not using MSI-X\n",err);-returnerr;+/*+*Distributeavailablevectorstothevariousqueuegroups.+*EverygroupgetsitsminimumrequirementandNICgetstop+*priorityforleftovers.+*/+i=want-EXTRA_VECS-ofld_need;+if(i<s->max_ethqsets){+s->max_ethqsets=i;+if(i<s->ethqsets)+reduce_ethqs(adap,i);+}+if(is_offload(adap)){+i=want-EXTRA_VECS-s->max_ethqsets;+i-=ofld_need-nchan;+s->ofldqsets=(i/nchan)*nchan;/* round down */+}+for(i=0;i<want;++i)+adap->msix_info[i].vec=entries[i].vector;++return0;}#undef EXTRA_VECS
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:28
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Santosh Raspatur <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 23 +++++++++--------------
1 files changed, 9 insertions(+), 14 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:30
There is no need to call pci_disable_msix() in case
the previous call to pci_enable_msix() failed
Signed-off-by: Alexander Gordeev <redacted>
Cc: Casey Leedom <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:32
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Casey Leedom <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 34 +++++++++----------
1 files changed, 16 insertions(+), 18 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:07:34
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Christian Benvenuti <redacted>
Cc: Sujith Sankar <redacted>
Cc: Govindarajulu Varadarajan <redacted>
Cc: Neel Patel <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/cisco/enic/enic_main.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:10:17
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Sathya Perla <redacted>
Cc: Subbu Seetharaman <redacted>
Cc: Ajit Khaparde <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Acked-by: Sathya Perla <redacted>
---
drivers/net/ethernet/emulex/benet/be_main.c | 31 +++++++++++---------------
1 files changed, 13 insertions(+), 18 deletions(-)
@@ -2507,7 +2507,7 @@ static void be_msix_disable(struct be_adapter *adapter)staticintbe_msix_enable(structbe_adapter*adapter){-inti,status,num_vec;+inti,num_vec;structdevice*dev=&adapter->pdev->dev;/* If RoCE is supported, program the max number of NIC vectors that
@@ -2523,24 +2523,11 @@ static int be_msix_enable(struct be_adapter *adapter)for(i=0;i<num_vec;i++)adapter->msix_entries[i].entry=i;-status=pci_enable_msix(adapter->pdev,adapter->msix_entries,num_vec);-if(status==0){-gotodone;-}elseif(status>=MIN_MSIX_VECTORS){-num_vec=status;-status=pci_enable_msix(adapter->pdev,adapter->msix_entries,-num_vec);-if(!status)-gotodone;-}+num_vec=pci_enable_msix_range(adapter->pdev,adapter->msix_entries,+MIN_MSIX_VECTORS,num_vec);+if(num_vec<0)+gotofail;-dev_warn(dev,"MSIx enable failed\n");--/* INTx is not supported in VFs, so fail probe if enable_msix fails */-if(!be_physfn(adapter))-returnstatus;-return0;-done:if(be_roce_supported(adapter)&&num_vec>MIN_MSIX_VECTORS){adapter->num_msix_roce_vec=num_vec/2;dev_info(dev,"enabled %d MSI-x vector(s) for RoCE\n",
@@ -2552,6 +2539,14 @@ done:dev_info(dev,"enabled %d MSI-x vector(s) for NIC\n",adapter->num_msix_vec);return0;++fail:+dev_warn(dev,"MSIx enable failed\n");++/* INTx is not supported in VFs, so fail probe if enable_msix fails */+if(!be_physfn(adapter))+returnnum_vec;+return0;}staticinlineintbe_msix_vec_get(structbe_adapter*adapter,
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:10:32
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/intel/igb/igb_main.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:10:43
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 16 ++++------------
1 files changed, 4 insertions(+), 12 deletions(-)
@@ -698,7 +698,7 @@ static void ixgbe_set_num_queues(struct ixgbe_adapter *adapter)staticvoidixgbe_acquire_msix_vectors(structixgbe_adapter*adapter,intvectors){-interr,vector_threshold;+intvector_threshold;/* We'll want at least 2 (vector_threshold):*1)TxQ[0]+RxQ[0]handler
@@ -712,18 +712,10 @@ static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,*Rightnow,wesimplycareabouthowmanywe'llget;we'll*setthemuplaterwhilerequestingirq's.*/-while(vectors>=vector_threshold){-err=pci_enable_msix(adapter->pdev,adapter->msix_entries,-vectors);-if(!err)/* Success in acquiring all requested vectors. */-break;-elseif(err<0)-vectors=0;/* Nasty failure, quit now */-else/* err == number of vectors we should try again with */-vectors=err;-}+vectors=pci_enable_msix_range(adapter->pdev,adapter->msix_entries,+vector_threshold,vectors);-if(vectors<vector_threshold){+if(vectors<0){/* Can't allocate enough MSI-X interrupts? Oh well.*Thisjustmeanswe'llgowitheitherasingleMSI*vectororfallbacktolegacyinterrupts.
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:10:46
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Eli Cohen <redacted>
Cc: linux-rdma@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/mellanox/mlx5/core/main.c | 16 +++++-----------
1 files changed, 5 insertions(+), 11 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:10:50
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jon Mason <jdmason@kudzu.us>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/neterion/s2io.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
@@ -3792,9 +3792,10 @@ static int s2io_enable_msi_x(struct s2io_nic *nic)writeq(rx_mat,&bar0->rx_mat);readq(&bar0->rx_mat);-ret=pci_enable_msix(nic->pdev,nic->entries,nic->num_entries);+ret=pci_enable_msix_range(nic->pdev,nic->entries,+nic->num_entries,nic->num_entries);/* We fail init if error or we get less vectors than min required */-if(ret){+if(ret<0){DBG_PRINT(ERR_DBG,"Enabling MSI-X failed\n");kfree(nic->entries);swstats->mem_freed+=nic->num_entries*
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:10:53
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jon Mason <jdmason@kudzu.us>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/neterion/vxge/vxge-main.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
@@ -3952,8 +3952,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)if(optimization_mode==NV_OPTIMIZATION_MODE_THROUGHPUT&&!intr_test){/* Request irq for rx handling */sprintf(np->name_rx,"%s-rx",dev->name);-if(request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector,-nv_nic_irq_rx,IRQF_SHARED,np->name_rx,dev)!=0){+ret=request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector,+nv_nic_irq_rx,IRQF_SHARED,np->name_rx,dev);+if(ret){netdev_info(dev,"request_irq failed for rx %d\n",ret);
@@ -3963,8 +3964,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)}/* Request irq for tx handling */sprintf(np->name_tx,"%s-tx",dev->name);-if(request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector,-nv_nic_irq_tx,IRQF_SHARED,np->name_tx,dev)!=0){+ret=request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector,+nv_nic_irq_tx,IRQF_SHARED,np->name_tx,dev);+if(ret){netdev_info(dev,"request_irq failed for tx %d\n",ret);
@@ -3974,8 +3976,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)}/* Request irq for link and timer handling */sprintf(np->name_other,"%s-other",dev->name);-if(request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector,-nv_nic_irq_other,IRQF_SHARED,np->name_other,dev)!=0){+ret=request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector,+nv_nic_irq_other,IRQF_SHARED,np->name_other,dev);+if(ret){netdev_info(dev,"request_irq failed for link %d\n",ret);
@@ -3991,7 +3994,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)set_msix_vector_map(dev,NV_MSI_X_VECTOR_OTHER,NVREG_IRQ_OTHER);}else{/* Request irq for all interrupts */-if(request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector,handler,IRQF_SHARED,dev->name,dev)!=0){+ret=request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector,+handler,IRQF_SHARED,dev->name,dev);+if(ret){netdev_info(dev,"request_irq failed %d\n",ret);
@@ -4011,7 +4016,8 @@ static int nv_request_irq(struct net_device *dev, int intr_test)ret=pci_enable_msi(np->pci_dev);if(ret==0){np->msi_flags|=NV_MSI_ENABLED;-if(request_irq(np->pci_dev->irq,handler,IRQF_SHARED,dev->name,dev)!=0){+ret=request_irq(np->pci_dev->irq,handler,IRQF_SHARED,dev->name,dev);+if(ret){netdev_info(dev,"request_irq failed %d\n",ret);pci_disable_msi(np->pci_dev);
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:03
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Patrick McHardy <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/nvidia/forcedeth.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:09
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Himanshu Madhani <redacted>
Cc: Rajesh Borundia <redacted>
Cc: Shahed Shaikh <redacted>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:16
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Shahed Shaikh <redacted>
Cc: Jitendra Kalsaria <redacted>
Cc: Ron Mercer <redacted>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/qlogic/qlge/qlge_main.c | 15 ++++-----------
1 files changed, 4 insertions(+), 11 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:23
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 33 +++++----------------------
1 files changed, 6 insertions(+), 27 deletions(-)
@@ -5856,37 +5856,16 @@ err_out:**/staticinti40e_reserve_msix_vectors(structi40e_pf*pf,intvectors){-interr=0;--pf->num_msix_entries=0;-while(vectors>=I40E_MIN_MSIX){-err=pci_enable_msix(pf->pdev,pf->msix_entries,vectors);-if(err==0){-/* good to go */-pf->num_msix_entries=vectors;-break;-}elseif(err<0){-/* total failure */-dev_info(&pf->pdev->dev,-"MSI-X vector reservation failed: %d\n",err);-vectors=0;-break;-}else{-/* err > 0 is the hint for retry */-dev_info(&pf->pdev->dev,-"MSI-X vectors wanted %d, retrying with %d\n",-vectors,err);-vectors=err;-}-}--if(vectors>0&&vectors<I40E_MIN_MSIX){+vectors=pci_enable_msix_range(pf->pdev,pf->msix_entries,+I40E_MIN_MSIX,vectors);+if(vectors<0){dev_info(&pf->pdev->dev,-"Couldn't get enough vectors, only %d available\n",-vectors);+"MSI-X vector reservation failed: %d\n",vectors);vectors=0;}+pf->num_msix_entries=vectors;+returnvectors;}
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:25
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Shradha Shah <redacted>
Cc: linux-net-drivers@solarflare.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Acked-by: Shradha Shah <redacted>
---
drivers/net/ethernet/sfc/efx.c | 20 +++++++++-----------
1 files changed, 9 insertions(+), 11 deletions(-)
@@ -1344,20 +1344,23 @@ static int efx_probe_interrupts(struct efx_nic *efx)for(i=0;i<n_channels;i++)xentries[i].entry=i;-rc=pci_enable_msix(efx->pci_dev,xentries,n_channels);-if(rc>0){+rc=pci_enable_msix_range(efx->pci_dev,+xentries,1,n_channels);+if(rc<0){+/* Fall back to single channel MSI */+efx->interrupt_mode=EFX_INT_MODE_MSI;+netif_err(efx,drv,efx->net_dev,+"could not enable MSI-X\n");+}elseif(rc<n_channels){netif_err(efx,drv,efx->net_dev,"WARNING: Insufficient MSI-X vectors"" available (%d < %u).\n",rc,n_channels);netif_err(efx,drv,efx->net_dev,"WARNING: Performance may be reduced.\n");-EFX_BUG_ON_PARANOID(rc>=n_channels);n_channels=rc;-rc=pci_enable_msix(efx->pci_dev,xentries,-n_channels);}-if(rc==0){+if(rc>0){efx->n_channels=n_channels;if(n_channels>extra_channels)n_channels-=extra_channels;
@@ -1373,11 +1376,6 @@ static int efx_probe_interrupts(struct efx_nic *efx)for(i=0;i<efx->n_channels;i++)efx_get_channel(efx,i)->irq=xentries[i].vector;-}else{-/* Fall back to single channel MSI */-efx->interrupt_mode=EFX_INT_MODE_MSI;-netif_err(efx,drv,efx->net_dev,-"could not enable MSI-X\n");}}
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:27
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jingoo Han <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/sun/niu.c | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:11:47
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Vladimir Kondratiev <redacted>
Cc: "John W. Linville" <redacted>
Cc: wil6210@qca.qualcomm.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Acked-by: Vladimir Kondratiev <redacted>
---
drivers/net/wireless/ath/wil6210/pcie_bus.c | 32 ++++++++++++--------------
1 files changed, 15 insertions(+), 17 deletions(-)
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:12:47
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Shreyas Bhatewara <redacted>
Cc: pv-drivers@vmware.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/vmxnet3/vmxnet3_drv.c | 47 +++++++++++++++----------------------
1 files changed, 19 insertions(+), 28 deletions(-)
@@ -2738,35 +2738,26 @@ vmxnet3_read_mac_addr(struct vmxnet3_adapter *adapter, u8 *mac)staticintvmxnet3_acquire_msix_vectors(structvmxnet3_adapter*adapter,intnvec){-do{-interr=pci_enable_msix(adapter->pdev,-adapter->intr.msix_entries,nvec);-if(!err){-returnnvec;-}elseif(err<0){-dev_err(&adapter->netdev->dev,-"Failed to enable MSI-X, error: %d\n",err);-returnerr;-}elseif(err<VMXNET3_LINUX_MIN_MSIX_VECT){-dev_info(&adapter->pdev->dev,-"Number of MSI-X which can be allocated "-"is lower than min threshold required.\n");-return-ENOSPC;-}else{-/* If fails to enable required number of MSI-x vectors-*tryenablingminimumnumberofvectorsrequired.-*/-dev_err(&adapter->netdev->dev,-"Failed to enable %d MSI-X, trying %d\n",-nvec,VMXNET3_LINUX_MIN_MSIX_VECT);-nvec=VMXNET3_LINUX_MIN_MSIX_VECT;-}-}while(nvec>=VMXNET3_LINUX_MIN_MSIX_VECT);+intret=pci_enable_msix_range(adapter->pdev,+adapter->intr.msix_entries,nvec,nvec);-/*-*Shouldnevergethere-*/-return-ENOSPC;+if(ret==-ENOSPC&&nvec>VMXNET3_LINUX_MIN_MSIX_VECT){+dev_err(&adapter->netdev->dev,+"Failed to enable %d MSI-X, trying %d\n",+nvec,VMXNET3_LINUX_MIN_MSIX_VECT);++ret=pci_enable_msix_range(adapter->pdev,+adapter->intr.msix_entries,+VMXNET3_LINUX_MIN_MSIX_VECT,+VMXNET3_LINUX_MIN_MSIX_VECT);+}++if(ret<0){+dev_err(&adapter->netdev->dev,+"Failed to enable MSI-X, error: %d\n",ret);+}++returnret;}
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:13:22
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/intel/e1000e/netdev.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
@@ -2038,13 +2038,16 @@ void e1000e_set_interrupt_capability(struct e1000_adapter *adapter)msix_entry),GFP_KERNEL);if(adapter->msix_entries){+structe1000_adapter*a=adapter;+for(i=0;i<adapter->num_vectors;i++)adapter->msix_entries[i].entry=i;-err=pci_enable_msix(adapter->pdev,-adapter->msix_entries,-adapter->num_vectors);-if(err==0)+err=pci_enable_msix_range(a->pdev,+a->msix_entries,+a->num_vectors,+a->num_vectors);+if(err>0)return;}/* MSI-X failed, so fall through and try MSI */
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
@@ -2729,47 +2729,44 @@ vmxnet3_read_mac_addr(struct vmxnet3_adapter *adapter, u8 *mac)/**EnableMSIxvectors.*Returns:-*0onsuccessfulenablingofrequiredvectors,*VMXNET3_LINUX_MIN_MSIX_VECTwhenonlyminimumnumberofvectorsrequired-*couldbeenabled.-*numberofvectorswhichcanbeenabledotherwise(thisnumberissmaller+*wereenabled.+*numberofvectorswhichwereenabledotherwise(thisnumberisgreater*thanVMXNET3_LINUX_MIN_MSIX_VECT)*/staticint-vmxnet3_acquire_msix_vectors(structvmxnet3_adapter*adapter,-intvectors)+vmxnet3_acquire_msix_vectors(structvmxnet3_adapter*adapter,intnvec){-interr=0,vector_threshold;-vector_threshold=VMXNET3_LINUX_MIN_MSIX_VECT;--while(vectors>=vector_threshold){-err=pci_enable_msix(adapter->pdev,adapter->intr.msix_entries,-vectors);+do{+interr=pci_enable_msix(adapter->pdev,+adapter->intr.msix_entries,nvec);if(!err){-adapter->intr.num_intrs=vectors;-return0;+returnnvec;}elseif(err<0){dev_err(&adapter->netdev->dev,-"Failed to enable MSI-X, error: %d\n",err);-vectors=0;-}elseif(err<vector_threshold){-break;+"Failed to enable MSI-X, error: %d\n",err);+returnerr;+}elseif(err<VMXNET3_LINUX_MIN_MSIX_VECT){+dev_info(&adapter->pdev->dev,+"Number of MSI-X which can be allocated "+"is lower than min threshold required.\n");+return-ENOSPC;}else{/* If fails to enable required number of MSI-x vectors*tryenablingminimumnumberofvectorsrequired.*/dev_err(&adapter->netdev->dev,-"Failed to enable %d MSI-X, trying %d instead\n",-vectors,vector_threshold);-vectors=vector_threshold;+"Failed to enable %d MSI-X, trying %d\n",+nvec,VMXNET3_LINUX_MIN_MSIX_VECT);+nvec=VMXNET3_LINUX_MIN_MSIX_VECT;}-}+}while(nvec>=VMXNET3_LINUX_MIN_MSIX_VECT);-dev_info(&adapter->pdev->dev,-"Number of MSI-X interrupts which can be allocated "-"is lower than min threshold required.\n");-returnerr;+/*+*Shouldnevergethere+*/+return-ENOSPC;}
@@ -2796,56 +2793,50 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter)#ifdef CONFIG_PCI_MSIif(adapter->intr.type==VMXNET3_IT_MSIX){-intvector,err=0;--adapter->intr.num_intrs=(adapter->share_intr==-VMXNET3_INTR_TXSHARE)?1:-adapter->num_tx_queues;-adapter->intr.num_intrs+=(adapter->share_intr==-VMXNET3_INTR_BUDDYSHARE)?0:-adapter->num_rx_queues;-adapter->intr.num_intrs+=1;/* for link event */--adapter->intr.num_intrs=(adapter->intr.num_intrs>-VMXNET3_LINUX_MIN_MSIX_VECT-?adapter->intr.num_intrs:-VMXNET3_LINUX_MIN_MSIX_VECT);--for(vector=0;vector<adapter->intr.num_intrs;vector++)-adapter->intr.msix_entries[vector].entry=vector;--err=vmxnet3_acquire_msix_vectors(adapter,-adapter->intr.num_intrs);+inti,nvec;++nvec=adapter->share_intr==VMXNET3_INTR_TXSHARE?+1:adapter->num_tx_queues;+nvec+=adapter->share_intr==VMXNET3_INTR_BUDDYSHARE?+0:adapter->num_rx_queues;+nvec+=1;/* for link event */+nvec=nvec>VMXNET3_LINUX_MIN_MSIX_VECT?+nvec:VMXNET3_LINUX_MIN_MSIX_VECT;++for(i=0;i<nvec;i++)+adapter->intr.msix_entries[i].entry=i;++nvec=vmxnet3_acquire_msix_vectors(adapter,nvec);+if(nvec<0)+gotomsix_err;+/* If we cannot allocate one MSIx vector per queue*thenlimitthenumberofrxqueuesto1*/-if(err==VMXNET3_LINUX_MIN_MSIX_VECT){+if(nvec==VMXNET3_LINUX_MIN_MSIX_VECT){if(adapter->share_intr!=VMXNET3_INTR_BUDDYSHARE||adapter->num_rx_queues!=1){adapter->share_intr=VMXNET3_INTR_TXSHARE;netdev_err(adapter->netdev,"Number of rx queues : 1\n");adapter->num_rx_queues=1;-adapter->intr.num_intrs=-VMXNET3_LINUX_MIN_MSIX_VECT;}-return;}-if(!err)-return;+adapter->intr.num_intrs=nvec;+return;++msix_err:/* If we cannot allocate MSIx vectors use only one rx queue */dev_info(&adapter->pdev->dev,"Failed to enable MSI-X, error %d. "-"Limiting #rx queues to 1, try MSI.\n",err);+"Limiting #rx queues to 1, try MSI.\n",nvec);adapter->intr.type=VMXNET3_IT_MSI;}if(adapter->intr.type==VMXNET3_IT_MSI){-interr;-err=pci_enable_msi(adapter->pdev);-if(!err){+if(!pci_enable_msi(adapter->pdev)){adapter->num_rx_queues=1;adapter->intr.num_intrs=1;return;
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:16:29
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Manish Chopra <redacted>
Cc: Sony Chacko <redacted>
Cc: Rajesh Borundia <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
@@ -1796,7 +1796,8 @@ static int enic_set_intr_mode(struct enic *enic)
enic->cq_count >= n + m &&
enic->intr_count >= n + m + 2) {
- if (!pci_enable_msix(enic->pdev, enic->msix_entry, n + m + 2)) {
+ if (pci_enable_msix_range(enic->pdev, enic->msix_entry,
+ n + m + 2, n + m + 2) > 0) {
enic->rq_count = n;
enic->wq_count = m;
@@ -1815,7 +1816,8 @@ static int enic_set_intr_mode(struct enic *enic)
enic->wq_count >= m &&
enic->cq_count >= 1 + m &&
enic->intr_count >= 1 + m + 2) {
- if (!pci_enable_msix(enic->pdev, enic->msix_entry, 1 + m + 2)) {
+ if (pci_enable_msix_range(enic->pdev, enic->msix_entry,
+ 1 + m + 2, 1 + m + 2) > 0) {
enic->rq_count = 1;
enic->wq_count = m;
--
1.7.7.6
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:18:35
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Hyong-Youb Kim <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 40 +++++++++++-----------
1 files changed, 20 insertions(+), 20 deletions(-)
@@ -2329,16 +2329,14 @@ static int myri10ge_request_irq(struct myri10ge_priv *mgp)status=0;if(myri10ge_msi){if(mgp->num_slices>1){-status=-pci_enable_msix(pdev,mgp->msix_vectors,-mgp->num_slices);-if(status==0){-mgp->msix_enabled=1;-}else{+status=pci_enable_msix_range(pdev,mgp->msix_vectors,+mgp->num_slices,mgp->num_slices);+if(status<0){dev_err(&pdev->dev,"Error %d setting up MSI-X\n",status);returnstatus;}+mgp->msix_enabled=1;}if(mgp->msix_enabled==0){status=pci_enable_msi(pdev);
@@ -3895,32 +3893,34 @@ static void myri10ge_probe_slices(struct myri10ge_priv *mgp)mgp->msix_vectors=kcalloc(mgp->num_slices,sizeof(*mgp->msix_vectors),GFP_KERNEL);if(mgp->msix_vectors==NULL)-gotodisable_msix;+gotono_msix;for(i=0;i<mgp->num_slices;i++){mgp->msix_vectors[i].entry=i;}while(mgp->num_slices>1){-/* make sure it is a power of two */-while(!is_power_of_2(mgp->num_slices))-mgp->num_slices--;+mgp->num_slices=rounddown_pow_of_two(mgp->num_slices);if(mgp->num_slices==1)-gotodisable_msix;-status=pci_enable_msix(pdev,mgp->msix_vectors,-mgp->num_slices);-if(status==0){-pci_disable_msix(pdev);+gotono_msix;+status=pci_enable_msix_range(pdev,+mgp->msix_vectors,+mgp->num_slices,+mgp->num_slices);+if(status<0)+gotono_msix;++pci_disable_msix(pdev);++if(status==mgp->num_slices){if(old_allocated)kfree(old_fw);return;-}-if(status>0)+}else{mgp->num_slices=status;-else-gotodisable_msix;+}}-disable_msix:+no_msix:if(mgp->msix_vectors!=NULL){kfree(mgp->msix_vectors);mgp->msix_vectors=NULL;
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:19:05
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Amir Vadai <redacted>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Acked-by: Amir Vadai <redacted>
---
drivers/net/ethernet/mellanox/mlx4/main.c | 21 +++++----------------
1 files changed, 5 insertions(+), 16 deletions(-)
@@ -1990,23 +1989,13 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)for(i=0;i<nreq;++i)entries[i].entry=i;-retry:-err=pci_enable_msix(dev->pdev,entries,nreq);-if(err){-/* Try again if at least 2 vectors are available */-if(err>1){-mlx4_info(dev,"Requested %d vectors, "-"but only %d MSI-X vectors available, "-"trying again\n",nreq,err);-nreq=err;-gotoretry;-}+nreq=pci_enable_msix_range(dev->pdev,entries,2,nreq);++if(nreq<0){kfree(entries);gotono_msi;-}--if(nreq<-MSIX_LEGACY_SZ+dev->caps.num_ports*MIN_MSIX_P_PORT){+}elseif(nreq<MSIX_LEGACY_SZ++dev->caps.num_ports*MIN_MSIX_P_PORT){/*Working in legacy mode , all EQ's shared*/dev->caps.comp_pool=0;dev->caps.num_comp_vectors=nreq-1;
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:19:52
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/intel/igbvf/netdev.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
From: Alexander Gordeev <hidden> Date: 2014-02-18 10:19:53
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 32 +++++++-------------
1 files changed, 11 insertions(+), 21 deletions(-)
@@ -1817,7 +1817,6 @@ void ixgbevf_reset(struct ixgbevf_adapter *adapter)staticintixgbevf_acquire_msix_vectors(structixgbevf_adapter*adapter,intvectors){-interr=0;intvector_threshold;/* We'll want at least 2 (vector_threshold):
@@ -1831,33 +1830,24 @@ static int ixgbevf_acquire_msix_vectors(struct ixgbevf_adapter *adapter,*Rightnow,wesimplycareabouthowmanywe'llget;we'll*setthemuplaterwhilerequestingirq's.*/-while(vectors>=vector_threshold){-err=pci_enable_msix(adapter->pdev,adapter->msix_entries,-vectors);-if(!err||err<0)/* Success or a nasty failure. */-break;-else/* err == number of vectors we should try again with */-vectors=err;-}+vectors=pci_enable_msix_range(adapter->pdev,adapter->msix_entries,+vector_threshold,vectors);-if(vectors<vector_threshold)-err=-ENOMEM;--if(err){+if(vectors<0){dev_err(&adapter->pdev->dev,"Unable to allocate MSI-X interrupts\n");kfree(adapter->msix_entries);adapter->msix_entries=NULL;-}else{-/*-*Adjustforonlythevectorswe'lluse,whichisminimum-*ofmax_msix_q_vectors+NON_Q_VECTORS,orthenumberof-*vectorswewereallocated.-*/-adapter->num_msix_vectors=vectors;+returnvectors;}-returnerr;+/* Adjust for only the vectors we'll use, which is minimum+*ofmax_msix_q_vectors+NON_Q_VECTORS,orthenumberof+*vectorswewereallocated.+*/+adapter->num_msix_vectors=vectors;++return0;}/**
--
1.7.7.6
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
From: Amir Vadai <hidden> Date: 2014-02-18 12:01:45
On 18/02/14 11:11 +0100, Alexander Gordeev wrote:
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
From: Amir Vadai <hidden> Date: 2014-02-18 12:14:41
On 18/02/14 14:01 +0200, Amir Vadai wrote:
On 18/02/14 11:11 +0100, Alexander Gordeev wrote:
quoted
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
Acked-By: Amir Vadai <redacted>
Oh, I'm still working for Mellanox - just replied to the wrong mail :)
On 2/18/14 2:11 AM, "Alexander Gordeev" [off-list ref] wrote:
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Shahed Shaikh <redacted>
Cc: Jitendra Kalsaria <redacted>
Cc: Ron Mercer <redacted>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/qlogic/qlge/qlge_main.c | 15 ++++-----------
1 files changed, 4 insertions(+), 11 deletions(-)
From: David Miller <davem@davemloft.net> Date: 2014-02-18 20:34:42
From: Alexander Gordeev <redacted>
Date: Tue, 18 Feb 2014 11:07:52 +0100
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Cc: e1000-devel@lists.sourceforge.net
Cc: linux-driver@qlogic.com
Cc: linux-net-drivers@solarflare.com
Cc: linux-pci@vger.kernel.org
Cc: linux-rdma@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: pv-drivers@vmware.com
Cc: wil6210@qca.qualcomm.com
From: David Miller <davem@davemloft.net> Date: 2014-02-18 20:56:39
From: Amir Vadai <redacted>
Date: Tue, 18 Feb 2014 14:01:38 +0200
On 18/02/14 11:11 +0100, Alexander Gordeev wrote:
quoted
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Jeff Kirsher <redacted>
Cc: Jesse Brandeburg <redacted>
Cc: Bruce Allan <redacted>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
Acked-By: Amir Vadai <redacted>
Since you obviously didn't intend to ACK this, I removed this ACK when
I committed the series.
From: Sergei Shtylyov <hidden> Date: 2014-02-19 15:14:39
Hello.
On 18-02-2014 14:11, Alexander Gordeev wrote:
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
From: Ben Hutchings <hidden> Date: 2014-02-22 00:34:42
On Tue, 2014-02-18 at 11:07 +0100, Alexander Gordeev wrote:
quoted hunk
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Michael Chan <mchan@broadcom.com>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/broadcom/bnx2.c | 15 ++++-----------
1 files changed, 4 insertions(+), 11 deletions(-)
From: Ben Hutchings <hidden> Date: 2014-02-22 00:44:48
On Tue, 2014-02-18 at 11:11 +0100, Alexander Gordeev wrote:
quoted hunk
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
Signed-off-by: Alexander Gordeev <redacted>
Cc: Himanshu Madhani <redacted>
Cc: Rajesh Borundia <redacted>
Cc: Shahed Shaikh <redacted>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
---
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
@@ -701,13 +701,17 @@ enable_msix:for(vector=0;vector<num_msix;vector++)adapter->msix_entries[vector].entry=vector;-err=pci_enable_msix(pdev,adapter->msix_entries,num_msix);-if(err==0){+err=pci_enable_msix_range(pdev,+adapter->msix_entries,1,num_msix);++if(err==num_msix){adapter->flags|=QLCNIC_MSIX_ENABLED;adapter->ahw->num_msix=num_msix;dev_info(&pdev->dev,"using msi-x interrupts\n");return0;}elseif(err>0){+pci_disable_msix(pdev);+dev_info(&pdev->dev,"Unable to allocate %d MSI-X vectors, Available vectors %d\n",num_msix,err);
Well this log message is nonsense - we have no idea how many vectors are
available any more.
You should remove this and the retry loop that is no longer needed.
Ben.
--
Ben Hutchings
I haven't lost my mind; it's backed up on tape somewhere.
From: Ben Hutchings <hidden> Date: 2014-02-22 00:48:53
On Sat, 2014-02-22 at 00:44 +0000, Ben Hutchings wrote:
On Tue, 2014-02-18 at 11:11 +0100, Alexander Gordeev wrote:
quoted
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range() and pci_enable_msix_range()
interfaces.
@@ -701,13 +701,17 @@ enable_msix:for(vector=0;vector<num_msix;vector++)adapter->msix_entries[vector].entry=vector;-err=pci_enable_msix(pdev,adapter->msix_entries,num_msix);-if(err==0){+err=pci_enable_msix_range(pdev,+adapter->msix_entries,1,num_msix);++if(err==num_msix){adapter->flags|=QLCNIC_MSIX_ENABLED;adapter->ahw->num_msix=num_msix;dev_info(&pdev->dev,"using msi-x interrupts\n");return0;}elseif(err>0){+pci_disable_msix(pdev);+dev_info(&pdev->dev,"Unable to allocate %d MSI-X vectors, Available vectors %d\n",num_msix,err);
Well this log message is nonsense - we have no idea how many vectors are
available any more.
You should remove this and the retry loop that is no longer needed.
Sorry, I'm confused and this does work. But I wonder whether it is
really an improvement over using the old API.
Ben.
--
Ben Hutchings
I haven't lost my mind; it's backed up on tape somewhere.
From: Alexander Gordeev <hidden> Date: 2014-02-22 09:22:42
On Sat, Feb 22, 2014 at 12:48:47AM +0000, Ben Hutchings wrote:
Sorry, I'm confused and this does work. But I wonder whether it is
really an improvement over using the old API.
Slightly, as far as I am concerned - we just exchange tri-state oddity
to re-enable MSI-X oddity. We're not going to improve drivers that can
not work with any number of MSI-Xs from a range, like this one.
-----Original Message-----
From: Alexander Gordeev [mailto:agordeev@redhat.com]
Sent: Saturday, February 22, 2014 2:54 PM
To: Ben Hutchings
Cc: linux-kernel; Himanshu Madhani; Rajesh Borundia; Shahed Shaikh; Dept-
Eng Linux Driver; netdev; linux-pci
Subject: Re: [PATCH net-next 28/35] qlcnic: Use pci_enable_msix_range()
instead of pci_enable_msix()
On Sat, Feb 22, 2014 at 12:48:47AM +0000, Ben Hutchings wrote:
quoted
Sorry, I'm confused and this does work. But I wonder whether it is
really an improvement over using the old API.
Slightly, as far as I am concerned - we just exchange tri-state oddity to re-
enable MSI-X oddity. We're not going to improve drivers that can not work
with any number of MSI-Xs from a range, like this one.
I will send a patch which will make use of available MSI-X number and remove the retry logic.
Thanks,
Shahed