From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 892543B058F for ; Tue, 15 Sep 2026 12:55:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789476929; cv=none; b=bju98nzW/I04GB5zVIBAUinWOkvtLI58b+OIjoR0eeAqnI3eeb13sr/i6lnL1rsTAvhEUvx9wT6mKY9Jw/71xiVYTkEXlD4fNv34LdGUZawXi7yOnvFPgphhGymXWU7u0q2Qyn3GYjJoScy0GY9omDcXRr5ZOP4QMkn8nZz8swc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789476929; c=relaxed/simple; bh=BBm45xnOQGpHUeWgvwakjq8EmH+ZxJkt/gE/cG/QXwI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=MapAJz4jLFg5HhxFcGRHJJqprl4KuMGFXNaR37B1OAQO7Rq+7IO4c15DlGRIW6HEK8HyjT4CPShEf5Dcmii03ttM6R8qkdg7tqRsO2iU1kh6g6TMwdvWYdF6A7dyDFSZElDKz0JBqKQugknCHSIVxI5C5RKAXvFyI5RfxwBVM+U= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=QXFU9VFE; arc=none smtp.client-ip=192.198.163.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="QXFU9VFE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1789476928; x=1821012928; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=BBm45xnOQGpHUeWgvwakjq8EmH+ZxJkt/gE/cG/QXwI=; b=QXFU9VFE8LeyPf/gjPKjFThj/XYpGwq2Fn6DAlKmowTOnxYjgbDgIWdR xOJLhUlHBL/yOKgR4pyaNQhP3rS1Y1V/Gbzasb6z1CB8/rgPYSML/jKm+ kyKjSMUjMHIGvT+Ge2amAT+Vp1jOlGW7SjfOrzDcVys0Y+f752ZxXW1XU 0sPOPL1yGBe8KUDjt5yCY7MuDvYEkU0ok5fbkFFdjlndx/uRFa9WwjUVs z2VbzuUk9/4/2br+2q7KLgKBYHSsBfkSIRrK0Sgll7d0un47wDz1GKE3t dcB0W5V/8mKhMjJyvuOpoxg4ZdcPNQ45t4yR3GhHv5S3QvBMMVSOUF3Ub w==; X-CSE-ConnectionGUID: /Vco2hd7Ry67TqCduHt5Dg== X-CSE-MsgGUID: 0BMIBJuvQ4umApP70UNLmw== X-IronPort-AV: E=McAfee;i="6800,10657,11905"; a="89853096" X-IronPort-AV: E=Sophos;i="6.27,103,1787036400"; d="scan'208";a="89853096" Received: from fmviesa011.fm.intel.com ([10.60.135.151]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Sep 2026 05:55:27 -0700 X-CSE-ConnectionGUID: C0syPeD8RYeWbwf8MsSzHQ== X-CSE-MsgGUID: Aahjy8jWRKK8nwekeb2K2A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,103,1787036400"; d="scan'208";a="1225144" Received: from amlin-019-225.igk.intel.com ([10.102.19.225]) by fmviesa011.fm.intel.com with ESMTP; 15 Sep 2026 05:55:26 -0700 From: Aleksandr Loktionov To: intel-wired-lan@lists.osuosl.org, anthony.l.nguyen@intel.com, aleksandr.loktionov@intel.com Cc: netdev@vger.kernel.org Subject: [PATCH iwl-net v2] ice: fix LLDP AQ filter fallback not working on E82x and E830 hardware Date: Tue, 15 Sep 2026 14:55:25 +0200 Message-ID: <20260915125525.3975646-1-aleksandr.loktionov@intel.com> X-Mailer: git-send-email 2.52.0 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Commit 4d5a1c4e6d49 ("ice: do not add LLDP-specific filter if not necessary") restructured ice_vsi_cfg_sw_lldp() to first attempt a generic ethernet Rx filter and, on failure, fall back to the specialized LLDP filter control AQ command (0x0A0A) via ice_lldp_fltr_add_remove(). This fallback is gated by ice_fw_supports_lldp_fltr_ctrl(), which only accepted E810, causing two distinct omissions. E82x (ICE_MAC_GENERIC, e.g. E822/E823) support the same LLDP filter control AQ command with the same minimum firmware API version as E810 (>= 1.7.1). On E82x systems where the generic ethernet LLDP Rx filter cannot be added, the AQ fallback silently returns -EOPNOTSUPP and the port is left with no LLDP Rx filter. E830 has been supported since kernel 6.9 and implements the same AQ command but requires a higher minimum API version (>= 1.7.11). Starting with NVM 1.2 / FW 7.9.1, the generic ethernet LLDP Rx filter path is blocked on E830, making the AQ fallback the only viable option. With ice_fw_supports_lldp_fltr_ctrl() returning false for E830, no LLDP Rx filter is installed after a firmware-update-triggered reset (e.g. NVM 1.1->1.2 on an E830-CC in HPE DL380 Gen11), and the interface stays link-down with complete loss of network connectivity. Replace the single-type if-chain with a switch on hw->mac_type so each family's version requirement is explicit. E810 and E82x share the 1.7.1 constants; E830 gets its own 1.7.11 constants. The default branch returns false, covering any future MAC type that does not implement the command. Fixes: 4d5a1c4e6d49 ("ice: do not add LLDP-specific filter if not necessary") Cc: stable@vger.kernel.org Signed-off-by: Aleksandr Loktionov --- v1 -> v2: rewrite as a single combined patch using a switch on hw->mac_type, instead of two separate patches (E82x fix, then a follow-up E830 fix layered on top). drivers/net/ethernet/intel/ice/ice_common.c | 23 ++++++++++++++++----- drivers/net/ethernet/intel/ice/ice_type.h | 7 ++++++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c index ef1ce10..67467b5 100644 --- a/drivers/net/ethernet/intel/ice/ice_common.c +++ b/drivers/net/ethernet/intel/ice/ice_common.c @@ -6372,15 +6372,28 @@ ice_aq_set_lldp_mib(struct ice_hw *hw, u8 mib_type, void *buf, u16 buf_size, /** * ice_fw_supports_lldp_fltr_ctrl - check NVM version supports lldp_fltr_ctrl * @hw: pointer to HW struct + * + * Check if firmware supports the LLDP filter control feature (AQ command + * 0x0A0A). Different hardware families require different minimum firmware + * API versions: + * - E810 and E82x: API version >= 1.7.1 + * - E830: API version >= 1.7.11 */ bool ice_fw_supports_lldp_fltr_ctrl(struct ice_hw *hw) { - if (hw->mac_type != ICE_MAC_E810) + switch (hw->mac_type) { + case ICE_MAC_E830: + return ice_is_fw_api_min_ver(hw, ICE_FW_API_LLDP_FLTR_MAJ_E830, + ICE_FW_API_LLDP_FLTR_MIN_E830, + ICE_FW_API_LLDP_FLTR_PATCH_E830); + case ICE_MAC_E810: + case ICE_MAC_GENERIC: + return ice_is_fw_api_min_ver(hw, ICE_FW_API_LLDP_FLTR_MAJ, + ICE_FW_API_LLDP_FLTR_MIN, + ICE_FW_API_LLDP_FLTR_PATCH); + default: return false; - - return ice_is_fw_api_min_ver(hw, ICE_FW_API_LLDP_FLTR_MAJ, - ICE_FW_API_LLDP_FLTR_MIN, - ICE_FW_API_LLDP_FLTR_PATCH); + } } /** diff --git a/drivers/net/ethernet/intel/ice/ice_type.h b/drivers/net/ethernet/intel/ice/ice_type.h index d9a5c1a..797a383 100644 --- a/drivers/net/ethernet/intel/ice/ice_type.h +++ b/drivers/net/ethernet/intel/ice/ice_type.h @@ -1217,11 +1217,16 @@ struct ice_aq_get_set_rss_lut_params { #define ICE_SR_WORDS_IN_1KB 512 -/* AQ API version for LLDP_FILTER_CONTROL */ +/* AQ API version for LLDP_FILTER_CONTROL - E810 and E82x */ #define ICE_FW_API_LLDP_FLTR_MAJ 1 #define ICE_FW_API_LLDP_FLTR_MIN 7 #define ICE_FW_API_LLDP_FLTR_PATCH 1 +/* AQ API version for LLDP_FILTER_CONTROL - E830 */ +#define ICE_FW_API_LLDP_FLTR_MAJ_E830 1 +#define ICE_FW_API_LLDP_FLTR_MIN_E830 7 +#define ICE_FW_API_LLDP_FLTR_PATCH_E830 11 + /* AQ API version for report default configuration */ #define ICE_FW_API_REPORT_DFLT_CFG_MAJ 1 #define ICE_FW_API_REPORT_DFLT_CFG_MIN 7 -- 2.52.0