diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 14:50:12 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-22 14:50:12 -0700 | 
| commit | ece236ce2fad9c27a6fd2530f899289025194bce (patch) | |
| tree | 474b793205872206a2a3f7d409ff9b1f81f3a9a8 /drivers/infiniband/hw/mthca/mthca_eq.c | |
| parent | 441c196e84b11aad3123baa9320eee7abc6b5c98 (diff) | |
| parent | 4460207561290c3be7e6c7538f22690028170c1d (diff) | |
| download | olio-linux-3.10-ece236ce2fad9c27a6fd2530f899289025194bce.tar.xz olio-linux-3.10-ece236ce2fad9c27a6fd2530f899289025194bce.zip  | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (26 commits)
  IB/qib: Defer HCA error events to tasklet
  mlx4_core: Bump the driver version to 1.0
  RDMA/cxgb4: Use printk_ratelimited() instead of printk_ratelimit()
  IB/mlx4: Support PMA counters for IBoE
  IB/mlx4: Use flow counters on IBoE ports
  IB/pma: Add include file for IBA performance counters definitions
  mlx4_core: Add network flow counters
  mlx4_core: Fix location of counter index in QP context struct
  mlx4_core: Read extended capabilities into the flags field
  mlx4_core: Extend capability flags to 64 bits
  IB/mlx4: Generate GID change events in IBoE code
  IB/core: Add GID change event
  RDMA/cma: Don't allow IPoIB port space for IBoE
  RDMA: Allow for NULL .modify_device() and .modify_port() methods
  IB/qib: Update active link width
  IB/qib: Fix potential deadlock with link down interrupt
  IB/qib: Add sysfs interface to read free contexts
  IB/mthca: Remove unnecessary read of PCI_CAP_ID_EXP
  IB/qib: Remove double define
  IB/qib: Remove unnecessary read of PCI_CAP_ID_EXP
  ...
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_eq.c')
| -rw-r--r-- | drivers/infiniband/hw/mthca/mthca_eq.c | 43 | 
1 files changed, 10 insertions, 33 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c index 76785c653c1..7c9d35f39d7 100644 --- a/drivers/infiniband/hw/mthca/mthca_eq.c +++ b/drivers/infiniband/hw/mthca/mthca_eq.c @@ -474,7 +474,6 @@ static int mthca_create_eq(struct mthca_dev *dev,  	struct mthca_eq_context *eq_context;  	int err = -ENOMEM;  	int i; -	u8 status;  	eq->dev  = dev;  	eq->nent = roundup_pow_of_two(max(nent, 2)); @@ -543,15 +542,9 @@ static int mthca_create_eq(struct mthca_dev *dev,  	eq_context->intr            = intr;  	eq_context->lkey            = cpu_to_be32(eq->mr.ibmr.lkey); -	err = mthca_SW2HW_EQ(dev, mailbox, eq->eqn, &status); +	err = mthca_SW2HW_EQ(dev, mailbox, eq->eqn);  	if (err) { -		mthca_warn(dev, "SW2HW_EQ failed (%d)\n", err); -		goto err_out_free_mr; -	} -	if (status) { -		mthca_warn(dev, "SW2HW_EQ returned status 0x%02x\n", -			   status); -		err = -EINVAL; +		mthca_warn(dev, "SW2HW_EQ returned %d\n", err);  		goto err_out_free_mr;  	} @@ -597,7 +590,6 @@ static void mthca_free_eq(struct mthca_dev *dev,  {  	struct mthca_mailbox *mailbox;  	int err; -	u8 status;  	int npages = (eq->nent * MTHCA_EQ_ENTRY_SIZE + PAGE_SIZE - 1) /  		PAGE_SIZE;  	int i; @@ -606,11 +598,9 @@ static void mthca_free_eq(struct mthca_dev *dev,  	if (IS_ERR(mailbox))  		return; -	err = mthca_HW2SW_EQ(dev, mailbox, eq->eqn, &status); +	err = mthca_HW2SW_EQ(dev, mailbox, eq->eqn);  	if (err) -		mthca_warn(dev, "HW2SW_EQ failed (%d)\n", err); -	if (status) -		mthca_warn(dev, "HW2SW_EQ returned status 0x%02x\n", status); +		mthca_warn(dev, "HW2SW_EQ returned %d\n", err);  	dev->eq_table.arm_mask &= ~eq->eqn_mask; @@ -738,7 +728,6 @@ static void mthca_unmap_eq_regs(struct mthca_dev *dev)  int mthca_map_eq_icm(struct mthca_dev *dev, u64 icm_virt)  {  	int ret; -	u8 status;  	/*  	 * We assume that mapping one page is enough for the whole EQ @@ -757,9 +746,7 @@ int mthca_map_eq_icm(struct mthca_dev *dev, u64 icm_virt)  		return -ENOMEM;  	} -	ret = mthca_MAP_ICM_page(dev, dev->eq_table.icm_dma, icm_virt, &status); -	if (!ret && status) -		ret = -EINVAL; +	ret = mthca_MAP_ICM_page(dev, dev->eq_table.icm_dma, icm_virt);  	if (ret) {  		pci_unmap_page(dev->pdev, dev->eq_table.icm_dma, PAGE_SIZE,  			       PCI_DMA_BIDIRECTIONAL); @@ -771,9 +758,7 @@ int mthca_map_eq_icm(struct mthca_dev *dev, u64 icm_virt)  void mthca_unmap_eq_icm(struct mthca_dev *dev)  { -	u8 status; - -	mthca_UNMAP_ICM(dev, dev->eq_table.icm_virt, 1, &status); +	mthca_UNMAP_ICM(dev, dev->eq_table.icm_virt, 1);  	pci_unmap_page(dev->pdev, dev->eq_table.icm_dma, PAGE_SIZE,  		       PCI_DMA_BIDIRECTIONAL);  	__free_page(dev->eq_table.icm_page); @@ -782,7 +767,6 @@ void mthca_unmap_eq_icm(struct mthca_dev *dev)  int mthca_init_eq_table(struct mthca_dev *dev)  {  	int err; -	u8 status;  	u8 intr;  	int i; @@ -864,22 +848,16 @@ int mthca_init_eq_table(struct mthca_dev *dev)  	}  	err = mthca_MAP_EQ(dev, async_mask(dev), -			   0, dev->eq_table.eq[MTHCA_EQ_ASYNC].eqn, &status); +			   0, dev->eq_table.eq[MTHCA_EQ_ASYNC].eqn);  	if (err)  		mthca_warn(dev, "MAP_EQ for async EQ %d failed (%d)\n",  			   dev->eq_table.eq[MTHCA_EQ_ASYNC].eqn, err); -	if (status) -		mthca_warn(dev, "MAP_EQ for async EQ %d returned status 0x%02x\n", -			   dev->eq_table.eq[MTHCA_EQ_ASYNC].eqn, status);  	err = mthca_MAP_EQ(dev, MTHCA_CMD_EVENT_MASK, -			   0, dev->eq_table.eq[MTHCA_EQ_CMD].eqn, &status); +			   0, dev->eq_table.eq[MTHCA_EQ_CMD].eqn);  	if (err)  		mthca_warn(dev, "MAP_EQ for cmd EQ %d failed (%d)\n",  			   dev->eq_table.eq[MTHCA_EQ_CMD].eqn, err); -	if (status) -		mthca_warn(dev, "MAP_EQ for cmd EQ %d returned status 0x%02x\n", -			   dev->eq_table.eq[MTHCA_EQ_CMD].eqn, status);  	for (i = 0; i < MTHCA_NUM_EQ; ++i)  		if (mthca_is_memfree(dev)) @@ -909,15 +887,14 @@ err_out_free:  void mthca_cleanup_eq_table(struct mthca_dev *dev)  { -	u8 status;  	int i;  	mthca_free_irqs(dev);  	mthca_MAP_EQ(dev, async_mask(dev), -		     1, dev->eq_table.eq[MTHCA_EQ_ASYNC].eqn, &status); +		     1, dev->eq_table.eq[MTHCA_EQ_ASYNC].eqn);  	mthca_MAP_EQ(dev, MTHCA_CMD_EVENT_MASK, -		     1, dev->eq_table.eq[MTHCA_EQ_CMD].eqn, &status); +		     1, dev->eq_table.eq[MTHCA_EQ_CMD].eqn);  	for (i = 0; i < MTHCA_NUM_EQ; ++i)  		mthca_free_eq(dev, &dev->eq_table.eq[i]);  |