From patchwork Fri Oct 5 18:28:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Min Zhang X-Patchwork-Id: 189562 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 719BB2C0330 for ; Sat, 6 Oct 2012 04:28:37 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932833Ab2JES2b (ORCPT ); Fri, 5 Oct 2012 14:28:31 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:51129 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932708Ab2JES23 (ORCPT ); Fri, 5 Oct 2012 14:28:29 -0400 Received: by mail-pa0-f46.google.com with SMTP id hz1so2072583pad.19 for ; Fri, 05 Oct 2012 11:28:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:x-x-sender:to:cc:subject:message-id:user-agent :mime-version:content-type:x-gm-message-state; bh=2lZhbm+YCU7n9RTckW+TIje6uRonwsTv1KCtkmtuZc0=; b=giMLvaGj13M5gkMn7yJ4ytzDMg0QfYzRy2XIeUPOGmXk/OlmNB6ejCp1h2CIx9YKKI wZgzCATkZZdCbs4UTxO0Sqtk1IKsMffsEhdMsYWDw+YrdIAP4AsfZox8bv64ZPIIIf3C OK6jJWWhRJnNfXi6X5SDvvz8bZek4C9Ea3TG4KPxl1KcWOtANcy3gKo5muawRREA/qBu JivcuR1d277WRHaP8CMn1Ly1U/0DZXO/3B7Zm6UZjQJWJR0UhDdgs4QKaSJ95AkQ6OP1 A9zIKTlhKgNtNbnCRlEsVfTii8UykT50qXfFXJaXLh9hJ8drm2nmav9ZXFI7H3Q15uqS 0qZA== Received: by 10.66.73.226 with SMTP id o2mr23647549pav.83.1349461709056; Fri, 05 Oct 2012 11:28:29 -0700 (PDT) Received: from [10.7.101.48] (64.2.3.195.ptr.us.xo.net. [64.2.3.195]) by mx.google.com with ESMTPS id tt6sm6410590pbc.51.2012.10.05.11.28.27 (version=SSLv3 cipher=OTHER); Fri, 05 Oct 2012 11:28:28 -0700 (PDT) Date: Fri, 5 Oct 2012 11:28:17 -0700 (PDT) From: Min Zhang X-X-Sender: mzhang@linux-acr3.site To: netdev@vger.kernel.org cc: linux-kernel@vger.kernel.org Subject: [PATCH] mlx4: set carrier off after register netdev Message-ID: User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 X-Gm-Message-State: ALoCoQlD8+TZZAfDK9iP/+LAmJCatg25KDjDOFFON3r/pHjhPUOcTkTnvLFYfBf3qrnT9nn/cFGg Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org ifconfig mlx4_en port reported RUNNING even though the link was down. mlx4_en_init_netdev didn't initialize the dev operstate properly so the operstate stayed as default IF_OPER_UNKNOWN, then ifconfig treated the UNKNOWN as RUNNING state for backward compatiblity per RFC2863. The fix calls netif_carrier_off which is supposed to set operstate after register_netdev. Calling it before register_netdev has no effect since the dev->state is still NETREG_UNINITIALIZED Tested by removing the physical link signal to the mellanox 10G port, modprobe mlx4_en, then ifconfig up. Verify there is no RUNNING status. Signed-off-by: Min Zhang --- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index c96113b..8c562f7a 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -1306,12 +1306,12 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, mdev->pndev[port] = dev; - netif_carrier_off(dev); err = register_netdev(dev); if (err) { mlx4_err(mdev, "Netdev registration failed for port %d\n", port); goto out; } + netif_carrier_off(dev); en_warn(priv, "Using %d TX rings\n", prof->tx_ring_num); en_warn(priv, "Using %d RX rings\n", prof->rx_ring_num);