net/mlx4_en: Fixed crash when port type is changed
authorAmir Vadai <amirv@mellanox.com>
Thu, 7 Nov 2013 09:08:30 +0000 (11:08 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Nov 2013 00:11:13 +0000 (19:11 -0500)
timecounter_init() was was called only after first potential
timecounter_read().
Moved mlx4_en_init_timestamp() before mlx4_en_init_netdev()

Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_main.c

index a071cda2dd04ad880ce3862d7c4011839524dd13..0d087b03a7b09db29f170c712e8f36c71c8f9db6 100644 (file)
@@ -264,6 +264,10 @@ static void *mlx4_en_add(struct mlx4_dev *dev)
        mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_ETH)
                mdev->port_cnt++;
 
+       /* Initialize time stamp mechanism */
+       if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_TS)
+               mlx4_en_init_timestamp(mdev);
+
        mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_ETH) {
                if (!dev->caps.comp_pool) {
                        mdev->profile.prof[i].rx_ring_num =
@@ -301,10 +305,6 @@ static void *mlx4_en_add(struct mlx4_dev *dev)
                        mdev->pndev[i] = NULL;
        }
 
-       /* Initialize time stamp mechanism */
-       if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_TS)
-               mlx4_en_init_timestamp(mdev);
-
        return mdev;
 
 err_mr: