From patchwork Tue Nov 5 18:48:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tarun K Singh X-Patchwork-Id: 2007148 X-Patchwork-Delegate: anthony.l.nguyen@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256 header.s=default header.b=grLjBXPW; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.138; helo=smtp1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=patchwork.ozlabs.org) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XjhnK15x0z1xxN for ; Wed, 6 Nov 2024 08:49:25 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 8117880DB2; Tue, 5 Nov 2024 21:49:23 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id dtaYeAlM8Nqi; Tue, 5 Nov 2024 21:49:22 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 6843081154 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1730843362; bh=wVqxE1aHt5aqkR4cQXeLQcIPLX/d+U8mXei+V81qWrA=; h=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=grLjBXPW2W2hLdKthyTUV7TXO1+r6RfoFG55q8CMx3ZlomVVarAxB/9bICyWwMk7r KawBNSoEr8EpkEGgAjgdqVvcpt20rNRTFgcU4vcSh4nzCJkFH2+sqjk3vuIxpwCAqA wVB6QQGTGlRXOYPpV46d0ARru/0kGcfXjv7A3+4IsthYm9OGO4p8sr1JDo50ZhBjZB ZOJCBLnLDWkbytg7zD3HBZokaZo2ntrKxDT9mpLc50Y/nX+CVzHVW9lBYlKJZd/9t1 1Olw9tfR+Ni20bSnVeEAQ51Qm5E9saUqL89uDicpszlkuhX6z66QCPc44go7uWBnu9 /C8fctj29U2Iw== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp1.osuosl.org (Postfix) with ESMTP id 6843081154; Tue, 5 Nov 2024 21:49:22 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists1.osuosl.org (Postfix) with ESMTP id 2A1781DE2 for ; Tue, 5 Nov 2024 21:49:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 185C44067F for ; Tue, 5 Nov 2024 21:49:19 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id IiuiA87N9mZj for ; Tue, 5 Nov 2024 21:49:17 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.17; helo=mgamail.intel.com; envelope-from=tarun.k.singh@intel.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org 8637940679 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 8637940679 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by smtp4.osuosl.org (Postfix) with ESMTPS id 8637940679 for ; Tue, 5 Nov 2024 21:49:17 +0000 (UTC) X-CSE-ConnectionGUID: ja6E8xPDT2alCWeuyZMzhw== X-CSE-MsgGUID: B7quqQCeRYqjNChhLfpSog== X-IronPort-AV: E=McAfee;i="6700,10204,11247"; a="30735922" X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="30735922" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 13:49:16 -0800 X-CSE-ConnectionGUID: Zq9IaYIgREGRyD8n98hH4Q== X-CSE-MsgGUID: zpMM/4kOQeGLiSj8nEmZvw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="85010410" Received: from coyotepass-34596-p1.jf.intel.com ([10.166.80.48]) by orviesa008.jf.intel.com with ESMTP; 05 Nov 2024 13:49:03 -0800 From: Tarun K Singh To: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org Date: Tue, 5 Nov 2024 13:48:56 -0500 Message-ID: <20241105184859.741473-2-tarun.k.singh@intel.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241105184859.741473-1-tarun.k.singh@intel.com> References: <20241105184859.741473-1-tarun.k.singh@intel.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730843358; x=1762379358; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LNyBLsD0ODHmt5t/JMdR70uhaS5r3JHEat46z2yXsec=; b=RmX92CLVEzaaW4mKg+wyUcaoDOh+s6ti3CGofm3z1tagJQfxqxM6V/bS a2Y6dX9nYZoPu+i8arfggntAgOUQ5n5CTAZpB7hRzJFdBUAXpPBLjilcX CZt+gF9Y7i94r8xr+a7bwUlrb7n6Wkc1li6yOep0Tlm8tB/2D0V8Sy95F P9za1NHuqksHyAkaOUNcwnvCCBY78bcyk4a0Qj6kZslN1rxn+xufVUYbm yn1o8Y4pdDuJemNmfY15HuuYdfPMng7uW03W9jcNELa8PYmMyCmpwRCgM SqGFV+QJz436oILlXY0Kk2hZtvkpXzaFois6u26bbAkYMgfPlNGeuj0Mo A==; X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=none dis=none) header.from=intel.com X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=RmX92CLV Subject: [Intel-wired-lan] [PATCH iwl-net v1 1/4] idpf: Change function argument X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" Change idpf_vport_ctrl_lock's argument from netdev to adapter. Reviewed-by: Przemek Kitszel Signed-off-by: Tarun K Singh Tested-by: Krishneil Singh --- drivers/net/ethernet/intel/idpf/idpf.h | 16 ++--- .../net/ethernet/intel/idpf/idpf_ethtool.c | 59 ++++++++++--------- drivers/net/ethernet/intel/idpf/idpf_lib.c | 39 ++++++------ 3 files changed, 58 insertions(+), 56 deletions(-) diff --git a/drivers/net/ethernet/intel/idpf/idpf.h b/drivers/net/ethernet/intel/idpf/idpf.h index 66544faab710..d87ed50af681 100644 --- a/drivers/net/ethernet/intel/idpf/idpf.h +++ b/drivers/net/ethernet/intel/idpf/idpf.h @@ -788,27 +788,23 @@ static inline u16 idpf_get_max_tx_hdr_size(struct idpf_adapter *adapter) /** * idpf_vport_ctrl_lock - Acquire the vport control lock - * @netdev: Network interface device structure + * @adapter: private data struct * * This lock should be used by non-datapath code to protect against vport * destruction. */ -static inline void idpf_vport_ctrl_lock(struct net_device *netdev) +static inline void idpf_vport_ctrl_lock(struct idpf_adapter *adapter) { - struct idpf_netdev_priv *np = netdev_priv(netdev); - - mutex_lock(&np->adapter->vport_ctrl_lock); + mutex_lock(&adapter->vport_ctrl_lock); } /** * idpf_vport_ctrl_unlock - Release the vport control lock - * @netdev: Network interface device structure + * @adapter: private data struct */ -static inline void idpf_vport_ctrl_unlock(struct net_device *netdev) +static inline void idpf_vport_ctrl_unlock(struct idpf_adapter *adapter) { - struct idpf_netdev_priv *np = netdev_priv(netdev); - - mutex_unlock(&np->adapter->vport_ctrl_lock); + mutex_unlock(&adapter->vport_ctrl_lock); } void idpf_statistics_task(struct work_struct *work); diff --git a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c index 59b1a1a09996..e5ac3e5a50ce 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c +++ b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c @@ -14,22 +14,23 @@ static int idpf_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd, u32 __always_unused *rule_locs) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); switch (cmd->cmd) { case ETHTOOL_GRXRINGS: cmd->data = vport->num_rxq; - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return 0; default: break; } - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return -EOPNOTSUPP; } @@ -88,9 +89,8 @@ static int idpf_get_rxfh(struct net_device *netdev, int err = 0; u16 i; - idpf_vport_ctrl_lock(netdev); - adapter = np->adapter; + idpf_vport_ctrl_lock(adapter); if (!idpf_is_cap_ena_all(adapter, IDPF_RSS_CAPS, IDPF_CAP_RSS)) { err = -EOPNOTSUPP; @@ -112,7 +112,7 @@ static int idpf_get_rxfh(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -131,17 +131,15 @@ static int idpf_set_rxfh(struct net_device *netdev, struct netlink_ext_ack *extack) { struct idpf_netdev_priv *np = netdev_priv(netdev); + struct idpf_adapter *adapter = np->adapter; struct idpf_rss_data *rss_data; - struct idpf_adapter *adapter; struct idpf_vport *vport; int err = 0; u16 lut; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); - adapter = vport->adapter; - if (!idpf_is_cap_ena_all(adapter, IDPF_RSS_CAPS, IDPF_CAP_RSS)) { err = -EOPNOTSUPP; goto unlock_mutex; @@ -168,7 +166,7 @@ static int idpf_set_rxfh(struct net_device *netdev, err = idpf_config_rss(vport); unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -221,6 +219,7 @@ static void idpf_get_channels(struct net_device *netdev, static int idpf_set_channels(struct net_device *netdev, struct ethtool_channels *ch) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport_config *vport_config; unsigned int num_req_tx_q; unsigned int num_req_rx_q; @@ -235,7 +234,7 @@ static int idpf_set_channels(struct net_device *netdev, return -EINVAL; } - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); idx = vport->idx; @@ -279,7 +278,7 @@ static int idpf_set_channels(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -299,9 +298,10 @@ static void idpf_get_ringparam(struct net_device *netdev, struct kernel_ethtool_ringparam *kring, struct netlink_ext_ack *ext_ack) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); ring->rx_max_pending = IDPF_MAX_RXQ_DESC; @@ -311,7 +311,7 @@ static void idpf_get_ringparam(struct net_device *netdev, kring->tcp_data_split = idpf_vport_get_hsplit(vport); - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); } /** @@ -329,13 +329,14 @@ static int idpf_set_ringparam(struct net_device *netdev, struct kernel_ethtool_ringparam *kring, struct netlink_ext_ack *ext_ack) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport_user_config_data *config_data; u32 new_rx_count, new_tx_count; struct idpf_vport *vport; int i, err = 0; u16 idx; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); idx = vport->idx; @@ -394,7 +395,7 @@ static int idpf_set_ringparam(struct net_device *netdev, err = idpf_initiate_soft_reset(vport, IDPF_SR_Q_DESC_CHANGE); unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -869,6 +870,7 @@ static void idpf_get_ethtool_stats(struct net_device *netdev, u64 *data) { struct idpf_netdev_priv *np = netdev_priv(netdev); + struct idpf_adapter *adapter = np->adapter; struct idpf_vport_config *vport_config; struct idpf_vport *vport; unsigned int total = 0; @@ -876,11 +878,11 @@ static void idpf_get_ethtool_stats(struct net_device *netdev, bool is_splitq; u16 qtype; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (np->state != __IDPF_VPORT_UP) { - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return; } @@ -947,7 +949,7 @@ static void idpf_get_ethtool_stats(struct net_device *netdev, rcu_read_unlock(); - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); } /** @@ -1025,10 +1027,11 @@ static int idpf_get_q_coalesce(struct net_device *netdev, u32 q_num) { const struct idpf_netdev_priv *np = netdev_priv(netdev); + struct idpf_adapter *adapter = np->adapter; const struct idpf_vport *vport; int err = 0; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (np->state != __IDPF_VPORT_UP) @@ -1048,7 +1051,7 @@ static int idpf_get_q_coalesce(struct net_device *netdev, VIRTCHNL2_QUEUE_TYPE_TX); unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -1200,10 +1203,11 @@ static int idpf_set_coalesce(struct net_device *netdev, struct netlink_ext_ack *extack) { struct idpf_netdev_priv *np = netdev_priv(netdev); + struct idpf_adapter *adapter = np->adapter; struct idpf_vport *vport; int i, err = 0; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (np->state != __IDPF_VPORT_UP) @@ -1222,7 +1226,7 @@ static int idpf_set_coalesce(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -1238,22 +1242,23 @@ static int idpf_set_coalesce(struct net_device *netdev, static int idpf_set_per_q_coalesce(struct net_device *netdev, u32 q_num, struct ethtool_coalesce *ec) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; int err; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); err = idpf_set_q_coalesce(vport, ec, q_num, false); if (err) { - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } err = idpf_set_q_coalesce(vport, ec, q_num, true); - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c index b4fbb99bfad2..a870748a8be7 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_lib.c +++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c @@ -904,18 +904,18 @@ static void idpf_vport_stop(struct idpf_vport *vport) */ static int idpf_stop(struct net_device *netdev) { - struct idpf_netdev_priv *np = netdev_priv(netdev); + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; - if (test_bit(IDPF_REMOVE_IN_PROG, np->adapter->flags)) + if (test_bit(IDPF_REMOVE_IN_PROG, adapter->flags)) return 0; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); idpf_vport_stop(vport); - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return 0; } @@ -2098,16 +2098,14 @@ static int idpf_vport_manage_rss_lut(struct idpf_vport *vport) static int idpf_set_features(struct net_device *netdev, netdev_features_t features) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); netdev_features_t changed = netdev->features ^ features; - struct idpf_adapter *adapter; struct idpf_vport *vport; int err = 0; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); - adapter = vport->adapter; - if (idpf_is_reset_in_prog(adapter)) { dev_err(&adapter->pdev->dev, "Device is resetting, changing netdev features temporarily unavailable.\n"); err = -EBUSY; @@ -2134,7 +2132,7 @@ static int idpf_set_features(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -2153,15 +2151,16 @@ static int idpf_set_features(struct net_device *netdev, */ static int idpf_open(struct net_device *netdev) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; int err; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); err = idpf_vport_open(vport); - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -2175,17 +2174,18 @@ static int idpf_open(struct net_device *netdev) */ static int idpf_change_mtu(struct net_device *netdev, int new_mtu) { + struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; int err; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); WRITE_ONCE(netdev->mtu, new_mtu); err = idpf_initiate_soft_reset(vport, IDPF_SR_MTU_CHANGE); - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } @@ -2261,23 +2261,24 @@ static netdev_features_t idpf_features_check(struct sk_buff *skb, static int idpf_set_mac(struct net_device *netdev, void *p) { struct idpf_netdev_priv *np = netdev_priv(netdev); + struct idpf_adapter *adapter = np->adapter; struct idpf_vport_config *vport_config; struct sockaddr *addr = p; struct idpf_vport *vport; int err = 0; - idpf_vport_ctrl_lock(netdev); + idpf_vport_ctrl_lock(adapter); vport = idpf_netdev_to_vport(netdev); - if (!idpf_is_cap_ena(vport->adapter, IDPF_OTHER_CAPS, + if (!idpf_is_cap_ena(adapter, IDPF_OTHER_CAPS, VIRTCHNL2_CAP_MACFILTER)) { - dev_info(&vport->adapter->pdev->dev, "Setting MAC address is not supported\n"); + dev_info(&adapter->pdev->dev, "Setting MAC address is not supported\n"); err = -EOPNOTSUPP; goto unlock_mutex; } if (!is_valid_ether_addr(addr->sa_data)) { - dev_info(&vport->adapter->pdev->dev, "Invalid MAC address: %pM\n", + dev_info(&adapter->pdev->dev, "Invalid MAC address: %pM\n", addr->sa_data); err = -EADDRNOTAVAIL; goto unlock_mutex; @@ -2286,7 +2287,7 @@ static int idpf_set_mac(struct net_device *netdev, void *p) if (ether_addr_equal(netdev->dev_addr, addr->sa_data)) goto unlock_mutex; - vport_config = vport->adapter->vport_config[vport->idx]; + vport_config = adapter->vport_config[vport->idx]; err = idpf_add_mac_filter(vport, np, addr->sa_data, false); if (err) { __idpf_del_mac_filter(vport_config, addr->sa_data); @@ -2300,7 +2301,7 @@ static int idpf_set_mac(struct net_device *netdev, void *p) eth_hw_addr_set(netdev, addr->sa_data); unlock_mutex: - idpf_vport_ctrl_unlock(netdev); + idpf_vport_ctrl_unlock(adapter); return err; } From patchwork Tue Nov 5 18:48:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tarun K Singh X-Patchwork-Id: 2007151 X-Patchwork-Delegate: anthony.l.nguyen@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256 header.s=default header.b=he010bTY; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=patchwork.ozlabs.org) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XjhnQ5x9Yz1xxN for ; Wed, 6 Nov 2024 08:49:30 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id AEB5681167; Tue, 5 Nov 2024 21:49:26 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id AQ8X60_LwcBd; Tue, 5 Nov 2024 21:49:25 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 8731781164 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1730843365; bh=7vSOklN+QPk5aD5Sxbgtq5tjMM+w1TqENRYrT0juU4A=; h=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=he010bTYvabF8weuQp10OAjInEh2W3WHvtU3e7aiFEdne4SZfF1InVVbWYn6rNmSy Wke6S+BbVA7MumJnIvMAoYxOAsCJ1J4FykRljFARoHKPCOFNRHEwz7EAqreyBe3oTz ukrfutyNuOgTYKYamRo8MuUrK0sUWn8JC2AiL/yYNuz1rtPOQb8arUFteOqCSsqsyS wkeSaK1KWBk/wLCs1JI9fqXlvpAgJzOyevv8cXaTz1p6d448NJItsyqyjF//U6D1Rg 3MSiZGxvg/p8c745YM4lrkJ+KmLHm8YQq9+l/lXerQKRWl7W9rPPBYB1pWq9bEEnYJ 6hsA4jljxFFRQ== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp1.osuosl.org (Postfix) with ESMTP id 8731781164; Tue, 5 Nov 2024 21:49:25 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists1.osuosl.org (Postfix) with ESMTP id 06C29B8 for ; Tue, 5 Nov 2024 21:49:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 954784067B for ; Tue, 5 Nov 2024 21:49:20 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id yys-aYGTEoh4 for ; Tue, 5 Nov 2024 21:49:18 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.17; helo=mgamail.intel.com; envelope-from=tarun.k.singh@intel.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org D320740683 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org D320740683 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by smtp4.osuosl.org (Postfix) with ESMTPS id D320740683 for ; Tue, 5 Nov 2024 21:49:17 +0000 (UTC) X-CSE-ConnectionGUID: mJHbJUBQSsO6FOtufIpLxw== X-CSE-MsgGUID: EJdAKUPASqa/rsMTv2OPhw== X-IronPort-AV: E=McAfee;i="6700,10204,11247"; a="30735924" X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="30735924" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 13:49:16 -0800 X-CSE-ConnectionGUID: 23Rl6e5HRgSRE/Xx1pSwgg== X-CSE-MsgGUID: ENh/6zA8RoeyqQBS8K5QWg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="85010416" Received: from coyotepass-34596-p1.jf.intel.com ([10.166.80.48]) by orviesa008.jf.intel.com with ESMTP; 05 Nov 2024 13:49:04 -0800 From: Tarun K Singh To: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org Date: Tue, 5 Nov 2024 13:48:57 -0500 Message-ID: <20241105184859.741473-3-tarun.k.singh@intel.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241105184859.741473-1-tarun.k.singh@intel.com> References: <20241105184859.741473-1-tarun.k.singh@intel.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730843358; x=1762379358; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SqivNwsZCDrv+Qryo7XrCbD1oc37ghHHBjHvf3JsNiM=; b=VKH2WkP0UDBH3+lHecyoZo7GdMDwHTKbEPR3vZX+NgO9DJsNTqnlSwKM jAklZxfZz1hHTh0JWSMsiLEqH+XL99MgdUHOdQ11OBlgOFbRMhgM2DAp7 x4aRmT0tqRQp3Pcvci5WeiDAel18hRHjtzBzQrfoVj12QCuxJ6JfRW8VF pxKslo7o8qMzL2cSZVDpRbj0kaMWDYuocVE8EK4VkE1uMzycM5ZeS+Nm+ vmVeZfbGpoKYygHeZ0e6yVngTyou+HXCgb4yhZYmoLyflvPwr1l3CVJIa f+dFYYVkGdgaEU0rr+02dTp/iuq5ttRzesREHIsyt/1kL1NWdiV2jVGM1 Q==; X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=none dis=none) header.from=intel.com X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=VKH2WkP0 Subject: [Intel-wired-lan] [PATCH iwl-net v1 2/4] idpf: rename vport_ctrl_lock X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" Rename 'vport_ctrl_lock' to 'vport_cfg_lock'. Rename related functions name for lock and unlock. Reviewed-by: Przemek Kitszel Signed-off-by: Tarun K Singh Tested-by: Krishneil Singh --- drivers/net/ethernet/intel/idpf/idpf.h | 16 +++---- .../net/ethernet/intel/idpf/idpf_ethtool.c | 46 +++++++++---------- drivers/net/ethernet/intel/idpf/idpf_lib.c | 24 +++++----- drivers/net/ethernet/intel/idpf/idpf_main.c | 4 +- 4 files changed, 45 insertions(+), 45 deletions(-) diff --git a/drivers/net/ethernet/intel/idpf/idpf.h b/drivers/net/ethernet/intel/idpf/idpf.h index d87ed50af681..8dea2dd784af 100644 --- a/drivers/net/ethernet/intel/idpf/idpf.h +++ b/drivers/net/ethernet/intel/idpf/idpf.h @@ -526,7 +526,7 @@ struct idpf_vc_xn_manager; * @crc_enable: Enable CRC insertion offload * @req_tx_splitq: TX split or single queue model to request * @req_rx_splitq: RX split or single queue model to request - * @vport_ctrl_lock: Lock to protect the vport control flow + * @vport_cfg_lock: Lock to protect the vport config flow * @vector_lock: Lock to protect vector distribution * @queue_lock: Lock to protect queue distribution * @vc_buf_lock: Lock to protect virtchnl buffer @@ -583,7 +583,7 @@ struct idpf_adapter { bool req_tx_splitq; bool req_rx_splitq; - struct mutex vport_ctrl_lock; + struct mutex vport_cfg_lock; struct mutex vector_lock; struct mutex queue_lock; struct mutex vc_buf_lock; @@ -787,24 +787,24 @@ static inline u16 idpf_get_max_tx_hdr_size(struct idpf_adapter *adapter) } /** - * idpf_vport_ctrl_lock - Acquire the vport control lock + * idpf_vport_cfg_lock - Acquire the vport config lock * @adapter: private data struct * * This lock should be used by non-datapath code to protect against vport * destruction. */ -static inline void idpf_vport_ctrl_lock(struct idpf_adapter *adapter) +static inline void idpf_vport_cfg_lock(struct idpf_adapter *adapter) { - mutex_lock(&adapter->vport_ctrl_lock); + mutex_lock(&adapter->vport_cfg_lock); } /** - * idpf_vport_ctrl_unlock - Release the vport control lock + * idpf_vport_cfg_unlock - Release the vport config lock * @adapter: private data struct */ -static inline void idpf_vport_ctrl_unlock(struct idpf_adapter *adapter) +static inline void idpf_vport_cfg_unlock(struct idpf_adapter *adapter) { - mutex_unlock(&adapter->vport_ctrl_lock); + mutex_unlock(&adapter->vport_cfg_lock); } void idpf_statistics_task(struct work_struct *work); diff --git a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c index e5ac3e5a50ce..b3ed1d9a80ae 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_ethtool.c +++ b/drivers/net/ethernet/intel/idpf/idpf_ethtool.c @@ -17,20 +17,20 @@ static int idpf_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *cmd, struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); switch (cmd->cmd) { case ETHTOOL_GRXRINGS: cmd->data = vport->num_rxq; - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return 0; default: break; } - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return -EOPNOTSUPP; } @@ -90,7 +90,7 @@ static int idpf_get_rxfh(struct net_device *netdev, u16 i; adapter = np->adapter; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); if (!idpf_is_cap_ena_all(adapter, IDPF_RSS_CAPS, IDPF_CAP_RSS)) { err = -EOPNOTSUPP; @@ -112,7 +112,7 @@ static int idpf_get_rxfh(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -137,7 +137,7 @@ static int idpf_set_rxfh(struct net_device *netdev, int err = 0; u16 lut; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (!idpf_is_cap_ena_all(adapter, IDPF_RSS_CAPS, IDPF_CAP_RSS)) { @@ -166,7 +166,7 @@ static int idpf_set_rxfh(struct net_device *netdev, err = idpf_config_rss(vport); unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -234,7 +234,7 @@ static int idpf_set_channels(struct net_device *netdev, return -EINVAL; } - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); idx = vport->idx; @@ -278,7 +278,7 @@ static int idpf_set_channels(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -301,7 +301,7 @@ static void idpf_get_ringparam(struct net_device *netdev, struct idpf_adapter *adapter = idpf_netdev_to_adapter(netdev); struct idpf_vport *vport; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); ring->rx_max_pending = IDPF_MAX_RXQ_DESC; @@ -311,7 +311,7 @@ static void idpf_get_ringparam(struct net_device *netdev, kring->tcp_data_split = idpf_vport_get_hsplit(vport); - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); } /** @@ -336,7 +336,7 @@ static int idpf_set_ringparam(struct net_device *netdev, int i, err = 0; u16 idx; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); idx = vport->idx; @@ -395,7 +395,7 @@ static int idpf_set_ringparam(struct net_device *netdev, err = idpf_initiate_soft_reset(vport, IDPF_SR_Q_DESC_CHANGE); unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -878,11 +878,11 @@ static void idpf_get_ethtool_stats(struct net_device *netdev, bool is_splitq; u16 qtype; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (np->state != __IDPF_VPORT_UP) { - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return; } @@ -949,7 +949,7 @@ static void idpf_get_ethtool_stats(struct net_device *netdev, rcu_read_unlock(); - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); } /** @@ -1031,7 +1031,7 @@ static int idpf_get_q_coalesce(struct net_device *netdev, const struct idpf_vport *vport; int err = 0; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (np->state != __IDPF_VPORT_UP) @@ -1051,7 +1051,7 @@ static int idpf_get_q_coalesce(struct net_device *netdev, VIRTCHNL2_QUEUE_TYPE_TX); unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -1207,7 +1207,7 @@ static int idpf_set_coalesce(struct net_device *netdev, struct idpf_vport *vport; int i, err = 0; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (np->state != __IDPF_VPORT_UP) @@ -1226,7 +1226,7 @@ static int idpf_set_coalesce(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -1246,19 +1246,19 @@ static int idpf_set_per_q_coalesce(struct net_device *netdev, u32 q_num, struct idpf_vport *vport; int err; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); err = idpf_set_q_coalesce(vport, ec, q_num, false); if (err) { - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } err = idpf_set_q_coalesce(vport, ec, q_num, true); - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c index a870748a8be7..778dc71fbf4a 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_lib.c +++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c @@ -910,12 +910,12 @@ static int idpf_stop(struct net_device *netdev) if (test_bit(IDPF_REMOVE_IN_PROG, adapter->flags)) return 0; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); idpf_vport_stop(vport); - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return 0; } @@ -1733,7 +1733,7 @@ static int idpf_init_hard_reset(struct idpf_adapter *adapter) int err; u16 i; - mutex_lock(&adapter->vport_ctrl_lock); + mutex_lock(&adapter->vport_cfg_lock); dev_info(dev, "Device HW Reset initiated\n"); @@ -1798,7 +1798,7 @@ static int idpf_init_hard_reset(struct idpf_adapter *adapter) msleep(100); unlock_mutex: - mutex_unlock(&adapter->vport_ctrl_lock); + mutex_unlock(&adapter->vport_cfg_lock); return err; } @@ -2103,7 +2103,7 @@ static int idpf_set_features(struct net_device *netdev, struct idpf_vport *vport; int err = 0; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (idpf_is_reset_in_prog(adapter)) { @@ -2132,7 +2132,7 @@ static int idpf_set_features(struct net_device *netdev, } unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -2155,12 +2155,12 @@ static int idpf_open(struct net_device *netdev) struct idpf_vport *vport; int err; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); err = idpf_vport_open(vport); - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -2178,14 +2178,14 @@ static int idpf_change_mtu(struct net_device *netdev, int new_mtu) struct idpf_vport *vport; int err; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); WRITE_ONCE(netdev->mtu, new_mtu); err = idpf_initiate_soft_reset(vport, IDPF_SR_MTU_CHANGE); - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } @@ -2267,7 +2267,7 @@ static int idpf_set_mac(struct net_device *netdev, void *p) struct idpf_vport *vport; int err = 0; - idpf_vport_ctrl_lock(adapter); + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); if (!idpf_is_cap_ena(adapter, IDPF_OTHER_CAPS, @@ -2301,7 +2301,7 @@ static int idpf_set_mac(struct net_device *netdev, void *p) eth_hw_addr_set(netdev, addr->sa_data); unlock_mutex: - idpf_vport_ctrl_unlock(adapter); + idpf_vport_cfg_unlock(adapter); return err; } diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c index db476b3314c8..0522b3a6f42c 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_main.c +++ b/drivers/net/ethernet/intel/idpf/idpf_main.c @@ -72,7 +72,7 @@ static void idpf_remove(struct pci_dev *pdev) kfree(adapter->vcxn_mngr); adapter->vcxn_mngr = NULL; - mutex_destroy(&adapter->vport_ctrl_lock); + mutex_destroy(&adapter->vport_cfg_lock); mutex_destroy(&adapter->vector_lock); mutex_destroy(&adapter->queue_lock); mutex_destroy(&adapter->vc_buf_lock); @@ -229,7 +229,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_cfg_hw; } - mutex_init(&adapter->vport_ctrl_lock); + mutex_init(&adapter->vport_cfg_lock); mutex_init(&adapter->vector_lock); mutex_init(&adapter->queue_lock); mutex_init(&adapter->vc_buf_lock); From patchwork Tue Nov 5 18:48:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tarun K Singh X-Patchwork-Id: 2007149 X-Patchwork-Delegate: anthony.l.nguyen@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256 header.s=default header.b=uYCcO9bA; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=140.211.166.138; helo=smtp1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=patchwork.ozlabs.org) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XjhnM3lYkz1xxN for ; Wed, 6 Nov 2024 08:49:27 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id B7BEF8116A; Tue, 5 Nov 2024 21:49:24 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id qdSP1y7ymgll; Tue, 5 Nov 2024 21:49:23 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 4A68481161 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1730843363; bh=xkSLmz0jyTh9UvuaN+Xs5yW8T1ElCllNPlg/dLdA4/I=; h=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=uYCcO9bAOmPSYCfSbEBcwth/4dTohl/i00eDpPYptBkB8GKwbeKUKtt3/kKocinoj IkN8weuaJx6s6GnZvscuFqx55bydQA4CvzeNeqFs4Xut4YVhf9WHlRNsHR5r9Sa6+0 LJKfqvRNFvS4CCwPPoOvTvn4KA/SUvhmjXZzIXFYJZ5O1qLbzx+DIrkX5HRnhhH7O+ RMvJ4s3qCp+F4yiKG/nO7CJb+XtRx7B2cwEsr60PXcCJ7/iqpqVAEJBrY9PVG33c8z dL9IVaku1u6YhZzfi1BPty6X5oqkH2SXtIU0Up8lEigFRPXeVsxqZcpsG7y1R7daCd pX79zGB3Ukn/Q== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp1.osuosl.org (Postfix) with ESMTP id 4A68481161; Tue, 5 Nov 2024 21:49:23 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists1.osuosl.org (Postfix) with ESMTP id 1A33CB8 for ; Tue, 5 Nov 2024 21:49:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id EF49B80DB2 for ; Tue, 5 Nov 2024 21:49:18 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id x_N1Oh_N_u2f for ; Tue, 5 Nov 2024 21:49:18 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.17; helo=mgamail.intel.com; envelope-from=tarun.k.singh@intel.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org EC3CF81154 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org EC3CF81154 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by smtp1.osuosl.org (Postfix) with ESMTPS id EC3CF81154 for ; Tue, 5 Nov 2024 21:49:17 +0000 (UTC) X-CSE-ConnectionGUID: j2F0AueLTta2In80knwZaQ== X-CSE-MsgGUID: EX9JMB9VRhu5dKnb2wuxKQ== X-IronPort-AV: E=McAfee;i="6700,10204,11247"; a="30735926" X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="30735926" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 13:49:16 -0800 X-CSE-ConnectionGUID: Wg8QJlc8TxOSOUWkDNs8Dw== X-CSE-MsgGUID: +hsLn0LgSgeVBVEHzhFFQg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="85010419" Received: from coyotepass-34596-p1.jf.intel.com ([10.166.80.48]) by orviesa008.jf.intel.com with ESMTP; 05 Nov 2024 13:49:06 -0800 From: Tarun K Singh To: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org Date: Tue, 5 Nov 2024 13:48:58 -0500 Message-ID: <20241105184859.741473-4-tarun.k.singh@intel.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241105184859.741473-1-tarun.k.singh@intel.com> References: <20241105184859.741473-1-tarun.k.singh@intel.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730843358; x=1762379358; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=fs47b3k7TnzdYnjiKW2cihXESV17iIsj1HH+Y7Az+Ng=; b=I68fro5KjF0z83xApwH9KuuUOnM1VELuywf2XcD3y7+MXDUYnQ2G1Dv2 DuqlmIzfIsp+BZd0xkGan7e7N+tNjElQBJ2YVzWmdZL4Uv6lsM/8Y23fE Cjb32vw6etbmV/gza+Ki/VfjJ8ohCVKdHZdvm+cAGJhGlqED22JvGadEO 5RYUtBgDbcBVWYN/mEoyU0MGu1UHN6AeRW7VL9ExX9VUFdSuTGjUDmC3d FmprdinYIYZMtBmQRms4VBCkpR4zUJIqexX7xRkn1LQESaJGAUTbPB1om Xkh3XhmrL/Jn9RKdRwihiqlcWxVYp9C9pix0jOAAmQZs4F2dfvzmWHGTQ Q==; X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=none dis=none) header.from=intel.com X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=I68fro5K Subject: [Intel-wired-lan] [PATCH iwl-net v1 3/4] idpf: Add init, reinit, and deinit control lock X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" Add new 'vport_init_lock' to prevent locking issue. The existing 'vport_cfg_lock' was controlling the vport initialization, re-initialization due to reset, and de-initialization of code flow. In addition to controlling the above behavior it was also controlling the parallel netdevice calls such as open/close from Linux OS, which can happen independent of re-init or de-init of the vport(s). If first one such as re-init or de-init is going on then the second operation to config the netdevice with OS should not take place. The first operation (init or de-init) takes the precedence if both are to happen simultaneously. Use of single lock cause deadlock and inconsistent behavior of code flow. E.g. when driver undergoes reset via 'idpf_init_hard_reset', it acquires the 'vport_cfg_lock', and during this process it tries to unregister netdevice which may call 'idpf_stop' which tries to acquire same lock causing it to deadlock. To address above, add new lock 'vport_init_lock' which control the initialization, re-initialization, and de-initialization flow. The 'vport_cfg_lock' now exclusively controls the vport config operations. Add vport config lock around 'idpf_vport_stop()' and 'idpf_vport_open()' to protect close and open operation at the same time. Add vport init lock around 'idpf_sriv_configure()' to protect it from load and removal path. To accomplish it, use existing function as wrapper and introduce another function 'idpf_sriov_config_vfs' which is used inside the lock. In idpf_remove, change 'idpf_sriov_configure' to 'idpf_sriov_config_vfs', and move inside the init lock. Use these two locks in the following precedence: 'vport_init_lock' first, then 'vport_cfg_lock'. Fixes: 8077c727561a ("idpf: add controlq init and reset checks") Reviewed-by: Przemek Kitszel Reviewed-by: Madhu Chittim Signed-off-by: Tarun K Singh Tested-by: Krishneil Singh --- drivers/net/ethernet/intel/idpf/idpf.h | 25 +++++++++++++ drivers/net/ethernet/intel/idpf/idpf_lib.c | 41 ++++++++++++++++++--- drivers/net/ethernet/intel/idpf/idpf_main.c | 7 +++- 3 files changed, 67 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/intel/idpf/idpf.h b/drivers/net/ethernet/intel/idpf/idpf.h index 8dea2dd784af..34dbdc7d6c88 100644 --- a/drivers/net/ethernet/intel/idpf/idpf.h +++ b/drivers/net/ethernet/intel/idpf/idpf.h @@ -526,6 +526,7 @@ struct idpf_vc_xn_manager; * @crc_enable: Enable CRC insertion offload * @req_tx_splitq: TX split or single queue model to request * @req_rx_splitq: RX split or single queue model to request + * @vport_init_lock: Lock to protect vport init, re-init, and deinit flow * @vport_cfg_lock: Lock to protect the vport config flow * @vector_lock: Lock to protect vector distribution * @queue_lock: Lock to protect queue distribution @@ -583,6 +584,7 @@ struct idpf_adapter { bool req_tx_splitq; bool req_rx_splitq; + struct mutex vport_init_lock; struct mutex vport_cfg_lock; struct mutex vector_lock; struct mutex queue_lock; @@ -786,6 +788,28 @@ static inline u16 idpf_get_max_tx_hdr_size(struct idpf_adapter *adapter) return le16_to_cpu(adapter->caps.max_tx_hdr_size); } +/** + * idpf_vport_init_lock -acquire init/deinit control lock + * @adapter: private data struct + * + * It controls and protect vport initialization, re-initialization, + * and deinitialization code flow and its resources. This + * lock is only used by non-datapath code. + */ +static inline void idpf_vport_init_lock(struct idpf_adapter *adapter) +{ + mutex_lock(&adapter->vport_init_lock); +} + +/** + * idpf_vport_init_unlock - release vport init lock + * @adapter: private data struct + */ +static inline void idpf_vport_init_unlock(struct idpf_adapter *adapter) +{ + mutex_unlock(&adapter->vport_init_lock); +} + /** * idpf_vport_cfg_lock - Acquire the vport config lock * @adapter: private data struct @@ -827,6 +851,7 @@ void idpf_set_ethtool_ops(struct net_device *netdev); void idpf_vport_intr_write_itr(struct idpf_q_vector *q_vector, u16 itr, bool tx); int idpf_sriov_configure(struct pci_dev *pdev, int num_vfs); +int idpf_sriov_config_vfs(struct pci_dev *pdev, int num_vfs); u8 idpf_vport_get_hsplit(const struct idpf_vport *vport); bool idpf_vport_set_hsplit(const struct idpf_vport *vport, u8 val); diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c b/drivers/net/ethernet/intel/idpf/idpf_lib.c index 778dc71fbf4a..931d0f988c95 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_lib.c +++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c @@ -1000,7 +1000,10 @@ static void idpf_vport_dealloc(struct idpf_vport *vport) unsigned int i = vport->idx; idpf_deinit_mac_addr(vport); + + idpf_vport_cfg_lock(adapter); idpf_vport_stop(vport); + idpf_vport_cfg_unlock(adapter); if (!test_bit(IDPF_HR_RESET_IN_PROG, adapter->flags)) idpf_decfg_netdev(vport); @@ -1522,8 +1525,11 @@ void idpf_init_task(struct work_struct *work) /* Once state is put into DOWN, driver is ready for dev_open */ np = netdev_priv(vport->netdev); np->state = __IDPF_VPORT_DOWN; - if (test_and_clear_bit(IDPF_VPORT_UP_REQUESTED, vport_config->flags)) + if (test_and_clear_bit(IDPF_VPORT_UP_REQUESTED, vport_config->flags)) { + idpf_vport_cfg_lock(adapter); idpf_vport_open(vport); + idpf_vport_cfg_unlock(adapter); + } /* Spawn and return 'idpf_init_task' work queue until all the * default vports are created @@ -1601,17 +1607,19 @@ static int idpf_sriov_ena(struct idpf_adapter *adapter, int num_vfs) } /** - * idpf_sriov_configure - Configure the requested VFs + * idpf_sriov_config_vfs - Configure the requested VFs * @pdev: pointer to a pci_dev structure * @num_vfs: number of vfs to allocate * * Enable or change the number of VFs. Called when the user updates the number * of VFs in sysfs. **/ -int idpf_sriov_configure(struct pci_dev *pdev, int num_vfs) +int idpf_sriov_config_vfs(struct pci_dev *pdev, int num_vfs) { struct idpf_adapter *adapter = pci_get_drvdata(pdev); + lockdep_assert_held(&adapter->vport_init_lock); + if (!idpf_is_cap_ena(adapter, IDPF_OTHER_CAPS, VIRTCHNL2_CAP_SRIOV)) { dev_info(&pdev->dev, "SR-IOV is not supported on this device\n"); @@ -1634,6 +1642,26 @@ int idpf_sriov_configure(struct pci_dev *pdev, int num_vfs) return 0; } +/** + * idpf_sriov_configure - Call idpf_sriov_config_vfs to configure + * @pdev: pointer to a pci_dev structure + * @num_vfs: number of vfs to allocate + * + * Enable or change the number of VFs. Called when the user updates the number + * of VFs in sysfs. + **/ +int idpf_sriov_configure(struct pci_dev *pdev, int num_vfs) +{ + struct idpf_adapter *adapter = pci_get_drvdata(pdev); + int ret; + + idpf_vport_init_lock(adapter); + ret = idpf_sriov_config_vfs(pdev, num_vfs); + idpf_vport_init_unlock(adapter); + + return ret; +} + /** * idpf_deinit_task - Device deinit routine * @adapter: Driver specific private structure @@ -1733,7 +1761,7 @@ static int idpf_init_hard_reset(struct idpf_adapter *adapter) int err; u16 i; - mutex_lock(&adapter->vport_cfg_lock); + idpf_vport_init_lock(adapter); dev_info(dev, "Device HW Reset initiated\n"); @@ -1798,7 +1826,7 @@ static int idpf_init_hard_reset(struct idpf_adapter *adapter) msleep(100); unlock_mutex: - mutex_unlock(&adapter->vport_cfg_lock); + idpf_vport_init_unlock(adapter); return err; } @@ -2155,6 +2183,9 @@ static int idpf_open(struct net_device *netdev) struct idpf_vport *vport; int err; + if (test_bit(IDPF_REMOVE_IN_PROG, adapter->flags)) + return 0; + idpf_vport_cfg_lock(adapter); vport = idpf_netdev_to_vport(netdev); diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c index 0522b3a6f42c..04bbc048c829 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_main.c +++ b/drivers/net/ethernet/intel/idpf/idpf_main.c @@ -28,10 +28,13 @@ static void idpf_remove(struct pci_dev *pdev) * end up in bad state. */ cancel_delayed_work_sync(&adapter->vc_event_task); + + idpf_vport_init_lock(adapter); if (adapter->num_vfs) - idpf_sriov_configure(pdev, 0); + idpf_sriov_config_vfs(pdev, 0); idpf_vc_core_deinit(adapter); + idpf_vport_init_unlock(adapter); /* Be a good citizen and leave the device clean on exit */ adapter->dev_ops.reg_ops.trigger_reset(adapter, IDPF_HR_FUNC_RESET); @@ -72,6 +75,7 @@ static void idpf_remove(struct pci_dev *pdev) kfree(adapter->vcxn_mngr); adapter->vcxn_mngr = NULL; + mutex_destroy(&adapter->vport_init_lock); mutex_destroy(&adapter->vport_cfg_lock); mutex_destroy(&adapter->vector_lock); mutex_destroy(&adapter->queue_lock); @@ -229,6 +233,7 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_cfg_hw; } + mutex_init(&adapter->vport_init_lock); mutex_init(&adapter->vport_cfg_lock); mutex_init(&adapter->vector_lock); mutex_init(&adapter->queue_lock); From patchwork Tue Nov 5 18:48:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tarun K Singh X-Patchwork-Id: 2007150 X-Patchwork-Delegate: anthony.l.nguyen@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256 header.s=default header.b=i2QkPwg2; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=patchwork.ozlabs.org) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XjhnM58G4z1xyS for ; Wed, 6 Nov 2024 08:49:27 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 196A340684; Tue, 5 Nov 2024 21:49:26 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id Lt91piN_Gegt; Tue, 5 Nov 2024 21:49:24 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 814CC4067B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1730843364; bh=JD54flJrinjNRoif5w3d+Lr4biCM6FQZfIpCxJtemio=; h=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=i2QkPwg2/GEBkr+PeniT1rXnFNvBuyklV6gXMJBLMS4GfJYvgi6zCFTBSaIdRb2T8 VOSrBq0/YngwUfHlbIFnxUmvcXLea9eVkUt5OB0UNzozAa3UcrytuYZLKwQ/pIIiQ8 YrwwvJxi3t7LZUvSOYXJkdSi30YebP2I5yGGFK5tQ0F+TFtfdQhC++y58pqYEoXQGQ nkKsBphKFDojPNc/GTRveeGEvOCqj9MoDEsBdxKX/asB2N4nRtJvpGjDRODb44Wu71 Vxefzcdf1nvcMxQoQ22xru4FgynAQh+A6ToJ3tBD4NXL3DAlCEsY3FX8iziFaozUjv U2iLaN51YKmGw== Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp4.osuosl.org (Postfix) with ESMTP id 814CC4067B; Tue, 5 Nov 2024 21:49:24 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists1.osuosl.org (Postfix) with ESMTP id 0D0351DE2 for ; Tue, 5 Nov 2024 21:49:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 2BF9A40679 for ; Tue, 5 Nov 2024 21:49:19 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id x5iVfH5WrNWp for ; Tue, 5 Nov 2024 21:49:18 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.17; helo=mgamail.intel.com; envelope-from=tarun.k.singh@intel.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org 321CD4067B DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 321CD4067B Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) by smtp4.osuosl.org (Postfix) with ESMTPS id 321CD4067B for ; Tue, 5 Nov 2024 21:49:18 +0000 (UTC) X-CSE-ConnectionGUID: RBXOTBToRzWyk26vJrCrJg== X-CSE-MsgGUID: LdtgLux7RvCYAAMhWSoFHw== X-IronPort-AV: E=McAfee;i="6700,10204,11247"; a="30735928" X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="30735928" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 13:49:16 -0800 X-CSE-ConnectionGUID: rdnFo2JFTYKAgEeC/gfb+g== X-CSE-MsgGUID: dE6mHU+ISQeE0T42JJf4Ww== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,261,1725346800"; d="scan'208";a="85010425" Received: from coyotepass-34596-p1.jf.intel.com ([10.166.80.48]) by orviesa008.jf.intel.com with ESMTP; 05 Nov 2024 13:49:06 -0800 From: Tarun K Singh To: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org Date: Tue, 5 Nov 2024 13:48:59 -0500 Message-ID: <20241105184859.741473-5-tarun.k.singh@intel.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241105184859.741473-1-tarun.k.singh@intel.com> References: <20241105184859.741473-1-tarun.k.singh@intel.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730843358; x=1762379358; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=cPWS4f0r9yWak9dT8ctCM7VCSSxRTsgXjzI+Wr46d5I=; b=hiucLDQJf66BCCiE1J0zlEsPUzvr85Uec5X27I7MVfnp/FXiH8WbDjwJ mNZ+TNyqNXKuM5sLObil7nsK9UJBqkubJofCSt6G3D9CyQ1RuRZZIf+1E durhMsisG0E8JkNWql5XvY93a6rkvArrsZLdIEuSdnk7mdqgfax1yYOMa 5ZBQ0hOl0s3q5sBANOU6w5VUuSZXev0Tuo/p2PNfRv9DYoN7B4GikG7+5 d1rLYyVNLm7Ew4P1Pn/cK38cq9XLGAIF9o2cQ1XmNiADwFI9bF6jktz09 cGWsUwzLdiuGJui3gcNFkJcoDrYlZtFJa51sG1m1m0qmWrgui67CwnqHF A==; X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=none dis=none) header.from=intel.com X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=hiucLDQJ Subject: [Intel-wired-lan] [PATCH iwl-net v1 4/4] idpf: add lock class key X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" From: Ahmed Zaki Add lock class key changes to prevent lockdep from complaining when PF reset the VFs. Signed-off-by: Ahmed Zaki Reviewed-by: Przemek Kitszel Reviewed-by: Madhu Chittim Signed-off-by: Tarun K Singh Tested-by: Krishneil Singh --- drivers/net/ethernet/intel/idpf/idpf_main.c | 32 +++++++++++++-------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/intel/idpf/idpf_main.c b/drivers/net/ethernet/intel/idpf/idpf_main.c index 04bbc048c829..082026c2a7ab 100644 --- a/drivers/net/ethernet/intel/idpf/idpf_main.c +++ b/drivers/net/ethernet/intel/idpf/idpf_main.c @@ -11,6 +11,10 @@ MODULE_DESCRIPTION(DRV_SUMMARY); MODULE_IMPORT_NS(LIBETH); MODULE_LICENSE("GPL"); +/* Prevent lockdep from complaining when PF reset the VFs */ +static struct lock_class_key idpf_pf_vport_init_lock_key; +static struct lock_class_key idpf_pf_work_lock_key; + /** * idpf_remove - Device removal routine * @pdev: PCI device information struct @@ -140,9 +144,25 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) adapter->req_tx_splitq = true; adapter->req_rx_splitq = true; + mutex_init(&adapter->vport_init_lock); + mutex_init(&adapter->vport_cfg_lock); + mutex_init(&adapter->vector_lock); + mutex_init(&adapter->queue_lock); + mutex_init(&adapter->vc_buf_lock); + + INIT_DELAYED_WORK(&adapter->init_task, idpf_init_task); + INIT_DELAYED_WORK(&adapter->serv_task, idpf_service_task); + INIT_DELAYED_WORK(&adapter->mbx_task, idpf_mbx_task); + INIT_DELAYED_WORK(&adapter->stats_task, idpf_statistics_task); + INIT_DELAYED_WORK(&adapter->vc_event_task, idpf_vc_event_task); + switch (ent->device) { case IDPF_DEV_ID_PF: idpf_dev_ops_init(adapter); + lockdep_set_class(&adapter->vport_init_lock, + &idpf_pf_vport_init_lock_key); + lockdep_init_map(&adapter->vc_event_task.work.lockdep_map, + "idpf-PF-vc-work", &idpf_pf_work_lock_key, 0); break; case IDPF_DEV_ID_VF: idpf_vf_dev_ops_init(adapter); @@ -233,18 +253,6 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_cfg_hw; } - mutex_init(&adapter->vport_init_lock); - mutex_init(&adapter->vport_cfg_lock); - mutex_init(&adapter->vector_lock); - mutex_init(&adapter->queue_lock); - mutex_init(&adapter->vc_buf_lock); - - INIT_DELAYED_WORK(&adapter->init_task, idpf_init_task); - INIT_DELAYED_WORK(&adapter->serv_task, idpf_service_task); - INIT_DELAYED_WORK(&adapter->mbx_task, idpf_mbx_task); - INIT_DELAYED_WORK(&adapter->stats_task, idpf_statistics_task); - INIT_DELAYED_WORK(&adapter->vc_event_task, idpf_vc_event_task); - adapter->dev_ops.reg_ops.reset_reg_init(adapter); set_bit(IDPF_HR_DRV_LOAD, adapter->flags); queue_delayed_work(adapter->vc_event_wq, &adapter->vc_event_task,