diff options
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/main.c')
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/main.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index 678558b502fc..d498f049c74e 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c | |||
| @@ -531,15 +531,14 @@ int mlx4_change_port_types(struct mlx4_dev *dev, | |||
| 531 | for (port = 0; port < dev->caps.num_ports; port++) { | 531 | for (port = 0; port < dev->caps.num_ports; port++) { | 
| 532 | /* Change the port type only if the new type is different | 532 | /* Change the port type only if the new type is different | 
| 533 | * from the current, and not set to Auto */ | 533 | * from the current, and not set to Auto */ | 
| 534 | if (port_types[port] != dev->caps.port_type[port + 1]) { | 534 | if (port_types[port] != dev->caps.port_type[port + 1]) | 
| 535 | change = 1; | 535 | change = 1; | 
| 536 | dev->caps.port_type[port + 1] = port_types[port]; | ||
| 537 | } | ||
| 538 | } | 536 | } | 
| 539 | if (change) { | 537 | if (change) { | 
| 540 | mlx4_unregister_device(dev); | 538 | mlx4_unregister_device(dev); | 
| 541 | for (port = 1; port <= dev->caps.num_ports; port++) { | 539 | for (port = 1; port <= dev->caps.num_ports; port++) { | 
| 542 | mlx4_CLOSE_PORT(dev, port); | 540 | mlx4_CLOSE_PORT(dev, port); | 
| 541 | dev->caps.port_type[port] = port_types[port - 1]; | ||
| 543 | err = mlx4_SET_PORT(dev, port); | 542 | err = mlx4_SET_PORT(dev, port); | 
| 544 | if (err) { | 543 | if (err) { | 
| 545 | mlx4_err(dev, "Failed to set port %d, " | 544 | mlx4_err(dev, "Failed to set port %d, " | 
| @@ -986,6 +985,9 @@ static int map_bf_area(struct mlx4_dev *dev) | |||
| 986 | resource_size_t bf_len; | 985 | resource_size_t bf_len; | 
| 987 | int err = 0; | 986 | int err = 0; | 
| 988 | 987 | ||
| 988 | if (!dev->caps.bf_reg_size) | ||
| 989 | return -ENXIO; | ||
| 990 | |||
| 989 | bf_start = pci_resource_start(dev->pdev, 2) + | 991 | bf_start = pci_resource_start(dev->pdev, 2) + | 
| 990 | (dev->caps.num_uars << PAGE_SHIFT); | 992 | (dev->caps.num_uars << PAGE_SHIFT); | 
| 991 | bf_len = pci_resource_len(dev->pdev, 2) - | 993 | bf_len = pci_resource_len(dev->pdev, 2) - | 
| @@ -1825,7 +1827,7 @@ slave_start: | |||
| 1825 | goto err_master_mfunc; | 1827 | goto err_master_mfunc; | 
| 1826 | 1828 | ||
| 1827 | priv->msix_ctl.pool_bm = 0; | 1829 | priv->msix_ctl.pool_bm = 0; | 
| 1828 | spin_lock_init(&priv->msix_ctl.pool_lock); | 1830 | mutex_init(&priv->msix_ctl.pool_lock); | 
| 1829 | 1831 | ||
| 1830 | mlx4_enable_msi_x(dev); | 1832 | mlx4_enable_msi_x(dev); | 
| 1831 | if ((mlx4_is_mfunc(dev)) && | 1833 | if ((mlx4_is_mfunc(dev)) && | 
