diff options
Diffstat (limited to 'drivers/net/ethernet/mellanox')
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/icm.c | 30 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/icm.h | 10 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/main.c | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/reset.c | 8 | 
4 files changed, 28 insertions, 22 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/icm.c b/drivers/net/ethernet/mellanox/mlx4/icm.c index daf41792366..31d02649be4 100644 --- a/drivers/net/ethernet/mellanox/mlx4/icm.c +++ b/drivers/net/ethernet/mellanox/mlx4/icm.c @@ -227,9 +227,10 @@ int mlx4_UNMAP_ICM_AUX(struct mlx4_dev *dev)  			MLX4_CMD_TIME_CLASS_B, MLX4_CMD_NATIVE);  } -int mlx4_table_get(struct mlx4_dev *dev, struct mlx4_icm_table *table, int obj) +int mlx4_table_get(struct mlx4_dev *dev, struct mlx4_icm_table *table, u32 obj)  { -	int i = (obj & (table->num_obj - 1)) / (MLX4_TABLE_CHUNK_SIZE / table->obj_size); +	u32 i = (obj & (table->num_obj - 1)) / +			(MLX4_TABLE_CHUNK_SIZE / table->obj_size);  	int ret = 0;  	mutex_lock(&table->mutex); @@ -262,16 +263,18 @@ out:  	return ret;  } -void mlx4_table_put(struct mlx4_dev *dev, struct mlx4_icm_table *table, int obj) +void mlx4_table_put(struct mlx4_dev *dev, struct mlx4_icm_table *table, u32 obj)  { -	int i; +	u32 i; +	u64 offset;  	i = (obj & (table->num_obj - 1)) / (MLX4_TABLE_CHUNK_SIZE / table->obj_size);  	mutex_lock(&table->mutex);  	if (--table->icm[i]->refcount == 0) { -		mlx4_UNMAP_ICM(dev, table->virt + i * MLX4_TABLE_CHUNK_SIZE, +		offset = (u64) i * MLX4_TABLE_CHUNK_SIZE; +		mlx4_UNMAP_ICM(dev, table->virt + offset,  			       MLX4_TABLE_CHUNK_SIZE / MLX4_ICM_PAGE_SIZE);  		mlx4_free_icm(dev, table->icm[i], table->coherent);  		table->icm[i] = NULL; @@ -280,9 +283,11 @@ void mlx4_table_put(struct mlx4_dev *dev, struct mlx4_icm_table *table, int obj)  	mutex_unlock(&table->mutex);  } -void *mlx4_table_find(struct mlx4_icm_table *table, int obj, dma_addr_t *dma_handle) +void *mlx4_table_find(struct mlx4_icm_table *table, u32 obj, +			dma_addr_t *dma_handle)  { -	int idx, offset, dma_offset, i; +	int offset, dma_offset, i; +	u64 idx;  	struct mlx4_icm_chunk *chunk;  	struct mlx4_icm *icm;  	struct page *page = NULL; @@ -292,7 +297,7 @@ void *mlx4_table_find(struct mlx4_icm_table *table, int obj, dma_addr_t *dma_han  	mutex_lock(&table->mutex); -	idx = (obj & (table->num_obj - 1)) * table->obj_size; +	idx = (u64) (obj & (table->num_obj - 1)) * table->obj_size;  	icm = table->icm[idx / MLX4_TABLE_CHUNK_SIZE];  	dma_offset = offset = idx % MLX4_TABLE_CHUNK_SIZE; @@ -326,10 +331,11 @@ out:  }  int mlx4_table_get_range(struct mlx4_dev *dev, struct mlx4_icm_table *table, -			 int start, int end) +			 u32 start, u32 end)  {  	int inc = MLX4_TABLE_CHUNK_SIZE / table->obj_size; -	int i, err; +	int err; +	u32 i;  	for (i = start; i <= end; i += inc) {  		err = mlx4_table_get(dev, table, i); @@ -349,9 +355,9 @@ fail:  }  void mlx4_table_put_range(struct mlx4_dev *dev, struct mlx4_icm_table *table, -			  int start, int end) +			  u32 start, u32 end)  { -	int i; +	u32 i;  	for (i = start; i <= end; i += MLX4_TABLE_CHUNK_SIZE / table->obj_size)  		mlx4_table_put(dev, table, i); diff --git a/drivers/net/ethernet/mellanox/mlx4/icm.h b/drivers/net/ethernet/mellanox/mlx4/icm.h index a67744f5350..dee67fa3910 100644 --- a/drivers/net/ethernet/mellanox/mlx4/icm.h +++ b/drivers/net/ethernet/mellanox/mlx4/icm.h @@ -71,17 +71,17 @@ struct mlx4_icm *mlx4_alloc_icm(struct mlx4_dev *dev, int npages,  				gfp_t gfp_mask, int coherent);  void mlx4_free_icm(struct mlx4_dev *dev, struct mlx4_icm *icm, int coherent); -int mlx4_table_get(struct mlx4_dev *dev, struct mlx4_icm_table *table, int obj); -void mlx4_table_put(struct mlx4_dev *dev, struct mlx4_icm_table *table, int obj); +int mlx4_table_get(struct mlx4_dev *dev, struct mlx4_icm_table *table, u32 obj); +void mlx4_table_put(struct mlx4_dev *dev, struct mlx4_icm_table *table, u32 obj);  int mlx4_table_get_range(struct mlx4_dev *dev, struct mlx4_icm_table *table, -			 int start, int end); +			 u32 start, u32 end);  void mlx4_table_put_range(struct mlx4_dev *dev, struct mlx4_icm_table *table, -			  int start, int end); +			  u32 start, u32 end);  int mlx4_init_icm_table(struct mlx4_dev *dev, struct mlx4_icm_table *table,  			u64 virt, int obj_size,	u32 nobj, int reserved,  			int use_lowmem, int use_coherent);  void mlx4_cleanup_icm_table(struct mlx4_dev *dev, struct mlx4_icm_table *table); -void *mlx4_table_find(struct mlx4_icm_table *table, int obj, dma_addr_t *dma_handle); +void *mlx4_table_find(struct mlx4_icm_table *table, u32 obj, dma_addr_t *dma_handle);  static inline void mlx4_icm_first(struct mlx4_icm *icm,  				  struct mlx4_icm_iter *iter) diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index 2f816c6aed7..dd6ea942625 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c @@ -2300,7 +2300,7 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)  	return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;  } -static struct pci_error_handlers mlx4_err_handler = { +static const struct pci_error_handlers mlx4_err_handler = {  	.error_detected = mlx4_pci_err_detected,  	.slot_reset     = mlx4_pci_slot_reset,  }; diff --git a/drivers/net/ethernet/mellanox/mlx4/reset.c b/drivers/net/ethernet/mellanox/mlx4/reset.c index 11e7c1cb99b..dd1b5093d8b 100644 --- a/drivers/net/ethernet/mellanox/mlx4/reset.c +++ b/drivers/net/ethernet/mellanox/mlx4/reset.c @@ -141,16 +141,16 @@ int mlx4_reset(struct mlx4_dev *dev)  	/* Now restore the PCI headers */  	if (pcie_cap) {  		devctl = hca_header[(pcie_cap + PCI_EXP_DEVCTL) / 4]; -		if (pci_write_config_word(dev->pdev, pcie_cap + PCI_EXP_DEVCTL, -					   devctl)) { +		if (pcie_capability_write_word(dev->pdev, PCI_EXP_DEVCTL, +					       devctl)) {  			err = -ENODEV;  			mlx4_err(dev, "Couldn't restore HCA PCI Express "  				 "Device Control register, aborting.\n");  			goto out;  		}  		linkctl = hca_header[(pcie_cap + PCI_EXP_LNKCTL) / 4]; -		if (pci_write_config_word(dev->pdev, pcie_cap + PCI_EXP_LNKCTL, -					   linkctl)) { +		if (pcie_capability_write_word(dev->pdev, PCI_EXP_LNKCTL, +					       linkctl)) {  			err = -ENODEV;  			mlx4_err(dev, "Couldn't restore HCA PCI Express "  				 "Link control register, aborting.\n");  |